make f14-based bootCD boot off the pl scripts
Thierry Parmentelat [Wed, 5 Jan 2011 16:40:34 +0000 (17:40 +0100)]
build.sh
etc/inittab
prep.sh

index b7be938..e784052 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -548,9 +548,12 @@ EOF
     popd
 
     # update etc/inittab to start with pl_rsysinit
-    sed -i 's,pl_sysinit,pl_rsysinit,' etc/inittab
+    for file in etc/inittab etc/event.d/rcS etc/init/rcS.conf; do
+       [ -f $file ] && sed -i 's,pl_sysinit,pl_rsysinit,' $file
+    done
 
     # modify inittab to have a serial console
+    # xxx this might well be broken with f12 and above xxx
     if [ -n "$serial" ] ; then
        echo "T0:23:respawn:/sbin/agetty -L $console_dev $console_baud vt100" >> etc/inittab
         # and let root log in
index b501e98..aae0660 100644 (file)
@@ -1,3 +1,7 @@
+# on f8 and below, lines 2 & 3 below allow to hook our scripts instead of the standard rc/rc.d stuff
+# on f12 and above, this file is only used to set the default run level, 
+# and in this case, hooking our stuff is done in prep.sh/build.sh 
+# by patching /etc/event.d/ (f12) or /etc/init/ (>=f14)
 id:2:initdefault:
 si:S:sysinit:/etc/init.d/pl_sysinit
 l2:2:bootwait:/etc/init.d/pl_boot
diff --git a/prep.sh b/prep.sh
index fe69c92..8e6c794 100755 (executable)
--- a/prep.sh
+++ b/prep.sh
@@ -58,12 +58,6 @@ chroot ${bootcd} /usr/sbin/useradd -p "$CRYPT_SA_PASSWORD" -o -g 0 -u 0 -m site_
 echo "* Installing IPMI utilities"
 install -D -m 755 ipnmac/ipnmac.x86 $bootcd/usr/sbin/ipnmac
 
-# Install configuration files
-echo "* Installing configuration files"
-for file in fstab mtab modprobe.conf inittab hosts sysctl.conf ; do
-    install -D -m 644 etc/$file $bootcd/etc/$file
-done
-
 # Install initscripts
 echo "* Installing initscripts"
 for file in pl_sysinit pl_hwinit pl_netinit pl_validateconf pl_boot ; do
@@ -71,17 +65,31 @@ for file in pl_sysinit pl_hwinit pl_netinit pl_validateconf pl_boot ; do
     install -D -m 755 initscripts/$file $bootcd/etc/init.d/$file
 done
 
-# connect the scripts for upstart
+# Install configuration files
+echo "* Installing configuration files"
+for file in fstab mtab modprobe.conf inittab hosts sysctl.conf ; do
+    install -D -m 644 etc/$file $bootcd/etc/$file
+done
+# connect our initscripts scripts for upstart
 # fedora 9 comes with /sbin/init from upstart, that uses /etc/event.d instead of inittab
 # (in fact inittab is read for determining the default runlevel)
 if [ -d $bootcd/etc/event.d ] ; then
-    echo "* Tuning /etc/event.d for upstart"
+    echo "* Tuning /etc/event.d/ for upstart"
     pushd $bootcd/etc/event.d
     # use our system initialisation script
-    sed -i -e 's,/etc/rc.d/rc.sysinit[a-z\.]*,/etc/init.d/pl_sysinit,g' *
+    sed -i -e 's,/etc/rc\.d/rc\.sysinit[a-z\.]*,/etc/init.d/pl_sysinit,g' rcS
     # use our startup script in runlevel 2
     sed -i -e 's,/etc/rc\.d/rc[ \t][ \t]*2,/etc/init.d/pl_boot,g' rc2
     popd    
+elif [ -d $bootcd/etc/init ] ; then
+# ditto for f14 and higher init style
+    echo "* Tuning /etc/init/ for upstart"
+    pushd $bootcd/etc/init
+    # use our system initialisation script
+    sed -i -e 's,/etc/rc\.d/rc\.sysinit[a-z\.]*,/bin/bash -c /etc/init.d/pl_sysinit,g' rcS.conf
+    # use our startup script in runlevel 2
+    sed -i -e 's,/etc/rc.d/rc[a-z\.]*,/etc/init.d/pl_boot,g' rc.conf
+    popd    
 fi
 
 # Write nodefamily stamp, to help bootmanager do the right thing