[Libguestfs] [PATCH] appliance: Don't rebuild the appliance every time configure runs

Richard W.M. Jones rjones at redhat.com
Fri Oct 30 17:13:54 UTC 2009


Whenever config.status / configure runs it touches appliance/make.sh
(even if the file hasn't changed) and that causes the appliance to be
rebuilt completely.

This patch breaks that dependency because building the appliance is
time-consuming (since dracut was added) so we should try not to build
it each time.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://et.redhat.com/~rjones/libguestfs/
See what it can do: http://et.redhat.com/~rjones/libguestfs/recipes.html
-------------- next part --------------
>From 55f5321ce06836a4e561a92ab2defaf5f78d3116 Mon Sep 17 00:00:00 2001
From: Richard Jones <rjones at redhat.com>
Date: Fri, 30 Oct 2009 17:11:02 +0000
Subject: [PATCH] appliance: Don't rebuild the appliance every time configure runs.

---
 appliance/Makefile.am |    6 +++++-
 appliance/make.sh.in  |    3 +++
 2 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/appliance/Makefile.am b/appliance/Makefile.am
index d1338bf..e4e13f6 100644
--- a/appliance/Makefile.am
+++ b/appliance/Makefile.am
@@ -56,7 +56,11 @@ 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
+# Next line used to depend on make.sh.  However config.status updates
+# the timestamp on make.sh even when it doesn't change, causing the
+# whole appliance to be rebuilt too frequently.  This means if you
+# modify make.sh.in, you have to delete the appliance by hand.
+$(top_builddir)/initramfs/fakeroot.log: kmod.whitelist packagelist
 	mv $(INITRAMFSIMG) $(INITRAMFSIMG).bak 2>/dev/null; :
 	mv $(VMLINUZ) $(VMLINUZ).bak 2>/dev/null; :
 	if ! bash make.sh; then rm -f $@; exit 1; fi
diff --git a/appliance/make.sh.in b/appliance/make.sh.in
index 37e1893..d678833 100755
--- a/appliance/make.sh.in
+++ b/appliance/make.sh.in
@@ -18,6 +18,9 @@
 
 # This is called from the Makefile to build the initramfs.
 
+# NB: If you modify this file, you have to 'rm -rf initramfs/' in
+# order to rebuild the appliance.
+
 unset CDPATH
 
 set -e
-- 
1.6.5.rc2



More information about the Libguestfs mailing list