changeset 37501:905bd2fe6c98

bootstrap: Allow perl modules in $buildreq With this patch it is possible to put e.g. "perl::XML:XPath -" in $buildreq in bootstrap.conf which will cause a check for perl module XML::XPath using: perl -m"XML::XPath" -e 'exit 0' >/dev/null 2>&1 If this fails due to any other error than XML::XPath missing, it is left on the user to fix up his/her bootstrap.conf. One of the examples might be perl itself missing, which should be in $buildreq and precede any perl::Module specifications. Versioning of perl modules is not supported. Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
author Martin Kletzander <mkletzan@redhat.com>
date Mon, 08 Dec 2014 13:19:12 +0100
parents 73eb9fd6855c
children dba0f73c28d8
files ChangeLog build-aux/bootstrap
diffstat 2 files changed, 21 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sat Dec 06 01:28:17 2014 +0000
+++ b/ChangeLog	Mon Dec 08 13:19:12 2014 +0100
@@ -1,3 +1,8 @@
+2014-12-08  Martin Kletzander  <mkletzan@redhat.com>  (tiny change)
+
+	bootstrap: Allow perl modules in $buildreq
+	* build-aux/bootstrap: Add case for perl modules.
+
 2014-12-08  Pádraig Brady  <P@draigBrady.com>
 
 	apply _GL_ATTRIBUTE_PURE to some inline functions
--- a/build-aux/bootstrap	Sat Dec 06 01:28:17 2014 +0000
+++ b/build-aux/bootstrap	Mon Dec 08 13:19:12 2014 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Print a version string.
-scriptversion=2013-12-05.23; # UTC
+scriptversion=2014-12-08.12; # UTC
 
 # Bootstrap this package from checked-out sources.
 
@@ -42,6 +42,9 @@
 
 local_gl_dir=gl
 
+# Honour $PERL, but work even if there is none
+PERL="${PERL-perl}"
+
 me=$0
 
 usage() {
@@ -456,6 +459,7 @@
     test "$appvar" = TAR && appvar=AMTAR
     case $appvar in
         GZIP) ;; # Do not use $GZIP:  it contains gzip options.
+        PERL::*) ;; # Keep perl modules as-is
         *) eval "app=\${$appvar-$app}" ;;
     esac
 
@@ -473,6 +477,17 @@
           ret=1
           continue
         } ;;
+      # Another check is for perl modules.  These can be written as
+      # e.g. perl::XML::XPath in case of XML::XPath module, etc.
+      perl::*)
+        # Extract module name
+        app="${app#perl::}"
+        if ! $PERL -m"$app" -e 'exit 0' >/dev/null 2>&1; then
+          warn_ "Error: perl module '$app' not found"
+          ret=1
+        fi
+        continue
+        ;;
     esac
     if [ "$req_ver" = "-" ]; then
       # Merely require app to exist; not all prereq apps are well-behaved