[Libguestfs] [PATCH] out-of-tree build: fix tests in images directory

Hilko Bengen bengen at hilluzination.de
Wed Aug 17 13:53:00 UTC 2011


Using default values for some environment variables should ensure that ./run can still be run from a normal shell, not just from make check
---
 images/Makefile.am                   |   10 ++++++++++
 images/guest-aux/make-debian-img.sh  |    6 +++---
 images/guest-aux/make-fedora-img.sh  |    8 ++++----
 images/guest-aux/make-ubuntu-img.sh  |    6 +++---
 images/guest-aux/make-windows-img.sh |   10 +++++-----
 run                                  |    8 ++++----
 6 files changed, 29 insertions(+), 19 deletions(-)

diff --git a/images/Makefile.am b/images/Makefile.am
index 68eb550..a962f72 100644
--- a/images/Makefile.am
+++ b/images/Makefile.am
@@ -176,15 +176,19 @@ fedora.img: guest-aux/make-fedora-img.sh \
 	LIBGUESTFS_PATH=$(top_builddir)/appliance \
 	LD_LIBRARY_PATH=$(top_builddir)/src/.libs \
 	TMPDIR=$(top_builddir) \
+	BUILDDIR=$(builddir) SRCDIR=$(srcdir) \
+	TOP_BUILDDIR=$(top_builddir) TOP_SRCDIR=$(top_srcdir) \
 	bash $<
 
 guest-aux/fedora-name.db: guest-aux/fedora-name.db.txt
 	rm -f $@ $@-t
+	mkdir -p guest-aux
 	$(DB_LOAD) $@-t < $<
 	mv $@-t $@
 
 guest-aux/fedora-packages.db: guest-aux/fedora-packages.db.txt
 	rm -f $@ $@-t
+	mkdir -p guest-aux
 	$(DB_LOAD) $@-t < $<
 	mv $@-t $@
 
@@ -193,6 +197,8 @@ debian.img: guest-aux/make-debian-img.sh
 	LIBGUESTFS_PATH=$(top_builddir)/appliance \
 	LD_LIBRARY_PATH=$(top_builddir)/src/.libs \
 	TMPDIR=$(top_builddir) \
+	BUILDDIR=$(builddir) SRCDIR=$(srcdir) \
+	TOP_BUILDDIR=$(top_builddir) TOP_SRCDIR=$(top_srcdir) \
 	bash $<
 
 # Make a (dummy) Ubuntu image.
@@ -200,6 +206,8 @@ ubuntu.img: guest-aux/make-ubuntu-img.sh
 	LIBGUESTFS_PATH=$(top_builddir)/appliance \
 	LD_LIBRARY_PATH=$(top_builddir)/src/.libs \
 	TMPDIR=$(top_builddir) \
+	BUILDDIR=$(builddir) SRCDIR=$(srcdir) \
+	TOP_BUILDDIR=$(top_builddir) TOP_SRCDIR=$(top_srcdir) \
 	bash $<
 
 # Make a (dummy) Windows image.
@@ -208,6 +216,8 @@ windows.img: guest-aux/make-windows-img.sh \
 	LIBGUESTFS_PATH=$(top_builddir)/appliance \
 	LD_LIBRARY_PATH=$(top_builddir)/src/.libs \
 	TMPDIR=$(top_builddir) \
+	BUILDDIR=$(builddir) SRCDIR=$(srcdir) \
+	TOP_BUILDDIR=$(top_builddir) TOP_SRCDIR=$(top_srcdir) \
 	bash $<
 
 # Since users might not have the tools needed to create this, we
diff --git a/images/guest-aux/make-debian-img.sh b/images/guest-aux/make-debian-img.sh
index 9a01e93..36a1220 100755
--- a/images/guest-aux/make-debian-img.sh
+++ b/images/guest-aux/make-debian-img.sh
@@ -31,7 +31,7 @@ LABEL=BOOT /boot ext2 default 0 0
 EOF
 
 # Create a disk image.
-../run ../fish/guestfish <<'EOF'
+${TOP_SRCDIR}/run ${TOP_BUILDDIR}/fish/guestfish <<EOF
 sparse debian.img.tmp 512M
 run
 
@@ -80,9 +80,9 @@ upload fstab.tmp /etc/fstab
 write /etc/debian_version "5.0.1"
 write /etc/hostname "debian.invalid"
 
-upload guest-aux/debian-packages /var/lib/dpkg/status
+upload ${SRCDIR}/guest-aux/debian-packages /var/lib/dpkg/status
 
-upload bin-x86_64-dynamic /bin/ls
+upload ${SRCDIR}/bin-x86_64-dynamic /bin/ls
 
 mkdir /boot/grub
 touch /boot/grub/grub.conf
diff --git a/images/guest-aux/make-fedora-img.sh b/images/guest-aux/make-fedora-img.sh
index a038432..26b4068 100755
--- a/images/guest-aux/make-fedora-img.sh
+++ b/images/guest-aux/make-fedora-img.sh
@@ -31,7 +31,7 @@ LABEL=ROOT / ext2 default 0 0
 EOF
 
 # Create a disk image.
-../run ../fish/guestfish <<'EOF'
+${TOP_SRCDIR}/run ${TOP_BUILDDIR}/fish/guestfish <<EOF
 sparse fedora.img.tmp 512M
 run
 
