All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v8 01/11] host-qemu: new package
@ 2012-09-25 17:18 Francois Perrad
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 02/11] perl: " Francois Perrad
                   ` (11 more replies)
  0 siblings, 12 replies; 40+ messages in thread
From: Francois Perrad @ 2012-09-25 17:18 UTC (permalink / raw)
  To: buildroot

only user mode for the current target architecture

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 package/Config.in.host      |    1 +
 package/qemu/Config.in.host |   15 +++++++++++++++
 package/qemu/qemu.mk        |   43 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 59 insertions(+)
 create mode 100644 package/qemu/Config.in.host
 create mode 100644 package/qemu/qemu.mk

diff --git a/package/Config.in.host b/package/Config.in.host
index 79050f2..bf95a10 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -4,6 +4,7 @@ source "package/dfu-util/Config.in.host"
 source "package/lpc3250loader/Config.in.host"
 source "package/omap-u-boot-utils/Config.in.host"
 source "package/openocd/Config.in.host"
+source "package/qemu/Config.in.host"
 source "package/sam-ba/Config.in.host"
 source "package/uboot-tools/Config.in.host"
 
diff --git a/package/qemu/Config.in.host b/package/qemu/Config.in.host
new file mode 100644
index 0000000..379507c
--- /dev/null
+++ b/package/qemu/Config.in.host
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_HOST_QEMU
+	bool "host qemu"
+	help
+	  QEMU is a generic and open source machine emulator and virtualizer.
+
+	  In user mode emulation, QEMU runs single cross-compiled programs.
+	  Fast cross-compilation and cross-debugging are the main targets
+	  for user-mode emulation.
+
+	  In system mode emulation, QEMU emulates a full computer system,
+	  including peripherals, and handles the filesystem image generated
+	  by Buildroot.
+	  (Buildroot is shipped with many configs/qemu_*_defconfig files).
+
+	  http://qemu.org/
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
new file mode 100644
index 0000000..d727f49
--- /dev/null
+++ b/package/qemu/qemu.mk
@@ -0,0 +1,43 @@
+#############################################################
+#
+# qemu
+#
+#############################################################
+
+QEMU_VERSION = 1.2.0
+QEMU_SOURCE = qemu-$(QEMU_VERSION).tar.bz2
+QEMU_SITE = http://wiki.qemu.org/download
+
+HOST_QEMU_DEPENDENCIES =
+
+QEMU_ARCH=$(ARCH)
+ifeq ($(QEMU_ARCH),i686)
+    QEMU_ARCH=i386
+endif
+HOST_QEMU_TARGETS=$(QEMU_ARCH)-linux-user
+
+define HOST_QEMU_CONFIGURE_CMDS
+	(cd $(@D); ./configure                          \
+		--target-list="$(HOST_QEMU_TARGETS)"    \
+		--prefix="$(HOST_DIR)/usr"              \
+		--interp-prefix=$(STAGING_DIR)          \
+		--cc="$(HOSTCC)"                        \
+		--host-cc="$(HOSTCC)"                   \
+		--extra-cflags="$(HOST_CFLAGS)"         \
+		--extra-ldflags="$(HOST_LDFLAGS)"       \
+	)
+endef
+
+define HOST_QEMU_BUILD_CMDS
+	$(MAKE) -C $(@D) all
+endef
+
+define HOST_QEMU_INSTALL_CMDS
+	$(MAKE) -C $(@D) install
+endef
+
+define HOST_QEMU_CLEAN_CMDS
+	$(MAKE) -C $(@D) clean
+endef
+
+$(eval $(host-generic-package))
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 02/11] perl: new package
  2012-09-25 17:18 [Buildroot] [PATCH v8 01/11] host-qemu: new package Francois Perrad
@ 2012-09-25 17:18 ` Francois Perrad
  2012-10-04 20:40   ` Thomas Petazzoni
                     ` (2 more replies)
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 03/11] perl: add an option for miniperl Francois Perrad
                   ` (10 subsequent siblings)
  11 siblings, 3 replies; 40+ messages in thread
From: Francois Perrad @ 2012-09-25 17:18 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 package/Config.in                      |    1 +
 package/perl/Config.in                 |    9 +++
 package/perl/perl-configure-qemu.patch |   43 ++++++++++++++
 package/perl/perl-make-ext.patch       |   24 ++++++++
 package/perl/perl-mkppport.patch       |   37 ++++++++++++
 package/perl/perl.mk                   |   99 ++++++++++++++++++++++++++++++++
 6 files changed, 213 insertions(+)
 create mode 100644 package/perl/Config.in
 create mode 100644 package/perl/perl-configure-qemu.patch
 create mode 100644 package/perl/perl-make-ext.patch
 create mode 100644 package/perl/perl-mkppport.patch
 create mode 100644 package/perl/perl.mk

diff --git a/package/Config.in b/package/Config.in
index f308de7..00a79ab 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -262,6 +262,7 @@ source "package/wsapi/Config.in"
 source "package/xavante/Config.in"
 endmenu
 endif
+source "package/perl/Config.in"
 source "package/microperl/Config.in"
 source "package/php/Config.in"
 source "package/python/Config.in"
diff --git a/package/perl/Config.in b/package/perl/Config.in
new file mode 100644
index 0000000..6b7a986
--- /dev/null
+++ b/package/perl/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_PERL
+	bool "perl"
+	select BR2_PACKAGE_HOST_QEMU
+	help
+	  Larry Wall's Practical Extraction and Report Language
+	  An interpreted scripting language, known among some as "Unix's Swiss
+	  Army Chainsaw".
+
+	  http://www.perl.org/
diff --git a/package/perl/perl-configure-qemu.patch b/package/perl/perl-configure-qemu.patch
new file mode 100644
index 0000000..921ac0b
--- /dev/null
+++ b/package/perl/perl-configure-qemu.patch
@@ -0,0 +1,43 @@
+Add qemu support
+
+see https://rt.perl.org/rt3//Public/Bug/Display.html?id=114798
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/Configure
+===================================================================
+--- a/Configure
++++ b/Configure
+@@ -2868,7 +2868,7 @@
+ 	case "$targetfrom" in
+ 	'') targetfrom=scp ;;
+ 	esac
+-    	run=$run-$targetrun
++    	run=$run-`basename $targetrun`
+     	to=$to-$targetto
+     	from=$from-$targetfrom
+ 	case "$targetdir" in
+@@ -2908,6 +2908,14 @@
+ $targetrun -l $targetuser $targethost "cd \$cwd && ./\$exe \$@"
+ EOF
+ 	    ;;
++	*qemu*)
++	    to=:
++	    from=:
++	    cat >$run <<EOF
++#!/bin/sh
++$targetrun -L $qemulib "\$@"
++EOF
++	    ;;
+ 	*)  echo "Unknown targetrun '$targetrun'" >&4
+ 	    exit 1
+ 	    ;;
+@@ -5048,7 +5056,7 @@
+ echo " ";
+ echo "Checking if your compiler accepts $flag" 2>&1;
+ echo "int main(void) { return 0; }" > gcctest.c;
+-if $cc -O2 $flag -o gcctest gcctest.c 2>gcctest.out && ./gcctest; then
++if $cc -O2 $flag -o gcctest gcctest.c 2>gcctest.out && $run ./gcctest; then
+     echo "Yes, it does." 2>&1;
+     if $test -s gcctest.out ; then
+         echo "But your platform does not like it:";
diff --git a/package/perl/perl-make-ext.patch b/package/perl/perl-make-ext.patch
new file mode 100644
index 0000000..e0195e7
--- /dev/null
+++ b/package/perl/perl-make-ext.patch
@@ -0,0 +1,24 @@
+Don't use RUN with make (only for perl)
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/make_ext.pl
+===================================================================
+--- a/make_ext.pl
++++ b/make_ext.pl
+@@ -458,11 +458,13 @@
+ 	# Give makefile an opportunity to rewrite itself.
+ 	# reassure users that life goes on...
+ 	my @args = ('config', @$pass_through);
+-	system(@run, @make, @args) and print "@run @make @args failed, continuing anyway...\n";
++#	system(@run, @make, @args) and print "@run @make @args failed, continuing anyway...\n";
++	system(@make, @args) and print "@make @args failed, continuing anyway...\n";
+     }
+     my @targ = ($target, @$pass_through);
+     print "Making $target in $ext_dir\n at run @make @targ\n";
+-    my $code = system(@run, @make, @targ);
++#    my $code = system(@run, @make, @targ);
++    my $code = system(@make, @targ);
+     die "Unsuccessful make($ext_dir): code=$code" if $code != 0;
+ 
+     chdir $return_dir || die "Cannot cd to $return_dir: $!";
diff --git a/package/perl/perl-mkppport.patch b/package/perl/perl-mkppport.patch
new file mode 100644
index 0000000..97f27a2
--- /dev/null
+++ b/package/perl/perl-mkppport.patch
@@ -0,0 +1,37 @@
+Add RUN
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/mkppport
+===================================================================
+--- a/mkppport
++++ b/mkppport
+@@ -1,6 +1,7 @@
+ use strict;
+ use warnings;
+ 
++use Config;
+ use Getopt::Long;
+ use File::Spec;
+ use File::Compare qw( compare );
+@@ -136,14 +137,18 @@
+ #----------------------------------------------
+ sub run
+ {
++  my @run = $Config{run};
++  @run = () if not defined $run[0] or $run[0] eq '';
+   my @args = ("-I" . File::Spec->catdir((File::Spec->updir) x 2, 'lib'), @_);
+   my $run = $perl =~ m/\s/ ? qq("$perl") : $perl;
+   for (@args) {
+     $_ = qq("$_") if $^O eq 'VMS' && /^[^"]/;
+     $run .= " $_";
+   }
+-  print "running $run\n";
+-  system $run and die "$run failed: $?\n";
++#  print "running $run\n";
++#  system $run and die "$run failed: $?\n";
++  print "running ", join(' ', @run, $run), "\n";
++  system join(' ', @run, $run) and die "@run $run failed: $?\n";
+ }
+ 
+ __END__
diff --git a/package/perl/perl.mk b/package/perl/perl.mk
new file mode 100644
index 0000000..7d60ca7
--- /dev/null
+++ b/package/perl/perl.mk
@@ -0,0 +1,99 @@
+#############################################################
+#
+# perl
+#
+#############################################################
+
+PERL_VERSION_MAJOR = 16
+PERL_VERSION = 5.$(PERL_VERSION_MAJOR).1
+PERL_SITE = http://www.cpan.org/src/5.0
+PERL_SOURCE = perl-$(PERL_VERSION).tar.bz2
+PERL_LICENSE = Artistic
+PERL_LICENSE_FILES = Artistic
+PERL_INSTALL_STAGING = YES
+PERL_DEPENDENCIES = host-qemu
+
+ifeq ($(shell expr $(PERL_VERSION_MAJOR) % 2), 1)
+    PERL_USE_DEVEL=-Dusedevel
+endif
+
+ifneq ($(BR2_LARGEFILE),y)
+    PERL_NO_LARGEFILE=-Uuselargefiles
+endif
+
+PERL_ARCH=$(ARCH)
+ifeq ($(PERL_ARCH),i686)
+    PERL_ARCH=i386
+endif
+PERL_QEMU_USER_MODE=$(HOST_DIR)/usr/bin/qemu-$(PERL_ARCH)
+
+define PERL_CONFIGURE_CMDS
+	rm -f $(@D)/config.sh
+	(cd $(@D); ./Configure -des \
+		-Dusecrosscompile \
+		-Dtargetrun=$(PERL_QEMU_USER_MODE) \
+		-Dqemulib=$(STAGING_DIR) \
+		-Dtargethost=dummy \
+		-Dar="$(TARGET_AR)" \
+		-Dcc="$(TARGET_CC)" \
+		-Dcpp="$(TARGET_CC)" \
+		-Dld="$(TARGET_LD)" \
+		-Dnm="$(TARGET_NM)" \
+		-Dranlib="$(TARGET_RANLIB)" \
+		-Dccflags="$(TARGET_CFLAGS)" \
+		-Dldflags="$(TARGET_LDFLAGS) -l gcc_s" \
+		-Dlddlflags="-shared" \
+		-Dlibc=$(TARGET_HOST)/usr/$(GNU_TARGET_NAME)/sysroot/lib/libc.so \
+		-Duseshrplib \
+		-Dprefix=/usr \
+		-Uoptimize \
+		$(PERL_USE_DEVEL) \
+		$(PERL_NO_LARGEFILE))
+	echo "# patched values"                 >>$(@D)/config.sh
+	$(SED) '/^myarchname=/d' \
+		-e '/^mydomain=/d' \
+		-e '/^myhostname=/d' \
+		-e '/^myuname=/d' \
+		-e '/^osname=/d' \
+		-e '/^osvers=/d' \
+		-e '/^perladmin=/d' \
+		$(@D)/config.sh
+	echo "myarchname='$(GNU_TARGET_NAME)'"                  >>$(@D)/config.sh
+	echo "mydomain=''"                                      >>$(@D)/config.sh
+	echo "myhostname='$(BR2_TARGET_GENERIC_HOSTNAME)'"      >>$(@D)/config.sh
+	echo "myuname='Buildroot $(BR2_VERSION_FULL)'"          >>$(@D)/config.sh
+	echo "osname='linux'"                                   >>$(@D)/config.sh
+	echo "osvers='$(BR2_LINUX_KERNEL_VERSION)'"             >>$(@D)/config.sh
+	echo "perladmin='root'"                                 >>$(@D)/config.sh
+	(cd $(@D); ./Configure -S)
+	cp $(@D)/config.h $(@D)/xconfig.h
+	$(SED) 's/UNKNOWN-/Buildroot $(BR2_VERSION_FULL) /' $(@D)/patchlevel.h
+endef
+
+define PERL_BUILD_CMDS
+	echo "#!/bin/sh"                                        > $(@D)/Cross/miniperl
+	echo "$(PERL_QEMU_USER_MODE) $(@D)/miniperl \"\$$@\""   >>$(@D)/Cross/miniperl
+	chmod +x $(@D)/Cross/miniperl
+	PERL_MM_OPT="PERL=$(@D)/Cross/miniperl" \
+	$(MAKE) -C $(@D) all
+endef
+
+define PERL_INSTALL_STAGING_CMDS
+	$(MAKE) INSTALL_DEPENDENCE= \
+		INSTALLFLAGS= \
+		DESTDIR="$(STAGING_DIR)" \
+		-C $(@D) install.perl
+endef
+
+define PERL_INSTALL_TARGET_CMDS
+	$(MAKE) INSTALL_DEPENDENCE= \
+		INSTALLFLAGS=-p \
+		DESTDIR="$(TARGET_DIR)" \
+		-C $(@D) install.perl
+endef
+
+define PERL_CLEAN_CMDS
+	-$(MAKE) -C $(@D) clean
+endef
+
+$(eval $(generic-package))
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 03/11] perl: add an option for miniperl
  2012-09-25 17:18 [Buildroot] [PATCH v8 01/11] host-qemu: new package Francois Perrad
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 02/11] perl: " Francois Perrad
@ 2012-09-25 17:18 ` Francois Perrad
  2012-10-04 20:41   ` Thomas Petazzoni
  2012-10-06 12:15   ` Arnout Vandecappelle
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 04/11] perl: add DB_File Francois Perrad
                   ` (9 subsequent siblings)
  11 siblings, 2 replies; 40+ messages in thread
From: Francois Perrad @ 2012-09-25 17:18 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 package/perl/Config.in                   |   10 +++
 package/perl/perl-install-miniperl.patch |  129 ++++++++++++++++++++++++++++++
 package/perl/perl.mk                     |    6 +-
 3 files changed, 144 insertions(+), 1 deletion(-)
 create mode 100644 package/perl/perl-install-miniperl.patch

diff --git a/package/perl/Config.in b/package/perl/Config.in
index 6b7a986..3e11574 100644
--- a/package/perl/Config.in
+++ b/package/perl/Config.in
@@ -7,3 +7,13 @@ config BR2_PACKAGE_PERL
 	  Army Chainsaw".
 
 	  http://www.perl.org/
+
+if BR2_PACKAGE_PERL
+
+config BR2_PACKAGE_PERL_ONLY_MINIPERL
+	bool "only miniperl"
+	help
+	  Install only miniperl (without dynamic module loader)
+	  Usually used to bootstrap a full Perl (@INC contains only .).
+
+endif
diff --git a/package/perl/perl-install-miniperl.patch b/package/perl/perl-install-miniperl.patch
new file mode 100644
index 0000000..7e6f8e6
--- /dev/null
+++ b/package/perl/perl-install-miniperl.patch
@@ -0,0 +1,129 @@
+Add an option -miniperl
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/installperl
+===================================================================
+--- a/installperl
++++ b/installperl
+@@ -14,7 +14,7 @@
+ use vars qw($Is_VMS $Is_W32 $Is_OS2 $Is_Cygwin $Is_Darwin $Is_NetWare
+ 	    %opts $packlist);
+ my ($dostrip, $versiononly, $force,
+-    $otherperls, $archname, $nwinstall, $nopods);
++    $otherperls, $archname, $nwinstall, $nopods, $miniperl);
+ 
+ BEGIN {
+     if ($Is_VMS) { eval 'use VMS::Filespec;' }
+@@ -83,6 +83,7 @@
+     $force = 1 if $ARGV[0] eq '-f';
+     $opts{verbose} = 1 if $ARGV[0] eq '-V' || $ARGV [0] eq '-n';
+     $archname = 1 if $ARGV[0] eq '-A';
++    $miniperl = 1 if $ARGV[0] eq '-miniperl';
+     $nwinstall = 1 if $ARGV[0] eq '-netware';
+     $nopods = 1 if $ARGV[0] eq '-p';
+     $opts{destdir} = $1 if $ARGV[0] =~ /^-?-destdir=(.*)$/;
+@@ -102,6 +103,7 @@
+   -A        Also install perl with the architecture's name in the perl binary's
+             name.
+   -p        Don't install the pod files. [This will break use diagnostics;]
++  -miniperl Install only miniperl.
+   -netware  Install correctly on a Netware server.
+   -destdir  Prefix installation directories by this string.
+ EOT
+@@ -114,6 +116,7 @@
+ my (@scripts, @tolink);
+ open SCRIPTS, "utils.lst" or die "Can't open utils.lst: $!";
+ while (<SCRIPTS>) {
++    next if $miniperl;
+     next if /^#/;
+     next if /a2p/; # a2p is binary, to be installed separately
+     chomp;
+@@ -310,7 +313,7 @@
+     link($Config{perlpath}, "$installbin/perl$ver$exe_ext");
+ }
+ elsif ($^O ne 'dos') {
+-    if (!$Is_NetWare) {
++    if (!$Is_NetWare && !$miniperl) {
+ 	safe_unlink("$installbin/$perl_verbase$ver$exe_ext");
+ 	copy("perl$exe_ext", "$installbin/$perl_verbase$ver$exe_ext");
+ 	strip("$installbin/$perl_verbase$ver$exe_ext");
+@@ -384,8 +387,9 @@
+       push(@corefiles, $coredll)
+     )
+ } else {
++    @corefiles = <*.h>;
+     # [als] hard-coded 'libperl' name... not good!
+-    @corefiles = <*.h libperl*.* perl*$Config{lib_ext}>;
++    push @corefiles, <libperl*.* perl*$Config{lib_ext}> unless $miniperl;
+ 
+     # AIX needs perl.exp installed as well.
+     push(@corefiles,'perl.exp') if $^O eq 'aix';
+@@ -411,7 +415,7 @@
+ # Install main perl executables
+ # Make links to ordinary names if installbin directory isn't current directory.
+ 
+-if (! $versiononly && ! samepath($installbin, '.') && ($^O ne 'dos') && ! $Is_VMS && ! $Is_NetWare) {
++if (! $versiononly && ! samepath($installbin, '.') && ($^O ne 'dos') && ! $Is_VMS && ! $Is_NetWare && ! $miniperl) {
+     safe_unlink("$installbin/$perl$exe_ext", "$installbin/suid$perl$exe_ext");
+     if ($^O eq 'mpeix') {
+ 	# MPE doesn't support hard links, so use a symlink.
+@@ -429,7 +433,7 @@
+ 
+ # For development purposes it can be very useful to have multiple perls
+ # build for different "architectures" (eg threading or not) simultaneously.
+-if ($archname && ! samepath($installbin, '.') && ($^O ne 'dos') && ! $Is_VMS) {
++if ($archname && ! samepath($installbin, '.') && ($^O ne 'dos') && ! $Is_VMS && ! $miniperl) {
+     my $archperl = "$perl_verbase$ver-$Config{archname}$exe_ext";
+     safe_unlink("$installbin/$archperl");
+     if ($^O eq 'mpeix') {
+@@ -451,7 +455,7 @@
+ 
+ if ($Config{installusrbinperl} && $Config{installusrbinperl} eq 'define' &&
+     !$versiononly && !$opts{notify} && !$Is_W32 && !$Is_NetWare && !$Is_VMS && -t STDIN && -t STDERR
+-	&& -w $mainperldir && ! samepath($mainperldir, $installbin)) {
++	&& -w $mainperldir && ! samepath($mainperldir, $installbin) && ! $miniperl) {
+     my($usrbinperl)	= "$mainperldir/$perl$exe_ext";
+     my($instperl)	= "$installbin/$perl$exe_ext";
+     my($expinstperl)	= "$binexp/$perl$exe_ext";
+@@ -480,7 +484,7 @@
+ }
+ 
+ # Make links to ordinary names if installbin directory isn't current directory.
+-if (!$Is_NetWare && $dbg eq '') {
++if (!$Is_NetWare && $dbg eq '' && !$miniperl) {
+     if (! samepath($installbin, 'x2p')) {
+ 	my $base = 'a2p';
+ 	$base .= $ver if $versiononly;
+@@ -495,12 +499,18 @@
+ # it can't safely be shared.  Place it in $installbin.
+ # Note that Configure doesn't build cppstin if it isn't needed, so
+ # we skip this if cppstdin doesn't exist.
+-if (! $versiononly && (-f 'cppstdin') && (! samepath($installbin, '.'))) {
++if (! $versiononly && (-f 'cppstdin') && (! samepath($installbin, '.')) && !$miniperl) {
+     safe_unlink("$installbin/cppstdin");
+     copy("cppstdin", "$installbin/cppstdin");
+     chmod(0755, "$installbin/cppstdin");
+ }
+ 
++if ($miniperl && (-f 'miniperl')) {
++    safe_unlink("$installbin/miniperl$exe_ext");
++    copy("miniperl$exe_ext", "$installbin/miniperl$exe_ext");
++    chmod(0755, "$installbin/miniperl$exe_ext");
++}
++
+ sub script_alias {
+     my ($installscript, $orig, $alias, $scr_ext) = @_;
+ 
+@@ -761,6 +771,11 @@
+ 
+     return if $name eq 'ExtUtils/XSSymSet.pm' and !$Is_VMS;
+ 
++    if ($miniperl && $dir =~ /^auto\//) {
++        # Don't copy
++        return;
++    }
++
+     my $installlib = $installprivlib;
+     if ($dir =~ /^auto\// ||
+ 	  ($name =~ /^(.*)\.(?:pm|pod)$/ && $archpms{$1}) ||
diff --git a/package/perl/perl.mk b/package/perl/perl.mk
index 7d60ca7..8f7ba15 100644
--- a/package/perl/perl.mk
+++ b/package/perl/perl.mk
@@ -21,6 +21,10 @@ ifneq ($(BR2_LARGEFILE),y)
     PERL_NO_LARGEFILE=-Uuselargefiles
 endif
 
+ifeq ($(BR2_PACKAGE_PERL_ONLY_MINIPERL),y)
+    PERL_INSTALL_ONLY_MINIPERL = -miniperl
+endif
+
 PERL_ARCH=$(ARCH)
 ifeq ($(PERL_ARCH),i686)
     PERL_ARCH=i386
@@ -87,7 +91,7 @@ endef
 
 define PERL_INSTALL_TARGET_CMDS
 	$(MAKE) INSTALL_DEPENDENCE= \
-		INSTALLFLAGS=-p \
+		INSTALLFLAGS="-p $(PERL_INSTALL_ONLY_MINIPERL)"\
 		DESTDIR="$(TARGET_DIR)" \
 		-C $(@D) install.perl
 endef
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 04/11] perl: add DB_File
  2012-09-25 17:18 [Buildroot] [PATCH v8 01/11] host-qemu: new package Francois Perrad
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 02/11] perl: " Francois Perrad
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 03/11] perl: add an option for miniperl Francois Perrad
@ 2012-09-25 17:18 ` Francois Perrad
  2012-10-06 12:23   ` Arnout Vandecappelle
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 05/11] gdbm: new package Francois Perrad
                   ` (8 subsequent siblings)
  11 siblings, 1 reply; 40+ messages in thread
