]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
bootstrap: specify particular version in buildreq with =x.y.
authorGary V. Vaughan <gary@gnu.org>
Tue, 7 Jan 2014 01:16:34 +0000 (14:16 +1300)
committerGary V. Vaughan <gary@gnu.org>
Tue, 7 Jan 2014 01:23:06 +0000 (14:23 +1300)
* gl/build-aux/bootstrap.in (func_check_versions): If the version
number begins with '=' then it must match the installed version of
the named tool exactly.
* gl/doc/bootstrap.texi (buildreq): Document the '=vernum' feature.
* bootstrap: Regenerate.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
bootstrap
gl/build-aux/bootstrap.in
gl/doc/bootstrap.texi

index b5b6730cda1b009e6316b30a37d84e118299ba85..4ca10e452728d6dda8e00c28c5ae03a32e5723fc 100755 (executable)
--- a/bootstrap
+++ b/bootstrap
@@ -4805,9 +4805,6 @@ delimited list of triples; 'program min-version url'."
       else
         _G_instver=`func_get_version $_G_app`
 
-        test -z "$_G_instver" \
-            || func_verbose "found '$_G_app' version $_G_instver."
-
         # Fail if --version didn't work.
         if test -z "$_G_instver"; then
           func_error "Prerequisite '$_G_app' not found. Please install it, or
@@ -4816,12 +4813,29 @@ delimited list of triples; 'program min-version url'."
 
         # Fail if a newer version than what we have is required.
         else
-          func_lt_ver "$_G_reqver" "$_G_instver" || {
-            func_error "\
+          func_verbose "found '$_G_app' version $_G_instver."
+
+         case $_G_reqver in
+            =*)
+              # If $buildreq version starts with '=', version must
+             # match the installed program exactly.
+             test "x$_G_reqver" = "x=$_G_instver" || {
+               func_error "\
+  '$_G_app' version == $_G_instver is too old
+  'exactly $_G_app-$_G_reqver is required"
+                func_check_versions_result=false
+              }
+             ;;
+           *)
+              # Otherwise, anything that is not older is a match.
+              func_lt_ver "$_G_reqver" "$_G_instver" || {
+                func_error "\
   '$_G_app' version == $_G_instver is too old
   '$_G_app' version >= $_G_reqver is required"
             func_check_versions_result=false
-          }
+              }
+             ;;
+         esac
         fi
       fi
     done
index 7fc0c129c194fcd53f3de8231602e79d212c4355..71ff3aefe661412a8f09cebff0c5a23034468c80 100755 (executable)
@@ -2474,9 +2474,6 @@ delimited list of triples; 'program min-version url'."
       else
         _G_instver=`func_get_version $_G_app`
 
-        test -z "$_G_instver" \
-            || func_verbose "found '$_G_app' version $_G_instver."
-
         # Fail if --version didn't work.
         if test -z "$_G_instver"; then
           func_error "Prerequisite '$_G_app' not found. Please install it, or
@@ -2485,12 +2482,29 @@ delimited list of triples; 'program min-version url'."
 
         # Fail if a newer version than what we have is required.
         else
-          func_lt_ver "$_G_reqver" "$_G_instver" || {
-            func_error "\
+          func_verbose "found '$_G_app' version $_G_instver."
+
+         case $_G_reqver in
+            =*)
+              # If $buildreq version starts with '=', version must
+             # match the installed program exactly.
+             test "x$_G_reqver" = "x=$_G_instver" || {
+               func_error "\
+  '$_G_app' version == $_G_instver is too old
+  'exactly $_G_app-$_G_reqver is required"
+                func_check_versions_result=false
+              }
+             ;;
+           *)
+              # Otherwise, anything that is not older is a match.
+              func_lt_ver "$_G_reqver" "$_G_instver" || {
+                func_error "\
   '$_G_app' version == $_G_instver is too old
   '$_G_app' version >= $_G_reqver is required"
             func_check_versions_result=false
-          }
+              }
+             ;;
+         esac
         fi
       fi
     done
index a45793133a510c9f29b5e4414bf7c1be47cdd71a..2f7b38223cbb10bc1d8e62f4684725f67f138f94 100755 (executable)
@@ -82,6 +82,11 @@ requirement for Autobuild is added automatically, and finally if there
 are any diff files under @code{local_gl_dir}, then a versionless
 requirement for patch is also added.
 
+When there are backwards incompatibilities in a newer build-tool
+release, you can pin the version requirement for your program by
+prefixing the version number field in buildreq with a single '='
+character (no spaces).
+
 When @command{bootstrap} is invoked, it will check that all the listed
 and automatically added tools are available at the given minimum version,
 or else bail out with a diagnostic.