perl: update to 5.20.2 and make the soname versioned (#871).

- Merged some patches from Gentoo for misc fixes/tweaks and versioned soname.
- Update common/shlibs with libperl.so.5.20 soname.
This commit is contained in:
Juan RP 2015-02-15 12:57:53 +01:00
parent 2156357b74
commit 05f5b6e455
8 changed files with 384 additions and 7 deletions

View file

@ -54,7 +54,7 @@ libgcc_s.so.1 libgcc-4.4.0_1
libgcj.so.15 libgcj-4.9.0_1
libgcj-tools.so.15 libgcj-4.9.0_1
libgij.so.15 libgcj-4.9.0_1
libperl.so perl-5.20.1_1
libperl.so.5.20 perl-5.20.2_1
libmp.so.3 gmp-5.0.1_1
libgmp.so.10 gmp-5.0.1_1
libgmpxx.so.4 gmpxx-6.0.0_2

View file

@ -0,0 +1,32 @@
From a6a9d8165ffe93c36e0643c4557155fb10df8c4a Mon Sep 17 00:00:00 2001
From: Matthias Maier <tamiko@gentoo.org>
Date: Sat, 29 Nov 2014 00:34:14 +0100
Subject: [PATCH] Do not set custom CFLAGS in cpan/Digest-SHA
Bug-Gentoo: https://bugs.gentoo.org/506818
Patch-Name: gentoo/D-SHA-CFLAGS.diff
---
cpan/Digest-SHA/Makefile.PL | 6 ------
1 file changed, 6 deletions(-)
diff --git a/cpan/Digest-SHA/Makefile.PL b/cpan/Digest-SHA/Makefile.PL
index 3d83865..f0d08a1 100644
--- cpan/Digest-SHA/Makefile.PL
+++ cpan/Digest-SHA/Makefile.PL
@@ -27,12 +27,6 @@ if ($^O eq 'VMS') {
}
}
- # Enhance performance on Intel when using gcc
-
-if ($Config{archname} =~ /^i[3456]86/ && $Config{ccname} eq 'gcc') {
- push(@extra, OPTIMIZE => '-O1 -fomit-frame-pointer');
-}
-
my %att = (
'NAME' => 'Digest::SHA',
'VERSION_FROM' => $PM,
--
2.1.3

View file

@ -0,0 +1,111 @@
From bd709251a971ce7855857ba230123605cfa710e7 Mon Sep 17 00:00:00 2001
From: Vladimir Smirnov <civil@gentoo.org>
Date: Mon, 19 May 2014 19:54:51 +0400
Subject: [PATCH] Cleanup PATH and shrpenv
cut the crap of inventing paths, or adding search paths that we don't
use
Patch-Name: gentoo/cleanup-paths.diff
Original-By: Torsten Veller <tove@gentoo.org>
---
Configure | 79 ---------------------------------------------------------------
1 file changed, 79 deletions(-)
diff --git a/Configure b/Configure
index b221390..63b8848 100755
--- Configure
+++ Configure
@@ -105,28 +105,6 @@ if test -d c:/. || ( uname -a | grep -i 'os\(/\|\)2' ) 2>&1 >/dev/null ; then
fi
fi
-: Proper PATH setting
-paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
-paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
-paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
-paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
-paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
-paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
-paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
-paths="$paths /sbin /usr/sbin /usr/libexec"
-paths="$paths /system/gnu_library/bin"
-
-for p in $paths
-do
- case "$p_$PATH$p_" in
- *$p_$p$p_*) ;;
- *) test -d $p && PATH=$PATH$p_$p ;;
- esac
-done
-
-PATH=.$p_$PATH
-export PATH
-
: shall we be using ksh?
inksh=''
needksh=''
@@ -8500,60 +8478,6 @@ EOM
;;
esac
-# How will the perl executable find the installed shared $libperl?
-# Add $xxx to ccdlflags.
-# If we can't figure out a command-line option, use $shrpenv to
-# set env LD_RUN_PATH. The main perl makefile uses this.
-shrpdir=$archlibexp/CORE
-xxx=''
-tmp_shrpenv=''
-if "$useshrplib"; then
- case "$osname" in
- aix)
- # We'll set it in Makefile.SH...
- ;;
- solaris)
- xxx="-R $shrpdir"
- ;;
- freebsd|mirbsd|netbsd|openbsd|interix|dragonfly|bitrig)
- xxx="-Wl,-R$shrpdir"
- ;;
- bsdos|linux|irix*|dec_osf|gnu*|haiku)
- xxx="-Wl,-rpath,$shrpdir"
- ;;
- next)
- # next doesn't like the default...
- ;;
- hpux*)
- # hpux doesn't like the default, either.
- tmp_shrpenv="env LDOPTS=\"+s +b${shrpdir}\""
- ;;
- cygwin)
- # cygwin needs only ldlibpth
- ;;
- *)
- tmp_shrpenv="env LD_RUN_PATH=$shrpdir"
- ;;
- esac
- case "$xxx" in
- '') ;;
- *)
- # Only add $xxx if it isn't already in ccdlflags.
- case " $ccdlflags " in
- *" $xxx "*) ;;
- *) ccdlflags="$ccdlflags $xxx"
- cat <<EOM >&4
-
-Adding $xxx to the flags
-passed to $ld so that the perl executable will find the
-installed shared $libperl.
-
-EOM
- ;;
- esac
- ;;
- esac
-fi
# Fix ccdlflags in AIX for building external extensions.
# (For building Perl itself bare -bE:perl.exp is needed,
# Makefile.SH takes care of this.)
--
1.9.3

