diff -NurpP util-vserver-0.30.214.orig/distrib/gentoo/initpost util-vserver-0.30.214/distrib/gentoo/initpost --- util-vserver-0.30.214.orig/distrib/gentoo/initpost 2007-09-02 22:06:42.000000000 +0200 +++ util-vserver-0.30.214/distrib/gentoo/initpost 2008-03-11 10:39:53.955478789 +0100 @@ -51,6 +51,11 @@ $_CHROOT_SH mkdir /usr/portage 2>/dev/nu $_CHROOT_SH mkdir /usr/portage/distfiles 2>/dev/null || : +# check if we have openrc +have_openrc=0 +$_CHROOT_SH testfile /lib/rc/bin/is_older_than && have_openrc=1 + + # gentoo initstyle magic initstyle=sysv test -e "$cfgdir"/apps/init/style && initstyle=$(<"$cfgdir"/apps/init/style) @@ -59,8 +64,8 @@ if test "$initstyle" == "gentoo"; then echo ">>> Installing special init-style magic ... " $_CAT "$__DISTRIBDIR"/gentoo/init-vserver.sh | \ - $_CHROOT_SH truncate /lib/rcscripts/sh/init-vserver.sh - $_CHROOT_SH chmod 0755 /lib/rcscripts/sh/init-vserver.sh + $_CHROOT_SH truncate /lib/rc/sh/init-vserver.sh + $_CHROOT_SH chmod 0755 /lib/rc/sh/init-vserver.sh $_CAT "$__DISTRIBDIR"/gentoo/reboot.sh | \ $_CHROOT_SH truncate /etc/init.d/reboot.sh @@ -78,23 +83,29 @@ if test "$initstyle" == "gentoo"; then echo "!!! Consult the Gentoo Handbook on how to chroot and install" echo "!!! packages into the guest environment." echo "!!!" +else + # fix gettys in inittab + if $_CHROOT_SH testfile /etc/inittab; then + echo ">>> Fixing inittab ... " + chrootsed /etc/inittab \ + -e 's/\(^[^#].*getty.*$\)/#\1/' + fi fi - # unneeded runlevel scripts -echo ">>> Fixing default runlevel scripts ... " -$_CHROOT_SH rm /etc/runlevels/boot/{clock,consolefont,keymaps,modules,net.lo} 2>/dev/null || : -$_CHROOT_SH rm /etc/runlevels/default/{hdparm,netmount} 2>/dev/null || : - +if test $have_openrc -ne 1; then + echo ">>> Fixing default runlevel scripts ... " + $_CHROOT_SH rm /etc/runlevels/boot/{clock,consolefont,keymaps,modules,net.lo} 2>/dev/null || : + $_CHROOT_SH rm /etc/runlevels/default/{hdparm,netmount} 2>/dev/null || : +fi # setting hostname if test -r "$cfgdir"/uts/nodename && $_CHROOT_SH testfile /etc/conf.d/hostname; then echo ">>> Setting hostname ... " chrootsed /etc/conf.d/hostname \ - -e "s:HOSTNAME=\"\(.*\)\":HOSTNAME=\"$(< "$cfgdir"/uts/nodename)\":" + -e "s:\(HOSTNAME\)=\"\(.*\)\":\1=\"$(< "$cfgdir"/uts/nodename)\":i" fi - # fix syslog-ng.conf if $_CHROOT_SH testfile /etc/syslog-ng/syslog-ng.conf; then echo ">>> Fixing syslog-ng.conf ... " @@ -103,27 +114,21 @@ if $_CHROOT_SH testfile /etc/syslog-ng/s -e 's:\(.*console_all.*\):#\1:g' fi - -# fix gettys in inittab -if $_CHROOT_SH testfile /etc/inittab; then - echo ">>> Fixing inittab ... " - chrootsed /etc/inittab \ - -e 's/\(^[^#].*getty.*$\)/#\1/' -fi - - # fix fstab for checkfs/localmount in baselayout-2 # (does not affect any previous versions) -echo ">>> Fixing fstab ... " -echo "/dev/hdv1 / ufs defaults 0 0" | $_CHROOT_SH truncate /etc/fstab - +if test $have_openrc -ne 1; then + echo ">>> Fixing fstab ... " + echo "/dev/hdv1 / ufs defaults 0 0" | $_CHROOT_SH truncate /etc/fstab +fi # always satisfy net dependency in baselayout-2 # (does not affect any previous versions) -echo ">>> Providing dummy net dependency ... " -$_CAT "$__DISTRIBDIR"/gentoo/net.vserver | \ -$_CHROOT_SH truncate /etc/init.d/net.vserver -$_CHROOT_SH chmod 0755 /etc/init.d/net.vserver -$_CHROOT_SH link /etc/init.d/net.vserver /etc/runlevels/boot/net.vserver +if test $have_openrc -ne 1; then + echo ">>> Providing dummy net dependency ... " + $_CAT "$__DISTRIBDIR"/gentoo/net.vserver | \ + $_CHROOT_SH truncate /etc/init.d/net.vserver + $_CHROOT_SH chmod 0755 /etc/init.d/net.vserver + $_CHROOT_SH link /etc/init.d/net.vserver /etc/runlevels/boot/net.vserver +fi popd &>/dev/null diff -NurpP util-vserver-0.30.214.orig/scripts/vserver.functions util-vserver-0.30.214/scripts/vserver.functions --- util-vserver-0.30.214.orig/scripts/vserver.functions 2007-09-02 22:06:41.000000000 +0200 +++ util-vserver-0.30.214/scripts/vserver.functions 2008-03-11 10:31:41.758515991 +0100 @@ -314,9 +314,18 @@ function _generateInitOptions (xgentoo) test -n "$RUNLEVEL_START" || RUNLEVEL_START="default" + RC_PATH=/usr/sbin:/usr/bin:/sbin:/bin - INITCMD_START=( env TERM=$TERM /lib/rcscripts/sh/init-vserver.sh "$RUNLEVEL_START" ) - INITCMD_STOP=( env -i TERM=$TERM RUNLEVEL=0 /sbin/rc shutdown ) + if test -x "$vdir/vdir/lib/rcscripts/sh/init-vserver.sh"; then + RC_WRAP=/lib/rcscripts/sh/init-vserver.sh + elif test -x "$vdir/vdir/lib/rc/sh/init-vserver.sh"; then + RC_WRAP=/lib/rc/sh/init-vserver.sh + else + panic "init-vserver.sh not found; aborting" + fi + + INITCMD_START=( env TERM=$TERM $RC_WRAP "$RUNLEVEL_START" ) + INITCMD_STOP=( env -i PATH=$RC_PATH TERM=$TERM RUNLEVEL=0 /sbin/rc shutdown ) INITCMD_PREPARE=( $_FAKE_RUNLEVEL 3 /var/run/utmp ) ;;