1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-31 00:39:46 +00:00

Major layout change to the packages directory

Having one monolithic packages directory makes it hard to find things
and is generally overwhelming. This commit splits it into several
logical sections roughly based on function, recipes.txt gives more
information about the classifications used.

The opportunity is also used to switch from "packages" to "recipes"
as used in OpenEmbedded as the term "packages" can be confusing to
people and has many different meanings.

Not all recipes have been classified yet, this is just a first pass
at separating things out. Some packages are moved to meta-extras as
they're no longer actively used or maintained.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
Richard Purdie
2010-08-27 15:14:24 +01:00
parent da49de6885
commit 29d6678fd5
2534 changed files with 19 additions and 206 deletions
@@ -0,0 +1,11 @@
--- perl-5.8.7/Configure.orig 2006-01-30 10:50:04.000000000 +0000
+++ perl-5.8.7/Configure 2006-01-30 10:51:18.000000000 +0000
@@ -1240,7 +1240,7 @@
loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
: general looking path for locating libraries
-glibpth="/lib /usr/lib $xlibpth"
+glibpth="/lib /usr/lib /lib64 /usr/lib64 $xlibpth"
glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
test -f /shlib/libc.so && glibpth="/shlib $glibpth"
@@ -0,0 +1,42 @@
This removes all the logic that perl uses to locate an appropriate
errno.h for the target. Instead we simple create a file that does
#include "errno.h"
and use that as the file to parse. This is needed when using an
external toolchain since perl will search in ${STAGING_INCDIR} for
errno.h (when using gcc) and that isn't where it's located - its
wherever the external toolchain keeps it's headers.
--- perl-5.8.8/ext/Errno/Errno_pm.PL 2007/04/30 14:10:10 1.1
+++ perl-5.8.8/ext/Errno/Errno_pm.PL 2007/04/30 14:21:35
@@ -11,8 +11,18 @@
open OUT, ">Errno.pm" or die "Cannot open Errno.pm: $!";
select OUT;
my $file;
-my @files = get_files();
-if ($Config{gccversion} ne '' && $^O eq 'MSWin32') {
+#my @files = get_files();
+my @files = ("errno.h");
+
+if (1) {
+ open INCS, '>includes.c' or
+ die "Cannot open includes.c";
+ print INCS qq[#include "errno.h"\n];
+ close INCS;
+ process_file('includes.c');
+ unlink 'includes.c';
+}
+elsif ($Config{gccversion} ne '' && $^O eq 'MSWin32') {
# MinGW complains "warning: #pragma system_header ignored outside include
# file" if the header files are processed individually, so include them
# all in .c file and process that instead.
@@ -44,7 +54,7 @@
chomp($file = `cygpath -w "$file"`);
}
- return unless defined $file and -f $file;
+# return unless defined $file and -f $file;
# warn "Processing $file\n";
local *FH;
@@ -0,0 +1,11 @@
--- Makefile.SH.orig 2003-07-10 14:59:04.000000000 -0700
+++ Makefile.SH 2003-07-10 15:14:08.000000000 -0700
@@ -494,7 +494,7 @@
case "$useshrplib" in
true)
$spitshell >>Makefile <<'!NO!SUBS!'
- $(LD) -o $@ $(SHRPLDFLAGS) perl$(OBJ_EXT) $(obj) $(libs)
+ $(LD) -o $@ $(SHRPLDFLAGS) perl$(OBJ_EXT) $(obj) $(libs) -soname libperl.so.5
!NO!SUBS!
case "$osname" in
aix)
@@ -0,0 +1,13 @@
See http://bugs.openembedded.net/show_bug.cgi?id=2168
Fix for gcc 4.2
--- perl-5.8.8/makedepend.SH.ark 2006-11-01 16:32:05.000000000 +0100
+++ perl-5.8.8/makedepend.SH 2006-11-01 16:32:15.000000000 +0100
@@ -167,6 +167,7 @@
-e '/^#.*<builtin>/d' \
-e '/^#.*<built-in>/d' \
-e '/^#.*<command line>/d' \
+ -e '/^#.*<command-line>/d' \
-e '/^#.*"-"/d' \
-e '/: file path prefix .* never used$/d' \
-e 's#\.[0-9][0-9]*\.c#'"$file.c#" \
@@ -0,0 +1,7 @@
SECTION = "libs"
require libxml-parser-perl_${PV}.bb
inherit native
DEPENDS = "expat-native perl-native"
@@ -0,0 +1,21 @@
SECTION = "libs"
LICENSE = "Artistic"
DEPENDS += "expat expat-native"
SRC_URI = "http://www.cpan.org/modules/by-module/XML/XML-Parser-${PV}.tar.gz"
S = "${WORKDIR}/XML-Parser-${PV}"
EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
inherit cpan
do_compile() {
export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
cpan_do_compile
}
FILES_${PN} = "${PERLLIBDIRS}/auto/XML/Parser/Expat/* \
${PERLLIBDIRS}/XML"
@@ -0,0 +1,7 @@
SECTION = "libs"
inherit native
require libxml-simple-perl_${PV}.bb
DEPENDS = "libxml-parser-perl-native perl-native"
@@ -0,0 +1,10 @@
SECTION = "libs"
LICENSE = "Artistic"
DEPENDS += "libxml-parser-perl"
PR = "r0"
SRC_URI = "http://www.cpan.org/modules/by-module/XML/XML-Simple-${PV}.tar.gz"
S = "${WORKDIR}/XML-Simple-${PV}"
inherit cpan
@@ -0,0 +1,32 @@
Correctly identify arch-specific modules in ext/ where the .pm files
are under lib.
Ensure that POSIX/SigAction is kept with the rest of the POSIX module
under archlib.
diff --exclude=debian -Naur perl-5.8.8.orig/installperl perl-5.8.8/installperl
--- perl-5.8.8.orig/installperl 2006-01-29 02:35:28.000000000 +1100
+++ perl-5.8.8/installperl 2006-05-31 22:54:41.000000000 +1000
@@ -156,11 +156,8 @@
if ("$File::Find::dir/$_" =~ m{^ext\b(.*)/([^/]+)\.pm$}) {
my($path, $modname) = ($1,$2);
- # strip trailing component first
- $path =~ s{/[^/]*$}{};
-
- # strip optional "/lib";
- $path =~ s{/lib\b}{};
+ # strip to optional "/lib", or remove trailing component
+ $path =~ s{.*/lib\b}{} or $path =~ s{/[^/]*$}{};
# strip any leading /
$path =~ s{^/}{};
@@ -851,7 +848,7 @@
}
if (-f $_) {
- if (/\.(?:al|ix)$/ && !($dir =~ m[^auto/(.*)$] && $archpms{$1})) {
+ if (/\.(?:al|ix)$/ && !($dir =~ m[^auto/(.*)$])) {
$installlib = $installprivlib;
#We're installing *.al and *.ix files into $installprivlib,
#but we have to delete old *.al and *.ix files from the 5.000
@@ -0,0 +1,234 @@
Various debian-specific ExtUtils changes:
* Respect umask during installation, and set as appropriate for each of
perl, vendor and site (policy requires group writable site dirs).
* Don't install .packlist or perllocal.pod for perl or vendor.
* Fiddle with *PREFIX and variables written to the makefile so that
install directories may be changed when make is run by passing
PREFIX= to the "make install" command (used when packaging
modules).
* Set location of libperl.a to /usr/lib.
* Note that libperl-dev package is required for embedded linking.
diff -Naur --exclude=debian perl-5.8.8.orig/lib/ExtUtils/Embed.pm perl-5.8.8/lib/ExtUtils/Embed.pm
--- perl-5.8.8.orig/lib/ExtUtils/Embed.pm 2004-08-03 20:41:49.000000000 +1000
+++ perl-5.8.8/lib/ExtUtils/Embed.pm 2006-02-05 10:42:11.000000000 +1100
@@ -300,6 +300,9 @@
Typically, an application B<Makefile> will invoke ExtUtils::Embed
functions while building your application.
+Note that on Debian systems the B<libperl-dev> package is required for
+compiling applications which embed an interpreter.
+
=head1 @EXPORT
ExtUtils::Embed exports the following functions:
diff -Naur --exclude=debian perl-5.8.8.orig/lib/ExtUtils/Install.pm perl-5.8.8/lib/ExtUtils/Install.pm
--- perl-5.8.8.orig/lib/ExtUtils/Install.pm 2005-10-21 22:00:01.000000000 +1000
+++ perl-5.8.8/lib/ExtUtils/Install.pm 2006-02-05 10:42:11.000000000 +1100
@@ -173,8 +173,8 @@
if (-f $targetfile){
forceunlink($targetfile) unless $nonono;
} else {
- mkpath($targetdir,0,0755) unless $nonono;
- print "mkpath($targetdir,0,0755)\n" if $verbose>1;
+ mkpath($targetdir) unless $nonono;
+ print "mkpath($targetdir)\n" if $verbose>1;
}
copy($sourcefile, $targetfile) unless $nonono;
print "Installing $targetfile\n";
diff -Naur --exclude=debian perl-5.8.8.orig/lib/ExtUtils/MM_Any.pm perl-5.8.8/lib/ExtUtils/MM_Any.pm
--- perl-5.8.8.orig/lib/ExtUtils/MM_Any.pm 2005-04-13 17:49:53.000000000 +1000
+++ perl-5.8.8/lib/ExtUtils/MM_Any.pm 2006-02-05 11:17:52.000000000 +1100
@@ -645,8 +645,6 @@
sub manifypods_target {
my($self) = shift;
- my $man1pods = '';
- my $man3pods = '';
my $dependencies = '';
# populate manXpods & dependencies:
@@ -666,7 +664,7 @@
foreach my $section (qw(1 3)) {
my $pods = $self->{"MAN${section}PODS"};
push @man_cmds, $self->split_command(<<CMD, %$pods);
- \$(NOECHO) \$(POD2MAN) --section=$section --perm_rw=\$(PERM_RW)
+ \$(NOECHO) \$(POD2MAN) --section=\$(MAN${section}EXT) --perm_rw=\$(PERM_RW)
CMD
}
@@ -1080,9 +1078,11 @@
$self->{SITEPREFIX} ||= $sprefix;
$self->{VENDORPREFIX} ||= $vprefix;
- # Lots of MM extension authors like to use $(PREFIX) so we
- # put something sensible in there no matter what.
- $self->{PREFIX} = '$('.uc $self->{INSTALLDIRS}.'PREFIX)';
+ my $p = $self->{PREFIX} = $self->{PERLPREFIX};
+ for my $t (qw/PERL SITE VENDOR/)
+ {
+ $self->{"${t}PREFIX"} =~ s!^\Q$p\E(?=/|$)!\$(PREFIX)!;
+ }
}
my $arch = $Config{archname};
diff -Naur --exclude=debian perl-5.8.8.orig/lib/ExtUtils/MM_Unix.pm perl-5.8.8/lib/ExtUtils/MM_Unix.pm
--- perl-5.8.8.orig/lib/ExtUtils/MM_Unix.pm 2005-05-21 19:42:56.000000000 +1000
+++ perl-5.8.8/lib/ExtUtils/MM_Unix.pm 2006-02-05 17:40:19.000000000 +1100
@@ -2054,9 +2054,7 @@
$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
pure_perl_install ::
- $(NOECHO) $(MOD_INSTALL) \
- read }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \
- write }.$self->catfile('$(DESTINSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \
+ $(NOECHO) umask 022; $(MOD_INSTALL) \
$(INST_LIB) $(DESTINSTALLPRIVLIB) \
$(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \
$(INST_BIN) $(DESTINSTALLBIN) \
@@ -2068,7 +2066,7 @@
pure_site_install ::
- $(NOECHO) $(MOD_INSTALL) \
+ $(NOECHO) umask 02; $(MOD_INSTALL) \
read }.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{ \
write }.$self->catfile('$(DESTINSTALLSITEARCH)','auto','$(FULLEXT)','.packlist').q{ \
$(INST_LIB) $(DESTINSTALLSITELIB) \
@@ -2081,9 +2079,7 @@
}.$self->catdir('$(PERL_ARCHLIB)','auto','$(FULLEXT)').q{
pure_vendor_install ::
- $(NOECHO) $(MOD_INSTALL) \
- read }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{ \
- write }.$self->catfile('$(DESTINSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').q{ \
+ $(NOECHO) umask 022; $(MOD_INSTALL) \
$(INST_LIB) $(DESTINSTALLVENDORLIB) \
$(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
$(INST_BIN) $(DESTINSTALLVENDORBIN) \
@@ -2092,37 +2088,19 @@
$(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)
doc_perl_install ::
- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
- -$(NOECHO) $(DOC_INSTALL) \
- "Module" "$(NAME)" \
- "installed into" "$(INSTALLPRIVLIB)" \
- LINKTYPE "$(LINKTYPE)" \
- VERSION "$(VERSION)" \
- EXE_FILES "$(EXE_FILES)" \
- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{
doc_site_install ::
- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
- -$(NOECHO) $(DOC_INSTALL) \
+ $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLSITEARCH)/perllocal.pod
+ -$(NOECHO) umask 02; $(MKPATH) $(DESTINSTALLSITEARCH)
+ -$(NOECHO) umask 02; $(DOC_INSTALL) \
"Module" "$(NAME)" \
"installed into" "$(INSTALLSITELIB)" \
LINKTYPE "$(LINKTYPE)" \
VERSION "$(VERSION)" \
EXE_FILES "$(EXE_FILES)" \
- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{
+ >> }.$self->catfile('$(DESTINSTALLSITEARCH)','perllocal.pod').q{
doc_vendor_install ::
- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
- -$(NOECHO) $(DOC_INSTALL) \
- "Module" "$(NAME)" \
- "installed into" "$(INSTALLVENDORLIB)" \
- LINKTYPE "$(LINKTYPE)" \
- VERSION "$(VERSION)" \
- EXE_FILES "$(EXE_FILES)" \
- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{
};
@@ -2131,13 +2109,12 @@
$(NOECHO) $(NOOP)
uninstall_from_perldirs ::
- $(NOECHO) $(UNINSTALL) }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{
uninstall_from_sitedirs ::
$(NOECHO) $(UNINSTALL) }.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{
uninstall_from_vendordirs ::
- $(NOECHO) $(UNINSTALL) }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{
+
};
join("",@m);
@@ -2415,7 +2392,7 @@
($lperl = $libperl) =~ s/\$\(A\)/$self->{LIB_EXT}/;
}
unless ($libperl && -f $lperl) { # Ilya's code...
- my $dir = $self->{PERL_SRC} || "$self->{PERL_ARCHLIB}/CORE";
+ my $dir = $self->{PERL_SRC} || "/usr/lib";
$dir = "$self->{PERL_ARCHLIB}/.." if $self->{UNINSTALLED_PERL};
$libperl ||= "libperl$self->{LIB_EXT}";
$libperl = "$dir/$libperl";
@@ -3007,8 +2984,7 @@
print STDERR " prefixify $var => $path\n" if $Verbose >= 2;
print STDERR " from $sprefix to $rprefix\n" if $Verbose >= 2;
- if( $self->{ARGS}{PREFIX} && $self->file_name_is_absolute($path) &&
- $path !~ s{^\Q$sprefix\E\b}{$rprefix}s )
+ if( $path !~ s{^\Q$sprefix\E\b}{$rprefix}s && $self->{ARGS}{PREFIX} )
{
print STDERR " cannot prefix, using default.\n" if $Verbose >= 2;
diff -Naur --exclude=debian perl-5.8.8.orig/lib/ExtUtils/t/INST.t perl-5.8.8/lib/ExtUtils/t/INST.t
--- perl-5.8.8.orig/lib/ExtUtils/t/INST.t 2005-10-21 19:12:39.000000000 +1000
+++ perl-5.8.8/lib/ExtUtils/t/INST.t 2006-02-05 17:48:56.000000000 +1100
@@ -65,9 +65,7 @@
is( $mm->{NAME}, 'Big::Dummy', 'NAME' );
is( $mm->{VERSION}, 0.01, 'VERSION' );
-my $config_prefix = $Config{installprefixexp} || $Config{installprefix} ||
- $Config{prefixexp} || $Config{prefix};
-is( $mm->{PERLPREFIX}, $config_prefix, 'PERLPREFIX' );
+is( $mm->{PERLPREFIX}, '$(PREFIX)', 'PERLPREFIX' );
is( !!$mm->{PERL_CORE}, !!$ENV{PERL_CORE}, 'PERL_CORE' );
diff -Naur --exclude=debian perl-5.8.8.orig/lib/ExtUtils/t/INST_PREFIX.t perl-5.8.8/lib/ExtUtils/t/INST_PREFIX.t
--- perl-5.8.8.orig/lib/ExtUtils/t/INST_PREFIX.t 2005-10-21 22:00:19.000000000 +1000
+++ perl-5.8.8/lib/ExtUtils/t/INST_PREFIX.t 2006-02-05 17:48:06.000000000 +1100
@@ -16,7 +16,7 @@
}
use strict;
-use Test::More tests => 52;
+use Test::More tests => 47;
use MakeMaker::Test::Utils;
use MakeMaker::Test::Setup::BFD;
use ExtUtils::MakeMaker;
@@ -62,16 +62,16 @@
Writing\ $Makefile\ for\ Big::Dummy\n
}x );
-is( $mm->{PREFIX}, '$(SITEPREFIX)', 'PREFIX set based on INSTALLDIRS' );
+#is( $mm->{PREFIX}, '$(SITEPREFIX)', 'PREFIX set based on INSTALLDIRS' );
isa_ok( $mm, 'ExtUtils::MakeMaker' );
is( $mm->{NAME}, 'Big::Dummy', 'NAME' );
is( $mm->{VERSION}, 0.01, 'VERSION' );
-foreach my $prefix (qw(PREFIX PERLPREFIX SITEPREFIX VENDORPREFIX)) {
- unlike( $mm->{$prefix}, qr/\$\(PREFIX\)/ );
-}
+#foreach my $prefix (qw(PREFIX PERLPREFIX SITEPREFIX VENDORPREFIX)) {
+# unlike( $mm->{$prefix}, qr/\$\(PREFIX\)/ );
+#}
my $PREFIX = File::Spec->catdir('foo', 'bar');
@@ -0,0 +1,107 @@
Tweak @INC so that the ordering is:
etc (for config files)
site (5.8.1)
vendor (all)
core (5.8.1)
site (version-indep)
site (pre-5.8.1)
The rationale being that an admin (via site), or module packager
(vendor) can chose to shadow core modules when there is a newer
version than is included in core.
diff -Naur --exclude=debian perl-5.8.8.orig/perl.c perl-5.8.8/perl.c
--- perl-5.8.8.orig/perl.c 2006-01-31 23:34:47.000000000 +1100
+++ perl-5.8.8/perl.c 2006-02-02 23:36:38.000000000 +1100
@@ -4776,9 +4776,14 @@
incpush(APPLLIB_EXP, TRUE, TRUE, TRUE);
#endif
+#if 1
+ /* for configuration where /usr is mounted ro (CPAN::Config, Net::Config) */
+ incpush("/etc/perl", FALSE, FALSE, FALSE);
+#else
#ifdef ARCHLIB_EXP
incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE);
#endif
+#endif
#ifdef MACOS_TRADITIONAL
{
Stat_t tmpstatbuf;
@@ -4803,11 +4808,13 @@
#ifndef PRIVLIB_EXP
# define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl"
#endif
+#if 0
#if defined(WIN32)
incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE);
#else
incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE);
#endif
+#endif
#ifdef SITEARCH_EXP
/* sitearch is always relative to sitelib on Windows for
@@ -4850,6 +4857,61 @@
incpush(PERL_VENDORLIB_STEM, FALSE, TRUE, TRUE);
#endif
+#if 1
+ incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE);
+ incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE);
+
+ /* Non-versioned site directory for local modules and for
+ compatability with the previous packages' site dirs */
+ incpush("/usr/local/lib/site_perl", TRUE, FALSE, FALSE);
+
+#ifdef PERL_INC_VERSION_LIST
+ {
+ struct stat s;
+
+ /* add small buffer in case old versions are longer than the
+ current version */
+ char sitearch[sizeof(SITEARCH_EXP)+16] = SITEARCH_EXP;
+ char sitelib[sizeof(SITELIB_EXP)+16] = SITELIB_EXP;
+ char const *vers[] = { PERL_INC_VERSION_LIST };
+ char const **p;
+
+ char *arch_vers = strrchr(sitearch, '/');
+ char *lib_vers = strrchr(sitelib, '/');
+
+ if (arch_vers && isdigit(*++arch_vers))
+ *arch_vers = 0;
+ else
+ arch_vers = 0;
+
+ if (lib_vers && isdigit(*++lib_vers))
+ *lib_vers = 0;
+ else
+ lib_vers = 0;
+
+ /* there is some duplication here as incpush does something
+ similar internally, but required as sitearch is not a
+ subdirectory of sitelib */
+ for (p = vers; *p; p++)
+ {
+ if (arch_vers)
+ {
+ strcpy(arch_vers, *p);
+ if (PerlLIO_stat(sitearch, &s) >= 0 && S_ISDIR(s.st_mode))
+ incpush(sitearch, FALSE, FALSE, FALSE);
+ }
+
+ if (lib_vers)
+ {
+ strcpy(lib_vers, *p);
+ if (PerlLIO_stat(sitelib, &s) >= 0 && S_ISDIR(s.st_mode))
+ incpush(sitelib, FALSE, FALSE, FALSE);
+ }
+ }
+ }
+#endif
+#endif
+
#ifdef PERL_OTHERLIBDIRS
incpush(PERL_OTHERLIBDIRS, TRUE, TRUE, TRUE);
#endif
@@ -0,0 +1,16 @@
In a Debian installation, not all directories in @INC need exist (the
site directories for example are created on demand).
Suggested by Joey Hess <joeyh@debian.org>.
diff -Naur --exclude=debian perl-5.8.8.orig/lib/Pod/Perldoc.pm perl-5.8.8/lib/Pod/Perldoc.pm
--- perl-5.8.8.orig/lib/Pod/Perldoc.pm 2004-12-29 23:15:33.000000000 +1100
+++ perl-5.8.8/lib/Pod/Perldoc.pm 2006-02-02 23:38:49.000000000 +1100
@@ -1533,6 +1533,7 @@
$self->{'target'} = (splitdir $s)[-1]; # XXX: why not use File::Basename?
for ($i=0; $i<@dirs; $i++) {
$dir = $dirs[$i];
+ next unless -d $dir; # some dirs in @INC are optional
($dir = VMS::Filespec::unixpath($dir)) =~ s!/\z!! if IS_VMS;
if ( (! $self->opt_m && ( $ret = $self->check_file($dir,"$s.pod")))
or ( $ret = $self->check_file($dir,"$s.pm"))
@@ -0,0 +1,14 @@
Set location of CPAN::Config to /etc/perl as /usr may not be writable.
diff -Naur --exclude=debian perl-5.8.8.orig/lib/CPAN.pm perl-5.8.8/lib/CPAN.pm
--- perl-5.8.8.orig/lib/CPAN.pm 2006-02-01 01:11:22.000000000 +1100
+++ perl-5.8.8/lib/CPAN.pm 2006-02-02 23:49:26.000000000 +1100
@@ -1246,7 +1246,7 @@
$configpm = $INC{"CPAN/MyConfig.pm"};
$redo++;
} else {
- my($path_to_cpan) = File::Basename::dirname($INC{"CPAN.pm"});
+ my($path_to_cpan) = '/etc/perl';
my($configpmdir) = File::Spec->catdir($path_to_cpan,"CPAN");
my($configpmtest) = File::Spec->catfile($configpmdir,"Config.pm");
if (-d $configpmdir or File::Path::mkpath($configpmdir)) {
@@ -0,0 +1,16 @@
Set location of libnet.cfg to /etc/perl/Net as /usr may not be writable.
diff -Naur --exclude=debian perl-5.8.8.orig/lib/Net/Config.pm perl-5.8.8/lib/Net/Config.pm
--- perl-5.8.8.orig/lib/Net/Config.pm 2002-03-01 01:04:31.000000000 +1100
+++ perl-5.8.8/lib/Net/Config.pm 2006-02-03 00:00:55.000000000 +1100
@@ -57,9 +57,8 @@
}
TRY_INTERNET_CONFIG
-my $file = __FILE__;
+my $file = '/etc/perl/Net/libnet.cfg';
my $ref;
-$file =~ s/Config.pm/libnet.cfg/;
if ( -f $file ) {
$ref = eval { local $SIG{__DIE__}; do $file };
if (ref($ref) eq 'HASH') {
@@ -0,0 +1,16 @@
Some modules which are included in core set INSTALLDIRS => 'perl'
explicitly in Makefile.PL. This makes sense for the normal @INC
ordering, but not ours. Provide a sensible default.
diff -Naur --exclude=debian perl-5.8.8.orig/lib/CPAN/FirstTime.pm perl-5.8.8/lib/CPAN/FirstTime.pm
--- perl-5.8.8.orig/lib/CPAN/FirstTime.pm 2006-01-31 08:08:57.000000000 +1100
+++ perl-5.8.8/lib/CPAN/FirstTime.pm 2006-02-03 00:05:24.000000000 +1100
@@ -358,7 +358,7 @@
};
- $default = $CPAN::Config->{makepl_arg} || "";
+ $default = $CPAN::Config->{makepl_arg} || "INSTALLDIRS=site";
$CPAN::Config->{makepl_arg} =
prompt("Parameters for the 'perl Makefile.PL' command?
Typical frequently used settings:
@@ -0,0 +1,28 @@
Tweak enc2xs to handle Debian @INC: ignore missing directories,
follow symlinks (/usr/share/perl/5.8 -> 5.8.4).
diff -Naur --exclude=debian perl-5.8.8.orig/ext/Encode/bin/enc2xs perl-5.8.8/ext/Encode/bin/enc2xs
--- perl-5.8.8.orig/ext/Encode/bin/enc2xs 2004-09-03 01:53:51.000000000 +1000
+++ perl-5.8.8/ext/Encode/bin/enc2xs 2006-02-03 00:21:32.000000000 +1100
@@ -909,10 +909,11 @@
eval { require File::Find; };
my (@inc, %e2x_dir);
for my $inc (@INC){
+ next unless -d $inc; # skip non-existent directories
push @inc, $inc unless $inc eq '.'; #skip current dir
}
File::Find::find(
- sub {
+ { wanted => sub {
my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
$atime,$mtime,$ctime,$blksize,$blocks)
= lstat($_) or return;
@@ -922,7 +923,7 @@
$e2x_dir{$File::Find::dir} ||= $mtime;
}
return;
- }, @inc);
+ }, follow => 1}, @inc);
warn join("\n", keys %e2x_dir), "\n";
for my $d (sort {$e2x_dir{$a} <=> $e2x_dir{$b}} keys %e2x_dir){
$_E2X = $d;
@@ -0,0 +1,253 @@
Index: perl-5.8.8/Makefile.SH
===================================================================
--- perl-5.8.8.orig/Makefile.SH 2006-01-24 23:49:44.000000000 +1100
+++ perl-5.8.8/Makefile.SH 2007-06-14 13:29:37.000000000 +1000
@@ -43,12 +43,12 @@
true)
# Prefix all runs of 'miniperl' and 'perl' with
# $ldlibpth so that ./perl finds *this* shared libperl.
- case "$LD_LIBRARY_PATH" in
- '')
- ldlibpth="LD_LIBRARY_PATH=`pwd`";;
- *)
- ldlibpth="LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}";;
- esac
+# case "$LD_LIBRARY_PATH" in
+# '')
+# ldlibpth="LD_LIBRARY_PATH=`pwd`";;
+# *)
+# ldlibpth="LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}";;
+# esac
pldlflags="$cccdlflags"
static_target='static_pic'
@@ -108,7 +108,8 @@
ldlibpth=''
;;
*)
- eval "ldlibpth=\"$ldlibpthname=`pwd`:\$$ldlibpthname\""
+# We compile in the library path in OE from cross-compile, so lets not do this
+# eval "ldlibpth=\"$ldlibpthname=`pwd`:\$$ldlibpthname\""
;;
esac
# Strip off any trailing :'s
@@ -129,18 +130,7 @@
# INSTALL file, under "Building a shared perl library".
# If there is no pre-existing $libperl, we don't need
# to do anything further.
- if test -f $archlib/CORE/$libperl; then
- rm -f preload
- cat <<'EOT' > preload
-#! /bin/sh
-lib=$1
-shift
-test -r $lib && export LD_PRELOAD="$lib $LD_PRELOAD"
-exec "$@"
-EOT
- chmod 755 preload
- ldlibpth="$ldlibpth `pwd`/preload `pwd`/$libperl"
- fi
+ echo linux libraries overwritten by cross-compile patches
;;
os390) test -f /bin/env && ldlibpth="/bin/env $ldlibpth"
;;
@@ -401,9 +391,19 @@
.c.s:
$(CCCMDSRC) -S $*.c
-all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) extra.pods $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make
- @echo " ";
- @echo " Everything is up to date. Type '$(MAKE) test' to run test suite."
+#all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) extra.pods $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make
+# @echo " ";
+# @echo " Everything is up to date. Type '$(MAKE) test' to run test suite."
+
+all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) $(unidatafiles)
+
+more: extra.pods $(private) $(public)
+
+more2: $(dynamic_ext)
+
+more3: $(nonxs_ext)
+
+more4: extras.make
.PHONY: all compile translators utilities
@@ -413,10 +413,10 @@
cd x2p; $(MAKE) compile;
cd pod; $(MAKE) compile;
-translators: miniperl$(EXE_EXT) $(CONFIGPM) FORCE
+translators: $(CONFIGPM) FORCE
@echo " "; echo " Making x2p stuff"; cd x2p; $(LDLIBPTH) $(MAKE) all
-utilities: miniperl$(EXE_EXT) $(CONFIGPM) $(plextract) lib/lib.pm FORCE
+utilities: $(CONFIGPM) $(plextract) lib/lib.pm FORCE
@echo " "; echo " Making utilities"; cd utils; $(LDLIBPTH) $(MAKE) all
@@ -550,7 +550,7 @@
case "$useshrplib" in
true)
$spitshell >>Makefile <<'!NO!SUBS!'
- $(LD) -o $@ $(SHRPLDFLAGS) perl$(OBJ_EXT) $(obj) $(libs)
+ $(LD) -o $@ $(SHRPLDFLAGS) perl$(OBJ_EXT) $(obj) $(libs) -Wl,-soname,libperl.so.5
!NO!SUBS!
case "$osname" in
aix)
@@ -591,7 +591,9 @@
$(CC) -o miniperl $(CLDFLAGS) \
`echo $(obj) | sed 's/ op$(OBJ_EXT) / /'` \
miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perl$(OBJ_EXT) $(libs)
- $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
+ mv -f miniperl miniperl-target
+ ln -s hostperl miniperl
+# $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
!NO!SUBS!
;;
next4*)
@@ -599,7 +601,9 @@
miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL) opmini$(OBJ_EXT)
$(CC) -o miniperl `echo $(obj) | sed 's/ op$(OBJ_EXT) / /'` \
miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perl$(OBJ_EXT) $(libs)
- $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
+ mv -f miniperl miniperl-target
+ ln -s hostperl miniperl
+# $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
!NO!SUBS!
;;
darwin*)
@@ -620,7 +624,9 @@
-@rm -f miniperl.xok
$(CC) $(CLDFLAGS) $(NAMESPACEFLAGS) -o miniperl \
miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LLIBPERL) $(libs)
- $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
+ mv -f miniperl miniperl-target
+ ln -s hostperl miniperl
+# $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
!NO!SUBS!
;;
*)
@@ -629,7 +635,9 @@
-@rm -f miniperl.xok
$(LDLIBPTH) $(CC) $(CLDFLAGS) -o miniperl \
miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LLIBPERL) $(libs)
- $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
+ mv -f miniperl miniperl-target
+ ln -s hostperl miniperl
+# $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
!NO!SUBS!
;;
esac
@@ -766,7 +774,7 @@
# We need to autosplit in two steps because VOS can't handle so many args
#
.PHONY: preplibrary
-preplibrary: miniperl$(EXE_EXT) $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL)
+preplibrary: $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL)
@sh ./makedir lib/auto
@echo " AutoSplitting perl library"
$(LDLIBPTH) ./miniperl -Ilib -e 'use AutoSplit; \
@@ -775,35 +783,35 @@
autosplit_lib_modules(@ARGV)' lib/*/*.pm
$(MAKE) lib/re.pm
-lib/Config.pod: config.sh miniperl$(EXE_EXT) configpm Porting/Glossary
+lib/Config.pod: config.sh configpm Porting/Glossary
$(LDLIBPTH) ./miniperl -Ilib configpm --heavy=lib/Config_heavy.pl lib/Config.pm
$(CONFIGPM): lib/Config.pod
-lib/ExtUtils/Miniperl.pm: miniperlmain.c miniperl$(EXE_EXT) minimod.pl $(CONFIGPM)
+lib/ExtUtils/Miniperl.pm: miniperlmain.c minimod.pl $(CONFIGPM)
$(LDLIBPTH) ./miniperl minimod.pl > lib/ExtUtils/Miniperl.pm
lib/re.pm: ext/re/re.pm
cp ext/re/re.pm lib/re.pm
-$(plextract): miniperl$(EXE_EXT) $(CONFIGPM) x2p/s2p
+$(plextract): $(CONFIGPM) x2p/s2p
@-rm -f $@
$(LDLIBPTH) ./miniperl -I`pwd`/lib $@.PL
-x2p/s2p: miniperl$(EXE_EXT) $(CONFIGPM) x2p/s2p.PL
+x2p/s2p: $(CONFIGPM) x2p/s2p.PL
cd x2p; $(LDLIBPTH) $(MAKE) s2p
-lib/lib.pm: miniperl$(EXE_EXT) $(CONFIGPM)
+lib/lib.pm: $(CONFIGPM)
@-rm -f $@
$(LDLIBPTH) ./miniperl -Ilib lib/lib_pm.PL
unidatafiles $(unidatafiles): uni.data
-uni.data: miniperl$(EXE_EXT) $(CONFIGPM) lib/unicore/mktables
+uni.data: $(CONFIGPM) lib/unicore/mktables
cd lib/unicore && $(LDLIBPTH) ../../miniperl -I../../lib mktables -w
touch uni.data
-extra.pods: miniperl$(EXE_EXT)
+extra.pods:
-@test -f extra.pods && rm -f `cat extra.pods`
-@rm -f extra.pods
-@for x in `grep -l '^=[a-z]' README.* | grep -v README.vms` ; do \
@@ -850,18 +858,7 @@
INSTALL_DEPENDENCE = all
install.perl: $(INSTALL_DEPENDENCE) installperl
- if [ -n "$(COMPILE)" ]; \
- then \
- cd utils; $(MAKE) compile; \
- cd ../x2p; $(MAKE) compile; \
- cd ../pod; $(MAKE) compile; \
- else :; \
- fi
- $(LDLIBPTH) ./perl installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS)
- $(MAKE) extras.install
-
-install.man: all installman
- $(LDLIBPTH) ./perl installman --destdir=$(DESTDIR) $(INSTALLFLAGS)
+ ./hostperl -Ifake_config_library -Ilib -MConfig installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS)
# XXX Experimental. Hardwired values, but useful for testing.
# Eventually Configure could ask for some of these values.
@@ -978,16 +975,16 @@
#
# DynaLoader may be needed for extensions that use Makefile.PL.
-$(DYNALOADER): miniperl$(EXE_EXT) preplibrary FORCE
+$(DYNALOADER): preplibrary FORCE
@$(LDLIBPTH) sh ext/util/make_ext $(STATIC) $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
-d_dummy $(dynamic_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE
+d_dummy $(dynamic_ext): preplibrary $(DYNALOADER) FORCE
@$(LDLIBPTH) sh ext/util/make_ext dynamic $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
-s_dummy $(static_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE
+s_dummy $(static_ext): preplibrary $(DYNALOADER) FORCE
@$(LDLIBPTH) sh ext/util/make_ext $(STATIC) $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
-n_dummy $(nonxs_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE
+n_dummy $(nonxs_ext): preplibrary $(DYNALOADER) FORCE
@$(LDLIBPTH) sh ext/util/make_ext nonxs $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
.PHONY: clean _tidy _mopup _cleaner1 _cleaner2 \
@@ -1125,7 +1122,7 @@
test_prep_pre: preplibrary utilities $(nonxs_ext)
-test_prep: test_prep_pre miniperl$(EXE_EXT) $(unidatafiles) perl$(EXE_EXT) $(dynamic_ext) $(TEST_PERL_DLL)
+test_prep: test_prep_pre $(unidatafiles) perl$(EXE_EXT) $(dynamic_ext) $(TEST_PERL_DLL)
PERL=./perl $(MAKE) _test_prep
_test_tty:
@@ -1238,7 +1235,7 @@
# Can't depend on lib/Config.pm because that might be where miniperl
# is crashing.
-minitest: miniperl$(EXE_EXT) lib/re.pm minitest.prep
+minitest: lib/re.pm minitest.prep
- cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \
&& $(LDLIBPTH) ./perl TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t </dev/tty
@@ -0,0 +1,61 @@
Index: perl-5.8.8/Cross/Makefile
===================================================================
--- perl-5.8.8.orig/Cross/Makefile 2004-01-12 21:44:01.000000000 +0100
+++ perl-5.8.8/Cross/Makefile 2007-08-15 00:15:18.000000000 +0200
@@ -2,7 +2,8 @@
#
## $Id: Makefile,v 1.7 2004/01/12 15:41:02 red Exp red $
-export TOPDIR=${shell pwd}
+override TOPDIR=${shell pwd}
+export TOPDIR
include $(TOPDIR)/config
export CFLAGS
export SYS=$(ARCH)-$(OS)
@@ -12,7 +13,7 @@
export CC = $(CROSS)gcc
export CXX = $(CROSS)g++
-export LD = $(CROSS)ld
+export LD = $(CC)
export STRIP = $(CROSS)strip
export AR = $(CROSS)ar
export RANLIB = $(CROSS)ranlib
@@ -34,21 +35,6 @@
all:
@echo Please read the README file before doing anything else.
-gen_patch:
- diff -Bbur ../Makefile.SH Makefile.SH > Makefile.SH.patch
- diff -Bbur ../installperl installperl > installperl.patch
-
-patch:
- cd .. ; if [ ! -e ./CROSS_PATCHED ] ; then \
- patch -p1 < Cross/Makefile.SH.patch; \
- patch -p1 < Cross/installperl.patch ; mv installperl installperl-patched; \
- sed -e 's/XXSTRIPXX/$(SYS)/' installperl-patched > installperl; \
- touch CROSS_PATCHED ; fi
-
-dry_patch:
- cd .. ; patch --dry-run -p1 < Cross/Makefile.SH.patch; \
- patch --dry-run -p1 < Cross/installperl.patch; \
-
perl:
@echo Perl cross-build directory is $(TOPDIR)
@echo Target arch is $(SYS)
@@ -58,11 +44,11 @@
$(TOPDIR)/generate_config_sh config.sh-$(SYS) > $(TOPDIR)/../config.sh
cd $(TOPDIR)/.. ; ./Configure -S ; make depend ; make ; make more
cd $(TOPDIR)/.. ; mkdir -p fake_config_library ; cp lib/Config.pm fake_config_library
- cd $(TOPDIR)/.. ; $(MAKE) more2 "PERLRUN=/usr/bin/perl -I$(TOPDIR)/../fake_config_library -MConfig"
- cd $(TOPDIR)/.. ; $(MAKE) more3 "PERLRUN=/usr/bin/perl -I$(TOPDIR)/../fake_config_library -MConfig"
- cd $(TOPDIR)/.. ; $(MAKE) more4 "PERLRUN=/usr/bin/perl -I$(TOPDIR)/../fake_config_library -MConfig"
+ cd $(TOPDIR)/.. ; $(MAKE) more2 "PERLRUN=hostperl -I$(TOPDIR)/../fake_config_library -MConfig"
+ cd $(TOPDIR)/.. ; $(MAKE) more3 "PERLRUN=hostperl -I$(TOPDIR)/../fake_config_library -MConfig"
+ cd $(TOPDIR)/.. ; $(MAKE) more4 "PERLRUN=hostperl -I$(TOPDIR)/../fake_config_library -MConfig"
cd $(TOPDIR)/.. ; rm -rf install_me_here
- cd $(TOPDIR)/.. ; make install-strip
+# cd $(TOPDIR)/.. ; make install-strip
cd $(TOPDIR)/.. ; sh -x Cross/warp
@@ -0,0 +1,19 @@
Perl inclues asm/page.h in order to get the definition for getpagesize which
has been definied in unistd.h since glibc 2.1. Some recent version of linux
libc headers removed the asm/page.h resulting in failures here for some
people.
Index: perl-5.8.8/ext/IPC/SysV/SysV.xs
===================================================================
--- perl-5.8.8.orig/ext/IPC/SysV/SysV.xs 2001-07-01 04:46:07.000000000 +1000
+++ perl-5.8.8/ext/IPC/SysV/SysV.xs 2007-07-06 11:40:21.000000000 +1000
@@ -3,9 +3,6 @@
#include "XSUB.h"
#include <sys/types.h>
-#ifdef __linux__
-# include <asm/page.h>
-#endif
#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
#ifndef HAS_SEM
# include <sys/ipc.h>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,58 @@
alignbytes='4'
ccflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
yaccflags=''
ccsymbols='__GNUC_PATCHLEVEL__=5'
cppccsymbols='__GNUC__=3 __GNUC_MINOR__=3'
cppccsymbols='__GNUC__=3 __GNUC_MINOR__=3'
cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -I/usr/local/include'
cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=3 __GNU_LIBRARY__=6 _GNU_SOURCE=1 i386=1 __i386=1 __i386__=1 __i486=1 __i486__=1 _LARGEFILE64_SOURCE=1 _LARGEFILE_SOURCE=1 linux=1 __linux=1 __linux__=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 _REENTRANT=1 __STDC__=1 unix=1 __unix=1 __unix__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_GNU=1 __USE_LARGEFILE=1 __USE_LARGEFILE64=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_REENTRANT=1 __USE_SVID=1 __USE_UNIX98=1 __USE_XOPEN=1 __USE_XOPEN_EXTENDED=1 _XOPEN_SOURCE=600 _XOPEN_SOURCE_EXTENDED=1'
d_nv_preserves_uv='define'
d_u32align='undef'
gccversion='3.3.5 (Debian 1:3.3.5-13)'
getspnam_r_proto='0'
gidformat='"lu"'
gnulibc_version='2.3.2'
i32type='long'
i64type='long long'
ivsize='4'
gnulibc_version='2.3.2'
libc='/lib/libc-2.3.2.so'
libsfiles=' libnsl.so libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so'
libsfound=' /usr/lib/libnsl.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libpthread.so /usr/lib/libc.so'
ignore_versioned_solibs='y'
libs='-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc'
libsdirs=' /usr/lib'
libsfiles=' libnsl.so libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so'
libsfound=' /usr/lib/libnsl.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libpthread.so /usr/lib/libc.so'
libspath=' /usr/local/lib /lib /usr/lib'
libswanted='sfio socket inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util pthread c cposix posix ucb BSD'
libswanted_uselargefiles=''
perllibs='-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc'
libsfiles=' libnsl.so libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so'
libsfound=' /usr/lib/libnsl.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libpthread.so /usr/lib/libc.so'
longdblsize='12'
longlongsize='8'
longsize='4'
myuname='linux birgitte 2.6.21-rc5 #63 tue mar 27 14:41:54 est 2007 i686 gnulinux '
nv_preserves_uv_bits='32'
osvers='2.6.21-rc5'
ptrsize='4'
quadkind='3'
quadtype='long long'
uquadtype='unsigned long long'
sPRIXU64='"LX"'
sPRId64='"Ld"'
sPRIi64='"Li"'
sPRIo64='"Lo"'
sPRIu64='"Lu"'
sPRIx64='"Lx"'
selectminbits='32'
sizesize='4'
u32type='unsigned long'
u64type='unsigned long long'
uidformat='"lu"'
uquadtype='unsigned long long'
use64bitall='undef'
use64bitint='undef'
uvsize='4'
@@ -0,0 +1 @@
byteorder='4321'
@@ -0,0 +1 @@
byteorder='1234'
@@ -0,0 +1,58 @@
alignbytes='8'
ccflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
yaccflags=''
ccsymbols=''
cppccsymbols=''
cppccsymbols=''
cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -Wdeclaration-after-statement'
cppsymbols='__amd64=1 __amd64__=1 __ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=4 __GNUC__=4 __GNUC_MINOR__=1 __GNU_LIBRARY__=6 _GNU_SOURCE=1 _LARGEFILE64_SOURCE=1 _LARGEFILE_SOURCE=1 linux=1 __linux=1 __linux__=1 _LP64=1 __LP64__=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 _REENTRANT=1 __STDC__=1 unix=1 __unix=1 __unix__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_GNU=1 __USE_LARGEFILE=1 __USE_LARGEFILE64=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_REENTRANT=1 __USE_SVID=1 __USE_UNIX98=1 __USE_XOPEN=1 __USE_XOPEN_EXTENDED=1 __x86_64=1 __x86_64__=1 _XOPEN_SOURCE=600 _XOPEN_SOURCE_EXTENDED=1'
d_nv_preserves_uv='undef'
d_u32align='define'
gccversion='4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)'
getspnam_r_proto='REENTRANT_PROTO_I_CSBWR'
gidformat='"u"'
gnulibc_version='2.4'
i32type='int'
i64type='long'
ivsize='8'
gnulibc_version='2.4'
libc='/lib/libc-2.4.so'
libsfiles=' libnsl.so libdb.so libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so'
libsfound=' /usr/lib/libnsl.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libpthread.so /usr/lib/libc.so'
ignore_versioned_solibs='y'
libs='-lnsl -ldb -ldl -lm -lcrypt -lutil -lpthread -lc'
libsdirs=' /usr/lib'
libsfiles=' libnsl.so libdb.so libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so'
libsfound=' /usr/lib/libnsl.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libpthread.so /usr/lib/libc.so'
libspath=' /usr/local/lib /lib /usr/lib'
libswanted='sfio socket inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util pthread c cposix posix ucb BSD'
libswanted_uselargefiles=''
perllibs='-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc'
libsfiles=' libnsl.so libdb.so libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so'
libsfound=' /usr/lib/libnsl.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libpthread.so /usr/lib/libc.so'
longdblsize='16'
longlongsize='8'
longsize='8'
myuname='linux nynaeve 2.6.20.4 #29 smp thu mar 29 15:35:30 est 2007 x86_64 gnulinux '
nv_preserves_uv_bits='53'
osvers='2.6.20.4'
ptrsize='8'
quadkind='2'
quadtype='long'
uquadtype='unsigned long'
sPRIXU64='"lX"'
sPRId64='"ld"'
sPRIi64='"li"'
sPRIo64='"lo"'
sPRIu64='"lu"'
sPRIx64='"lx"'
selectminbits='64'
sizesize='8'
u32type='unsigned int'
u64type='unsigned long'
uidformat='"u"'
uquadtype='unsigned long'
use64bitall='define'
use64bitint='define'
uvsize='8'
@@ -0,0 +1 @@
byteorder='87654321'
@@ -0,0 +1 @@
byteorder='12345678'
@@ -0,0 +1,46 @@
Use the ld flags from the supplied configuration file. For sh we need the
flags that specify to build PIC code so that the shared libraries work.
Index: perl-5.8.8/Cross/generate_config_sh
===================================================================
--- perl-5.8.8.orig/Cross/generate_config_sh 2003-09-05 18:31:08.000000000 +1000
+++ perl-5.8.8/Cross/generate_config_sh 2007-05-30 09:12:50.000000000 +1000
@@ -19,10 +19,10 @@
$callbacks->{'ar'} = [\&simple_process, ["AR", "arm-linux-ar"]];
$callbacks->{'archname'} = [\&simple_process, ["SYS", "armv4l-linux"]];
$callbacks->{'cc'} = [\&simple_process, ["CC", "arm-linux-gcc"]];
-$callbacks->{'cccdlflags'} = [\&simple_process, ["CFLAGS", ""]];
-$callbacks->{'ccdlflags'} = [\&simple_process, ["CFLAGS", ""]];
-$callbacks->{'ccflags'} = [\&simple_process, ["CFLAGS", "-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]];
-$callbacks->{'ccflags_uselargefiles'} = [\&simple_process, ["CFLAGS", "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]];
+#$callbacks->{'cccdlflags'} = [\&simple_process, ["CFLAGS", ""]];
+#$callbacks->{'ccdlflags'} = [\&simple_process, ["CFLAGS", ""]];
+$callbacks->{'ccflags'} = [\&simple_process_insert, ["CFLAGS", "-fno-strict-aliasing -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]];
+$callbacks->{'ccflags_uselargefiles'} = [\&simple_process_insert, ["CFLAGS", "-D_GNU_SOURCE -DTHREADS_HAVE_PIDS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]];
$callbacks->{'ccname'} = [\&simple_process, ["CC", "arm-linux-gcc"]];
$callbacks->{'cpp'} = [\&simple_process, ["CCP", "arm-linux-cpp"]];
$callbacks->{'cppflags'} = [\&simple_process, ["CCPFLAGS", "-fno-strict-aliasing"]];
@@ -105,6 +105,23 @@
}
+# Insert env var into the variables value
+sub simple_process_insert {
+ my $key = shift;
+ my $value = shift;
+ my $envvar = $callbacks->{$key}->[1][0];
+
+ if ($ENV{$envvar}) {
+ # Strip quotes from value
+ $value =~ s/^\'//;
+ $value =~ s/\'$//;
+ # Remove -I/usr/local/... from the value
+ $value =~ s#\W-I/usr/local/\w+\W# #g;
+ # Prepend env var (OE setting) to value
+ print("$key=\'$ENV{$envvar} $value\'\n");
+ }
+}
+
sub library_munge {
my $key = shift;
my $value = shift;
@@ -0,0 +1,15 @@
Index: perl-5.8.8/installperl
===================================================================
--- perl-5.8.8.orig/installperl 2007-06-14 12:36:23.000000000 +1000
+++ perl-5.8.8/installperl 2007-06-14 12:38:39.000000000 +1000
@@ -3,8 +3,8 @@
BEGIN {
require 5.004;
chdir '..' if !-d 'lib' and -d '../lib';
- @INC = 'lib';
- $ENV{PERL5LIB} = 'lib';
+# @INC = 'lib';
+# $ENV{PERL5LIB} = 'lib';
}
use strict;
@@ -0,0 +1,13 @@
Index: perl-5.8.8/makedepend.SH
===================================================================
--- perl-5.8.8.orig/makedepend.SH 2007-05-24 12:06:52.000000000 +1000
+++ perl-5.8.8/makedepend.SH 2007-05-24 12:27:33.000000000 +1000
@@ -128,7 +128,7 @@
*.y) filebase=`basename $file .y` ;;
esac
case "$file" in
- */*) finc="-I`echo $file | sed 's#/[^/]*$##`" ;;
+ */*) finc="-I`echo $file | sed 's#/[^/]*$##'`" ;;
*) finc= ;;
esac
$echo "Finding dependencies for $filebase$_o."
@@ -0,0 +1,18 @@
If you have a /usr/include/gdbm/ndbm.h host on the header then the configure
script adds -I/usr/include/gdbm to the ccflags even though gdbm support is
disabled. Prevent perl from doing this so we don't get cross compile badness
errors while building perl.
--- perl-5.8.8/Configure 2007/05/06 23:42:18 1.1
+++ perl-5.8.8/Configure 2007/05/06 23:42:48
@@ -20033,8 +20033,8 @@
# ndbm.h header in /usr/include/gdbm/ndbm.h.
if $test -f /usr/include/gdbm/ndbm.h; then
echo '<gdbm/ndbm.h> found.'
- ccflags="$ccflags -I/usr/include/gdbm"
- cppflags="$cppflags -I/usr/include/gdbm"
+# ccflags="$ccflags -I/usr/include/gdbm"
+# cppflags="$cppflags -I/usr/include/gdbm"
t_ndbm=$define
fi
;;
@@ -0,0 +1,84 @@
Part of 52_debian_extutils_hacks.patch just to exclude the installation of .packlist files
diff -Naur --exclude=debian perl-5.8.8.orig/lib/ExtUtils/MM_Unix.pm perl-5.8.8/lib/ExtUtils/MM_Unix.pm
--- perl-5.8.8.orig/lib/ExtUtils/MM_Unix.pm 2005-05-21 19:42:56.000000000 +1000
+++ perl-5.8.8/lib/ExtUtils/MM_Unix.pm 2006-02-05 17:40:19.000000000 +1100
@@ -2054,9 +2054,7 @@
$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
pure_perl_install ::
- $(NOECHO) $(MOD_INSTALL) \
- read }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \
- write }.$self->catfile('$(DESTINSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \
+ $(NOECHO) $(MOD_INSTALL) \
$(INST_LIB) $(DESTINSTALLPRIVLIB) \
$(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \
$(INST_BIN) $(DESTINSTALLBIN) \
@@ -2081,9 +2079,7 @@
}.$self->catdir('$(PERL_ARCHLIB)','auto','$(FULLEXT)').q{
pure_vendor_install ::
- $(NOECHO) $(MOD_INSTALL) \
- read }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{ \
- write }.$self->catfile('$(DESTINSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').q{ \
+ $(NOECHO) $(MOD_INSTALL) \
$(INST_LIB) $(DESTINSTALLVENDORLIB) \
$(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
$(INST_BIN) $(DESTINSTALLVENDORBIN) \
@@ -2092,37 +2088,19 @@
$(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)
doc_perl_install ::
- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
- -$(NOECHO) $(DOC_INSTALL) \
- "Module" "$(NAME)" \
- "installed into" "$(INSTALLPRIVLIB)" \
- LINKTYPE "$(LINKTYPE)" \
- VERSION "$(VERSION)" \
- EXE_FILES "$(EXE_FILES)" \
- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{
doc_site_install ::
- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
- -$(NOECHO) $(DOC_INSTALL) \
+ $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLSITEARCH)/perllocal.pod
+ -$(NOECHO) $(MKPATH) $(DESTINSTALLSITEARCH)
+ -$(NOECHO) $(DOC_INSTALL) \
"Module" "$(NAME)" \
"installed into" "$(INSTALLSITELIB)" \
LINKTYPE "$(LINKTYPE)" \
VERSION "$(VERSION)" \
EXE_FILES "$(EXE_FILES)" \
- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{
+ >> }.$self->catfile('$(DESTINSTALLSITEARCH)','perllocal.pod').q{
doc_vendor_install ::
- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
- -$(NOECHO) $(DOC_INSTALL) \
- "Module" "$(NAME)" \
- "installed into" "$(INSTALLVENDORLIB)" \
- LINKTYPE "$(LINKTYPE)" \
- VERSION "$(VERSION)" \
- EXE_FILES "$(EXE_FILES)" \
- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{
};
@@ -2131,13 +2109,12 @@
$(NOECHO) $(NOOP)
uninstall_from_perldirs ::
- $(NOECHO) $(UNINSTALL) }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{
uninstall_from_sitedirs ::
$(NOECHO) $(UNINSTALL) }.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{
uninstall_from_vendordirs ::
- $(NOECHO) $(UNINSTALL) }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{
+
};
join("",@m);
@@ -0,0 +1,24 @@
Index: perl-5.8.8/lib/ExtUtils/MM_Unix.pm
===================================================================
--- perl-5.8.8.orig/lib/ExtUtils/MM_Unix.pm 2008-10-31 22:01:35.000000000 +0000
+++ perl-5.8.8/lib/ExtUtils/MM_Unix.pm 2008-11-08 16:01:12.000000000 +0000
@@ -1597,6 +1597,19 @@
$self->{PERL_LIB} ||= $Config{privlibexp};
$self->{PERL_ARCHLIB} ||= $Config{archlibexp};
$self->{PERL_INC} = $self->catdir("$self->{PERL_ARCHLIB}","CORE"); # wild guess for now
+ # Check for environment override so we'll find the headers in the correct place
+ if (defined $ENV{PERL_LIB})
+ {
+ $self->{PERL_LIB} = $ENV{PERL_LIB};
+ }
+ if (defined $ENV{PERL_ARCHLIB})
+ {
+ $self->{PERL_ARCHLIB} = $ENV{PERL_ARCHLIB};
+ }
+ if (defined $ENV{PERL_INC})
+ {
+ $self->{PERL_INC} = $ENV{PERL_INC};
+ }
my $perl_h;
if (not -f ($perl_h = $self->catfile($self->{PERL_INC},"perl.h"))
@@ -0,0 +1,14 @@
Fix for compiling with ssp enabled gcc:
See http://bugs.openembedded.net/show_bug.cgi?id=1980
diff -Naur perl-5.8.7.orig/cflags.SH perl-5.8.7/cflags.SH
--- perl-5.8.7.orig/cflags.SH 2002-09-30 10:59:07.000000000 +0000
+++ perl-5.8.7/cflags.SH 2005-10-02 04:08:39.000000000 +0000
@@ -165,6 +165,8 @@
esac
: Can we perhaps use $ansi2knr here
+ [[ $file == regcomp ]] && export ccflags="${ccflags} -fno-stack-protector"
+ [[ $file == regexec ]] && export ccflags="${ccflags} -fno-stack-protector"
echo "$cc -c -DPERL_CORE $ccflags $optimize $warn"
eval "$also "'"$cc -DPERL_CORE -c $ccflags $optimize $warn"'
@@ -0,0 +1,43 @@
This patch is used for perl-native only. It enables the switching of
configuration files between Config_heavy.pl and
Config_heavy-target.pl by setting the environment variables
PERLCONFIGTARGET - the later containing settings for the target while
the former contains those for the host. This will allow cpan.bbclass
to use the settings appropriate for the native and/or target builds
as required. This also disables the use of the cache since the cached
values would be valid for the host only.
--- perl-5.8.8/configpm 2007/04/30 03:10:43 1.1
+++ perl-5.8.8/configpm 2007/04/30 03:11:56
@@ -374,7 +374,7 @@
my($self, $key) = @_;
# check for cached value (which may be undef so we use exists not defined)
- return $self->{$key} if exists $self->{$key};
+ #return $self->{$key} if exists $self->{$key};
return $self->fetch_string($key);
}
@@ -530,7 +530,21 @@
sub DESTROY { }
sub AUTOLOAD {
- require 'Config_heavy.pl';
+ my $cfgfile = 'Config_heavy.pl';
+ if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} eq "yes")
+ {
+ $cfgfile = 'Config_heavy-target.pl';
+ }
+ if (defined $ENV{PERL_ARCHLIB})
+ {
+ push @INC, $ENV{PERL_ARCHLIB};
+ require $cfgfile;
+ pop @INC;
+ }
+ else
+ {
+ require $cfgfile;
+ }
goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/;
die "&Config::AUTOLOAD failed on $Config::AUTOLOAD";
}
+43
View File
@@ -0,0 +1,43 @@
ls#! /bin/sh
#
# Generate the common perl configuration
# Needs to be run on a host that matches the bitsize of the target platform
#
echo sh Configure -des \
-Doptimize=-O2 \
-Dmyhostname=localhost \
-Dperladmin=root@localhost \
-Dcc=gcc \
-Dcf_by='Open Embedded' \
-Dinstallprefix=@DESTDIR@ \
-Dprefix=/usr \
-Dvendorprefix=/usr \
-Dsiteprefix=/usr \
-Dotherlibdirs=/usr/lib/perl5/5.8.8 \
-Duseshrplib \
-Dusethreads \
-Duseithreads \
-Duselargefiles \
-Ud_dosuid \
-Dd_semctl_semun \
-Ui_db \
-Ui_ndbm \
-Ui_gdbm \
-Di_shadow \
-Di_syslog \
-Dman3ext=3pm \
-Duseperlio \
-Dinstallusrbinperl \
-Ubincompat5005 \
-Uversiononly \
-Dpager='/usr/bin/less -isr'
cp -f config.sh config.sh.COMMON
TARGETOS=$(grep myarchname config.sh.COMMON | sed "s#.*'\(.*\)'.*#\1#")
sed -r -i config.sh.COMMON \
-e "s#(install.*=')(/usr)/local(.*')#\1@DESTDIR@\2\3#g" \
-e 's#'$TARGETOS'#@ARCH@#g'
@@ -0,0 +1,23 @@
Allow the location that .so files are searched for for dynamic
loading to be changed via an environment variable. This is to allow
us to load .so's from the host system while building for the target
system.
--- perl-5.8.8/ext/DynaLoader/XSLoader_pm.PL 2007/04/20 09:03:08 1.1
+++ perl-5.8.8/ext/DynaLoader/XSLoader_pm.PL 2007/04/20 09:41:28
@@ -65,6 +65,15 @@
print OUT <<'EOT';
my $modpname = join('/',@modparts);
my $modlibname = (caller())[1];
+ # OE: Allow env to form dynamic loader to look in a different place
+ # This is so it finds the host .so files, not the targets
+ if (defined $ENV{PERLHOSTLIB})
+ {
+ my $hostlib = $ENV{PERLHOSTLIB};
+ print STDERR "*** Module name IN: $modlibname\n";
+ $modlibname =~ s#(?<!/)(\.\./)*lib/#$hostlib#g;
+ print STDERR "*** Module name OUT: $modlibname\n";
+ }
my $c = @modparts;
$modlibname =~ s,[\\/][^\\/]+$,, while $c--; # Q&D basename
my $file = "$modlibname/auto/$modpname/$modfname.$dl_dlext";
@@ -0,0 +1,16 @@
We need ld in the fake config library, but it's not included by default. So
expand the number of items included. While this works it indicates that the
rest of the config items are not being picked up and/or are being picked up
from the host. More investigation needed.
--- perl-5.8.8/configpm 2007/04/20 09:48:05 1.1
+++ perl-5.8.8/configpm 2007/04/20 09:57:12
@@ -2,7 +2,7 @@
use strict;
use vars qw(%Config $Config_SH_expanded);
-my $how_many_common = 22;
+my $how_many_common = 50;
# commonly used names to precache (and hence lookup fastest)
my %Common;
@@ -0,0 +1,93 @@
DESCRIPTION = "Perl is a popular scripting language."
HOMEPAGE = "http://www.perl.org/"
SECTION = "libs"
LICENSE = "Artistic|GPL"
DEPENDS = "virtual/db-native gdbm-native"
PR = "r14"
SRC_URI = "http://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz \
file://perl-5.8.8-gcc-4.2.patch;patch=1 \
file://Configure-multilib.patch;patch=1 \
file://perl-configpm-switch.patch;patch=1 \
file://native-nopacklist.patch;patch=1 \
file://native-no-gdbminc.patch;patch=1 \
file://native-perlinc.patch;patch=1 \
file://makedepend-dash.patch;patch=1 \
file://asm-pageh-fix.patch;patch=1"
S = "${WORKDIR}/perl-${PV}"
inherit native
do_configure () {
./Configure \
-Dcc="${CC}" \
-Dcflags="${CFLAGS}" \
-Dldflags="${LDFLAGS}" \
-Dcf_by="Open Embedded" \
-Dprefix=${prefix} \
-Dvendorprefix=${prefix} \
-Dvendorprefix=${prefix} \
-Dsiteprefix=${prefix} \
\
-Dprivlib=${STAGING_LIBDIR}/perl/${PV} \
-Darchlib=${STAGING_LIBDIR}/perl/${PV} \
-Dvendorlib=${STAGING_LIBDIR}/perl/${PV} \
-Dvendorarch=${STAGING_LIBDIR}/perl/${PV} \
-Dsitelib=${STAGING_LIBDIR}/perl/${PV} \
-Dsitearch=${STAGING_LIBDIR}/perl/${PV} \
\
-Duseshrplib \
-Dusethreads \
-Duseithreads \
-Duselargefiles \
-Dnoextensions=ODBM_File \
-Ud_dosuid \
-Ui_db \
-Ui_ndbm \
-Ui_gdbm \
-Di_shadow \
-Di_syslog \
-Duseperlio \
-Dman3ext=3pm \
-Uafs \
-Ud_csh \
-Uusesfio \
-Uusenm -des
}
do_install () {
oe_runmake 'DESTDIR=${D}' install
# We need a hostperl link for building perl
ln -sf perl${PV} ${D}${bindir}/hostperl
install -d ${D}${libdir}/perl/${PV}/CORE \
${D}${datadir}/perl/${PV}/ExtUtils
# Save native config
install config.sh ${D}${libdir}/perl
install lib/Config.pm ${D}${libdir}/perl/${PV}/
install lib/ExtUtils/typemap ${D}${datadir}/perl/${PV}/ExtUtils/
# perl shared library headers
for i in av.h embed.h gv.h keywords.h op.h perlio.h pp.h regexp.h \
uconfig.h XSUB.h cc_runtime.h embedvar.h handy.h opnames.h \
perliol.h pp_proto.h regnodes.h unixish.h config.h EXTERN.h \
hv.h malloc_ctl.h pad.h perlsdio.h proto.h scope.h utf8.h \
cop.h fakesdio.h INTERN.h mg.h patchlevel.h perlsfio.h \
reentr.h sv.h utfebcdic.h cv.h fakethr.h intrpvar.h \
nostdio.h perlapi.h perlvars.h reentr.inc thrdvar.h util.h \
dosish.h form.h iperlsys.h opcode.h perl.h perly.h regcomp.h \
thread.h warnings.h; do
install $i ${D}${libdir}/perl/${PV}/CORE
done
}
do_install_append_nylon() {
# get rid of definitions not supported by the gcc version we use for nylon...
for i in ${D}${libdir}/perl/${PV}/Config_heavy.pl ${D}${libdir}/perl/config.sh; do
perl -pi -e 's/-Wdeclaration-after-statement //g' ${i}
done
}
PARALLEL_MAKE = ""
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,45 @@
#
# Some packages changed names in 5.8.7-r14, RPROVIDE them for things that
# depend on the old name
#
RPROVIDES_perl-module-b-asmdata = "perl-module-${TARGET_SYS}-b-asmdata"
RPROVIDES_perl-module-b-assembler = "perl-module-${TARGET_SYS}-b-assembler"
RPROVIDES_perl-module-b-bblock = "perl-module-${TARGET_SYS}-b-bblock"
RPROVIDES_perl-module-b-bytecode = "perl-module-${TARGET_SYS}-b-bytecode"
RPROVIDES_perl-module-b-cc = "perl-module-${TARGET_SYS}-b-cc"
RPROVIDES_perl-module-b-concise = "perl-module-${TARGET_SYS}-b-concise"
RPROVIDES_perl-module-b-debug = "perl-module-${TARGET_SYS}-b-debug"
RPROVIDES_perl-module-b-deparse = "perl-module-${TARGET_SYS}-b-deparse"
RPROVIDES_perl-module-b-disassembler = "perl-module-${TARGET_SYS}-b-disassembler"
RPROVIDES_perl-module-b-lint = "perl-module-${TARGET_SYS}-b-lint"
RPROVIDES_perl-module-b-showlex = "perl-module-${TARGET_SYS}-b-showlex"
RPROVIDES_perl-module-b-stackobj = "perl-module-${TARGET_SYS}-b-stackobj"
RPROVIDES_perl-module-b-stash = "perl-module-${TARGET_SYS}-b-stash"
RPROVIDES_perl-module-b-terse = "perl-module-${TARGET_SYS}-b-terse"
RPROVIDES_perl-module-b-xref = "perl-module-${TARGET_SYS}-b-xref"
RPROVIDES_perl-module-config = "perl-module-${TARGET_SYS}-config"
RPROVIDES_perl-module-config-heavy = "perl-module-${TARGET_SYS}-config-heavy"
RPROVIDES_perl-module-encode-alias = "perl-module-${TARGET_SYS}-encode-alias"
RPROVIDES_perl-module-encode-cjkconstants = "perl-module-${TARGET_SYS}-encode-cjkconstants"
RPROVIDES_perl-module-encode-config = "perl-module-${TARGET_SYS}-encode-config"
RPROVIDES_perl-module-encode-encoder = "perl-module-${TARGET_SYS}-encode-encoder"
RPROVIDES_perl-module-encode-encoding = "perl-module-${TARGET_SYS}-encode-encoding"
RPROVIDES_perl-module-encode-guess = "perl-module-${TARGET_SYS}-encode-guess"
RPROVIDES_perl-module-encoding = "perl-module-${TARGET_SYS}-encoding"
RPROVIDES_perl-module-errno = "perl-module-${TARGET_SYS}-errno"
RPROVIDES_perl-module-io-dir = "perl-module-${TARGET_SYS}-io-dir"
RPROVIDES_perl-module-io-file = "perl-module-${TARGET_SYS}-io-file"
RPROVIDES_perl-module-io-handle = "perl-module-${TARGET_SYS}-io-handle"
RPROVIDES_perl-module-io-pipe = "perl-module-${TARGET_SYS}-io-pipe"
RPROVIDES_perl-module-io-poll = "perl-module-${TARGET_SYS}-io-poll"
RPROVIDES_perl-module-io-seekable = "perl-module-${TARGET_SYS}-io-seekable"
RPROVIDES_perl-module-io-select = "perl-module-${TARGET_SYS}-io-select"
RPROVIDES_perl-module-io-socket = "perl-module-${TARGET_SYS}-io-socket"
RPROVIDES_perl-module-ipc-msg = "perl-module-${TARGET_SYS}-ipc-msg"
RPROVIDES_perl-module-ipc-semaphore = "perl-module-${TARGET_SYS}-ipc-semaphore"
RPROVIDES_perl-module-lib = "perl-module-${TARGET_SYS}-lib"
RPROVIDES_perl-module-mime-quotedprint = "perl-module-${TARGET_SYS}-mime-quotedprint"
RPROVIDES_perl-module-o = "perl-module-${TARGET_SYS}-o"
RPROVIDES_perl-module-ops = "perl-module-${TARGET_SYS}-ops"
RPROVIDES_perl-module-safe = "perl-module-${TARGET_SYS}-safe"
RPROVIDES_perl-module-xsloader = "perl-module-${TARGET_SYS}-xsloader"
+218
View File
@@ -0,0 +1,218 @@
DESCRIPTION = "Perl is a popular scripting language."
HOMEPAGE = "http://www.perl.org/"
SECTION = "devel"
LICENSE = "Artistic|GPL"
PRIORITY = "optional"
# We need gnugrep (for -I)
DEPENDS = "virtual/db perl-native grep-native"
PR = "r20"
# Major part of version
PVM = "5.8"
SRC_URI = "ftp://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz \
file://Makefile.patch;patch=1 \
file://Makefile.SH.patch;patch=1 \
file://makedepend-dash.patch;patch=1 \
file://installperl.patch;patch=1 \
file://perl-dynloader.patch;patch=1 \
file://perl-moreconfig.patch;patch=1 \
file://letgcc-find-errno.patch;patch=1 \
file://generate-sh.patch;patch=1 \
file://perl-5.8.8-gcc-4.2.patch;patch=1 \
file://09_fix_installperl.patch;patch=1 \
file://52_debian_extutils_hacks.patch;patch=1 \
file://53_debian_mod_paths.patch;patch=1 \
file://54_debian_perldoc-r.patch;patch=1 \
file://58_debian_cpan_config_path.patch;patch=1 \
file://60_debian_libnet_config_path.patch;patch=1 \
file://62_debian_cpan_definstalldirs.patch;patch=1 \
file://64_debian_enc2xs_inc.patch;patch=1 \
file://asm-pageh-fix.patch;patch=1 \
file://native-perlinc.patch;patch=1 \
file://config.sh \
file://config.sh-32 \
file://config.sh-32-le \
file://config.sh-32-be \
file://config.sh-64 \
file://config.sh-64-le \
file://config.sh-64-be"
inherit siteinfo
# Where to find the native perl
HOSTPERL = "${STAGING_BINDIR_NATIVE}/perl${PV}"
# Where to find .so files - use the -native versions not those from the target build
export PERLHOSTLIB = "${STAGING_LIBDIR_NATIVE}/perl/${PV}/"
do_configure() {
# Make hostperl in build directory be the native perl
ln -s ${HOSTPERL} hostperl
# Do our work in the cross subdir
cd Cross
# Generate configuration
rm -f config.sh-${TARGET_ARCH}-${TARGET_OS}
for i in ${WORKDIR}/config.sh \
${WORKDIR}/config.sh-${@siteinfo_get_bits(d)} \
${WORKDIR}/config.sh-${@siteinfo_get_bits(d)}-${@siteinfo_get_endianess(d)}; do
cat $i >> config.sh-${TARGET_ARCH}-${TARGET_OS}
done
# Fixups for uclibc
if [ "${TARGET_OS}" = "linux-uclibc" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
sed -i -e "s,\(d_crypt_r=\)'define',\1'undef',g" \
-e "s,\(crypt_r_proto=\)'\w+',\1'0',g" \
-e "s,\(d_getnetbyname_r=\)'define',\1'undef',g" \
-e "s,\(getnetbyname_r_proto=\)'\w+',\1'0',g" \
-e "s,\(d_getnetbyaddr_r=\)'define',\1'undef',g" \
-e "s,\(getnetbyaddr_r_proto=\)'\w+',\1'0',g" \
-e "s,\(d_getnetent_r=\)'define',\1'undef',g" \
-e "s,\(getnetent_r_proto=\)'\w+',\1'0',g" \
-e "s,\(d_sockatmark=\)'define',\1'undef',g" \
-e "s,\(d_sockatmarkproto=\)'\w+',\1'0',g" \
config.sh-${TARGET_ARCH}-${TARGET_OS}
fi
# Update some paths in the configuration
sed -i -e 's,@LIBDIR@,${libdir},g' \
-e 's,@BINDIR@,${bindir},g' \
-e 's,@MANDIR@,${mandir},g' \
-e 's,@PREFIX@,${prefix},g' \
-e 's,@DATADIR@,${datadir},g' \
-e 's,@ARCH@,${TARGET_ARCH}-${TARGET_OS},g' \
-e "s%/usr/include/%${STAGING_INCDIR}/%g" \
-e 's,/usr/,${exec_prefix}/,g' \
config.sh-${TARGET_ARCH}-${TARGET_OS}
# These are strewn all over the source tree
for foo in `grep -I -m1 \/usr\/include\/.*\\.h ${WORKDIR}/* -r | cut -f 1 -d ":"` ; do
echo Fixing: $foo
sed -e "s%/usr/include/%${STAGING_INCDIR}/%g" -i $foo
done
rm -f config
echo "ARCH = ${TARGET_ARCH}" > config
echo "OS = ${TARGET_OS}" >> config
}
do_compile() {
if test "${MACHINE}" != "native"; then
sed -i -e 's|/usr/include|${STAGING_INCDIR}|g' ext/Errno/Errno_pm.PL
fi
cd Cross
oe_runmake perl LD="${TARGET_SYS}-gcc"
}
do_install() {
oe_runmake 'DESTDIR=${D}' install
# Add perl pointing at current version
ln -sf perl${PV} ${D}${bindir}/perl
# Fix up versioned directories
mv ${D}/${libdir}/perl/${PVM} ${D}/${libdir}/perl/${PV}
mv ${D}/${datadir}/perl/${PVM} ${D}/${datadir}/perl/${PV}
ln -sf ${PV} ${D}/${libdir}/perl/${PVM}
ln -sf ${PV} ${D}/${datadir}/perl/${PVM}
# Remove unwanted file
rm -f ${D}/${libdir}/perl/${PV}/.packlist
# Fix up shared library
mv -f ${D}/${libdir}/perl/${PV}/CORE/libperl.so ${D}/${libdir}/libperl.so.${PV}
ln -sf libperl.so.${PV} ${D}/${libdir}/libperl.so.5
# target config, used by cpan.bbclass to extract version information
install config.sh ${D}${libdir}/perl/
install -d ${D}${datadir}/perl/${PV}/ExtUtils
install lib/ExtUtils/typemap ${D}${datadir}/perl/${PV}/ExtUtils/
ln -s Config_heavy.pl ${D}${libdir}/perl/${PV}/Config_heavy-target.pl
}
PACKAGE_PREPROCESS_FUNCS += "perl_package_preprocess"
perl_package_preprocess () {
# Fix up installed configuration
sed -i -e "s,${D},,g" \
-e "s,-isystem${STAGING_INCDIR} ,,g" \
-e "s,${STAGING_LIBDIR},${libdir},g" \
-e "s,${STAGING_BINDIR},${bindir},g" \
-e "s,${STAGING_INCDIR},${includedir},g" \
-e "s,${STAGING_BINDIR_NATIVE}/,,g" \
${PKGD}${bindir}/h2xs \
${PKGD}${bindir}/h2ph \
${PKGD}${datadir}/perl/${PV}/pod/*.pod \
${PKGD}${datadir}/perl/${PV}/cacheout.pl \
${PKGD}${datadir}/perl/${PV}/FileCache.pm \
${PKGD}${libdir}/perl/config.sh \
${PKGD}${libdir}/perl/${PV}/Config.pm \
${PKGD}${libdir}/perl/${PV}/Config_heavy.pl \
${PKGD}${libdir}/perl/${PV}/CORE/perl.h \
${PKGD}${libdir}/perl/${PV}/CORE/pp.h
}
PACKAGES = "perl-dbg perl perl-misc perl-lib perl-dev perl-pod perl-doc"
FILES_${PN} = "${bindir}/perl ${bindir}/perl${PV}"
FILES_${PN}-lib = "${libdir}/libperl.so* ${libdir}/perl/${PVM} ${datadir}/perl/${PVM}"
FILES_${PN}-dev = "${libdir}/perl/${PV}/CORE"
FILES_${PN}-pod = "${datadir}/perl/${PV}/pod \
${datadir}/perl/${PV}/*/*.pod \
${datadir}/perl/${PV}/*/*/*.pod \
${libdir}/perl/${PV}/*.pod"
FILES_perl-misc = "${bindir}/*"
FILES_${PN}-dbg += "${libdir}/perl/${PV}/auto/*/.debug \
${libdir}/perl/${PV}/auto/*/*/.debug \
${libdir}/perl/${PV}/auto/*/*/*/.debug \
${datadir}/perl/${PV}/auto/*/.debug \
${datadir}/perl/${PV}/auto/*/*/.debug \
${datadir}/perl/${PV}/auto/*/*/*/.debug \
${libdir}/perl/${PV}/CORE/.debug"
FILES_${PN}-doc = "${datadir}/perl/${PV}/*/*.txt \
${datadir}/perl/${PV}/*/*/*.txt \
${datadir}/perl/${PV}/Net/*.eg \
${datadir}/perl/${PV}/CGI/eg \
${datadir}/perl/${PV}/ExtUtils/PATCHING \
${datadir}/perl/${PV}/ExtUtils/NOTES \
${datadir}/perl/${PV}/ExtUtils/typemap \
${datadir}/perl/${PV}/ExtUtils/MANIFEST.SKIP \
${datadir}/perl/${PV}/CPAN/SIGNATURE \
${datadir}/perl/${PV}/CPAN/PAUSE2003.pub \
${datadir}/perl/${PV}/B/assemble \
${datadir}/perl/${PV}/B/makeliblinks \
${datadir}/perl/${PV}/B/disassemble \
${datadir}/perl/${PV}/B/cc_harness \
${datadir}/perl/${PV}/ExtUtils/xsubpp \
${datadir}/perl/${PV}/Encode/encode.h \
${datadir}/perl/${PV}/unicore/mktables \
${datadir}/perl/${PV}/unicore/mktables.lst \
${datadir}/perl/${PV}/unicore/version"
RPROVIDES_perl-lib = "perl-lib"
# Create a perl-modules package recommending all the other perl
# packages (actually the non modules packages and not created too)
ALLOW_EMPTY_perl-modules = "1"
PACKAGES_append = " perl-modules "
RRECOMMENDS_perl-modules = "${@bb.data.getVar('PACKAGES', d, 1).replace('perl-modules ', '').replace('perl-dbg ', '').replace('perl-misc ', '').replace('perl-dev ', '').replace('perl-pod ', '').replace('perl-doc ', '')}"
python populate_packages_prepend () {
libdir = bb.data.expand('${libdir}/perl/${PV}', d)
do_split_packages(d, libdir, 'auto/(.*)(?!\.debug)/', 'perl-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True)
do_split_packages(d, libdir, '(.*)\.(pm|pl|e2x)', 'perl-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True)
datadir = bb.data.expand('${datadir}/perl/${PV}', d)
do_split_packages(d, datadir, 'auto/(.*)(?!\.debug)/', 'perl-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True)
do_split_packages(d, datadir, '(.*)\.(pm|pl|e2x)', 'perl-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True)
}
PACKAGES_DYNAMIC = "perl-module-*"
require perl-rdepends_${PV}.inc
require perl-rprovides.inc
PARALLEL_MAKE = ""