View file

@ -0,0 +1,58 @@
From eb67d0bdd774241d93c7aad72fa894da725020aa Mon Sep 17 00:00:00 2001
From: Vladimir Smirnov <civil@gentoo.org>
Date: Mon, 19 May 2014 19:41:49 +0400
Subject: [PATCH] Set libperl soname
Bug-Gentoo: https://bugs.gentoo.org/286840
Patch-Name: gentoo/create_libperl_soname.diff
Ported to Perl 5.20
---
Makefile.SH | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/Makefile.SH b/Makefile.SH
index b65a7f3..a8b838f 100755
--- Makefile.SH
+++ Makefile.SH
@@ -59,7 +59,7 @@ true)
${api_revision}.${api_version}.${api_subversion} \
-current_version \
${revision}.${patchlevel}.${subversion} \
- -install_name \$(shrpdir)/\$@"
+ -install_name \$(shrpdir)/libperl.${revision}.${patchlevel}.dylib"
;;
cygwin*)
shrpldflags="$shrpldflags -Wl,--out-implib=libperl.dll.a -Wl,--image-base,0x52000000"
@@ -67,13 +67,15 @@ true)
;;
sunos*)
linklibperl="-lperl"
+ shrpldflags="$shrpldflags -Wl,-soname -Wl,libperl.so.${revision}.${patchlevel}"
;;
- netbsd*|freebsd[234]*|openbsd*|dragonfly*|bitrig*)
+ netbsd*|freebsd*|openbsd*|dragonfly*|bitrig*)
linklibperl="-L. -lperl"
+ shrpldflags="$shrpldflags -Wl,-soname -Wl,libperl.so.${revision}.${patchlevel}"
;;
interix*)
linklibperl="-L. -lperl"
- shrpldflags="$shrpldflags -Wl,--image-base,0x57000000"
+ shrpldflags="$shrpldflags -Wl,--image-base,0x57000000 -Wl,-soname -Wl,libperl.so.${revision}.${patchlevel}"
;;
aix*)
case "$cc" in
@@ -111,6 +113,9 @@ true)
linklibperl='libperl.x'
DPERL_EXTERNAL_GLOB=''
;;
+ linux*)
+ shrpldflags="$shrpldflags -Wl,-soname -Wl,libperl.so.${revision}.${patchlevel}"
+ ;;
esac
case "$ldlibpthname" in
'') ;;
--
1.9.3

View file

