From 70c033998e0e721dc4f9eb2a20348098b259752c Mon Sep 17 00:00:00 2001 From: Hilko Bengen Date: Thu, 18 Aug 2011 00:14:46 +0200 Subject: out-of-tree build: generate ./run from template, fix image checks ./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 | 1 + 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 +++++++++++++++++++++++++++++++++++ 9 files changed, 72 insertions(+), 72 deletions(-) delete mode 100755 run create mode 100755 run.in diff --git a/.gitignore b/.gitignore index fb040868..a4500fc8 100644 --- a/.gitignore +++ b/.gitignore @@ -306,6 +306,7 @@ ruby/ext/guestfs/_guestfs.c ruby/ext/guestfs/_guestfs.so ruby/ext/guestfs/mkmf.log ruby/Rakefile +run src/actions.c src/bindtests.c src/errnostring_gperf.c diff --git a/configure.ac b/configure.ac index 54c29119..e45632da 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 68eb5506..90c4ce31 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 9a01e938..4b0490df 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 </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 00000000..d7b91d4a --- /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 "$@" -- cgit