dependencies.sh: improve the missing perl modules detection
PATCH v6 1/1 dependencies.sh: improve the missing perl modules detection
---
Changes v5 -> v6:
- Remove the check for perl itself, as is already done at line #161.
Changes v4 -> v5:
- Use the string concatenation operator (+=) to assing the values to the required_perl_modules. That way the comments about why each module is needed can be in the same line where the module is added to the variable.
Use also += for the missing_perl_modules variable.
Changes v3 -> v4:
- Thread::Queue module is actually needed because host-automake uses it. Comment modified accordingly. (Highlighted by Thomas Petazzoni)
Changes v2 -> v3:
- Add comments about why each module is needed. (Suggested by Baruch Siach)
Changes v1 -> v2:
- Check first for perl itself, and then the modules. Also keep the comment which says that perl is needed to build host-autoconf. (Suggested by Baruch Siach)
support/dependencies/dependencies.sh | 27 ++++++++++++++++++++++----- 1 files changed, 22 insertions(+), 5 deletions(-)
support/dependencies/dependencies.sh +22 -5
@@ -236,10 +236,27 @@ if grep -q ^BR2_HOSTARCH_NEEDS_IA32_COMPILER=y $BR2_CONFIG ; then fi fi -# Check that the Perl installation is complete enough to build -# host-autoconf. -if ! perl -e "require Data::Dumper" > /dev/null 2>&1 ; then - echo "Your Perl installation is not complete enough, at least Data::Dumper is missing." - echo "On Debian/Ubuntu distributions, install the 'perl' package." +# Check that the Perl installation is complete enough for Buildroot. +# Here is the space-separated list of the required modules. +required_perl_modules="Data::Dumper" # Needed to build host-autoconf +required_perl_modules+=" Thread:Queue" # Used by host-automake + +# This variable will keep the modules that are missing in your system. +missing_perl_modules="" + +for pm in $required_perl_modules ; do + if ! perl -e "require $pm" > /dev/null 2>&1 ; then + missing_perl_modules+=" $pm" + fi +done + +if [ -n "$missing_perl_modules" ] ; then + echo "Your Perl installation is not complete enough; at least the following" + echo "modules are missing:" + echo "" + for pm in $missing_perl_modules ; do + echo -e "\t $pm" + done + echo "" exit 1 fi
Signature · 1 line
1.7.1
PATCH v6 1/1 dependencies.sh: improve the missing perl modules detection
Vicente,
I think the patch is great, but there are some implementation issues, see below.
support/dependencies/dependencies.sh if grep -q ^BR2_HOSTARCH_NEEDS_IA32_COMPILER=y $BR2_CONFIG ; then · line 240
Quoted 7 lines · Vicente Olivert Riera
support/dependencies/dependencies.sh +2
-5-# Check that the Perl installation is complete enough to build -# host-autoconf. -if ! perl -e "require Data::Dumper" > /dev/null 2>&1 ; then - echo "Your Perl installation is not complete enough, at least Data::Dumper is missing." - echo "On Debian/Ubuntu distributions, install the 'perl' package." +# Check that the Perl installation is complete enough for Buildroot. +# Here is the space-separated list of the required modules.
The space-separated comment doesn't make much sense IMO.
support/dependencies/dependencies.sh if grep -q ^BR2_HOSTARCH_NEEDS_IA32_COMPILER=y $BR2_CONFIG ; then · line 242
Quoted 2 lines
support/dependencies/dependencies.sh +2
-0+required_perl_modules="Data::Dumper" # Needed to build host-autoconf +required_perl_modules+=" Thread:Queue" # Used by host-automake
The += operator is bash specific, and not POSIX compliant. Since this dependencies.sh script specifies #!/bin/sh, you're not guaranteed to be executed with bash.
support/dependencies/dependencies.sh if grep -q ^BR2_HOSTARCH_NEEDS_IA32_COMPILER=y $BR2_CONFIG ; then · line 249
Quoted 7 lines
support/dependencies/dependencies.sh +7
-0+ +# This variable will keep the modules that are missing in your system. +missing_perl_modules="" + +for pm in $required_perl_modules ; do + if ! perl -e "require $pm" > /dev/null 2>&1 ; then + missing_perl_modules+=" $pm"
Ditto.
support/dependencies/dependencies.sh if grep -q ^BR2_HOSTARCH_NEEDS_IA32_COMPILER=y $BR2_CONFIG ; then · line 256
Quoted 7 lines
support/dependencies/dependencies.sh +7
-0+ fi +done + +if [ -n "$missing_perl_modules" ] ; then + echo "Your Perl installation is not complete enough; at least the following" + echo "modules are missing:" + echo ""
Quotes not needed here, just "echo" is sufficient.
support/dependencies/dependencies.sh if grep -q ^BR2_HOSTARCH_NEEDS_IA32_COMPILER=y $BR2_CONFIG ; then · line 260
Quoted 4 lines
support/dependencies/dependencies.sh +4
-0+ for pm in $missing_perl_modules ; do + echo -e "\t $pm" + done + echo ""
Ditto.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v6 1/1 dependencies.sh: improve the missing perl modules detection
Hi Thomas,
thanks a lot for your review. See comments below, please.
Quoted 7 lines · Thomas Petazzoni
Vicente,
I think the patch is great, but there are some implementation issues, see below.
On Fri, 25 Sep 2015 11:06:25 +0100, Vicente Olivert Riera wrote:
Quoted 9 lines
support/dependencies/dependencies.sh if grep -q ^BR2_HOSTARCH_NEEDS_IA32_COMPILER=y $BR2_CONFIG ; then · line 240
Quoted 7 lines
support/dependencies/dependencies.sh +2
-5-# Check that the Perl installation is complete enough to build -# host-autoconf. -if ! perl -e "require Data::Dumper" > /dev/null 2>&1 ; then - echo "Your Perl installation is not complete enough, at least Data::Dumper is missing." - echo "On Debian/Ubuntu distributions, install the 'perl' package." +# Check that the Perl installation is complete enough for Buildroot. +# Here is the space-separated list of the required modules.The space-separated comment doesn't make much sense IMO.
Uhm..., ok. I think having two examples (Data::Dumper and Thread:Queue) is enough to understand how to add more modules to the list. I will remove the comment.
Quoted 6 lines
support/dependencies/dependencies.sh if grep -q ^BR2_HOSTARCH_NEEDS_IA32_COMPILER=y $BR2_CONFIG ; then · line 242
Quoted 2 lines
support/dependencies/dependencies.sh +2
-0+required_perl_modules="Data::Dumper" # Needed to build host-autoconf +required_perl_modules+=" Thread:Queue" # Used by host-automakeThe += operator is bash specific, and not POSIX compliant. Since this
dependencies.shscript specifies #!/bin/sh, you're not guaranteed to be executed with bash.
Totally true, I will fix that. Thanks!
Quoted 9 lines
support/dependencies/dependencies.sh if grep -q ^BR2_HOSTARCH_NEEDS_IA32_COMPILER=y $BR2_CONFIG ; then · line 249
Quoted 7 lines
support/dependencies/dependencies.sh +7
-0+ +# This variable will keep the modules that are missing in your system. +missing_perl_modules="" + +for pm in $required_perl_modules ; do + if ! perl -e "require $pm" > /dev/null 2>&1 ; then + missing_perl_modules+=" $pm"Ditto.
Noted.
Quoted 9 lines
support/dependencies/dependencies.sh if grep -q ^BR2_HOSTARCH_NEEDS_IA32_COMPILER=y $BR2_CONFIG ; then · line 256
Quoted 7 lines
support/dependencies/dependencies.sh +7
-0+ fi +done + +if [ -n "$missing_perl_modules" ] ; then + echo "Your Perl installation is not complete enough; at least the following" + echo "modules are missing:" + echo ""Quotes not needed here, just "echo" is sufficient.
Yeah, that's right.
Quoted 6 lines
support/dependencies/dependencies.sh if grep -q ^BR2_HOSTARCH_NEEDS_IA32_COMPILER=y $BR2_CONFIG ; then · line 260
Quoted 4 lines
support/dependencies/dependencies.sh +4
-0+ for pm in $missing_perl_modules ; do + echo -e "\t $pm" + done + echo ""Ditto.
Noted.
I will send a new version today.
Regards,
Vincent.
Quoted 2 lines
Thomas