From: Francois Perrad @ 2012-09-25 17:18 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 package/perl/Config.in |   10 ++++++++++
 package/perl/perl.mk   |    4 ++++
 2 files changed, 14 insertions(+)

diff --git a/package/perl/Config.in b/package/perl/Config.in
index 3e11574..e0dbbdf 100644
--- a/package/perl/Config.in
+++ b/package/perl/Config.in
@@ -17,3 +17,13 @@ config BR2_PACKAGE_PERL_ONLY_MINIPERL
 	  Usually used to bootstrap a full Perl (@INC contains only .).
 
 endif
+
+if BR2_PACKAGE_PERL && !BR2_PACKAGE_PERL_ONLY_MINIPERL
+
+config BR2_PACKAGE_PERL_DB_FILE
+	bool "DB_File"
+	select BR2_PACKAGE_BERKELEYDB
+	help
+	  Build the DB_File module.
+
+endif
diff --git a/package/perl/perl.mk b/package/perl/perl.mk
index 8f7ba15..0c69e0b 100644
--- a/package/perl/perl.mk
+++ b/package/perl/perl.mk
@@ -11,7 +11,11 @@ PERL_SOURCE = perl-$(PERL_VERSION).tar.bz2
 PERL_LICENSE = Artistic
 PERL_LICENSE_FILES = Artistic
 PERL_INSTALL_STAGING = YES
+
 PERL_DEPENDENCIES = host-qemu
+ifeq ($(BR2_PACKAGE_PERL_DB_FILE),y)
+    PERL_DEPENDENCIES += berkeleydb
+endif
 
 ifeq ($(shell expr $(PERL_VERSION_MAJOR) % 2), 1)
     PERL_USE_DEVEL=-Dusedevel
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 05/11] gdbm: new package
  2012-09-25 17:18 [Buildroot] [PATCH v8 01/11] host-qemu: new package Francois Perrad
                   ` (2 preceding siblings ...)
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 04/11] perl: add DB_File Francois Perrad
@ 2012-09-25 17:18 ` Francois Perrad
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 06/11] perl: add GDBM_File Francois Perrad
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 40+ messages in thread
From: Francois Perrad @ 2012-09-25 17:18 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 package/Config.in      |    1 +
 package/gdbm/Config.in |    8 ++++++++
 package/gdbm/gdbm.mk   |   12 ++++++++++++
 3 files changed, 21 insertions(+)
 create mode 100644 package/gdbm/Config.in
 create mode 100644 package/gdbm/gdbm.mk

diff --git a/package/Config.in b/package/Config.in
index 00a79ab..d9cadf9 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -324,6 +324,7 @@ endmenu
 
 menu "Database"
 source "package/berkeleydb/Config.in"
+source "package/gdbm/Config.in"
 source "package/mysql_client/Config.in"
 source "package/sqlcipher/Config.in"
 source "package/sqlite/Config.in"
diff --git a/package/gdbm/Config.in b/package/gdbm/Config.in
new file mode 100644
index 0000000..d5aae83
--- /dev/null
+++ b/package/gdbm/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_GDBM
+	bool "gdbm"
+	help
+	  GNU dbm is a set of database routines that use extensible hashing.
+	  It works similar to the standard UNIX dbm routines.
+
+	  http://www.gnu.org/software/gdbm/gdbm.html
+
diff --git a/package/gdbm/gdbm.mk b/package/gdbm/gdbm.mk
new file mode 100644
index 0000000..4971b12
--- /dev/null
+++ b/package/gdbm/gdbm.mk
@@ -0,0 +1,12 @@
+#############################################################
+#
+# gdbm
+#
+#############################################################
+GDBM_VERSION = 1.10
+GDBM_SITE = $(BR2_GNU_MIRROR)/gdbm
+GDBM_LICENSE = GPLv3
+GDBM_LICENSE_FILES = COPYING
+GDBM_INSTALL_STAGING = YES
+
+$(eval $(autotools-package))
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 06/11] perl: add GDBM_File
  2012-09-25 17:18 [Buildroot] [PATCH v8 01/11] host-qemu: new package Francois Perrad
                   ` (3 preceding siblings ...)
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 05/11] gdbm: new package Francois Perrad
@ 2012-09-25 17:18 ` Francois Perrad
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 07/11] cpanminus: new package Francois Perrad
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 40+ messages in thread
From: Francois Perrad @ 2012-09-25 17:18 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 package/perl/Config.in |    6 ++++++
 package/perl/perl.mk   |    3 +++
 2 files changed, 9 insertions(+)

diff --git a/package/perl/Config.in b/package/perl/Config.in
index e0dbbdf..8d8430d 100644
--- a/package/perl/Config.in
+++ b/package/perl/Config.in
@@ -26,4 +26,10 @@ config BR2_PACKAGE_PERL_DB_FILE
 	help
 	  Build the DB_File module.
 
+config BR2_PACKAGE_PERL_GDBM_FILE
+	bool "GDBM_File"
+	select BR2_PACKAGE_GDBM
+	help
+	  Build the GDBM_File module.
+
 endif
diff --git a/package/perl/perl.mk b/package/perl/perl.mk
index 0c69e0b..71762e1 100644
--- a/package/perl/perl.mk
+++ b/package/perl/perl.mk
@@ -16,6 +16,9 @@ PERL_DEPENDENCIES = host-qemu
 ifeq ($(BR2_PACKAGE_PERL_DB_FILE),y)
     PERL_DEPENDENCIES += berkeleydb
 endif
