bootstrap: fix handling of various perl --version formats
authorPádraig Brady <P@draigBrady.com>
Mon, 30 Nov 2009 13:01:44 +0000 (14:01 +0100)
committerJim Meyering <meyering@redhat.com>
Mon, 30 Nov 2009 13:04:43 +0000 (14:04 +0100)
* bootstrap (get_version): Don't use perl's $] special
variable, as that requires updating all bootstrap.conf files to
use perl's x.yyyzzz version format.  Instead make the regular
expression more general to support version formats from older
perl-5.005_002 (5.5.2) and perl-5.11 which has other numbers
in the version line.

bootstrap

index a837194..8cba3be 100755 (executable)
--- a/bootstrap
+++ b/bootstrap
@@ -311,20 +311,23 @@ sort_ver() { # sort -V is not generally available
 get_version() {
   app=$1
 
-  # perl 5.11's --version output does not fit the mold,
-  # handle perl as a special case.
-  if test "_$app" = _perl; then
-      perl -le 'print $]' || return 1
-      return 0
-  fi
-
   $app --version >/dev/null 2>&1 || return 1
 
   $app --version 2>&1 |
-  sed -n 's/[^0-9.]*\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/p
+  sed -n '# extract version within line
+          s/.*[v ]\{1,\}\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/
+          t done
+
+          # extract version at start of line
+          s/^\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/
           t done
+
           d
+
           :done
+          #the following essentially does s/5.005/5.5/
+          s/\.0*\([1-9]\)/.\1/g
+          p
           q'
 }