@ -0,0 +1,66 @@
From 423890b1db83fce87d1283293a3d207e8f18aff4 Mon Sep 17 00:00:00 2001
From: Vladimir Smirnov <civil@gentoo.org>
Date: Mon, 19 May 2014 19:44:44 +0400
Subject: [PATCH] Don't force -fstack-protector on everyone
Bug-Gentoo: https://bugs.gentoo.org/348557
Patch-Name: gentoo/drop_fstack_protector.diff
Original by Torsten Veller, ported to perl 5.20
---
Configure | 24 ------------------------
1 file changed, 24 deletions(-)
diff --git a/Configure b/Configure
index 293ef61..b221390 100755
--- Configure
+++ Configure
@@ -5364,12 +5364,6 @@ default|recommended)
# is to add the flag to the flags passed to the compiler at link time,
# as that way the compiler can do the right implementation dependant
# thing. (NWC)
- case "$gccversion" in
- ?*) set stack-protector -fstack-protector
- eval $checkccflag
- ;;
- esac
- ;;
esac
case "$mips_type" in
@@ -5507,15 +5501,6 @@ case "$ldflags" in
;;
*) dflt="$ldflags";;
esac
-# See note above about -fstack-protector
-case "$ccflags" in
-*-fstack-protector*)
- case "$dflt" in
- *-fstack-protector*) ;; # Don't add it again
- *) dflt="$dflt -fstack-protector" ;;
- esac
- ;;
-esac
: Try to guess additional flags to pick up local libraries.
for thislibdir in $libpth; do
@@ -8292,15 +8277,6 @@ EOM
''|' ') dflt='none' ;;
esac
- case "$ldflags" in
- *-fstack-protector*)
- case "$dflt" in
- *-fstack-protector*) ;; # Don't add it again
- *) dflt="$dflt -fstack-protector" ;;
- esac
- ;;
- esac
-
rp="Any special flags to pass to $ld to create a dynamically loaded library?"
. ./myread
case "$ans" in
--
1.9.3

View file

@ -0,0 +1,30 @@
From 6ec80ea3574a990f02aebbeed5cf051b96cb939d Mon Sep 17 00:00:00 2001
From: Niko Tyni <ntyni@debian.org>
Date: Sat, 23 Aug 2014 18:46:43 -0700
Subject: Tell the 'less' pager to allow terminal escape sequences
The 'ToTerm' backend generates terminal escape sequences that
the 'less' pager does not display by default. The "-R" option
controls this, so pass it in the LESS environment variable
to avoid disturbing other pager invocations.
Bug-Debian: https://bugs.debian.org/758689
Patch-Name: debian/perldoc-less-R.diff
---
cpan/Pod-Perldoc/lib/Pod/Perldoc.pm | 3 +++
1 file changed, 3 insertions(+)
diff --git a/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm b/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
index 6ddd21d..1089f5b 100644
--- cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
+++ cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
@@ -1892,6 +1892,9 @@ sub page { # apply a pager to the output file
if ($self->is_vms) {
last if system("$pager $output") == 0;
} else {
+ # fix visible escape codes in ToTerm output
+ # https://bugs.debian.org/758689
+ local $ENV{LESS} = defined $ENV{LESS} ? "$ENV{LESS} -R" : "-R";
last if system("$pager \"$output\"") == 0;
}
}

View file

@ -0,0 +1,75 @@
From 1b9950c255b7d5f13b8c65bde26151908f30fc10 Mon Sep 17 00:00:00 2001
From: Vladimir Smirnov <civil@gentoo.org>
Date: Mon, 19 May 2014 19:58:00 +0400
Subject: [PATCH] Remove /usr/local paths
remove /usr/local paths from all stuff thats used
in Configure script
Patch-Name: gentoo/usr_local.diff
Original-By: Torsten Veller <tove@gentoo.org>
---
Configure | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/Configure b/Configure
index 63b8848..d0a3c28 100755
--- Configure
+++ Configure
@@ -1315,8 +1315,7 @@ archobjs=''
archname=''
: Possible local include directories to search.
: Set locincpth to "" in a hint file to defeat local include searches.
-locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
-locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
+locincpth=""
:
: no include file wanted by default
inclwanted=''
@@ -1329,12 +1328,11 @@ libnames=''
: change the next line if compiling for Xenix/286 on Xenix/386
xlibpth='/usr/lib/386 /lib/386'
: Possible local library directories to search.
-loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
-loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
+loclibpth=""
: general looking path for locating libraries
glibpth="/lib /usr/lib $xlibpth"
-glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
+glibpth="$glibpth /usr/ccs/lib /usr/ucblib"
test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
test -f /shlib/libc.so && glibpth="/shlib $glibpth"
test -d /usr/lib64 && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64"
@@ -4914,7 +4912,7 @@ esac
: Set private lib path
case "$plibpth" in
'') if ./mips; then
- plibpth="$incpath/usr/lib $sysroot/usr/local/lib $sysroot/usr/ccs/lib"
+ plibpth="$incpath/usr/lib $sysroot/usr/ccs/lib"
fi;;
esac
case "$libpth" in
@@ -20513,7 +20511,7 @@ else
case "$ranlib" in
:) ranlib='';;
'')
- ranlib=`./loc ranlib X /usr/bin /bin /usr/local/bin`
+ ranlib=`./loc ranlib X /usr/bin /bin`
$test -f $ranlib || ranlib=''
;;
esac
@@ -23566,8 +23564,8 @@ lkflags='$lkflags'
ln='$ln'
lns='$lns'
localtime_r_proto='$localtime_r_proto'
-locincpth='$locincpth'
-loclibpth='$loclibpth'
+locincpth=""
+loclibpth=""
longdblsize='$longdblsize'
longlongsize='$longlongsize'
longsize='$longsize'
--
1.9.3

