The libvirt list just had a report of someone that got past bootstrap's
$buildreq version check, only to fail in gnulib-tool when applying
gnulib-local patches.  Libvirt itself doesn't need patch during
configure or make, so it wasn't listed in cfg.mk, and Alex didn't have
patch(1) installed, but the resulting error from bootstrap was rather
confusing.

Should we enhance bootstrap so as to require implicit build dependencies
on patch, autoconf 2.59 or newer, and automake 1.9 or newer, in addition
to whatever the cfg.mk dependencies list?  Of course, cfg.mk can require
a newer minimum version on any of these tools.

In other words, does this patch look sane?

diff --git i/ChangeLog w/ChangeLog
index c8699f7..a608aa8 100644
--- i/ChangeLog
+++ w/ChangeLog
@@ -1,3 +1,9 @@
+2011-12-07  Eric Blake  <[email protected]>
+
+       bootstrap: detect tools required by gnulib-tool
+       * build-aux/bootstrap (buildreq): Provide minimum implicit
+       dependencies.
+
 2011-12-01  Eric Blake  <[email protected]>

        mktempd: silence dd usage
diff --git i/build-aux/bootstrap w/build-aux/bootstrap
index f76db9a..6aaaa0e 100755
--- i/build-aux/bootstrap
+++ w/build-aux/bootstrap
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Print a version string.
-scriptversion=2011-08-11.17; # UTC
+scriptversion=2011-12-07.16; # UTC

 # Bootstrap this package from checked-out sources.

@@ -473,6 +473,21 @@ if test $use_libtool = 1; then
   find_tool LIBTOOLIZE glibtoolize libtoolize
 fi

+case $buildreq in
+  automake) ;;
+  *) buildreq="$buildreq
+automake 1.9" ;;
+esac
+case $buildreq in
+  autoconf) ;;
+  *) buildreq="$buildreq
+autoconf 2.59" ;;
+esac
+case $buildreq in
+  patch) ;;
+  *) buildreq="$buildreq
+patch -" ;;
+esac
 if ! printf "$buildreq" | check_versions; then
   echo >&2
   if test -f README-prereq; then


-- 
Eric Blake   [email protected]    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to