./run can now be run in a separate build directory. Since some files
needed in the image checks are found in the source tree (but not the
build tree), the source tree location is passed to make-*-img.sh via
an environment variable.
---
configure.ac | 2 +
images/Makefile.am | 14 ++++-----
images/guest-aux/make-debian-img.sh | 6 ++--
images/guest-aux/make-fedora-img.sh | 4 +-
images/guest-aux/make-ubuntu-img.sh | 6 ++--
images/guest-aux/make-windows-img.sh | 8 ++--
run | 52 ----------------------------------
run.in | 51 +++++++++++++++++++++++++++++++++
8 files changed, 71 insertions(+), 72 deletions(-)
delete mode 100755 run
create mode 100755 run.in
diff --git a/configure.ac b/configure.ac
index 54c2911..e45632d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -909,6 +909,8 @@ AC_CONFIG_HEADERS([config.h])
dnl
http://www.mail-archive.com/automake@gnu.org/msg10204.html
AC_CONFIG_FILES([podwrapper.sh],
[chmod +x podwrapper.sh])
+AC_CONFIG_FILES([run],
+ [chmod +x run])
AC_CONFIG_FILES([Makefile
appliance/Makefile
capitests/Makefile
diff --git a/images/Makefile.am b/images/Makefile.am
index 68eb550..90c4ce3 100644
--- a/images/Makefile.am
+++ b/images/Makefile.am
@@ -173,41 +173,39 @@ $(builddir)/test-grep.txt.gz: test-grep.txt
fedora.img: guest-aux/make-fedora-img.sh \
guest-aux/fedora-name.db \
guest-aux/fedora-packages.db
- LIBGUESTFS_PATH=$(top_builddir)/appliance \
- LD_LIBRARY_PATH=$(top_builddir)/src/.libs \
TMPDIR=$(top_builddir) \
+ SRCDIR=$(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 $@
# Make a (dummy) Debian image.
debian.img: guest-aux/make-debian-img.sh
- LIBGUESTFS_PATH=$(top_builddir)/appliance \
- LD_LIBRARY_PATH=$(top_builddir)/src/.libs \
TMPDIR=$(top_builddir) \
+ SRCDIR=$(srcdir) \
bash $<
# Make a (dummy) Ubuntu image.
ubuntu.img: guest-aux/make-ubuntu-img.sh
- LIBGUESTFS_PATH=$(top_builddir)/appliance \
- LD_LIBRARY_PATH=$(top_builddir)/src/.libs \
TMPDIR=$(top_builddir) \
+ SRCDIR=$(srcdir) \
bash $<
# Make a (dummy) Windows image.
windows.img: guest-aux/make-windows-img.sh \
guest-aux/windows-software guest-aux/windows-system
- LIBGUESTFS_PATH=$(top_builddir)/appliance \
- LD_LIBRARY_PATH=$(top_builddir)/src/.libs \
TMPDIR=$(top_builddir) \
+ SRCDIR=$(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..4b0490d 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'
+../run ../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..3d6c471 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'
+../run ../fish/guestfish <<EOF
sparse fedora.img.tmp 512M
run
@@ -75,7 +75,7 @@ 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 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..c48fd5d 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'
+../run ../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..9e2152d 100755
--- a/images/guest-aux/make-windows-img.sh
+++ b/images/guest-aux/make-windows-img.sh
@@ -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'
+../run ../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
deleted file mode 100755
index 2945315..0000000
--- a/run
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash -
-# libguestfs 'run' programs locally script
-# Copyright (C) 2011 Red Hat Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-#----------------------------------------------------------------------
-
-# With this script you can run all the virt tools without needing to
-# install them first. You just have to do for example:
-#
-# ./run ./inspector/virt-inspector [args ...]
-#
-# This works for any C, OCaml or Perl virt tools in the libguestfs
-# distribution. Also you can make a symbolic link to this 'run'
-# script from anywhere (eg. $HOME/bin/run) if you wish.
-
-#----------------------------------------------------------------------
-
-# Find this script.
-run=$(readlink -f "$0")
-b=$(dirname "$run")
-
-# Set TMPDIR so the appliance doesn't conflict with globally
-# installed libguestfs.
-export 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"
-
-# Do we have libtool? If we have it then we can use it to make
-# running valgrind simpler. However don't depend on it.
-if libtool --help >/dev/null 2>&1; then
- libtool="libtool --mode=execute"
-fi
-
-# Run the program.
-exec $libtool "$@"
diff --git a/run.in b/run.in
new file mode 100755
index 0000000..d7b91d4
--- /dev/null
+++ b/run.in
@@ -0,0 +1,51 @@
+#!/bin/bash -
+# libguestfs 'run' programs locally script
+# Copyright (C) 2011 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+#----------------------------------------------------------------------
+
+# With this script you can run all the virt tools without needing to
+# install them first. You just have to do for example:
+#
+# ./run ./inspector/virt-inspector [args ...]
+#
+# This works for any C, OCaml or Perl virt tools in the libguestfs
+# distribution. Also you can make a symbolic link to this 'run'
+# script from anywhere (eg. $HOME/bin/run) if you wish.
+
+#----------------------------------------------------------------------
+
+# Find this script.
+b=@abs_builddir@
+
+# Set TMPDIR so the appliance doesn't conflict with globally
+# installed libguestfs.
+export 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"
+
+# Do we have libtool? If we have it then we can use it to make
+# running valgrind simpler. However don't depend on it.
+if libtool --help >/dev/null 2>&1; then
+ libtool="libtool --mode=execute"
+fi
+
+# Run the program.
+exec $libtool "$@"
--
1.7.5.4