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 then XML::XPath missing, it is left on the user to fix up his/hers 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 <mklet...@redhat.com> --- Notes: v2: - Fix typo s/per::/perl::/ - Honour $PERL if it exists build-aux/bootstrap | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/build-aux/bootstrap b/build-aux/bootstrap index 4f0493a..6ab06d4 100755 --- a/build-aux/bootstrap +++ b/build-aux/bootstrap @@ -1,6 +1,6 @@ #! /bin/sh # Print a version string. -scriptversion=2013-12-05.23; # UTC +scriptversion=2014-12-08.11; # UTC # Bootstrap this package from checked-out sources. @@ -42,6 +42,9 @@ export LC_ALL local_gl_dir=gl +# Honour $PERL, but work even if there is none +PERL="${PERL-perl}" + me=$0 usage() { @@ -456,6 +459,7 @@ check_versions() { 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 @@ check_versions() { 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::*) + # Check for perl modules + 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 -- 2.2.0