Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v9 01/10] host-qemu: new package
@ 2012-10-06 13:53 Francois Perrad
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 02/10] perl: " Francois Perrad
                   ` (8 more replies)
  0 siblings, 9 replies; 18+ messages in thread
From: Francois Perrad @ 2012-10-06 13:53 UTC (permalink / raw)
  To: buildroot

only user mode for the current target architecture

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 package/qemu/qemu.mk |   82 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 82 insertions(+)
 create mode 100644 package/qemu/qemu.mk

diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
new file mode 100644
index 0000000..de72e04
--- /dev/null
+++ b/package/qemu/qemu.mk
@@ -0,0 +1,82 @@
+#############################################################
+#
+# qemu
+#
+#############################################################
+
+QEMU_VERSION = 1.2.0
+QEMU_SOURCE = qemu-$(QEMU_VERSION).tar.bz2
+QEMU_SITE = http://wiki.qemu.org/download
+
+#       BR ARCH         qemu
+#       -------         ----
+#       arm             arm
+#       armeb           armeb
+#       avr32           not supported
+#       bfin            not supported
+#       i386            i386
+#       i486            i386
+#       i586            i386
+#       i686            i386
+#       x86_64          x86_64
+#       m68k            m68k
+#       microblaze      microblaze
+#       mips            mips
+#       mipsel          mipsel
+#       mips64          ?
+#       mips64el        ?
+#       powerpc         ppc
+#       sh2             not supported
+#       sh2a            not supported
+#       sh3             not supported
+#       sh3eb           not supported
+#       sh4             sh4
+#       sh4eb           sh4eb
+#       sh4a            ?
+#       sh4aeb          ?
+#       sh64            not supported
+#       sparc           sparc
+
+QEMU_ARCH = $(ARCH)
+ifeq ($(QEMU_ARCH),i486)
+    QEMU_ARCH = i386
+endif
+ifeq ($(QEMU_ARCH),i586)
+    QEMU_ARCH = i386
+endif
+ifeq ($(QEMU_ARCH),i686)
+    QEMU_ARCH = i386
+endif
+ifeq ($(QEMU_ARCH),powerpc)
+    QEMU_ARCH = ppc
+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))
+
+# variable used by other packages
+QEMU_USER = $(HOST_DIR)/usr/bin/qemu-$(QEMU_ARCH)
-- 
1.7.9.5

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

* [Buildroot] [PATCH v9 02/10] perl: new package
  2012-10-06 13:53 [Buildroot] [PATCH v9 01/10] host-qemu: new package Francois Perrad
@ 2012-10-06 13:53 ` Francois Perrad
  2012-10-08  9:34   ` Thomas Petazzoni
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 03/10] perl: add DB_File Francois Perrad
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 18+ messages in thread
From: Francois Perrad @ 2012-10-06 13:53 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 package/Config.in                      |    1 +
 package/perl/Config.in                 |   19 +++++++
 package/perl/perl-configure-qemu.patch |   53 ++++++++++++++++++
 package/perl/perl-make-ext.patch       |   24 +++++++++
 package/perl/perl-mkppport.patch       |   37 +++++++++++++
 package/perl/perl.mk                   |   92 ++++++++++++++++++++++++++++++++
 6 files changed, 226 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..096159f
--- /dev/null
+++ b/package/perl/Config.in
@@ -0,0 +1,19 @@
+config BR2_PACKAGE_PERL
+	bool "perl"
+	depends on !BR2_avr32
+	depends on !BR2_bfin
+	depends on !BR2_sh2
+	depends on !BR2_sh2a
+	depends on !BR2_sh3
+	depends on !BR2_sh3eb
+	depends on !BR2_sh64
+	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/
+
+comment "perl requires an architecture supported by qemu"
+	depends on BR2_avr32 || BR2_bfin || BR2_sh2 || BR2_sh2a || BR2_sh3 || BR2_sh3eb || BR2_sh64
diff --git a/package/perl/perl-configure-qemu.patch b/package/perl/perl-configure-qemu.patch
new file mode 100644
index 0000000..c2d6b92
--- /dev/null
+++ b/package/perl/perl-configure-qemu.patch
@@ -0,0 +1,53 @@
+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
+@@ -2837,6 +2837,9 @@
+             ;;
+         *)  echo "Using usrinc $usrinc." >&4 ;;
+ 	esac
++	case "$targetrun" in
++	*qemu*) targethost=dummy ;;
++	esac
+ 	case "$targethost" in
+ 	'') echo "Targethost not defined." >&4; croak=y ;;
+         *)  echo "Using targethost $targethost." >&4
+@@ -2868,7 +2871,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 +2911,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 +5059,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..b29e99f
--- /dev/null
+++ b/package/perl/perl.mk
@@ -0,0 +1,92 @@
+#############################################################
+#
+# 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
+
+PERL_CONF_OPT = -des \
+		-Dusecrosscompile \
+		-Dtargetrun=$(QEMU_USER) \
+		-Dqemulib=$(STAGING_DIR) \
+		-Dar="$(TARGET_AR)" \
+		-Dcc="$(TARGET_CC)" \
+		-Dcpp="$(TARGET_CC)" \
+		-Dld="$(TARGET_LD)" \
+		-Dnm="$(TARGET_NM)" \
+		-Dranlib="$(TARGET_RANLIB)" \
+		-Dccflags="$(TARGET_CFLAGS)" \
+		-Dldflags="$(TARGET_LDFLAGS) -lgcc_s -lm" \
+		-Dlddlflags="-shared" \
+		-Dlibc=$(STAGING_DIR)/lib/libc.so \
+		-Duseshrplib \
+		-Dprefix=/usr \
+		-Uoptimize
+
+ifeq ($(shell expr $(PERL_VERSION_MAJOR) % 2), 1)
+    PERL_CONF_OPT += -Dusedevel
+endif
+
+ifneq ($(BR2_LARGEFILE),y)
+    PERL_CONF_OPT += -Uuselargefiles
+endif
+
+define PERL_CONFIGURE_CMDS
+	rm -f $(@D)/config.sh
+	(cd $(@D); ./Configure $(PERL_CONF_OPT))
+	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 "$(QEMU_USER) $(@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] 18+ messages in thread

* [Buildroot] [PATCH v9 03/10] perl: add DB_File
  2012-10-06 13:53 [Buildroot] [PATCH v9 01/10] host-qemu: new package Francois Perrad
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 02/10] perl: " Francois Perrad
@ 2012-10-06 13:53 ` Francois Perrad
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 04/10] gdbm: new package Francois Perrad
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Francois Perrad @ 2012-10-06 13:53 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 096159f..9a13223 100644
--- a/package/perl/Config.in
+++ b/package/perl/Config.in
@@ -15,5 +15,15 @@ config BR2_PACKAGE_PERL
 
 	  http://www.perl.org/
 
