* [Buildroot] [PATCHv2] dependencies.sh: improve the missing perl modules detection
@ 2015-09-23 21:13 Vicente Olivert Riera
2015-09-24 4:08 ` Baruch Siach
0 siblings, 1 reply; 3+ messages in thread
From: Vicente Olivert Riera @ 2015-09-23 21:13 UTC (permalink / raw)
To: buildroot
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
---
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 | 30 +++++++++++++++++++++++++-----
1 file changed, 25 insertions(+), 5 deletions(-)
diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
index 01ad828..177292e 100755
--- a/support/dependencies/dependencies.sh
+++ b/support/dependencies/dependencies.sh
@@ -236,10 +236,30 @@ 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."
+# Verify that Perl is installed. Is needed to buid host-autoconf among
+# many other packages.
+check_prog_host "perl"
+
+# 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 Thread:Queue"
+
+# 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="$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
--
2.4.9
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Buildroot] [PATCHv2] dependencies.sh: improve the missing perl modules detection
2015-09-23 21:13 [Buildroot] [PATCHv2] dependencies.sh: improve the missing perl modules detection Vicente Olivert Riera
@ 2015-09-24 4:08 ` Baruch Siach
2015-09-24 7:14 ` Thomas Petazzoni
0 siblings, 1 reply; 3+ messages in thread
From: Baruch Siach @ 2015-09-24 4:08 UTC (permalink / raw)
To: buildroot
Hi Vincent,
On Wed, Sep 23, 2015 at 10:13:06PM +0100, Vicente Olivert Riera wrote:
> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
> ---
> 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 | 30 +++++++++++++++++++++++++-----
> 1 file changed, 25 insertions(+), 5 deletions(-)
>
> diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
> index 01ad828..177292e 100755
> --- a/support/dependencies/dependencies.sh
> +++ b/support/dependencies/dependencies.sh
> @@ -236,10 +236,30 @@ 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."
> +# Verify that Perl is installed. Is needed to buid host-autoconf among
> +# many other packages.
> +check_prog_host "perl"
> +
> +# Check that the Perl installation is complete enough for Buildroot.
> +# Here is the space-separated list of the required modules:
The original comment implied that Data::Dumper is a dependency of
host-autoconf. I guess the same is true for Thread:Queue. This is useful
information that IMO should be preserved. Maybe some thing like the following:
# Verify that some Perl modules that host-autoconf requires are installed.
> +required_perl_modules="Data::Dumper Thread:Queue"
> +
> +# 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="$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
baruch
--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] [PATCHv2] dependencies.sh: improve the missing perl modules detection
2015-09-24 4:08 ` Baruch Siach
@ 2015-09-24 7:14 ` Thomas Petazzoni
0 siblings, 0 replies; 3+ messages in thread
From: Thomas Petazzoni @ 2015-09-24 7:14 UTC (permalink / raw)
To: buildroot
Hello,
On Thu, 24 Sep 2015 07:08:40 +0300, Baruch Siach wrote:
> > +# Check that the Perl installation is complete enough for Buildroot.
> > +# Here is the space-separated list of the required modules:
>
> The original comment implied that Data::Dumper is a dependency of
> host-autoconf. I guess the same is true for Thread:Queue. This is useful
> information that IMO should be preserved. Maybe some thing like the following:
Actually, the Thread::Queue module seems to be used by automake, not
autoconf. It's actually what I guessed from the bug report. And it
seems to indeed be the case:
thomas at skate:~/projets/buildroot (master)$ grep -r Queue output/build/host-autoconf-2.69/*
output/build/host-autoconf-2.69/lib/Autom4te/Channels.pm: # Redirect all channels to push messages on a Thread::Queue using
output/build/host-autoconf-2.69/lib/Autom4te/Channels.pm: # Output a message pending in a Thread::Queue.
thomas at skate:~/projets/buildroot (master)$ grep -r Queue output/build/host-automake-1.15/*
output/build/host-automake-1.15/bin/automake.in: require Thread::Queue;
output/build/host-automake-1.15/bin/automake.in: import Thread::Queue;
output/build/host-automake-1.15/bin/automake.in:# Queue to push require_conf_file requirements to.
output/build/host-automake-1.15/bin/automake.in: my $file_queue = Thread::Queue->new;
output/build/host-automake-1.15/bin/automake.in: $msg_queues{$file} = Thread::Queue->new;
output/build/host-automake-1.15/bin/automake.in: # Queue all makefiles.
output/build/host-automake-1.15/lib/Automake/Channels.pm: # Redirect all channels to push messages on a Thread::Queue using
output/build/host-automake-1.15/lib/Automake/Channels.pm: # Output a message pending in a Thread::Queue.
output/build/host-automake-1.15/old/ChangeLog.09: Cope with absent Perl modules threads and Thread::Queue.
output/build/host-automake-1.15/old/ChangeLog.09: Thread::Queue.
output/build/host-automake-1.15/old/ChangeLog.09: Thread::Queue, and output messages from such a queue, suitably
output/build/host-automake-1.15/old/ChangeLog.09: to set a Thread::Queue for channels, and to flush a queue.
output/build/host-automake-1.15/old/ChangeLog.09: threading, then use `threads' and `Thread::Queue'.
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-09-24 7:14 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-23 21:13 [Buildroot] [PATCHv2] dependencies.sh: improve the missing perl modules detection Vicente Olivert Riera
2015-09-24 4:08 ` Baruch Siach
2015-09-24 7:14 ` Thomas Petazzoni
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.