|
1 By default, the "vendor" area is not used, so Perl's installation |
|
2 procedure forgot to create its top-level paths, too. In OpenPKG we use |
|
3 the "vendor" area, so make sure it is created the same way the "site" |
|
4 area is. |
|
5 |
|
6 Index: installperl |
|
7 --- installperl.orig 2006-08-15 14:37:41 +0200 |
|
8 +++ installperl 2006-08-18 21:05:05 +0200 |
|
9 @@ -211,6 +211,8 @@ |
|
10 my $installarchlib = "$destdir$Config{installarchlib}"; |
|
11 my $installsitelib = "$destdir$Config{installsitelib}"; |
|
12 my $installsitearch = "$destdir$Config{installsitearch}"; |
|
13 +my $installvendorlib = "$destdir$Config{installvendorlib}"; |
|
14 +my $installvendorarch = "$destdir$Config{installvendorarch}"; |
|
15 my $installman1dir = "$destdir$Config{installman1dir}"; |
|
16 my $man1ext = $Config{man1ext}; |
|
17 my $libperl = $Config{libperl}; |
|
18 @@ -403,6 +405,8 @@ |
|
19 mkpath($installarchlib, $verbose, 0777); |
|
20 mkpath($installsitelib, $verbose, 0777) if ($installsitelib); |
|
21 mkpath($installsitearch, $verbose, 0777) if ($installsitearch); |
|
22 +mkpath($installvendorlib, $verbose, 0777) if ($installvendorlib); |
|
23 +mkpath($installvendorarch, $verbose, 0777) if ($installvendorarch); |
|
24 |
|
25 if (chdir "lib") { |
|
26 $do_installarchlib = ! samepath($installarchlib, '.'); |
|
27 |
|
28 ----------------------------------------------------------------------------- |
|
29 |
|
30 By default, the Perl module search order is "use lib, -I, PERL[5]LIB, |
|
31 perl, site, vendor, other". This means that in OpenPKG both the modules |
|
32 installed via CPAN shell (in "site" area) and the "perl-xxx" packages |
|
33 (in "vendor" area) cannot override the (sometimes obsoleted) module |
|
34 versions distributed with Perl (in "perl" area). Hence, we change |
|
35 the search order to a more reasonable one for OpenPKG: "use lib, -I, |
|
36 PERL[5]LIB, site, vendor, perl, other". |
|
37 |
|
38 Index: perl.c |
|
39 --- perl.c.orig 2006-08-15 14:37:41 +0200 |
|
40 +++ perl.c 2006-08-18 21:08:14 +0200 |
|
41 @@ -4749,39 +4749,6 @@ |
|
42 incpush(APPLLIB_EXP, TRUE, TRUE, TRUE, TRUE); |
|
43 #endif |
|
44 |
|
45 -#ifdef ARCHLIB_EXP |
|
46 - incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE, TRUE); |
|
47 -#endif |
|
48 -#ifdef MACOS_TRADITIONAL |
|
49 - { |
|
50 - Stat_t tmpstatbuf; |
|
51 - SV * privdir = newSV(0); |
|
52 - char * macperl = PerlEnv_getenv("MACPERL"); |
|
53 - |
|
54 - if (!macperl) |
|
55 - macperl = ""; |
|
56 - |
|
57 - Perl_sv_setpvf(aTHX_ privdir, "%slib:", macperl); |
|
58 - if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode)) |
|
59 - incpush(SvPVX(privdir), TRUE, FALSE, TRUE, FALSE); |
|
60 - Perl_sv_setpvf(aTHX_ privdir, "%ssite_perl:", macperl); |
|
61 - if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode)) |
|
62 - incpush(SvPVX(privdir), TRUE, FALSE, TRUE, FALSE); |
|
63 - |
|
64 - SvREFCNT_dec(privdir); |
|
65 - } |
|
66 - if (!PL_tainting) |
|
67 - incpush(":", FALSE, FALSE, TRUE, FALSE); |
|
68 -#else |
|
69 -#ifndef PRIVLIB_EXP |
|
70 -# define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl" |
|
71 -#endif |
|
72 -#if defined(WIN32) |
|
73 - incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE, TRUE); |
|
74 -#else |
|
75 - incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE, TRUE); |
|
76 -#endif |
|
77 - |
|
78 #ifdef SITEARCH_EXP |
|
79 /* sitearch is always relative to sitelib on Windows for |
|
80 * DLL-based path intuition to work correctly */ |
|
81 @@ -4824,6 +4791,39 @@ |
|
82 incpush(PERL_VENDORLIB_STEM, FALSE, TRUE, TRUE, TRUE); |
|
83 #endif |
|
84 |
|
85 +#ifdef ARCHLIB_EXP |
|
86 + incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE, TRUE); |
|
87 +#endif |
|
88 +#ifdef MACOS_TRADITIONAL |
|
89 + { |
|
90 + Stat_t tmpstatbuf; |
|
91 + SV * privdir = newSV(0); |
|
92 + char * macperl = PerlEnv_getenv("MACPERL"); |
|
93 + |
|
94 + if (!macperl) |
|
95 + macperl = ""; |
|
96 + |
|
97 + Perl_sv_setpvf(aTHX_ privdir, "%slib:", macperl); |
|
98 + if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode)) |
|
99 + incpush(SvPVX(privdir), TRUE, FALSE, TRUE, FALSE); |
|
100 + Perl_sv_setpvf(aTHX_ privdir, "%ssite_perl:", macperl); |
|
101 + if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode)) |
|
102 + incpush(SvPVX(privdir), TRUE, FALSE, TRUE, FALSE); |
|
103 + |
|
104 + SvREFCNT_dec(privdir); |
|
105 + } |
|
106 + if (!PL_tainting) |
|
107 + incpush(":", FALSE, FALSE, TRUE, FALSE); |
|
108 +#else |
|
109 +#ifndef PRIVLIB_EXP |
|
110 +# define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl" |
|
111 +#endif |
|
112 +#if defined(WIN32) |
|
113 + incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE, TRUE); |
|
114 +#else |
|
115 + incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE, TRUE); |
|
116 +#endif |
|
117 + |
|
118 #ifdef PERL_OTHERLIBDIRS |
|
119 incpush(PERL_OTHERLIBDIRS, TRUE, TRUE, TRUE, TRUE); |
|
120 #endif |
|
121 |
|
122 ----------------------------------------------------------------------------- |
|
123 |
|
124 Port to [Open]Darwin 6.6.2: |
|
125 |
|
126 1. In OpenPKG, Perl does not use the vendor GCC and our GCC does not |
|
127 understand "-no-cpp-precomp", so remove this build option. |
|
128 |
|
129 2. The <sys/mman.h> indirectly includes system specific headers |
|
130 which in turn have fields named "environ" while Perl uses |
|
131 a define of "environ" internally. So wrap the inclusion. |
|
132 |
|
133 3. Darwin 6 no longer accepts the non-standard "#import" statements, |
|
134 so replace with "#include" and circumvent some header problem |
|
135 related to the non-standard "__private_extern__" attribute. |
|
136 |
|
137 Index: hints/darwin.sh |
|
138 --- hints/darwin.sh.orig 2006-08-15 14:37:41 +0200 |
|
139 +++ hints/darwin.sh 2006-08-18 21:05:05 +0200 |
|
140 @@ -120,9 +120,6 @@ |
|
141 *-2147483648) ccflags="${ccflags} -DINT32_MIN_BROKEN -DINT64_MIN_BROKEN" ;; |
|
142 esac |
|
143 |
|
144 -# Avoid Apple's cpp precompiler, better for extensions |
|
145 -cppflags="${cppflags} -no-cpp-precomp" |
|
146 - |
|
147 # This is necessary because perl's build system doesn't |
|
148 # apply cppflags to cc compile lines as it should. |
|
149 ccflags="${ccflags} ${cppflags}" |
|
150 @@ -182,8 +179,7 @@ |
|
151 esac |
|
152 ldlibpthname='DYLD_LIBRARY_PATH'; |
|
153 |
|
154 -# useshrplib=true results in much slower startup times. |
|
155 -# 'false' is the default value. Use Configure -Duseshrplib to override. |
|
156 +useshrplib='true' |
|
157 |
|
158 cat > UU/archname.cbu <<'EOCBU' |
|
159 # This script UU/archname.cbu will get 'called-back' by Configure |
|
160 Index: perlio.c |
|
161 --- perlio.c.orig 2006-08-15 14:37:41 +0200 |
|
162 +++ perlio.c 2006-08-18 21:05:05 +0200 |
|
163 @@ -461,7 +461,14 @@ |
|
164 #include <unistd.h> |
|
165 #endif |
|
166 #ifdef HAS_MMAP |
|
167 +#ifdef PERL_DARWIN |
|
168 +#define environ_safe environ |
|
169 +#undef environ |
|
170 #include <sys/mman.h> |
|
171 +#define environ environ_safe |
|
172 +#else |
|
173 +#include <sys/mman.h> |
|
174 +#endif |
|
175 #endif |
|
176 |
|
177 void |
|
178 |
|
179 ----------------------------------------------------------------------------- |
|
180 |
|
181 Port to Tru64 5.1: |
|
182 |
|
183 Under Tru64 our gcc has to be built without binutils and the system |
|
184 ld(1) does not accept a "-O" option, so remove the whole passing of |
|
185 optimization flags to ld(1). Under a brain-dead platform like Tru64 we |
|
186 really don't need any more optimization because we are already happy if |
|
187 it works at all. |
|
188 |
|
189 Index: hints/dec_osf.sh |
|
190 --- hints/dec_osf.sh.orig 2007-12-18 11:47:07 +0100 |
|
191 +++ hints/dec_osf.sh 2007-12-19 12:31:37 +0100 |
|
192 @@ -73,15 +73,6 @@ |
|
193 *) if $test "X$optimize" = "X$undef"; then |
|
194 lddlflags="$lddlflags -msym" |
|
195 else |
|
196 - case "$myosvers" in |
|
197 - *4.0D*) |
|
198 - # QAR 56761: -O4 + .so may produce broken code, |
|
199 - # fixed in 4.0E or better. |
|
200 - ;; |
|
201 - *) |
|
202 - lddlflags="$lddlflags $optimize" |
|
203 - ;; |
|
204 - esac |
|
205 # -msym: If using a sufficiently recent /sbin/loader, |
|
206 # keep the module symbols with the modules. |
|
207 lddlflags="$lddlflags -msym $_lddlflags_strict_ansi" |
|
208 |
|
209 ----------------------------------------------------------------------------- |
|
210 |
|
211 Index: Configure |
|
212 --- Configure.orig 2006-08-15 14:37:40 +0200 |
|
213 +++ Configure 2006-08-18 21:05:05 +0200 |
|
214 @@ -7787,7 +7787,7 @@ |
|
215 ;; |
|
216 linux|irix*|gnu*) dflt='-shared' ;; |
|
217 next) dflt='none' ;; |
|
218 - solaris) dflt='-G' ;; |
|
219 + solaris) dflt='-shared' ;; |
|
220 sunos) dflt='-assert nodefinitions' ;; |
|
221 svr4*|esix*|nonstopux) dflt="-G $ldflags" ;; |
|
222 *) dflt='none' ;; |
|
223 |
|
224 ----------------------------------------------------------------------------- |
|
225 |
|
226 Security Fix (CVE-2005-3962, OpenPKG-SA-2005.025-perl) |
|
227 |
|
228 Index: sv.c |
|
229 --- sv.c.orig 2006-08-15 14:37:41 +0200 |
|
230 +++ sv.c 2006-08-18 21:05:05 +0200 |
|
231 @@ -8595,7 +8595,10 @@ |
|
232 if ( (width = expect_number(&q)) ) { |
|
233 if (*q == '$') { |
|
234 ++q; |
|
235 - efix = width; |
|
236 + if (width > PERL_INT_MAX) |
|
237 + efix = PERL_INT_MAX; |
|
238 + else |
|
239 + efix = width; |
|
240 } else { |
|
241 goto gotwidth; |
|
242 } |
|
243 |