+if BR2_PACKAGE_PERL
+
+config BR2_PACKAGE_PERL_DB_FILE
+	bool "DB_File"
+	select BR2_PACKAGE_BERKELEYDB
+	help
+	  Build the DB_File module.
+
+endif
+
 comment "perl requires an architecture supported by qemu"
 	depends on BR2_avr32 || BR2_bfin || BR2_sh2 || BR2_sh2a || BR2_sh3 || BR2_sh3eb || BR2_sh64
diff --git a/package/perl/perl.mk b/package/perl/perl.mk
index b29e99f..fbaba54 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_BERKELEYDB),y)
+    PERL_DEPENDENCIES += berkeleydb
+endif
 
 PERL_CONF_OPT = -des \
 		-Dusecrosscompile \
-- 
1.7.9.5

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

* [Buildroot] [PATCH v9 04/10] gdbm: new package
  2012-10-06 13:53 [Buildroot] [PATCH v9 01/10] host-qemu: new package Francois Perrad
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 02/10] perl: " Francois Perrad
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 03/10] perl: add DB_File Francois Perrad
@ 2012-10-06 13:53 ` Francois Perrad
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 05/10] perl: add GDBM_File Francois Perrad
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Francois Perrad @ 2012-10-06 13:53 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] 18+ messages in thread

* [Buildroot] [PATCH v9 05/10] perl: add GDBM_File
  2012-10-06 13:53 [Buildroot] [PATCH v9 01/10] host-qemu: new package Francois Perrad
                   ` (2 preceding siblings ...)
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 04/10] gdbm: new package Francois Perrad
@ 2012-10-06 13:53 ` Francois Perrad
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 06/10] cpanminus: new package Francois Perrad
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Francois Perrad @ 2012-10-06 13:53 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 9a13223..6369243 100644
--- a/package/perl/Config.in
+++ b/package/perl/Config.in
@@ -23,6 +23,12 @@ 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
 
 comment "perl requires an architecture supported by qemu"
diff --git a/package/perl/perl.mk b/package/perl/perl.mk
index fbaba54..0f12044 100644
--- a/package/perl/perl.mk
+++ b/package/perl/perl.mk
@@ -16,6 +16,9 @@ PERL_DEPENDENCIES = host-qemu
 ifeq ($(BR2_PACKAGE_BERKELEYDB),y)
     PERL_DEPENDENCIES += berkeleydb
 endif
+ifeq ($(BR2_PACKAGE_GDBM),y)
+    PERL_DEPENDENCIES += gdbm
+endif
 
 PERL_CONF_OPT = -des \
 		-Dusecrosscompile \
-- 
1.7.9.5

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

* [Buildroot] [PATCH v9 06/10] cpanminus: new package
  2012-10-06 13:53 [Buildroot] [PATCH v9 01/10] host-qemu: new package Francois Perrad
                   ` (3 preceding siblings ...)
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 05/10] perl: add GDBM_File Francois Perrad
@ 2012-10-06 13:53 ` Francois Perrad
  2012-10-08  9:37   ` Thomas Petazzoni
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 07/10] perl: add option "custom install" Francois Perrad
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 18+ messages in thread
From: Francois Perrad @ 2012-10-06 13:53 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 package/Config.in                        |    5 ++++
 package/cpanminus/Config.in              |   36 +++++++++++++++++++++++
 package/cpanminus/cpanminus.mk           |   46 ++++++++++++++++++++++++++++++
 package/perl/perl-fix-Module-Build.patch |   16 +++++++++++
 4 files changed, 103 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..b8b39dc
