* [Buildroot] [PATCH 01/10] perl: new package
@ 2012-08-20 8:55 Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 02/10] miniperl: " Francois Perrad
` (9 more replies)
0 siblings, 10 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-20 8:55 UTC (permalink / raw)
To: buildroot
---
package/Config.in | 1 +
package/perl/Config.in | 16 +++++
package/perl/perl-Makefile-SH.patch | 28 ++++++++
package/perl/perl-configure-qemu.patch | 22 +++++++
package/perl/perl-fix-minitest.patch | 96 +++++++++++++++++++++++++++
package/perl/perl-make-ext.patch | 35 ++++++++++
package/perl/perl-mkppport.patch | 36 ++++++++++
package/perl/perl.mk | 112 ++++++++++++++++++++++++++++++++
8 files changed, 346 insertions(+)
create mode 100644 package/perl/Config.in
create mode 100644 package/perl/perl-Makefile-SH.patch
create mode 100644 package/perl/perl-configure-qemu.patch
create mode 100644 package/perl/perl-fix-minitest.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..387448e
--- /dev/null
+++ b/package/perl/Config.in
@@ -0,0 +1,16 @@
+config BR2_PACKAGE_PERL
+ bool "perl"
+ 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/
+
+
+config BR2_PACKAGE_PERL_CUSTOM_CONFIGURE
+ string "configuration flags"
+ depends on BR2_PACKAGE_PERL
+ help
+ Allows to add some flags to Configure.
+
diff --git a/package/perl/perl-Makefile-SH.patch b/package/perl/perl-Makefile-SH.patch
new file mode 100644
index 0000000..00d26b9
--- /dev/null
+++ b/package/perl/perl-Makefile-SH.patch
@@ -0,0 +1,28 @@
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/Makefile.SH
+===================================================================
+--- a/Makefile.SH
++++ b/Makefile.SH
+@@ -1512,8 +1512,10 @@
+ # Can't depend on lib/Config.pm because that might be where miniperl
+ # is crashing.
+ minitest: $(MINIPERL_EXE) minitest.prep
+- - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE)) \
+- && $(RUN_PERL) TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t op/*.t uni/*.t </dev/tty
++# - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE)) \
++# && $(RUN_PERL) TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t op/*.t uni/*.t </dev/tty
++ - cd t && (rm -f $(PERL_EXE); cp run_perl $(PERL_EXE); chmod +x $(PERL_EXE)) \
++ && $(PERL_EXE) TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t op/*.t uni/*.t </dev/tty
+
+ # Test via harness
+
+Index: b/t/run_perl
+new file mode 100755
+===================================================================
+--- /dev/null
++++ b/t/run_perl
+@@ -0,0 +1,2 @@
++#!/bin/sh
++../Cross/run-qemu-arm ../perl "$@"
diff --git a/package/perl/perl-configure-qemu.patch b/package/perl/perl-configure-qemu.patch
new file mode 100644
index 0000000..c7276b0
--- /dev/null
+++ b/package/perl/perl-configure-qemu.patch
@@ -0,0 +1,22 @@
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/Configure
+===================================================================
+--- a/Configure
++++ b/Configure
+@@ -2908,6 +2908,14 @@
+ $targetrun -l $targetuser $targethost "cd \$cwd && ./\$exe \$@"
+ EOF
+ ;;
++ qemu*)
++ targetto=cp
++ targetfrom=cp
++ cat >$run <<EOF
++#!/bin/sh
++$targetrun -L $qemulib $exe "\$@"
++EOF
++ ;;
+ *) echo "Unknown targetrun '$targetrun'" >&4
+ exit 1
+ ;;
diff --git a/package/perl/perl-fix-minitest.patch b/package/perl/perl-fix-minitest.patch
new file mode 100644
index 0000000..0d6b25f
--- /dev/null
+++ b/package/perl/perl-fix-minitest.patch
@@ -0,0 +1,96 @@
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/t/base/term.t
+===================================================================
+--- a/t/base/term.t
++++ b/t/base/term.t
+@@ -17,7 +17,7 @@
+
+ # check `` processing
+
+-$x = `$^X -le "print 'hi there'"`;
++$x = `./perl -le "print 'hi there'"`;
+ if ($x eq "hi there\n") {print "ok 2\n";} else {print "not ok 2\n";}
+
+ # check $#array
+Index: b/t/io/fflush.t
+===================================================================
+--- a/t/io/fflush.t
++++ b/t/io/fflush.t
+@@ -28,7 +28,7 @@
+
+ plan(tests => 7);
+
+-my $runperl = $^X =~ m/\s/ ? qq{"$^X"} : $^X;
++my $runperl = './perl';
+ $runperl .= qq{ "-I../lib"};
+
+ sub file_eq {
+Index: b/t/op/lex_assign.t
+===================================================================
+--- a/t/op/lex_assign.t
++++ b/t/op/lex_assign.t
+@@ -8,7 +8,7 @@
+ $| = 1;
+ umask 0;
+ $xref = \ "";
+-$runme = $^X;
++$runme = './perl';
+ @a = (1..5);
+ %h = (1..6);
+ $aref = \@a;
+Index: b/t/op/sigsystem.t
+===================================================================
+--- a/t/op/sigsystem.t
++++ b/t/op/sigsystem.t
+@@ -7,7 +7,7 @@
+ }
+
+ use strict;
+-use constant TRUE => ($^X, '-e', 'exit 0');
++use constant TRUE => ('./perl', '-e', 'exit 0');
+ use Data::Dumper;
+
+ plan tests => 4;
+Index: b/t/op/srand.t
+===================================================================
+--- a/t/op/srand.t
++++ b/t/op/srand.t
+@@ -52,9 +52,9 @@
+ }
+
+ # This test checks whether Perl called srand for you.
+- at first_run = `$^X -le "print int rand 100 for 1..100"`;
++ at first_run = `./perl -le "print int rand 100 for 1..100"`;
+ sleep(1); # in case our srand() is too time-dependent
+- at second_run = `$^X -le "print int rand 100 for 1..100"`;
++ at second_run = `./perl -le "print int rand 100 for 1..100"`;
+
+ ok( !eq_array(\@first_run, \@second_run), 'srand() called automatically');
+
+Index: b/t/run/switchF1.t
+===================================================================
+--- a/t/run/switchF1.t
++++ b/t/run/switchF1.t
+@@ -26,6 +26,6 @@
+ print F $prog;
+ close F or die "Close $file: $!";
+
+-print system ($^X, $file) ? "not ok 5\n" : "ok 5\n";
++print system ('./perl', $file) ? "not ok 5\n" : "ok 5\n";
+
+ unlink $file or die "Unlink $file: $!";
+Index: b/t/test.pl
+===================================================================
+--- a/t/test.pl
++++ b/t/test.pl
+@@ -684,7 +684,7 @@
+ # A somewhat safer version of the sometimes wrong $^X.
+ sub which_perl {
+ unless (defined $Perl) {
+- $Perl = $^X;
++ $Perl = './perl';
+
+ # VMS should have 'perl' aliased properly
+ return $Perl if $is_vms;
diff --git a/package/perl/perl-make-ext.patch b/package/perl/perl-make-ext.patch
new file mode 100644
index 0000000..f109487
--- /dev/null
+++ b/package/perl/perl-make-ext.patch
@@ -0,0 +1,35 @@
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/make_ext.pl
+===================================================================
+--- a/make_ext.pl
++++ b/make_ext.pl
+@@ -11,6 +11,7 @@
+ }
+ }
+ use Cwd;
++use File::Spec;
+
+ my $is_Win32 = $^O eq 'MSWin32';
+ my $is_VMS = $^O eq 'VMS';
+@@ -458,11 +459,17 @@
+ # 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";
++ push @args, 'PERL="' . join(' ', @run, File::Spec->rel2abs($perl)) . '"';
++ push @args, 'ABSPERL="' . join(' ', @run, File::Spec->rel2abs($perl)) . '"';
++ system(join(' ', @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);
++ push @targ, 'PERL="' . join(' ', @run, File::Spec->rel2abs($perl)) . '"';
++ push @targ, 'ABSPERL="' . join(' ', @run, File::Spec->rel2abs($perl)) . '"';
++ my $code = system(join(' ', @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..fce1d6e
--- /dev/null
+++ b/package/perl/perl-mkppport.patch
@@ -0,0 +1,36 @@
+
+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..d2679bc
--- /dev/null
+++ b/package/perl/perl.mk
@@ -0,0 +1,112 @@
+#############################################################
+#
+# 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
+
+ifeq ($(shell expr $(PERL_VERSION_MAJOR) % 2), 1)
+PERL_USE_DEVEL=-Dusedevel
+endif
+
+PERL_ARCH=$(call qstrip,$(BR2_ARCH))
+ifeq ($(PERL_ARCH),i686)
+ PERL_ARCH=i386
+endif
+PERL_QEMU_USER_MODE=qemu-$(PERL_ARCH)
+
+define PERL_CONFIGURE_CMDS
+ rm -f $(@D)/config.sh
+ cd $(@D); ./Configure -des \
+ -Dusecrosscompile \
+ -Dtargetrun=$(PERL_QEMU_USER_MODE) \
+ -Dqemulib=$(TARGET_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) \
+ $(call qstrip,$(BR2_PACKAGE_PERL_CUSTOM_CONFIGURE))
+ 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
+ $(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
+
+define HOST_PERL_CONFIGURE_CMDS
+ cd $(@D); ./Configure -des \
+ -Dcc="$(HOSTCC)" \
+ -Dprefix="$(HOST_DIR)/usr" \
+ $(PERL_USE_DEVEL) \
+ $(call qstrip,$(BR2_PACKAGE_PERL_CUSTOM_CONFIGURE))
+endef
+
+define HOST_PERL_BUILD_CMDS
+ $(MAKE) -C $(@D) all
+endef
+
+define HOST_PERL_INSTALL_CMDS
+ $(MAKE) INSTALL_DEPENDENCE= \
+ -C $(@D) install
+endef
+
+define HOST_PERL_CLEAN_CMDS
+ -$(MAKE) -C $(@D) clean
+endef
+
+$(eval $(generic-package))
+$(eval $(host-generic-package))
--
1.7.9.5
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 02/10] miniperl: new package
2012-08-20 8:55 [Buildroot] [PATCH 01/10] perl: new package Francois Perrad
@ 2012-08-20 8:55 ` Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 03/10] cpanminus: " Francois Perrad
` (8 subsequent siblings)
9 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-20 8:55 UTC (permalink / raw)
To: buildroot
---
package/Config.in | 1 +
package/miniperl/Config.in | 6 ++
package/miniperl/miniperl-Makefile-SH.patch | 48 +++++++++
package/miniperl/miniperl-configure-qemu.patch | 22 ++++
package/miniperl/miniperl-fix-minitest.patch | 122 +++++++++++++++++++++
package/miniperl/miniperl-installperl.patch | 135 ++++++++++++++++++++++++
package/miniperl/miniperl-make-ext.patch | 35 ++++++
package/miniperl/miniperl-mkppport.patch | 36 +++++++
package/miniperl/miniperl.mk | 35 ++++++
package/perl/Config.in | 2 +-
10 files changed, 441 insertions(+), 1 deletion(-)
create mode 100644 package/miniperl/Config.in
create mode 100644 package/miniperl/miniperl-Makefile-SH.patch
create mode 100644 package/miniperl/miniperl-configure-qemu.patch
create mode 100644 package/miniperl/miniperl-fix-minitest.patch
create mode 100644 package/miniperl/miniperl-installperl.patch
create mode 100644 package/miniperl/miniperl-make-ext.patch
create mode 100644 package/miniperl/miniperl-mkppport.patch
create mode 100644 package/miniperl/miniperl.mk
diff --git a/package/Config.in b/package/Config.in
index 00a79ab..1b8237d 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -263,6 +263,7 @@ source "package/xavante/Config.in"
endmenu
endif
source "package/perl/Config.in"
+source "package/miniperl/Config.in"
source "package/microperl/Config.in"
source "package/php/Config.in"
source "package/python/Config.in"
diff --git a/package/miniperl/Config.in b/package/miniperl/Config.in
new file mode 100644
index 0000000..abe283b
--- /dev/null
+++ b/package/miniperl/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_MINIPERL
+ bool "miniperl"
+ help
+ Perl without dynamic module loader.
+ Usually used to bootstrap a full Perl (@INC contains only .).
+
diff --git a/package/miniperl/miniperl-Makefile-SH.patch b/package/miniperl/miniperl-Makefile-SH.patch
new file mode 100644
index 0000000..6b28b0a
--- /dev/null
+++ b/package/miniperl/miniperl-Makefile-SH.patch
@@ -0,0 +1,48 @@
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/Makefile.SH
+===================================================================
+--- a/Makefile.SH
++++ b/Makefile.SH
+@@ -555,7 +555,8 @@
+ .c.s:
+ $(CCCMDSRC) -S $*.c
+
+-all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) $(generated_pods) $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make
++#all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) $(generated_pods) $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make
++all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) $(private) $(unidatafiles) $(nonxs_ext) lib/auto/Cwd/Cwd.so
+ @echo " ";
+ @echo " Everything is up to date. Type '$(MAKE) test' to run test suite."
+
+@@ -1101,7 +1102,8 @@
+ INSTALL_DEPENDENCE = all
+
+ install.perl: $(INSTALL_DEPENDENCE) installperl
+- $(RUN_PERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS)
++# $(RUN_PERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS)
++ $(MINIPERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS)
+ - at test ! -s extras.lst || $(MAKE) extras.install
+
+ install.man: all installman
+@@ -1512,8 +1514,10 @@
+ # Can't depend on lib/Config.pm because that might be where miniperl
+ # is crashing.
+ minitest: $(MINIPERL_EXE) minitest.prep
+- - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE)) \
+- && $(RUN_PERL) TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t op/*.t uni/*.t </dev/tty
++# - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE)) \
++# && $(RUN_PERL) TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t op/*.t uni/*.t </dev/tty
++ - cd t && (rm -f $(PERL_EXE); cp run_miniperl $(PERL_EXE); chmod +x $(PERL_EXE)) \
++ && $(PERL_EXE) TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t op/*.t uni/*.t </dev/tty
+
+ # Test via harness
+
+Index: b/t/run_miniperl
+new file mode 100755
+===================================================================
+--- /dev/null
++++ b/t/run_miniperl
+@@ -0,0 +1,2 @@
++#!/bin/sh
++../Cross/run-qemu-arm ../miniperl "$@"
diff --git a/package/miniperl/miniperl-configure-qemu.patch b/package/miniperl/miniperl-configure-qemu.patch
new file mode 100644
index 0000000..c7276b0
--- /dev/null
+++ b/package/miniperl/miniperl-configure-qemu.patch
@@ -0,0 +1,22 @@
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/Configure
+===================================================================
+--- a/Configure
++++ b/Configure
+@@ -2908,6 +2908,14 @@
+ $targetrun -l $targetuser $targethost "cd \$cwd && ./\$exe \$@"
+ EOF
+ ;;
++ qemu*)
++ targetto=cp
++ targetfrom=cp
++ cat >$run <<EOF
++#!/bin/sh
++$targetrun -L $qemulib $exe "\$@"
++EOF
++ ;;
+ *) echo "Unknown targetrun '$targetrun'" >&4
+ exit 1
+ ;;
diff --git a/package/miniperl/miniperl-fix-minitest.patch b/package/miniperl/miniperl-fix-minitest.patch
new file mode 100644
index 0000000..1ea474e
--- /dev/null
+++ b/package/miniperl/miniperl-fix-minitest.patch
@@ -0,0 +1,122 @@
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/lib/_charnames.pm
+===================================================================
+--- a/lib/_charnames.pm
++++ b/lib/_charnames.pm
+@@ -11,7 +11,7 @@
+ use unicore::Name; # mktables-generated algorithmically-defined names
+
+ use bytes (); # for $bytes::hint_bits
+-use re "/aa"; # Everything in here should be ASCII
++#use re "/aa"; # Everything in here should be ASCII
+
+ $Carp::Internal{ (__PACKAGE__) } = 1;
+
+Index: b/lib/charnames.pm
+===================================================================
+--- a/lib/charnames.pm
++++ b/lib/charnames.pm
+@@ -6,7 +6,7 @@
+ use _charnames (); # The submodule for this where most of the work gets done
+
+ use bytes (); # for $bytes::hint_bits
+-use re "/aa"; # Everything in here should be ASCII
++#use re "/aa"; # Everything in here should be ASCII
+
+ # Translate between Unicode character names and their code points.
+ # This is a wrapper around the submodule C<_charnames>. This design allows
+Index: b/t/base/term.t
+===================================================================
+--- a/t/base/term.t
++++ b/t/base/term.t
+@@ -17,7 +17,7 @@
+
+ # check `` processing
+
+-$x = `$^X -le "print 'hi there'"`;
++$x = `./perl -le "print 'hi there'"`;
+ if ($x eq "hi there\n") {print "ok 2\n";} else {print "not ok 2\n";}
+
+ # check $#array
+Index: b/t/io/fflush.t
+===================================================================
+--- a/t/io/fflush.t
++++ b/t/io/fflush.t
+@@ -28,7 +28,7 @@
+
+ plan(tests => 7);
+
+-my $runperl = $^X =~ m/\s/ ? qq{"$^X"} : $^X;
++my $runperl = './perl';
+ $runperl .= qq{ "-I../lib"};
+
+ sub file_eq {
+Index: b/t/op/lex_assign.t
+===================================================================
+--- a/t/op/lex_assign.t
++++ b/t/op/lex_assign.t
+@@ -8,7 +8,7 @@
+ $| = 1;
+ umask 0;
+ $xref = \ "";
+-$runme = $^X;
++$runme = './perl';
+ @a = (1..5);
+ %h = (1..6);
+ $aref = \@a;
+Index: b/t/op/sigsystem.t
+===================================================================
+--- a/t/op/sigsystem.t
++++ b/t/op/sigsystem.t
+@@ -7,7 +7,7 @@
+ }
+
+ use strict;
+-use constant TRUE => ($^X, '-e', 'exit 0');
++use constant TRUE => ('./perl', '-e', 'exit 0');
+ use Data::Dumper;
+
+ plan tests => 4;
+Index: b/t/op/srand.t
+===================================================================
+--- a/t/op/srand.t
++++ b/t/op/srand.t
+@@ -52,9 +52,9 @@
+ }
+
+ # This test checks whether Perl called srand for you.
+- at first_run = `$^X -le "print int rand 100 for 1..100"`;
++ at first_run = `./perl -le "print int rand 100 for 1..100"`;
+ sleep(1); # in case our srand() is too time-dependent
+- at second_run = `$^X -le "print int rand 100 for 1..100"`;
++ at second_run = `./perl -le "print int rand 100 for 1..100"`;
+
+ ok( !eq_array(\@first_run, \@second_run), 'srand() called automatically');
+
+Index: b/t/run/switchF1.t
+===================================================================
+--- a/t/run/switchF1.t
++++ b/t/run/switchF1.t
+@@ -26,6 +26,6 @@
+ print F $prog;
+ close F or die "Close $file: $!";
+
+-print system ($^X, $file) ? "not ok 5\n" : "ok 5\n";
++print system ('./perl', $file) ? "not ok 5\n" : "ok 5\n";
+
+ unlink $file or die "Unlink $file: $!";
+Index: b/t/test.pl
+===================================================================
+--- a/t/test.pl
++++ b/t/test.pl
+@@ -684,7 +684,7 @@
+ # A somewhat safer version of the sometimes wrong $^X.
+ sub which_perl {
+ unless (defined $Perl) {
+- $Perl = $^X;
++ $Perl = './perl';
+
+ # VMS should have 'perl' aliased properly
+ return $Perl if $is_vms;
diff --git a/package/miniperl/miniperl-installperl.patch b/package/miniperl/miniperl-installperl.patch
new file mode 100644
index 0000000..f8b5889
--- /dev/null
+++ b/package/miniperl/miniperl-installperl.patch
@@ -0,0 +1,135 @@
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/installperl
+===================================================================
+--- a/installperl
++++ b/installperl
+@@ -3,11 +3,17 @@
+ BEGIN {
+ require 5.004;
+ chdir '..' if !-d 'lib' and -d '../lib';
++
++ my @sav = @INC;
++ my $sav = $ENV{PERL5LIB};
+ @INC = 'lib';
+ $ENV{PERL5LIB} = 'lib';
+
+ # This needs to be at BEGIN time, before any use of Config
+ require './install_lib.pl';
++
++ @INC = @sav;
++ $ENV{PERL5LIB} = $sav;
+ }
+
+ use strict;
+@@ -29,7 +35,7 @@
+ use ExtUtils::Packlist;
+ use Cwd;
+
+-require './Porting/pod_lib.pl';
++#require './Porting/pod_lib.pl';
+
+ if ($Is_NetWare) {
+ $Is_W32 = 0;
+@@ -112,19 +118,19 @@
+
+ $versiononly = 1 if $Config{versiononly} && !defined $versiononly;
+ my (@scripts, @tolink);
+-open SCRIPTS, "utils.lst" or die "Can't open utils.lst: $!";
+-while (<SCRIPTS>) {
+- next if /^#/;
+- next if /a2p/; # a2p is binary, to be installed separately
+- chomp;
+- if (/(\S*)\s*#\s*link\s*=\s*(\S*)/) {
+- push @scripts, $1;
+- push @tolink, [$1, $2];
+- } else {
+- push @scripts, $_;
+- }
+-}
+-close SCRIPTS;
++#open SCRIPTS, "utils.lst" or die "Can't open utils.lst: $!";
++#while (<SCRIPTS>) {
++# next if /^#/;
++# next if /a2p/; # a2p is binary, to be installed separately
++# chomp;
++# if (/(\S*)\s*#\s*link\s*=\s*(\S*)/) {
++# push @scripts, $1;
++# push @tolink, [$1, $2];
++# } else {
++# push @scripts, $_;
++# }
++#}
++#close SCRIPTS;
+
+ if ($scr_ext) { @scripts = map { "$_$scr_ext" } @scripts; }
+
+@@ -241,7 +247,7 @@
+
+ if (!$Is_NetWare) {
+ if (!$Is_VMS) {
+--x 'perl' . $exe_ext || die "perl isn't executable!\n";
++-x 'miniperl' . $exe_ext || die "miniperl isn't executable!\n";
+ }
+ else {
+ -x $ndbg . 'perl' . $exe_ext || die "${ndbg}perl$exe_ext isn't executable!\n";
+@@ -357,7 +363,7 @@
+ }
+
+ # Install header files and libraries.
+-mkpath("$installarchlib/CORE", $opts{verbose}, 0777);
++#mkpath("$installarchlib/CORE", $opts{verbose}, 0777);
+ my @corefiles;
+ if ($Is_VMS) { # We did core file selection during build
+ my $coredir = "lib/$Config{archname}/$ver/CORE";
+@@ -395,18 +401,18 @@
+ push(@corefiles,'mpeix/mpeixish.h');
+ }
+ }
+-foreach my $file (@corefiles) {
+- # HP-UX (at least) needs to maintain execute permissions
+- # on dynamically-loadable libraries. So we do it for all.
+- if (copy_if_diff($file,"$installarchlib/CORE/$file")) {
+- if ($file =~ /\.(\Q$so\E|\Q$dlext\E)$/) {
+- strip("-S", "$installarchlib/CORE/$file") if $^O =~ /^(rhapsody|darwin)$/;
+- chmod(0555, "$installarchlib/CORE/$file");
+- } else {
+- chmod(0444, "$installarchlib/CORE/$file");
+- }
+- }
+-}
++#foreach my $file (@corefiles) {
++# # HP-UX (at least) needs to maintain execute permissions
++# # on dynamically-loadable libraries. So we do it for all.
++# if (copy_if_diff($file,"$installarchlib/CORE/$file")) {
++# if ($file =~ /\.(\Q$so\E|\Q$dlext\E)$/) {
++# strip("-S", "$installarchlib/CORE/$file") if $^O =~ /^(rhapsody|darwin)$/;
++# chmod(0555, "$installarchlib/CORE/$file");
++# } else {
++# chmod(0444, "$installarchlib/CORE/$file");
++# }
++# }
++#}
+
+ # Install main perl executables
+ # Make links to ordinary names if installbin directory isn't current directory.
+@@ -757,7 +763,8 @@
+ $name = "$dir/$name" if $dir ne '';
+
+ # ignore pods that are stand alone documentation from dual life modules.
+- return if /\.pod\z/ && is_duplicate_pod($_);
++# return if /\.pod\z/ && is_duplicate_pod($_);
++ return if /\.pod\z/;
+
+ return if $name eq 'ExtUtils/XSSymSet.pm' and !$Is_VMS;
+
+@@ -767,7 +774,7 @@
+ ($name =~ /^(.*)\.(?:h|lib)$/i && ($Is_W32 || $Is_NetWare)) ||
+ $name=~/^Config_(heavy|git)\.pl\z/
+ ) {
+- $installlib = $installarchlib;
++# $installlib = $installarchlib;
+ return unless $do_installarchlib;
+ } else {
+ return unless $do_installprivlib;
diff --git a/package/miniperl/miniperl-make-ext.patch b/package/miniperl/miniperl-make-ext.patch
new file mode 100644
index 0000000..f109487
--- /dev/null
+++ b/package/miniperl/miniperl-make-ext.patch
@@ -0,0 +1,35 @@
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/make_ext.pl
+===================================================================
+--- a/make_ext.pl
++++ b/make_ext.pl
+@@ -11,6 +11,7 @@
+ }
+ }
+ use Cwd;
++use File::Spec;
+
+ my $is_Win32 = $^O eq 'MSWin32';
+ my $is_VMS = $^O eq 'VMS';
+@@ -458,11 +459,17 @@
+ # 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";
++ push @args, 'PERL="' . join(' ', @run, File::Spec->rel2abs($perl)) . '"';
++ push @args, 'ABSPERL="' . join(' ', @run, File::Spec->rel2abs($perl)) . '"';
++ system(join(' ', @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);
++ push @targ, 'PERL="' . join(' ', @run, File::Spec->rel2abs($perl)) . '"';
++ push @targ, 'ABSPERL="' . join(' ', @run, File::Spec->rel2abs($perl)) . '"';
++ my $code = system(join(' ', @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/miniperl/miniperl-mkppport.patch b/package/miniperl/miniperl-mkppport.patch
new file mode 100644
index 0000000..fce1d6e
--- /dev/null
+++ b/package/miniperl/miniperl-mkppport.patch
@@ -0,0 +1,36 @@
+
+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/miniperl/miniperl.mk b/package/miniperl/miniperl.mk
new file mode 100644
index 0000000..68972b9
--- /dev/null
+++ b/package/miniperl/miniperl.mk
@@ -0,0 +1,35 @@
+#############################################################
+#
+# miniperl
+#
+#############################################################
+
+MINIPERL_VERSION = 5.16.1
+MINIPERL_SITE = http://www.cpan.org/src/5.0
+MINIPERL_SOURCE = perl-$(MINIPERL_VERSION).tar.bz2
+MINIPERL_LICENSE = Artistic
+MINIPERL_LICENSE_FILES = Artistic
+
+define MINIPERL_CONFIGURE_CMDS
+ $(PERL_CONFIGURE_CMDS)
+endef
+
+define MINIPERL_BUILD_CMDS
+ $(MAKE) -C $(@D) all
+endef
+
+define MINIPERL_INSTALL_TARGET_CMDS
+ $(INSTALL) -m 755 $(@D)/miniperl $(TARGET_DIR)/usr/bin/miniperl
+ $(MAKE) INSTALL_DEPENDENCE= \
+ INSTALLFLAGS=-p \
+ DESTDIR="$(TARGET_DIR)" \
+ -C $(@D) install.perl
+ # File::Spec is a pure module but packaged in the XS module Cwd
+ rm -rf $(TARGET_DIR)/usr/lib/perl5/$(MINIPERL_VERSION)/auto
+endef
+
+define MINIPERL_CLEAN_CMDS
+ -$(MAKE) -C $(@D) clean
+endef
+
+$(eval $(generic-package))
diff --git a/package/perl/Config.in b/package/perl/Config.in
index 387448e..58971a0 100644
--- a/package/perl/Config.in
+++ b/package/perl/Config.in
@@ -10,7 +10,7 @@ config BR2_PACKAGE_PERL
config BR2_PACKAGE_PERL_CUSTOM_CONFIGURE
string "configuration flags"
- depends on BR2_PACKAGE_PERL
+ depends on BR2_PACKAGE_PERL || BR2_PACKAGE_MINIPERL
help
Allows to add some flags to Configure.
--
1.7.9.5
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 03/10] cpanminus: new package
2012-08-20 8:55 [Buildroot] [PATCH 01/10] perl: new package Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 02/10] miniperl: " Francois Perrad
@ 2012-08-20 8:55 ` Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 04/10] microperl: build extensions at build time Francois Perrad
` (7 subsequent siblings)
9 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-20 8:55 UTC (permalink / raw)
To: buildroot
---
package/Config.in | 5 +++++
package/cpanminus/Config.in | 24 ++++++++++++++++++++++++
package/cpanminus/cpanminus.mk | 37 +++++++++++++++++++++++++++++++++++++
package/perl/perl.mk | 12 ++++++++++++
4 files changed, 78 insertions(+)
create mode 100644 package/cpanminus/Config.in
create mode 100644 package/cpanminus/cpanminus.mk
diff --git a/package/Config.in b/package/Config.in
index 1b8237d..bb8c80d 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 || BR2_PACKAGE_MINIPERL
+menu "Perl libraries/modules"
+source "package/cpanminus/Config.in"
+endmenu
+endif
source "package/miniperl/Config.in"
source "package/microperl/Config.in"
source "package/php/Config.in"
diff --git a/package/cpanminus/Config.in b/package/cpanminus/Config.in
new file mode 100644
index 0000000..9db7b2e
--- /dev/null
+++ b/package/cpanminus/Config.in
@@ -0,0 +1,24 @@
+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_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.
+ cpanm run on host, so you cannot use it for XS modules.
+
+endif
diff --git a/package/cpanminus/cpanminus.mk b/package/cpanminus/cpanminus.mk
new file mode 100644
index 0000000..b55dd3f
--- /dev/null
+++ b/package/cpanminus/cpanminus.mk
@@ -0,0 +1,37 @@
+#############################################################
+#
+# cpanminus
+#
+#############################################################
+
+CPANMINUS_VERSION = 1.5017
+CPANMINUS_SITE = http://search.cpan.org/CPAN/authors/id/M/MI/MIYAGAWA
+CPANMINUS_SOURCE = App-cpanminus-$(CPANMINUS_VERSION).tar.gz
+CPANMINUS_DEPENDENCIES = host-perl host-cpanminus
+CPANMINUS_MODS = $(call qstrip,$(BR2_PACKAGE_CPANMINUS_MODULES))
+
+define HOST_CPANMINUS_CONFIGURE_CMDS
+ cd $(@D); $(HOST_DIR)/usr/bin/perl$(PERL_VERSION) Makefile.PL
+endef
+
+define HOST_CPANMINUS_INSTALL_CMDS
+ $(MAKE) -C $(@D) install
+endef
+
+define CPANMINUS_INSTALL_TARGET_CMDS
+ for i in $(CPANMINUS_MODS); do \
+ cd $(@D); $(HOST_DIR)/usr/bin/cpanm -L $(TARGET_DIR)/usr/local $$i; \
+ done
+ # show XS modules
+ find $(TARGET_DIR)/usr/local/lib/perl5 -name *.so -print
+ # remove XS modules
+ rm -Rf $(TARGET_DIR)/usr/local/lib/perl5/$(shell $(HOST_DIR)/usr/bin/perl$(PERL_VERSION) -MConfig -e "print Config->{archname}")
+ # fix shebang
+ touch $(TARGET_DIR)/usr/local/bin/dummy
+ for i in $(TARGET_DIR)/usr/local/bin/*; do \
+ $(SED) 's/$(subst /,\/,$(HOST_DIR))//' $$i; \
+ done
+endef
+
+$(eval $(generic-package))
+$(eval $(host-generic-package))
diff --git a/package/perl/perl.mk b/package/perl/perl.mk
index d2679bc..38e1167 100644
--- a/package/perl/perl.mk
+++ b/package/perl/perl.mk
@@ -41,6 +41,7 @@ define PERL_CONFIGURE_CMDS
-Dlibc=$(TARGET_HOST)/usr/$(GNU_TARGET_NAME)/sysroot/lib/libc.so \
-Duseshrplib \
-Dprefix=/usr \
+ -Dsitelib=/usr/local/lib/perl5 \
-Uoptimize \
$(PERL_USE_DEVEL) \
$(call qstrip,$(BR2_PACKAGE_PERL_CUSTOM_CONFIGURE))
@@ -65,8 +66,19 @@ define PERL_CONFIGURE_CMDS
$(SED) 's/UNKNOWN-/Buildroot $(BR2_VERSION_FULL) /' $(@D)/patchlevel.h
endef
+# example of hack for XS module (cpanminus handles only pure Perl modules)
+#define PERL_HACK_4_XS_MODULES
+# cd $(@D)/cpan; tar xfz $(BUILDROOT_DL_DIR)/HTML-Parser-3.69.tar.gz
+#endef
+
+PERL_PRE_CONFIGURE_HOOKS += PERL_HACK_4_XS_MODULES
+
define PERL_BUILD_CMDS
$(MAKE) -C $(@D) all
+# example of hack for XS module
+# cd $(@D); \
+# $(HOST_DIR)/usr/bin/perl$(PERL_VERSION) -Ilib make_ext.pl MAKE="$(MAKE)" LIBPERL_A=libperl.a LINKTYPE=dynamic \
+# HTML-Parser-3.69
endef
define PERL_INSTALL_STAGING_CMDS
--
1.7.9.5
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 04/10] microperl: build extensions at build time
2012-08-20 8:55 [Buildroot] [PATCH 01/10] perl: new package Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 02/10] miniperl: " Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 03/10] cpanminus: " Francois Perrad
@ 2012-08-20 8:55 ` Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 05/10] microperl: bump version to 5.14.2 Francois Perrad
` (6 subsequent siblings)
9 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-20 8:55 UTC (permalink / raw)
To: buildroot
just set PERL5LIB in build tree
optim: symlink only one time, before the loop
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
package/microperl/microperl.mk | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/package/microperl/microperl.mk b/package/microperl/microperl.mk
index b2a912a..fa92144 100644
--- a/package/microperl/microperl.mk
+++ b/package/microperl/microperl.mk
@@ -97,6 +97,7 @@ define MICROPERL_CONFIGURE_CMDS
cp -f $(@D)/uconfig.sh $(@D)/config.sh
echo "ccname='$(TARGET_CC)'" >>$(@D)/config.sh
echo "PERL_CONFIG_SH=true" >>$(@D)/config.sh
+ touch $(@D)/config.h # avoid warning : out of date
cd $(@D) ; $(HOST_DIR)/usr/bin/perl make_patchnum.pl ; \
$(HOST_DIR)/usr/bin/perl configpm
endef
@@ -106,16 +107,17 @@ define MICROPERL_BUILD_CMDS
CC="$(HOSTCC)" bitcount.h
$(MAKE) -f Makefile.micro -C $(@D) \
CC="$(TARGET_CC)" OPTIMIZE="$(TARGET_CFLAGS)"
+ $(MICROPERL_BUILD_EXTENSIONS)
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
+ cd $(@D); rm -f miniperl; ln -s $(HOST_DIR)/usr/bin/perl miniperl;
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 \
+ cd $(@D); PERL5LIB=lib \
+ ./miniperl make_ext.pl MAKE="$(MAKE)" --nonxs \
`echo $$i|sed -e 's/.pm//'`; \
done
endef
@@ -131,7 +133,6 @@ define MICROPERL_INSTALL_TARGET_CMDS
$(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 \
--
1.7.9.5
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 05/10] microperl: bump version to 5.14.2
2012-08-20 8:55 [Buildroot] [PATCH 01/10] perl: new package Francois Perrad
` (2 preceding siblings ...)
2012-08-20 8:55 ` [Buildroot] [PATCH 04/10] microperl: build extensions at build time Francois Perrad
@ 2012-08-20 8:55 ` Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 06/10] microperl: improve configure step on 64bits platform Francois Perrad
` (5 subsequent siblings)
9 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-20 8:55 UTC (permalink / raw)
To: buildroot
patches have been merged in upstream
perl -V requires more modules
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
.../microperl/microperl-no-signal-handlers.patch | 22 ---------
package/microperl/microperl-uudmap.patch | 47 --------------------
package/microperl/microperl.mk | 10 ++---
3 files changed, 5 insertions(+), 74 deletions(-)
delete mode 100644 package/microperl/microperl-no-signal-handlers.patch
delete mode 100644 package/microperl/microperl-uudmap.patch
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
index fa92144..1899e03 100644
--- a/package/microperl/microperl.mk
+++ b/package/microperl/microperl.mk
@@ -4,7 +4,8 @@
#
#############################################################
-MICROPERL_VERSION = 5.12.4
+MICROPERL_VERSION_MAJOR = 14
+MICROPERL_VERSION = 5.$(MICROPERL_VERSION_MAJOR).2
MICROPERL_SITE = http://www.cpan.org/src/5.0
MICROPERL_SOURCE = perl-$(MICROPERL_VERSION).tar.bz2
MICROPERL_LICENSE = Artistic
@@ -16,12 +17,11 @@ 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
+MICROPERL_BASE_MODS = strict.pm vars.pm warnings.pm warnings/register.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
+MICROPERL_MODS += constant.pm CGI CGI.pm Carp.pm Exporter.pm overload.pm
endif
# Host microperl is actually full-blown perl
@@ -70,7 +70,7 @@ define MICROPERL_CONFIGURE_CMDS
-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
+ $(SED) 's/5\.$(MICROPERL_VERSION_MAJOR)/$(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
--
1.7.9.5
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 06/10] microperl: improve configure step on 64bits platform
2012-08-20 8:55 [Buildroot] [PATCH 01/10] perl: new package Francois Perrad
` (3 preceding siblings ...)
2012-08-20 8:55 ` [Buildroot] [PATCH 05/10] microperl: bump version to 5.14.2 Francois Perrad
@ 2012-08-20 8:55 ` Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 07/10] microperl: install more modules by default Francois Perrad
` (4 subsequent siblings)
9 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-20 8:55 UTC (permalink / raw)
To: buildroot
use uconfig64.sh instead of uconfig.sh
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
package/microperl/microperl.mk | 74 ++++++++++++++++++++++------------------
1 file changed, 41 insertions(+), 33 deletions(-)
diff --git a/package/microperl/microperl.mk b/package/microperl/microperl.mk
index 1899e03..4b68567 100644
--- a/package/microperl/microperl.mk
+++ b/package/microperl/microperl.mk
@@ -15,6 +15,18 @@ 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))
+ifeq ($(BR2_ARCH_IS_64),y)
+MICROPERL_UCONFIG_SH = $(@D)/uconfig64.sh
+define MICROPERL_REGEN_CONFIG
+ $(MAKE) -C $(@D) -f Makefile.micro regen_uconfig64
+endef
+else
+MICROPERL_UCONFIG_SH = $(@D)/uconfig.sh
+define MICROPERL_REGEN_CONFIG
+ $(MAKE) -C $(@D) -f Makefile.micro regen_uconfig
+endef
+endif
+
# 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 vars.pm warnings.pm warnings/register.pm
@@ -41,60 +53,56 @@ endef
ifeq ($(BR2_ENDIAN),"BIG")
define MICROPERL_BIGENDIAN
- $(SED) '/^byteorder=/d' $(@D)/uconfig.sh
- echo "byteorder='4321'" >>$(@D)/uconfig.sh
+ $(SED) '/^byteorder=/d' $(MICROPERL_UCONFIG_SH)
+ echo "byteorder='4321'" >>$(MICROPERL_UCONFIG_SH)
endef
endif
ifeq ($(BR2_LARGEFILE),y)
define MICROPERL_LARGEFILE
- $(SED) '/^uselargefiles=/d' $(@D)/uconfig.sh
- echo "uselargefiles='define'" >>$(@D)/uconfig.sh
+ $(SED) '/^uselargefiles=/d' $(MICROPERL_UCONFIG_SH)
+ echo "uselargefiles='define'" >>$(MICROPERL_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
+ -e '/^d_wctomb=/d' $(MICROPERL_UCONFIG_SH)
+ echo "d_mbstowcs='define'" >>$(MICROPERL_UCONFIG_SH)
+ echo "d_mbtowc='define'" >>$(MICROPERL_UCONFIG_SH)
+ echo "d_wcstombs='define'" >>$(MICROPERL_UCONFIG_SH)
+ echo "d_wctomb='define'" >>$(MICROPERL_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\.$(MICROPERL_VERSION_MAJOR)/$(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
+ -e '/^osname=/d' -e '/^d_archlib=/d' -e '/^i_fcntl=/d' \
+ -e '/^useperlio=/d' $(MICROPERL_UCONFIG_SH)
+ $(SED) 's/5\.$(MICROPERL_VERSION_MAJOR)/$(MICROPERL_VERSION)/' $(MICROPERL_UCONFIG_SH)
+ echo "archlib='$(MICROPERL_ARCH_DIR)'" >>$(MICROPERL_UCONFIG_SH)
+ echo "archlibexp='$(MICROPERL_ARCH_DIR)'" >>$(MICROPERL_UCONFIG_SH)
+ echo "d_archlib='define'" >>$(MICROPERL_UCONFIG_SH)
+ echo "archname='$(GNU_TARGET_NAME)'" >>$(MICROPERL_UCONFIG_SH)
+ echo "osname='linux'" >>$(MICROPERL_UCONFIG_SH)
+ echo "cc='$(TARGET_CC)'" >>$(MICROPERL_UCONFIG_SH)
+ echo "ccflags='$(TARGET_CFLAGS)'" >>$(MICROPERL_UCONFIG_SH)
+ echo "optimize='$(TARGET_CFLAGS)'" >>$(MICROPERL_UCONFIG_SH)
+ echo "usecrosscompile='define'" >>$(MICROPERL_UCONFIG_SH)
+ echo "i_fcntl='define'" >>$(MICROPERL_UCONFIG_SH)
+ echo "useperlio='define'" >>$(MICROPERL_UCONFIG_SH)
+ echo "d_poll='define'" >>$(MICROPERL_UCONFIG_SH)
+ echo "i_poll='define'" >>$(MICROPERL_UCONFIG_SH)
$(MICROPERL_BIGENDIAN)
$(MICROPERL_LARGEFILE)
$(MICROPERL_WCHAR)
- $(MAKE) -C $(@D) -f Makefile.micro regen_uconfig
+ $(SED) 's/local\///' $(MICROPERL_UCONFIG_SH)
+ $(SED) 's/UNKNOWN-/Buildroot $(BR2_VERSION_FULL) /' $(@D)/patchlevel.h
+ $(MICROPERL_REGEN_CONFIG)
cp -f $(@D)/uconfig.h $(@D)/config.h
- cp -f $(@D)/uconfig.sh $(@D)/config.sh
+ cp -f $(MICROPERL_UCONFIG_SH) $(@D)/config.sh
echo "ccname='$(TARGET_CC)'" >>$(@D)/config.sh
echo "PERL_CONFIG_SH=true" >>$(@D)/config.sh
touch $(@D)/config.h # avoid warning : out of date
--
1.7.9.5
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 07/10] microperl: install more modules by default
2012-08-20 8:55 [Buildroot] [PATCH 01/10] perl: new package Francois Perrad
` (4 preceding siblings ...)
2012-08-20 8:55 ` [Buildroot] [PATCH 06/10] microperl: improve configure step on 64bits platform Francois Perrad
@ 2012-08-20 8:55 ` Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 08/10] microperl: bump version to 5.16.1 Francois Perrad
` (3 subsequent siblings)
9 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-20 8:55 UTC (permalink / raw)
To: buildroot
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
package/microperl/microperl.mk | 45 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 44 insertions(+), 1 deletion(-)
diff --git a/package/microperl/microperl.mk b/package/microperl/microperl.mk
index 4b68567..c0f6029 100644
--- a/package/microperl/microperl.mk
+++ b/package/microperl/microperl.mk
@@ -31,9 +31,52 @@ endif
MICROPERL_ARCH_MODS = Config.pm Config_git.pl Config_heavy.pl
MICROPERL_BASE_MODS = strict.pm vars.pm warnings.pm warnings/register.pm
+# other pragma modules (from lib/)
+MICROPERL_BASE_MODS += \
+ bytes.pm \
+ deprecate.pm \
+ feature.pm \
+ integer.pm \
+ less.pm \
+ locale.pm \
+ overloading.pm \
+ overload.pm \
+ sigtrap.pm \
+ sort.pm \
+ subs.pm \
+ utf8.pm utf8_heavy.pl \
+ version.pm
+
+# some common modules (from lib/)
+MICROPERL_BASE_MODS += \
+ Benchmark.pm \
+ Carp.pm \
+ Class/Struct.pm \
+ Exporter.pm Exporter/Heavy.pm \
+ File/Basename.pm \
+ File/Compare.pm \
+ Getopt/Std.pm \
+ Tie/Array.pm \
+ Tie/Hash.pm \
+ Tie/Scalar.pm \
+ UNIVERSAL.pm
+
+# other common modules (from dist/)
+MICROPERL_MODS += \
+ Dumpvalue.pm \
+ Env.pm \
+ autouse.pm \
+ base.pm \
+ constant.pm
+
+# other common modules (from cpan/)
+MICROPERL_MODS += \
+ Getopt/Long.pm \
+ parent.pm
+
# CGI bundle
ifeq ($(BR2_PACKAGE_MICROPERL_BUNDLE_CGI),y)
-MICROPERL_MODS += constant.pm CGI CGI.pm Carp.pm Exporter.pm overload.pm
+MICROPERL_MODS += CGI CGI.pm
endif
# Host microperl is actually full-blown perl
--
1.7.9.5
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 08/10] microperl: bump version to 5.16.1
2012-08-20 8:55 [Buildroot] [PATCH 01/10] perl: new package Francois Perrad
` (5 preceding siblings ...)
2012-08-20 8:55 ` [Buildroot] [PATCH 07/10] microperl: install more modules by default Francois Perrad
@ 2012-08-20 8:55 ` Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 09/10] microperl: remove host-microperl Francois Perrad
` (2 subsequent siblings)
9 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-20 8:55 UTC (permalink / raw)
To: buildroot
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
package/microperl/microperl-fix-build.patch | 76 +++++++++++++++++++++++++++
package/microperl/microperl.mk | 8 +--
2 files changed, 80 insertions(+), 4 deletions(-)
create mode 100644 package/microperl/microperl-fix-build.patch
diff --git a/package/microperl/microperl-fix-build.patch b/package/microperl/microperl-fix-build.patch
new file mode 100644
index 0000000..fe01395
--- /dev/null
+++ b/package/microperl/microperl-fix-build.patch
@@ -0,0 +1,76 @@
+Backport of http://perl5.git.perl.org/perl.git/commitdiff/d40eae8f110fb9900e82648a2c44710def9f117d
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+From: Nicholas Clark <nick@ccl4.org>
+Date: Fri, 27 Jul 2012 17:36:40 +0200
+Subject: [PATCH] Restore microperl, which has been unable to build since January.
+
+microperl was broken by commit 82ad65bb0613be64 on 2012-01-16, which used
+IN_LOCALE_COMPILETIME for the first time in the C code. Unlike
+IN_LOCALE_RUNTIME, it had no fallback definition for microperl.
+
+Commit f90a9a0230170cc0 on 2012-01-28 added the first use of Strtol(),
+which means that microperl now needs to assume that the system has strtol().
+(Which is not unreasonable, as it's part of C89).
+---
+ perl.h | 1 +
+ uconfig.h | 2 +-
+ uconfig.sh | 2 +-
+ uconfig64.sh | 2 +-
+ 4 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/perl.h b/perl.h
+index e532af2..9e92ae4 100644
+--- a/perl.h
++++ b/perl.h
+@@ -5311,6 +5311,7 @@ typedef struct am_table_short AMTS;
+ #define RESTORE_NUMERIC_STANDARD() /**/
+ #define Atof my_atof
+ #define IN_LOCALE_RUNTIME 0
++#define IN_LOCALE_COMPILETIME 0
+
+ #endif /* !USE_LOCALE_NUMERIC */
+
+diff --git a/uconfig.h b/uconfig.h
+index 20b1f23..60c7ca7 100644
+--- a/uconfig.h
++++ b/uconfig.h
+@@ -527,7 +527,7 @@
+ * This symbol, if defined, indicates that the strtol routine is available
+ * to provide better numeric string conversion than atoi() and friends.
+ */
+-/*#define HAS_STRTOL / **/
++#define HAS_STRTOL /**/
+
+ /* HAS_STRXFRM:
+ * This symbol, if defined, indicates that the strxfrm() routine is
+diff --git a/uconfig.sh b/uconfig.sh
+index e96b7e8..d761d5c 100644
+--- a/uconfig.sh
++++ b/uconfig.sh
+@@ -424,7 +424,7 @@ d_strftime='undef'
+ d_strlcat='undef'
+ d_strlcpy='undef'
+ d_strtod='undef'
+-d_strtol='undef'
++d_strtol='define'
+ d_strtold='undef'
+ d_strtoll='undef'
+ d_strtoq='undef'
+diff --git a/uconfig64.sh b/uconfig64.sh
+index 80e6f7f..f57c979 100644
+--- a/uconfig64.sh
++++ b/uconfig64.sh
+@@ -425,7 +425,7 @@ d_strftime='undef'
+ d_strlcat='undef'
+ d_strlcpy='undef'
+ d_strtod='undef'
+-d_strtol='undef'
++d_strtol='define'
+ d_strtold='undef'
+ d_strtoll='undef'
+ d_strtoq='undef'
+--
+1.7.9.5
+
diff --git a/package/microperl/microperl.mk b/package/microperl/microperl.mk
index c0f6029..b601754 100644
--- a/package/microperl/microperl.mk
+++ b/package/microperl/microperl.mk
@@ -4,8 +4,8 @@
#
#############################################################
-MICROPERL_VERSION_MAJOR = 14
-MICROPERL_VERSION = 5.$(MICROPERL_VERSION_MAJOR).2
+MICROPERL_VERSION_MAJOR = 16
+MICROPERL_VERSION = 5.$(MICROPERL_VERSION_MAJOR).1
MICROPERL_SITE = http://www.cpan.org/src/5.0
MICROPERL_SOURCE = perl-$(MICROPERL_VERSION).tar.bz2
MICROPERL_LICENSE = Artistic
@@ -50,7 +50,6 @@ MICROPERL_BASE_MODS += \
# some common modules (from lib/)
MICROPERL_BASE_MODS += \
Benchmark.pm \
- Carp.pm \
Class/Struct.pm \
Exporter.pm Exporter/Heavy.pm \
File/Basename.pm \
@@ -63,6 +62,7 @@ MICROPERL_BASE_MODS += \
# other common modules (from dist/)
MICROPERL_MODS += \
+ Carp.pm \
Dumpvalue.pm \
Env.pm \
autouse.pm \
@@ -155,7 +155,7 @@ endef
define MICROPERL_BUILD_CMDS
$(MAKE) -f Makefile.micro -C $(@D) \
- CC="$(HOSTCC)" bitcount.h
+ CC="$(HOSTCC)" ubitcount.h
$(MAKE) -f Makefile.micro -C $(@D) \
CC="$(TARGET_CC)" OPTIMIZE="$(TARGET_CFLAGS)"
$(MICROPERL_BUILD_EXTENSIONS)
--
1.7.9.5
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 09/10] microperl: remove host-microperl
2012-08-20 8:55 [Buildroot] [PATCH 01/10] perl: new package Francois Perrad
` (6 preceding siblings ...)
2012-08-20 8:55 ` [Buildroot] [PATCH 08/10] microperl: bump version to 5.16.1 Francois Perrad
@ 2012-08-20 8:55 ` Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 10/10] microperl: compatible with cpanminus Francois Perrad
2012-08-21 11:19 ` [Buildroot] [PATCH 01/10] perl: new package Thomas Petazzoni
9 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-20 8:55 UTC (permalink / raw)
To: buildroot
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
package/microperl/microperl.mk | 24 ++++--------------------
1 file changed, 4 insertions(+), 20 deletions(-)
diff --git a/package/microperl/microperl.mk b/package/microperl/microperl.mk
index b601754..a3d1018 100644
--- a/package/microperl/microperl.mk
+++ b/package/microperl/microperl.mk
@@ -10,7 +10,7 @@ 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_DEPENDENCIES = host-perl
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))
@@ -79,21 +79,6 @@ ifeq ($(BR2_PACKAGE_MICROPERL_BUNDLE_CGI),y)
MICROPERL_MODS += CGI CGI.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' $(MICROPERL_UCONFIG_SH)
@@ -149,8 +134,8 @@ define MICROPERL_CONFIGURE_CMDS
echo "ccname='$(TARGET_CC)'" >>$(@D)/config.sh
echo "PERL_CONFIG_SH=true" >>$(@D)/config.sh
touch $(@D)/config.h # avoid warning : out of date
- cd $(@D) ; $(HOST_DIR)/usr/bin/perl make_patchnum.pl ; \
- $(HOST_DIR)/usr/bin/perl configpm
+ cd $(@D) ; $(HOST_DIR)/usr/bin/perl$(PERL_VERSION) make_patchnum.pl ; \
+ $(HOST_DIR)/usr/bin/perl$(PERL_VERSION) configpm
endef
define MICROPERL_BUILD_CMDS
@@ -165,7 +150,7 @@ endef
# We try to build anyway to avoid a huge black list
# Just ignore make_ext.pl warning/errors
define MICROPERL_BUILD_EXTENSIONS
- cd $(@D); rm -f miniperl; ln -s $(HOST_DIR)/usr/bin/perl miniperl;
+ cd $(@D); rm -f miniperl; ln -s $(HOST_DIR)/usr/bin/perl$(PERL_VERSION) miniperl;
for i in $(MICROPERL_MODS); do \
cd $(@D); PERL5LIB=lib \
./miniperl make_ext.pl MAKE="$(MAKE)" --nonxs \
@@ -205,4 +190,3 @@ define MICROPERL_UNINSTALL_TARGET_CMDS
endef
$(eval $(generic-package))
-$(eval $(host-generic-package))
--
1.7.9.5
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 10/10] microperl: compatible with cpanminus
2012-08-20 8:55 [Buildroot] [PATCH 01/10] perl: new package Francois Perrad
` (7 preceding siblings ...)
2012-08-20 8:55 ` [Buildroot] [PATCH 09/10] microperl: remove host-microperl Francois Perrad
@ 2012-08-20 8:55 ` Francois Perrad
2012-08-21 11:19 ` [Buildroot] [PATCH 01/10] perl: new package Thomas Petazzoni
9 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-20 8:55 UTC (permalink / raw)
To: buildroot
---
package/Config.in | 2 +-
package/microperl/microperl.mk | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/package/Config.in b/package/Config.in
index bb8c80d..986fc89 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -263,7 +263,7 @@ source "package/xavante/Config.in"
endmenu
endif
source "package/perl/Config.in"
-if BR2_PACKAGE_PERL || BR2_PACKAGE_MINIPERL
+if BR2_PACKAGE_PERL || BR2_PACKAGE_MINIPERL || BR2_PACKAGE_MICROPERL
menu "Perl libraries/modules"
source "package/cpanminus/Config.in"
endmenu
diff --git a/package/microperl/microperl.mk b/package/microperl/microperl.mk
index a3d1018..f512fae 100644
--- a/package/microperl/microperl.mk
+++ b/package/microperl/microperl.mk
@@ -108,11 +108,15 @@ 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 '/^d_archlib=/d' -e '/^i_fcntl=/d' \
+ -e '/^sitelib=/d' -e '/^sitelibexp=/d' \
-e '/^useperlio=/d' $(MICROPERL_UCONFIG_SH)
$(SED) 's/5\.$(MICROPERL_VERSION_MAJOR)/$(MICROPERL_VERSION)/' $(MICROPERL_UCONFIG_SH)
+ $(SED) 's/local\///' $(MICROPERL_UCONFIG_SH)
echo "archlib='$(MICROPERL_ARCH_DIR)'" >>$(MICROPERL_UCONFIG_SH)
echo "archlibexp='$(MICROPERL_ARCH_DIR)'" >>$(MICROPERL_UCONFIG_SH)
echo "d_archlib='define'" >>$(MICROPERL_UCONFIG_SH)
+ echo "sitelib='/usr/local/lib/perl5'" >>$(MICROPERL_UCONFIG_SH)
+ echo "sitelibexp='/usr/local/lib/perl5'" >>$(MICROPERL_UCONFIG_SH)
echo "archname='$(GNU_TARGET_NAME)'" >>$(MICROPERL_UCONFIG_SH)
echo "osname='linux'" >>$(MICROPERL_UCONFIG_SH)
echo "cc='$(TARGET_CC)'" >>$(MICROPERL_UCONFIG_SH)
@@ -126,7 +130,6 @@ define MICROPERL_CONFIGURE_CMDS
$(MICROPERL_BIGENDIAN)
$(MICROPERL_LARGEFILE)
$(MICROPERL_WCHAR)
- $(SED) 's/local\///' $(MICROPERL_UCONFIG_SH)
$(SED) 's/UNKNOWN-/Buildroot $(BR2_VERSION_FULL) /' $(@D)/patchlevel.h
$(MICROPERL_REGEN_CONFIG)
cp -f $(@D)/uconfig.h $(@D)/config.h
--
1.7.9.5
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 01/10] perl: new package
2012-08-20 8:55 [Buildroot] [PATCH 01/10] perl: new package Francois Perrad
` (8 preceding siblings ...)
2012-08-20 8:55 ` [Buildroot] [PATCH 10/10] microperl: compatible with cpanminus Francois Perrad
@ 2012-08-21 11:19 ` Thomas Petazzoni
2012-08-21 13:04 ` François Perrad
9 siblings, 1 reply; 13+ messages in thread
From: Thomas Petazzoni @ 2012-08-21 11:19 UTC (permalink / raw)
To: buildroot
Hello Fran?ois,
Le Mon, 20 Aug 2012 10:55:00 +0200,
Francois Perrad <fperrad@gmail.com> a ?crit :
> ---
> package/Config.in | 1 +
> package/perl/Config.in | 16 +++++
> package/perl/perl-Makefile-SH.patch | 28 ++++++++
> package/perl/perl-configure-qemu.patch | 22 +++++++
> package/perl/perl-fix-minitest.patch | 96 +++++++++++++++++++++++++++
> package/perl/perl-make-ext.patch | 35 ++++++++++
> package/perl/perl-mkppport.patch | 36 ++++++++++
> package/perl/perl.mk | 112 ++++++++++++++++++++++++++++++++
> 8 files changed, 346 insertions(+)
> create mode 100644 package/perl/Config.in
> create mode 100644 package/perl/perl-Makefile-SH.patch
> create mode 100644 package/perl/perl-configure-qemu.patch
> create mode 100644 package/perl/perl-fix-minitest.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
Thanks for this work on Perl. However, I find it lacks a bit of
background information. What is your patch series doing? Why would we
want to have three separate packages for Perl (perl, miniperl and
microperl)? We need some details to understand what you're proposing.
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] 13+ messages in thread
* [Buildroot] [PATCH 01/10] perl: new package
2012-08-21 11:19 ` [Buildroot] [PATCH 01/10] perl: new package Thomas Petazzoni
@ 2012-08-21 13:04 ` François Perrad
2012-08-22 14:10 ` François Perrad
0 siblings, 1 reply; 13+ messages in thread
From: François Perrad @ 2012-08-21 13:04 UTC (permalink / raw)
To: buildroot
2012/8/21 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
> Hello Fran?ois,
>
> Le Mon, 20 Aug 2012 10:55:00 +0200,
> Francois Perrad <fperrad@gmail.com> a ?crit :
>
>> ---
>> package/Config.in | 1 +
>> package/perl/Config.in | 16 +++++
>> package/perl/perl-Makefile-SH.patch | 28 ++++++++
>> package/perl/perl-configure-qemu.patch | 22 +++++++
>> package/perl/perl-fix-minitest.patch | 96 +++++++++++++++++++++++++++
>> package/perl/perl-make-ext.patch | 35 ++++++++++
>> package/perl/perl-mkppport.patch | 36 ++++++++++
>> package/perl/perl.mk | 112 ++++++++++++++++++++++++++++++++
>> 8 files changed, 346 insertions(+)
>> create mode 100644 package/perl/Config.in
>> create mode 100644 package/perl/perl-Makefile-SH.patch
>> create mode 100644 package/perl/perl-configure-qemu.patch
>> create mode 100644 package/perl/perl-fix-minitest.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
>
> Thanks for this work on Perl. However, I find it lacks a bit of
> background information. What is your patch series doing? Why would we
> want to have three separate packages for Perl (perl, miniperl and
> microperl)? We need some details to understand what you're proposing.
>
my goal is to run Dancer, a Perl web framework, see http://perldancer.org/
microperl is an existing package, but Perl community want to remove it,
because there is no use case for it. See
http://www.nntp.perl.org/group/perl.perl5.porters/2012/08/msg190678.html
I update (5.12.4 -> 5.14.2 -> 5.16.1) and try to improve this package.
but microperl does not allow to run Dancer
perl is obviously a full perl.
miniperl is a perl without dynamic module loader (like microperl), so
only pure Perl modules can be loaded (no XS module which contains
native shared library).
miniperl is usually used to bootstrap a full perl (so it is fully supported).
miniperl and microperl are close, the difference is in the
configuration step, microperl is zero-config, miniperl is configured
like perl.
after the removal of microperl, miniperl will be its replacement.
(miniperl & microperl allows to run a web app based on the old fashion
CGI module)
the build process of perl and miniperl are close, but there don't
share the same patches, it's the reason for 2 packages.
finally, cpanminus is a CPAN client which allows me to fetch/install
the module Dancer with its dependencies.
Fran?ois.
Note: please, don't apply the last patch 10/10 microperl: compatible
with cpanminus
> 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] 13+ messages in thread
* [Buildroot] [PATCH 01/10] perl: new package
2012-08-21 13:04 ` François Perrad
@ 2012-08-22 14:10 ` François Perrad
0 siblings, 0 replies; 13+ messages in thread
From: François Perrad @ 2012-08-22 14:10 UTC (permalink / raw)
To: buildroot
2012/8/21 Fran?ois Perrad <francois.perrad@gadz.org>:
> 2012/8/21 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
>> Hello Fran?ois,
>>
>> Le Mon, 20 Aug 2012 10:55:00 +0200,
>> Francois Perrad <fperrad@gmail.com> a ?crit :
>>
>>> ---
>>> package/Config.in | 1 +
>>> package/perl/Config.in | 16 +++++
>>> package/perl/perl-Makefile-SH.patch | 28 ++++++++
>>> package/perl/perl-configure-qemu.patch | 22 +++++++
>>> package/perl/perl-fix-minitest.patch | 96 +++++++++++++++++++++++++++
>>> package/perl/perl-make-ext.patch | 35 ++++++++++
>>> package/perl/perl-mkppport.patch | 36 ++++++++++
>>> package/perl/perl.mk | 112 ++++++++++++++++++++++++++++++++
>>> 8 files changed, 346 insertions(+)
>>> create mode 100644 package/perl/Config.in
>>> create mode 100644 package/perl/perl-Makefile-SH.patch
>>> create mode 100644 package/perl/perl-configure-qemu.patch
>>> create mode 100644 package/perl/perl-fix-minitest.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
>>
>> Thanks for this work on Perl. However, I find it lacks a bit of
>> background information. What is your patch series doing? Why would we
>> want to have three separate packages for Perl (perl, miniperl and
>> microperl)? We need some details to understand what you're proposing.
>>
>
> my goal is to run Dancer, a Perl web framework, see http://perldancer.org/
>
> microperl is an existing package, but Perl community want to remove it,
> because there is no use case for it. See
> http://www.nntp.perl.org/group/perl.perl5.porters/2012/08/msg190678.html
> I update (5.12.4 -> 5.14.2 -> 5.16.1) and try to improve this package.
> but microperl does not allow to run Dancer
>
> perl is obviously a full perl.
> miniperl is a perl without dynamic module loader (like microperl), so
> only pure Perl modules can be loaded (no XS module which contains
> native shared library).
> miniperl is usually used to bootstrap a full perl (so it is fully supported).
> miniperl and microperl are close, the difference is in the
> configuration step, microperl is zero-config, miniperl is configured
> like perl.
> after the removal of microperl, miniperl will be its replacement.
> (miniperl & microperl allows to run a web app based on the old fashion
> CGI module)
> the build process of perl and miniperl are close, but there don't
> share the same patches, it's the reason for 2 packages.
I refactor all my patches against perl distribution.
So, I could merge perl and miniperl packages.
I'll send a new patch serie.
Fran?ois
>
> finally, cpanminus is a CPAN client which allows me to fetch/install
> the module Dancer with its dependencies.
>
> Fran?ois.
>
> Note: please, don't apply the last patch 10/10 microperl: compatible
> with cpanminus
>
>> 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] 13+ messages in thread
end of thread, other threads:[~2012-08-22 14:10 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-20 8:55 [Buildroot] [PATCH 01/10] perl: new package Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 02/10] miniperl: " Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 03/10] cpanminus: " Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 04/10] microperl: build extensions at build time Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 05/10] microperl: bump version to 5.14.2 Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 06/10] microperl: improve configure step on 64bits platform Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 07/10] microperl: install more modules by default Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 08/10] microperl: bump version to 5.16.1 Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 09/10] microperl: remove host-microperl Francois Perrad
2012-08-20 8:55 ` [Buildroot] [PATCH 10/10] microperl: compatible with cpanminus Francois Perrad
2012-08-21 11:19 ` [Buildroot] [PATCH 01/10] perl: new package Thomas Petazzoni
2012-08-21 13:04 ` François Perrad
2012-08-22 14:10 ` 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.