+ifeq ($(BR2_PACKAGE_PERL_GDBM_FILE),y)
+    PERL_DEPENDENCIES += gdbm
+endif
 
 ifeq ($(shell expr $(PERL_VERSION_MAJOR) % 2), 1)
     PERL_USE_DEVEL=-Dusedevel
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 07/11] cpanminus: new package
  2012-09-25 17:18 [Buildroot] [PATCH v8 01/11] host-qemu: new package Francois Perrad
                   ` (4 preceding siblings ...)
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 06/11] perl: add GDBM_File Francois Perrad
@ 2012-09-25 17:18 ` Francois Perrad
  2012-10-04 20:46   ` Thomas Petazzoni
                     ` (2 more replies)
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 08/11] perl: add option "custom install" Francois Perrad
                   ` (5 subsequent siblings)
  11 siblings, 3 replies; 40+ messages in thread
From: Francois Perrad @ 2012-09-25 17:18 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 package/Config.in                        |    5 ++++
 package/cpanminus/Config.in              |   34 +++++++++++++++++++++++
 package/cpanminus/cpanminus.mk           |   44 ++++++++++++++++++++++++++++++
 package/perl/perl-fix-Module-Build.patch |   16 +++++++++++
 4 files changed, 99 insertions(+)
 create mode 100644 package/cpanminus/Config.in
 create mode 100644 package/cpanminus/cpanminus.mk
 create mode 100644 package/perl/perl-fix-Module-Build.patch

diff --git a/package/Config.in b/package/Config.in
index d9cadf9..06050f2 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -263,6 +263,11 @@ source "package/xavante/Config.in"
 endmenu
 endif
 source "package/perl/Config.in"
+if BR2_PACKAGE_PERL
+menu "Perl libraries/modules"
+source "package/cpanminus/Config.in"
+endmenu
+endif
 source "package/microperl/Config.in"
 source "package/php/Config.in"
 source "package/python/Config.in"
diff --git a/package/cpanminus/Config.in b/package/cpanminus/Config.in
new file mode 100644
index 0000000..3b57ffd
--- /dev/null
+++ b/package/cpanminus/Config.in
@@ -0,0 +1,34 @@
+config BR2_PACKAGE_CPANMINUS
+	bool "cpanminus"
+	help
+	  cpanminus is a script to get, unpack, build and install Perl modules
+	  from CPAN.
+
+	  Why? It's dependency free, requires zero configuration, and stands
+	  alone. When running, it requires only 10MB of RAM.
+
+	  http://github.com/miyagawa/cpanminus
+
+if BR2_PACKAGE_CPANMINUS
+
+config BR2_PACKAGE_CPANMINUS_MIRROR
+	string "mirror"
+	help
+	  Specifies the base URL for the CPAN mirror to use,
+	  such as http://cpan.cpantesters.org/.
+
+config BR2_PACKAGE_CPANMINUS_MODULES
+	string "Perl modules from CPAN"
+	help
+	  List of space-separated Perl modules to install from CPAN.
+
+	  Examples: Try::Tiny Dancer YAML Moo
+
+	  Install the listed modules and their dependencies.
+
+config BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES
+	string "native dependencies"
+	help
+	  Some XS modules require native libraries.
+
+endif
diff --git a/package/cpanminus/cpanminus.mk b/package/cpanminus/cpanminus.mk
new file mode 100644
index 0000000..1b2857a
--- /dev/null
+++ b/package/cpanminus/cpanminus.mk
@@ -0,0 +1,44 @@
+#############################################################
+#
+# cpanminus
+#
+#############################################################
+
+CPANMINUS_VERSION = 1.5018
+CPANMINUS_SOURCE = miyagawa-cpanminus-$(CPANMINUS_VERSION)-0-gee6cd30.tar.gz
+CPANMINUS_SITE = https://github.com/miyagawa/cpanminus/tarball/$(CPANMINUS_VERSION)
+CPANMINUS_DEPENDENCIES = perl $(call qstrip,$(BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES))
+
+CPANMINUS_ARCH=$(ARCH)
+ifeq ($(CPANMINUS_ARCH),i686)
+    CPANMINUS_ARCH=i386
+endif
+CPANMINUS_QEMU_USER_MODE=$(HOST_DIR)/usr/bin/qemu-$(CPANMINUS_ARCH)
+CPANMINUS_RUN_PERL=$(CPANMINUS_QEMU_USER_MODE) $(STAGING_DIR)/usr/bin/perl
+CPANMINUS_ARCHNAME=$(shell $(CPANMINUS_RUN_PERL) -MConfig -e "print Config->{archname}")
+CPANMINUS_PERL_LIB=$(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION)
+CPANMINUS_PERL_ARCHLIB=$(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION)/$(CPANMINUS_ARCHNAME)
+CPANMINUS_PERL_SITELIB=$(TARGET_DIR)/usr/lib/perl5/site_perl/$(PERL_VERSION)
+CPANMINUS_PERL_SITEARCH=$(TARGET_DIR)/usr/lib/perl5/site_perl/$(PERL_VERSION)/$(CPANMINUS_ARCHNAME)
+CPANMINUS_PERL5LIB=$(CPANMINUS_PERL_SITEARCH):$(CPANMINUS_PERL_SITELIB):$(CPANMINUS_PERL_ARCHLIB):$(CPANMINUS_PERL_LIB)
+ifneq ($(BR2_PACKAGE_CPANMINUS_MIRROR),"")
+    CPANMINUS_MIRROR=--mirror $(call qstrip,$(BR2_PACKAGE_CPANMINUS_MIRROR)) --mirror-only
+endif
+
+define CPANMINUS_INSTALL_TARGET_CMDS
+	echo "#!/bin/sh"                                                        > $(@D)/run_perl
+	echo "PERL5LIB=$(CPANMINUS_PERL5LIB) $(CPANMINUS_RUN_PERL) \"\$$@\""    >>$(@D)/run_perl
+	chmod +x $(@D)/run_perl
+	PERL5LIB=$(CPANMINUS_PERL5LIB) \
+	PERL_MM_OPT="DESTDIR=$(TARGET_DIR) PERL=$(@D)/run_perl PERL_LIB=$(CPANMINUS_PERL_LIB) PERL_ARCHLIB=$(CPANMINUS_PERL_ARCHLIB)" \
+	PERL_MB_OPT="--destdir $(TARGET_DIR)" \
+	RUN_PERL="$(@D)/run_perl" \
+	$(CPANMINUS_RUN_PERL) $(@D)/cpanm \
+		--perl=$(@D)/run_perl \
+		--notest \
+		--no-man-pages \
+		$(CPANMINUS_MIRROR) \
+		$(call qstrip,$(BR2_PACKAGE_CPANMINUS_MODULES))
+endef
+
+$(eval $(generic-package))
diff --git a/package/perl/perl-fix-Module-Build.patch b/package/perl/perl-fix-Module-Build.patch
new file mode 100644
index 0000000..26b15e4
--- /dev/null
+++ b/package/perl/perl-fix-Module-Build.patch
@@ -0,0 +1,16 @@
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/cpan/Module-Build/lib/Module/Build/Base.pm
+===================================================================
+--- a/cpan/Module-Build/lib/Module/Build/Base.pm
++++ b/cpan/Module-Build/lib/Module/Build/Base.pm
+@@ -456,7 +456,7 @@
+   my $proto = shift;
+   my $c     = ref($proto) ? $proto->{config} : 'Module::Build::Config';
+ 
+-  my $perl  = $^X;
++  my $perl  = $ENV{RUN_PERL} || $^X;
+   my $perl_basename = File::Basename::basename($perl);
+ 
+   my @potential_perls;
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 08/11] perl: add option "custom install"
  2012-09-25 17:18 [Buildroot] [PATCH v8 01/11] host-qemu: new package Francois Perrad
                   ` (5 preceding siblings ...)
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 07/11] cpanminus: new package Francois Perrad
@ 2012-09-25 17:18 ` Francois Perrad
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 09/11] perl: relax microperl dependencies Francois Perrad
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 40+ messages in thread
From: Francois Perrad @ 2012-09-25 17:18 UTC (permalink / raw)
  To: buildroot

allows same behaviour (and footprint) as microperl

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 package/cpanminus/Config.in |    4 ++++
 package/perl/Config.in      |   16 +++++++++++++++
 package/perl/perl.mk        |   47 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 67 insertions(+)

diff --git a/package/cpanminus/Config.in b/package/cpanminus/Config.in
index 3b57ffd..d6ada47 100644
--- a/package/cpanminus/Config.in
+++ b/package/cpanminus/Config.in
@@ -1,5 +1,6 @@
 config BR2_PACKAGE_CPANMINUS
 	bool "cpanminus"
+	depends on !BR2_PACKAGE_PERL_CUSTOM_INSTALL
 	help
 	  cpanminus is a script to get, unpack, build and install Perl modules
 	  from CPAN.
@@ -9,6 +10,9 @@ config BR2_PACKAGE_CPANMINUS
 
 	  http://github.com/miyagawa/cpanminus
 
+comment "cpanminus requires a fully installed perl"
+	depends on BR2_PACKAGE_PERL_CUSTOM_INSTALL
+
 if BR2_PACKAGE_CPANMINUS
 
 config BR2_PACKAGE_CPANMINUS_MIRROR
diff --git a/package/perl/Config.in b/package/perl/Config.in
index 8d8430d..ec0c60d 100644
--- a/package/perl/Config.in
+++ b/package/perl/Config.in
@@ -16,6 +16,22 @@ config BR2_PACKAGE_PERL_ONLY_MINIPERL
 	  Install only miniperl (without dynamic module loader)
 	  Usually used to bootstrap a full Perl (@INC contains only .).
 
+config BR2_PACKAGE_PERL_CUSTOM_INSTALL
+	bool "custom install"
+	help
+	  Don't use the full install target
+	  Install only a selection of modules (like microperl).
+
+config BR2_PACKAGE_PERL_MODULES
+	string "additional modules"
+	depends on BR2_PACKAGE_PERL_CUSTOM_INSTALL
+	help
+	  List of space-separated perl modules to copy to the rootfs.
+
+	  Examples: constant.pm Getopt/Std.pm Time/Local.pm
+
+	  Module dependencies are not automatic so check your needs.
+
 endif
 
 if BR2_PACKAGE_PERL && !BR2_PACKAGE_PERL_ONLY_MINIPERL
diff --git a/package/perl/perl.mk b/package/perl/perl.mk
index 71762e1..fbe7ba9 100644
--- a/package/perl/perl.mk
+++ b/package/perl/perl.mk
@@ -96,12 +96,59 @@ define PERL_INSTALL_STAGING_CMDS
 		-C $(@D) install.perl
 endef
 
+PERL_RUN_PERL=$(PERL_QEMU_USER_MODE) $(@D)/perl -Ilib
+PERL_ARCHNAME=$(shell $(PERL_RUN_PERL) -MConfig -e "print Config->{archname}")
+PERL_LIB=$(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION)
+PERL_ARCHLIB=$(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION)/$(PERL_ARCHNAME)
+PERL_MODS = $(call qstrip,$(BR2_PACKAGE_PERL_MODULES))
+# Minimal set of modules required for 'perl -V' to work
+PERL_ARCH_MODS = Config.pm Config_git.pl Config_heavy.pl
+PERL_BASE_MODS = strict.pm vars.pm warnings.pm warnings/register.pm
+
+define PERL_INSTALL_MODULES
+	for i in $(PERL_ARCH_MODS); do \
+		$(INSTALL) -m 0644 -D $(@D)/lib/$$i $(PERL_ARCHLIB)/$$i; \
+	done
+	for i in $(PERL_BASE_MODS); do \
+		$(INSTALL) -m 0644 -D $(@D)/lib/$$i $(PERL_LIB)/$$i; \
+	done
+	for i in $(PERL_MODS); do \
+		j=`echo $$i|cut -d : -f 1` ; \
+		if [ -d $(@D)/lib/$$j ] ; then \
+			cp -af $(@D)/lib/$$j $(PERL_LIB) ; \
+		fi ; \
+		if [ -f $(@D)/lib/$$i ] ; then \
+			$(INSTALL) -m 0644 -D $(@D)/lib/$$i $(PERL_LIB)/$$i; \
+		fi ; \
+	done
+	# Remove test files
+	find $(PERL_LIB) -type f -name *.t -exec rm -f {} \;
+endef
+
+ifeq ($(BR2_PACKAGE_PERL_ONLY_MINIPERL),y)
+define PERL_INSTALL_INTERPRETER
+	$(INSTALL) -m 0755 -D $(@D)/miniperl $(TARGET_DIR)/usr/bin/miniperl
+endef
+else
+define PERL_INSTALL_INTERPRETER
+	$(INSTALL) -m 0755 -D $(@D)/perl $(TARGET_DIR)/usr/bin/perl
+	$(INSTALL) -m 0755 -D $(@D)/libperl.so $(PERL_ARCHLIB)/CORE/libperl.so
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_PERL_CUSTOM_INSTALL),y)
+define PERL_INSTALL_TARGET_CMDS
+	$(PERL_INSTALL_INTERPRETER)
+	$(PERL_INSTALL_MODULES)
+endef
+else
 define PERL_INSTALL_TARGET_CMDS
 	$(MAKE) INSTALL_DEPENDENCE= \
 		INSTALLFLAGS="-p $(PERL_INSTALL_ONLY_MINIPERL)"\
 		DESTDIR="$(TARGET_DIR)" \
 		-C $(@D) install.perl
 endef
+endif
 
 define PERL_CLEAN_CMDS
 	-$(MAKE) -C $(@D) clean
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 09/11] perl: relax microperl dependencies
  2012-09-25 17:18 [Buildroot] [PATCH v8 01/11] host-qemu: new package Francois Perrad
                   ` (6 preceding siblings ...)
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 08/11] perl: add option "custom install" Francois Perrad
@ 2012-09-25 17:18 ` Francois Perrad
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 10/11] microperl: mark as DEPRECATED Francois Perrad
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 40+ messages in thread
From: Francois Perrad @ 2012-09-25 17:18 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 package/autoconf/Config.in   |    2 +-
 package/autoconf/autoconf.mk |    7 ++++++-
 package/automake/Config.in   |    2 +-
 package/automake/automake.mk |    7 ++++++-
 package/ntp/Config.in        |    4 ++--
 package/samba/Config.in      |    4 ++--
 6 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/package/autoconf/Config.in b/package/autoconf/Config.in
index 00b3e2c..41866ad 100644
--- a/package/autoconf/Config.in
+++ b/package/autoconf/Config.in
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_AUTOCONF
 	bool "autoconf"
-	select BR2_PACKAGE_MICROPERL
+	select BR2_PACKAGE_MICROPERL if !BR2_PACKAGE_PERL
 	help
 	  Extensible program for developing configure scripts.  These
 	  scripts handle all the mundane system/feature detection.
diff --git a/package/autoconf/autoconf.mk b/package/autoconf/autoconf.mk
index 3f84e3e..13a474e 100644
--- a/package/autoconf/autoconf.mk
+++ b/package/autoconf/autoconf.mk
@@ -10,7 +10,12 @@ AUTOCONF_SITE = $(BR2_GNU_MIRROR)/autoconf
 AUTOCONF_CONF_ENV = EMACS="no" ac_cv_path_M4=$(HOST_DIR)/usr/bin/m4 \
 		    ac_cv_prog_gnu_m4_gnu=no
 
-AUTOCONF_DEPENDENCIES = microperl host-m4
+AUTOCONF_DEPENDENCIES = host-m4
+ifeq ($(BR2_PACKAGE_PERL),y)
+    AUTOCONF_DEPENDENCIES += perl
+else
+    AUTOCONF_DEPENDENCIES += microperl
+endif
 
 HOST_AUTOCONF_CONF_ENV = ac_cv_path_M4=$(HOST_DIR)/usr/bin/m4 \
 			ac_cv_prog_gnu_m4_gnu=no
diff --git a/package/automake/Config.in b/package/automake/Config.in
index 935f1f1..c0b29d1 100644
--- a/package/automake/Config.in
+++ b/package/automake/Config.in
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_AUTOMAKE
 	bool "automake"
 	select BR2_PACKAGE_AUTOCONF
-	select BR2_PACKAGE_MICROPERL
+	select BR2_PACKAGE_MICROPERL if !BR2_PACKAGE_PERL
 	help
 	  Tool for automatically generating Makefile's for input to
 	  configure scripts (made by autoconf).
diff --git a/package/automake/automake.mk b/package/automake/automake.mk
index 3c19085..0766111 100644
--- a/package/automake/automake.mk
+++ b/package/automake/automake.mk
@@ -7,7 +7,12 @@
 AUTOMAKE_VERSION = 1.11.5
 AUTOMAKE_SITE = $(BR2_GNU_MIRROR)/automake
 
-AUTOMAKE_DEPENDENCIES = host-autoconf autoconf microperl
+AUTOMAKE_DEPENDENCIES = host-autoconf autoconf
+ifeq ($(BR2_PACKAGE_PERL),y)
+    AUTOMAKE_DEPENDENCIES += perl
+else
+    AUTOMAKE_DEPENDENCIES += microperl
+endif
 
 HOST_AUTOMAKE_DEPENDENCIES = host-autoconf
 
diff --git a/package/ntp/Config.in b/package/ntp/Config.in
index 5996596..434cd2d 100644
--- a/package/ntp/Config.in
+++ b/package/ntp/Config.in
@@ -20,7 +20,7 @@ config BR2_PACKAGE_NTP_NTP_KEYGEN
 
 config BR2_PACKAGE_NTP_NTP_WAIT
 	bool "ntp-wait"
-	depends on BR2_PACKAGE_MICROPERL
+	depends on BR2_PACKAGE_MICROPERL || BR2_PACKAGE_PERL
 	help
 	  ntp-wait waits until the locally running ntpd is in state 4
 	  (synchronized). This could be useful at boot time, to delay the
@@ -59,7 +59,7 @@ config BR2_PACKAGE_NTP_NTPSNMPD
 
 config BR2_PACKAGE_NTP_NTPTRACE
 	bool "ntptrace"
-	depends on BR2_PACKAGE_MICROPERL
+	depends on BR2_PACKAGE_MICROPERL || BR2_PACKAGE_PERL
 	help
 	  ntptrace is a perl script that uses the ntpq utility program to
 	  follow the chain of NTP servers from a given host back to the
diff --git a/package/samba/Config.in b/package/samba/Config.in
index e88b360..ee3244f 100644
--- a/package/samba/Config.in
+++ b/package/samba/Config.in
@@ -36,12 +36,12 @@ config BR2_PACKAGE_SAMBA_FINDSMB
 	default y
 	depends on BR2_PACKAGE_SAMBA_SMBCLIENT
 	depends on BR2_PACKAGE_SAMBA_NMBLOOKUP
-	depends on BR2_PACKAGE_MICROPERL
+	depends on BR2_PACKAGE_MICROPERL || BR2_PACKAGE_PERL
 	help
 	  Script to browse network
 
 comment "findsmb       - disabled (requires nmblookup, smbclient and perl)"
-	depends on !BR2_PACKAGE_SAMBA_SMBCLIENT || !BR2_PACKAGE_SAMBA_NMBLOOKUP || !BR2_PACKAGE_MICROPERL
+	depends on !BR2_PACKAGE_SAMBA_SMBCLIENT || !BR2_PACKAGE_SAMBA_NMBLOOKUP || !(BR2_PACKAGE_MICROPERL || BR2_PACKAGE_PERL)
 
 config BR2_PACKAGE_SAMBA_NET
 	bool "net"
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 10/11] microperl: mark as DEPRECATED
  2012-09-25 17:18 [Buildroot] [PATCH v8 01/11] host-qemu: new package Francois Perrad
                   ` (7 preceding siblings ...)
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 09/11] perl: relax microperl dependencies Francois Perrad
@ 2012-09-25 17:18 ` Francois Perrad
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 11/11] microperl: remove it Francois Perrad
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 40+ messages in thread
From: Francois Perrad @ 2012-09-25 17:18 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 package/microperl/Config.in |    1 +
 1 file changed, 1 insertion(+)

diff --git a/package/microperl/Config.in b/package/microperl/Config.in
index 66bbedd..19d104a 100644
--- a/package/microperl/Config.in
+++ b/package/microperl/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_MICROPERL
 	bool "microperl"
 	# needs fork()
 	depends on BR2_USE_MMU
+	depends on BR2_DEPRECATED
 	help
 	  Perl without operating-specific functions such as readdir.
 
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 11/11] microperl: remove it
  2012-09-25 17:18 [Buildroot] [PATCH v8 01/11] host-qemu: new package Francois Perrad
                   ` (8 preceding siblings ...)
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 10/11] microperl: mark as DEPRECATED Francois Perrad
@ 2012-09-25 17:18 ` Francois Perrad
  2012-09-25 21:15 ` [Buildroot] [PATCH v8 01/11] host-qemu: new package Arnout Vandecappelle
  2012-10-04 20:33 ` Thomas Petazzoni
  11 siblings, 0 replies; 40+ messages in thread
From: Francois Perrad @ 2012-09-25 17:18 UTC (permalink / raw)
  To: buildroot

replaced by perl
use BR2_PACKAGE_PERL_CUSTOM_INSTALL if you want a small footprint

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 package/Config.in                                  |    1 -
 package/autoconf/Config.in                         |    2 +-
 package/autoconf/autoconf.mk                       |    7 +-
 package/automake/Config.in                         |    2 +-
 package/automake/automake.mk                       |    7 +-
 package/libxml-parser-perl/libxml-parser-perl.mk   |    6 -
 package/microperl/Config.in                        |   30 ----
 .../microperl/microperl-no-signal-handlers.patch   |   22 ---
 package/microperl/microperl-uudmap.patch           |   47 ------
 package/microperl/microperl.mk                     |  156 --------------------
 package/ntp/Config.in                              |    4 +-
 package/samba/Config.in                            |    4 +-
 12 files changed, 8 insertions(+), 280 deletions(-)
 delete mode 100644 package/microperl/Config.in
 delete mode 100644 package/microperl/microperl-no-signal-handlers.patch
 delete mode 100644 package/microperl/microperl-uudmap.patch
 delete mode 100644 package/microperl/microperl.mk

diff --git a/package/Config.in b/package/Config.in
index 06050f2..987d1d1 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -268,7 +268,6 @@ menu "Perl libraries/modules"
 source "package/cpanminus/Config.in"
 endmenu
 endif
-source "package/microperl/Config.in"
 source "package/php/Config.in"
 source "package/python/Config.in"
 if BR2_PACKAGE_PYTHON
diff --git a/package/autoconf/Config.in b/package/autoconf/Config.in
index 41866ad..5f2f148 100644
--- a/package/autoconf/Config.in
+++ b/package/autoconf/Config.in
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_AUTOCONF
 	bool "autoconf"
-	select BR2_PACKAGE_MICROPERL if !BR2_PACKAGE_PERL
+	select BR2_PACKAGE_PERL
 	help
 	  Extensible program for developing configure scripts.  These
 	  scripts handle all the mundane system/feature detection.
diff --git a/package/autoconf/autoconf.mk b/package/autoconf/autoconf.mk
index 13a474e..0cb50db 100644
--- a/package/autoconf/autoconf.mk
+++ b/package/autoconf/autoconf.mk
@@ -10,12 +10,7 @@ AUTOCONF_SITE = $(BR2_GNU_MIRROR)/autoconf
 AUTOCONF_CONF_ENV = EMACS="no" ac_cv_path_M4=$(HOST_DIR)/usr/bin/m4 \
 		    ac_cv_prog_gnu_m4_gnu=no
 
-AUTOCONF_DEPENDENCIES = host-m4
-ifeq ($(BR2_PACKAGE_PERL),y)
-    AUTOCONF_DEPENDENCIES += perl
-else
-    AUTOCONF_DEPENDENCIES += microperl
-endif
+AUTOCONF_DEPENDENCIES = host-m4 perl
 
 HOST_AUTOCONF_CONF_ENV = ac_cv_path_M4=$(HOST_DIR)/usr/bin/m4 \
 			ac_cv_prog_gnu_m4_gnu=no
diff --git a/package/automake/Config.in b/package/automake/Config.in
index c0b29d1..9a9673a 100644
--- a/package/automake/Config.in
+++ b/package/automake/Config.in
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_AUTOMAKE
 	bool "automake"
 	select BR2_PACKAGE_AUTOCONF
-	select BR2_PACKAGE_MICROPERL if !BR2_PACKAGE_PERL
+	select BR2_PACKAGE_PERL
 	help
 	  Tool for automatically generating Makefile's for input to
 	  configure scripts (made by autoconf).
diff --git a/package/automake/automake.mk b/package/automake/automake.mk
index 0766111..8be56c3 100644
--- a/package/automake/automake.mk
+++ b/package/automake/automake.mk
@@ -7,12 +7,7 @@
 AUTOMAKE_VERSION = 1.11.5
 AUTOMAKE_SITE = $(BR2_GNU_MIRROR)/automake
 
-AUTOMAKE_DEPENDENCIES = host-autoconf autoconf
-ifeq ($(BR2_PACKAGE_PERL),y)
-    AUTOMAKE_DEPENDENCIES += perl
-else
-    AUTOMAKE_DEPENDENCIES += microperl
-endif
+AUTOMAKE_DEPENDENCIES = host-autoconf autoconf perl
 
 HOST_AUTOMAKE_DEPENDENCIES = host-autoconf
 
diff --git a/package/libxml-parser-perl/libxml-parser-perl.mk b/package/libxml-parser-perl/libxml-parser-perl.mk
index a6f8ae9..8e2f899 100644
--- a/package/libxml-parser-perl/libxml-parser-perl.mk
+++ b/package/libxml-parser-perl/libxml-parser-perl.mk
@@ -9,12 +9,6 @@ LIBXML_PARSER_PERL_SITE:=http://www.cpan.org/modules/by-module/XML/
 
 LIBXML_PARSER_PERL_DEPENDENCIES = expat
 
-ifeq ($(BR2_PACKAGE_MICROPERL),y)
-# microperl builds host-microperl, so ensure we build after that to build
-# against host-microperl instead of the system perl
-LIBXML_PARSER_PERL_DEPENDENCIES += microperl
-endif
-
 define HOST_LIBXML_PARSER_PERL_CONFIGURE_CMDS
  (cd $(@D) ; \
    $(HOST_CONFIGURE_OPTS) perl Makefile.PL \
diff --git a/package/microperl/Config.in b/package/microperl/Config.in
deleted file mode 100644
index 19d104a..0000000
--- a/package/microperl/Config.in
+++ /dev/null
@@ -1,30 +0,0 @@
-config BR2_PACKAGE_MICROPERL
-	bool "microperl"
-	# needs fork()
-	depends on BR2_USE_MMU
-	depends on BR2_DEPRECATED
-	help
-	  Perl without operating-specific functions such as readdir.
-
-if BR2_PACKAGE_MICROPERL
-
-config BR2_PACKAGE_MICROPERL_MODULES
-	string "additional modules"
-	help
-	  List of space-separated microperl modules to copy to the rootfs.
-
-	  Examples: warnings.pm Getopt/Std.pm Time::Local
-
-	  Module dependencies are not automatic so check your needs.
-	  You can't use XS modules like IO.
-
-menu "module bundles"
-
-config BR2_PACKAGE_MICROPERL_BUNDLE_CGI
-	bool "CGI"
-	help
-	  Copy required modules to do CGI scripting.
-
-endmenu
-
-endif
diff --git a/package/microperl/microperl-no-signal-handlers.patch b/package/microperl/microperl-no-signal-handlers.patch
deleted file mode 100644
index 3c9aa41..0000000
--- a/package/microperl/microperl-no-signal-handlers.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Backport of http://perl5.git.perl.org/perl.git/commitdiff/01d65469392dfc0a?hp=a82b5f080d91ffe184d8ac4795ac71e72e612c2f
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura perl-5.12.3/miniperlmain.c perl-5.12.3-nosig/miniperlmain.c
---- perl-5.12.3/miniperlmain.c	2011-01-09 17:20:57.000000000 -0300
-+++ perl-5.12.3-nosig/miniperlmain.c	2011-04-14 10:16:53.564639438 -0300
-@@ -116,12 +116,14 @@
-     if (!exitstatus)
-         perl_run(my_perl);
- 
-+#ifndef PERL_MICRO
-     /* Unregister our signal handler before destroying my_perl */
-     for (i = 0; PL_sig_name[i]; i++) {
- 	if (rsignal_state(PL_sig_num[i]) == (Sighandler_t) PL_csighandlerp) {
- 	    rsignal(PL_sig_num[i], (Sighandler_t) SIG_DFL);
- 	}
-     }
-+#endif
- 
-     exitstatus = perl_destruct(my_perl);
- 
diff --git a/package/microperl/microperl-uudmap.patch b/package/microperl/microperl-uudmap.patch
deleted file mode 100644
index c72f9c9..0000000
--- a/package/microperl/microperl-uudmap.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From a82b5f080d91ffe184d8ac4795ac71e72e612c2f Mon Sep 17 00:00:00 2001
-From: David Leadbeater <dgl@dgl.cx>
-Date: Mon, 7 Mar 2011 18:40:55 +0000
-Subject: [PATCH] microperl: Update generate_uudmap in Makefile.micro
-
-Makefile.micro hadn't kept up with the changes for generate_uudmap,
-make it match the real Makefile.
----
- Makefile.micro |    8 ++++----
- 1 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile.micro b/Makefile.micro
-index 4b738f5..567d98a 100644
---- a/Makefile.micro
-+++ b/Makefile.micro
-@@ -35,7 +35,7 @@ H = av.h uconfig.h cop.h cv.h embed.h embedvar.h form.h gv.h handy.h \
- HE = $(H) EXTERN.h
- 
- clean:
--	-rm -f $(O) microperl generate_uudmap$(_X) uudmap.h
-+	-rm -f $(O) microperl generate_uudmap$(_X) uudmap.h bitcount.h
- 
- distclean:	clean
- 
-@@ -74,7 +74,7 @@ udoop$(_O):	$(HE) doop.c
- udump$(_O):	$(HE) dump.c regcomp.h regnodes.h
- 	$(CC) $(CCFLAGS) -o $@ $(CFLAGS) dump.c
- 
--uglobals$(_O):	$(H) globals.c INTERN.h perlapi.h
-+uglobals$(_O):	$(H) globals.c INTERN.h perlapi.h uudmap.h bitcount.h
- 	$(CC) $(CCFLAGS) -o $@ $(CFLAGS) globals.c
- 
- ugv$(_O):	$(HE) gv.c
-@@ -173,8 +173,8 @@ uutil$(_O):	$(HE) util.c
- uperlapi$(_O):	$(HE) perlapi.c perlapi.h
- 	$(CC) $(CCFLAGS) -o $@ $(CFLAGS) perlapi.c
- 
--uudmap.h: generate_uudmap$(_X)
--	$(RUN) ./generate_uudmap$(_X) >uudmap.h
-+uudmap.h bitcount.h: generate_uudmap$(_X)
-+	$(RUN) ./generate_uudmap$(_X) uudmap.h bitcount.h
- 
- generate_uudmap$(_O): generate_uudmap.c
- 	$(CC) $(CCFLAGS) -o $@ $(CFLAGS) generate_uudmap.c
--- 
-1.6.5.2.74.g610f9.dirty
-
diff --git a/package/microperl/microperl.mk b/package/microperl/microperl.mk
deleted file mode 100644
index b2a912a..0000000
--- a/package/microperl/microperl.mk
+++ /dev/null
@@ -1,156 +0,0 @@
-#############################################################
-#
-# microperl
-#
-#############################################################
-
-MICROPERL_VERSION = 5.12.4
-MICROPERL_SITE = http://www.cpan.org/src/5.0
-MICROPERL_SOURCE = perl-$(MICROPERL_VERSION).tar.bz2
-MICROPERL_LICENSE = Artistic
-MICROPERL_LICENSE_FILES = Artistic
-MICROPERL_DEPENDENCIES = host-microperl
-MICROPERL_MODS_DIR = /usr/lib/perl5/$(MICROPERL_VERSION)
-MICROPERL_ARCH_DIR = $(MICROPERL_MODS_DIR)/$(GNU_TARGET_NAME)
-MICROPERL_MODS = $(call qstrip,$(BR2_PACKAGE_MICROPERL_MODULES))
-
-# Minimal set of modules required for 'perl -V' to work
-MICROPERL_ARCH_MODS = Config.pm Config_git.pl Config_heavy.pl
-MICROPERL_BASE_MODS = strict.pm
-
-# CGI bundle
-ifeq ($(BR2_PACKAGE_MICROPERL_BUNDLE_CGI),y)
-MICROPERL_MODS += constant.pm CGI CGI.pm Carp.pm Exporter.pm overload.pm \
-	vars.pm warnings.pm warnings/register.pm
-endif
-
-# Host microperl is actually full-blown perl
-define HOST_MICROPERL_CONFIGURE_CMDS
-	cd $(@D) ; \
-	./Configure -Dcc="$(HOSTCC)" -Dprefix="$(HOST_DIR)/usr" \
-		-Dloclibpth='/lib /lib64 /usr/lib /usr/lib64' -des
-endef
-
-define HOST_MICROPERL_BUILD_CMDS
-	$(MAKE) -C $(@D)
-endef
-
-define HOST_MICROPERL_INSTALL_CMDS
-	$(MAKE) -C $(@D) install
-endef
-
-ifeq ($(BR2_ENDIAN),"BIG")
-define MICROPERL_BIGENDIAN
-	$(SED) '/^byteorder=/d' $(@D)/uconfig.sh
-	echo "byteorder='4321'" >>$(@D)/uconfig.sh
-endef
-endif
-
-ifeq ($(BR2_LARGEFILE),y)
-define MICROPERL_LARGEFILE
-	$(SED) '/^uselargefiles=/d' $(@D)/uconfig.sh
-	echo "uselargefiles='define'" >>$(@D)/uconfig.sh
-endef
-endif
-
-ifeq ($(BR2_USE_WCHAR),y)
-define MICROPERL_WCHAR
-	$(SED) '/^d_mbstowcs=/d' -e '/^d_mbtowc=/d' -e '/^d_wcstombs=/d' \
-		-e '/^d_wctomb=/d' $(@D)/uconfig.sh
-	echo "d_mbstowcs='define'" >>$(@D)/uconfig.sh
-	echo "d_mbtowc='define'" >>$(@D)/uconfig.sh
-	echo "d_wcstombs='define'" >>$(@D)/uconfig.sh
-	echo "d_wctomb='define'" >>$(@D)/uconfig.sh
-endef
-endif
-
-define MICROPERL_CONFIGURE_CMDS
-	$(SED) '/^archlib=/d' -e '/^archlibexp=/d' -e '/^optimize=/d' \
-		-e '/^archname=/d' -e '/^d_poll=/d' -e '/^i_poll=/d' \
-		-e '/^osname=/d' -e '/^u32type=/d' -e '/^d_archlib=/d' \
-		-e '/^d_memset=/d' -e '/^i_fcntl=/d' -e '/^useperlio=/d' \
-		-e '/^need_va_copy=/d' $(@D)/uconfig.sh
-	$(SED) 's/5.12/$(MICROPERL_VERSION)/' $(@D)/uconfig.sh
-	echo "archlib='$(MICROPERL_ARCH_DIR)'" >>$(@D)/uconfig.sh
-	echo "archlibexp='$(MICROPERL_ARCH_DIR)'" >>$(@D)/uconfig.sh
-	echo "d_archlib='define'" >>$(@D)/uconfig.sh
-	echo "archname='$(GNU_TARGET_NAME)'" >>$(@D)/uconfig.sh
-	echo "osname='linux'" >>$(@D)/uconfig.sh
-	echo "cc='$(TARGET_CC)'" >>$(@D)/uconfig.sh
-	echo "ccflags='$(TARGET_CFLAGS)'" >>$(@D)/uconfig.sh
-	echo "optimize='$(TARGET_CFLAGS)'" >>$(@D)/uconfig.sh
-	echo "usecrosscompile='define'" >>$(@D)/uconfig.sh
-	echo "d_memset='define'" >>$(@D)/uconfig.sh
-	echo "i_fcntl='define'" >>$(@D)/uconfig.sh
-	echo "useperlio='define'" >>$(@D)/uconfig.sh
-	echo "u32type='unsigned int'" >>$(@D)/uconfig.sh
-	echo "need_va_copy='define'" >>$(@D)/uconfig.sh
-	echo "d_poll='define'" >>$(@D)/uconfig.sh
-	echo "i_poll='define'" >>$(@D)/uconfig.sh
-	$(SED) 's/UNKNOWN-/Buildroot $(BR2_VERSION_FULL) /' $(@D)/patchlevel.h
-	$(SED) 's/local\///' $(@D)/uconfig.sh
-	$(MICROPERL_BIGENDIAN)
-	$(MICROPERL_LARGEFILE)
-	$(MICROPERL_WCHAR)
-	$(MAKE) -C $(@D) -f Makefile.micro regen_uconfig
-	cp -f $(@D)/uconfig.h $(@D)/config.h
-	cp -f $(@D)/uconfig.sh $(@D)/config.sh
-	echo "ccname='$(TARGET_CC)'" >>$(@D)/config.sh
-	echo "PERL_CONFIG_SH=true" >>$(@D)/config.sh
-	cd $(@D) ; $(HOST_DIR)/usr/bin/perl make_patchnum.pl ; \
-	$(HOST_DIR)/usr/bin/perl configpm
-endef
-
-define MICROPERL_BUILD_CMDS
-	$(MAKE) -f Makefile.micro -C $(@D) \
-		CC="$(HOSTCC)" bitcount.h
-	$(MAKE) -f Makefile.micro -C $(@D) \
-		CC="$(TARGET_CC)" OPTIMIZE="$(TARGET_CFLAGS)"
-endef
-
-# Some extensions don't need a build run
-# We try to build anyway to avoid a huge black list
-# Just ignore make_ext.pl warning/errors
-define MICROPERL_BUILD_EXTENSIONS
-	for i in $(MICROPERL_MODS); do \
-	cd $(@D); ln -sf $(HOST_DIR)/usr/bin/perl miniperl; \
-		PERL5LIB=$(TARGET_DIR)/$(MICROPERL_ARCH_DIR) \
-		$(HOST_DIR)/usr/bin/perl make_ext.pl MAKE="$(MAKE)" --nonxs \
-		`echo $$i|sed -e 's/.pm//'`; \
-	done
-endef
-
-define MICROPERL_INSTALL_TARGET_CMDS
-	$(INSTALL) -m 0755 -D $(@D)/microperl $(TARGET_DIR)/usr/bin/microperl
-	ln -sf microperl $(TARGET_DIR)/usr/bin/perl
-	for i in $(MICROPERL_ARCH_MODS); do \
-		$(INSTALL) -m 0644 -D $(@D)/lib/$$i \
-			$(TARGET_DIR)/$(MICROPERL_ARCH_DIR)/$$i; \
-	done
-	for i in $(MICROPERL_BASE_MODS); do \
-		$(INSTALL) -m 0644 -D $(@D)/lib/$$i \
-			$(TARGET_DIR)/$(MICROPERL_MODS_DIR)/$$i; \
-	done
-	$(MICROPERL_BUILD_EXTENSIONS)
-	for i in $(MICROPERL_MODS); do \
-		j=`echo $$i|cut -d : -f 1` ; \
-		if [ -d $(@D)/lib/$$j ] ; then \
-			cp -af $(@D)/lib/$$j $(TARGET_DIR)/$(MICROPERL_MODS_DIR) ; \
-		fi ; \
-		if [ -f $(@D)/lib/$$i ] ; then \
-			$(INSTALL) -m 0644 -D $(@D)/lib/$$i $(TARGET_DIR)/$(MICROPERL_MODS_DIR)/$$i; \
-		fi ; \
-	done
-	# Remove test files
-	find $(TARGET_DIR)/$(MICROPERL_MODS_DIR) -type f -name *.t \
-		-exec rm -f {} \;
-endef
-
-define MICROPERL_UNINSTALL_TARGET_CMDS
-	rm -f $(TARGET_DIR)/usr/bin/perl
-	rm -f $(TARGET_DIR)/usr/bin/microperl
-	rm -rf $(TARGET_DIR)/usr/lib/perl5
-endef
-
-$(eval $(generic-package))
-$(eval $(host-generic-package))
diff --git a/package/ntp/Config.in b/package/ntp/Config.in
index 434cd2d..ec5dbbb 100644
--- a/package/ntp/Config.in
+++ b/package/ntp/Config.in
@@ -20,7 +20,7 @@ config BR2_PACKAGE_NTP_NTP_KEYGEN
 
 config BR2_PACKAGE_NTP_NTP_WAIT
 	bool "ntp-wait"
-	depends on BR2_PACKAGE_MICROPERL || BR2_PACKAGE_PERL
+	depends on BR2_PACKAGE_PERL
 	help
 	  ntp-wait waits until the locally running ntpd is in state 4
 	  (synchronized). This could be useful at boot time, to delay the
@@ -59,7 +59,7 @@ config BR2_PACKAGE_NTP_NTPSNMPD
 
 config BR2_PACKAGE_NTP_NTPTRACE
 	bool "ntptrace"
-	depends on BR2_PACKAGE_MICROPERL || BR2_PACKAGE_PERL
+	depends on BR2_PACKAGE_PERL
 	help
 	  ntptrace is a perl script that uses the ntpq utility program to
 	  follow the chain of NTP servers from a given host back to the
diff --git a/package/samba/Config.in b/package/samba/Config.in
index ee3244f..92714d7 100644
--- a/package/samba/Config.in
+++ b/package/samba/Config.in
@@ -36,12 +36,12 @@ config BR2_PACKAGE_SAMBA_FINDSMB
 	default y
 	depends on BR2_PACKAGE_SAMBA_SMBCLIENT
 	depends on BR2_PACKAGE_SAMBA_NMBLOOKUP
-	depends on BR2_PACKAGE_MICROPERL || BR2_PACKAGE_PERL
+	depends on BR2_PACKAGE_PERL
 	help
 	  Script to browse network
 
 comment "findsmb       - disabled (requires nmblookup, smbclient and perl)"
-	depends on !BR2_PACKAGE_SAMBA_SMBCLIENT || !BR2_PACKAGE_SAMBA_NMBLOOKUP || !(BR2_PACKAGE_MICROPERL || BR2_PACKAGE_PERL)
+	depends on !BR2_PACKAGE_SAMBA_SMBCLIENT || !BR2_PACKAGE_SAMBA_NMBLOOKUP || !BR2_PACKAGE_PERL
 
 config BR2_PACKAGE_SAMBA_NET
 	bool "net"
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 01/11] host-qemu: new package
  2012-09-25 17:18 [Buildroot] [PATCH v8 01/11] host-qemu: new package Francois Perrad
                   ` (9 preceding siblings ...)
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 11/11] microperl: remove it Francois Perrad
@ 2012-09-25 21:15 ` Arnout Vandecappelle
  2012-09-26  7:33   ` Thomas Petazzoni
  2012-10-04 20:33 ` Thomas Petazzoni
  11 siblings, 1 reply; 40+ messages in thread
From: Arnout Vandecappelle @ 2012-09-25 21:15 UTC (permalink / raw)
  To: buildroot

On 09/25/12 19:18, Francois Perrad wrote:
> only user mode for the current target architecture
>
> Signed-off-by: Francois Perrad<francois.perrad@gadz.org>
[snip]
> diff --git a/package/qemu/Config.in.host b/package/qemu/Config.in.host
> new file mode 100644
> index 0000000..379507c
> --- /dev/null
> +++ b/package/qemu/Config.in.host
> @@ -0,0 +1,15 @@
> +config BR2_PACKAGE_HOST_QEMU
> +	bool "host qemu"
> +	help
> +	  QEMU is a generic and open source machine emulator and virtualizer.
> +
> +	  In user mode emulation, QEMU runs single cross-compiled programs.
> +	  Fast cross-compilation and cross-debugging are the main targets
> +	  for user-mode emulation.
> +
> +	  In system mode emulation, QEMU emulates a full computer system,
> +	  including peripherals, and handles the filesystem image generated
> +	  by Buildroot.
> +	  (Buildroot is shipped with many configs/qemu_*_defconfig files).

  If only user mode is supported, that should be documented in the help text.

> +
> +	  http://qemu.org/
> diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
> new file mode 100644
> index 0000000..d727f49
> --- /dev/null
> +++ b/package/qemu/qemu.mk
> @@ -0,0 +1,43 @@
> +#############################################################
> +#
> +# qemu
> +#
> +#############################################################
> +
> +QEMU_VERSION = 1.2.0
> +QEMU_SOURCE = qemu-$(QEMU_VERSION).tar.bz2
> +QEMU_SITE = http://wiki.qemu.org/download
> +
> +HOST_QEMU_DEPENDENCIES =

  This can be removed.

> +
> +QEMU_ARCH=$(ARCH)
> +ifeq ($(QEMU_ARCH),i686)
> +    QEMU_ARCH=i386
> +endif
> +HOST_QEMU_TARGETS=$(QEMU_ARCH)-linux-user

  We normally put spaces before and after =

> +
> +define HOST_QEMU_CONFIGURE_CMDS
> +	(cd $(@D); ./configure                          \
> +		--target-list="$(HOST_QEMU_TARGETS)"    \
> +		--prefix="$(HOST_DIR)/usr"              \
> +		--interp-prefix=$(STAGING_DIR)          \
> +		--cc="$(HOSTCC)"                        \
> +		--host-cc="$(HOSTCC)"                   \
> +		--extra-cflags="$(HOST_CFLAGS)"         \
> +		--extra-ldflags="$(HOST_LDFLAGS)"       \
> +	)
> +endef
> +
> +define HOST_QEMU_BUILD_CMDS
> +	$(MAKE) -C $(@D) all
> +endef
> +
> +define HOST_QEMU_INSTALL_CMDS
> +	$(MAKE) -C $(@D) install
> +endef
> +
> +define HOST_QEMU_CLEAN_CMDS
> +	$(MAKE) -C $(@D) clean
> +endef
> +
> +$(eval $(host-generic-package))

  This looks very much like a $(host-autotools-package).  Even if the
configure is not a proper autoconf script and barfs on all the unknown
options that buildroot adds, you can still override the CONFIGURE_CMDS.
But I expect that just setting HOST_QEMU_CONF_OPT will be enough.


  Regards,
  Arnout

-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 01/11] host-qemu: new package
  2012-09-25 21:15 ` [Buildroot] [PATCH v8 01/11] host-qemu: new package Arnout Vandecappelle
