bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bootstrap $buildreq and implicit dependencies


From: Pádraig Brady
Subject: Re: bootstrap $buildreq and implicit dependencies
Date: Wed, 07 Dec 2011 17:26:10 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20110816 Thunderbird/6.0

On 12/07/2011 04:48 PM, Eric Blake wrote:
> 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  <address@hidden>
> +
> +     bootstrap: detect tools required by gnulib-tool
> +     * build-aux/bootstrap (buildreq): Provide minimum implicit
> +     dependencies.
> +
>  2011-12-01  Eric Blake  <address@hidden>
> 
>       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
> 
> 

That makes sense.
The caveat with the above is that if the an older version
was already specified, then user would get an incorrect
prompt about version requirements. That's an unlikely edge case TBH,
as the specification would be in error in any case,
and also the user might install the newest version
anyway to satisfy requirements.

cheers,
Pádraig.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]