perl: new package v4
PATCH 1/9 perl: new package v4
--- package/Config.in | 1 + package/perl/Config.in | 17 ++ package/perl/perl-EUMM.patch | 30 ++++ package/perl/perl-add-targets-remote-test.patch | 27 +++ package/perl/perl-configure-qemu.patch | 23 +++ package/perl/perl-fix-cpan-Encode.patch | 109 ++++++++++++ package/perl/perl-fix-cpan-IPC-SysV.patch | 17 ++ package/perl/perl-fix-test-base-term-t.patch | 17 ++ package/perl/perl-fix-test-pl.patch | 18 ++ package/perl/perl-make-ext.patch | 24 +++ package/perl/perl-mkppport.patch | 37 +++++ .../perl/perl-rewrite-tests-with-which-perl.patch | 175 ++++++++++++++++++++ package/perl/perl.mk | 112 +++++++++++++ 13 files changed, 607 insertions(+) create mode 100644 package/perl/Config.in create mode 100644 package/perl/perl-EUMM.patch create mode 100644 package/perl/perl-add-targets-remote-test.patch create mode 100644 package/perl/perl-configure-qemu.patch create mode 100644 package/perl/perl-fix-cpan-Encode.patch create mode 100644 package/perl/perl-fix-cpan-IPC-SysV.patch create mode 100644 package/perl/perl-fix-test-base-term-t.patch create mode 100644 package/perl/perl-fix-test-pl.patch create mode 100644 package/perl/perl-make-ext.patch create mode 100644 package/perl/perl-mkppport.patch create mode 100644 package/perl/perl-rewrite-tests-with-which-perl.patch create mode 100644 package/perl/perl.mk
package/Config.in +1 -0
@@ -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"
package/perl/Config.in new file +17 -0
@@ -0,0 +1,17 @@ +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/ + +if BR2_PACKAGE_PERL + +config BR2_PACKAGE_PERL_CUSTOM_CONFIGURE + string "configuration flags" + help + Allows to add some flags to Configure. + +endif
package/perl/perl-EUMM.patch new file +30 -0
@@ -0,0 +1,30 @@ +Add RUN + +Signed-off-by: Francois Perrad <[email protected]> + +Index: b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +=================================================================== +--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm ++++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +@@ -1924,7 +1925,7 @@ + foreach my $perl (qw(PERL FULLPERL ABSPERL)) { + my $run = $perl.'RUN'; + +- $self->{$run} = "\$($perl)"; ++ $self->{$run} = "\$(RUN) \$($perl)"; + + # Make sure perl can find itself before it's installed. + $self->{$run} .= q{ "-I$(PERL_LIB)" "-I$(PERL_ARCHLIB)"} +Index: b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm +=================================================================== +--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm ++++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm +@@ -350,7 +350,7 @@ + @Get_from_Config = + qw( + ar cc cccdlflags ccdlflags dlext dlsrc exe_ext full_ar ld +- lddlflags ldflags libc lib_ext obj_ext osname osvers ranlib ++ lddlflags ldflags libc lib_ext obj_ext osname osvers ranlib run + sitelibexp sitearchexp so + ); +
package/perl/perl-add-targets-remote-test.patch new file +27 -0
@@ -0,0 +1,27 @@ +Add targets rminitest/rtest for cross testing with qemu + +Signed-off-by: Francois Perrad <[email protected]> + +Index: b/Makefile.SH +=================================================================== +--- a/Makefile.SH ++++ b/Makefile.SH +@@ -1533,6 +1533,18 @@ + test_porting test-porting: test_prep + cd t && $(RUN_PERL) harness porting/*.t ../lib/diagnostics.t + ++ ++# Remote Test (via qemu) ++ ++rminitest: $(MINIPERL_EXE) ++ - cd t && (rm -f $(PERL_EXE); echo "#!/bin/sh\\n$(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 ++ ++rtest: $(PERL_EXE) ++ - cd t && (rm -f $(PERL_EXE); echo "#!/bin/sh\\n$(RUN) ../perl \"\$$@\"" >$(PERL_EXE); chmod +x $(PERL_EXE)) \ ++ && $(PERL_EXE) TEST */*.t </dev/tty ++ ++ + # Handy way to run perlbug -ok without having to install and run the + # installed perlbug. We don't re-run the tests here - we trust the user. + # Please *don't* use this unless all tests pass.
package/perl/perl-configure-qemu.patch new file +23 -0
@@ -0,0 +1,23 @@ +Add qemu support + +Signed-off-by: Francois Perrad <[email protected]> + +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 + ;;
package/perl/perl-fix-cpan-Encode.patch new file +109 -0
109 lines not on this page · raw message
package/perl/perl-fix-cpan-IPC-SysV.patch new file +17 -0
@@ -0,0 +1,17 @@ +Use PERLRUN instead of PERL + +Signed-off-by: Francois Perrad <[email protected]> + +Index: b/cpan/IPC-SysV/Makefile.PL +=================================================================== +--- a/cpan/IPC-SysV/Makefile.PL ++++ b/cpan/IPC-SysV/Makefile.PL +@@ -93,7 +93,7 @@ + @$(RM_F) const-c.inc const-xs.inc + + regen: +- $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) regen.pl ++ $(PERLRUN) regen.pl + + const-c.inc: lib/IPC/SysV.pm regen.pl + @$(MAKE) regen
package/perl/perl-fix-test-base-term-t.patch new file +17 -0
@@ -0,0 +1,17 @@ +not for upstream + +Signed-off-by: Francois Perrad <[email protected]> + +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
package/perl/perl-fix-test-pl.patch new file +18 -0
@@ -0,0 +1,18 @@ + +Signed-off-by: Francois Perrad <[email protected]> + +Index: b/t/test.pl +=================================================================== +--- a/t/test.pl ++++ b/t/test.pl +@@ -733,6 +733,10 @@ + + # For subcommands to use. + $ENV{PERLEXE} = $Perl; ++ ++ if ($Config::Config{run}) { ++ $Perl = './perl'; ++ } + } + return $Perl; + }
package/perl/perl-make-ext.patch new file +24 -0
@@ -0,0 +1,24 @@ +Don't use RUN with make (only for perl) + +Signed-off-by: Francois Perrad <[email protected]> + +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 "@run @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: $!";
package/perl/perl-mkppport.patch new file +37 -0
@@ -0,0 +1,37 @@ +Add RUN + +Signed-off-by: Francois Perrad <[email protected]> + +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__
package/perl/perl-rewrite-tests-with-which-perl.patch new file +175 -0
175 lines not on this page · raw message
package/perl/perl.mk new file +112 -0
112 lines not on this page · raw message
Signature · 1 line
1.7.9.5
PATCH 2/9 perl: add an option for miniperl
--- package/perl/Config.in | 6 ++ package/perl/perl-install-miniperl.patch | 129 ++++++++++++++++++++++++++++++ package/perl/perl.mk | 6 +- 3 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 package/perl/perl-install-miniperl.patch
package/perl/Config.in +6 -0
@@ -14,4 +14,10 @@ config BR2_PACKAGE_PERL_CUSTOM_CONFIGURE help Allows to add some flags to Configure. +config BR2_PACKAGE_PERL_ONLY_MINIPERL + bool "only miniperl" + help + Install only miniperl (without dynamic module loader) + Usually used to bootstrap a full Perl (@INC contains only .). + endif
package/perl/perl-install-miniperl.patch new file +129 -0
129 lines not on this page · raw message
package/perl/perl.mk +5 -1
@@ -16,6 +16,10 @@ ifeq ($(shell expr $(PERL_VERSION_MAJOR) % 2), 1) PERL_USE_DEVEL=-Dusedevel endif +ifdef BR2_PACKAGE_PERL_ONLY_MINIPERL + PERL_INSTALL_ONLY_MINIPERL = -miniperl +endif + PERL_ARCH=$(call qstrip,$(BR2_ARCH)) ifeq ($(PERL_ARCH),i686) PERL_ARCH=i386
@@ -79,7 +83,7 @@ endef define PERL_INSTALL_TARGET_CMDS $(MAKE) INSTALL_DEPENDENCE= \ - INSTALLFLAGS=-p \ + INSTALLFLAGS="-p $(PERL_INSTALL_ONLY_MINIPERL)"\ DESTDIR="$(TARGET_DIR)" \ -C $(@D) install.perl endef
Signature · 1 line
1.7.9.5
PATCH 3/9 cpanminus: new package v2
In reply to Francois Perrad--- package/Config.in | 5 +++++ package/cpanminus/Config.in | 23 +++++++++++++++++++ package/cpanminus/cpanminus-destdir.patch | 24 ++++++++++++++++++++ package/cpanminus/cpanminus.mk | 34 +++++++++++++++++++++++++++++ package/perl/perl-EUMM.patch | 19 +++++++++++++++- 5 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 package/cpanminus/Config.in create mode 100644 package/cpanminus/cpanminus-destdir.patch create mode 100644 package/cpanminus/cpanminus.mk
package/Config.in +5 -0
@@ -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"
package/cpanminus/Config.in new file +23 -0
@@ -0,0 +1,23 @@ +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. + +endif
package/cpanminus/cpanminus-destdir.patch new file +24 -0
@@ -0,0 +1,24 @@ + +Signed-off-by: Francois Perrad <[email protected]> + +Index: b/cpanm +=================================================================== +--- a/cpanm ++++ b/cpanm +@@ -399,6 +399,7 @@ + 'h|help' => sub { $self->{action} = 'show_help' }, + 'V|version' => sub { $self->{action} = 'show_version' }, + 'perl=s' => \$self->{perl}, ++ 'destdir=s' => \$self->{destdir}, + 'l|local-lib=s' => sub { $self->{local_lib} = $self->maybe_abs($_[1]) }, + 'L|local-lib-contained=s' => sub { + $self->{local_lib} = $self->maybe_abs($_[1]); +@@ -1636,7 +1637,7 @@ + $self->diag_progress("Building " . ($self->{notest} ? "" : "and testing ") . $distname); + $self->build([ $self->{make} ], $distname) && + $self->test([ $self->{make}, "test" ], $distname) && +- $self->install([ $self->{make}, "install" ], [ "UNINST=1" ], $depth) && ++ $self->install([ $self->{make}, "install", "DESTDIR=$self->{destdir}" ], [ "UNINST=1" ], $depth) && + $installed++; + } else { + my $why;
package/cpanminus/cpanminus.mk new file +34 -0
@@ -0,0 +1,34 @@ +############################################################# +# +# cpanminus +# +############################################################# + +CPANMINUS_VERSION = 1.5017 +CPANMINUS_SOURCE = miyagawa-cpanminus-$(CPANMINUS_VERSION)-0-g917a607.tar.gz +CPANMINUS_SITE = https://github.com/miyagawa/cpanminus/tarball/$(CPANMINUS_VERSION) +CPANMINUS_DEPENDENCIES = perl + +CPANMINUS_ARCH=$(call qstrip,$(BR2_ARCH)) +ifeq ($(CPANMINUS_ARCH),i686) + CPANMINUS_ARCH=i386 +endif +CPANMINUS_QEMU_USER_MODE=qemu-$(CPANMINUS_ARCH) -L $(STAGING_DIR) +CPANMINUS_RUN_PERL=$(CPANMINUS_QEMU_USER_MODE) $(STAGING_DIR)/usr/bin/perl +CPANMINUS_ARCHNAME=$(shell $(CPANMINUS_RUN_PERL) -MConfig -e "print Config->{archname}") +CPANMINUS_PERL5LIB=$(TARGET_DIR)/usr/lib/perl5/site_perl/$(PERL_VERSION)/$(CPANMINUS_ARCHNAME):$(TARGET_DIR)/usr/lib/perl5/site_perl/$(PERL_VERSION):$(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION)/$(CPANMINUS_ARCHNAME):$(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION) + +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) \ + $(CPANMINUS_RUN_PERL) $(@D)/cpanm \ + --perl=$(@D)/run_perl \ + --destdir="$(TARGET_DIR)" \ + --notest \ + --no-man-pages \ + $(call qstrip,$(BR2_PACKAGE_CPANMINUS_MODULES)) +endef + +$(eval $(generic-package))
package/perl/perl-EUMM.patch +18 -1
@@ -6,7 +6,24 @@ Index: b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm =================================================================== --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm -@@ -1924,7 +1925,7 @@ +@@ -1659,8 +1659,14 @@ + } else { + # we should also consider $ENV{PERL5LIB} here + my $old = $self->{PERL_LIB} || $self->{PERL_ARCHLIB} || $self->{PERL_INC}; +- $self->{PERL_LIB} ||= $Config{privlibexp}; +- $self->{PERL_ARCHLIB} ||= $Config{archlibexp}; ++ if ($Config{run}) { ++ $self->{PERL_LIB} ||= $inc_carp_dir; ++ $self->{PERL_ARCHLIB} ||= $inc_config_dir; ++ } ++ else { ++ $self->{PERL_LIB} ||= $Config{privlibexp}; ++ $self->{PERL_ARCHLIB} ||= $Config{archlibexp}; ++ } + $self->{PERL_INC} = $self->catdir("$self->{PERL_ARCHLIB}","CORE"); # wild guess for now + my $perl_h; + +@@ -1924,7 +1930,7 @@ foreach my $perl (qw(PERL FULLPERL ABSPERL)) { my $run = $perl.'RUN';
Signature · 1 line
1.7.9.5
PATCH 4/9 microperl: build extensions at build time
In reply to Francois Perradjust set PERL5LIB in build tree
optim: symlink only one time, before the loop
--- package/microperl/microperl.mk | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
package/microperl/microperl.mk +5 -4
@@ -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 \
Signature · 1 line
1.7.9.5
PATCH 5/9 microperl: bump version to 5.14.2
In reply to Francois Perradpatches have been merged in upstream
perl -V requires more modules
--- .../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
package/microperl/microperl-no-signal-handlers.patch deleted +0 -22
@@ -1,22 +0,0 @@ -Backport of http://perl5.git.perl.org/perl.git/commitdiff/01d65469392dfc0a?hp=a82b5f080d91ffe184d8ac4795ac71e72e612c2f - -Signed-off-by: Gustavo Zacarias <[email protected]> - -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); -
package/microperl/microperl-uudmap.patch deleted +0 -47
47 lines not on this page · raw message
package/microperl/microperl.mk +5 -5
@@ -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
Signature · 1 line
1.7.9.5
PATCH 6/9 microperl: improve configure step on 64bits platform
In reply to Francois Perraduse uconfig64.sh instead of uconfig.sh
--- package/microperl/microperl.mk | 74 ++++++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 33 deletions(-)
package/microperl/microperl.mk +41 -33
@@ -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
Signature · 1 line
1.7.9.5
PATCH 7/9 microperl: install more modules by default
In reply to Francois Perrad--- package/microperl/microperl.mk | 45 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-)
package/microperl/microperl.mk +44 -1
@@ -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
Signature · 1 line
1.7.9.5
PATCH 8/9 microperl: bump version to 5.16.1
In reply to Francois Perrad--- 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
package/microperl/microperl-fix-build.patch new file +76 -0
@@ -0,0 +1,76 @@ +Backport of http://perl5.git.perl.org/perl.git/commitdiff/d40eae8f110fb9900e82648a2c44710def9f117d + +Signed-off-by: Francois Perrad <[email protected]> + +From: Nicholas Clark <[email protected]> +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 +
package/microperl/microperl.mk +4 -4
@@ -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)
Signature · 1 line
1.7.9.5
PATCH 9/9 microperl: remove host-microperl
In reply to Francois Perrad--- package/microperl/microperl.mk | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-)
package/microperl/microperl.mk +4 -20
@@ -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))
Signature · 1 line
1.7.9.5
PATCH 1/9 perl: new package v4
In reply to Francois PerradHello,
Thanks for all this work.
Wouldn't it be possible to make the microperl thing part of the perl package, with a sub-option that allows to decide between the full-blown perl variant, or the limited microperl variant? I would prefer that a lot over a duplicated perl package as you're proposing now, if possible of course.
Thanks!
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 1/9 perl: new package v4
2012/8/27 Thomas Petazzoni <[email protected]>:
Quoted 10 lines
Hello,
Thanks for all this work.
Wouldn't it be possible to make the microperl thing part of the perl package, with a sub-option that allows to decide between the full-blown perl variant, or the limited microperl variant? I would prefer that a lot over a duplicated perl package as you're proposing now, if possible of course.
miniperl is built during the full perl build, it is just a specific installation.
There are no common step (configure, build of exe, build of modules, install) between microperl and perl.
So, technically a merge of these packages is not easy.
I've updated microperl to the latest stable release. But I think that microperl is an useless toy which will be removed soon by the Perl community.
I prefer spend my time with the full perl and the CPAN modules. There still a lot of work with Perl community for put my patches in the upstream.
With this today version, cpanminus really cross-compiles the modules from CPAN. The Dancer web framework (my current goal) requires 22 modules from CPAN. The CPAN contains more than 23000 modules. This is the challenge.
? CPAN is the language, Perl is just its syntax ? - Audrey Tang.
Fran?ois
Quoted 12 lines
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
PATCH 1/9 perl: new package v4
Le Mon, 27 Aug 2012 23:05:53 +0200,
Fran?ois Perrad <[email protected]> a ?crit :
Quoted 5 lines
miniperl is built during the full perl build, it is just a specific installation.
There are no common step (configure, build of exe, build of modules, install) between microperl and perl.
So, technically a merge of these packages is not easy.
Ok.
Quoted 3 lines
I've updated microperl to the latest stable release. But I think that microperl is an useless toy which will be removed soon by the Perl community.
As long as the long term intention is to get rid of microperl, I'm fine. Should we mark it "depends on BR2_DEPRECATED" ?
Quoted 8 lines
I prefer spend my time with the full perl and the CPAN modules. There still a lot of work with Perl community for put my patches in the upstream.
With this today version, cpanminus really cross-compiles the modules from CPAN. The Dancer web framework (my current goal) requires 22 modules from CPAN. The CPAN contains more than 23000 modules. This is the challenge.
? CPAN is the language, Perl is just its syntax ? - Audrey Tang.
:-)
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
2012/8/27 Thomas Petazzoni <[email protected]>:
Quoted 9 lines
Le Mon, 27 Aug 2012 23:05:53 +0200,
Fran?ois Perrad <[email protected]> a ?crit :Quoted 5 lines
miniperl is built during the full perl build, it is just a specific installation.
There are no common step (configure, build of exe, build of modules, install) between microperl and perl.
So, technically a merge of these packages is not easy.
Quoted 9 lines
Ok.
Quoted 3 lines
I've updated microperl to the latest stable release. But I think that microperl is an useless toy which will be removed soon by the Perl community.
As long as the long term intention is to get rid of microperl, I'm fine. Should we mark it "depends on
BR2_DEPRECATED" ?
What makes sense.
Fran?ois
Quoted 17 lines
Quoted 8 lines
I prefer spend my time with the full perl and the CPAN modules. There still a lot of work with Perl community for put my patches in the upstream.
With this today version, cpanminus really cross-compiles the modules from CPAN. The Dancer web framework (my current goal) requires 22 modules from CPAN. The CPAN contains more than 23000 modules. This is the challenge.
? CPAN is the language, Perl is just its syntax ? - Audrey Tang.:-)
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com