@ 2012-09-26  7:33   ` Thomas Petazzoni
  0 siblings, 0 replies; 40+ messages in thread
From: Thomas Petazzoni @ 2012-09-26  7:33 UTC (permalink / raw)
  To: buildroot

Dear Arnout Vandecappelle,

On Tue, 25 Sep 2012 23:15:49 +0200, Arnout Vandecappelle wrote:

>   This looks very much like a $(host-autotools-package).  Even if the
> configure is not a proper autoconf script and barfs on all the unknown
> options that buildroot adds, you can still override the
> CONFIGURE_CMDS. But I expect that just setting HOST_QEMU_CONF_OPT
> will be enough.

Still, the package doesn't use the autotools, so we shouldn't use the
autotools-package infrastructure for it. While it may work at current
time t, it may easily break at time t+1 if we make changes to the
autotools-package infrastructure that are relevant for autotools
packages, but that break the subtle assumptions that non-autotools
packages are making in their use of the autotools-package
infrastructure.

So no, let's make things explicit: Qemu doesn't not use the autotools,
they have a custom configure script, custom Makefiles, so we have to
use the generic-package infrastructure here.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 01/11] host-qemu: new package
  2012-09-25 17:18 [Buildroot] [PATCH v8 01/11] host-qemu: new package Francois Perrad
                   ` (10 preceding siblings ...)
  2012-09-25 21:15 ` [Buildroot] [PATCH v8 01/11] host-qemu: new package Arnout Vandecappelle
@ 2012-10-04 20:33 ` Thomas Petazzoni
  2012-10-04 22:09   ` Frank Hunleth
  2012-10-06 13:51   ` François Perrad
  11 siblings, 2 replies; 40+ messages in thread
From: Thomas Petazzoni @ 2012-10-04 20:33 UTC (permalink / raw)
  To: buildroot

Fran?ois,

Thanks for keeping up the good work on this.

On Tue, 25 Sep 2012 19:18:17 +0200, Francois Perrad wrote:
> only user mode for the current target architecture
> 
> Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
> ---
>  package/Config.in.host      |    1 +
>  package/qemu/Config.in.host |   15 +++++++++++++++
>  package/qemu/qemu.mk        |   43 +++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 59 insertions(+)
>  create mode 100644 package/qemu/Config.in.host
>  create mode 100644 package/qemu/qemu.mk
> 
> diff --git a/package/Config.in.host b/package/Config.in.host
> index 79050f2..bf95a10 100644
> --- a/package/Config.in.host
> +++ b/package/Config.in.host
> @@ -4,6 +4,7 @@ source "package/dfu-util/Config.in.host"
>  source "package/lpc3250loader/Config.in.host"
>  source "package/omap-u-boot-utils/Config.in.host"
>  source "package/openocd/Config.in.host"
> +source "package/qemu/Config.in.host"
>  source "package/sam-ba/Config.in.host"
>  source "package/uboot-tools/Config.in.host"
>  
> diff --git a/package/qemu/Config.in.host b/package/qemu/Config.in.host
> new file mode 100644
> index 0000000..379507c
> --- /dev/null
> +++ b/package/qemu/Config.in.host
> @@ -0,0 +1,15 @@
> +config BR2_PACKAGE_HOST_QEMU
> +	bool "host qemu"
> +	help
> +	  QEMU is a generic and open source machine emulator and virtualizer.
> +
> +	  In user mode emulation, QEMU runs single cross-compiled programs.
> +	  Fast cross-compilation and cross-debugging are the main targets
> +	  for user-mode emulation.
> +
> +	  In system mode emulation, QEMU emulates a full computer system,
> +	  including peripherals, and handles the filesystem image generated
> +	  by Buildroot.
> +	  (Buildroot is shipped with many configs/qemu_*_defconfig files).
> +
> +	  http://qemu.org/

I think you should not add a Kconfig option for the host-qemu package
for now. Until it supports the system emulation, it is kind of useless
to have it listed in the host tools. For the perl stuff, you only need
the user emulation, so let's add support for the user emulation only at
the moment.

> diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
> new file mode 100644
> index 0000000..d727f49
> --- /dev/null
> +++ b/package/qemu/qemu.mk
> @@ -0,0 +1,43 @@
> +#############################################################
> +#
> +# qemu
> +#
> +#############################################################
> +
> +QEMU_VERSION = 1.2.0
> +QEMU_SOURCE = qemu-$(QEMU_VERSION).tar.bz2
> +QEMU_SITE = http://wiki.qemu.org/download
> +
> +HOST_QEMU_DEPENDENCIES =

I think this is not needed.

> +
> +QEMU_ARCH=$(ARCH)
> +ifeq ($(QEMU_ARCH),i686)
> +    QEMU_ARCH=i386
> +endif
> +HOST_QEMU_TARGETS=$(QEMU_ARCH)-linux-user

This will not work for a number of architectures.

See the definition of BR2_ARCH in target/Config.in.arch. The list of
architectures you have to handle is:

	arm	-> no change
	armeb	-> no change
	avr32	-> not supported (so the perl package should depends on !BR2_avr32)
	bfin	-> not supported (so the perl package should depends on !BR2_bfin)
	i386	-> no change
	i486	-> change to i386
	i586	-> change to i386
	i686	-> change to i386
	x86_64	-> no change
	microblaze -> we probably have an issue here in
			target/Config.in.arch as we don't
			make the distinction between
			little endian and big endian
	mips		-> no change
	mipsel		-> no change
	mips64el	-> not sure what to do
	mips64		-> not sure what to do
	powerpc		-> change to ppc
	sh2		-> not supported (so perl should depends on !BR2_sh2)
	sh2a		-> ditto
	sh3		-> ditto
	sh4		-> no change
	sh4eb		-> no change
	sh4aeb		-> not sure, maybe sh4eb would work, but I don't know
	sh4a		-> not sure, same reason
	sh64		-> not supported (so perl should depends on !BR2_sh64)
	sparc		-> no change

So the definition of QEMU_ARCH needs to be made a bit more complicated.
Note: I wouldn't mind if you decide to exclude certain architectures
even if they might potentially work. We have to limit the development
work for a first version, otherwise we'll never get those patches
merged. So you could decide to support only i386, arm and maybe powerpc
for now, I would be fine with this.

> +define HOST_QEMU_CONFIGURE_CMDS
> +	(cd $(@D); ./configure                          \
> +		--target-list="$(HOST_QEMU_TARGETS)"    \
> +		--prefix="$(HOST_DIR)/usr"              \
> +		--interp-prefix=$(STAGING_DIR)          \
> +		--cc="$(HOSTCC)"                        \
> +		--host-cc="$(HOSTCC)"                   \
> +		--extra-cflags="$(HOST_CFLAGS)"         \
> +		--extra-ldflags="$(HOST_LDFLAGS)"       \
> +	)
> +endef
> +
> +define HOST_QEMU_BUILD_CMDS
> +	$(MAKE) -C $(@D) all
> +endef
> +
> +define HOST_QEMU_INSTALL_CMDS
> +	$(MAKE) -C $(@D) install
> +endef
> +
> +define HOST_QEMU_CLEAN_CMDS
> +	$(MAKE) -C $(@D) clean
> +endef
> +
> +$(eval $(host-generic-package))

The rest sounds ok to me. Shouldn't you pass a bunch of --disable-xxx
options in order to make sure that the Qemu ./configure script doesn't
pick up certain host libraries (SDL, etc.) ?

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 02/11] perl: new package
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 02/11] perl: " Francois Perrad
@ 2012-10-04 20:40   ` Thomas Petazzoni
  2012-10-06 13:29     ` François Perrad
  2012-10-04 21:18   ` Thomas Petazzoni
  2012-10-06 12:12   ` Arnout Vandecappelle
  2 siblings, 1 reply; 40+ messages in thread
From: Thomas Petazzoni @ 2012-10-04 20:40 UTC (permalink / raw)
  To: buildroot

Fran?ois,

On Tue, 25 Sep 2012 19:18:18 +0200, Francois Perrad wrote:

> diff --git a/package/perl/Config.in b/package/perl/Config.in
> new file mode 100644
> index 0000000..6b7a986
> --- /dev/null
> +++ b/package/perl/Config.in
> @@ -0,0 +1,9 @@
> +config BR2_PACKAGE_PERL
> +	bool "perl"
> +	select BR2_PACKAGE_HOST_QEMU

As per my suggestion on the host-qemu package, you can remove this
select statement.

> +	help
> +	  Larry Wall's Practical Extraction and Report Language
> +	  An interpreted scripting language, known among some as "Unix's Swiss
> +	  Army Chainsaw".
> +
> +	  http://www.perl.org/
> diff --git a/package/perl/perl-configure-qemu.patch b/package/perl/perl-configure-qemu.patch
> new file mode 100644
> index 0000000..921ac0b
> --- /dev/null
> +++ b/package/perl/perl-configure-qemu.patch
> @@ -0,0 +1,43 @@
> +Add qemu support
> +
> +see https://rt.perl.org/rt3//Public/Bug/Display.html?id=114798
> +
> +Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
> +
> +Index: b/Configure
> +===================================================================
> +--- a/Configure
> ++++ b/Configure
> +@@ -2868,7 +2868,7 @@
> + 	case "$targetfrom" in
> + 	'') targetfrom=scp ;;
> + 	esac
> +-    	run=$run-$targetrun
> ++    	run=$run-`basename $targetrun`
> +     	to=$to-$targetto
> +     	from=$from-$targetfrom
> + 	case "$targetdir" in
> +@@ -2908,6 +2908,14 @@
> + $targetrun -l $targetuser $targethost "cd \$cwd && ./\$exe \$@"
> + EOF
> + 	    ;;
> ++	*qemu*)
> ++	    to=:
> ++	    from=:
> ++	    cat >$run <<EOF
> ++#!/bin/sh
> ++$targetrun -L $qemulib "\$@"
> ++EOF
> ++	    ;;
> + 	*)  echo "Unknown targetrun '$targetrun'" >&4
> + 	    exit 1
> + 	    ;;
> +@@ -5048,7 +5056,7 @@
> + echo " ";
> + echo "Checking if your compiler accepts $flag" 2>&1;
> + echo "int main(void) { return 0; }" > gcctest.c;
> +-if $cc -O2 $flag -o gcctest gcctest.c 2>gcctest.out && ./gcctest; then
> ++if $cc -O2 $flag -o gcctest gcctest.c 2>gcctest.out && $run ./gcctest; then
> +     echo "Yes, it does." 2>&1;
> +     if $test -s gcctest.out ; then
> +         echo "But your platform does not like it:";
> diff --git a/package/perl/perl-make-ext.patch b/package/perl/perl-make-ext.patch
> new file mode 100644
> index 0000000..e0195e7
> --- /dev/null
> +++ b/package/perl/perl-make-ext.patch
> @@ -0,0 +1,24 @@
> +Don't use RUN with make (only for perl)
> +
> +Signed-off-by: Francois Perrad <francois.perrad@gadz.org>

I would really to see a bit more details in the patch descriptions.
This is probably enough for you to understand what's going on, but not
for people reviewing your code, or people that will end up maintaining
this if you move away from Buildroot :-)

> diff --git a/package/perl/perl.mk b/package/perl/perl.mk
> new file mode 100644
> index 0000000..7d60ca7
> --- /dev/null
> +++ b/package/perl/perl.mk
> @@ -0,0 +1,99 @@
> +#############################################################
> +#
> +# perl
> +#
> +#############################################################
> +
> +PERL_VERSION_MAJOR = 16
> +PERL_VERSION = 5.$(PERL_VERSION_MAJOR).1
> +PERL_SITE = http://www.cpan.org/src/5.0
> +PERL_SOURCE = perl-$(PERL_VERSION).tar.bz2
> +PERL_LICENSE = Artistic
> +PERL_LICENSE_FILES = Artistic
> +PERL_INSTALL_STAGING = YES
> +PERL_DEPENDENCIES = host-qemu
> +
> +ifeq ($(shell expr $(PERL_VERSION_MAJOR) % 2), 1)
> +    PERL_USE_DEVEL=-Dusedevel
> +endif
> +
> +ifneq ($(BR2_LARGEFILE),y)
> +    PERL_NO_LARGEFILE=-Uuselargefiles
> +endif
> +
> +PERL_ARCH=$(ARCH)
> +ifeq ($(PERL_ARCH),i686)
> +    PERL_ARCH=i386
> +endif
> +PERL_QEMU_USER_MODE=$(HOST_DIR)/usr/bin/qemu-$(PERL_ARCH)

Same comments as the QEMU_ARCH definition. And it should clearly be
shared with the host-qemu package.

