michael@13: By default, the "vendor" area is not used, so Perl's installation michael@13: procedure forgot to create its top-level paths, too. In OpenPKG we use michael@13: the "vendor" area, so make sure it is created the same way the "site" michael@13: area is. michael@13: michael@13: Index: installperl michael@428: --- installperl.orig 2011-06-09 22:04:29.000000000 +0200 michael@428: +++ installperl 2011-06-17 15:20:48.000000000 +0200 michael@431: @@ -196,6 +196,8 @@ michael@428: my $installarchlib = "$opts{destdir}$Config{installarchlib}"; michael@428: my $installsitelib = "$opts{destdir}$Config{installsitelib}"; michael@428: my $installsitearch = "$opts{destdir}$Config{installsitearch}"; michael@428: +my $installvendorlib = "$opts{destdir}$Config{installvendorlib}"; michael@428: +my $installvendorarch = "$opts{destdir}$Config{installvendorarch}"; michael@428: my $installman1dir = "$opts{destdir}$Config{installman1dir}"; michael@13: my $man1ext = $Config{man1ext}; michael@13: my $libperl = $Config{libperl}; michael@428: @@ -349,6 +351,8 @@ michael@428: mkpath($installarchlib, $opts{verbose}, 0777); michael@428: mkpath($installsitelib, $opts{verbose}, 0777) if ($installsitelib); michael@428: mkpath($installsitearch, $opts{verbose}, 0777) if ($installsitearch); michael@428: +mkpath($installvendorlib, $opts{verbose}, 0777) if ($installvendorlib); michael@428: +mkpath($installvendorarch, $opts{verbose}, 0777) if ($installvendorarch); michael@13: michael@13: if (chdir "lib") { michael@13: $do_installarchlib = ! samepath($installarchlib, '.'); michael@13: michael@13: ----------------------------------------------------------------------------- michael@13: michael@13: Port to [Open]Darwin 6.6.2: michael@13: michael@13: 1. In OpenPKG, Perl does not use the vendor GCC and our GCC does not michael@13: understand "-no-cpp-precomp", so remove this build option. michael@13: michael@13: 2. The indirectly includes system specific headers michael@13: which in turn have fields named "environ" while Perl uses michael@13: a define of "environ" internally. So wrap the inclusion. michael@13: michael@13: 3. Darwin 6 no longer accepts the non-standard "#import" statements, michael@13: so replace with "#include" and circumvent some header problem michael@13: related to the non-standard "__private_extern__" attribute. michael@13: michael@13: Index: hints/darwin.sh michael@428: --- hints/darwin.sh.orig 2011-09-19 15:18:22.000000000 +0200 michael@428: +++ hints/darwin.sh 2011-12-24 12:00:58.000000000 +0100 michael@428: @@ -181,6 +181,20 @@ michael@428: ldflags="${ldflags} -flat_namespace" michael@428: lddlflags="${ldflags} -bundle -undefined suppress" michael@428: ;; michael@428: +9.*) michael@428: + lddlflags="${ldflags} -bundle -undefined dynamic_lookup" michael@428: + case "$ld" in michael@428: + *MACOSX_DEVELOPMENT_TARGET*) ;; michael@428: + *) ld="env MACOSX_DEPLOYMENT_TARGET=10.5 ${ld}" ;; michael@428: + esac michael@428: + ;; michael@428: +10.*) michael@428: + lddlflags="${ldflags} -bundle -undefined dynamic_lookup" michael@428: + case "$ld" in michael@428: + *MACOSX_DEVELOPMENT_TARGET*) ;; michael@428: + *) ld="env MACOSX_DEPLOYMENT_TARGET=10.6 ${ld}" ;; michael@428: + esac michael@428: + ;; michael@428: *) michael@428: lddlflags="${ldflags} -bundle -undefined dynamic_lookup" michael@428: case "$ld" in michael@428: @@ -191,8 +205,7 @@ michael@13: esac michael@13: ldlibpthname='DYLD_LIBRARY_PATH'; michael@13: michael@13: -# useshrplib=true results in much slower startup times. michael@13: -# 'false' is the default value. Use Configure -Duseshrplib to override. michael@13: +useshrplib='true' michael@13: michael@13: cat > UU/archname.cbu <<'EOCBU' michael@13: # This script UU/archname.cbu will get 'called-back' by Configure michael@428: @@ -326,3 +339,6 @@ michael@428: # makefile in the same place. Since Darwin uses GNU make, this dodges michael@428: # the problem. michael@428: firstmakefile=GNUmakefile; michael@428: + michael@428: +usenm='false' michael@428: + michael@13: michael@13: ----------------------------------------------------------------------------- michael@13: michael@13: Port to Tru64 5.1: michael@13: michael@13: Under Tru64 our gcc has to be built without binutils and the system michael@13: ld(1) does not accept a "-O" option, so remove the whole passing of michael@13: optimization flags to ld(1). Under a brain-dead platform like Tru64 we michael@13: really don't need any more optimization because we are already happy if michael@13: it works at all. michael@13: michael@13: Index: hints/dec_osf.sh michael@428: --- hints/dec_osf.sh.orig 2011-06-17 02:06:09.000000000 +0200 michael@428: +++ hints/dec_osf.sh 2011-06-17 15:20:48.000000000 +0200 michael@13: @@ -73,15 +73,6 @@ michael@13: *) if $test "X$optimize" = "X$undef"; then michael@13: lddlflags="$lddlflags -msym" michael@13: else michael@13: - case "$myosvers" in michael@13: - *4.0D*) michael@13: - # QAR 56761: -O4 + .so may produce broken code, michael@13: - # fixed in 4.0E or better. michael@13: - ;; michael@13: - *) michael@13: - lddlflags="$lddlflags $optimize" michael@13: - ;; michael@13: - esac michael@13: # -msym: If using a sufficiently recent /sbin/loader, michael@13: # keep the module symbols with the modules. michael@13: lddlflags="$lddlflags -msym $_lddlflags_strict_ansi" michael@13: michael@13: ----------------------------------------------------------------------------- michael@13: michael@428: Linker flag change for Solaris. michael@428: michael@13: Index: Configure michael@428: --- Configure.orig 2011-06-09 22:04:29.000000000 +0200 michael@428: +++ Configure 2011-06-17 15:20:48.000000000 +0200 michael@431: @@ -8014,9 +8014,9 @@ michael@14: ;; michael@14: linux|irix*|gnu*) dflt="-shared $optimize" ;; michael@13: next) dflt='none' ;; michael@13: - solaris) dflt='-G' ;; michael@13: + solaris) dflt='-shared' ;; michael@13: sunos) dflt='-assert nodefinitions' ;; michael@428: - svr4*|esix*|nonstopux) dflt="-G $ldflags" ;; michael@428: + svr4*|esix*|nonstopux) dflt="-shared $ldflags" ;; michael@13: *) dflt='none' ;; michael@428: esac michael@428: ;; michael@13: michael@13: ----------------------------------------------------------------------------- michael@13: michael@13: Security Fix (CVE-2005-3962, OpenPKG-SA-2005.025-perl) michael@13: michael@13: Index: sv.c michael@428: --- sv.c.orig 2011-06-17 02:06:09.000000000 +0200 michael@428: +++ sv.c 2011-06-17 15:20:48.000000000 +0200 michael@431: @@ -10283,7 +10283,10 @@ michael@13: if ( (width = expect_number(&q)) ) { michael@13: if (*q == '$') { michael@13: ++q; michael@13: - efix = width; michael@13: + if (width > PERL_INT_MAX) michael@13: + efix = PERL_INT_MAX; michael@13: + else michael@13: + efix = width; michael@13: } else { michael@13: goto gotwidth; michael@13: } michael@13: michael@14: ----------------------------------------------------------------------------- michael@14: michael@428: Do not use -fstack-protector as it causes too much portability issues. michael@14: michael@428: Index: Configure michael@428: --- Configure.orig 2011-06-09 22:04:29.000000000 +0200 michael@428: +++ Configure 2011-06-17 15:20:48.000000000 +0200 michael@431: @@ -5103,17 +5103,6 @@ michael@428: ;; michael@428: esac michael@14: michael@428: - # on x86_64 (at least) we require an extra library (libssp) in the michael@428: - # link command line. This library is not named, so I infer that it is michael@428: - # an implementation detail that may change. Hence the safest approach michael@428: - # is to add the flag to the flags passed to the compiler at link time, michael@428: - # as that way the compiler can do the right implementation dependant michael@428: - # thing. (NWC) michael@428: - case "$gccversion" in michael@428: - ?*) set stack-protector -fstack-protector michael@428: - eval $checkccflag michael@428: - ;; michael@428: - esac michael@428: ;; michael@428: esac michael@14: michael@431: @@ -5241,15 +5241,6 @@ michael@428: ;; michael@428: *) dflt="$ldflags";; michael@428: esac michael@428: -# See note above about -fstack-protector michael@428: -case "$ccflags" in michael@428: -*-fstack-protector*) michael@428: - case "$dflt" in michael@428: - *-fstack-protector*) ;; # Don't add it again michael@428: - *) dflt="$dflt -fstack-protector" ;; michael@428: - esac michael@428: - ;; michael@428: -esac michael@428: michael@428: : Try to guess additional flags to pick up local libraries. michael@428: for thislibdir in $libpth; do michael@431: @@ -8023,14 +8023,6 @@ michael@428: ''|' ') dflt='none' ;; michael@428: esac michael@428: michael@428: - case "$ldflags" in michael@428: - *-fstack-protector*) michael@428: - case "$dflt" in michael@428: - *-fstack-protector*) ;; # Don't add it again michael@428: - *) dflt="$dflt -fstack-protector" ;; michael@428: - esac michael@428: - ;; michael@428: - esac michael@428: michael@428: michael@428: rp="Any special flags to pass to $ld to create a dynamically loaded library?" michael@428: michael@428: ----------------------------------------------------------------------------- michael@428: michael@428: Make sure we install into /lib/perl/ and not /lib/perl5/ michael@428: michael@428: Index: Configure michael@428: --- Configure.orig 2009-08-24 18:33:49 +0200 michael@428: +++ Configure 2009-08-24 18:44:39 +0200 michael@431: @@ -1778,7 +1778,7 @@ michael@428: touch posthint.sh michael@428: michael@428: : set package name michael@428: -package='perl5' michael@428: +package='perl' michael@428: first=`echo $package | sed -e 's/^\(.\).*/\1/'` michael@428: last=`echo $package | sed -e 's/^.\(.*\)/\1/'` michael@428: case "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`" in michael@428: michael@428: ----------------------------------------------------------------------------- michael@428: michael@428: Linking against just libgdbm_compat under at least SUSE fails michael@428: because it also needs libgdbm (which Perl doesn't pick up, too) michael@428: michael@428: Index: hints/linux.sh michael@428: --- hints/linux.sh.orig 2011-06-09 22:04:29.000000000 +0200 michael@428: +++ hints/linux.sh 2011-06-17 15:20:48.000000000 +0200 michael@431: @@ -58,7 +58,9 @@ michael@428: libswanted="$*" michael@428: michael@428: # Debian 4.0 puts ndbm in the -lgdbm_compat library. michael@428: -libswanted="$libswanted gdbm_compat" michael@428: +if [ -f /etc/debian_version -o -f /etc/ubuntu_version ]; then michael@428: + libswanted="$libswanted gdbm_compat" michael@428: +fi michael@428: michael@428: # If you have glibc, then report the version for ./myconfig bug reporting. michael@428: # (Configure doesn't need to know the specific version since it just uses michael@428: michael@428: Index: Configure michael@428: --- Configure.orig 2012-05-31 14:59:16.000000000 +0200 michael@428: +++ Configure 2012-05-31 15:04:27.000000000 +0200 michael@428: @@ -22206,6 +22206,7 @@ michael@428: for xxx in *; do michael@428: case "$xxx" in michael@428: DynaLoader|dynaload) ;; michael@428: + \* ) ;; michael@428: *) michael@428: this_ext=`echo $xxx | $sed -e s/-/\\\//g`; michael@428: leaf=`echo $xxx | $sed -e s/.*-//`;