View file

@ -1,6 +1,6 @@
# Template build file for 'perl'.
pkgname=perl
version=5.20.1
version=5.20.2
revision=1
hostmakedepends="less"
makedepends="zlib-devel bzip2-devel gdbm-devel db-devel>=5.3"
@ -9,7 +9,7 @@ maintainer="Juan RP <xtraeme@gmail.com>"
homepage="http://www.perl.org"
license="Artistic, GPL-1"
distfiles="http://www.cpan.org/src/5.0/perl-${version}.tar.gz"
checksum=fef10210f9e6f4dc2d190be0aee8e1fa2af664630f1d415868d33eebca26d4b5
checksum=b1a43992a717d506095856d370550caa11dba8132a4fdaa186a1ae7e1fbd9b9d
provides="perl-Archive-Tar-1.96_1
perl-Attribute-Handlers-0.96_1
@ -158,6 +158,8 @@ do_configure() {
-Dman1dir=/usr/share/man/man1
-Dman3dir=/usr/share/man/man3"
ln -s libperl.so.${version%.*} libperl.so
if [ "$CROSS_BUILD" ]; then
cp -f ${FILESDIR}/cross/* .
cp -f ${FILESDIR}/Configure.cross .
@ -173,7 +175,8 @@ do_configure() {
sh ./Configure.cross
perl -Ilib make_patchnum.pl
else
./Configure -des ${_args} -Dcccdlflags="-fPIC" -Doptimize="$CFLAGS"
./Configure -des ${_args} -Dlibperl="libperl.so.${version%.*}" \
-Dcccdlflags="-fPIC" -Doptimize="$CFLAGS"
fi
}
@ -185,8 +188,8 @@ do_build() {
export LIB=$XBPS_CROSS_BASE/usr/lib
export INCLUDE=$XBPS_CROSS_BASE/usr/include
make SHRPLDFLAGS='-shared -Wl,-soname,libperl.so' \
CROSS_PERL=$HOST_PERL libperl.so ${makejobs}
make SHRPLDFLAGS='-shared -Wl,-soname,libperl.so.${revision}.${patchlevel}' \
CROSS_PERL=$HOST_PERL libperl.so.${version%.*} ${makejobs}
cp -fr $HOST_PERL_LIBS/auto/* lib/auto/
mkdir -p lib/$XBPS_CROSS_TRIPLET
@ -247,5 +250,7 @@ do_install() {
find ${DESTDIR} -name .packlist -delete
# Make a symlink so that libperl.so is accesible.
ln -sfr ${DESTDIR}/usr/lib/perl5/core_perl/CORE/libperl.so ${DESTDIR}/usr/lib/libperl.so
rm -f ${DESTDIR}/usr/lib/perl5/core_perl/CORE/libperl.so
ln -sfr ${DESTDIR}/usr/lib/perl5/core_perl/CORE/libperl.so.${version%.*} \
${DESTDIR}/usr/lib/libperl.so.${version%.*}
}