From bca1af865658a00eb25d22c0fb22b8fecc745813 Mon Sep 17 00:00:00 2001 From: Jamie Lenehan Date: Mon, 30 Apr 2007 04:06:31 +0000 Subject: perl 5.8.8: Improvements for cpan modules: * Modify perl to install a copy of it's configuration during staging. This will allow us to get at the perl settings for the target when building cpan modules. * Modify perl-native to allow selection of the host or target configuration based on an environment variable. This will allow the cpan class to select the appropriate configuration based on if we are building the native package or not. * Modify cpan.bbclass to set the environment variable to an appropriate value to tell perl native to select the appropriate settings based on if we are building native or target modules. This change fixes some modules that were compiled for the host instead of the target (libversion-perl for example) and fixes up some of cpan modules that include additional subdirectories with their own makefiles. --- .../perl/perl-5.8.8/perl-configpm-switch.patch | 34 ++++++++++++++++++++++ packages/perl/perl-native_5.8.8.bb | 7 +++-- packages/perl/perl_5.8.8.bb | 3 +- 3 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 packages/perl/perl-5.8.8/perl-configpm-switch.patch (limited to 'packages') diff --git a/packages/perl/perl-5.8.8/perl-configpm-switch.patch b/packages/perl/perl-5.8.8/perl-configpm-switch.patch new file mode 100644 index 0000000000..1aacd35189 --- /dev/null +++ b/packages/perl/perl-5.8.8/perl-configpm-switch.patch @@ -0,0 +1,34 @@ +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,12 @@ + 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'; ++ } ++ require $cfgfile; + goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/; + die "&Config::AUTOLOAD failed on $Config::AUTOLOAD"; + } diff --git a/packages/perl/perl-native_5.8.8.bb b/packages/perl/perl-native_5.8.8.bb index e14ced8691..75002313cd 100644 --- a/packages/perl/perl-native_5.8.8.bb +++ b/packages/perl/perl-native_5.8.8.bb @@ -3,12 +3,15 @@ HOMEPAGE = "http://www.perl.org/" SECTION = "libs" LICENSE = "Artistic|GPL" DEPENDS = "virtual/db-native gdbm-native" -PR = "r0" +PR = "r1" + +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/perl-${PV}" DEFAULT_PREFERENCE = "-1" SRC_URI = "http://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz \ - file://Configure-multilib.patch;patch=1" + file://Configure-multilib.patch;patch=1 \ + file://perl-configpm-switch.patch;patch=1" S = "${WORKDIR}/perl-${PV}" diff --git a/packages/perl/perl_5.8.8.bb b/packages/perl/perl_5.8.8.bb index 486c999eaa..7265074ea7 100644 --- a/packages/perl/perl_5.8.8.bb +++ b/packages/perl/perl_5.8.8.bb @@ -5,7 +5,7 @@ LICENSE = "Artistic|GPL" PRIORITY = "optional" # We need gnugrep (for -I) DEPENDS = "virtual/db perl-native grep-native" -PR = "r7" +PR = "r8" # Major part of version PVM = "5.8" @@ -127,6 +127,7 @@ do_install() { do_stage() { install -d ${STAGING_DIR}/${HOST_SYS}/perl/ install config.sh ${STAGING_DIR}/${HOST_SYS}/perl/ + install lib/Config_heavy.pl ${STAGING_DIR}/${BUILD_SYS}/lib/perl5/${PV}/Config_heavy-target.pl } PACKAGES = "perl-dbg perl perl-misc perl-lib perl-dev perl-pod perl-doc" -- cgit v1.2.3