2 procedure forgot to create its top-level paths, too. In OpenPKG we use |
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" |
3 the "vendor" area, so make sure it is created the same way the "site" |
4 area is. |
4 area is. |
5 |
5 |
6 Index: installperl |
6 Index: installperl |
7 --- installperl.orig 2006-08-15 14:37:41 +0200 |
7 --- installperl.orig 2011-06-09 22:04:29.000000000 +0200 |
8 +++ installperl 2006-08-18 21:05:05 +0200 |
8 +++ installperl 2011-06-17 15:20:48.000000000 +0200 |
9 @@ -211,6 +211,8 @@ |
9 @@ -200,6 +200,8 @@ |
10 my $installarchlib = "$destdir$Config{installarchlib}"; |
10 my $installarchlib = "$opts{destdir}$Config{installarchlib}"; |
11 my $installsitelib = "$destdir$Config{installsitelib}"; |
11 my $installsitelib = "$opts{destdir}$Config{installsitelib}"; |
12 my $installsitearch = "$destdir$Config{installsitearch}"; |
12 my $installsitearch = "$opts{destdir}$Config{installsitearch}"; |
13 +my $installvendorlib = "$destdir$Config{installvendorlib}"; |
13 +my $installvendorlib = "$opts{destdir}$Config{installvendorlib}"; |
14 +my $installvendorarch = "$destdir$Config{installvendorarch}"; |
14 +my $installvendorarch = "$opts{destdir}$Config{installvendorarch}"; |
15 my $installman1dir = "$destdir$Config{installman1dir}"; |
15 my $installman1dir = "$opts{destdir}$Config{installman1dir}"; |
16 my $man1ext = $Config{man1ext}; |
16 my $man1ext = $Config{man1ext}; |
17 my $libperl = $Config{libperl}; |
17 my $libperl = $Config{libperl}; |
18 @@ -372,6 +374,8 @@ |
18 @@ -349,6 +351,8 @@ |
19 mkpath($installarchlib, $verbose, 0777); |
19 mkpath($installarchlib, $opts{verbose}, 0777); |
20 mkpath($installsitelib, $verbose, 0777) if ($installsitelib); |
20 mkpath($installsitelib, $opts{verbose}, 0777) if ($installsitelib); |
21 mkpath($installsitearch, $verbose, 0777) if ($installsitearch); |
21 mkpath($installsitearch, $opts{verbose}, 0777) if ($installsitearch); |
22 +mkpath($installvendorlib, $verbose, 0777) if ($installvendorlib); |
22 +mkpath($installvendorlib, $opts{verbose}, 0777) if ($installvendorlib); |
23 +mkpath($installvendorarch, $verbose, 0777) if ($installvendorarch); |
23 +mkpath($installvendorarch, $opts{verbose}, 0777) if ($installvendorarch); |
24 |
24 |
25 if (chdir "lib") { |
25 if (chdir "lib") { |
26 $do_installarchlib = ! samepath($installarchlib, '.'); |
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 @@ -4753,39 +4753,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 @@ -4828,6 +4795,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 |
27 |
122 ----------------------------------------------------------------------------- |
28 ----------------------------------------------------------------------------- |
123 |
29 |
124 Port to [Open]Darwin 6.6.2: |
30 Port to [Open]Darwin 6.6.2: |
125 |
31 |
133 3. Darwin 6 no longer accepts the non-standard "#import" statements, |
39 3. Darwin 6 no longer accepts the non-standard "#import" statements, |
134 so replace with "#include" and circumvent some header problem |
40 so replace with "#include" and circumvent some header problem |
135 related to the non-standard "__private_extern__" attribute. |
41 related to the non-standard "__private_extern__" attribute. |
136 |
42 |
137 Index: hints/darwin.sh |
43 Index: hints/darwin.sh |
138 --- hints/darwin.sh.orig 2006-08-15 14:37:41 +0200 |
44 --- hints/darwin.sh.orig 2011-09-19 15:18:22.000000000 +0200 |
139 +++ hints/darwin.sh 2006-08-18 21:05:05 +0200 |
45 +++ hints/darwin.sh 2011-12-24 12:00:58.000000000 +0100 |
140 @@ -120,9 +120,6 @@ |
46 @@ -181,6 +181,20 @@ |
141 *-2147483648) ccflags="${ccflags} -DINT32_MIN_BROKEN -DINT64_MIN_BROKEN" ;; |
47 ldflags="${ldflags} -flat_namespace" |
142 esac |
48 lddlflags="${ldflags} -bundle -undefined suppress" |
143 |
49 ;; |
144 -# Avoid Apple's cpp precompiler, better for extensions |
50 +9.*) |
145 -cppflags="${cppflags} -no-cpp-precomp" |
51 + lddlflags="${ldflags} -bundle -undefined dynamic_lookup" |
146 - |
52 + case "$ld" in |
147 # This is necessary because perl's build system doesn't |
53 + *MACOSX_DEVELOPMENT_TARGET*) ;; |
148 # apply cppflags to cc compile lines as it should. |
54 + *) ld="env MACOSX_DEPLOYMENT_TARGET=10.5 ${ld}" ;; |
149 ccflags="${ccflags} ${cppflags}" |
55 + esac |
150 @@ -182,8 +179,7 @@ |
56 + ;; |
|
57 +10.*) |
|
58 + lddlflags="${ldflags} -bundle -undefined dynamic_lookup" |
|
59 + case "$ld" in |
|
60 + *MACOSX_DEVELOPMENT_TARGET*) ;; |
|
61 + *) ld="env MACOSX_DEPLOYMENT_TARGET=10.6 ${ld}" ;; |
|
62 + esac |
|
63 + ;; |
|
64 *) |
|
65 lddlflags="${ldflags} -bundle -undefined dynamic_lookup" |
|
66 case "$ld" in |
|
67 @@ -191,8 +205,7 @@ |
151 esac |
68 esac |
152 ldlibpthname='DYLD_LIBRARY_PATH'; |
69 ldlibpthname='DYLD_LIBRARY_PATH'; |
153 |
70 |
154 -# useshrplib=true results in much slower startup times. |
71 -# useshrplib=true results in much slower startup times. |
155 -# 'false' is the default value. Use Configure -Duseshrplib to override. |
72 -# 'false' is the default value. Use Configure -Duseshrplib to override. |
156 +useshrplib='true' |
73 +useshrplib='true' |
157 |
74 |
158 cat > UU/archname.cbu <<'EOCBU' |
75 cat > UU/archname.cbu <<'EOCBU' |
159 # This script UU/archname.cbu will get 'called-back' by Configure |
76 # This script UU/archname.cbu will get 'called-back' by Configure |
160 Index: perlio.c |
77 @@ -326,3 +339,6 @@ |
161 --- perlio.c.orig 2006-08-15 14:37:41 +0200 |
78 # makefile in the same place. Since Darwin uses GNU make, this dodges |
162 +++ perlio.c 2006-08-18 21:05:05 +0200 |
79 # the problem. |
163 @@ -472,7 +472,14 @@ |
80 firstmakefile=GNUmakefile; |
164 #include <unistd.h> |
81 + |
165 #endif |
82 +usenm='false' |
166 #ifdef HAS_MMAP |
83 + |
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 |
84 |
179 ----------------------------------------------------------------------------- |
85 ----------------------------------------------------------------------------- |
180 |
86 |
181 Port to Tru64 5.1: |
87 Port to Tru64 5.1: |
182 |
88 |
206 # keep the module symbols with the modules. |
112 # keep the module symbols with the modules. |
207 lddlflags="$lddlflags -msym $_lddlflags_strict_ansi" |
113 lddlflags="$lddlflags -msym $_lddlflags_strict_ansi" |
208 |
114 |
209 ----------------------------------------------------------------------------- |
115 ----------------------------------------------------------------------------- |
210 |
116 |
211 Index: Configure |
117 Linker flag change for Solaris. |
212 --- Configure.orig 2006-08-15 14:37:40 +0200 |
118 |
213 +++ Configure 2006-08-18 21:05:05 +0200 |
119 Index: Configure |
214 @@ -7871,7 +7871,7 @@ |
120 --- Configure.orig 2011-06-09 22:04:29.000000000 +0200 |
|
121 +++ Configure 2011-06-17 15:20:48.000000000 +0200 |
|
122 @@ -8078,9 +8058,9 @@ |
215 ;; |
123 ;; |
216 linux|irix*|gnu*) dflt="-shared $optimize" ;; |
124 linux|irix*|gnu*) dflt="-shared $optimize" ;; |
217 next) dflt='none' ;; |
125 next) dflt='none' ;; |
218 - solaris) dflt='-G' ;; |
126 - solaris) dflt='-G' ;; |
219 + solaris) dflt='-shared' ;; |
127 + solaris) dflt='-shared' ;; |
220 sunos) dflt='-assert nodefinitions' ;; |
128 sunos) dflt='-assert nodefinitions' ;; |
221 svr4*|esix*|nonstopux) dflt="-G $ldflags" ;; |
129 - svr4*|esix*|nonstopux) dflt="-G $ldflags" ;; |
|
130 + svr4*|esix*|nonstopux) dflt="-shared $ldflags" ;; |
222 *) dflt='none' ;; |
131 *) dflt='none' ;; |
|
132 esac |
|
133 ;; |
223 |
134 |
224 ----------------------------------------------------------------------------- |
135 ----------------------------------------------------------------------------- |
225 |
136 |
226 Security Fix (CVE-2005-3962, OpenPKG-SA-2005.025-perl) |
137 Security Fix (CVE-2005-3962, OpenPKG-SA-2005.025-perl) |
227 |
138 |
228 Index: sv.c |
139 Index: sv.c |
229 --- sv.c.orig 2006-08-15 14:37:41 +0200 |
140 --- sv.c.orig 2011-06-17 02:06:09.000000000 +0200 |
230 +++ sv.c 2006-08-18 21:05:05 +0200 |
141 +++ sv.c 2011-06-17 15:20:48.000000000 +0200 |
231 @@ -8667,7 +8667,10 @@ |
142 @@ -10198,7 +10198,10 @@ |
232 if ( (width = expect_number(&q)) ) { |
143 if ( (width = expect_number(&q)) ) { |
233 if (*q == '$') { |
144 if (*q == '$') { |
234 ++q; |
145 ++q; |
235 - efix = width; |
146 - efix = width; |
236 + if (width > PERL_INT_MAX) |
147 + if (width > PERL_INT_MAX) |
241 goto gotwidth; |
152 goto gotwidth; |
242 } |
153 } |
243 |
154 |
244 ----------------------------------------------------------------------------- |
155 ----------------------------------------------------------------------------- |
245 |
156 |
246 Corrections for Solaris 11: |
157 Do not use -fstack-protector as it causes too much portability issues. |
247 |
158 |
248 Index: perl.h |
159 Index: Configure |
249 diff -Nau perl.h.orig perl.h |
160 --- Configure.orig 2011-06-09 22:04:29.000000000 +0200 |
250 --- perl.h.orig 2007-12-18 11:47:08.000000000 +0100 |
161 +++ Configure 2011-06-17 15:20:48.000000000 +0200 |
251 +++ perl.h 2009-01-06 15:28:45.843276063 +0100 |
162 @@ -5158,17 +5158,6 @@ |
252 @@ -1393,6 +1393,7 @@ |
163 ;; |
253 */ |
164 esac |
254 |
165 |
255 #if defined(I_SYSMODE) && !defined(PERL_MICRO) |
166 - # on x86_64 (at least) we require an extra library (libssp) in the |
256 +#include <sys/vnode.h> |
167 - # link command line. This library is not named, so I infer that it is |
257 #include <sys/mode.h> |
168 - # an implementation detail that may change. Hence the safest approach |
258 #endif |
169 - # is to add the flag to the flags passed to the compiler at link time, |
259 |
170 - # as that way the compiler can do the right implementation dependant |
|
171 - # thing. (NWC) |
|
172 - case "$gccversion" in |
|
173 - ?*) set stack-protector -fstack-protector |
|
174 - eval $checkccflag |
|
175 - ;; |
|
176 - esac |
|
177 ;; |
|
178 esac |
|
179 |
|
180 @@ -5307,15 +5296,6 @@ |
|
181 ;; |
|
182 *) dflt="$ldflags";; |
|
183 esac |
|
184 -# See note above about -fstack-protector |
|
185 -case "$ccflags" in |
|
186 -*-fstack-protector*) |
|
187 - case "$dflt" in |
|
188 - *-fstack-protector*) ;; # Don't add it again |
|
189 - *) dflt="$dflt -fstack-protector" ;; |
|
190 - esac |
|
191 - ;; |
|
192 -esac |
|
193 |
|
194 : Try to guess additional flags to pick up local libraries. |
|
195 for thislibdir in $libpth; do |
|
196 @@ -8107,14 +8087,6 @@ |
|
197 ''|' ') dflt='none' ;; |
|
198 esac |
|
199 |
|
200 - case "$ldflags" in |
|
201 - *-fstack-protector*) |
|
202 - case "$dflt" in |
|
203 - *-fstack-protector*) ;; # Don't add it again |
|
204 - *) dflt="$dflt -fstack-protector" ;; |
|
205 - esac |
|
206 - ;; |
|
207 - esac |
|
208 |
|
209 |
|
210 rp="Any special flags to pass to $ld to create a dynamically loaded library?" |
|
211 |
|
212 ----------------------------------------------------------------------------- |
|
213 |
|
214 Make sure we install into <prefix>/lib/perl/ and not <prefix>/lib/perl5/ |
|
215 |
|
216 Index: Configure |
|
217 --- Configure.orig 2009-08-24 18:33:49 +0200 |
|
218 +++ Configure 2009-08-24 18:44:39 +0200 |
|
219 @@ -1769,7 +1769,7 @@ |
|
220 touch posthint.sh |
|
221 |
|
222 : set package name |
|
223 -package='perl5' |
|
224 +package='perl' |
|
225 first=`echo $package | sed -e 's/^\(.\).*/\1/'` |
|
226 last=`echo $package | sed -e 's/^.\(.*\)/\1/'` |
|
227 case "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`" in |
|
228 |
|
229 ----------------------------------------------------------------------------- |
|
230 |
|
231 Linking against just libgdbm_compat under at least SUSE fails |
|
232 because it also needs libgdbm (which Perl doesn't pick up, too) |
|
233 |
|
234 Index: hints/linux.sh |
|
235 --- hints/linux.sh.orig 2011-06-09 22:04:29.000000000 +0200 |
|
236 +++ hints/linux.sh 2011-06-17 15:20:48.000000000 +0200 |
|
237 @@ -55,7 +55,9 @@ |
|
238 libswanted="$*" |
|
239 |
|
240 # Debian 4.0 puts ndbm in the -lgdbm_compat library. |
|
241 -libswanted="$libswanted gdbm_compat" |
|
242 +if [ -f /etc/debian_version -o -f /etc/ubuntu_version ]; then |
|
243 + libswanted="$libswanted gdbm_compat" |
|
244 +fi |
|
245 |
|
246 # If you have glibc, then report the version for ./myconfig bug reporting. |
|
247 # (Configure doesn't need to know the specific version since it just uses |
|
248 |
|
249 Index: Configure |
|
250 --- Configure.orig 2012-05-31 14:59:16.000000000 +0200 |
|
251 +++ Configure 2012-05-31 15:04:27.000000000 +0200 |
|
252 @@ -22206,6 +22206,7 @@ |
|
253 for xxx in *; do |
|
254 case "$xxx" in |
|
255 DynaLoader|dynaload) ;; |
|
256 + \* ) ;; |
|
257 *) |
|
258 this_ext=`echo $xxx | $sed -e s/-/\\\//g`; |
|
259 leaf=`echo $xxx | $sed -e s/.*-//`; |