# HG changeset patch # User Martin Kletzander # Date 1418041152 -3600 # Node ID 905bd2fe6c98b69bbb620f133bb199fbc2b80916 # Parent 73eb9fd6855c52f6e34bcee62620c4a56d05f3b0 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 diff -r 73eb9fd6855c -r 905bd2fe6c98 ChangeLog --- 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 (tiny change) + + bootstrap: Allow perl modules in $buildreq + * build-aux/bootstrap: Add case for perl modules. + 2014-12-08 Pádraig Brady apply _GL_ATTRIBUTE_PURE to some inline functions diff -r 73eb9fd6855c -r 905bd2fe6c98 build-aux/bootstrap --- 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