> +define PERL_CONFIGURE_CMDS
> +	rm -f $(@D)/config.sh
> +	(cd $(@D); ./Configure -des \
> +		-Dusecrosscompile \
> +		-Dtargetrun=$(PERL_QEMU_USER_MODE) \
> +		-Dqemulib=$(STAGING_DIR) \
> +		-Dtargethost=dummy \
> +		-Dar="$(TARGET_AR)" \
> +		-Dcc="$(TARGET_CC)" \
> +		-Dcpp="$(TARGET_CC)" \
> +		-Dld="$(TARGET_LD)" \
> +		-Dnm="$(TARGET_NM)" \
> +		-Dranlib="$(TARGET_RANLIB)" \
> +		-Dccflags="$(TARGET_CFLAGS)" \
> +		-Dldflags="$(TARGET_LDFLAGS) -l gcc_s" \
> +		-Dlddlflags="-shared" \
> +		-Dlibc=$(TARGET_HOST)/usr/$(GNU_TARGET_NAME)/sysroot/lib/libc.so \

Doh, what is target host? Why aren't you simply using:

		-Dlibc="$(STAGING_DIR)/lib/libc.so" ?

> +		-Duseshrplib \
> +		-Dprefix=/usr \
> +		-Uoptimize \
> +		$(PERL_USE_DEVEL) \
> +		$(PERL_NO_LARGEFILE))
> +	echo "# patched values"                 >>$(@D)/config.sh
> +	$(SED) '/^myarchname=/d' \
> +		-e '/^mydomain=/d' \
> +		-e '/^myhostname=/d' \
> +		-e '/^myuname=/d' \
> +		-e '/^osname=/d' \
> +		-e '/^osvers=/d' \
> +		-e '/^perladmin=/d' \
> +		$(@D)/config.sh
> +	echo "myarchname='$(GNU_TARGET_NAME)'"                  >>$(@D)/config.sh
> +	echo "mydomain=''"                                      >>$(@D)/config.sh
> +	echo "myhostname='$(BR2_TARGET_GENERIC_HOSTNAME)'"      >>$(@D)/config.sh
> +	echo "myuname='Buildroot $(BR2_VERSION_FULL)'"          >>$(@D)/config.sh
> +	echo "osname='linux'"                                   >>$(@D)/config.sh
> +	echo "osvers='$(BR2_LINUX_KERNEL_VERSION)'"             >>$(@D)/config.sh
> +	echo "perladmin='root'"                                 >>$(@D)/config.sh
> +	(cd $(@D); ./Configure -S)
> +	cp $(@D)/config.h $(@D)/xconfig.h
> +	$(SED) 's/UNKNOWN-/Buildroot $(BR2_VERSION_FULL) /' $(@D)/patchlevel.h
> +endef
> +
> +define PERL_BUILD_CMDS
> +	echo "#!/bin/sh"                                        > $(@D)/Cross/miniperl
> +	echo "$(PERL_QEMU_USER_MODE) $(@D)/miniperl \"\$$@\""   >>$(@D)/Cross/miniperl
> +	chmod +x $(@D)/Cross/miniperl
> +	PERL_MM_OPT="PERL=$(@D)/Cross/miniperl" \
> +	$(MAKE) -C $(@D) all
> +endef
> +
> +define PERL_INSTALL_STAGING_CMDS
> +	$(MAKE) INSTALL_DEPENDENCE= \
> +		INSTALLFLAGS= \
> +		DESTDIR="$(STAGING_DIR)" \
> +		-C $(@D) install.perl
> +endef
> +
> +define PERL_INSTALL_TARGET_CMDS
> +	$(MAKE) INSTALL_DEPENDENCE= \
> +		INSTALLFLAGS=-p \
> +		DESTDIR="$(TARGET_DIR)" \
> +		-C $(@D) install.perl
> +endef
> +
> +define PERL_CLEAN_CMDS
> +	-$(MAKE) -C $(@D) clean
> +endef
> +
> +$(eval $(generic-package))

That's all I have for now on this patch.

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 03/11] perl: add an option for miniperl
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 03/11] perl: add an option for miniperl Francois Perrad
@ 2012-10-04 20:41   ` Thomas Petazzoni
  2012-10-06 12:17     ` Arnout Vandecappelle
  2012-10-06 12:15   ` Arnout Vandecappelle
  1 sibling, 1 reply; 40+ messages in thread
From: Thomas Petazzoni @ 2012-10-04 20:41 UTC (permalink / raw)
  To: buildroot

Fran?ois,

On Tue, 25 Sep 2012 19:18:19 +0200, Francois Perrad wrote:

> diff --git a/package/perl/perl-install-miniperl.patch b/package/perl/perl-install-miniperl.patch
> new file mode 100644
> index 0000000..7e6f8e6
> --- /dev/null
> +++ b/package/perl/perl-install-miniperl.patch
> @@ -0,0 +1,129 @@
> +Add an option -miniperl
> +
> +Signed-off-by: Francois Perrad <francois.perrad@gadz.org>

Does this (fairly long) patch has a chance of being merged upstream? If
not, then I'd prefer if we simply didn't support miniperl.

Otherwise, it looks ok.

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 07/11] cpanminus: new package
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 07/11] cpanminus: new package Francois Perrad
@ 2012-10-04 20:46   ` Thomas Petazzoni
  2012-10-06 13:43     ` François Perrad
  2012-10-04 21:01   ` Thomas Petazzoni
  2012-10-06 12:29   ` Arnout Vandecappelle
  2 siblings, 1 reply; 40+ messages in thread
From: Thomas Petazzoni @ 2012-10-04 20:46 UTC (permalink / raw)
  To: buildroot

Fran?ois,

On Tue, 25 Sep 2012 19:18:23 +0200, Francois Perrad wrote:
> diff --git a/package/cpanminus/cpanminus.mk b/package/cpanminus/cpanminus.mk
> new file mode 100644
> index 0000000..1b2857a
> --- /dev/null
> +++ b/package/cpanminus/cpanminus.mk
> @@ -0,0 +1,44 @@
> +#############################################################
> +#
> +# cpanminus
> +#
> +#############################################################
> +
> +CPANMINUS_VERSION = 1.5018
> +CPANMINUS_SOURCE = miyagawa-cpanminus-$(CPANMINUS_VERSION)-0-gee6cd30.tar.gz
> +CPANMINUS_SITE = https://github.com/miyagawa/cpanminus/tarball/$(CPANMINUS_VERSION)
> +CPANMINUS_DEPENDENCIES = perl $(call qstrip,$(BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES))
> +
> +CPANMINUS_ARCH=$(ARCH)
> +ifeq ($(CPANMINUS_ARCH),i686)
> +    CPANMINUS_ARCH=i386
> +endif

Same comment: not complete, and please share all those Qemu definitions
in the host-qemu package. It should probably define TARGET_QEMU_USER to
$(HOST_DIR)/usr/bin/qemu-$(QEMU_ARCH). Unless of course they are not
related to Qemu.

> +CPANMINUS_QEMU_USER_MODE=$(HOST_DIR)/usr/bin/qemu-$(CPANMINUS_ARCH)
> +CPANMINUS_RUN_PERL=$(CPANMINUS_QEMU_USER_MODE) $(STAGING_DIR)/usr/bin/perl
> +CPANMINUS_ARCHNAME=$(shell $(CPANMINUS_RUN_PERL) -MConfig -e "print Config->{archname}")
> +CPANMINUS_PERL_LIB=$(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION)
> +CPANMINUS_PERL_ARCHLIB=$(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION)/$(CPANMINUS_ARCHNAME)

CPANMINUS_PERL_ARCHLIB = $(CPANMINUS_PERL_LIB)/$(CPANMINUS_ARCHNAME)

> +CPANMINUS_PERL_SITELIB=$(TARGET_DIR)/usr/lib/perl5/site_perl/$(PERL_VERSION)
> +CPANMINUS_PERL_SITEARCH=$(TARGET_DIR)/usr/lib/perl5/site_perl/$(PERL_VERSION)/$(CPANMINUS_ARCHNAME)

CPANMINUS_PERL_SITEARCH = $(CPANMINUS_PERL_SITELIB)/$(CPANMINUS_ARCHNAME) 

> +CPANMINUS_PERL5LIB=$(CPANMINUS_PERL_SITEARCH):$(CPANMINUS_PERL_SITELIB):$(CPANMINUS_PERL_ARCHLIB):$(CPANMINUS_PERL_LIB)


> +ifneq ($(BR2_PACKAGE_CPANMINUS_MIRROR),"")
> +    CPANMINUS_MIRROR=--mirror $(call qstrip,$(BR2_PACKAGE_CPANMINUS_MIRROR)) --mirror-only
> +endif

CPANMINUS_MIRROR = $(call qstrip,$(BR2_PACKAGE_CPANMINUS_MIRROR)
ifneq ($(CPANMINUS_MIRROR),y)
	CPANMINUS_CONF_OPT += --mirror $(CPANMINUS_MIRROR) --mirror-only
endif

And also, put space before and after equal sign when defining make variables.

> +define CPANMINUS_INSTALL_TARGET_CMDS
> +	echo "#!/bin/sh"                                                        > $(@D)/run_perl
> +	echo "PERL5LIB=$(CPANMINUS_PERL5LIB) $(CPANMINUS_RUN_PERL) \"\$$@\""    >>$(@D)/run_perl
> +	chmod +x $(@D)/run_perl
> +	PERL5LIB=$(CPANMINUS_PERL5LIB) \
> +	PERL_MM_OPT="DESTDIR=$(TARGET_DIR) PERL=$(@D)/run_perl PERL_LIB=$(CPANMINUS_PERL_LIB) PERL_ARCHLIB=$(CPANMINUS_PERL_ARCHLIB)" \
> +	PERL_MB_OPT="--destdir $(TARGET_DIR)" \
> +	RUN_PERL="$(@D)/run_perl" \
> +	$(CPANMINUS_RUN_PERL) $(@D)/cpanm \
> +		--perl=$(@D)/run_perl \
> +		--notest \
> +		--no-man-pages \
> +		$(CPANMINUS_MIRROR) \
> +		$(call qstrip,$(BR2_PACKAGE_CPANMINUS_MODULES))
> +endef
> +
> +$(eval $(generic-package))
> diff --git a/package/perl/perl-fix-Module-Build.patch b/package/perl/perl-fix-Module-Build.patch
> new file mode 100644
> index 0000000..26b15e4
> --- /dev/null
> +++ b/package/perl/perl-fix-Module-Build.patch
> @@ -0,0 +1,16 @@
> +
> +Signed-off-by: Francois Perrad <francois.perrad@gadz.org>

Patch description please.

> +
> +Index: b/cpan/Module-Build/lib/Module/Build/Base.pm
> +===================================================================
> +--- a/cpan/Module-Build/lib/Module/Build/Base.pm
> ++++ b/cpan/Module-Build/lib/Module/Build/Base.pm
> +@@ -456,7 +456,7 @@
> +   my $proto = shift;
> +   my $c     = ref($proto) ? $proto->{config} : 'Module::Build::Config';
> + 
> +-  my $perl  = $^X;
> ++  my $perl  = $ENV{RUN_PERL} || $^X;
> +   my $perl_basename = File::Basename::basename($perl);
> + 
> +   my @potential_perls;

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 07/11] cpanminus: new package
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 07/11] cpanminus: new package Francois Perrad
  2012-10-04 20:46   ` Thomas Petazzoni
@ 2012-10-04 21:01   ` Thomas Petazzoni
  2012-10-05  8:12     ` François Perrad
  2012-10-06 13:44     ` François Perrad
  2012-10-06 12:29   ` Arnout Vandecappelle
  2 siblings, 2 replies; 40+ messages in thread
From: Thomas Petazzoni @ 2012-10-04 21:01 UTC (permalink / raw)
  To: buildroot

Fran?ois,

Some other questions...

On Tue, 25 Sep 2012 19:18:23 +0200, Francois Perrad wrote:

> +if BR2_PACKAGE_CPANMINUS
> +
> +config BR2_PACKAGE_CPANMINUS_MIRROR
> +	string "mirror"
> +	help
> +	  Specifies the base URL for the CPAN mirror to use,
> +	  such as http://cpan.cpantesters.org/.
> +
> +config BR2_PACKAGE_CPANMINUS_MODULES
> +	string "Perl modules from CPAN"
> +	help
> +	  List of space-separated Perl modules to install from CPAN.
> +
> +	  Examples: Try::Tiny Dancer YAML Moo
> +
> +	  Install the listed modules and their dependencies.
> +
> +config BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES
> +	string "native dependencies"
> +	help
> +	  Some XS modules require native libraries.

I'm wondering if those options shouldn't have some default values, at
least for BR2_PACKAGE_CPANMINUS_MODULES and
BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES, so that when our
autobuilders will enable this package, it will actually build
something. Of course, we can't test all possibilities, but at least
testing a basic module that has a native dependency would be a good
test.

> +define CPANMINUS_INSTALL_TARGET_CMDS
> +	echo "#!/bin/sh"                                                        > $(@D)/run_perl
> +	echo "PERL5LIB=$(CPANMINUS_PERL5LIB) $(CPANMINUS_RUN_PERL) \"\$$@\""    >>$(@D)/run_perl
> +	chmod +x $(@D)/run_perl
> +	PERL5LIB=$(CPANMINUS_PERL5LIB) \
> +	PERL_MM_OPT="DESTDIR=$(TARGET_DIR) PERL=$(@D)/run_perl PERL_LIB=$(CPANMINUS_PERL_LIB) PERL_ARCHLIB=$(CPANMINUS_PERL_ARCHLIB)" \
> +	PERL_MB_OPT="--destdir $(TARGET_DIR)" \
> +	RUN_PERL="$(@D)/run_perl" \
> +	$(CPANMINUS_RUN_PERL) $(@D)/cpanm \
> +		--perl=$(@D)/run_perl \
> +		--notest \
> +		--no-man-pages \
> +		$(CPANMINUS_MIRROR) \
> +		$(call qstrip,$(BR2_PACKAGE_CPANMINUS_MODULES))
> +endef

Will this work if $(BR2_PACKAGE_CPANMINUS_MODULES) is empty?

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 02/11] perl: new package
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 02/11] perl: " Francois Perrad
  2012-10-04 20:40   ` Thomas Petazzoni
@ 2012-10-04 21:18   ` Thomas Petazzoni
  2012-10-06 13:33     ` François Perrad
  2012-10-06 12:12   ` Arnout Vandecappelle
  2 siblings, 1 reply; 40+ messages in thread
From: Thomas Petazzoni @ 2012-10-04 21:18 UTC (permalink / raw)
  To: buildroot

Fran?ois,

On Tue, 25 Sep 2012 19:18:18 +0200, Francois Perrad wrote:

> +		-Dldflags="$(TARGET_LDFLAGS) -l gcc_s" \

You should also apply the following patch:

diff --git a/package/perl/perl.mk b/package/perl/perl.mk
index fbe7ba9..4e6f50b 100644
--- a/package/perl/perl.mk
+++ b/package/perl/perl.mk
@@ -52,7 +52,7 @@ define PERL_CONFIGURE_CMDS
                -Dnm="$(TARGET_NM)" \
                -Dranlib="$(TARGET_RANLIB)" \
                -Dccflags="$(TARGET_CFLAGS)" \
-               -Dldflags="$(TARGET_LDFLAGS) -l gcc_s" \
+               -Dldflags="$(TARGET_LDFLAGS) -l gcc_s -lm" \
                -Dlddlflags="-shared" \
                -Dlibc=$(TARGET_HOST)/usr/$(GNU_TARGET_NAME)/sysroot/lib/libc.so \
                -Duseshrplib \

Otherwise, the build fails with:

/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabihf-gcc -l gcc_s -fstack-protector -o miniperl \
            perlmini.o opmini.o miniperlmain.o  malloc.o gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o keywords.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o   
pp.o: In function `Perl_pp_pow':
pp.c:(.text+0x1b24): undefined reference to `pow'
pp.o: In function `Perl_pp_modulo':
pp.c:(.text+0x1f92): undefined reference to `floor'
pp.c:(.text+0x1fa0): undefined reference to `floor'
pp.c:(.text+0x1fbc): undefined reference to `fmod'
[...]

with certain toolchains.

Also, on the target there is a usr/bin/perl and a usr/bin/perl5.x.y
files. One is a hardlink to the other, but it is always a bit
disturbing to see two big files of the same size. Shouldn't we replace
that by a symlink instead, which is more obvious?

Thanks!

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 01/11] host-qemu: new package
  2012-10-04 20:33 ` Thomas Petazzoni
@ 2012-10-04 22:09   ` Frank Hunleth
  2012-10-05  7:19     ` Thomas Petazzoni
  2012-10-06 13:51   ` François Perrad
  1 sibling, 1 reply; 40+ messages in thread
From: Frank Hunleth @ 2012-10-04 22:09 UTC (permalink / raw)
  To: buildroot

On Thu, Oct 4, 2012 at 4:33 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Fran?ois,
>
> Thanks for keeping up the good work on this.
>
> On Tue, 25 Sep 2012 19:18:17 +0200, Francois Perrad wrote:
>> only user mode for the current target architecture
>>
>> Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
>> ---
>>  package/Config.in.host      |    1 +
>>  package/qemu/Config.in.host |   15 +++++++++++++++
>>  package/qemu/qemu.mk        |   43 +++++++++++++++++++++++++++++++++++++++++++
>>  3 files changed, 59 insertions(+)
>>  create mode 100644 package/qemu/Config.in.host
>>  create mode 100644 package/qemu/qemu.mk
>>
>> diff --git a/package/Config.in.host b/package/Config.in.host
>> index 79050f2..bf95a10 100644
>> --- a/package/Config.in.host
>> +++ b/package/Config.in.host
>> @@ -4,6 +4,7 @@ source "package/dfu-util/Config.in.host"
>>  source "package/lpc3250loader/Config.in.host"
>>  source "package/omap-u-boot-utils/Config.in.host"
>>  source "package/openocd/Config.in.host"
>> +source "package/qemu/Config.in.host"
>>  source "package/sam-ba/Config.in.host"
>>  source "package/uboot-tools/Config.in.host"
>>
>> diff --git a/package/qemu/Config.in.host b/package/qemu/Config.in.host
>> new file mode 100644
>> index 0000000..379507c
>> --- /dev/null
>> +++ b/package/qemu/Config.in.host
>> @@ -0,0 +1,15 @@
>> +config BR2_PACKAGE_HOST_QEMU
>> +     bool "host qemu"
>> +     help
>> +       QEMU is a generic and open source machine emulator and virtualizer.
>> +
>> +       In user mode emulation, QEMU runs single cross-compiled programs.
>> +       Fast cross-compilation and cross-debugging are the main targets
>> +       for user-mode emulation.
>> +
>> +       In system mode emulation, QEMU emulates a full computer system,
>> +       including peripherals, and handles the filesystem image generated
>> +       by Buildroot.
>> +       (Buildroot is shipped with many configs/qemu_*_defconfig files).
>> +
>> +       http://qemu.org/
>
> I think you should not add a Kconfig option for the host-qemu package
> for now. Until it supports the system emulation, it is kind of useless
> to have it listed in the host tools. For the perl stuff, you only need
> the user emulation, so let's add support for the user emulation only at
> the moment.

Forgive me if I'm misunderstanding, but I think that listing qemu in
Kconfig may be desirable to me even if only user emulation is
supported. I currently run a set of regression tests as a post-build
step. I use qemu user emulation mode for this. Right now, I use a
system-installed version of qemu-arm but would prefer to use a
buildroot version.

I'm glad to see these patches come in. Thanks for adding them.

Frank

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 01/11] host-qemu: new package
  2012-10-04 22:09   ` Frank Hunleth
@ 2012-10-05  7:19     ` Thomas Petazzoni
  2012-10-06 12:37       ` Arnout Vandecappelle
  0 siblings, 1 reply; 40+ messages in thread
From: Thomas Petazzoni @ 2012-10-05  7:19 UTC (permalink / raw)
  To: buildroot

Frank,

On Thu, 4 Oct 2012 18:09:48 -0400, Frank Hunleth wrote:

> >> --- /dev/null
> >> +++ b/package/qemu/Config.in.host
> >> @@ -0,0 +1,15 @@
> >> +config BR2_PACKAGE_HOST_QEMU
> >> +     bool "host qemu"
> >> +     help
> >> +       QEMU is a generic and open source machine emulator and virtualizer.
> >> +
> >> +       In user mode emulation, QEMU runs single cross-compiled programs.
> >> +       Fast cross-compilation and cross-debugging are the main targets
> >> +       for user-mode emulation.
> >> +
> >> +       In system mode emulation, QEMU emulates a full computer system,
> >> +       including peripherals, and handles the filesystem image generated
> >> +       by Buildroot.
> >> +       (Buildroot is shipped with many configs/qemu_*_defconfig files).
> >> +
> >> +       http://qemu.org/
> >
> > I think you should not add a Kconfig option for the host-qemu package
> > for now. Until it supports the system emulation, it is kind of useless
> > to have it listed in the host tools. For the perl stuff, you only need
> > the user emulation, so let's add support for the user emulation only at
> > the moment.
> 
> Forgive me if I'm misunderstanding, but I think that listing qemu in
> Kconfig may be desirable to me even if only user emulation is
> supported. I currently run a set of regression tests as a post-build
> step. I use qemu user emulation mode for this. Right now, I use a
> system-installed version of qemu-arm but would prefer to use a
> buildroot version.

Sure. But for example the Kconfig help text was mentioning system mode
emulation, even though the current package didn't support it. My point
was: for the sake of building Perl, we don't need to have host-qemu in
Kconfig, so let's not do this, and keep the focus of the patch set.

Fran?ois has already done 8 versions of this patch set, and I am pretty
sure he wants to see it merged. And the best way to see a patch set
merged is to remain absolutely focused on the problem you're trying to
solve, and not to solve a gazillions of other unrelated problems at the
same time.

We will definitely welcome further patches improving the host-qemu
package.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 07/11] cpanminus: new package
  2012-10-04 21:01   ` Thomas Petazzoni
@ 2012-10-05  8:12     ` François Perrad
  2012-10-06 13:44     ` François Perrad
  1 sibling, 0 replies; 40+ messages in thread
From: François Perrad @ 2012-10-05  8:12 UTC (permalink / raw)
  To: buildroot

2012/10/4 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
> Fran?ois,
>
> Some other questions...
>
> On Tue, 25 Sep 2012 19:18:23 +0200, Francois Perrad wrote:
>
>> +if BR2_PACKAGE_CPANMINUS
>> +
>> +config BR2_PACKAGE_CPANMINUS_MIRROR
>> +     string "mirror"
>> +     help
>> +       Specifies the base URL for the CPAN mirror to use,
>> +       such as http://cpan.cpantesters.org/.
>> +
>> +config BR2_PACKAGE_CPANMINUS_MODULES
>> +     string "Perl modules from CPAN"
>> +     help
>> +       List of space-separated Perl modules to install from CPAN.
>> +
>> +       Examples: Try::Tiny Dancer YAML Moo
>> +
>> +       Install the listed modules and their dependencies.
>> +
>> +config BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES
>> +     string "native dependencies"
>> +     help
>> +       Some XS modules require native libraries.
>
> I'm wondering if those options shouldn't have some default values, at
> least for BR2_PACKAGE_CPANMINUS_MODULES and
> BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES, so that when our
> autobuilders will enable this package, it will actually build
> something. Of course, we can't test all possibilities, but at least
> testing a basic module that has a native dependency would be a good
> test.
>

I suggest these values for autobuilder
        BR2_PACKAGE_CPANMINUS_MODULES = Curses::UI
        BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES = ncurses

Thomas, could you test them ?

