bug-gnulib
[Top][All Lists]
Advanced

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

Re: [bug #35580] bootstrap is not portable to OpenBSD


From: Pádraig Brady
Subject: Re: [bug #35580] bootstrap is not portable to OpenBSD
Date: Sat, 17 Aug 2013 22:36:49 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2

On 08/11/2013 09:53 PM, Mike Miller wrote:
> On Fri, Aug 09, 2013 at 16:34:24 +0100, Pádraig Brady wrote:
>> Excellent. I intend to push the attached change to bootstrap so,
>> that includes sha1 in the list now it's compatible, so therefore
>> not requiring one to set SHA1SUM on BSD at all.
> 
> I tested the change you pushed to gnulib. It still requires passing
> SHA1SUM, since a program from the default list must still understand the
> --version option to be accepted. But other than that, it works now.

Oops right. I'll probably address that through the following untested 
refactoring:

diff --git a/build-aux/bootstrap b/build-aux/bootstrap
index df763de..d136af6 100755
--- a/build-aux/bootstrap
+++ b/build-aux/bootstrap
@@ -209,12 +209,16 @@ bootstrap_sync=false
 # Use git to update gnulib sources
 use_git=true

+check_exists() {
+  ($1 --version </dev/null) >/dev/null 2>&1
+  test $? -lt 126
+}
+
 # find_tool ENVVAR NAMES...
 # -------------------------
 # Search for a required program.  Use the value of ENVVAR, if set,
-# otherwise find the first of the NAMES that can be run (i.e.,
-# supports --version).  If found, set ENVVAR to the program name,
-# die otherwise.
+# otherwise find the first of the NAMES that can be run.
+# If found, set ENVVAR to the program name, die otherwise.
 #
 # FIXME: code duplication, see also gnu-web-doc-update.
 find_tool ()
@@ -225,7 +229,7 @@ find_tool ()
   eval "find_tool_res=\$$find_tool_envvar"
   if test x"$find_tool_res" = x; then
     for i; do
-      if ($i --version </dev/null) >/dev/null 2>&1; then
+      if check_exists $i; then
         find_tool_res=$i
         break
       fi
@@ -463,8 +467,7 @@ check_versions() {
     if [ "$req_ver" = "-" ]; then
       # Merely require app to exist; not all prereq apps are well-behaved
       # so we have to rely on $? rather than get_version.
-      $app --version >/dev/null 2>&1 </dev/null
-      if [ 126 -le $? ]; then
+      if ! check_exists $app; then
         warn_ "Error: '$app' not found"
         ret=1
       fi
@@ -551,10 +554,10 @@ fi
 echo "$0: Bootstrapping from checked-out $package sources..."

 # See if we can use gnulib's git-merge-changelog merge driver.
-if $use_git && test -d .git && (git --version) >/dev/null 2>/dev/null ; then
+if $use_git && test -d .git && check_exists git; then
   if git config merge.merge-changelog.driver >/dev/null ; then
     :
-  elif (git-merge-changelog --version) >/dev/null 2>/dev/null ; then
+  elif check_exists git-merge-changelog; then
     echo "$0: initializing git-merge-changelog driver"
     git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver'
     git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B'

> 
>> Also I've implemented the optimization not to look for sha1sum
>> at all, when not updating po files.
> 
> This works now.

thanks for checking.

Pádraig.




reply via email to

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