perl 5.8.8: Patch MakeMaker in perl-native to check for PERL_INC in the
authorJamie Lenehan <lenehan@twibble.org>
Wed, 30 May 2007 06:55:33 +0000 (06:55 +0000)
committerJamie Lenehan <lenehan@twibble.org>
Wed, 30 May 2007 06:55:33 +0000 (06:55 +0000)
environment and use that instead of the configured location of PERL_INC.
Without this PERL_INC for non-native recipes ends up pointing at where the
headers will be located on the target. In theory we could override this in
cpan class when calling build.PL but for some packages, such as
libxml-parser-perl, that only fixes the top-level makefile and is not
propagated to the sub-makefiles. This change results in MakeMaker always
picking up the correct staged location of the include files without
effecting where they expect to be found on the target.

classes/cpan.bbclass
packages/perl/perl-5.8.8/native-perlinc.patch [new file with mode: 0644]
packages/perl/perl-native_5.8.8.bb

index 3b1a2b7..4fff597 100644 (file)
@@ -8,6 +8,9 @@ EXTRA_CPANFLAGS ?= ""
 # Env var which tells perl if it should use host (no) or target (yes) settings
 export PERLCONFIGTARGET = "${@is_target(d)}"
 
+# Env var which tells perl where the perl include files are
+export PERL_INC = "${STAGING_DIR}/${BUILD_SYS}/lib/perl/${@get_perl_version(d)}/CORE"
+
 cpan_do_configure () {
        yes '' | perl Makefile.PL ${EXTRA_CPANFLAGS}
        if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
diff --git a/packages/perl/perl-5.8.8/native-perlinc.patch b/packages/perl/perl-5.8.8/native-perlinc.patch
new file mode 100644 (file)
index 0000000..aea38a0
--- /dev/null
@@ -0,0 +1,16 @@
+Index: perl-5.8.8/lib/ExtUtils/MM_Unix.pm
+===================================================================
+--- perl-5.8.8.orig/lib/ExtUtils/MM_Unix.pm    2007-05-30 15:16:47.000000000 +1000
++++ perl-5.8.8/lib/ExtUtils/MM_Unix.pm 2007-05-30 15:18:12.000000000 +1000
+@@ -1597,6 +1597,11 @@
+       $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_INC})
++        {
++            $self->{PERL_INC} = $ENV{PERL_INC};
++        }
+       my $perl_h;
+       if (not -f ($perl_h = $self->catfile($self->{PERL_INC},"perl.h"))
index 782a61f..de7e4ff 100644 (file)
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.perl.org/"
 SECTION = "libs"
 LICENSE = "Artistic|GPL"
 DEPENDS = "virtual/db-native gdbm-native"
-PR = "r8"
+PR = "r9"
 
 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/perl-${PV}"
 
@@ -12,7 +12,8 @@ SRC_URI = "http://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz \
            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-no-gdbminc.patch;patch=1 \
+           file://native-perlinc.patch;patch=1"
 
 S = "${WORKDIR}/perl-${PV}"