--- /dev/null
+++ b/package/cpanminus/Config.in
@@ -0,0 +1,36 @@
+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"
+	default "Curses::UI"
+	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"
+	default "ncurses"
+	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..43f8dde
--- /dev/null
+++ b/package/cpanminus/cpanminus.mk
@@ -0,0 +1,46 @@
+#############################################################
+#
+# 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_RUN_PERL = $(QEMU_USER) $(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_SITELIB  = $(TARGET_DIR)/usr/lib/perl5/site_perl/$(PERL_VERSION)
+CPANMINUS_PERL_ARCHLIB  = $(CPANMINUS_PERL_LIB)/$(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_MODULES = $(call qstrip,$(BR2_PACKAGE_CPANMINUS_MODULES))
+
+ifneq ($(CPANMINUS_MODULES),)
+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
+else
+define CPANMINUS_INSTALL_TARGET_CMDS
+	@echo "No modules to install"
+endef
+endif
+
+$(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] 18+ messages in thread

* [Buildroot] [PATCH v9 07/10] perl: add option "custom install"
  2012-10-06 13:53 [Buildroot] [PATCH v9 01/10] host-qemu: new package Francois Perrad
                   ` (4 preceding siblings ...)
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 06/10] cpanminus: new package Francois Perrad
@ 2012-10-06 13:53 ` Francois Perrad
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 08/10] perl: relax microperl dependencies Francois Perrad
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Francois Perrad @ 2012-10-06 13:53 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        |   37 +++++++++++++++++++++++++++++++++++++
 3 files changed, 57 insertions(+)

