openpkg/perl.patch

changeset 428
f880f219c566
parent 14
0cd2ee160ef5
child 431
127559aa0c5e
equal deleted inserted replaced
1:bd3665054dfc 2:a7d6b5498987
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
185 optimization flags to ld(1). Under a brain-dead platform like Tru64 we 91 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 92 really don't need any more optimization because we are already happy if
187 it works at all. 93 it works at all.
188 94
189 Index: hints/dec_osf.sh 95 Index: hints/dec_osf.sh
190 --- hints/dec_osf.sh.orig 2007-12-18 11:47:07 +0100 96 --- hints/dec_osf.sh.orig 2011-06-17 02:06:09.000000000 +0200
191 +++ hints/dec_osf.sh 2007-12-19 12:31:37 +0100 97 +++ hints/dec_osf.sh 2011-06-17 15:20:48.000000000 +0200
192 @@ -73,15 +73,6 @@ 98 @@ -73,15 +73,6 @@
193 *) if $test "X$optimize" = "X$undef"; then 99 *) if $test "X$optimize" = "X$undef"; then
194 lddlflags="$lddlflags -msym" 100 lddlflags="$lddlflags -msym"
195 else 101 else
196 - case "$myosvers" in 102 - case "$myosvers" in
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/.*-//`;

mercurial