Don't rebuild the whole appliance if just the /init script has been changed.
authorRichard W.M. Jones <rjones@redhat.com>
Thu, 2 Jul 2009 20:33:51 +0000 (21:33 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Thu, 2 Jul 2009 20:33:51 +0000 (21:33 +0100)
appliance/Makefile.am
appliance/make.sh.in
appliance/update.sh.in

index 93e1167..03b2a7b 100644 (file)
@@ -54,12 +54,12 @@ endif
 # This is for building the normal appliance:
 $(INITRAMFSIMG) $(VMLINUZ): $(top_builddir)/initramfs/fakeroot.log
 
-$(top_builddir)/initramfs/fakeroot.log: make.sh kmod.whitelist packagelist init
+$(top_builddir)/initramfs/fakeroot.log: make.sh kmod.whitelist packagelist
        -mv $(INITRAMFSIMG) $(INITRAMFSIMG).bak
        -mv $(VMLINUZ) $(VMLINUZ).bak
        if ! bash make.sh; then rm -f $@; exit 1; fi
 
-$(INITRAMFSIMG): $(top_builddir)/initramfs/fakeroot.log $(top_builddir)/daemon/guestfsd update.sh
+$(INITRAMFSIMG): $(top_builddir)/initramfs/fakeroot.log $(top_builddir)/daemon/guestfsd init update.sh
        rm -f $@
        bash update.sh
        touch $@
index e98c325..cf772e0 100755 (executable)
@@ -132,13 +132,6 @@ __EOF__
   @FEBOOTSTRAP_INSTALL@ initramfs resolv.conf.new /etc/resolv.conf 0644 root.root
   rm resolv.conf.new
 
-  # Create the init script.
-  @FEBOOTSTRAP_INSTALL@ initramfs appliance/init /init 0755 root.root
-
-  # Just in case the kernel isn't looking for /init, make /sbin/init
-  # be our script, not the real init.
-  #@FEBOOTSTRAP_RUN@ initramfs -- ln -f /init /sbin/init
-
   ls -lh $koutput
 
   # Now directly run the update script to copy/update the daemon in the
index 4fbd651..01e22b6 100755 (executable)
@@ -16,8 +16,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-# Update the daemon inside an existing initramfs.  Avoids the
-# timeconsuming rebuild.
+# Update the init script or daemon inside an existing initramfs.
+# Avoids the timeconsuming rebuild.
 
 unset CDPATH
 
@@ -27,6 +27,9 @@ if [ "@DIST@" = "REDHAT" ]; then
   cd @top_builddir@
   output=appliance/initramfs.@REPO@.@host_cpu@.img
 
+  # Create the init script.
+  @FEBOOTSTRAP_INSTALL@ initramfs appliance/init /init 0755 root.root
+
   # Copy the daemon into the filesystem.
   @FEBOOTSTRAP_INSTALL@ initramfs daemon/guestfsd /sbin/guestfsd 0755 root.root