>> +define CPANMINUS_INSTALL_TARGET_CMDS
>> +     echo "#!/bin/sh"                                                        > $(@D)/run_perl
>> +     echo "PERL5LIB=$(CPANMINUS_PERL5LIB) $(CPANMINUS_RUN_PERL) \"\$$@\""    >>$(@D)/run_perl
>> +     chmod +x $(@D)/run_perl
>> +     PERL5LIB=$(CPANMINUS_PERL5LIB) \
>> +     PERL_MM_OPT="DESTDIR=$(TARGET_DIR) PERL=$(@D)/run_perl PERL_LIB=$(CPANMINUS_PERL_LIB) PERL_ARCHLIB=$(CPANMINUS_PERL_ARCHLIB)" \
>> +     PERL_MB_OPT="--destdir $(TARGET_DIR)" \
>> +     RUN_PERL="$(@D)/run_perl" \
>> +     $(CPANMINUS_RUN_PERL) $(@D)/cpanm \
>> +             --perl=$(@D)/run_perl \
>> +             --notest \
>> +             --no-man-pages \
>> +             $(CPANMINUS_MIRROR) \
>> +             $(call qstrip,$(BR2_PACKAGE_CPANMINUS_MODULES))
>> +endef
>
> Will this work if $(BR2_PACKAGE_CPANMINUS_MODULES) is empty?
>
> Best regards,
>
> Thomas
> --
> Thomas Petazzoni, Free Electrons
> Kernel, drivers, real-time and embedded Linux
> development, consulting, training and support.
> http://free-electrons.com
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 02/11] perl: new package
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 02/11] perl: " Francois Perrad
  2012-10-04 20:40   ` Thomas Petazzoni
  2012-10-04 21:18   ` Thomas Petazzoni
@ 2012-10-06 12:12   ` Arnout Vandecappelle
  2012-10-06 13:34     ` François Perrad
  2 siblings, 1 reply; 40+ messages in thread
From: Arnout Vandecappelle @ 2012-10-06 12:12 UTC (permalink / raw)
  To: buildroot

On 25/09/12 19:18, Francois Perrad wrote:
> Signed-off-by: Francois Perrad<francois.perrad@gadz.org>

  Perl build system is way beyond my understanding, so here are just some generic
comments.

  It may still take a while before your patches make it into the
repository, so please hang on!

[snip]

> diff --git a/package/perl/perl-make-ext.patch b/package/perl/perl-make-ext.patch
> new file mode 100644
> index 0000000..e0195e7
> --- /dev/null
> +++ b/package/perl/perl-make-ext.patch
> @@ -0,0 +1,24 @@
> +Don't use RUN with make (only for perl)

  As Thomas wrote, this patch description is not enough to understand it.
In particular, describe why a patch is needed in the first place.

> +
> +Signed-off-by: Francois Perrad<francois.perrad@gadz.org>
> +
> +Index: b/make_ext.pl
> +===================================================================
> +--- a/make_ext.pl
> ++++ b/make_ext.pl
> +@@ -458,11 +458,13 @@
> + 	# Give makefile an opportunity to rewrite itself.
> + 	# reassure users that life goes on...
> + 	my @args = ('config', @$pass_through);
> +-	system(@run, @make, @args) and print "@run @make @args failed, continuing anyway...\n";
> ++#	system(@run, @make, @args) and print "@run @make @args failed, continuing anyway...\n";
> ++	system(@make, @args) and print "@make @args failed, continuing anyway...\n";

  Since any future maintenance will be based on the patch itself, it's
not necessary to keep the original statement around in a comment -
it's already there in the patch itself.

[snip]
> diff --git a/package/perl/perl.mk b/package/perl/perl.mk
> new file mode 100644
> index 0000000..7d60ca7
> --- /dev/null
> +++ b/package/perl/perl.mk
> @@ -0,0 +1,99 @@
> +#############################################################
> +#
> +# perl
> +#
> +#############################################################
> +
> +PERL_VERSION_MAJOR = 16
> +PERL_VERSION = 5.$(PERL_VERSION_MAJOR).1
> +PERL_SITE = http://www.cpan.org/src/5.0
> +PERL_SOURCE = perl-$(PERL_VERSION).tar.bz2
> +PERL_LICENSE = Artistic
> +PERL_LICENSE_FILES = Artistic
> +PERL_INSTALL_STAGING = YES
> +PERL_DEPENDENCIES = host-qemu
> +
> +ifeq ($(shell expr $(PERL_VERSION_MAJOR) % 2), 1)
> +    PERL_USE_DEVEL=-Dusedevel
> +endif

  This one certainly deserves some explanation...

> +
> +ifneq ($(BR2_LARGEFILE),y)
> +    PERL_NO_LARGEFILE=-Uuselargefiles
> +endif
> +
> +PERL_ARCH=$(ARCH)
> +ifeq ($(PERL_ARCH),i686)
> +    PERL_ARCH=i386
> +endif
> +PERL_QEMU_USER_MODE=$(HOST_DIR)/usr/bin/qemu-$(PERL_ARCH)
> +
> +define PERL_CONFIGURE_CMDS
> +	rm -f $(@D)/config.sh
> +	(cd $(@D); ./Configure -des \
> +		-Dusecrosscompile \
> +		-Dtargetrun=$(PERL_QEMU_USER_MODE) \
> +		-Dqemulib=$(STAGING_DIR) \
> +		-Dtargethost=dummy \
> +		-Dar="$(TARGET_AR)" \
> +		-Dcc="$(TARGET_CC)" \
> +		-Dcpp="$(TARGET_CC)" \
> +		-Dld="$(TARGET_LD)" \
> +		-Dnm="$(TARGET_NM)" \
> +		-Dranlib="$(TARGET_RANLIB)" \
> +		-Dccflags="$(TARGET_CFLAGS)" \
> +		-Dldflags="$(TARGET_LDFLAGS) -l gcc_s" \
> +		-Dlddlflags="-shared" \
> +		-Dlibc=$(TARGET_HOST)/usr/$(GNU_TARGET_NAME)/sysroot/lib/libc.so \
> +		-Duseshrplib \
> +		-Dprefix=/usr \
> +		-Uoptimize \

  It would be nicer to define a variable PERL_CONF_OPT that contains
all these configure options.  Then you can also use += to extended
it instead of defining PERL_USE_DEVEL etc.

> +		$(PERL_USE_DEVEL) \
> +		$(PERL_NO_LARGEFILE))
> +	echo "# patched values">>$(@D)/config.sh
> +	$(SED) '/^myarchname=/d' \
> +		-e '/^mydomain=/d' \
> +		-e '/^myhostname=/d' \
> +		-e '/^myuname=/d' \
> +		-e '/^osname=/d' \
> +		-e '/^osvers=/d' \
> +		-e '/^perladmin=/d' \
> +		$(@D)/config.sh
> +	echo "myarchname='$(GNU_TARGET_NAME)'">>$(@D)/config.sh
> +	echo "mydomain=''">>$(@D)/config.sh
> +	echo "myhostname='$(BR2_TARGET_GENERIC_HOSTNAME)'">>$(@D)/config.sh
> +	echo "myuname='Buildroot $(BR2_VERSION_FULL)'">>$(@D)/config.sh
> +	echo "osname='linux'">>$(@D)/config.sh
> +	echo "osvers='$(BR2_LINUX_KERNEL_VERSION)'">>$(@D)/config.sh
> +	echo "perladmin='root'">>$(@D)/config.sh
> +	(cd $(@D); ./Configure -S)
> +	cp $(@D)/config.h $(@D)/xconfig.h
> +	$(SED) 's/UNKNOWN-/Buildroot $(BR2_VERSION_FULL) /' $(@D)/patchlevel.h
> +endef
> +
> +define PERL_BUILD_CMDS
> +	echo "#!/bin/sh">  $(@D)/Cross/miniperl
> +	echo "$(PERL_QEMU_USER_MODE) $(@D)/miniperl \"\$$@\"">>$(@D)/Cross/miniperl
> +	chmod +x $(@D)/Cross/miniperl

  Wouldn't it make more sense to create miniperl as part of the configure step?
I mean, when you rebuild perl, there's no need to recreate miniperl, right?

> +	PERL_MM_OPT="PERL=$(@D)/Cross/miniperl" \
> +	$(MAKE) -C $(@D) all

  Minor nit: I prefer to see indentation if you continue a line like this.

> +endef
> +
> +define PERL_INSTALL_STAGING_CMDS
> +	$(MAKE) INSTALL_DEPENDENCE= \
> +		INSTALLFLAGS= \
> +		DESTDIR="$(STAGING_DIR)" \
> +		-C $(@D) install.perl
> +endef
> +
> +define PERL_INSTALL_TARGET_CMDS
> +	$(MAKE) INSTALL_DEPENDENCE= \
> +		INSTALLFLAGS=-p \
> +		DESTDIR="$(TARGET_DIR)" \
> +		-C $(@D) install.perl
> +endef
> +
> +define PERL_CLEAN_CMDS
> +	-$(MAKE) -C $(@D) clean
> +endef
> +
> +$(eval $(generic-package))

  All in all, looks pretty good!  Not tested, though.

  Regards,
  Arnout

-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 03/11] perl: add an option for miniperl
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 03/11] perl: add an option for miniperl Francois Perrad
  2012-10-04 20:41   ` Thomas Petazzoni
@ 2012-10-06 12:15   ` Arnout Vandecappelle
  1 sibling, 0 replies; 40+ messages in thread
From: Arnout Vandecappelle @ 2012-10-06 12:15 UTC (permalink / raw)
  To: buildroot

On 25/09/12 19:18, Francois Perrad wrote:
> Signed-off-by: Francois Perrad<francois.perrad@gadz.org>

  Looks good, but I don't dare to ack without testing...

  Regards,
  Arnout
-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 03/11] perl: add an option for miniperl
  2012-10-04 20:41   ` Thomas Petazzoni
@ 2012-10-06 12:17     ` Arnout Vandecappelle
  2012-10-06 13:38       ` François Perrad
  0 siblings, 1 reply; 40+ messages in thread
From: Arnout Vandecappelle @ 2012-10-06 12:17 UTC (permalink / raw)
  To: buildroot

On 04/10/12 22:41, Thomas Petazzoni wrote:
> Fran?ois,
>
> On Tue, 25 Sep 2012 19:18:19 +0200, Francois Perrad wrote:
>
>> diff --git a/package/perl/perl-install-miniperl.patch b/package/perl/perl-install-miniperl.patch
>> new file mode 100644
>> index 0000000..7e6f8e6
>> --- /dev/null
>> +++ b/package/perl/perl-install-miniperl.patch
>> @@ -0,0 +1,129 @@
>> +Add an option -miniperl
>> +
>> +Signed-off-by: Francois Perrad<francois.perrad@gadz.org>
>
> Does this (fairly long) patch has a chance of being merged upstream? If
> not, then I'd prefer if we simply didn't support miniperl.

  I don't agree.  There is definitely a need for a non-bloated perl in buildroot.
So if microperl is on its way out, this patch is needed even if upstream doesn't
accept it.

  Regards,
  Arnout
-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 04/11] perl: add DB_File
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 04/11] perl: add DB_File Francois Perrad
@ 2012-10-06 12:23   ` Arnout Vandecappelle
  2012-10-06 13:40     ` François Perrad
  0 siblings, 1 reply; 40+ messages in thread
From: Arnout Vandecappelle @ 2012-10-06 12:23 UTC (permalink / raw)
  To: buildroot

On 25/09/12 19:18, Francois Perrad wrote:
> Signed-off-by: Francois Perrad<francois.perrad@gadz.org>
> ---
>   package/perl/Config.in |   10 ++++++++++
>   package/perl/perl.mk   |    4 ++++
>   2 files changed, 14 insertions(+)
>
> diff --git a/package/perl/Config.in b/package/perl/Config.in
> index 3e11574..e0dbbdf 100644
> --- a/package/perl/Config.in
> +++ b/package/perl/Config.in
> @@ -17,3 +17,13 @@ config BR2_PACKAGE_PERL_ONLY_MINIPERL
>   	  Usually used to bootstrap a full Perl (@INC contains only .).
>
>   endif
> +
> +if BR2_PACKAGE_PERL&&  !BR2_PACKAGE_PERL_ONLY_MINIPERL

  You can reuse the preceding if BR2_PACKAGE_PERL, so all the perl options
will be wrapped into two condition levels.

> +
> +config BR2_PACKAGE_PERL_DB_FILE
> +	bool "DB_File"
> +	select BR2_PACKAGE_BERKELEYDB
> +	help
> +	  Build the DB_File module.
> +
> +endif
> diff --git a/package/perl/perl.mk b/package/perl/perl.mk
> index 8f7ba15..0c69e0b 100644
> --- a/package/perl/perl.mk
> +++ b/package/perl/perl.mk
> @@ -11,7 +11,11 @@ PERL_SOURCE = perl-$(PERL_VERSION).tar.bz2
>   PERL_LICENSE = Artistic
>   PERL_LICENSE_FILES = Artistic
>   PERL_INSTALL_STAGING = YES
> +
>   PERL_DEPENDENCIES = host-qemu
> +ifeq ($(BR2_PACKAGE_PERL_DB_FILE),y)
> +    PERL_DEPENDENCIES += berkeleydb
> +endif

  We want reproducible builds, so whether DB_File is built shouldn't depend
on whether berkeleydb happens to have been built before.  If you don't select
the PERL_DB_FILE option, DB_File still might be built depending on the order
of compilation. There are two options to resolve this.

- Add something to PERL_CONF_OPT to explicitly disable and enable DB_FILE.

- Remove the configure option, and instead write
ifeq ($(BR2_PACKAGE_BERKELEYDB),y)
	PERL_DEPENDENCIES += berkeleydb
endif


  Regards,
  Arnout
-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 07/11] cpanminus: new package
  2012-09-25 17:18 ` [Buildroot] [PATCH v8 07/11] cpanminus: new package Francois Perrad
  2012-10-04 20:46   ` Thomas Petazzoni
  2012-10-04 21:01   ` Thomas Petazzoni
@ 2012-10-06 12:29   ` Arnout Vandecappelle
  2 siblings, 0 replies; 40+ messages in thread
From: Arnout Vandecappelle @ 2012-10-06 12:29 UTC (permalink / raw)
  To: buildroot

  Didn't have time to look at the patch in detail; however:

On 25/09/12 19:18, Francois Perrad wrote:
> +config BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES
> +	string "native dependencies"
> +	help
> +	  Some XS modules require native libraries.
> +

  This one certainly deserves a better explanation.  How about:

Some XS modules require native libraries. Give a list here of
buildroot packages that are required for the CPAN modules selected
above.


  Regards,
  Arnout

-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 01/11] host-qemu: new package
  2012-10-05  7:19     ` Thomas Petazzoni
@ 2012-10-06 12:37       ` Arnout Vandecappelle
  0 siblings, 0 replies; 40+ messages in thread
From: Arnout Vandecappelle @ 2012-10-06 12:37 UTC (permalink / raw)
  To: buildroot

On 05/10/12 09:19, Thomas Petazzoni wrote:
> Sure. But for example the Kconfig help text was mentioning system mode
> emulation, even though the current package didn't support it. My point
> was: for the sake of building Perl, we don't need to have host-qemu in
> Kconfig, so let's not do this, and keep the focus of the patch set.
>
> Fran?ois has already done 8 versions of this patch set, and I am pretty
> sure he wants to see it merged. And the best way to see a patch set
> merged is to remain absolutely focused on the problem you're trying to
> solve, and not to solve a gazillions of other unrelated problems at the
> same time.

  I don't think having the Kconfig there will stop qemu being included.
There's just one more sentence needed: "Buildroot currently doesn't support
building qemu for system mode emulation".

  Regards,
  Arnout

-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 02/11] perl: new package
  2012-10-04 20:40   ` Thomas Petazzoni
@ 2012-10-06 13:29     ` François Perrad
  0 siblings, 0 replies; 40+ messages in thread
From: François Perrad @ 2012-10-06 13:29 UTC (permalink / raw)
  To: buildroot

2012/10/4 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
> Fran?ois,
>
> On Tue, 25 Sep 2012 19:18:18 +0200, Francois Perrad wrote:
>
>> diff --git a/package/perl/Config.in b/package/perl/Config.in
>> new file mode 100644
>> index 0000000..6b7a986
>> --- /dev/null
>> +++ b/package/perl/Config.in
>> @@ -0,0 +1,9 @@
>> +config BR2_PACKAGE_PERL
>> +     bool "perl"
>> +     select BR2_PACKAGE_HOST_QEMU
>
> As per my suggestion on the host-qemu package, you can remove this
> select statement.
>
>> +     help
>> +       Larry Wall's Practical Extraction and Report Language
>> +       An interpreted scripting language, known among some as "Unix's Swiss
>> +       Army Chainsaw".
>> +
>> +       http://www.perl.org/
>> diff --git a/package/perl/perl-configure-qemu.patch b/package/perl/perl-configure-qemu.patch
>> new file mode 100644
>> index 0000000..921ac0b
>> --- /dev/null
>> +++ b/package/perl/perl-configure-qemu.patch
>> @@ -0,0 +1,43 @@
>> +Add qemu support
>> +
>> +see https://rt.perl.org/rt3//Public/Bug/Display.html?id=114798
>> +
>> +Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
>> +
>> +Index: b/Configure
>> +===================================================================
>> +--- a/Configure
>> ++++ b/Configure
>> +@@ -2868,7 +2868,7 @@
>> +     case "$targetfrom" in
>> +     '') targetfrom=scp ;;
>> +     esac
>> +-            run=$run-$targetrun
>> ++            run=$run-`basename $targetrun`
>> +             to=$to-$targetto
>> +             from=$from-$targetfrom
>> +     case "$targetdir" in
>> +@@ -2908,6 +2908,14 @@
>> + $targetrun -l $targetuser $targethost "cd \$cwd && ./\$exe \$@"
>> + EOF
>> +         ;;
>> ++    *qemu*)
>> ++        to=:
>> ++        from=:
>> ++        cat >$run <<EOF
>> ++#!/bin/sh
>> ++$targetrun -L $qemulib "\$@"
>> ++EOF
>> ++        ;;
>> +     *)  echo "Unknown targetrun '$targetrun'" >&4
>> +         exit 1
>> +         ;;
>> +@@ -5048,7 +5056,7 @@
>> + echo " ";
>> + echo "Checking if your compiler accepts $flag" 2>&1;
>> + echo "int main(void) { return 0; }" > gcctest.c;
>> +-if $cc -O2 $flag -o gcctest gcctest.c 2>gcctest.out && ./gcctest; then
>> ++if $cc -O2 $flag -o gcctest gcctest.c 2>gcctest.out && $run ./gcctest; then
>> +     echo "Yes, it does." 2>&1;
>> +     if $test -s gcctest.out ; then
>> +         echo "But your platform does not like it:";
>> diff --git a/package/perl/perl-make-ext.patch b/package/perl/perl-make-ext.patch
>> new file mode 100644
>> index 0000000..e0195e7
>> --- /dev/null
>> +++ b/package/perl/perl-make-ext.patch
>> @@ -0,0 +1,24 @@
>> +Don't use RUN with make (only for perl)
>> +
>> +Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
>
> I would really to see a bit more details in the patch descriptions.
> This is probably enough for you to understand what's going on, but not
> for people reviewing your code, or people that will end up maintaining
> this if you move away from Buildroot :-)
>
>> diff --git a/package/perl/perl.mk b/package/perl/perl.mk
>> new file mode 100644
>> index 0000000..7d60ca7
>> --- /dev/null
>> +++ b/package/perl/perl.mk
>> @@ -0,0 +1,99 @@
>> +#############################################################
>> +#
>> +# perl
>> +#
>> +#############################################################
>> +
>> +PERL_VERSION_MAJOR = 16
>> +PERL_VERSION = 5.$(PERL_VERSION_MAJOR).1
>> +PERL_SITE = http://www.cpan.org/src/5.0
>> +PERL_SOURCE = perl-$(PERL_VERSION).tar.bz2
>> +PERL_LICENSE = Artistic
>> +PERL_LICENSE_FILES = Artistic
>> +PERL_INSTALL_STAGING = YES
>> +PERL_DEPENDENCIES = host-qemu
>> +
>> +ifeq ($(shell expr $(PERL_VERSION_MAJOR) % 2), 1)
>> +    PERL_USE_DEVEL=-Dusedevel
>> +endif
>> +
>> +ifneq ($(BR2_LARGEFILE),y)
>> +    PERL_NO_LARGEFILE=-Uuselargefiles
>> +endif
>> +
>> +PERL_ARCH=$(ARCH)
>> +ifeq ($(PERL_ARCH),i686)
>> +    PERL_ARCH=i386
>> +endif
>> +PERL_QEMU_USER_MODE=$(HOST_DIR)/usr/bin/qemu-$(PERL_ARCH)
>
> Same comments as the QEMU_ARCH definition. And it should clearly be
> shared with the host-qemu package.

I agree with you.

>
>> +define PERL_CONFIGURE_CMDS
>> +     rm -f $(@D)/config.sh
>> +     (cd $(@D); ./Configure -des \
>> +             -Dusecrosscompile \
>> +             -Dtargetrun=$(PERL_QEMU_USER_MODE) \
>> +             -Dqemulib=$(STAGING_DIR) \
>> +             -Dtargethost=dummy \
>> +             -Dar="$(TARGET_AR)" \
>> +             -Dcc="$(TARGET_CC)" \
>> +             -Dcpp="$(TARGET_CC)" \
>> +             -Dld="$(TARGET_LD)" \
>> +             -Dnm="$(TARGET_NM)" \
>> +             -Dranlib="$(TARGET_RANLIB)" \
>> +             -Dccflags="$(TARGET_CFLAGS)" \
>> +             -Dldflags="$(TARGET_LDFLAGS) -l gcc_s" \
>> +             -Dlddlflags="-shared" \
>> +             -Dlibc=$(TARGET_HOST)/usr/$(GNU_TARGET_NAME)/sysroot/lib/libc.so \
>
> Doh, what is target host? Why aren't you simply using:
>
>                 -Dlibc="$(STAGING_DIR)/lib/libc.so" ?

Ok, fixed.

>
>> +             -Duseshrplib \
>> +             -Dprefix=/usr \
>> +             -Uoptimize \
>> +             $(PERL_USE_DEVEL) \
>> +             $(PERL_NO_LARGEFILE))
>> +     echo "# patched values"                 >>$(@D)/config.sh
>> +     $(SED) '/^myarchname=/d' \
>> +             -e '/^mydomain=/d' \
>> +             -e '/^myhostname=/d' \
>> +             -e '/^myuname=/d' \
>> +             -e '/^osname=/d' \
>> +             -e '/^osvers=/d' \
>> +             -e '/^perladmin=/d' \
>> +             $(@D)/config.sh
>> +     echo "myarchname='$(GNU_TARGET_NAME)'"                  >>$(@D)/config.sh
>> +     echo "mydomain=''"                                      >>$(@D)/config.sh
>> +     echo "myhostname='$(BR2_TARGET_GENERIC_HOSTNAME)'"      >>$(@D)/config.sh
>> +     echo "myuname='Buildroot $(BR2_VERSION_FULL)'"          >>$(@D)/config.sh
>> +     echo "osname='linux'"                                   >>$(@D)/config.sh
>> +     echo "osvers='$(BR2_LINUX_KERNEL_VERSION)'"             >>$(@D)/config.sh
>> +     echo "perladmin='root'"                                 >>$(@D)/config.sh
>> +     (cd $(@D); ./Configure -S)
>> +     cp $(@D)/config.h $(@D)/xconfig.h
>> +     $(SED) 's/UNKNOWN-/Buildroot $(BR2_VERSION_FULL) /' $(@D)/patchlevel.h
>> +endef
>> +
>> +define PERL_BUILD_CMDS
>> +     echo "#!/bin/sh"                                        > $(@D)/Cross/miniperl
>> +     echo "$(PERL_QEMU_USER_MODE) $(@D)/miniperl \"\$$@\""   >>$(@D)/Cross/miniperl
>> +     chmod +x $(@D)/Cross/miniperl
>> +     PERL_MM_OPT="PERL=$(@D)/Cross/miniperl" \
>> +     $(MAKE) -C $(@D) all
>> +endef
>> +
>> +define PERL_INSTALL_STAGING_CMDS
>> +     $(MAKE) INSTALL_DEPENDENCE= \
>> +             INSTALLFLAGS= \
>> +             DESTDIR="$(STAGING_DIR)" \
>> +             -C $(@D) install.perl
>> +endef
>> +
>> +define PERL_INSTALL_TARGET_CMDS
>> +     $(MAKE) INSTALL_DEPENDENCE= \
>> +             INSTALLFLAGS=-p \
>> +             DESTDIR="$(TARGET_DIR)" \
>> +             -C $(@D) install.perl
>> +endef
>> +
>> +define PERL_CLEAN_CMDS
>> +     -$(MAKE) -C $(@D) clean
>> +endef
>> +
>> +$(eval $(generic-package))
>
> That's all I have for now on this patch.
>
> Thomas
> --
> Thomas Petazzoni, Free Electrons
> Kernel, drivers, real-time and embedded Linux
> development, consulting, training and support.
> http://free-electrons.com
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 02/11] perl: new package
  2012-10-04 21:18   ` Thomas Petazzoni
