use $(LIBENSCVECTOR) instead of libensc_vector.a
[util-vserver.git] / util-vserver / distrib / redhat / initpost
index 963cdb5..0f1fee3 100755 (executable)
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
+## HACK: this script is full of races...
+
 vdir=$1/vdir
 . "$2"
 
+function relink
+{
+    test ! -e "$2" -o -L "$2" || mv -f "$2"{,.orig}
+    ln -s "$1" "$2"
+}
+
+## Usage: subst <file> <regexp>
+function subst
+{
+    sed -e "$2" "$1" | $_CHROOT_CAT "$1".tmp
+    cmp -s "$1".tmp "$1" || cat "$1".tmp | $_CHROOT_CAT "$1"
+    rm -f "$1".tmp
+}
 
 pushd "$vdir"/etc/init.d &>/dev/null ||
     pushd "$vdir"/etc/rc.d/init.d &>/dev/null || exit 1
@@ -28,12 +43,33 @@ pushd "$vdir"/etc/init.d &>/dev/null ||
            functions|halt|killall|single) ;;
            syslog) ;;
            *)
-               $_VSERVER "$1" chkconfig "$i" off
+               $_VSERVER ----insecure "$1" chkconfig "$i" off
                ;;
        esac
     done
 
-    mv -f halt{,.orig}
-    ln -s /bin/true halt
+    relink /bin/true halt
+popd >/dev/null
+
+pushd "$vdir"/sbin &>/dev/null
+    relink /bin/true new-kernel-pkg
+popd >/dev/null
+
+pushd "$vdir"/usr/bin &>/dev/null
+    relink /bin/true rhgb-client
+popd >/dev/null
+
+pushd "$vdir"/etc &>/dev/null
+    # TODO: remove race/symlink-attack
+    echo 'NETWORKING=yes' >>sysconfig/network
+popd >/dev/null
 
+pushd "$vdir" &>/dev/null
+    : | $_CHROOT_CAT /etc/sysctl.conf
+    echo "none    /       none    defaults" | $_CHROOT_CAT /etc/fstab
+    cat "$__DISTRIBDIR"/redhat/rc.sysinit   | $_CHROOT_CAT /etc/rc.d/rc.sysinit.vserver
+    # TODO: remove race/symlink-attack
+    chmod +x etc/rc.d/rc.sysinit.vserver
+    subst etc/inittab 's!^\([^#].*:respawn:.* tty\)!#\1!;
+                      s!si::sysinit:/etc/rc.d/rc.sysinit!si::sysinit:/etc/rc.d/rc.sysinit.vserver!'
 popd >/dev/null