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