out-of-tree build: generate ./run from template, fix image checks
authorHilko Bengen <bengen@hilluzination.de>
Wed, 17 Aug 2011 22:14:46 +0000 (00:14 +0200)
committerRichard W.M. Jones <rjones@redhat.com>
Thu, 18 Aug 2011 08:55:52 +0000 (09:55 +0100)
./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.

.gitignore
configure.ac
images/Makefile.am
images/guest-aux/make-debian-img.sh
images/guest-aux/make-fedora-img.sh
images/guest-aux/make-ubuntu-img.sh
images/guest-aux/make-windows-img.sh
run.in [moved from run with 96% similarity]

index fb04086..a4500fc 100644 (file)
@@ -306,6 +306,7 @@ ruby/ext/guestfs/_guestfs.c
 ruby/ext/guestfs/_guestfs.so
 ruby/ext/guestfs/mkmf.log
 ruby/Rakefile
 ruby/ext/guestfs/_guestfs.so
 ruby/ext/guestfs/mkmf.log
 ruby/Rakefile
+run
 src/actions.c
 src/bindtests.c
 src/errnostring_gperf.c
 src/actions.c
 src/bindtests.c
 src/errnostring_gperf.c
index 54c2911..e45632d 100644 (file)
@@ -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])
 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
 AC_CONFIG_FILES([Makefile
                  appliance/Makefile
                  capitests/Makefile
index 68eb550..90c4ce3 100644 (file)
@@ -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
 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) \
        TMPDIR=$(top_builddir) \
+       SRCDIR=$(srcdir) \
        bash $<
 
 guest-aux/fedora-name.db: guest-aux/fedora-name.db.txt
        rm -f $@ $@-t
        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
        $(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
        $(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) \
        TMPDIR=$(top_builddir) \
+       SRCDIR=$(srcdir) \
        bash $<
 
 # Make a (dummy) Ubuntu image.
 ubuntu.img: guest-aux/make-ubuntu-img.sh
        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) \
        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
        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) \
        TMPDIR=$(top_builddir) \
+       SRCDIR=$(srcdir) \
        bash $<
 
 # Since users might not have the tools needed to create this, we
        bash $<
 
 # Since users might not have the tools needed to create this, we
index 9a01e93..4b0490d 100755 (executable)
@@ -31,7 +31,7 @@ LABEL=BOOT /boot ext2 default 0 0
 EOF
 
 # Create a disk image.
 EOF
 
 # Create a disk image.
-../run ../fish/guestfish <<'EOF'
+../run ../fish/guestfish <<EOF
 sparse debian.img.tmp 512M
 run
 
 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"
 
 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
 
 mkdir /boot/grub
 touch /boot/grub/grub.conf
index a038432..3d6c471 100755 (executable)
@@ -31,7 +31,7 @@ LABEL=ROOT / ext2 default 0 0
 EOF
 
 # Create a disk image.
 EOF
 
 # Create a disk image.
-../run ../fish/guestfish <<'EOF'
+../run ../fish/guestfish <<EOF
 sparse fedora.img.tmp 512M
 run
 
 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 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
 
 mkdir /boot/grub
 touch /boot/grub/grub.conf
index 4ddb40a..c48fd5d 100755 (executable)
@@ -36,7 +36,7 @@ DISTRIB_DESCRIPTION="Ubuntu 10.10 (Phony Pharaoh)"
 EOF
 
 # Create a disk image.
 EOF
 
 # Create a disk image.
-../run ../fish/guestfish <<'EOF'
+../run ../fish/guestfish <<EOF
 sparse ubuntu.img.tmp 512M
 run
 
 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 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
 
 mkdir /boot/grub
 touch /boot/grub/grub.conf
index 3acb2b7..9e2152d 100755 (executable)
@@ -36,7 +36,7 @@ if ! ../run ../fish/guestfish -a /dev/null run : available "ntfs3g ntfsprogs"; t
 fi
 
 # Create a disk image.
 fi
 
 # Create a disk image.
-../run ../fish/guestfish <<'EOF'
+../run ../fish/guestfish <<EOF
 sparse windows.img.tmp 512M
 run
 
 sparse windows.img.tmp 512M
 run
 
@@ -58,10 +58,10 @@ mkfs ntfs /dev/sda2
 mount-options "" /dev/sda2 /
 mkdir-p /Windows/System32/Config
 
 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
 
 mkdir "/Program Files"
 touch /autoexec.bat
diff --git a/run b/run.in
similarity index 96%
rename from run
rename to run.in
index 2945315..d7b91d4 100755 (executable)
--- a/run
+++ b/run.in
 #----------------------------------------------------------------------
 
 # Find this script.
 #----------------------------------------------------------------------
 
 # Find this script.
-run=$(readlink -f "$0")
-b=$(dirname "$run")
+b=@abs_builddir@
 
 # Set TMPDIR so the appliance doesn't conflict with globally
 # installed libguestfs.
 
 # Set TMPDIR so the appliance doesn't conflict with globally
 # installed libguestfs.
-export TMPDIR=$b
+export TMPDIR="$b"
 
 # Set local environment relative to this script.
 export LD_LIBRARY_PATH="$b/src/.libs"
 
 # Set local environment relative to this script.
 export LD_LIBRARY_PATH="$b/src/.libs"