mirror of
https://git.yoctoproject.org/poky
synced 2026-04-24 12:32:11 +02:00
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>
316 lines
12 KiB
Diff
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)
|