diff --git a/package/cpanminus/Config.in b/package/cpanminus/Config.in
index b8b39dc..58fcb0c 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.
@@ -34,3 +35,6 @@ config BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES
 	  Some XS modules require native libraries.
 
 endif
+
+comment "cpanminus requires a fully installed perl"
+	depends on BR2_PACKAGE_PERL_CUSTOM_INSTALL
diff --git a/package/perl/Config.in b/package/perl/Config.in
index 6369243..dcd4b58 100644
--- a/package/perl/Config.in
+++ b/package/perl/Config.in
@@ -17,6 +17,22 @@ config BR2_PACKAGE_PERL
 
 if BR2_PACKAGE_PERL
 
+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.
+
 config BR2_PACKAGE_PERL_DB_FILE
 	bool "DB_File"
 	select BR2_PACKAGE_BERKELEYDB
diff --git a/package/perl/perl.mk b/package/perl/perl.mk
index 0f12044..1fee4e0 100644
--- a/package/perl/perl.mk
+++ b/package/perl/perl.mk
@@ -85,12 +85,49 @@ define PERL_INSTALL_STAGING_CMDS
 		-C $(@D) install.perl
 endef
 
+PERL_RUN_PERL = $(QEMU_USER) $(@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 = $(PERL_LIB)/$(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_CUSTOM_INSTALL),y)
+define PERL_INSTALL_TARGET_CMDS
+	$(INSTALL) -m 0755 -D $(@D)/perl $(TARGET_DIR)/usr/bin/perl
+	$(INSTALL) -m 0755 -D $(@D)/libperl.so $(PERL_ARCHLIB)/CORE/libperl.so
+	$(PERL_INSTALL_MODULES)
+endef
+else
 define PERL_INSTALL_TARGET_CMDS
 	$(MAKE) INSTALL_DEPENDENCE= \
 		INSTALLFLAGS=-p \
 		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] 18+ messages in thread

* [Buildroot] [PATCH v9 08/10] perl: relax microperl dependencies
  2012-10-06 13:53 [Buildroot] [PATCH v9 01/10] host-qemu: new package Francois Perrad
                   ` (5 preceding siblings ...)
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 07/10] perl: add option "custom install" Francois Perrad
@ 2012-10-06 13:53 ` Francois Perrad
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 09/10] microperl: mark as DEPRECATED Francois Perrad
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 10/10] microperl: remove it Francois Perrad
  8 siblings, 0 replies; 18+ messages in thread
From: Francois Perrad @ 2012-10-06 13:53 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] 18+ messages in thread

* [Buildroot] [PATCH v9 09/10] microperl: mark as DEPRECATED
  2012-10-06 13:53 [Buildroot] [PATCH v9 01/10] host-qemu: new package Francois Perrad
                   ` (6 preceding siblings ...)
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 08/10] perl: relax microperl dependencies Francois Perrad
@ 2012-10-06 13:53 ` Francois Perrad
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 10/10] microperl: remove it Francois Perrad
  8 siblings, 0 replies; 18+ messages in thread
From: Francois Perrad @ 2012-10-06 13:53 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] 18+ messages in thread

* [Buildroot] [PATCH v9 10/10] microperl: remove it
  2012-10-06 13:53 [Buildroot] [PATCH v9 01/10] host-qemu: new package Francois Perrad
                   ` (7 preceding siblings ...)
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 09/10] microperl: mark as DEPRECATED Francois Perrad
@ 2012-10-06 13:53 ` Francois Perrad
  8 siblings, 0 replies; 18+ messages in thread
From: Francois Perrad @ 2012-10-06 13:53 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] 18+ messages in thread

