You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
184 lines
5.9 KiB
184 lines
5.9 KiB
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. |
|
|
|
Index: installperl |
|
--- installperl.orig 2003-09-02 15:40:21.000000000 +0200 |
|
+++ installperl 2003-09-26 09:23:15.000000000 +0200 |
|
@@ -189,6 +189,8 @@ |
|
my $installarchlib = "$destdir$Config{installarchlib}"; |
|
my $installsitelib = "$destdir$Config{installsitelib}"; |
|
my $installsitearch = "$destdir$Config{installsitearch}"; |
|
+my $installvendorlib = "$destdir$Config{installvendorlib}"; |
|
+my $installvendorarch = "$destdir$Config{installvendorarch}"; |
|
my $installman1dir = "$destdir$Config{installman1dir}"; |
|
my $man1ext = $Config{man1ext}; |
|
my $libperl = $Config{libperl}; |
|
@@ -379,6 +381,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, '.'); |
|
|
|
----------------------------------------------------------------------------- |
|
|
|
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". |
|
|
|
Index: perl.c |
|
--- perl.c.orig 2003-09-11 23:42:33.000000000 +0200 |
|
+++ perl.c 2003-09-26 09:25:11.000000000 +0200 |
|
@@ -3978,39 +3978,6 @@ |
|
incpush(APPLLIB_EXP, TRUE, TRUE, TRUE); |
|
#endif |
|
|
|
-#ifdef ARCHLIB_EXP |
|
- incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE); |
|
-#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, TRUE); |
|
- 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, TRUE); |
|
- |
|
- SvREFCNT_dec(privdir); |
|
- } |
|
- if (!PL_tainting) |
|
- incpush(":", FALSE, FALSE, TRUE); |
|
-#else |
|
-#ifndef PRIVLIB_EXP |
|
-# define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl" |
|
-#endif |
|
-#if defined(WIN32) |
|
- incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE); |
|
-#else |
|
- incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE); |
|
-#endif |
|
- |
|
#ifdef SITEARCH_EXP |
|
/* sitearch is always relative to sitelib on Windows for |
|
* DLL-based path intuition to work correctly */ |
|
@@ -4052,6 +4019,39 @@ |
|
incpush(PERL_VENDORLIB_STEM, FALSE, TRUE, TRUE); |
|
#endif |
|
|
|
+#ifdef ARCHLIB_EXP |
|
+ incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE); |
|
+#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, TRUE); |
|
+ 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, TRUE); |
|
+ |
|
+ SvREFCNT_dec(privdir); |
|
+ } |
|
+ if (!PL_tainting) |
|
+ incpush(":", FALSE, FALSE, TRUE); |
|
+#else |
|
+#ifndef PRIVLIB_EXP |
|
+# define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl" |
|
+#endif |
|
+#if defined(WIN32) |
|
+ incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE); |
|
+#else |
|
+ incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE); |
|
+#endif |
|
+ |
|
#ifdef PERL_OTHERLIBDIRS |
|
incpush(PERL_OTHERLIBDIRS, TRUE, TRUE, TRUE); |
|
#endif |
|
|
|
----------------------------------------------------------------------------- |
|
|
|
Port to [Open]Darwin 6.6.2: |
|
|
|
1. In OpenPKG, Perl does not use the vendor GCC and our GCC does not |
|
understand "-no-cpp-precomp", so remove this build option. |
|
|
|
2. The <sys/mman.h> indirectly includes system specific headers |
|
which in turn have fields named "environ" while Perl uses |
|
a define of "environ" internally. So wrap the inclusion. |
|
|
|
3. Darwin 6 no longer accepts the non-standard "#import" statements, |
|
so replace with "#include" and circumvent some header problem |
|
related to the non-standard "__private_extern__" attribute. |
|
|
|
Index: hints/darwin.sh |
|
--- hints/darwin.sh.orig 2003-09-02 15:40:19.000000000 +0200 |
|
+++ hints/darwin.sh 2003-10-28 16:40:57.000000000 +0100 |
|
@@ -121,9 +121,6 @@ |
|
*-2147483648) ccflags="${ccflags} -DINT32_MIN_BROKEN -DINT64_MIN_BROKEN" ;; |
|
esac |
|
|
|
-# Avoid Apple's cpp precompiler, better for extensions |
|
-cppflags="${cppflags} -no-cpp-precomp" |
|
- |
|
# This is necessary because perl's build system doesn't |
|
# apply cppflags to cc compile lines as it should. |
|
ccflags="${ccflags} ${cppflags}" |
|
Index: perlio.c |
|
--- perlio.c.orig 2003-09-24 22:50:22.000000000 +0200 |
|
+++ perlio.c 2003-10-28 17:03:59.000000000 +0100 |
|
@@ -432,7 +432,14 @@ |
|
#include <unistd.h> |
|
#endif |
|
#ifdef HAS_MMAP |
|
+#ifdef PERL_DARWIN |
|
+#define environ_safe environ |
|
+#undef environ |
|
#include <sys/mman.h> |
|
+#define environ environ_safe |
|
+#else |
|
+#include <sys/mman.h> |
|
+#endif |
|
#endif |
|
|
|
/* |
|
Index: ext/DynaLoader/dl_dyld.xs |
|
--- ext/DynaLoader/dl_dyld.xs.orig 2003-09-02 15:39:27.000000000 +0200 |
|
+++ ext/DynaLoader/dl_dyld.xs 2003-10-28 17:07:31.000000000 +0100 |
|
@@ -45,7 +45,13 @@ |
|
|
|
#undef environ |
|
#undef bool |
|
+#ifdef PERL_DARWIN |
|
+#define __private_extern__ extern |
|
+#include <mach-o/dyld.h> |
|
+#undef __private_extern__ |
|
+#else |
|
#import <mach-o/dyld.h> |
|
+#endif |
|
|
|
static char *dlerror() |
|
{
|
|
|