Files
poky/meta/recipes-devtools/perl/perl-5.12.2/debian/extutils_hacks.diff
Nitin A Kamble 345de20815 perl-5.12.2: use of PERLHOSTLIB var fix
PERLHOSTLIB var is used to build target perl. It let perl use the native
perl .so module files at the time of compilation of target perl.

These changes to perl make the PERLHOSTLIB variable also useful for
building perl modules to use native .so perl module.

(From OE-Core rev: f4d51e63c0df777bbcbe9ad160eb3ba41ae74c6e)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-04-24 22:50:36 +01:00

316 lines
12 KiB
Diff

Upstream-Status:Inappropriate [debian patch]
Subject: 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.
* Change install target dependencies to facilitate parallel makes.
---
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm | 12 +++---
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | 44 +++++-----------------
cpan/ExtUtils-MakeMaker/t/INST.t | 4 +--
cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t | 10 +++---
dist/ExtUtils-Install/lib/ExtUtils/Install.pm | 18 +++++-----
lib/ExtUtils/Embed.pm | 3 ++
6 files changed, 34 insertions(+), 57 deletions(-)
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
index 4905aeb..a80ac20 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
@@ -701,8 +701,6 @@ all POD files in MAN1PODS and MAN3PODS.
sub manifypods_target {
my($self) = shift;
- my $man1pods = '';
- my $man3pods = '';
my $dependencies = '';
# populate manXpods & dependencies:
@@ -718,7 +716,7 @@ END
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
}
@@ -1428,9 +1426,11 @@ sub init_INSTALL_from_PREFIX {
$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 --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
index 239d6df..940de38 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
@@ -2046,9 +2046,7 @@ doc__install : doc_site_install
$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
pure_perl_install :: all
- $(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) \
@@ -2060,7 +2058,7 @@ pure_perl_install :: all
pure_site_install :: all
- $(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) \
@@ -2073,9 +2071,7 @@ pure_site_install :: all
}.$self->catdir('$(PERL_ARCHLIB)','auto','$(FULLEXT)').q{
pure_vendor_install :: all
- $(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) \
@@ -2084,37 +2080,19 @@ pure_vendor_install :: all
$(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)
doc_perl_install :: all
- $(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 :: all
- $(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 :: all
- $(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{
};
@@ -2123,13 +2101,12 @@ uninstall :: uninstall_from_$(INSTALLDIRS)dirs
$(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);
@@ -2402,7 +2379,7 @@ MAP_PRELIBS = $Config{perllibs} $Config{cryptlib}
($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";
@@ -2998,8 +2975,7 @@ sub prefixify {
print STDERR " prefixify $var => $path\n" if $Verbose >= 2;
print STDERR " from $sprefix to $rprefix\n" if $Verbose >= 2;
- if( $self->{ARGS}{PREFIX} &&
- $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 --git a/cpan/ExtUtils-MakeMaker/t/INST.t b/cpan/ExtUtils-MakeMaker/t/INST.t
index 8a140eb..cf1410e 100755
--- a/cpan/ExtUtils-MakeMaker/t/INST.t
+++ b/cpan/ExtUtils-MakeMaker/t/INST.t
@@ -59,9 +59,7 @@ isa_ok( $mm, 'ExtUtils::MakeMaker' );
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 --git a/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t b/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t
index 8bb9db8..316546d 100755
--- a/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t
+++ b/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t
@@ -10,7 +10,7 @@ BEGIN {
}
use strict;
-use Test::More tests => 52;
+use Test::More tests => 47;
use MakeMaker::Test::Utils;
use MakeMaker::Test::Setup::BFD;
use ExtUtils::MakeMaker;
@@ -56,16 +56,16 @@ like( $stdout->read, qr{
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');
diff --git a/dist/ExtUtils-Install/lib/ExtUtils/Install.pm b/dist/ExtUtils-Install/lib/ExtUtils/Install.pm
index da58365..d6d5c11 100644
--- a/dist/ExtUtils-Install/lib/ExtUtils/Install.pm
+++ b/dist/ExtUtils-Install/lib/ExtUtils/Install.pm
@@ -468,7 +468,7 @@ sub _can_write_dir {
=pod
-=item _mkpath($dir,$show,$mode,$verbose,$dry_run)
+=item _mkpath($dir,$show,$verbose,$dry_run)
Wrapper around File::Path::mkpath() to handle errors.
@@ -485,13 +485,13 @@ writable.
=cut
sub _mkpath {
- my ($dir,$show,$mode,$verbose,$dry_run)=@_;
+ my ($dir,$show,$verbose,$dry_run)=@_;
if ( $verbose && $verbose > 1 && ! -d $dir) {
$show= 1;
- printf "mkpath(%s,%d,%#o)\n", $dir, $show, $mode;
+ printf "mkpath(%s,%d)\n", $dir, $show;
}
if (!$dry_run) {
- if ( ! eval { File::Path::mkpath($dir,$show,$mode); 1 } ) {
+ if ( ! eval { File::Path::mkpath($dir,$show); 1 } ) {
_choke("Can't create '$dir'","$@");
}
@@ -796,7 +796,7 @@ sub install { #XXX OS-SPECIFIC
_chdir($cwd);
}
foreach my $targetdir (sort keys %check_dirs) {
- _mkpath( $targetdir, 0, 0755, $verbose, $dry_run );
+ _mkpath( $targetdir, 0, $verbose, $dry_run );
}
foreach my $found (@found_files) {
my ($diff, $ffd, $origfile, $mode, $size, $atime, $mtime,
@@ -810,7 +810,7 @@ sub install { #XXX OS-SPECIFIC
$targetfile= _unlink_or_rename( $targetfile, 'tryhard', 'install' )
unless $dry_run;
} elsif ( ! -d $targetdir ) {
- _mkpath( $targetdir, 0, 0755, $verbose, $dry_run );
+ _mkpath( $targetdir, 0, $verbose, $dry_run );
}
print "Installing $targetfile\n";
@@ -850,7 +850,7 @@ sub install { #XXX OS-SPECIFIC
if ($pack{'write'}) {
$dir = install_rooted_dir(dirname($pack{'write'}));
- _mkpath( $dir, 0, 0755, $verbose, $dry_run );
+ _mkpath( $dir, 0, $verbose, $dry_run );
print "Writing $pack{'write'}\n" if $verbose;
$packlist->write(install_rooted_file($pack{'write'})) unless $dry_run;
}
@@ -1190,7 +1190,7 @@ be prepended as a directory to each installed file (and directory).
sub pm_to_blib {
my($fromto,$autodir,$pm_filter) = @_;
- _mkpath($autodir,0,0755);
+ _mkpath($autodir,0);
while(my($from, $to) = each %$fromto) {
if( -f $to && -s $from == -s $to && -M $to < -M $from ) {
print "Skip $to (unchanged)\n";
@@ -1213,7 +1213,7 @@ sub pm_to_blib {
# we wont try hard here. its too likely to mess things up.
forceunlink($to);
} else {
- _mkpath(dirname($to),0,0755);
+ _mkpath(dirname($to),0);
}
if ($need_filtering) {
run_filter($pm_filter, $from, $to);
diff --git a/lib/ExtUtils/Embed.pm b/lib/ExtUtils/Embed.pm
index 24ae909..12d421d 100644
--- a/lib/ExtUtils/Embed.pm
+++ b/lib/ExtUtils/Embed.pm
@@ -305,6 +305,9 @@ and extensions in your C/C++ applications.
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:
--
tg: (c823880..) debian/extutils_hacks (depends on: upstream)