* [Buildroot] [PATCH v9 02/10] perl: new package
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 02/10] perl: " Francois Perrad
@ 2012-10-08  9:34   ` Thomas Petazzoni
  2012-10-08 11:41     ` François Perrad
  0 siblings, 1 reply; 18+ messages in thread
From: Thomas Petazzoni @ 2012-10-08  9:34 UTC (permalink / raw)
  To: buildroot

Dear Francois Perrad,

On Sat,  6 Oct 2012 15:53:45 +0200, Francois Perrad wrote:

> +	select BR2_PACKAGE_HOST_QEMU

No longer needed.

> +define PERL_INSTALL_TARGET_CMDS
> +	$(MAKE) INSTALL_DEPENDENCE= \
> +		INSTALLFLAGS=-p \
> +		DESTDIR="$(TARGET_DIR)" \
> +		-C $(@D) install.perl
> +endef

In my target, I have about 2 MB of C header files in
usr/lib/perl5/5.16.1/linux-gnueabihf/CORE. I suspect they are not
really useful, right?

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] 18+ messages in thread

* [Buildroot] [PATCH v9 06/10] cpanminus: new package
  2012-10-06 13:53 ` [Buildroot] [PATCH v9 06/10] cpanminus: new package Francois Perrad
@ 2012-10-08  9:37   ` Thomas Petazzoni
  2012-10-10 15:04     ` François Perrad
  0 siblings, 1 reply; 18+ messages in thread
From: Thomas Petazzoni @ 2012-10-08  9:37 UTC (permalink / raw)
  To: buildroot

Dear Francois Perrad,

On Sat,  6 Oct 2012 15:53:49 +0200, Francois Perrad wrote:
> Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
> ---
>  package/Config.in                        |    5 ++++
>  package/cpanminus/Config.in              |   36 +++++++++++++++++++++++
>  package/cpanminus/cpanminus.mk           |   46 ++++++++++++++++++++++++++++++
>  package/perl/perl-fix-Module-Build.patch |   16 +++++++++++
>  4 files changed, 103 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

One thing that I'm wondering with cpanminus is how it interacts with
the Buildroot mechanisms for download.

I.e :

 *) Where does cpanminus downloads the Perl module tarballs?

 *) Does it re-use the downloaded tarballs between rebuilds?

 *) Is there a way to tell it to download its tarballs in $(DL_DIR) ?

 *) Is there a way to have "make source" work properly, i.e ask
    cpanminus to download the tarballs that it will need so that
    offline builds are possible.

 *) Is it possible to make it play nice with BR2_PRIMARY_SITE ?

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	[flat|nested] 18+ messages in thread

* [Buildroot] [PATCH v9 02/10] perl: new package
  2012-10-08  9:34   ` Thomas Petazzoni
@ 2012-10-08 11:41     ` François Perrad
  2012-10-08 11:49       ` Thomas Petazzoni
  0 siblings, 1 reply; 18+ messages in thread
From: François Perrad @ 2012-10-08 11:41 UTC (permalink / raw)
  To: buildroot

2012/10/8 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
> Dear Francois Perrad,
>
> On Sat,  6 Oct 2012 15:53:45 +0200, Francois Perrad wrote:
>
>> +     select BR2_PACKAGE_HOST_QEMU
>
> No longer needed.

Ok

>
>> +define PERL_INSTALL_TARGET_CMDS
>> +     $(MAKE) INSTALL_DEPENDENCE= \
>> +             INSTALLFLAGS=-p \
>> +             DESTDIR="$(TARGET_DIR)" \
>> +             -C $(@D) install.perl
>> +endef
>
> In my target, I have about 2 MB of C header files in
> usr/lib/perl5/5.16.1/linux-gnueabihf/CORE. I suspect they are not
> really useful, right?

No, there are required for building XS modules (with cpanminus for example).

Fran?ois

>
> 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] 18+ messages in thread

* [Buildroot] [PATCH v9 02/10] perl: new package
  2012-10-08 11:41     ` François Perrad
@ 2012-10-08 11:49       ` Thomas Petazzoni
  2012-10-08 16:56         ` François Perrad
  2012-10-10 14:41         ` François Perrad
  0 siblings, 2 replies; 18+ messages in thread
