|
|
@@ -24,3 +24,123 @@ only once aren't affected by this bug.)"
|
|
|
return Opcode::_safe_call_sv($root, $obj->{Mask}, $evalsub);
|
|
|
}
|
|
|
|
|
|
+-----------------------------------------------------------------------------
|
|
|
+
|
|
|
+By default, the Perl module search order is "use lib, -I, PERL[5]LIB,
|
|
|
+perl, site, vendor, other". This means that in OpenPKG both the modules
|
|
|
+installed via CPAN shell (in "site" area) and the "perl-xxx" packages
|
|
|
+(in "vendor" area) cannot override the (sometimes obsoleted) module
|
|
|
+versions distributed with Perl (in "perl" area). Hence, we change
|
|
|
+the search order to a more reasonable one for OpenPKG: "use lib, -I,
|
|
|
+PERL[5]LIB, site, vendor, perl, other".
|
|
|
+
|
|
|
+--- perl.c.orig 2002-07-09 21:41:43.000000000 +0200
|
|
|
++++ perl.c 2003-09-03 14:08:25.000000000 +0200
|
|
|
+@@ -3679,39 +3679,6 @@
|
|
|
+ incpush(APPLLIB_EXP, TRUE, TRUE);
|
|
|
+ #endif
|
|
|
+
|
|
|
+-#ifdef ARCHLIB_EXP
|
|
|
+- incpush(ARCHLIB_EXP, FALSE, FALSE);
|
|
|
+-#endif
|
|
|
+-#ifdef MACOS_TRADITIONAL
|
|
|
+- {
|
|
|
+- Stat_t tmpstatbuf;
|
|
|
+- SV * privdir = NEWSV(55, 0);
|
|
|
+- char * macperl = PerlEnv_getenv("MACPERL");
|
|
|
+-
|
|
|
+- if (!macperl)
|
|
|
+- macperl = "";
|
|
|
+-
|
|
|
+- Perl_sv_setpvf(aTHX_ privdir, "%slib:", macperl);
|
|
|
+- if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode))
|
|
|
+- incpush(SvPVX(privdir), TRUE, FALSE);
|
|
|
+- Perl_sv_setpvf(aTHX_ privdir, "%ssite_perl:", macperl);
|
|
|
+- if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode))
|
|
|
+- incpush(SvPVX(privdir), TRUE, FALSE);
|
|
|
+-
|
|
|
+- SvREFCNT_dec(privdir);
|
|
|
+- }
|
|
|
+- if (!PL_tainting)
|
|
|
+- incpush(":", FALSE, FALSE);
|
|
|
+-#else
|
|
|
+-#ifndef PRIVLIB_EXP
|
|
|
+-# define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl"
|
|
|
+-#endif
|
|
|
+-#if defined(WIN32)
|
|
|
+- incpush(PRIVLIB_EXP, TRUE, FALSE);
|
|
|
+-#else
|
|
|
+- incpush(PRIVLIB_EXP, FALSE, FALSE);
|
|
|
+-#endif
|
|
|
+-
|
|
|
+ #ifdef SITEARCH_EXP
|
|
|
+ /* sitearch is always relative to sitelib on Windows for
|
|
|
+ * DLL-based path intuition to work correctly */
|
|
|
+@@ -3752,6 +3719,39 @@
|
|
|
+ incpush(PERL_VENDORLIB_STEM, FALSE, TRUE);
|
|
|
+ #endif
|
|
|
+
|
|
|
++#ifdef ARCHLIB_EXP
|
|
|
++ incpush(ARCHLIB_EXP, FALSE, FALSE);
|
|
|
++#endif
|
|
|
++#ifdef MACOS_TRADITIONAL
|
|
|
++ {
|
|
|
++ Stat_t tmpstatbuf;
|
|
|
++ SV * privdir = NEWSV(55, 0);
|
|
|
++ char * macperl = PerlEnv_getenv("MACPERL");
|
|
|
++
|
|
|
++ if (!macperl)
|
|
|
++ macperl = "";
|
|
|
++
|
|
|
++ Perl_sv_setpvf(aTHX_ privdir, "%slib:", macperl);
|
|
|
++ if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode))
|
|
|
++ incpush(SvPVX(privdir), TRUE, FALSE);
|
|
|
++ Perl_sv_setpvf(aTHX_ privdir, "%ssite_perl:", macperl);
|
|
|
++ if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode))
|
|
|
++ incpush(SvPVX(privdir), TRUE, FALSE);
|
|
|
++
|
|
|
++ SvREFCNT_dec(privdir);
|
|
|
++ }
|
|
|
++ if (!PL_tainting)
|
|
|
++ incpush(":", FALSE, FALSE);
|
|
|
++#else
|
|
|
++#ifndef PRIVLIB_EXP
|
|
|
++# define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl"
|
|
|
++#endif
|
|
|
++#if defined(WIN32)
|
|
|
++ incpush(PRIVLIB_EXP, TRUE, FALSE);
|
|
|
++#else
|
|
|
++ incpush(PRIVLIB_EXP, FALSE, FALSE);
|
|
|
++#endif
|
|
|
++
|
|
|
+ #ifdef PERL_OTHERLIBDIRS
|
|
|
+ incpush(PERL_OTHERLIBDIRS, TRUE, TRUE);
|
|
|
+ #endif
|
|
|
+
|
|
|
+-----------------------------------------------------------------------------
|
|
|
+
|
|
|
+By default, the "vendor" area is not used, so Perl's installation
|
|
|
+procedure forgot to create its top-level paths, too. In OpenPKG we use
|
|
|
+the "vendor" area, so make sure it is created the same way the "site"
|
|
|
+area is.
|
|
|
+
|
|
|
+--- installperl.orig 2002-07-16 20:57:32.000000000 +0200
|
|
|
++++ installperl 2003-09-03 14:27:11.000000000 +0200
|
|
|
+@@ -174,6 +174,8 @@
|
|
|
+ my $installarchlib = $Config{installarchlib};
|
|
|
+ my $installsitelib = $Config{installsitelib};
|
|
|
+ my $installsitearch = $Config{installsitearch};
|
|
|
++my $installvendorlib = $Config{installvendorlib};
|
|
|
++my $installvendorarch = $Config{installvendorarch};
|
|
|
+ my $installman1dir = $Config{installman1dir};
|
|
|
+ my $man1ext = $Config{man1ext};
|
|
|
+ my $libperl = $Config{libperl};
|
|
|
+@@ -336,6 +338,8 @@
|
|
|
+ mkpath($installarchlib, $verbose, 0777);
|
|
|
+ mkpath($installsitelib, $verbose, 0777) if ($installsitelib);
|
|
|
+ mkpath($installsitearch, $verbose, 0777) if ($installsitearch);
|
|
|
++mkpath($installvendorlib, $verbose, 0777) if ($installvendorlib);
|
|
|
++mkpath($installvendorarch, $verbose, 0777) if ($installvendorarch);
|
|
|
+
|
|
|
+ if (chdir "lib") {
|
|
|
+ $do_installarchlib = ! samepath($installarchlib, '.');
|