Accepting request 70461 from devel:languages:perl

- update to 5.14.0
  * unicode version 6.0 is now supported (mostly)
  * any unsigned value can be encoded as a character
  * some regexp enhancements, e.g. s///r option
  * array and hash container functions accept references
  * package block syntax
  * overridable tie functions
  * assignment to $0 works again
  * improved IPv6 support in the Socket module
- fix regexp crash in reg_numbered_buff_fetch [bnc#676086]
  [CVE-2010-4777]
- move unicode files from perl-doc to perl again [bnc#678877]
- remove feedback@suse.de mail address, it no longer exists
  [bnc#657625]
- support unversioned site_perl include directory

OBS-URL: https://build.opensuse.org/request/show/70461
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/perl?expand=0&rev=64
This commit is contained in:
Sascha Peilicke 2011-05-17 13:29:12 +00:00 committed by Git OBS Bridge
commit 870d663846
11 changed files with 156 additions and 276 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7e3ce3f19f2290c2a2a43a98bcf8cb0ccb69b652d67ddc629544339edc6c7343
size 12041247

View File

@ -1,6 +1,6 @@
--- ./Configure.orig 2010-02-18 18:53:53.000000000 +0000
+++ ./Configure 2010-03-23 11:31:19.000000000 +0000
@@ -114,7 +114,7 @@ paths="$paths /usr/5bin /etc /usr/gnu/bi
--- ./Configure.orig 2011-05-08 03:10:08.000000000 +0000
+++ ./Configure 2011-05-16 11:36:25.000000000 +0000
@@ -112,7 +112,7 @@ paths="$paths /usr/5bin /etc /usr/gnu/bi
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"
@ -9,7 +9,7 @@
paths="$paths /sbin /usr/sbin /usr/libexec"
paths="$paths /system/gnu_library/bin"
@@ -1316,7 +1316,7 @@ loclibpth="/usr/local/lib /opt/local/lib
@@ -1334,7 +1334,7 @@ loclibpth="/usr/local/lib /opt/local/lib
loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
: general looking path for locating libraries
@ -18,7 +18,7 @@
glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
test -f /shlib/libc.so && glibpth="/shlib $glibpth"
@@ -2375,7 +2375,7 @@ uname
@@ -2380,7 +2380,7 @@ uname
zip
"
pth=`echo $PATH | sed -e "s/$p_/ /g"`
@ -45,7 +45,7 @@
#endif
@@ -19017,14 +19017,20 @@ int main(int argc, char *argv[])
@@ -19153,14 +19153,20 @@ int main(int argc, char *argv[])
}
EOCP
set try
@ -66,7 +66,7 @@
i_db=$undef
case " $libs " in
*"-ldb "*)
@@ -19067,7 +19073,7 @@ int main()
@@ -19203,7 +19209,7 @@ int main()
}
#endif
EOCP
@ -75,7 +75,7 @@
if $contains warning try.out >>/dev/null 2>&1 ; then
db_hashtype='int'
else
@@ -19112,7 +19118,7 @@ int main()
@@ -19248,7 +19254,7 @@ int main()
}
#endif
EOCP
@ -84,17 +84,17 @@
if $contains warning try.out >>/dev/null 2>&1 ; then
db_prefixtype='int'
else
@@ -23111,7 +23117,7 @@ passcat='$passcat'
@@ -23245,7 +23251,7 @@ passcat='$passcat'
patchlevel='$patchlevel'
path_sep='$path_sep'
perl5='$perl5'
-perl='$perl'
+perl='perl'
perl_patchlevel='$perl_patchlevel'
perl_static_inline='$perl_static_inline'
perladmin='$perladmin'
perllibs='$perllibs'
--- ./SuSE/SuSEconfig.perl.orig 2010-03-23 11:31:19.000000000 +0000
+++ ./SuSE/SuSEconfig.perl 2010-03-23 11:31:19.000000000 +0000
--- ./SuSE/SuSEconfig.perl.orig 2011-05-16 11:36:25.000000000 +0000
+++ ./SuSE/SuSEconfig.perl 2011-05-16 11:36:25.000000000 +0000
@@ -0,0 +1,76 @@
+#! /bin/bash
+#
@ -172,8 +172,8 @@
+#
+# end of file SuSEconfig.perl
+#
--- ./SuSE/perllocal.SuSE.orig 2010-03-23 11:31:19.000000000 +0000
+++ ./SuSE/perllocal.SuSE 2010-03-23 11:31:19.000000000 +0000
--- ./SuSE/perllocal.SuSE.orig 2011-05-16 11:36:25.000000000 +0000
+++ ./SuSE/perllocal.SuSE 2011-05-16 11:36:25.000000000 +0000
@@ -0,0 +1,84 @@
+#!/usr/bin/perl
+# Copyright (c) 1998 S.u.S.E. Gmbh Fuerth, Germany. All rights reserved.
@ -259,8 +259,8 @@
+ print "SuSEconfig.perl: Can't write to file $Config{'installarchlib'}/perllocal.pod !\n\n";
+}
+
--- ./SuSE/sysconfig.suseconfig-perl.orig 2010-03-23 11:31:19.000000000 +0000
+++ ./SuSE/sysconfig.suseconfig-perl 2010-03-23 11:31:19.000000000 +0000
--- ./SuSE/sysconfig.suseconfig-perl.orig 2011-05-16 11:36:25.000000000 +0000
+++ ./SuSE/sysconfig.suseconfig-perl 2011-05-16 11:36:25.000000000 +0000
@@ -0,0 +1,8 @@
+## Path: System/SuSEconfig
+## Type: yesno
@ -270,20 +270,8 @@
+# May SuSEconfig modify your perllocal.pod? (yes/no)
+#
+CREATE_PERLLOCAL_POD="yes"
--- ./cpan/CGI/lib/CGI/Fast.pm.orig 2010-03-23 15:04:37.000000000 +0000
+++ ./cpan/CGI/lib/CGI/Fast.pm 2010-03-23 15:05:01.000000000 +0000
@@ -26,6 +26,9 @@ use vars qw(
);
@ISA = ('CGI');
+# FCGI is missing from the perl distri
+our $RPM_Ignore_Requires = "perl(FCGI)";
+
# workaround for known bug in libfcgi
while (($ignore) = each %ENV) { }
--- ./cpan/CPAN/lib/CPAN.pm.orig 2010-03-23 15:23:09.000000000 +0000
+++ ./cpan/CPAN/lib/CPAN.pm 2010-03-23 15:23:20.000000000 +0000
--- ./cpan/CPAN/lib/CPAN.pm.orig 2011-05-08 03:10:08.000000000 +0000
+++ ./cpan/CPAN/lib/CPAN.pm 2011-05-16 11:36:25.000000000 +0000
@@ -64,7 +64,7 @@ sub _uniq;
no lib ".";
@ -293,19 +281,8 @@
if ($ENV{PERL5_CPAN_IS_RUNNING} && $$ != $ENV{PERL5_CPAN_IS_RUNNING}) {
$ENV{PERL5_CPAN_IS_RUNNING_IN_RECURSION} ||= $ENV{PERL5_CPAN_IS_RUNNING};
my @rec = _uniq split(/,/, $ENV{PERL5_CPAN_IS_RUNNING_IN_RECURSION}), $$;
--- ./cpan/CPANPLUS/lib/CPANPLUS/Internals/Constants/Report.pm.orig 2010-03-23 15:12:55.000000000 +0000
+++ ./cpan/CPANPLUS/lib/CPANPLUS/Internals/Constants/Report.pm 2010-03-23 15:13:29.000000000 +0000
@@ -237,6 +237,8 @@ Thanks! :-)
.
};
+our $RPM_Ignore_Requires = "perl(Your::Module::Here)";
+
use constant REPORT_MISSING_TESTS
=> sub {
return << ".";
--- ./cpan/Compress-Raw-Zlib/config.in.orig 2010-03-23 15:01:12.000000000 +0000
+++ ./cpan/Compress-Raw-Zlib/config.in 2010-03-23 15:02:19.000000000 +0000
--- ./cpan/Compress-Raw-Zlib/config.in.orig 2011-05-08 03:10:08.000000000 +0000
+++ ./cpan/Compress-Raw-Zlib/config.in 2011-05-16 11:36:25.000000000 +0000
@@ -16,9 +16,9 @@
# Setting the Gzip OS Code
#
@ -319,19 +296,8 @@
OLD_ZLIB = False
GZIP_OS_CODE = AUTO_DETECT
--- ./cpan/Cwd/lib/File/Spec/VMS.pm.orig 2010-03-23 15:10:49.000000000 +0000
+++ ./cpan/Cwd/lib/File/Spec/VMS.pm 2010-03-23 15:11:11.000000000 +0000
@@ -12,6 +12,8 @@ $VERSION = eval $VERSION;
use File::Basename;
use VMS::Filespec;
+our $RPM_Ignore_Requires = "perl(VMS::Filespec)";
+
=head1 NAME
File::Spec::VMS - methods for VMS file specs
--- ./cpan/Encode/bin/enc2xs.orig 2010-03-23 11:34:24.000000000 +0000
+++ ./cpan/Encode/bin/enc2xs 2010-03-23 11:35:34.000000000 +0000
--- ./cpan/Encode/bin/enc2xs.orig 2011-05-08 03:10:08.000000000 +0000
+++ ./cpan/Encode/bin/enc2xs 2011-05-16 11:36:25.000000000 +0000
@@ -1005,13 +1005,13 @@ sub make_configlocal_pm {
$LocalMod{$enc} ||= $mod;
}
@ -348,8 +314,8 @@
$_LocalVer = _mkversion();
$_E2X = find_e2x();
$_Inc = $INC{"Encode.pm"};
--- ./cpan/File-Temp/Temp.pm.orig 2010-03-23 15:11:55.000000000 +0000
+++ ./cpan/File-Temp/Temp.pm 2010-03-23 15:12:16.000000000 +0000
--- ./cpan/File-Temp/Temp.pm.orig 2011-04-13 11:36:34.000000000 +0000
+++ ./cpan/File-Temp/Temp.pm 2011-05-16 11:36:25.000000000 +0000
@@ -146,7 +146,7 @@ use File::Path qw/ rmtree /;
use Fcntl 1.03;
use IO::Seekable; # For SEEK_*
@ -359,8 +325,8 @@
# pre-emptively load Carp::Heavy. If we don't when we run out of file
# handles and attempt to call croak() we get an error message telling
--- ./cpan/Sys-Syslog/t/syslog.t.orig 2010-03-23 14:58:56.000000000 +0000
+++ ./cpan/Sys-Syslog/t/syslog.t 2010-03-23 15:00:07.000000000 +0000
--- ./cpan/Sys-Syslog/t/syslog.t.orig 2011-04-13 11:36:34.000000000 +0000
+++ ./cpan/Sys-Syslog/t/syslog.t 2011-05-16 11:36:25.000000000 +0000
@@ -206,6 +206,7 @@ SKIP: {
}
}
@ -369,8 +335,8 @@
ok( $r, "setlogsock() should return true: '$r'" );
}
--- ./cpan/libnet/Net/Config.pm.orig 2010-03-23 15:06:09.000000000 +0000
+++ ./cpan/libnet/Net/Config.pm 2010-03-23 15:06:27.000000000 +0000
--- ./cpan/libnet/Net/Config.pm.orig 2011-04-13 11:36:34.000000000 +0000
+++ ./cpan/libnet/Net/Config.pm 2011-05-16 11:36:25.000000000 +0000
@@ -37,7 +37,7 @@ eval { local $SIG{__DIE__}; require Net:
# Try to get as much configuration info as possible from InternetConfig
#
@ -380,8 +346,8 @@
{
my %nc = (
--- ./dist/ExtUtils-Install/lib/ExtUtils/Packlist.pm.orig 2010-03-23 15:21:32.000000000 +0000
+++ ./dist/ExtUtils-Install/lib/ExtUtils/Packlist.pm 2010-03-23 15:22:29.000000000 +0000
--- ./dist/ExtUtils-Install/lib/ExtUtils/Packlist.pm.orig 2011-04-13 11:36:34.000000000 +0000
+++ ./dist/ExtUtils-Install/lib/ExtUtils/Packlist.pm 2011-05-16 11:36:25.000000000 +0000
@@ -206,8 +206,11 @@ foreach my $key (sort(keys(%{$self->{dat
{
if (! -e $key)
@ -396,8 +362,8 @@
}
}
return(@missing);
--- ./ext/DynaLoader/hints/linux.pl.orig 2009-02-08 21:40:12.000000000 +0000
+++ ./ext/DynaLoader/hints/linux.pl 2010-03-23 11:31:19.000000000 +0000
--- ./ext/DynaLoader/hints/linux.pl.orig 2011-04-13 11:36:34.000000000 +0000
+++ ./ext/DynaLoader/hints/linux.pl 2011-05-16 11:36:25.000000000 +0000
@@ -2,4 +2,7 @@
# Some Linux releases like to hide their <nlist.h>
$self->{CCFLAGS} = $Config{ccflags} . ' -I/usr/include/libelf'
@ -406,8 +372,8 @@
+# module, so add cccdlflags if we're going for a shared libperl
+$self->{CCFLAGS} = ($self->{CCFLAGS} || $Config{ccflags}) . " $Config{cccdlflags}" if $Config{'useshrplib'} eq 'true';
1;
--- ./ext/NDBM_File/Makefile.PL.orig 2010-01-18 18:43:45.000000000 +0000
+++ ./ext/NDBM_File/Makefile.PL 2010-03-23 11:31:19.000000000 +0000
--- ./ext/NDBM_File/Makefile.PL.orig 2011-04-13 11:36:34.000000000 +0000
+++ ./ext/NDBM_File/Makefile.PL 2011-05-16 11:36:25.000000000 +0000
@@ -2,6 +2,7 @@ use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'NDBM_File',
@ -416,8 +382,8 @@
XSPROTOARG => '-noprototypes', # XXX remove later?
VERSION_FROM => 'NDBM_File.pm',
INC => ($^O eq "MacOS" ? "-i ::::db:include" : "")
--- ./ext/ODBM_File/Makefile.PL.orig 2010-01-18 18:43:45.000000000 +0000
+++ ./ext/ODBM_File/Makefile.PL 2010-03-23 11:31:19.000000000 +0000
--- ./ext/ODBM_File/Makefile.PL.orig 2011-04-13 11:36:34.000000000 +0000
+++ ./ext/ODBM_File/Makefile.PL 2011-05-16 11:36:25.000000000 +0000
@@ -1,7 +1,7 @@
use ExtUtils::MakeMaker;
WriteMakefile(
@ -427,8 +393,8 @@
XSPROTOARG => '-noprototypes', # XXX remove later?
VERSION_FROM => 'ODBM_File.pm',
);
--- ./ext/ODBM_File/hints/linux.pl.orig 2010-01-18 18:43:45.000000000 +0000
+++ ./ext/ODBM_File/hints/linux.pl 2010-03-23 11:31:19.000000000 +0000
--- ./ext/ODBM_File/hints/linux.pl.orig 2011-05-11 13:14:57.000000000 +0000
+++ ./ext/ODBM_File/hints/linux.pl 2011-05-16 11:36:25.000000000 +0000
@@ -1,5 +1,5 @@
# uses GDBM dbm compatibility feature - at least on SuSE 8.0
-$self->{LIBS} = ['-lgdbm'];
@ -436,8 +402,8 @@
# Debian/Ubuntu have /usr/lib/libgdbm_compat.so.3* but not this file,
# so linking may fail
--- ./hints/linux.sh.orig 2010-01-18 18:52:49.000000000 +0000
+++ ./hints/linux.sh 2010-03-23 11:31:19.000000000 +0000
--- ./hints/linux.sh.orig 2011-05-08 03:10:08.000000000 +0000
+++ ./hints/linux.sh 2011-05-16 11:40:24.000000000 +0000
@@ -50,12 +50,14 @@ ignore_versioned_solibs='y'
# BSD compatibility library no longer needed
# 'kaffe' has a /usr/lib/libnet.so which is not at all relevant for perl.
@ -475,7 +441,7 @@
libc=`ls -l /lib/libc.so.6 | awk '{print $NF}'`
libc=/lib/$libc
fi
@@ -148,9 +161,14 @@ case "$optimize" in
@@ -148,6 +161,7 @@ case "$optimize" in
esac
;;
esac
@ -483,6 +449,19 @@
;;
esac
@@ -163,7 +177,7 @@ esac
# Still, as an escape hatch, allow Configure command line overrides to
# plibpth to bypass this check.
case "$plibpth" in
-'') plibpth=`gcc -print-search-dirs | grep libraries |
+'UBUNTU') plibpth=`gcc -print-search-dirs | grep libraries |
cut -f2- -d= | tr ':' $trnl | grep -v 'gcc' | sed -e 's:/$::'`
set X $plibpth # Collapse all entries on one line
shift
@@ -171,6 +185,10 @@ case "$plibpth" in
;;
esac
+man1dir=/usr/share/man/man1
+man3dir=/usr/share/man/man3
+man3ext=3pm
@ -490,7 +469,7 @@
# Are we using ELF? Thanks to Kenneth Albanowski <kjahds@kjahds.com>
# for this test.
cat >try.c <<'EOM'
@@ -235,6 +253,29 @@ EOM
@@ -255,6 +273,29 @@ EOM
esac
fi
@ -503,7 +482,7 @@
+sparc64-linux) glibpth="/lib64 /usr/lib64";;
+esac
+
+cf_email='feedback@suse.de'
+cf_email='none'
+#libs='-lgdbm -ldb -ldl -lm -lc'
+#libs='-ldl -lm -lc'
+
@ -520,7 +499,7 @@
rm -f try.c a.out
if /bin/sh -c exit; then
@@ -284,6 +325,9 @@ else
@@ -304,6 +345,9 @@ else
echo "Couldn't find tcsh. Csh-based globbing might be broken."
fi
fi
@ -530,7 +509,7 @@
# Shimpei Yamashita <shimpei@socrates.patnet.caltech.edu>
# Message-Id: <33EF1634.B36B6500@pobox.com>
@@ -362,6 +406,8 @@ $define|true|[yY]*)
@@ -382,6 +426,8 @@ $define|true|[yY]*)
d_localtime_r_proto="$define"
d_random_r_proto="$define"
@ -539,9 +518,20 @@
;;
esac
EOCBU
--- ./lib/perl5db.pl.orig 2010-01-18 18:52:49.000000000 +0000
+++ ./lib/perl5db.pl 2010-03-23 11:31:19.000000000 +0000
@@ -3400,6 +3400,8 @@ reading another.
--- ./installperl.orig 2011-05-08 03:10:08.000000000 +0000
+++ ./installperl 2011-05-16 11:36:25.000000000 +0000
@@ -753,7 +753,7 @@ sub installlib {
return if $name eq 'ExtUtils/XSSymSet.pm' and !$Is_VMS;
my $installlib = $installprivlib;
- if ($dir =~ /^auto\// ||
+ if (($dir =~ /^auto\// && $dir ne 'auto/Compress/Zlib') ||
($name =~ /^(.*)\.(?:pm|pod)$/ && $archpms{$1}) ||
($name =~ /^(.*)\.(?:h|lib)$/i && ($Is_W32 || $Is_NetWare)) ||
$name=~/^Config_(heavy|git)\.pl\z/
--- ./lib/perl5db.pl.orig 2011-05-08 03:10:08.000000000 +0000
+++ ./lib/perl5db.pl 2011-05-16 11:36:25.000000000 +0000
@@ -3388,6 +3388,8 @@ reading another.
open( OUT, ">&STDOUT" ) # XXX: lost message
|| &warn("Can't restore DB::OUT");
}
@ -550,7 +540,7 @@
next CMD;
} ## end unless ($piped = open(OUT,...
@@ -3524,6 +3526,8 @@ our standard filehandles for input and o
@@ -3512,6 +3514,8 @@ our standard filehandles for input and o
# if necessary,
close(SAVEOUT);
select($selected), $selected = "" unless $selected eq "";
@ -559,8 +549,8 @@
# No pipes now.
$piped = "";
--- ./locale.c.orig 2010-01-18 18:52:49.000000000 +0000
+++ ./locale.c 2010-03-23 11:31:19.000000000 +0000
--- ./locale.c.orig 2011-05-08 03:10:08.000000000 +0000
+++ ./locale.c 2011-05-16 11:36:25.000000000 +0000
@@ -357,9 +357,15 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
if (setlocale_failure) {
@ -577,9 +567,9 @@
if (locwarn) {
#ifdef LC_ALL
--- ./t/op/numconvert.t.orig 2010-01-18 18:43:46.000000000 +0000
+++ ./t/op/numconvert.t 2010-03-23 11:31:19.000000000 +0000
@@ -46,7 +46,7 @@ my $max_chain = $ENV{PERL_TEST_NUMCONVER
--- ./t/op/numconvert.t.orig 2011-05-08 03:10:09.000000000 +0000
+++ ./t/op/numconvert.t 2011-05-16 11:36:25.000000000 +0000
@@ -47,7 +47,7 @@ my $max_chain = $ENV{PERL_TEST_NUMCONVER
# Bulk out if unsigned type is hopelessly wrong:
my $max_uv1 = ~0;
@ -588,24 +578,13 @@
my $big_iv = do {use integer; $max_uv1 * 16}; # 16 is an arbitrary number here
my $max_uv_less3 = $max_uv1 - 3;
--- ./utils/perlbug.PL.orig 2010-03-07 17:53:22.000000000 +0000
+++ ./utils/perlbug.PL 2010-03-23 11:31:19.000000000 +0000
@@ -1083,6 +1083,7 @@ sub _message_headers {
--- ./utils/perlbug.PL.orig 2011-05-08 03:10:09.000000000 +0000
+++ ./utils/perlbug.PL 2011-05-16 11:41:26.000000000 +0000
@@ -1070,6 +1070,7 @@ sub _message_headers {
$headers{'Cc'} = $cc if ($cc);
$headers{'Message-Id'} = $messageid if ($messageid);
$headers{'Reply-To'} = $from if ($from);
+ $headers{'X-Webfrontend'} = 'perlbug';
$headers{'From'} = $from if ($from);
return \%headers;
}
--- ./installperl.orig 2010-04-13 13:13:58.000000000 +0000
+++ ./installperl 2010-04-13 13:13:34.000000000 +0000
@@ -738,7 +738,7 @@ sub installlib {
return if $name eq 'ExtUtils/XSSymSet.pm' and !$Is_VMS;
my $installlib = $installprivlib;
- if ($dir =~ /^auto\// ||
+ if (($dir =~ /^auto\// && $dir ne 'auto/Compress/Zlib') ||
($name =~ /^(.*)\.(?:pm|pod)$/ && $archpms{$1}) ||
($name =~ /^(.*)\.(?:h|lib)$/i && ($Is_W32 || $Is_NetWare)) ||
$name=~/^Config_(heavy|git)\.pl\z/

3
perl-5.14.0.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ea027d0f5279b7465f69ee942ea4015296f90429f1ead7a99fe3b03a475ee821
size 13250162

View File

@ -1,48 +0,0 @@
diff --git a/cpan/autodie/lib/Fatal.pm b/cpan/autodie/lib/Fatal.pm
old mode 100644
new mode 100755
index 18e71ed..c17a257
--- cpan/autodie/lib/Fatal.pm
+++ cpan/autodie/lib/Fatal.pm
@@ -5,6 +5,7 @@ use Carp;
use strict;
use warnings;
use Tie::RefHash; # To cache subroutine refs
+use Config;
use constant PERL510 => ( $] >= 5.010 );
@@ -52,6 +53,10 @@ our %_EWOULDBLOCK = (
MSWin32 => 33,
);
+# the linux parisc port has separate EAGAIN and EWOULDBLOCK,
+# and the kernel returns EAGAIN
+my $try_EAGAIN = ($^O eq 'linux' and $Config{archname} =~ /hppa|parisc/) ? 1 : 0;
+
# We have some tags that can be passed in for use with import.
# These are all assumed to be CORE::
@@ -720,6 +725,11 @@ sub _one_invocation {
my $EWOULDBLOCK = eval { POSIX::EWOULDBLOCK(); }
|| $_EWOULDBLOCK{$^O}
|| _autocroak("Internal error - can't overload flock - EWOULDBLOCK not defined on this system.");
+ my $EAGAIN = $EWOULDBLOCK;
+ if ($try_EAGAIN) {
+ $EAGAIN = eval { POSIX::EAGAIN(); }
+ || _autocroak("Internal error - can't overload flock - EAGAIN not defined on this system.");
+ }
require Fcntl; # For Fcntl::LOCK_NB
@@ -735,7 +745,9 @@ sub _one_invocation {
# If we failed, but we're using LOCK_NB and
# returned EWOULDBLOCK, it's not a real error.
- if (\$_[1] & Fcntl::LOCK_NB() and \$! == $EWOULDBLOCK ) {
+ if (\$_[1] & Fcntl::LOCK_NB() and
+ (\$! == $EWOULDBLOCK or
+ ($try_EAGAIN and \$! == $EAGAIN ))) {
return \$retval;
}

View File

@ -1,7 +1,5 @@
Index: perl-5.12.2/cpan/Time-HiRes/t/HiRes.t
===================================================================
--- perl-5.12.2.orig/cpan/Time-HiRes/t/HiRes.t
+++ perl-5.12.2/cpan/Time-HiRes/t/HiRes.t
--- cpan/Time-HiRes/t/HiRes.t.orig
+++ cpan/Time-HiRes/t/HiRes.t
@@ -116,7 +116,7 @@ if (open(XDEFINE, "xdefine")) {
# completes fine with (say) 30% slosh, and fail otherwise. If you do that,
# consider changing over to test.pl at the same time.

View File

@ -1,37 +0,0 @@
diff --git a/cpan/autodie/t/flock.t b/cpan/autodie/t/flock.t
index a7550ba..6421a56 100755
--- cpan/autodie/t/flock.t
+++ cpan/autodie/t/flock.t
@@ -2,7 +2,8 @@
use strict;
use Test::More;
use Fcntl qw(:flock);
-use POSIX qw(EWOULDBLOCK);
+use POSIX qw(EWOULDBLOCK EAGAIN);
+use Config;
require Fatal;
@@ -10,6 +11,9 @@ my $EWOULDBLOCK = eval { EWOULDBLOCK() }
|| $Fatal::_EWOULDBLOCK{$^O}
|| plan skip_all => "EWOULDBLOCK not defined on this system";
+my $try_EAGAIN = ($^O eq 'linux' and $Config{archname} =~ /hppa|parisc/) ? 1 : 0;
+my $EAGAIN = eval { EAGAIN() };
+
my ($self_fh, $self_fh2);
eval {
@@ -55,7 +59,11 @@ eval {
$return = flock($self_fh2, LOCK_EX | LOCK_NB);
};
-is($!+0, $EWOULDBLOCK, "Double-flocking should be EWOULDBLOCK");
+if (!$try_EAGAIN) {
+ is($!+0, $EWOULDBLOCK, "Double-flocking should be EWOULDBLOCK");
+} else {
+ ok($!+0 == $EWOULDBLOCK || $!+0 == $EAGAIN, "Double-flocking should be EWOULDBLOCK or EAGAIN");
+}
ok(!$return, "flocking a file twice should fail");
is($@, "", "Non-blocking flock should not fail on EWOULDBLOCK");

View File

@ -1,49 +0,0 @@
--- ./utils/h2ph.PL.orig
+++ ./utils/h2ph.PL
@@ -401,7 +401,10 @@ if ($opt_e && (scalar(keys %bad_file) > 0)) {
exit $Exit;
sub expr {
- $new = '"(assembly code)"' and return if /\b__asm__\b/; # freak out.
+ if (/\b__asm__\b/) { # freak out
+ $new = '"(assembly code)"';
+ return
+ }
my $joined_args;
if(keys(%curargs)) {
$joined_args = join('|', keys(%curargs));
@@ -798,7 +801,16 @@ sub build_preamble_if_necessary
# parenthesized value: d=(v)
$define{$_} = $1;
}
- if ($define{$_} =~ /^([+-]?(\d+)?\.\d+([eE][+-]?\d+)?)[FL]?$/) {
+ if (/^(\w+)\((\w)\)$/) {
+ my($macro, $arg) = ($1, $2);
+ my $def = $define{$_};
+ $def =~ s/$arg/\$\{$arg\}/g;
+ print PREAMBLE <<DEFINE;
+unless (defined &$macro) { sub $macro(\$) { my (\$$arg) = \@_; \"$def\" } }
+
+DEFINE
+ } elsif
+ ($define{$_} =~ /^([+-]?(\d+)?\.\d+([eE][+-]?\d+)?)[FL]?$/) {
# float:
print PREAMBLE
"unless (defined &$_) { sub $_() { $1 } }\n\n";
@@ -807,8 +819,14 @@ sub build_preamble_if_necessary
print PREAMBLE
"unless (defined &$_) { sub $_() { $1 } }\n\n";
} elsif ($define{$_} =~ /^\w+$/) {
- print PREAMBLE
- "unless (defined &$_) { sub $_() { &$define{$_} } }\n\n";
+ my $def = $define{$_};
+ if ($isatype{$def}) {
+ print PREAMBLE
+ "unless (defined &$_) { sub $_() { \"$def\" } }\n\n";
+ } else {
+ print PREAMBLE
+ "unless (defined &$_) { sub $_() { &$def } }\n\n";
+ }
} else {
print PREAMBLE
"unless (defined &$_) { sub $_() { \"",

View File

@ -1,6 +1,6 @@
--- regcomp.c.orig 2010-02-28 20:12:22.000000000 +0000
+++ regcomp.c 2010-03-23 15:38:55.000000000 +0000
@@ -5818,7 +5818,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
--- ./regcomp.c.orig 2011-05-08 03:10:08.000000000 +0000
+++ ./regcomp.c 2011-05-16 11:49:16.000000000 +0000
@@ -6832,7 +6832,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
ret = reganode(pRExC_state, GOSUB, num);
if (!SIZE_ONLY) {
@ -9,7 +9,7 @@
RExC_parse++;
vFAIL("Reference to nonexistent group");
}
@@ -7260,7 +7260,7 @@ tryagain:
@@ -8428,7 +8428,7 @@ tryagain:
if (num < 1)
vFAIL("Reference to nonexistent or unclosed group");
}
@ -18,7 +18,7 @@
goto defchar;
else {
char * const parse_start = RExC_parse - 1; /* MJD */
@@ -7274,7 +7274,7 @@ tryagain:
@@ -8442,7 +8442,7 @@ tryagain:
RExC_parse++;
}
if (!SIZE_ONLY) {
@ -27,12 +27,12 @@
vFAIL("Reference to nonexistent group");
}
RExC_sawback = 1;
@@ -7451,7 +7451,7 @@ tryagain:
@@ -8666,7 +8666,7 @@ tryagain:
case '0': case '1': case '2': case '3':case '4':
case '5': case '6': case '7': case '8':case '9':
if (*p == '0' ||
- (isDIGIT(p[1]) && atoi(p) >= RExC_npar) ) {
+ (isDIGIT(p[1]) && (U32)atoi(p) >= (U32)RExC_npar) ) {
I32 flags = 0;
- (isDIGIT(p[1]) && atoi(p) >= RExC_npar))
+ (isDIGIT(p[1]) && (U32)atoi(p) >= (U32)RExC_npar))
{
I32 flags = PERL_SCAN_SILENT_ILLDIGIT;
STRLEN numlen = 3;
ender = grok_oct(p, &numlen, &flags, NULL);

28
perl-saverecontext.diff Normal file
View File

@ -0,0 +1,28 @@
--- ./regcomp.c.orig 2011-05-16 11:56:49.000000000 +0000
+++ ./regcomp.c 2011-05-16 11:57:14.000000000 +0000
@@ -11929,8 +11929,23 @@ Perl_save_re_context(pTHX)
if (gvp) {
GV * const gv = *gvp;
- if (SvTYPE(gv) == SVt_PVGV && GvSV(gv))
- save_scalar(gv);
+ if (SvTYPE(gv) == SVt_PVGV && GvSV(gv)) {
+ /* this is a copy of save_scalar() without the GETMAGIC call, RT#76538 */
+ SV ** const sptr = &GvSVn(gv);
+ SV * osv = *sptr;
+ SV * nsv = newSV(0);
+ save_pushptrptr(SvREFCNT_inc_simple(gv), SvREFCNT_inc(osv), SAVEt_SV);
+ if (SvTYPE(osv) >= SVt_PVMG && SvMAGIC(osv) && SvTYPE(osv) != SVt_PVGV) {
+ if (SvGMAGICAL(osv)) {
+ const bool oldtainted = PL_tainted;
+ SvFLAGS(osv) |= (SvFLAGS(osv) &
+ (SVp_IOK|SVp_NOK|SVp_POK)) >> PRIVSHIFT;
+ PL_tainted = oldtainted;
+ }
+ mg_localize(osv, nsv, 1);
+ }
+ *sptr = nsv;
+ }
}
}
}

View File

@ -1,3 +1,22 @@
-------------------------------------------------------------------
Mon May 16 13:57:44 CEST 2011 - mls@suse.de
- update to 5.14.0
* unicode version 6.0 is now supported (mostly)
* any unsigned value can be encoded as a character
* some regexp enhancements, e.g. s///r option
* array and hash container functions accept references
* package block syntax
* overridable tie functions
* assignment to $0 works again
* improved IPv6 support in the Socket module
- fix regexp crash in reg_numbered_buff_fetch [bnc#676086]
[CVE-2010-4777]
- move unicode files from perl-doc to perl again [bnc#678877]
- remove feedback@suse.de mail address, it no longer exists
[bnc#657625]
- support unversioned site_perl include directory
-------------------------------------------------------------------
Wed Feb 23 13:54:05 CET 2011 - mls@suse.de

View File

@ -20,27 +20,25 @@
Name: perl
Summary: The Perl interpreter
Version: 5.12.3
Release: 13
%define pversion 5.12.3
Version: 5.14.0
Release: 1
%define pversion 5.14.0
License: Artistic License .. ; GPLv2+
Group: Development/Languages/Perl
AutoReqProv: on
Url: http://www.perl.org/
Source: perl-5.12.3.tar.bz2
Source: perl-5.14.0.tar.bz2
Source1: %name-rpmlintrc
Source2: macros.perl
Source3: README.macros
Source4: baselibs.conf
Patch0: perl-%{pversion}.dif
Patch1: perl-gracefull-net-ftp.diff
Patch3: perl-regexp-refoverflow.diff
Patch4: perl-nroff.diff
Patch5: perl-netcmdutf8.diff
Patch6: perl-autodie-flock.diff
Patch7: perl-Fatal.diff
Patch8: perl-h2ph.diff
Patch9: perl-HiRes.t-timeout.diff
Patch2: perl-regexp-refoverflow.diff
Patch3: perl-nroff.diff
Patch4: perl-netcmdutf8.diff
Patch5: perl-HiRes.t-timeout.diff
Patch6: perl-saverecontext.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: perl-base = %version
#PreReq: %fillup_prereq
@ -127,19 +125,15 @@ BuildArch: noarch
Perl man pages and pod files.
%prep
%setup -q -n perl-5.12.3
%setup -q -n perl-5.14.0
cp -p %{S:3} .
%patch0
%patch1
%patch2
%patch3
%patch4
%patch5
%ifarch hppa
%patch6
%patch7
%endif
%patch8
%patch9 -p1
%build
cp -a lib savelib
@ -157,6 +151,7 @@ options="$options -Duse64bitint"
%endif
# always use glibc's setenv
options="$options -Accflags='-DPERL_USE_SAFE_PUTENV'"
options="$options -Dotherlibdirs=/usr/lib/perl5/site_perl"
chmod 755 ./configure.gnu
./configure.gnu --prefix=/usr -Dvendorprefix=/usr -Dinstallusrbinperl -Dusethreads -Di_db -Di_dbm -Di_ndbm -Di_gdbm -Duseshrplib=\'true\' $options
make %{?_smp_mflags}
@ -319,7 +314,6 @@ cat << EOF > perl-base-filelist
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/IO/
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/List/
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/Cwd/
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/DynaLoader/
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/Socket/
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/POSIX/POSIX.bs
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/POSIX/POSIX.so
@ -356,8 +350,6 @@ EOF
%defattr(-,root,root)
%exclude /usr/bin/perl
%exclude /usr/bin/perl%pversion
%exclude /usr/lib/perl5/*/Unicode/*/*.txt
%exclude /usr/lib/perl5/*/unicore/*.txt
/usr/bin/*
/usr/lib/perl5/*
%config %{_sysconfdir}/rpm/macros.perl
@ -374,7 +366,5 @@ EOF
%doc /usr/share/man/man1/*
%doc /usr/share/man/man3/*
%doc /usr/lib/perl5/*/pod
%doc /usr/lib/perl5/*/Unicode/*/*.txt
%doc /usr/lib/perl5/*/unicore/*.txt
%changelog