@@ -72,10 +72,10 @@ write /etc/redhat-release "Fedora release 14 (Phony)"
 write /etc/fedora-release "Fedora release 14 (Phony)"
 write /etc/sysconfig/network "HOSTNAME=fedora.invalid"
 
-upload guest-aux/fedora-name.db /var/lib/rpm/Name
-upload guest-aux/fedora-packages.db /var/lib/rpm/Packages
+upload ${BUILDDIR}/guest-aux/fedora-name.db /var/lib/rpm/Name
+upload ${BUILDDIR}/guest-aux/fedora-packages.db /var/lib/rpm/Packages
 
-upload bin-x86_64-dynamic /bin/ls
+upload ${SRCDIR}/bin-x86_64-dynamic /bin/ls
 
 mkdir /boot/grub
 touch /boot/grub/grub.conf
diff --git a/images/guest-aux/make-ubuntu-img.sh b/images/guest-aux/make-ubuntu-img.sh
index 4ddb40a..8ca622d 100755
--- a/images/guest-aux/make-ubuntu-img.sh
+++ b/images/guest-aux/make-ubuntu-img.sh
@@ -36,7 +36,7 @@ DISTRIB_DESCRIPTION="Ubuntu 10.10 (Phony Pharaoh)"
 EOF
 
 # Create a disk image.
-../run ../fish/guestfish <<'EOF'
+${TOP_SRCDIR}/run ${TOP_BUILDDIR}/fish/guestfish <<EOF
 sparse ubuntu.img.tmp 512M
 run
 
@@ -69,9 +69,9 @@ write /etc/debian_version "5.0.1"
 upload release.tmp /etc/lsb-release
 write /etc/hostname "ubuntu.invalid"
 
-upload guest-aux/debian-packages /var/lib/dpkg/status
+upload ${SRCDIR}/guest-aux/debian-packages /var/lib/dpkg/status
 
-upload bin-i586-dynamic /bin/ls
+upload ${SRCDIR}/bin-x86_64-dynamic /bin/ls
 
 mkdir /boot/grub
 touch /boot/grub/grub.conf
diff --git a/images/guest-aux/make-windows-img.sh b/images/guest-aux/make-windows-img.sh
index 3acb2b7..76cb0f8 100755
--- a/images/guest-aux/make-windows-img.sh
+++ b/images/guest-aux/make-windows-img.sh
@@ -25,7 +25,7 @@ set -e
 # ntfs-3g/ntfsprogs then we cannot create a Windows phony image.
 # Nothing actually uses windows.img in the standard build so we can
 # just 'touch' it and emit a warning.
-if ! ../run ../fish/guestfish -a /dev/null run : available "ntfs3g ntfsprogs"; then
+if ! ${TOP_SRCDIR}/run ${TOP_BUILDDIR}/fish/guestfish -a /dev/null run : available "ntfs3g ntfsprogs"; then
   echo "***"
   echo "Warning: cannot create windows.img because there is no NTFS"
   echo "support in this build of libguestfs.  Just touching the output"
@@ -36,7 +36,7 @@ if ! ../run ../fish/guestfish -a /dev/null run : available "ntfs3g ntfsprogs"; t
 fi
 
 # Create a disk image.
-../run ../fish/guestfish <<'EOF'
+${TOP_SRCDIR}/run ${TOP_BUILDDIR}/fish/guestfish <<EOF
 sparse windows.img.tmp 512M
 run
 
@@ -58,10 +58,10 @@ mkfs ntfs /dev/sda2
 mount-options "" /dev/sda2 /
 mkdir-p /Windows/System32/Config
 
-upload guest-aux/windows-software /Windows/System32/Config/SOFTWARE
-upload guest-aux/windows-system /Windows/System32/Config/SYSTEM
+upload ${SRCDIR}/guest-aux/windows-software /Windows/System32/Config/SOFTWARE
+upload ${SRCDIR}/guest-aux/windows-system /Windows/System32/Config/SYSTEM
 
-upload bin-win32.exe /Windows/System32/cmd.exe
+upload ${SRCDIR}/bin-win32.exe /Windows/System32/cmd.exe
 
 mkdir "/Program Files"
 touch /autoexec.bat
diff --git a/run b/run
index 2945315..0986fd8 100755
--- a/run
+++ b/run
@@ -35,12 +35,12 @@ b=$(dirname "$run")
 
 # Set TMPDIR so the appliance doesn't conflict with globally
 # installed libguestfs.
-export TMPDIR=$b
+export TMPDIR=${TMPDIR:-$b}
 
 # Set local environment relative to this script.
-export LD_LIBRARY_PATH="$b/src/.libs"
-export LIBGUESTFS_PATH="$b/appliance"
-export PERL5LIB="$b/perl/blib/lib:$b/perl/blib/arch"
+export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-"$b/src/.libs"}
+export LIBGUESTFS_PATH=${LIBGUESTFS_PATH:-"$b/appliance"}
+export PERL5LIB=${PERL5LIB:-"$b/perl/blib/lib:$b/perl/blib/arch"}
 
 # Do we have libtool?  If we have it then we can use it to make
 # running valgrind simpler.  However don't depend on it.
-- 
1.7.5.4




More information about the Libguestfs mailing list