From: Thomas Petazzoni @ 2012-10-08 11:49 UTC (permalink / raw)
  To: buildroot


On Mon, 8 Oct 2012 13:41:16 +0200, Fran?ois Perrad wrote:

> > In my target, I have about 2 MB of C header files in
> > usr/lib/perl5/5.16.1/linux-gnueabihf/CORE. I suspect they are not
> > really useful, right?
> 
> No, there are required for building XS modules (with cpanminus for example).

Yes, but you're not building those XS modules on the target. So keep
the headers only in $(STAGING_DIR).

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] 18+ messages in thread

* [Buildroot] [PATCH v9 02/10] perl: new package
  2012-10-08 11:49       ` Thomas Petazzoni
@ 2012-10-08 16:56         ` François Perrad
  2012-10-08 19:13           ` Thomas Petazzoni
  2012-10-10 14:41         ` François Perrad
  1 sibling, 1 reply; 18+ messages in thread
From: François Perrad @ 2012-10-08 16:56 UTC (permalink / raw)
  To: buildroot

2012/10/8 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
>
> On Mon, 8 Oct 2012 13:41:16 +0200, Fran?ois Perrad wrote:
>
>> > In my target, I have about 2 MB of C header files in
>> > usr/lib/perl5/5.16.1/linux-gnueabihf/CORE. I suspect they are not
>> > really useful, right?
>>
>> No, there are required for building XS modules (with cpanminus for example).
>
> Yes, but you're not building those XS modules on the target. So keep
> the headers only in $(STAGING_DIR).
>

a BR user could choose between 2 methods for installing Perl :
- a full install supplied by the script `installperl` from the Perl tarball
- a custom install which reproduce the behavior of the BR package of microperl,
where the user explicitily defines each module/file to install