@ 2012-10-06 13:33     ` François Perrad
  2012-10-06 17:18       ` Thomas Petazzoni
  0 siblings, 1 reply; 40+ messages in thread
From: François Perrad @ 2012-10-06 13:33 UTC (permalink / raw)
  To: buildroot

2012/10/4 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
> Fran?ois,
>
> On Tue, 25 Sep 2012 19:18:18 +0200, Francois Perrad wrote:
>
>> +             -Dldflags="$(TARGET_LDFLAGS) -l gcc_s" \
>
> You should also apply the following patch:
>
> diff --git a/package/perl/perl.mk b/package/perl/perl.mk
> index fbe7ba9..4e6f50b 100644
> --- a/package/perl/perl.mk
> +++ b/package/perl/perl.mk
> @@ -52,7 +52,7 @@ define PERL_CONFIGURE_CMDS
>                 -Dnm="$(TARGET_NM)" \
>                 -Dranlib="$(TARGET_RANLIB)" \
>                 -Dccflags="$(TARGET_CFLAGS)" \
> -               -Dldflags="$(TARGET_LDFLAGS) -l gcc_s" \
> +               -Dldflags="$(TARGET_LDFLAGS) -l gcc_s -lm" \
>                 -Dlddlflags="-shared" \
>                 -Dlibc=$(TARGET_HOST)/usr/$(GNU_TARGET_NAME)/sysroot/lib/libc.so \
>                 -Duseshrplib \
>

Ok, fixed.

> Otherwise, the build fails with:
>
> /home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabihf-gcc -l gcc_s -fstack-protector -o miniperl \
>             perlmini.o opmini.o miniperlmain.o  malloc.o gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o keywords.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o
> pp.o: In function `Perl_pp_pow':
> pp.c:(.text+0x1b24): undefined reference to `pow'
> pp.o: In function `Perl_pp_modulo':
> pp.c:(.text+0x1f92): undefined reference to `floor'
> pp.c:(.text+0x1fa0): undefined reference to `floor'
> pp.c:(.text+0x1fbc): undefined reference to `fmod'
> [...]
>
> with certain toolchains.
>
> Also, on the target there is a usr/bin/perl and a usr/bin/perl5.x.y
> files. One is a hardlink to the other, but it is always a bit
> disturbing to see two big files of the same size. Shouldn't we replace
> that by a symlink instead, which is more obvious?

libperl.so  1.2 MB
perl      4 KB (stripped)
perl5.16.1   4 KB
We speak about 4KB !

>
> Thanks!
>
> Thomas
> --
> Thomas Petazzoni, Free Electrons
> Kernel, drivers, real-time and embedded Linux
> development, consulting, training and support.
> http://free-electrons.com
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 02/11] perl: new package
  2012-10-06 12:12   ` Arnout Vandecappelle
@ 2012-10-06 13:34     ` François Perrad
  0 siblings, 0 replies; 40+ messages in thread
From: François Perrad @ 2012-10-06 13:34 UTC (permalink / raw)
  To: buildroot

2012/10/6 Arnout Vandecappelle <arnout@mind.be>:
> On 25/09/12 19:18, Francois Perrad wrote:
>>
>> Signed-off-by: Francois Perrad<francois.perrad@gadz.org>
>
>
>  Perl build system is way beyond my understanding, so here are just some
> generic
> comments.
>
>  It may still take a while before your patches make it into the
> repository, so please hang on!
>
> [snip]
>
>
>> diff --git a/package/perl/perl-make-ext.patch
>> b/package/perl/perl-make-ext.patch
>> new file mode 100644
>> index 0000000..e0195e7
>> --- /dev/null
>> +++ b/package/perl/perl-make-ext.patch
>> @@ -0,0 +1,24 @@
>> +Don't use RUN with make (only for perl)
>
>
>  As Thomas wrote, this patch description is not enough to understand it.
> In particular, describe why a patch is needed in the first place.
>
>
>> +
>> +Signed-off-by: Francois Perrad<francois.perrad@gadz.org>
>> +
>> +Index: b/make_ext.pl
>> +===================================================================
>> +--- a/make_ext.pl
>> ++++ b/make_ext.pl
>> +@@ -458,11 +458,13 @@
>> +       # Give makefile an opportunity to rewrite itself.
>> +       # reassure users that life goes on...
>> +       my @args = ('config', @$pass_through);
>> +-      system(@run, @make, @args) and print "@run @make @args failed,
>> continuing anyway...\n";
>> ++#     system(@run, @make, @args) and print "@run @make @args failed,
>> continuing anyway...\n";
>> ++      system(@make, @args) and print "@make @args failed, continuing
>> anyway...\n";
>
>
>  Since any future maintenance will be based on the patch itself, it's
> not necessary to keep the original statement around in a comment -
> it's already there in the patch itself.
>
> [snip]
>
>> diff --git a/package/perl/perl.mk b/package/perl/perl.mk
>> new file mode 100644
>> index 0000000..7d60ca7
>> --- /dev/null
>> +++ b/package/perl/perl.mk
>> @@ -0,0 +1,99 @@
>> +#############################################################
>> +#
>> +# perl
>> +#
>> +#############################################################
>> +
>> +PERL_VERSION_MAJOR = 16
>> +PERL_VERSION = 5.$(PERL_VERSION_MAJOR).1
>> +PERL_SITE = http://www.cpan.org/src/5.0
>> +PERL_SOURCE = perl-$(PERL_VERSION).tar.bz2
>> +PERL_LICENSE = Artistic
>> +PERL_LICENSE_FILES = Artistic
>> +PERL_INSTALL_STAGING = YES
>> +PERL_DEPENDENCIES = host-qemu
>> +
>> +ifeq ($(shell expr $(PERL_VERSION_MAJOR) % 2), 1)
>> +    PERL_USE_DEVEL=-Dusedevel
>> +endif
>
>
>  This one certainly deserves some explanation...
>
>
>> +
>> +ifneq ($(BR2_LARGEFILE),y)
>> +    PERL_NO_LARGEFILE=-Uuselargefiles
>> +endif
>> +
>> +PERL_ARCH=$(ARCH)
>> +ifeq ($(PERL_ARCH),i686)
>> +    PERL_ARCH=i386
>> +endif
>> +PERL_QEMU_USER_MODE=$(HOST_DIR)/usr/bin/qemu-$(PERL_ARCH)
>> +
>> +define PERL_CONFIGURE_CMDS
>> +       rm -f $(@D)/config.sh
>> +       (cd $(@D); ./Configure -des \
>> +               -Dusecrosscompile \
>> +               -Dtargetrun=$(PERL_QEMU_USER_MODE) \
>> +               -Dqemulib=$(STAGING_DIR) \
>> +               -Dtargethost=dummy \
>> +               -Dar="$(TARGET_AR)" \
>> +               -Dcc="$(TARGET_CC)" \
>> +               -Dcpp="$(TARGET_CC)" \
>> +               -Dld="$(TARGET_LD)" \
>> +               -Dnm="$(TARGET_NM)" \
>> +               -Dranlib="$(TARGET_RANLIB)" \
>> +               -Dccflags="$(TARGET_CFLAGS)" \
>> +               -Dldflags="$(TARGET_LDFLAGS) -l gcc_s" \
>> +               -Dlddlflags="-shared" \
>> +
>> -Dlibc=$(TARGET_HOST)/usr/$(GNU_TARGET_NAME)/sysroot/lib/libc.so \
>> +               -Duseshrplib \
>> +               -Dprefix=/usr \
>> +               -Uoptimize \
>
>
>  It would be nicer to define a variable PERL_CONF_OPT that contains
> all these configure options.  Then you can also use += to extended
> it instead of defining PERL_USE_DEVEL etc.
>

PERL_CONF_OPT is a good idea.

>
>> +               $(PERL_USE_DEVEL) \
>> +               $(PERL_NO_LARGEFILE))
>> +       echo "# patched values">>$(@D)/config.sh
>> +       $(SED) '/^myarchname=/d' \
>> +               -e '/^mydomain=/d' \
>> +               -e '/^myhostname=/d' \
>> +               -e '/^myuname=/d' \
>> +               -e '/^osname=/d' \
>> +               -e '/^osvers=/d' \
>> +               -e '/^perladmin=/d' \
>> +               $(@D)/config.sh
>> +       echo "myarchname='$(GNU_TARGET_NAME)'">>$(@D)/config.sh
>> +       echo "mydomain=''">>$(@D)/config.sh
>> +       echo
>> "myhostname='$(BR2_TARGET_GENERIC_HOSTNAME)'">>$(@D)/config.sh
>> +       echo "myuname='Buildroot $(BR2_VERSION_FULL)'">>$(@D)/config.sh
>> +       echo "osname='linux'">>$(@D)/config.sh
>> +       echo "osvers='$(BR2_LINUX_KERNEL_VERSION)'">>$(@D)/config.sh
>> +       echo "perladmin='root'">>$(@D)/config.sh
>> +       (cd $(@D); ./Configure -S)
>> +       cp $(@D)/config.h $(@D)/xconfig.h
>> +       $(SED) 's/UNKNOWN-/Buildroot $(BR2_VERSION_FULL) /'
>> $(@D)/patchlevel.h
>> +endef
>> +
>> +define PERL_BUILD_CMDS
>> +       echo "#!/bin/sh">  $(@D)/Cross/miniperl
>> +       echo "$(PERL_QEMU_USER_MODE) $(@D)/miniperl
>> \"\$$@\"">>$(@D)/Cross/miniperl
>> +       chmod +x $(@D)/Cross/miniperl
>
>
>  Wouldn't it make more sense to create miniperl as part of the configure
> step?
> I mean, when you rebuild perl, there's no need to recreate miniperl, right?
>
>
>> +       PERL_MM_OPT="PERL=$(@D)/Cross/miniperl" \
>> +       $(MAKE) -C $(@D) all
>
>
>  Minor nit: I prefer to see indentation if you continue a line like this.
>

Ok

>
>> +endef
>> +
>> +define PERL_INSTALL_STAGING_CMDS
>> +       $(MAKE) INSTALL_DEPENDENCE= \
>> +               INSTALLFLAGS= \
>> +               DESTDIR="$(STAGING_DIR)" \
>> +               -C $(@D) install.perl
>> +endef
>> +
>> +define PERL_INSTALL_TARGET_CMDS
>> +       $(MAKE) INSTALL_DEPENDENCE= \
>> +               INSTALLFLAGS=-p \
>> +               DESTDIR="$(TARGET_DIR)" \
>> +               -C $(@D) install.perl
>> +endef
>> +
>> +define PERL_CLEAN_CMDS
>> +       -$(MAKE) -C $(@D) clean
>> +endef
>> +
>> +$(eval $(generic-package))
>
>
>  All in all, looks pretty good!  Not tested, though.
>
>  Regards,
>  Arnout
>
> --
> Arnout Vandecappelle                               arnout at mind be
> Senior Embedded Software Architect                 +32-16-286540
> Essensium/Mind                                     http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 03/11] perl: add an option for miniperl
  2012-10-06 12:17     ` Arnout Vandecappelle
@ 2012-10-06 13:38       ` François Perrad
  2012-10-06 14:58         ` Arnout Vandecappelle
  0 siblings, 1 reply; 40+ messages in thread
From: François Perrad @ 2012-10-06 13:38 UTC (permalink / raw)
  To: buildroot

2012/10/6 Arnout Vandecappelle <arnout@mind.be>:
> On 04/10/12 22:41, Thomas Petazzoni wrote:
>>
>> Fran?ois,
>>
>> On Tue, 25 Sep 2012 19:18:19 +0200, Francois Perrad wrote:
>>
>>> diff --git a/package/perl/perl-install-miniperl.patch
>>> b/package/perl/perl-install-miniperl.patch
>>> new file mode 100644
>>> index 0000000..7e6f8e6
>>> --- /dev/null
>>> +++ b/package/perl/perl-install-miniperl.patch
>>> @@ -0,0 +1,129 @@
>>> +Add an option -miniperl
>>> +
>>> +Signed-off-by: Francois Perrad<francois.perrad@gadz.org>
>>
>>
>> Does this (fairly long) patch has a chance of being merged upstream? If
>> not, then I'd prefer if we simply didn't support miniperl.
>
>
>  I don't agree.  There is definitely a need for a non-bloated perl in
> buildroot.
> So if microperl is on its way out, this patch is needed even if upstream
> doesn't
> accept it.
>

miniperl is not a non-bloated perl.
a custom install allows a small footprint, see patch 08/11.

>
>  Regards,
>  Arnout
> --
> Arnout Vandecappelle                               arnout at mind be
> Senior Embedded Software Architect                 +32-16-286540
> Essensium/Mind                                     http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 04/11] perl: add DB_File
  2012-10-06 12:23   ` Arnout Vandecappelle
@ 2012-10-06 13:40     ` François Perrad
  0 siblings, 0 replies; 40+ messages in thread
From: François Perrad @ 2012-10-06 13:40 UTC (permalink / raw)
  To: buildroot

2012/10/6 Arnout Vandecappelle <arnout@mind.be>:
> On 25/09/12 19:18, Francois Perrad wrote:
>>
>> Signed-off-by: Francois Perrad<francois.perrad@gadz.org>
>> ---
>>   package/perl/Config.in |   10 ++++++++++
>>   package/perl/perl.mk   |    4 ++++
>>   2 files changed, 14 insertions(+)
>>
>> diff --git a/package/perl/Config.in b/package/perl/Config.in
>> index 3e11574..e0dbbdf 100644
>> --- a/package/perl/Config.in
>> +++ b/package/perl/Config.in
>> @@ -17,3 +17,13 @@ config BR2_PACKAGE_PERL_ONLY_MINIPERL
>>           Usually used to bootstrap a full Perl (@INC contains only .).
>>
>>   endif
>> +
>> +if BR2_PACKAGE_PERL&&  !BR2_PACKAGE_PERL_ONLY_MINIPERL
>
>
>  You can reuse the preceding if BR2_PACKAGE_PERL, so all the perl options
> will be wrapped into two condition levels.
>
>
>> +
>> +config BR2_PACKAGE_PERL_DB_FILE
>> +       bool "DB_File"
>> +       select BR2_PACKAGE_BERKELEYDB
>> +       help
>> +         Build the DB_File module.
>> +
>> +endif
>> diff --git a/package/perl/perl.mk b/package/perl/perl.mk
>> index 8f7ba15..0c69e0b 100644
>> --- a/package/perl/perl.mk
>> +++ b/package/perl/perl.mk
>> @@ -11,7 +11,11 @@ PERL_SOURCE = perl-$(PERL_VERSION).tar.bz2
>>   PERL_LICENSE = Artistic
>>   PERL_LICENSE_FILES = Artistic
>>   PERL_INSTALL_STAGING = YES
>> +
>>   PERL_DEPENDENCIES = host-qemu
>> +ifeq ($(BR2_PACKAGE_PERL_DB_FILE),y)
>> +    PERL_DEPENDENCIES += berkeleydb
>> +endif
>
>
>  We want reproducible builds, so whether DB_File is built shouldn't depend
> on whether berkeleydb happens to have been built before.  If you don't
> select
> the PERL_DB_FILE option, DB_File still might be built depending on the order
> of compilation. There are two options to resolve this.
>
> - Add something to PERL_CONF_OPT to explicitly disable and enable DB_FILE.
>
> - Remove the configure option, and instead write
> ifeq ($(BR2_PACKAGE_BERKELEYDB),y)
>         PERL_DEPENDENCIES += berkeleydb
> endif

Done.

>
>
>  Regards,
>  Arnout
> --
> Arnout Vandecappelle                               arnout at mind be
> Senior Embedded Software Architect                 +32-16-286540
> Essensium/Mind                                     http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 07/11] cpanminus: new package
  2012-10-04 20:46   ` Thomas Petazzoni
@ 2012-10-06 13:43     ` François Perrad
  0 siblings, 0 replies; 40+ messages in thread
From: François Perrad @ 2012-10-06 13:43 UTC (permalink / raw)
  To: buildroot

2012/10/4 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
> Fran?ois,
>
> On Tue, 25 Sep 2012 19:18:23 +0200, Francois Perrad wrote:
>> diff --git a/package/cpanminus/cpanminus.mk b/package/cpanminus/cpanminus.mk
>> new file mode 100644
>> index 0000000..1b2857a
>> --- /dev/null
>> +++ b/package/cpanminus/cpanminus.mk
>> @@ -0,0 +1,44 @@
>> +#############################################################
>> +#
>> +# cpanminus
>> +#
>> +#############################################################
>> +
>> +CPANMINUS_VERSION = 1.5018
>> +CPANMINUS_SOURCE = miyagawa-cpanminus-$(CPANMINUS_VERSION)-0-gee6cd30.tar.gz
>> +CPANMINUS_SITE = https://github.com/miyagawa/cpanminus/tarball/$(CPANMINUS_VERSION)
>> +CPANMINUS_DEPENDENCIES = perl $(call qstrip,$(BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES))
>> +
>> +CPANMINUS_ARCH=$(ARCH)
>> +ifeq ($(CPANMINUS_ARCH),i686)
>> +    CPANMINUS_ARCH=i386
>> +endif
>
> Same comment: not complete, and please share all those Qemu definitions
> in the host-qemu package. It should probably define TARGET_QEMU_USER to
> $(HOST_DIR)/usr/bin/qemu-$(QEMU_ARCH). Unless of course they are not
> related to Qemu.
Ok.

>
>> +CPANMINUS_QEMU_USER_MODE=$(HOST_DIR)/usr/bin/qemu-$(CPANMINUS_ARCH)
>> +CPANMINUS_RUN_PERL=$(CPANMINUS_QEMU_USER_MODE) $(STAGING_DIR)/usr/bin/perl
>> +CPANMINUS_ARCHNAME=$(shell $(CPANMINUS_RUN_PERL) -MConfig -e "print Config->{archname}")
>> +CPANMINUS_PERL_LIB=$(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION)
>> +CPANMINUS_PERL_ARCHLIB=$(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION)/$(CPANMINUS_ARCHNAME)
>
> CPANMINUS_PERL_ARCHLIB = $(CPANMINUS_PERL_LIB)/$(CPANMINUS_ARCHNAME)

Ok
>
>> +CPANMINUS_PERL_SITELIB=$(TARGET_DIR)/usr/lib/perl5/site_perl/$(PERL_VERSION)
>> +CPANMINUS_PERL_SITEARCH=$(TARGET_DIR)/usr/lib/perl5/site_perl/$(PERL_VERSION)/$(CPANMINUS_ARCHNAME)
>
> CPANMINUS_PERL_SITEARCH = $(CPANMINUS_PERL_SITELIB)/$(CPANMINUS_ARCHNAME)
Ok

>
>> +CPANMINUS_PERL5LIB=$(CPANMINUS_PERL_SITEARCH):$(CPANMINUS_PERL_SITELIB):$(CPANMINUS_PERL_ARCHLIB):$(CPANMINUS_PERL_LIB)
>
>
>> +ifneq ($(BR2_PACKAGE_CPANMINUS_MIRROR),"")
>> +    CPANMINUS_MIRROR=--mirror $(call qstrip,$(BR2_PACKAGE_CPANMINUS_MIRROR)) --mirror-only
>> +endif
>
> CPANMINUS_MIRROR = $(call qstrip,$(BR2_PACKAGE_CPANMINUS_MIRROR)
> ifneq ($(CPANMINUS_MIRROR),y)
>         CPANMINUS_CONF_OPT += --mirror $(CPANMINUS_MIRROR) --mirror-only
> endif
>
> And also, put space before and after equal sign when defining make variables.
Ok.

>
>> +define CPANMINUS_INSTALL_TARGET_CMDS
>> +     echo "#!/bin/sh"                                                        > $(@D)/run_perl
>> +     echo "PERL5LIB=$(CPANMINUS_PERL5LIB) $(CPANMINUS_RUN_PERL) \"\$$@\""    >>$(@D)/run_perl
>> +     chmod +x $(@D)/run_perl
>> +     PERL5LIB=$(CPANMINUS_PERL5LIB) \
>> +     PERL_MM_OPT="DESTDIR=$(TARGET_DIR) PERL=$(@D)/run_perl PERL_LIB=$(CPANMINUS_PERL_LIB) PERL_ARCHLIB=$(CPANMINUS_PERL_ARCHLIB)" \
>> +     PERL_MB_OPT="--destdir $(TARGET_DIR)" \
>> +     RUN_PERL="$(@D)/run_perl" \
>> +     $(CPANMINUS_RUN_PERL) $(@D)/cpanm \
>> +             --perl=$(@D)/run_perl \
>> +             --notest \
>> +             --no-man-pages \
>> +             $(CPANMINUS_MIRROR) \
>> +             $(call qstrip,$(BR2_PACKAGE_CPANMINUS_MODULES))
>> +endef
>> +
>> +$(eval $(generic-package))
>> diff --git a/package/perl/perl-fix-Module-Build.patch b/package/perl/perl-fix-Module-Build.patch
>> new file mode 100644
>> index 0000000..26b15e4
>> --- /dev/null
>> +++ b/package/perl/perl-fix-Module-Build.patch
>> @@ -0,0 +1,16 @@
>> +
>> +Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
>
> Patch description please.
>
>> +
>> +Index: b/cpan/Module-Build/lib/Module/Build/Base.pm
>> +===================================================================
>> +--- a/cpan/Module-Build/lib/Module/Build/Base.pm
>> ++++ b/cpan/Module-Build/lib/Module/Build/Base.pm
>> +@@ -456,7 +456,7 @@
>> +   my $proto = shift;
>> +   my $c     = ref($proto) ? $proto->{config} : 'Module::Build::Config';
>> +
>> +-  my $perl  = $^X;
>> ++  my $perl  = $ENV{RUN_PERL} || $^X;
>> +   my $perl_basename = File::Basename::basename($perl);
>> +
>> +   my @potential_perls;
>
> Thomas
> --
> Thomas Petazzoni, Free Electrons
> Kernel, drivers, real-time and embedded Linux
> development, consulting, training and support.
> http://free-electrons.com
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 07/11] cpanminus: new package
  2012-10-04 21:01   ` Thomas Petazzoni
  2012-10-05  8:12     ` François Perrad
@ 2012-10-06 13:44     ` François Perrad
  1 sibling, 0 replies; 40+ messages in thread
