Thu, 04 Oct 2012 20:30:05 +0200
Correct out of date build configuration, porting to Solaris 11 network
link infrastructure and new libpcap logic. This additionally allows for
device drivers in subdirectories of /dev. Correct packaged nmap
personalities and signatures to work out of the box. Finally, hack
arpd logic to properly close sockets and quit on TERM by repeating
signaling in the run command script. Sadly, all this fails to correct
the run time behaviour of honeyd which fails to bind to the IP layer.
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.
6 Index: installperl
7 --- installperl.orig 2012-04-25 02:18:34.000000000 +0200
8 +++ installperl 2012-05-31 21:51:43.000000000 +0200
9 @@ -196,6 +196,8 @@
10 my $installarchlib = "$opts{destdir}$Config{installarchlib}";
11 my $installsitelib = "$opts{destdir}$Config{installsitelib}";
12 my $installsitearch = "$opts{destdir}$Config{installsitearch}";
13 +my $installvendorlib = "$opts{destdir}$Config{installvendorlib}";
14 +my $installvendorarch = "$opts{destdir}$Config{installvendorarch}";
15 my $installman1dir = "$opts{destdir}$Config{installman1dir}";
16 my $man1ext = $Config{man1ext};
17 my $libperl = $Config{libperl};
18 @@ -347,6 +349,8 @@
19 mkpath($installarchlib, $opts{verbose}, 0777);
20 mkpath($installsitelib, $opts{verbose}, 0777) if ($installsitelib);
21 mkpath($installsitearch, $opts{verbose}, 0777) if ($installsitearch);
22 +mkpath($installvendorlib, $opts{verbose}, 0777) if ($installvendorlib);
23 +mkpath($installvendorarch, $opts{verbose}, 0777) if ($installvendorarch);
25 if (-d 'lib') {
26 find({no_chdir => 1, wanted => \&installlib}, 'lib')
28 -----------------------------------------------------------------------------
30 Port to [Open]Darwin 6.6.2:
32 1. In OpenPKG, Perl does not use the vendor GCC and our GCC does not
33 understand "-no-cpp-precomp", so remove this build option.
35 2. The <sys/mman.h> indirectly includes system specific headers
36 which in turn have fields named "environ" while Perl uses
37 a define of "environ" internally. So wrap the inclusion.
39 3. Darwin 6 no longer accepts the non-standard "#import" statements,
40 so replace with "#include" and circumvent some header problem
41 related to the non-standard "__private_extern__" attribute.
43 Index: hints/darwin.sh
44 --- hints/darwin.sh.orig 2012-02-20 20:48:38.000000000 +0100
45 +++ hints/darwin.sh 2012-05-31 21:51:43.000000000 +0200
46 @@ -181,6 +181,20 @@
47 ldflags="${ldflags} -flat_namespace"
48 lddlflags="${ldflags} -bundle -undefined suppress"
49 ;;
50 +9.*)
51 + lddlflags="${ldflags} -bundle -undefined dynamic_lookup"
52 + case "$ld" in
53 + *MACOSX_DEVELOPMENT_TARGET*) ;;
54 + *) ld="env MACOSX_DEPLOYMENT_TARGET=10.5 ${ld}" ;;
55 + esac
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 @@
68 esac
69 ldlibpthname='DYLD_LIBRARY_PATH';
71 -# useshrplib=true results in much slower startup times.
72 -# 'false' is the default value. Use Configure -Duseshrplib to override.
73 +useshrplib='true'
75 cat > UU/archname.cbu <<'EOCBU'
76 # This script UU/archname.cbu will get 'called-back' by Configure
77 @@ -326,3 +339,6 @@
78 # makefile in the same place. Since Darwin uses GNU make, this dodges
79 # the problem.
80 firstmakefile=GNUmakefile;
81 +
82 +usenm='false'
83 +
84 Index: ext/DynaLoader/dl_dyld.xs
85 --- ext/DynaLoader/dl_dyld.xs.orig 2012-02-15 05:44:47.000000000 +0100
86 +++ ext/DynaLoader/dl_dyld.xs 2012-05-31 21:51:43.000000000 +0200
87 @@ -47,7 +47,13 @@
89 #undef environ
90 #undef bool
91 +#ifdef PERL_DARWIN
92 +#define __private_extern__ extern
93 +#include <mach-o/dyld.h>
94 +#undef __private_extern__
95 +#else
96 #import <mach-o/dyld.h>
97 +#endif
99 static char *dlerror()
100 {
102 -----------------------------------------------------------------------------
104 Port to Tru64 5.1:
106 Under Tru64 our gcc has to be built without binutils and the system
107 ld(1) does not accept a "-O" option, so remove the whole passing of
108 optimization flags to ld(1). Under a brain-dead platform like Tru64 we
109 really don't need any more optimization because we are already happy if
110 it works at all.
112 Index: hints/dec_osf.sh
113 --- hints/dec_osf.sh.orig 2012-04-25 02:18:34.000000000 +0200
114 +++ hints/dec_osf.sh 2012-05-31 21:51:43.000000000 +0200
115 @@ -73,15 +73,6 @@
116 *) if $test "X$optimize" = "X$undef"; then
117 lddlflags="$lddlflags -msym"
118 else
119 - case "$myosvers" in
120 - *4.0D*)
121 - # QAR 56761: -O4 + .so may produce broken code,
122 - # fixed in 4.0E or better.
123 - ;;
124 - *)
125 - lddlflags="$lddlflags $optimize"
126 - ;;
127 - esac
128 # -msym: If using a sufficiently recent /sbin/loader,
129 # keep the module symbols with the modules.
130 lddlflags="$lddlflags -msym $_lddlflags_strict_ansi"
132 -----------------------------------------------------------------------------
134 Linker flag change for Solaris.
136 Index: Configure
137 --- Configure.orig 2012-04-25 02:18:30.000000000 +0200
138 +++ Configure 2012-05-31 21:51:44.000000000 +0200
139 @@ -8014,9 +7994,9 @@
140 ;;
141 linux|irix*|gnu*) dflt="-shared $optimize" ;;
142 next) dflt='none' ;;
143 - solaris) dflt='-G' ;;
144 + solaris) dflt='-shared' ;;
145 sunos) dflt='-assert nodefinitions' ;;
146 - svr4*|esix*|nonstopux) dflt="-G $ldflags" ;;
147 + svr4*|esix*|nonstopux) dflt="-shared $ldflags" ;;
148 *) dflt='none' ;;
149 esac
150 ;;
152 -----------------------------------------------------------------------------
154 Security Fix (CVE-2005-3962, OpenPKG-SA-2005.025-perl)
156 Index: sv.c
157 --- sv.c.orig 2012-04-25 02:18:35.000000000 +0200
158 +++ sv.c 2012-05-31 21:51:44.000000000 +0200
159 @@ -10283,7 +10283,10 @@
160 if ( (width = expect_number(&q)) ) {
161 if (*q == '$') {
162 ++q;
163 - efix = width;
164 + if (width > PERL_INT_MAX)
165 + efix = PERL_INT_MAX;
166 + else
167 + efix = width;
168 } else {
169 goto gotwidth;
170 }
172 -----------------------------------------------------------------------------
174 Do not use -fstack-protector as it causes too much portability issues.
176 Index: Configure
177 --- Configure.orig 2012-04-25 02:18:30.000000000 +0200
178 +++ Configure 2012-05-31 21:51:44.000000000 +0200
179 @@ -5103,17 +5103,6 @@
180 ;;
181 esac
183 - # on x86_64 (at least) we require an extra library (libssp) in the
184 - # link command line. This library is not named, so I infer that it is
185 - # an implementation detail that may change. Hence the safest approach
186 - # is to add the flag to the flags passed to the compiler at link time,
187 - # as that way the compiler can do the right implementation dependant
188 - # thing. (NWC)
189 - case "$gccversion" in
190 - ?*) set stack-protector -fstack-protector
191 - eval $checkccflag
192 - ;;
193 - esac
194 ;;
195 esac
197 @@ -5252,15 +5241,6 @@
198 ;;
199 *) dflt="$ldflags";;
200 esac
201 -# See note above about -fstack-protector
202 -case "$ccflags" in
203 -*-fstack-protector*)
204 - case "$dflt" in
205 - *-fstack-protector*) ;; # Don't add it again
206 - *) dflt="$dflt -fstack-protector" ;;
207 - esac
208 - ;;
209 -esac
211 : Try to guess additional flags to pick up local libraries.
212 for thislibdir in $libpth; do
213 @@ -8043,14 +8023,6 @@
214 ''|' ') dflt='none' ;;
215 esac
217 - case "$ldflags" in
218 - *-fstack-protector*)
219 - case "$dflt" in
220 - *-fstack-protector*) ;; # Don't add it again
221 - *) dflt="$dflt -fstack-protector" ;;
222 - esac
223 - ;;
224 - esac
227 rp="Any special flags to pass to $ld to create a dynamically loaded library?"
229 -----------------------------------------------------------------------------
231 Make sure we install into <prefix>/lib/perl/ and not <prefix>/lib/perl5/
233 Index: Configure
234 --- Configure.orig 2012-04-25 02:18:30.000000000 +0200
235 +++ Configure 2012-05-31 21:51:44.000000000 +0200
236 @@ -1778,7 +1778,7 @@
237 touch posthint.sh
239 : set package name
240 -package='perl5'
241 +package='perl'
242 first=`echo $package | sed -e 's/^\(.\).*/\1/'`
243 last=`echo $package | sed -e 's/^.\(.*\)/\1/'`
244 case "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
246 -----------------------------------------------------------------------------
248 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0976
249 Multiple scripts in the perl package in Trustix Secure Linux 1.5
250 through 2.1, and possibly other operating systems, allows local
251 users to overwrite files via a symlink attack on temporary files.
253 Index: cpan/CGI/lib/CGI/Cookie.pm
254 --- cpan/CGI/lib/CGI/Cookie.pm.orig 2012-02-15 05:44:36.000000000 +0100
255 +++ cpan/CGI/lib/CGI/Cookie.pm 2012-05-31 21:51:44.000000000 +0200
256 @@ -464,7 +464,7 @@
257 You may also retrieve cookies that were stored in some external
258 form using the parse() class method:
260 - $COOKIES = `cat /usr/tmp/Cookie_stash`;
261 + $COOKIES = `cat /var/run/www/Cookie_stash`;
262 %cookies = CGI::Cookie->parse($COOKIES);
264 If you are in a mod_perl environment, you can save some overhead by
266 -----------------------------------------------------------------------------
268 Linking against just libgdbm_compat under at least SUSE fails
269 because it also needs libgdbm (which Perl doesn't pick up, too)
271 Index: hints/linux.sh
272 --- hints/linux.sh.orig 2012-05-14 21:49:22.000000000 +0200
273 +++ hints/linux.sh 2012-05-31 21:51:44.000000000 +0200
274 @@ -58,7 +58,9 @@
275 libswanted="$*"
277 # Debian 4.0 puts ndbm in the -lgdbm_compat library.
278 -libswanted="$libswanted gdbm_compat"
279 +if [ -f /etc/debian_version -o -f /etc/ubuntu_version ]; then
280 + libswanted="$libswanted gdbm_compat"
281 +fi
283 # If you have glibc, then report the version for ./myconfig bug reporting.
284 # (Configure doesn't need to know the specific version since it just uses