In my sense, when a user chooses the full install, he must also use
the post-build script which removes its useless files,
like CORE/*.h or the Unicode support.

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] 18+ messages in thread

* [Buildroot] [PATCH v9 02/10] perl: new package
  2012-10-08 16:56         ` François Perrad
@ 2012-10-08 19:13           ` Thomas Petazzoni
  0 siblings, 0 replies; 18+ messages in thread
From: Thomas Petazzoni @ 2012-10-08 19:13 UTC (permalink / raw)
  To: buildroot


On Mon, 8 Oct 2012 18:56:09 +0200, Fran?ois Perrad wrote:

> a BR user could choose between 2 methods for installing Perl :
> - a full install supplied by the script `installperl` from the Perl tarball
> - a custom install which reproduce the behavior of the BR package of microperl,
> where the user explicitily defines each module/file to install
> 
> In my sense, when a user chooses the full install, he must also use
> the post-build script which removes its useless files,
> like CORE/*.h or the Unicode support.

This is in complete contradiction with what we do in all other
Buildroot packages, so I don't think your statement actually makes
sense in the context of Buildroot. Unless BR2_HAVE_DEVFILES is enabled,
we don't want development files to be installed on the target.

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] 18+ messages in thread

* [Buildroot] [PATCH v9 02/10] perl: new package
  2012-10-08 11:49       ` Thomas Petazzoni
  2012-10-08 16:56         ` François Perrad
@ 2012-10-10 14:41         ` François Perrad
  1 sibling, 0 replies; 18+ messages in thread
From: François Perrad @ 2012-10-10 14:41 UTC (permalink / raw)
  To: buildroot

2012/10/8 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
>
> On Mon, 8 Oct 2012 13:41:16 +0200, Fran?ois Perrad wrote:
>
>> > In my target, I have about 2 MB of C header files in
>> > usr/lib/perl5/5.16.1/linux-gnueabihf/CORE. I suspect they are not
>> > really useful, right?
>>
>> No, there are required for building XS modules (with cpanminus for example).
>
> Yes, but you're not building those XS modules on the target. So keep
> the headers only in $(STAGING_DIR).
>

After a refactoring of cpanminus.mk, the headers in $(TARGET_DIR)
could be removed.

> 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] 18+ messages in thread

* [Buildroot] [PATCH v9 06/10] cpanminus: new package
  2012-10-08  9:37   ` Thomas Petazzoni
@ 2012-10-10 15:04     ` François Perrad
  0 siblings, 0 replies; 18+ messages in thread
From: François Perrad @ 2012-10-10 15:04 UTC (permalink / raw)
  To: buildroot

2012/10/8 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
> Dear Francois Perrad,
>
> On Sat,  6 Oct 2012 15:53:49 +0200, Francois Perrad wrote:
>> Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
>> ---
>>  package/Config.in                        |    5 ++++
>>  package/cpanminus/Config.in              |   36 +++++++++++++++++++++++
>>  package/cpanminus/cpanminus.mk           |   46 ++++++++++++++++++++++++++++++
>>  package/perl/perl-fix-Module-Build.patch |   16 +++++++++++
>>  4 files changed, 103 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
>
> One thing that I'm wondering with cpanminus is how it interacts with
> the Buildroot mechanisms for download.
>

It doesn't interact.
cpanminus is not a CPAN client based on BR infrastructure.
I think what creating a CPAN client based on BR infrastructure could
be a nice project, but premature at this time.

But the reproductibility of a project (with an identified version of
each CPAN module) could be done with a local CPAN mirror.
A local CPAN mirror allows to work offline.
(see minicpan, http://search.cpan.org/~rjbs/CPAN-Mini-1.111009/bin/minicpan).
So, cpanminus does the job (with its way).

Fran?ois

> I.e :
>
>  *) Where does cpanminus downloads the Perl module tarballs?
>
>  *) Does it re-use the downloaded tarballs between rebuilds?
>
>  *) Is there a way to tell it to download its tarballs in $(DL_DIR) ?
>
>  *) Is there a way to have "make source" work properly, i.e ask
>     cpanminus to download the tarballs that it will need so that
>     offline builds are possible.
>
>  *) Is it possible to make it play nice with BR2_PRIMARY_SITE ?
>
> 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] 18+ messages in thread

end of thread, other threads:[~2012-10-10 15:04 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-06 13:53 [Buildroot] [PATCH v9 01/10] host-qemu: new package Francois Perrad
2012-10-06 13:53 ` [Buildroot] [PATCH v9 02/10] perl: " Francois Perrad
2012-10-08  9:34   ` Thomas Petazzoni
2012-10-08 11:41     ` François Perrad
2012-10-08 11:49       ` Thomas Petazzoni
2012-10-08 16:56         ` François Perrad
2012-10-08 19:13           ` Thomas Petazzoni
2012-10-10 14:41         ` François Perrad
2012-10-06 13:53 ` [Buildroot] [PATCH v9 03/10] perl: add DB_File Francois Perrad
2012-10-06 13:53 ` [Buildroot] [PATCH v9 04/10] gdbm: new package Francois Perrad
2012-10-06 13:53 ` [Buildroot] [PATCH v9 05/10] perl: add GDBM_File Francois Perrad
2012-10-06 13:53 ` [Buildroot] [PATCH v9 06/10] cpanminus: new package Francois Perrad
2012-10-08  9:37   ` Thomas Petazzoni
2012-10-10 15:04     ` François Perrad
2012-10-06 13:53 ` [Buildroot] [PATCH v9 07/10] perl: add option "custom install" Francois Perrad
2012-10-06 13:53 ` [Buildroot] [PATCH v9 08/10] perl: relax microperl dependencies Francois Perrad
2012-10-06 13:53 ` [Buildroot] [PATCH v9 09/10] microperl: mark as DEPRECATED Francois Perrad
2012-10-06 13:53 ` [Buildroot] [PATCH v9 10/10] microperl: remove it Francois Perrad

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox