summaryrefslogtreecommitdiffstats
path: root/main/perl
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2015-06-04 13:44:39 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2015-06-05 13:56:21 +0000
commit2b8fab2223047acde14daef5ab10089f2af64549 (patch)
tree08c25d444e4b879c13ee8c414766662c2a5be24e /main/perl
parent709572a5cc72dff7a30c2db943e0a0d8776301d3 (diff)
downloadaports-2b8fab2223047acde14daef5ab10089f2af64549.tar.bz2
aports-2b8fab2223047acde14daef5ab10089f2af64549.tar.xz
main/perl: gcc5 fixes
and more explicit depends for -dev
Diffstat (limited to 'main/perl')
-rw-r--r--main/perl/APKBUILD23
-rw-r--r--main/perl/perl-gcc5-errno.patch75
-rw-r--r--main/perl/perl-gcc5-h2ph.patch62
-rw-r--r--main/perl/perl-gcc5-lib-h2ph.t.patch39
4 files changed, 195 insertions, 4 deletions
diff --git a/main/perl/APKBUILD b/main/perl/APKBUILD
index 0a5a1041f..6a5aae5d4 100644
--- a/main/perl/APKBUILD
+++ b/main/perl/APKBUILD
@@ -2,16 +2,21 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl
pkgver=5.20.2
-pkgrel=0
+pkgrel=1
pkgdesc="Larry Wall's Practical Extraction and Report Language"
url=http://www.perl.org
arch="all"
license="Artistic GPL-2"
source="http://www.cpan.org/src/5.0/perl-$pkgver.tar.gz
+ perl-gcc5-errno.patch
+ perl-gcc5-h2ph.patch
+ perl-gcc5-lib-h2ph.t.patch
"
options="!fhs"
depends=
+depends_dev="perl"
+makedepends=
subpackages="$pkgname-dev $pkgname-doc miniperl"
_builddir="$srcdir/$pkgname-$pkgver"
@@ -65,6 +70,7 @@ build() {
-Dusenm \
|| return 1
make libperl.so && make || return 1
+# make check || return 1
}
package() {
@@ -94,6 +100,15 @@ dev() {
}
-md5sums="81b17b9a4e5ee18e54efe906c9bf544d perl-5.20.2.tar.gz"
-sha256sums="b1a43992a717d506095856d370550caa11dba8132a4fdaa186a1ae7e1fbd9b9d perl-5.20.2.tar.gz"
-sha512sums="fb41e2f55237cc7dacba7021bf36c78ff52d926095af0d6b6d69fe49cf970a76b2b85775660d504a70c9f0528db5a6f7503b35046ec76000ab59836a127d30ef perl-5.20.2.tar.gz"
+md5sums="81b17b9a4e5ee18e54efe906c9bf544d perl-5.20.2.tar.gz
+fac1aa31f3220ae7336dd55c01e80cd2 perl-gcc5-errno.patch
+188e25424cbd3354881047aae4d054d4 perl-gcc5-h2ph.patch
+0cb2e7fe3e9c1722236a506fa6e5df27 perl-gcc5-lib-h2ph.t.patch"
+sha256sums="b1a43992a717d506095856d370550caa11dba8132a4fdaa186a1ae7e1fbd9b9d perl-5.20.2.tar.gz
+00e753ad1225dbaf21eac40c1217c1267e83b4d909520caa7a214b1a3c61f516 perl-gcc5-errno.patch
+2c4abef26440c28221b0803848fa1cad7b664ce0d4d552374fdacc495744ed3f perl-gcc5-h2ph.patch
+7d665e4bff9adc827dd92827219cb579f3f7558d23dfa50239a23861b0175066 perl-gcc5-lib-h2ph.t.patch"
+sha512sums="fb41e2f55237cc7dacba7021bf36c78ff52d926095af0d6b6d69fe49cf970a76b2b85775660d504a70c9f0528db5a6f7503b35046ec76000ab59836a127d30ef perl-5.20.2.tar.gz
+3a97506220619bd10ef0176849e9f7bc9e93e3f8cd5d95868763ab5205507f131d3edfb0b9d2aab44424564a27275044884c9ea5cd6b13e87972281605763d6a perl-gcc5-errno.patch
+3fd9cef21432506da2749380249cb22e9add281ff633ed0c989420f3f0bc11898cf30e29a3370b86b60e358610a9ddb890c0259511f74f5cd29d27ae1cf1c1ed perl-gcc5-h2ph.patch
+88ca7d10baefadf049b554855bbf950d42a0144891548ec51232772b433fe548b5f8ea45ab5586c7cc148385ce596e61edd5d9e8892d8269a85c218a02d9487c perl-gcc5-lib-h2ph.t.patch"
diff --git a/main/perl/perl-gcc5-errno.patch b/main/perl/perl-gcc5-errno.patch
new file mode 100644
index 000000000..97395877e
--- /dev/null
+++ b/main/perl/perl-gcc5-errno.patch
@@ -0,0 +1,75 @@
+From 816b056ffb99ae54642320e20dc30a59fd1effef Mon Sep 17 00:00:00 2001
+From: =?utf8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Wed, 11 Feb 2015 15:46:37 +0100
+Subject: [PATCH] Fix Errno.pm generation for gcc-5.0
+
+gcc-5.0 -E interleaves now line numbers with expended macros, so that
+the generated errno.c will be preprocessed to
+
+EBFONT => [[
+ 59
+ ]]
+
+which is hard to parse in in line-based reader.
+
+So use -P option with gcc >= 5.0. Global -P usage would break makedepend,
+global -ftrack-macro-expansion=0 would break lib/h2ph.t.
+
+RT#123784
+---
+ ext/Errno/Errno_pm.PL | 23 +++++++++++++++++------
+ 1 file changed, 17 insertions(+), 6 deletions(-)
+
+diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL
+index 3dadfce..c6bfa06 100644
+--- a/ext/Errno/Errno_pm.PL
++++ b/ext/Errno/Errno_pm.PL
+@@ -2,7 +2,7 @@ use ExtUtils::MakeMaker;
+ use Config;
+ use strict;
+
+-our $VERSION = "1.20_05";
++our $VERSION = "1.20_06";
+
+ my %err = ();
+
+@@ -215,20 +215,31 @@ sub write_errno_pm {
+ { # BeOS (support now removed) did not enter this block
+ # invoke CPP and read the output
+
++ my $inhibit_linemarkers = '';
++ if ($Config{gccversion} =~ /\A(\d+)\./ and $1 >= 5) {
++ # GCC 5.0 interleaves expanded macros with line numbers breaking
++ # each line into multiple lines. RT#123784
++ $inhibit_linemarkers = ' -P';
++ }
++
+ if ($^O eq 'VMS') {
+- my $cpp = "$Config{cppstdin} $Config{cppflags} $Config{cppminus}";
++ my $cpp = "$Config{cppstdin} $Config{cppflags}" .
++ $inhibit_linemarkers . " $Config{cppminus}";
+ $cpp =~ s/sys\$input//i;
+ open(CPPO,"$cpp errno.c |") or
+ die "Cannot exec $Config{cppstdin}";
+ } elsif ($IsMSWin32 || $^O eq 'NetWare') {
+- open(CPPO,"$Config{cpprun} $Config{cppflags} errno.c |") or
+- die "Cannot run '$Config{cpprun} $Config{cppflags} errno.c'";
++ my $cpp = "$Config{cpprun} $Config{cppflags}" .
++ $inhibit_linemarkers;
++ open(CPPO,"$cpp errno.c |") or
++ die "Cannot run '$cpp errno.c'";
+ } elsif ($IsSymbian) {
+- my $cpp = "gcc -E -I$ENV{SDK}\\epoc32\\include\\libc -";
++ my $cpp = "gcc -E -I$ENV{SDK}\\epoc32\\include\\libc" .
++ $inhibit_linemarkers ." -";
+ open(CPPO,"$cpp < errno.c |")
+ or die "Cannot exec $cpp";
+ } else {
+- my $cpp = default_cpp();
++ my $cpp = default_cpp() . $inhibit_linemarkers;
+ open(CPPO,"$cpp < errno.c |")
+ or die "Cannot exec $cpp";
+ }
+--
+2.3.0-192-g4a23b1a
+
diff --git a/main/perl/perl-gcc5-h2ph.patch b/main/perl/perl-gcc5-h2ph.patch
new file mode 100644
index 000000000..6733ebbab
--- /dev/null
+++ b/main/perl/perl-gcc5-h2ph.patch
@@ -0,0 +1,62 @@
+From 3bea78d24634e630b610f59957e7a019205a67b2 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Mon, 16 Feb 2015 15:57:00 +1100
+Subject: [PATCH] h2ph: correct handling of hex constants for the preamble
+
+Previously they were treated as identifiers resulting in code
+generated like C< &0xFFF >.
+
+We also try to prevent compile-time warnings from large hex integers,
+the user isn't responsible for the generated code, so we delay those
+warnings to run-time.
+---
+ utils/h2ph.PL | 19 ++++++++++++++++++-
+ 1 file changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/utils/h2ph.PL b/utils/h2ph.PL
+index 9a8b14d..d082f22 100644
+--- a/utils/h2ph.PL
++++ b/utils/h2ph.PL
+@@ -769,7 +769,7 @@ sub inc_dirs
+ sub build_preamble_if_necessary
+ {
+ # Increment $VERSION every time this function is modified:
+- my $VERSION = 3;
++ my $VERSION = 4;
+ my $preamble = "$Dest_dir/_h2ph_pre.ph";
+
+ # Can we skip building the preamble file?
+@@ -788,6 +788,11 @@ sub build_preamble_if_necessary
+
+ open PREAMBLE, ">$preamble" or die "Cannot open $preamble: $!";
+ print PREAMBLE "# This file was created by h2ph version $VERSION\n";
++ # Prevent non-portable hex constants from warning.
++ #
++ # We still produce an overflow warning if we can't represent
++ # a hex constant as an integer.
++ print PREAMBLE "no warnings qw(portable);\n";
+
+ foreach (sort keys %define) {
+ if ($opt_D) {
+@@ -814,6 +819,18 @@ DEFINE
+ # integer:
+ print PREAMBLE
+ "unless (defined &$_) { sub $_() { $1 } }\n\n";
++ } elsif ($define{$_} =~ /^([+-]?0x[\da-f]+)U?L{0,2}$/i) {
++ # hex integer
++ # Special cased, since perl warns on hex integers
++ # that can't be represented in a UV.
++ #
++ # This way we get the warning at time of use, so the user
++ # only gets the warning if they happen to use this
++ # platform-specific definition.
++ my $code = $1;
++ $code = "hex('$code')" if length $code > 10;
++ print PREAMBLE
++ "unless (defined &$_) { sub $_() { $code } }\n\n";
+ } elsif ($define{$_} =~ /^\w+$/) {
+ my $def = $define{$_};
+ if ($isatype{$def}) {
+--
+2.3.0-192-g4a23b1a
+
diff --git a/main/perl/perl-gcc5-lib-h2ph.t.patch b/main/perl/perl-gcc5-lib-h2ph.t.patch
new file mode 100644
index 000000000..716cfc8a0
--- /dev/null
+++ b/main/perl/perl-gcc5-lib-h2ph.t.patch
@@ -0,0 +1,39 @@
+From 33593911f214382b592d05aa902655301915e666 Mon Sep 17 00:00:00 2001
+From: =?utf8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Tue, 17 Feb 2015 13:11:00 +0100
+Subject: [PATCH] lib/h2ph.t to test generated t/_h2ph_pre.ph instead of the
+ system one
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf8
+Content-Transfer-Encoding: 8bit
+
+The lib/h2ph.t test executes a t/lib/h2ph.pht which requires
+'_h2ph_pre.ph'. This should find and exercise generated t/_h2ph_pre.ph
+file. However, it found a loaded _h2ph_pre.ph from system because the
+interpreter has the './' directory after the system paths in the @INC by
+default.
+
+This patch adds '-I./' to the runperl() invocation to prefer the
+_h2ph_pre.ph generated at build time.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ lib/h2ph.t | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/h2ph.t b/lib/h2ph.t
+index 2b58f6a..64d9dc0 100644
+--- a/lib/h2ph.t
++++ b/lib/h2ph.t
+@@ -48,7 +48,7 @@ $result = runperl( progfile => '_h2ph_pre.ph',
+ stderr => 1 );
+ like( $result, qr/syntax OK$/, "preamble compiles");
+
+-$result = runperl( switches => ["-w"],
++$result = runperl( switches => ['-I.', "-w"],
+ stderr => 1,
+ prog => <<'PROG' );
+ $SIG{__WARN__} = sub { die $_[0] }; require q(lib/h2ph.pht);
+--
+2.3.0-192-g4a23b1a
+