From: François Perrad @ 2012-10-06 13:44 UTC (permalink / raw)
  To: buildroot

2012/10/4 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
> Fran?ois,
>
> Some other questions...
>
> On Tue, 25 Sep 2012 19:18:23 +0200, Francois Perrad wrote:
>
>> +if BR2_PACKAGE_CPANMINUS
>> +
>> +config BR2_PACKAGE_CPANMINUS_MIRROR
>> +     string "mirror"
>> +     help
>> +       Specifies the base URL for the CPAN mirror to use,
>> +       such as http://cpan.cpantesters.org/.
>> +
>> +config BR2_PACKAGE_CPANMINUS_MODULES
>> +     string "Perl modules from CPAN"
>> +     help
>> +       List of space-separated Perl modules to install from CPAN.
>> +
>> +       Examples: Try::Tiny Dancer YAML Moo
>> +
>> +       Install the listed modules and their dependencies.
>> +
>> +config BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES
>> +     string "native dependencies"
>> +     help
>> +       Some XS modules require native libraries.
>
> I'm wondering if those options shouldn't have some default values, at
> least for BR2_PACKAGE_CPANMINUS_MODULES and
> BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES, so that when our
> autobuilders will enable this package, it will actually build
> something. Of course, we can't test all possibilities, but at least
> testing a basic module that has a native dependency would be a good
> test.
>
>> +define CPANMINUS_INSTALL_TARGET_CMDS
>> +     echo "#!/bin/sh"                                                        > $(@D)/run_perl
>> +     echo "PERL5LIB=$(CPANMINUS_PERL5LIB) $(CPANMINUS_RUN_PERL) \"\$$@\""    >>$(@D)/run_perl
>> +     chmod +x $(@D)/run_perl
>> +     PERL5LIB=$(CPANMINUS_PERL5LIB) \
>> +     PERL_MM_OPT="DESTDIR=$(TARGET_DIR) PERL=$(@D)/run_perl PERL_LIB=$(CPANMINUS_PERL_LIB) PERL_ARCHLIB=$(CPANMINUS_PERL_ARCHLIB)" \
>> +     PERL_MB_OPT="--destdir $(TARGET_DIR)" \
>> +     RUN_PERL="$(@D)/run_perl" \
>> +     $(CPANMINUS_RUN_PERL) $(@D)/cpanm \
>> +             --perl=$(@D)/run_perl \
>> +             --notest \
>> +             --no-man-pages \
>> +             $(CPANMINUS_MIRROR) \
>> +             $(call qstrip,$(BR2_PACKAGE_CPANMINUS_MODULES))
>> +endef
>
> Will this work if $(BR2_PACKAGE_CPANMINUS_MODULES) is empty?

Now, fixed.

>
> Best regards,
>
> Thomas
> --
> Thomas Petazzoni, Free Electrons
> Kernel, drivers, real-time and embedded Linux
> development, consulting, training and support.
> http://free-electrons.com
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 01/11] host-qemu: new package
  2012-10-04 20:33 ` Thomas Petazzoni
  2012-10-04 22:09   ` Frank Hunleth
@ 2012-10-06 13:51   ` François Perrad
  1 sibling, 0 replies; 40+ messages in thread
From: François Perrad @ 2012-10-06 13:51 UTC (permalink / raw)
  To: buildroot

2012/10/4 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
> Fran?ois,
>
> Thanks for keeping up the good work on this.
>
> On Tue, 25 Sep 2012 19:18:17 +0200, Francois Perrad wrote:
>> only user mode for the current target architecture
>>
>> Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
>> ---
>>  package/Config.in.host      |    1 +
>>  package/qemu/Config.in.host |   15 +++++++++++++++
>>  package/qemu/qemu.mk        |   43 +++++++++++++++++++++++++++++++++++++++++++
>>  3 files changed, 59 insertions(+)
>>  create mode 100644 package/qemu/Config.in.host
>>  create mode 100644 package/qemu/qemu.mk
>>
>> diff --git a/package/Config.in.host b/package/Config.in.host
>> index 79050f2..bf95a10 100644
>> --- a/package/Config.in.host
>> +++ b/package/Config.in.host
>> @@ -4,6 +4,7 @@ source "package/dfu-util/Config.in.host"
>>  source "package/lpc3250loader/Config.in.host"
>>  source "package/omap-u-boot-utils/Config.in.host"
>>  source "package/openocd/Config.in.host"
>> +source "package/qemu/Config.in.host"
>>  source "package/sam-ba/Config.in.host"
>>  source "package/uboot-tools/Config.in.host"
>>
>> diff --git a/package/qemu/Config.in.host b/package/qemu/Config.in.host
>> new file mode 100644
>> index 0000000..379507c
>> --- /dev/null
>> +++ b/package/qemu/Config.in.host
>> @@ -0,0 +1,15 @@
>> +config BR2_PACKAGE_HOST_QEMU
>> +     bool "host qemu"
>> +     help
>> +       QEMU is a generic and open source machine emulator and virtualizer.
>> +
>> +       In user mode emulation, QEMU runs single cross-compiled programs.
>> +       Fast cross-compilation and cross-debugging are the main targets
>> +       for user-mode emulation.
>> +
>> +       In system mode emulation, QEMU emulates a full computer system,
>> +       including peripherals, and handles the filesystem image generated
>> +       by Buildroot.
>> +       (Buildroot is shipped with many configs/qemu_*_defconfig files).
>> +
>> +       http://qemu.org/
>
> I think you should not add a Kconfig option for the host-qemu package
> for now. Until it supports the system emulation, it is kind of useless
> to have it listed in the host tools. For the perl stuff, you only need
> the user emulation, so let's add support for the user emulation only at
> the moment.
>
>> diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
>> new file mode 100644
>> index 0000000..d727f49
>> --- /dev/null
>> +++ b/package/qemu/qemu.mk
>> @@ -0,0 +1,43 @@
>> +#############################################################
>> +#
>> +# qemu
>> +#
>> +#############################################################
>> +
>> +QEMU_VERSION = 1.2.0
>> +QEMU_SOURCE = qemu-$(QEMU_VERSION).tar.bz2
>> +QEMU_SITE = http://wiki.qemu.org/download
>> +
>> +HOST_QEMU_DEPENDENCIES =
>
> I think this is not needed.
>
>> +
>> +QEMU_ARCH=$(ARCH)
>> +ifeq ($(QEMU_ARCH),i686)
>> +    QEMU_ARCH=i386
>> +endif
>> +HOST_QEMU_TARGETS=$(QEMU_ARCH)-linux-user
>
> This will not work for a number of architectures.
>
> See the definition of BR2_ARCH in target/Config.in.arch. The list of
> architectures you have to handle is:
>
>         arm     -> no change
>         armeb   -> no change
>         avr32   -> not supported (so the perl package should depends on !BR2_avr32)
>         bfin    -> not supported (so the perl package should depends on !BR2_bfin)
>         i386    -> no change
>         i486    -> change to i386
>         i586    -> change to i386
>         i686    -> change to i386
>         x86_64  -> no change
>         microblaze -> we probably have an issue here in
>                         target/Config.in.arch as we don't
>                         make the distinction between
>                         little endian and big endian
>         mips            -> no change
>         mipsel          -> no change
>         mips64el        -> not sure what to do
>         mips64          -> not sure what to do
>         powerpc         -> change to ppc
>         sh2             -> not supported (so perl should depends on !BR2_sh2)
>         sh2a            -> ditto
>         sh3             -> ditto
>         sh4             -> no change
>         sh4eb           -> no change
>         sh4aeb          -> not sure, maybe sh4eb would work, but I don't know
>         sh4a            -> not sure, same reason
>         sh64            -> not supported (so perl should depends on !BR2_sh64)
>         sparc           -> no change
>
> So the definition of QEMU_ARCH needs to be made a bit more complicated.
> Note: I wouldn't mind if you decide to exclude certain architectures
> even if they might potentially work. We have to limit the development
> work for a first version, otherwise we'll never get those patches
> merged. So you could decide to support only i386, arm and maybe powerpc
> for now, I would be fine with this.

Ok.

>
>> +define HOST_QEMU_CONFIGURE_CMDS
>> +     (cd $(@D); ./configure                          \
>> +             --target-list="$(HOST_QEMU_TARGETS)"    \
>> +             --prefix="$(HOST_DIR)/usr"              \
>> +             --interp-prefix=$(STAGING_DIR)          \
>> +             --cc="$(HOSTCC)"                        \
>> +             --host-cc="$(HOSTCC)"                   \
>> +             --extra-cflags="$(HOST_CFLAGS)"         \
>> +             --extra-ldflags="$(HOST_LDFLAGS)"       \
>> +     )
>> +endef
>> +
>> +define HOST_QEMU_BUILD_CMDS
>> +     $(MAKE) -C $(@D) all
>> +endef
>> +
>> +define HOST_QEMU_INSTALL_CMDS
>> +     $(MAKE) -C $(@D) install
>> +endef
>> +
>> +define HOST_QEMU_CLEAN_CMDS
>> +     $(MAKE) -C $(@D) clean
>> +endef
>> +
>> +$(eval $(host-generic-package))
>
> The rest sounds ok to me. Shouldn't you pass a bunch of --disable-xxx
> options in order to make sure that the Qemu ./configure script doesn't
> pick up certain host libraries (SDL, etc.) ?

Useless. The `configure` script detects many optional libraries for
qemu system mode, but anyway, qemu user mode uses none of them.

>
> Best regards,
>
> Thomas
> --
> Thomas Petazzoni, Free Electrons
> Kernel, drivers, real-time and embedded Linux
> development, consulting, training and support.
> http://free-electrons.com
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 03/11] perl: add an option for miniperl
  2012-10-06 13:38       ` François Perrad
@ 2012-10-06 14:58         ` Arnout Vandecappelle
  0 siblings, 0 replies; 40+ messages in thread
From: Arnout Vandecappelle @ 2012-10-06 14:58 UTC (permalink / raw)
  To: buildroot

On 06/10/12 15:38, Fran?ois Perrad wrote:
> 2012/10/6 Arnout Vandecappelle<arnout@mind.be>:
>> On 04/10/12 22:41, Thomas Petazzoni wrote:
>>>
>>> Fran?ois,
>>>
>>> On Tue, 25 Sep 2012 19:18:19 +0200, Francois Perrad wrote:
>>>
>>>> diff --git a/package/perl/perl-install-miniperl.patch
>>>> b/package/perl/perl-install-miniperl.patch
>>>> new file mode 100644
>>>> index 0000000..7e6f8e6
>>>> --- /dev/null
>>>> +++ b/package/perl/perl-install-miniperl.patch
>>>> @@ -0,0 +1,129 @@
>>>> +Add an option -miniperl
>>>> +
>>>> +Signed-off-by: Francois Perrad<francois.perrad@gadz.org>
>>>
>>>
>>> Does this (fairly long) patch has a chance of being merged upstream? If
>>> not, then I'd prefer if we simply didn't support miniperl.
>>
>>
>>   I don't agree.  There is definitely a need for a non-bloated perl in
>> buildroot.
>> So if microperl is on its way out, this patch is needed even if upstream
>> doesn't
>> accept it.
>>
>
> miniperl is not a non-bloated perl.
> a custom install allows a small footprint, see patch 08/11.

  Ah, in that case, I also don't see much point of having miniperl in the
target, is there?

  Regards,
  Arnout

-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 02/11] perl: new package
  2012-10-06 13:33     ` François Perrad
@ 2012-10-06 17:18       ` Thomas Petazzoni
  2012-10-06 19:37         ` François Perrad
  0 siblings, 1 reply; 40+ messages in thread
From: Thomas Petazzoni @ 2012-10-06 17:18 UTC (permalink / raw)
  To: buildroot


On Sat, 6 Oct 2012 15:33:02 +0200, Fran?ois Perrad wrote:

> > Also, on the target there is a usr/bin/perl and a usr/bin/perl5.x.y
> > files. One is a hardlink to the other, but it is always a bit
> > disturbing to see two big files of the same size. Shouldn't we
> > replace that by a symlink instead, which is more obvious?
> 
> libperl.so  1.2 MB
> perl      4 KB (stripped)
> perl5.16.1   4 KB
> We speak about 4KB !

Here:

$ ls -l output/target/usr/bin/perl*
-rwxr-xr-x 2 thomas thomas 4558484 oct.   4 23:12 output/target/usr/bin/perl
-rwxr-xr-x 2 thomas thomas 4558484 oct.   4 23:12 output/target/usr/bin/perl5.16.1
-rwxr-xr-x 2 thomas thomas   41693 oct.   4 22:59 output/target/usr/bin/perlbug
-rwxr-xr-x 1 thomas thomas     224 oct.   4 22:59 output/target/usr/bin/perldoc
-rwxr-xr-x 1 thomas thomas   10766 oct.   4 22:59 output/target/usr/bin/perlivp
-rwxr-xr-x 2 thomas thomas   41693 oct.   4 22:59 output/target/usr/bin/perlthanks

So it's not exactly 4 KB :)

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 02/11] perl: new package
  2012-10-06 17:18       ` Thomas Petazzoni
@ 2012-10-06 19:37         ` François Perrad
  2012-10-08 16:57           ` François Perrad
  0 siblings, 1 reply; 40+ messages in thread
From: François Perrad @ 2012-10-06 19:37 UTC (permalink / raw)
  To: buildroot

2012/10/6 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
>
> On Sat, 6 Oct 2012 15:33:02 +0200, Fran?ois Perrad wrote:
>
>> > Also, on the target there is a usr/bin/perl and a usr/bin/perl5.x.y
>> > files. One is a hardlink to the other, but it is always a bit
>> > disturbing to see two big files of the same size. Shouldn't we
>> > replace that by a symlink instead, which is more obvious?
>>
>> libperl.so  1.2 MB
>> perl      4 KB (stripped)
>> perl5.16.1   4 KB
>> We speak about 4KB !
>
> Here:
>
> $ ls -l output/target/usr/bin/perl*
> -rwxr-xr-x 2 thomas thomas 4558484 oct.   4 23:12 output/target/usr/bin/perl
> -rwxr-xr-x 2 thomas thomas 4558484 oct.   4 23:12 output/target/usr/bin/perl5.16.1
> -rwxr-xr-x 2 thomas thomas   41693 oct.   4 22:59 output/target/usr/bin/perlbug
> -rwxr-xr-x 1 thomas thomas     224 oct.   4 22:59 output/target/usr/bin/perldoc
> -rwxr-xr-x 1 thomas thomas   10766 oct.   4 22:59 output/target/usr/bin/perlivp
> -rwxr-xr-x 2 thomas thomas   41693 oct.   4 22:59 output/target/usr/bin/perlthanks
>
> So it's not exactly 4 KB :)
>

do you have a shared library libperl.so, in
output/target/usr/lib/perl5/5.16.1/-your-arch-/CORE/libperl.so ?
or in output/build/perl-5.16.1/libperl.so ?

looks like a static linked build
the use of shared lib is forced at configure time by the option : -Duseshrplib

I need to see the ouput of :
on your target :
     # perl -V
or on your host :
     $ output/host/usr/bin/qemu-your-arch output/build/perl-5.16.1/perl -Ilib -V

Fran?ois

> Thomas
> --
> Thomas Petazzoni, Free Electrons
> Kernel, drivers, real-time and embedded Linux
> development, consulting, training and support.
> http://free-electrons.com

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [Buildroot] [PATCH v8 02/11] perl: new package
  2012-10-06 19:37         ` François Perrad
@ 2012-10-08 16:57           ` François Perrad
  0 siblings, 0 replies; 40+ messages in thread
From: François Perrad @ 2012-10-08 16:57 UTC (permalink / raw)
  To: buildroot

2012/10/6 Fran?ois Perrad <francois.perrad@gadz.org>:
> 2012/10/6 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
>>
>> On Sat, 6 Oct 2012 15:33:02 +0200, Fran?ois Perrad wrote:
>>
>>> > Also, on the target there is a usr/bin/perl and a usr/bin/perl5.x.y
>>> > files. One is a hardlink to the other, but it is always a bit
>>> > disturbing to see two big files of the same size. Shouldn't we
>>> > replace that by a symlink instead, which is more obvious?
>>>
>>> libperl.so  1.2 MB
>>> perl      4 KB (stripped)
>>> perl5.16.1   4 KB
>>> We speak about 4KB !
>>
>> Here:
>>
>> $ ls -l output/target/usr/bin/perl*
>> -rwxr-xr-x 2 thomas thomas 4558484 oct.   4 23:12 output/target/usr/bin/perl
>> -rwxr-xr-x 2 thomas thomas 4558484 oct.   4 23:12 output/target/usr/bin/perl5.16.1
>> -rwxr-xr-x 2 thomas thomas   41693 oct.   4 22:59 output/target/usr/bin/perlbug
>> -rwxr-xr-x 1 thomas thomas     224 oct.   4 22:59 output/target/usr/bin/perldoc
>> -rwxr-xr-x 1 thomas thomas   10766 oct.   4 22:59 output/target/usr/bin/perlivp
>> -rwxr-xr-x 2 thomas thomas   41693 oct.   4 22:59 output/target/usr/bin/perlthanks
>>
>> So it's not exactly 4 KB :)
>>

ping.
do you still have this problem ?

>
> do you have a shared library libperl.so, in
> output/target/usr/lib/perl5/5.16.1/-your-arch-/CORE/libperl.so ?
> or in output/build/perl-5.16.1/libperl.so ?
>
> looks like a static linked build
> the use of shared lib is forced at configure time by the option : -Duseshrplib
>
> I need to see the ouput of :
> on your target :
>      # perl -V
> or on your host :
>      $ output/host/usr/bin/qemu-your-arch output/build/perl-5.16.1/perl -Ilib -V
>
> Fran?ois
>
>> Thomas
>> --
>> Thomas Petazzoni, Free Electrons
>> Kernel, drivers, real-time and embedded Linux
>> development, consulting, training and support.
>> http://free-electrons.com

^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2012-10-08 16:57 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-25 17:18 [Buildroot] [PATCH v8 01/11] host-qemu: new package Francois Perrad
2012-09-25 17:18 ` [Buildroot] [PATCH v8 02/11] perl: " Francois Perrad
2012-10-04 20:40   ` Thomas Petazzoni
2012-10-06 13:29     ` François Perrad
2012-10-04 21:18   ` Thomas Petazzoni
2012-10-06 13:33     ` François Perrad
2012-10-06 17:18       ` Thomas Petazzoni
2012-10-06 19:37         ` François Perrad
2012-10-08 16:57           ` François Perrad
2012-10-06 12:12   ` Arnout Vandecappelle
2012-10-06 13:34     ` François Perrad
2012-09-25 17:18 ` [Buildroot] [PATCH v8 03/11] perl: add an option for miniperl Francois Perrad
2012-10-04 20:41   ` Thomas Petazzoni
2012-10-06 12:17     ` Arnout Vandecappelle
2012-10-06 13:38       ` François Perrad
2012-10-06 14:58         ` Arnout Vandecappelle
2012-10-06 12:15   ` Arnout Vandecappelle
2012-09-25 17:18 ` [Buildroot] [PATCH v8 04/11] perl: add DB_File Francois Perrad
2012-10-06 12:23   ` Arnout Vandecappelle
2012-10-06 13:40     ` François Perrad
2012-09-25 17:18 ` [Buildroot] [PATCH v8 05/11] gdbm: new package Francois Perrad
2012-09-25 17:18 ` [Buildroot] [PATCH v8 06/11] perl: add GDBM_File Francois Perrad
2012-09-25 17:18 ` [Buildroot] [PATCH v8 07/11] cpanminus: new package Francois Perrad
2012-10-04 20:46   ` Thomas Petazzoni
2012-10-06 13:43     ` François Perrad
2012-10-04 21:01   ` Thomas Petazzoni
2012-10-05  8:12     ` François Perrad
2012-10-06 13:44     ` François Perrad
2012-10-06 12:29   ` Arnout Vandecappelle
2012-09-25 17:18 ` [Buildroot] [PATCH v8 08/11] perl: add option "custom install" Francois Perrad
2012-09-25 17:18 ` [Buildroot] [PATCH v8 09/11] perl: relax microperl dependencies Francois Perrad
2012-09-25 17:18 ` [Buildroot] [PATCH v8 10/11] microperl: mark as DEPRECATED Francois Perrad
2012-09-25 17:18 ` [Buildroot] [PATCH v8 11/11] microperl: remove it Francois Perrad
2012-09-25 21:15 ` [Buildroot] [PATCH v8 01/11] host-qemu: new package Arnout Vandecappelle
2012-09-26  7:33   ` Thomas Petazzoni
2012-10-04 20:33 ` Thomas Petazzoni
2012-10-04 22:09   ` Frank Hunleth
2012-10-05  7:19     ` Thomas Petazzoni
2012-10-06 12:37       ` Arnout Vandecappelle
2012-10-06 13:51   ` François Perrad

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.