Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/9] perl: new package v4
@ 2012-08-27 15:28 Francois Perrad
  2012-08-27 15:28 ` [Buildroot] [PATCH 2/9] perl: add an option for miniperl Francois Perrad
                   ` (8 more replies)
  0 siblings, 9 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-27 15:28 UTC (permalink / raw)
  To: buildroot

---
 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

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..286b09e
--- /dev/null
+++ b/package/perl/Config.in
@@ -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
diff --git a/package/perl/perl-EUMM.patch b/package/perl/perl-EUMM.patch
new file mode 100644
index 0000000..4134f8a
--- /dev/null
+++ b/package/perl/perl-EUMM.patch
@@ -0,0 +1,30 @@
+Add RUN
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+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
+           );
+ 
diff --git a/package/perl/perl-add-targets-remote-test.patch b/package/perl/perl-add-targets-remote-test.patch
new file mode 100644
index 0000000..455375c
--- /dev/null
+++ b/package/perl/perl-add-targets-remote-test.patch
@@ -0,0 +1,27 @@
+Add targets rminitest/rtest for cross testing with qemu
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+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.
diff --git a/package/perl/perl-configure-qemu.patch b/package/perl/perl-configure-qemu.patch
new file mode 100644
index 0000000..9d75d8e
--- /dev/null
+++ b/package/perl/perl-configure-qemu.patch
@@ -0,0 +1,23 @@
+Add qemu support
+
+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-cpan-Encode.patch b/package/perl/perl-fix-cpan-Encode.patch
new file mode 100644
index 0000000..3a1f4e6
--- /dev/null
+++ b/package/perl/perl-fix-cpan-Encode.patch
@@ -0,0 +1,109 @@
+Use PERLRUN instead of PERL
+note: $plib could be simplified
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/cpan/Encode/Byte/Makefile.PL
+===================================================================
+--- a/cpan/Encode/Byte/Makefile.PL
++++ b/cpan/Encode/Byte/Makefile.PL
+@@ -180,7 +180,7 @@
+     $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform;
+     my $ucopts = '-"Q" -"O"';
+     $str .=  
+-        qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
++        qq{\n\t\$(PERLRUN) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
+     open (FILELIST, ">$table.fnm")
+         || die "Could not open $table.fnm: $!";
+     foreach my $file (@{$tables{$table}})
+Index: b/cpan/Encode/CN/Makefile.PL
+===================================================================
+--- a/cpan/Encode/CN/Makefile.PL
++++ b/cpan/Encode/CN/Makefile.PL
+@@ -156,7 +156,7 @@
+     $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform;
+     my $ucopts = '-"Q"';
+     $str .=  
+-        qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
++        qq{\n\t\$(PERLRUN) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
+     open (FILELIST, ">$table.fnm")
+         || die "Could not open $table.fnm: $!";
+     foreach my $file (@{$tables{$table}})
+Index: b/cpan/Encode/EBCDIC/Makefile.PL
+===================================================================
+--- a/cpan/Encode/EBCDIC/Makefile.PL
++++ b/cpan/Encode/EBCDIC/Makefile.PL
+@@ -137,7 +137,7 @@
+     $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform;
+     my $ucopts = '-"Q" -"O"';
+     $str .=  
+-        qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
++        qq{\n\t\$(PERLRUN) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
+     open (FILELIST, ">$table.fnm")
+         || die "Could not open $table.fnm: $!";
+     foreach my $file (@{$tables{$table}})
+Index: b/cpan/Encode/JP/Makefile.PL
+===================================================================
+--- a/cpan/Encode/JP/Makefile.PL
++++ b/cpan/Encode/JP/Makefile.PL
+@@ -156,7 +156,7 @@
+     $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform;
+     my $ucopts = '-"Q"';
+     $str .=  
+-        qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
++        qq{\n\t\$(PERLRUN) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
+     open (FILELIST, ">$table.fnm")
+         || die "Could not open $table.fnm: $!";
+     foreach my $file (@{$tables{$table}})
+Index: b/cpan/Encode/KR/Makefile.PL
+===================================================================
+--- a/cpan/Encode/KR/Makefile.PL
++++ b/cpan/Encode/KR/Makefile.PL
+@@ -154,7 +154,7 @@
+     $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform;
+     my $ucopts = '-"Q"';
+     $str .=  
+-        qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
++        qq{\n\t\$(PERLRUN) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
+     open (FILELIST, ">$table.fnm")
+         || die "Could not open $table.fnm: $!";
+     foreach my $file (@{$tables{$table}})
+Index: b/cpan/Encode/Makefile.PL
+===================================================================
+--- a/cpan/Encode/Makefile.PL
++++ b/cpan/Encode/Makefile.PL
+@@ -119,7 +119,7 @@
+     $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform;
+     my $ucopts = '-"Q" -"O"';
+     $str .=
+-        qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
++        qq{\n\t\$(PERLRUN) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
+     open (FILELIST, ">$table.fnm")
+         || die "Could not open $table.fnm: $!";
+     foreach my $file (@{$tables{$table}})
+Index: b/cpan/Encode/Symbol/Makefile.PL
+===================================================================
+--- a/cpan/Encode/Symbol/Makefile.PL
++++ b/cpan/Encode/Symbol/Makefile.PL
+@@ -142,7 +142,7 @@
+     $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform;
+     my $ucopts = '-"Q" -"O"';
+     $str .=  
+-        qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
++        qq{\n\t\$(PERLRUN) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
+     open (FILELIST, ">$table.fnm")
+         || die "Could not open $table.fnm: $!";
+     foreach my $file (@{$tables{$table}})
+Index: b/cpan/Encode/TW/Makefile.PL
+===================================================================
+--- a/cpan/Encode/TW/Makefile.PL
++++ b/cpan/Encode/TW/Makefile.PL
+@@ -152,7 +152,7 @@
+     $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform;
+     my $ucopts = '-"Q"';
+     $str .=  
+-        qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
++        qq{\n\t\$(PERLRUN) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
+     open (FILELIST, ">$table.fnm")
+         || die "Could not open $table.fnm: $!";
+     foreach my $file (@{$tables{$table}})
diff --git a/package/perl/perl-fix-cpan-IPC-SysV.patch b/package/perl/perl-fix-cpan-IPC-SysV.patch
new file mode 100644
index 0000000..911c1a1
--- /dev/null
+++ b/package/perl/perl-fix-cpan-IPC-SysV.patch
@@ -0,0 +1,17 @@
+Use PERLRUN instead of PERL
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+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
diff --git a/package/perl/perl-fix-test-base-term-t.patch b/package/perl/perl-fix-test-base-term-t.patch
new file mode 100644
index 0000000..724c5d0
--- /dev/null
+++ b/package/perl/perl-fix-test-base-term-t.patch
@@ -0,0 +1,17 @@
+not for upstream
+
+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
diff --git a/package/perl/perl-fix-test-pl.patch b/package/perl/perl-fix-test-pl.patch
new file mode 100644
index 0000000..202c6a6
--- /dev/null
+++ b/package/perl/perl-fix-test-pl.patch
@@ -0,0 +1,18 @@
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+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;
+ }
diff --git a/package/perl/perl-make-ext.patch b/package/perl/perl-make-ext.patch
new file mode 100644
index 0000000..5596298
--- /dev/null
+++ b/package/perl/perl-make-ext.patch
@@ -0,0 +1,24 @@
+Don't use RUN with make (only for perl)
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/make_ext.pl
+===================================================================
+--- a/make_ext.pl
++++ b/make_ext.pl
+@@ -458,11 +458,13 @@
+ 	# Give makefile an opportunity to rewrite itself.
+ 	# reassure users that life goes on...
+ 	my @args = ('config', @$pass_through);
+-	system(@run, @make, @args) and print "@run @make @args failed, continuing anyway...\n";
++#	system(@run, @make, @args) and print "@run @make @args failed, continuing anyway...\n";
++	system(@make, @args) and print "@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: $!";
diff --git a/package/perl/perl-mkppport.patch b/package/perl/perl-mkppport.patch
new file mode 100644
index 0000000..97f27a2
--- /dev/null
+++ b/package/perl/perl-mkppport.patch
@@ -0,0 +1,37 @@
+Add RUN
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/mkppport
+===================================================================
+--- a/mkppport
++++ b/mkppport
+@@ -1,6 +1,7 @@
+ use strict;
+ use warnings;
+ 
++use Config;
+ use Getopt::Long;
+ use File::Spec;
+ use File::Compare qw( compare );
+@@ -136,14 +137,18 @@
+ #----------------------------------------------
+ sub run
+ {
++  my @run = $Config{run};
++  @run = () if not defined $run[0] or $run[0] eq '';
+   my @args = ("-I" . File::Spec->catdir((File::Spec->updir) x 2, 'lib'), @_);
+   my $run = $perl =~ m/\s/ ? qq("$perl") : $perl;
+   for (@args) {
+     $_ = qq("$_") if $^O eq 'VMS' && /^[^"]/;
+     $run .= " $_";
+   }
+-  print "running $run\n";
+-  system $run and die "$run failed: $?\n";
++#  print "running $run\n";
++#  system $run and die "$run failed: $?\n";
++  print "running ", join(' ', @run, $run), "\n";
++  system join(' ', @run, $run) and die "@run $run failed: $?\n";
+ }
+ 
+ __END__
diff --git a/package/perl/perl-rewrite-tests-with-which-perl.patch b/package/perl/perl-rewrite-tests-with-which-perl.patch
new file mode 100644
index 0000000..a67522e
--- /dev/null
+++ b/package/perl/perl-rewrite-tests-with-which-perl.patch
@@ -0,0 +1,175 @@
+Allows to run tests via qemu user mode
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/t/io/dup.t
+===================================================================
+--- a/t/io/dup.t
++++ b/t/io/dup.t
+@@ -9,6 +9,8 @@
+ use Config;
+ no warnings 'once';
+ 
++my $Perl = which_perl();
++
+ my $test = 1;
+ my $tests_needing_perlio = 17;
+ plan(12 + $tests_needing_perlio);
+@@ -29,7 +31,7 @@
+ print STDERR "ok 3\n";
+ 
+ # Since some systems don't have echo, we use Perl.
+-$echo = qq{$^X -le "print q(ok %d)"};
++$echo = qq{$Perl -le "print q(ok %d)"};
+ 
+ $cmd = sprintf $echo, 4;
+ print `$cmd`;
+Index: b/t/io/fflush.t
+===================================================================
+--- a/t/io/fflush.t
++++ b/t/io/fflush.t
+@@ -14,6 +14,8 @@
+ use warnings;
+ use strict;
+ 
++my $Perl = which_perl();
++
+ # This attempts to mirror the #ifdef forest found in perl.h so that we
+ # know when to run these tests.  If that forest ever changes, change
+ # it here too or expect test gratuitous test failures.
+@@ -28,7 +30,7 @@
+ 
+ plan(tests => 7);
+ 
+-my $runperl = $^X =~ m/\s/ ? qq{"$^X"} : $^X;
++my $runperl = $Perl =~ m/\s/ ? qq{"$Perl"} : $Perl;
+ $runperl .= qq{ "-I../lib"};
+ 
+ sub file_eq {
+Index: b/t/lib/1_compile.t
+===================================================================
+--- a/t/lib/1_compile.t
++++ b/t/lib/1_compile.t
+@@ -7,12 +7,15 @@
+ BEGIN {
+     chdir 't';
+     @INC = '../lib';
++    require './test.pl';
+ }
+ 
+ use strict;
+ use warnings;
+ use File::Spec::Functions;
+ 
++my $Perl = which_perl();
++
+ # Okay, this is the list.
+ 
+ my @Core_Modules = grep /\S/, <DATA>;
+@@ -59,7 +62,7 @@
+     my $compmod = catfile(curdir(), 'lib', 'compmod.pl');
+     my $lib     = '-I' . catdir(updir(), 'lib');
+ 
+-    my $out = scalar `$^X $lib $compmod $module`;
++    my $out = scalar `$Perl $lib $compmod $module`;
+     print "# $out";
+     return $out =~ /^ok/;
+ }
+Index: b/t/op/die_exit.t
+===================================================================
+--- a/t/op/die_exit.t
++++ b/t/op/die_exit.t
+@@ -15,6 +15,8 @@
+ 
+ skip_all('broken on MPE/iX') if $^O eq 'mpeix';
+ 
++my $Perl = which_perl();
++
+ $| = 1;
+ 
+ my @tests = (
+@@ -66,10 +68,10 @@
+     my($bang, $query, $code) = @$test;
+     $code ||= 'die;';
+     if ($^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'VMS') {
+-        system(qq{$^X -e "\$! = $bang; \$? = $query; $code"});
++        system(qq{$Perl -e "\$! = $bang; \$? = $query; $code"});
+     }
+     else {
+-        system(qq{$^X -e '\$! = $bang; \$? = $query; $code'});
++        system(qq{$Perl -e '\$! = $bang; \$? = $query; $code'});
+     }
+     my $exit = $?;
+ 
+Index: b/t/op/lex_assign.t
+===================================================================
+--- a/t/op/lex_assign.t
++++ b/t/op/lex_assign.t
+@@ -3,12 +3,15 @@
+ BEGIN {
+     chdir 't' if -d 't';
+     @INC = '../lib';
++    require './test.pl';
+ }
+ 
++my $Perl = which_perl();
++
+ $| = 1;
+ umask 0;
+ $xref = \ "";
+-$runme = $^X;
++$runme = $Perl;
+ @a = (1..5);
+ %h = (1..6);
+ $aref = \@a;
+Index: b/t/op/srand.t
+===================================================================
+--- a/t/op/srand.t
++++ b/t/op/srand.t
+@@ -12,6 +12,8 @@
+ require "test.pl";
+ plan(tests => 9);
+ 
++my $Perl = which_perl();
++
+ # Generate a load of random numbers.
+ # int() avoids possible floating point error.
+ sub mk_rand { map int rand 10000, 1..100; }
+@@ -52,9 +54,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
+@@ -1,4 +1,13 @@
+ #!perl -w
++
++BEGIN {
++    chdir 't' if -d 't';
++    @INC = qw(. ../lib);
++    require './test.pl';
++}
++
++my $Perl = which_perl();
++
+ print "1..5\n";
+ 
+ my $file = "Run_switchF1.pl";
+@@ -26,6 +35,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: $!";
diff --git a/package/perl/perl.mk b/package/perl/perl.mk
new file mode 100644
index 0000000..813d8bf
--- /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=$(STAGING_DIR) \
+		-Dtargethost=dummy \
+		-Dar="$(TARGET_AR)" \
+		-Dcc="$(TARGET_CC)" \
+		-Dcpp="$(TARGET_CC)" \
+		-Dld="$(TARGET_LD)" \
+		-Dnm="$(TARGET_NM)" \
+		-Dranlib="$(TARGET_RANLIB)" \
+		-Dccflags="$(TARGET_CFLAGS)" \
+		-Dldflags="$(TARGET_LDFLAGS) -l gcc_s" \
+		-Dlddlflags="-shared" \
+		-Dlibc=$(TARGET_HOST)/usr/$(GNU_TARGET_NAME)/sysroot/lib/libc.so \
+		-Duseshrplib \
+		-Dprefix=/usr \
+		-Uoptimize \
+		$(PERL_USE_DEVEL) \
+		$(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
+	$(INSTALL) -m 755 $(@D)/libperl.so $(STAGING_DIR)/usr/lib/libperl.so
+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)
+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 2/9] perl: add an option for miniperl
  2012-08-27 15:28 [Buildroot] [PATCH 1/9] perl: new package v4 Francois Perrad
@ 2012-08-27 15:28 ` Francois Perrad
  2012-08-27 15:28 ` [Buildroot] [PATCH 3/9] cpanminus: new package v2 Francois Perrad
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-27 15:28 UTC (permalink / raw)
  To: buildroot

---
 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

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

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

* [Buildroot] [PATCH 3/9] cpanminus: new package v2
  2012-08-27 15:28 [Buildroot] [PATCH 1/9] perl: new package v4 Francois Perrad
  2012-08-27 15:28 ` [Buildroot] [PATCH 2/9] perl: add an option for miniperl Francois Perrad
@ 2012-08-27 15:28 ` Francois Perrad
  2012-08-27 15:28 ` [Buildroot] [PATCH 4/9] microperl: build extensions at build time Francois Perrad
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-27 15:28 UTC (permalink / raw)
  To: buildroot

---
 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

diff --git a/package/Config.in b/package/Config.in
index 00a79ab..48d25fc 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -263,6 +263,11 @@ source "package/xavante/Config.in"
 endmenu
 endif
 source "package/perl/Config.in"
+if BR2_PACKAGE_PERL
+menu "Perl libraries/modules"
+source "package/cpanminus/Config.in"
+endmenu
+endif
 source "package/microperl/Config.in"
 source "package/php/Config.in"
 source "package/python/Config.in"
diff --git a/package/cpanminus/Config.in b/package/cpanminus/Config.in
new file mode 100644
index 0000000..7c41c4d
--- /dev/null
+++ b/package/cpanminus/Config.in
@@ -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
diff --git a/package/cpanminus/cpanminus-destdir.patch b/package/cpanminus/cpanminus-destdir.patch
new file mode 100644
index 0000000..c1c61ad
--- /dev/null
+++ b/package/cpanminus/cpanminus-destdir.patch
@@ -0,0 +1,24 @@
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+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;
diff --git a/package/cpanminus/cpanminus.mk b/package/cpanminus/cpanminus.mk
new file mode 100644
index 0000000..ce2a09b
--- /dev/null
+++ b/package/cpanminus/cpanminus.mk
@@ -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))
diff --git a/package/perl/perl-EUMM.patch b/package/perl/perl-EUMM.patch
index 4134f8a..689c2c9 100644
--- a/package/perl/perl-EUMM.patch
+++ b/package/perl/perl-EUMM.patch
@@ -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';
  
-- 
1.7.9.5

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

* [Buildroot] [PATCH 4/9] microperl: build extensions at build time
  2012-08-27 15:28 [Buildroot] [PATCH 1/9] perl: new package v4 Francois Perrad
  2012-08-27 15:28 ` [Buildroot] [PATCH 2/9] perl: add an option for miniperl Francois Perrad
  2012-08-27 15:28 ` [Buildroot] [PATCH 3/9] cpanminus: new package v2 Francois Perrad
@ 2012-08-27 15:28 ` Francois Perrad
  2012-08-27 15:28 ` [Buildroot] [PATCH 5/9] microperl: bump version to 5.14.2 Francois Perrad
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-27 15:28 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 5/9] microperl: bump version to 5.14.2
  2012-08-27 15:28 [Buildroot] [PATCH 1/9] perl: new package v4 Francois Perrad
                   ` (2 preceding siblings ...)
  2012-08-27 15:28 ` [Buildroot] [PATCH 4/9] microperl: build extensions at build time Francois Perrad
@ 2012-08-27 15:28 ` Francois Perrad
  2012-08-27 15:28 ` [Buildroot] [PATCH 6/9] microperl: improve configure step on 64bits platform Francois Perrad
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-27 15:28 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 6/9] microperl: improve configure step on 64bits platform
  2012-08-27 15:28 [Buildroot] [PATCH 1/9] perl: new package v4 Francois Perrad
                   ` (3 preceding siblings ...)
  2012-08-27 15:28 ` [Buildroot] [PATCH 5/9] microperl: bump version to 5.14.2 Francois Perrad
@ 2012-08-27 15:28 ` Francois Perrad
  2012-08-27 15:28 ` [Buildroot] [PATCH 7/9] microperl: install more modules by default Francois Perrad
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-27 15:28 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 7/9] microperl: install more modules by default
  2012-08-27 15:28 [Buildroot] [PATCH 1/9] perl: new package v4 Francois Perrad
                   ` (4 preceding siblings ...)
  2012-08-27 15:28 ` [Buildroot] [PATCH 6/9] microperl: improve configure step on 64bits platform Francois Perrad
@ 2012-08-27 15:28 ` Francois Perrad
  2012-08-27 15:28 ` [Buildroot] [PATCH 8/9] microperl: bump version to 5.16.1 Francois Perrad
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-27 15:28 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 8/9] microperl: bump version to 5.16.1
  2012-08-27 15:28 [Buildroot] [PATCH 1/9] perl: new package v4 Francois Perrad
                   ` (5 preceding siblings ...)
  2012-08-27 15:28 ` [Buildroot] [PATCH 7/9] microperl: install more modules by default Francois Perrad
@ 2012-08-27 15:28 ` Francois Perrad
  2012-08-27 15:28 ` [Buildroot] [PATCH 9/9] microperl: remove host-microperl Francois Perrad
  2012-08-27 19:10 ` [Buildroot] [PATCH 1/9] perl: new package v4 Thomas Petazzoni
  8 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-27 15:28 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 9/9] microperl: remove host-microperl
  2012-08-27 15:28 [Buildroot] [PATCH 1/9] perl: new package v4 Francois Perrad
                   ` (6 preceding siblings ...)
  2012-08-27 15:28 ` [Buildroot] [PATCH 8/9] microperl: bump version to 5.16.1 Francois Perrad
@ 2012-08-27 15:28 ` Francois Perrad
  2012-08-27 19:10 ` [Buildroot] [PATCH 1/9] perl: new package v4 Thomas Petazzoni
  8 siblings, 0 replies; 13+ messages in thread
From: Francois Perrad @ 2012-08-27 15:28 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 1/9] perl: new package v4
  2012-08-27 15:28 [Buildroot] [PATCH 1/9] perl: new package v4 Francois Perrad
                   ` (7 preceding siblings ...)
  2012-08-27 15:28 ` [Buildroot] [PATCH 9/9] microperl: remove host-microperl Francois Perrad
@ 2012-08-27 19:10 ` Thomas Petazzoni
  2012-08-27 21:05   ` François Perrad
  8 siblings, 1 reply; 13+ messages in thread
From: Thomas Petazzoni @ 2012-08-27 19:10 UTC (permalink / raw)
  To: buildroot

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.

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 1/9] perl: new package v4
  2012-08-27 19:10 ` [Buildroot] [PATCH 1/9] perl: new package v4 Thomas Petazzoni
@ 2012-08-27 21:05   ` François Perrad
  2012-08-27 21:54     ` Thomas Petazzoni
  0 siblings, 1 reply; 13+ messages in thread
From: François Perrad @ 2012-08-27 21:05 UTC (permalink / raw)
  To: buildroot

2012/8/27 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
> 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

> 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 1/9] perl: new package v4
  2012-08-27 21:05   ` François Perrad
@ 2012-08-27 21:54     ` Thomas Petazzoni
  2012-08-28 12:06       ` [Buildroot] [UNSURE]Re: " François Perrad
  0 siblings, 1 reply; 13+ messages in thread
From: Thomas Petazzoni @ 2012-08-27 21:54 UTC (permalink / raw)
  To: buildroot

Le Mon, 27 Aug 2012 23:05:53 +0200,
Fran?ois Perrad <francois.perrad@gadz.org> a ?crit :

> 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.

> 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" ?

> 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

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

* [Buildroot] [UNSURE]Re:  [PATCH 1/9] perl: new package v4
  2012-08-27 21:54     ` Thomas Petazzoni
@ 2012-08-28 12:06       ` François Perrad
  0 siblings, 0 replies; 13+ messages in thread
From: François Perrad @ 2012-08-28 12:06 UTC (permalink / raw)
  To: buildroot

2012/8/27 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
> Le Mon, 27 Aug 2012 23:05:53 +0200,
> Fran?ois Perrad <francois.perrad@gadz.org> a ?crit :
>
>> 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.
>
>> 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

>> 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

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

end of thread, other threads:[~2012-08-28 12:06 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-27 15:28 [Buildroot] [PATCH 1/9] perl: new package v4 Francois Perrad
2012-08-27 15:28 ` [Buildroot] [PATCH 2/9] perl: add an option for miniperl Francois Perrad
2012-08-27 15:28 ` [Buildroot] [PATCH 3/9] cpanminus: new package v2 Francois Perrad
2012-08-27 15:28 ` [Buildroot] [PATCH 4/9] microperl: build extensions at build time Francois Perrad
2012-08-27 15:28 ` [Buildroot] [PATCH 5/9] microperl: bump version to 5.14.2 Francois Perrad
2012-08-27 15:28 ` [Buildroot] [PATCH 6/9] microperl: improve configure step on 64bits platform Francois Perrad
2012-08-27 15:28 ` [Buildroot] [PATCH 7/9] microperl: install more modules by default Francois Perrad
2012-08-27 15:28 ` [Buildroot] [PATCH 8/9] microperl: bump version to 5.16.1 Francois Perrad
2012-08-27 15:28 ` [Buildroot] [PATCH 9/9] microperl: remove host-microperl Francois Perrad
2012-08-27 19:10 ` [Buildroot] [PATCH 1/9] perl: new package v4 Thomas Petazzoni
2012-08-27 21:05   ` François Perrad
2012-08-27 21:54     ` Thomas Petazzoni
2012-08-28 12:06       ` [Buildroot] [UNSURE]Re: " François Perrad

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