X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=distrib%2Fgentoo%2Finitpost;h=ad75b774fbeb3f711d581645cc9c13328f8bcf29;hb=270eb3149abb037fcf5e88e53d8a8ec09ad5444b;hp=f8bef51c40ce9447aa7159a3054be398da83bc38;hpb=4111ebf86b56722baa166a59394334732ae111a7;p=util-vserver.git diff --git a/distrib/gentoo/initpost b/distrib/gentoo/initpost index f8bef51..ad75b77 100755 --- a/distrib/gentoo/initpost +++ b/distrib/gentoo/initpost @@ -17,81 +17,50 @@ ## Called as: initpost -vdir="$1"/vdir -. "$2" - -# portage stuff -pushd "$vdir" &>/dev/null -$_CHROOT_SH mkdir /usr 2>/dev/null || : -$_CHROOT_SH mkdir /usr/portage 2>/dev/null || : -popd &>/dev/null - +# finish notice from initpre +echo "ok" -# check for baselayout >= 1.13 -pushd "$vdir" &>/dev/null -basever=$($_CHROOT_SH cat /etc/gentoo-release | $_AWK '{print $5}') -popd &>/dev/null - -echo ">>> Found baselayout-$basever" - -basemaj=${basever/.*} -basemin=${basever#*.} -basemin=${basemin/.*} -if test "$basemaj" -lt 1 -o "$basemin" -lt 13; then - echo "!!! Will not do automagic changes to baselayout < 1.13" - echo "!!! You have to take care for yourself ..." - exit 0 -fi +#setup environment +cfgdir="$1" +vdir="$cfgdir"/vdir +. "$2" -# fix gettys in inittab +# go to vdir for chroot-sh pushd "$vdir" &>/dev/null -if $_CHROOT_SH testfile /etc/inittab; then - echo ">>> Fixing inittab ... " - inittabtmp=$($_MKTEMP inittab.XXXXXX) - - $_CHROOT_SH cat /etc/inittab | \ - $_SED 's/\(^[^#].*getty.*$\)/#\1/' > $inittabtmp - $_CHROOT_SH truncate /etc/inittab < $inittabtmp - - $_RM -f $inittabtmp -fi -popd &>/dev/null +# helper for sed in chroot +chrootsed() { + local file="$1" + shift + + sedtmp=$($_MKTEMP chrootsed.XXXXXX) + + $_CHROOT_SH cat "$file" | $_SED "$@" > $sedtmp + $_CHROOT_SH truncate "$file" < $sedtmp + + $_RM -f $sedtmp +} -# unneeded runlevel scripts -pushd "$vdir" &>/dev/null -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 || : -popd &>/dev/null - - -# fix fstab for checkfs/localmount -pushd "$vdir" &>/dev/null -echo ">>> Fixing fstab ... " -echo "/dev/hdv1 / ufs 0 0" | $_CHROOT_SH truncate /etc/fstab -popd &>/dev/null +# portage stuff +$_CHROOT_SH mkdir /usr 2>/dev/null || : +$_CHROOT_SH mkdir /usr/portage 2>/dev/null || : # gentoo initstyle magic initstyle=sysv -test -e "$1"/apps/init/style && initstyle=$(<"$1"/apps/init/style) +test -e "$cfgdir"/apps/init/style && initstyle=$(<"$cfgdir"/apps/init/style) if test "$initstyle" == "gentoo"; then - pushd "$vdir" &>/dev/null - 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 - popd &>/dev/null - echo "!!!" echo "!!! You have to install a service (e.g. syslog-ng) and add it to the" echo "!!! default runlevel before you start the guest the first time!" @@ -101,3 +70,50 @@ if test "$initstyle" == "gentoo"; then echo "!!! packages into the guest environment." echo "!!!" 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 || : + + +# 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)\":" +fi + + +# fix syslog-ng.conf +if $_CHROOT_SH testfile /etc/syslog-ng/syslog-ng.conf; then + echo ">>> Fixing syslog-ng.conf ... " + chrootsed /etc/syslog-ng/syslog-ng.conf \ + -e 's:pipe("/proc/kmsg"); ::' \ + -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 >= 1.13 +# (does not affect any previous versions) +echo ">>> Fixing fstab ... " +echo "/dev/hdv1 / ufs defaults 0 0" | $_CHROOT_SH truncate /etc/fstab + + +# always satisfy net dependency in baselayout >= 1.13 +# (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 + +popd &>/dev/null