From a1476ad7e281fd66294cf2738af7013c502108b4 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Sat, 29 Nov 2008 00:10:09 +0000 Subject: [PATCH] fix bz 473223 --- perl-5.10.0-Change33640.patch | 340 ++++++++++++++++++++++++++++++++++ perl-5.10.0-Change33881.patch | 222 ++++++++++++++++++++++ perl-5.10.0-Change33896.patch | 261 ++++++++++++++++++++++++++ perl-5.10.0-Change33897.patch | 61 ++++++ perl.spec | 36 +++- 5 files changed, 917 insertions(+), 3 deletions(-) create mode 100644 perl-5.10.0-Change33640.patch create mode 100644 perl-5.10.0-Change33881.patch create mode 100644 perl-5.10.0-Change33896.patch create mode 100644 perl-5.10.0-Change33897.patch diff --git a/perl-5.10.0-Change33640.patch b/perl-5.10.0-Change33640.patch new file mode 100644 index 0000000..f51f8ee --- /dev/null +++ b/perl-5.10.0-Change33640.patch @@ -0,0 +1,340 @@ +--- perl/Porting/Maintainers.pm#2~33194~ 2008-02-02 09:05:25.000000000 -0800 ++++ perl/Porting/Maintainers.pm 2008-04-03 09:03:24.000000000 -0700 +@@ -14,11 +14,12 @@ + require "Maintainers.pl"; + use vars qw(%Modules %Maintainers); + +-use vars qw(@ISA @EXPORT_OK); ++use vars qw(@ISA @EXPORT_OK $VERSION); + @ISA = qw(Exporter); + @EXPORT_OK = qw(%Modules %Maintainers + get_module_files get_module_pat + show_results process_options); ++$VERSION = 0.02; + require Exporter; + + use File::Find; +@@ -107,9 +108,12 @@ + my @Files; + + if ($Opened) { +- my @raw = `p4 opened`; ++ @Files = `p4 opened`; + die if $?; +- @Files = map {s!#.*!!s; s!^//depot/.*?/perl/!!; $_} @raw; ++ foreach (@Files) { ++ s!#.*!!s; ++ s!^//depot/(?:perl|.*?/perl)/!!; ++ } + } else { + @Files = @ARGV; + } + +--- perl/ext/B/B/Concise.pm#2~33126~ 2008-01-30 07:26:23.000000000 -0800 ++++ perl/ext/B/B/Concise.pm 2008-04-03 09:03:24.000000000 -0700 +@@ -14,7 +14,7 @@ + + use Exporter (); # use #5 + +-our $VERSION = "0.74"; ++our $VERSION = "0.75"; + our @ISA = qw(Exporter); + our @EXPORT_OK = qw( set_style set_style_standard add_callback + concise_subref concise_cv concise_main + +--- perl/ext/Devel/DProf/DProf.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800 ++++ perl/ext/Devel/DProf/DProf.pm 2008-04-03 09:03:24.000000000 -0700 +@@ -230,7 +230,7 @@ + + use XSLoader (); + +-$Devel::DProf::VERSION = '20050603.00'; # this version not authorized by ++$Devel::DProf::VERSION = '20080331.00'; # this version not authorized by + # Dean Roehrich. See "Changes" file. + + XSLoader::load 'Devel::DProf', $Devel::DProf::VERSION; + +--- perl/ext/Devel/Peek/Peek.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800 ++++ perl/ext/Devel/Peek/Peek.pm 2008-04-03 09:03:24.000000000 -0700 +@@ -3,7 +3,7 @@ + + package Devel::Peek; + +-$VERSION = '1.03'; ++$VERSION = '1.04'; + $XS_VERSION = $VERSION; + $VERSION = eval $VERSION; + + +--- perl/ext/POSIX/POSIX.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800 ++++ perl/ext/POSIX/POSIX.pm 2008-04-03 09:03:24.000000000 -0700 +@@ -4,7 +4,7 @@ + + our(@ISA, %EXPORT_TAGS, @EXPORT_OK, @EXPORT, $AUTOLOAD, %SIGRT) = (); + +-our $VERSION = "1.13"; ++our $VERSION = "1.14"; + + use AutoLoader; + + +--- perl/ext/PerlIO/encoding/encoding.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800 ++++ perl/ext/PerlIO/encoding/encoding.pm 2008-04-03 09:03:24.000000000 -0700 +@@ -1,7 +1,7 @@ + package PerlIO::encoding; + + use strict; +-our $VERSION = '0.10'; ++our $VERSION = '0.11'; + our $DEBUG = 0; + $DEBUG and warn __PACKAGE__, " called by ", join(", ", caller), "\n"; + + +--- perl/ext/PerlIO/scalar/scalar.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800 ++++ perl/ext/PerlIO/scalar/scalar.pm 2008-04-03 09:03:24.000000000 -0700 +@@ -1,5 +1,5 @@ + package PerlIO::scalar; +-our $VERSION = '0.05'; ++our $VERSION = '0.06'; + use XSLoader (); + XSLoader::load 'PerlIO::scalar'; + 1; + +--- perl/ext/PerlIO/via/via.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800 ++++ perl/ext/PerlIO/via/via.pm 2008-04-03 09:03:24.000000000 -0700 +@@ -1,5 +1,5 @@ + package PerlIO::via; +-our $VERSION = '0.04'; ++our $VERSION = '0.05'; + use XSLoader (); + XSLoader::load 'PerlIO::via'; + 1; + +--- perl/ext/Socket/Socket.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800 ++++ perl/ext/Socket/Socket.pm 2008-04-03 09:03:24.000000000 -0700 +@@ -1,7 +1,7 @@ + package Socket; + + our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); +-$VERSION = "1.80"; ++$VERSION = "1.81"; + + =head1 NAME + + +--- perl/lib/ExtUtils/Embed.pm#2~33574~ 2008-03-26 09:37:45.000000000 -0700 ++++ perl/lib/ExtUtils/Embed.pm 2008-04-03 09:03:24.000000000 -0700 +@@ -19,7 +19,7 @@ + use strict; + + # This is not a dual-life module, so no need for development version numbers +-$VERSION = '1.27'; ++$VERSION = '1.28'; + + @ISA = qw(Exporter); + @EXPORT = qw(&xsinit &ldopts + +--- perl/lib/Fatal.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800 ++++ perl/lib/Fatal.pm 2008-04-03 09:03:24.000000000 -0700 +@@ -5,7 +5,7 @@ + use strict; + our($AUTOLOAD, $Debug, $VERSION); + +-$VERSION = 1.05; ++$VERSION = 1.06; + + $Debug = 0 unless defined $Debug; + +@@ -106,7 +106,7 @@ + $proto = eval { prototype "CORE::$name" }; + die "$name is neither a builtin, nor a Perl subroutine" + if $@; +- die "Cannot make a non-overridable builtin fatal" ++ die "Cannot make the non-overridable builtin $name fatal" + if not defined $proto; + $core = 1; + $call = "CORE::$name"; + +--- perl/lib/Fatal.t#1~32694~ 2007-12-22 01:23:09.000000000 -0800 ++++ perl/lib/Fatal.t 2008-04-03 09:03:24.000000000 -0700 +@@ -3,7 +3,7 @@ + BEGIN { + chdir 't' if -d 't'; + @INC = '../lib'; +- print "1..15\n"; ++ print "1..16\n"; + } + + use strict; +@@ -34,3 +34,9 @@ + eval { my $a = opendir FOO, 'lkjqweriuapofukndajsdlfjnvcvn' }; + print "not " if $@ =~ /^Can't open/; + print "ok $i\n"; ++$i; ++ ++eval { Fatal->import(qw(print)) }; ++if ($@ !~ m{Cannot make the non-overridable builtin print fatal}) { ++ print "not "; ++} ++print "ok $i\n"; ++$i; + +--- perl/lib/File/Basename.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800 ++++ perl/lib/File/Basename.pm 2008-04-03 09:03:24.000000000 -0700 +@@ -54,7 +54,7 @@ + require Exporter; + @ISA = qw(Exporter); + @EXPORT = qw(fileparse fileparse_set_fstype basename dirname); +-$VERSION = "2.76"; ++$VERSION = "2.77"; + + fileparse_set_fstype($^O); + + +--- perl/lib/File/Find.pm#2~33162~ 2008-01-31 14:54:31.000000000 -0800 ++++ perl/lib/File/Find.pm 2008-04-03 09:03:24.000000000 -0700 +@@ -3,7 +3,7 @@ + use strict; + use warnings; + use warnings::register; +-our $VERSION = '1.12'; ++our $VERSION = '1.13'; + require Exporter; + require Cwd; + + +--- perl/lib/Module/CoreList.pm#3~33615~ 2008-03-31 11:01:17.000000000 -0700 ++++ perl/lib/Module/CoreList.pm 2008-04-03 09:03:24.000000000 -0700 +@@ -1,7 +1,7 @@ + package Module::CoreList; + use strict; + use vars qw/$VERSION %released %patchlevel %version %families/; +-$VERSION = '2.14'; ++$VERSION = '2.15'; + + =head1 NAME + +@@ -2007,7 +2007,7 @@ + 'warnings' => undef, #lib/warnings.pm + 'warnings::register' => undef, #lib/warnings/register.pm + 'XSLoader' => '0.01', #lib/XSLoader.pm +- }, ++ }, + + 5.007003 => { + 'AnyDBM_File' => '1.00', +@@ -4462,6 +4462,7 @@ + 'XSLoader' => '0.03', #lib/XSLoader.pm + 'XS::Typemap' => '0.01', #lib/XS/Typemap.pm + }, ++ + 5.008004 => { + 'AnyDBM_File' => '1.00', #lib/AnyDBM_File.pm + 'attributes' => '0.06', #lib/attributes.pm +@@ -5555,6 +5556,7 @@ + 'XSLoader' => '0.02', #lib/XSLoader.pm + 'XS::Typemap' => '0.01', #lib/XS/Typemap.pm + }, ++ + 5.009002 => { + 'AnyDBM_File' => '1.00', + 'Attribute::Handlers' => '0.78_01', +@@ -5595,6 +5597,7 @@ + 'Carp::Heavy' => '1.04', + 'Class::ISA' => '0.33', + 'Class::Struct' => '0.63', ++ 'Config' => undef, + 'Config::Extensions' => '0.01', + 'Cwd' => '3.05', + 'DB' => '1.0', +@@ -5919,6 +5922,7 @@ + 'warnings' => '1.04', + 'warnings::register' => '1.00', + }, ++ + 5.008007 => { + 'AnyDBM_File' => '1.00', + 'Attribute::Handlers' => '0.78_01', +@@ -5959,6 +5963,7 @@ + 'Carp::Heavy' => '1.04', + 'Class::ISA' => '0.33', + 'Class::Struct' => '0.63', ++ 'Config' => undef, + 'Cwd' => '3.05', + 'DB' => '1.0', + 'DBM_Filter' => '0.01', +@@ -6278,6 +6283,7 @@ + 'warnings' => '1.03', + 'warnings::register' => '1.00', + }, ++ + 5.009003 => { + 'AnyDBM_File' => '1.00', + 'Archive::Tar' => '1.26_01', +@@ -6348,6 +6354,7 @@ + 'Compress::Zlib::ParseParameters'=> '2.000_07', + 'Compress::Zlib::UncompressPlugin::Identity'=> '2.000_05', + 'Compress::Zlib::UncompressPlugin::Inflate'=> '2.000_05', ++ 'Config' => undef, + 'Config::Extensions' => '0.01', + 'Cwd' => '3.15', + 'DB' => '1.01', +@@ -6727,6 +6734,7 @@ + 'warnings' => '1.05', + 'warnings::register' => '1.01', + }, ++ + 5.008008 => { + 'AnyDBM_File' => '1.00', + 'Attribute::Handlers' => '0.78_02', +@@ -6767,6 +6775,7 @@ + 'Carp::Heavy' => '1.04', + 'Class::ISA' => '0.33', + 'Class::Struct' => '0.63', ++ 'Config' => undef, + 'Cwd' => '3.12', + 'DB' => '1.01', + 'DBM_Filter' => '0.01', +@@ -7094,6 +7103,7 @@ + 'warnings' => '1.05', + 'warnings::register' => '1.01', + }, ++ + 5.009004 => { + 'AnyDBM_File' => '1.00', + 'Archive::Tar' => '1.30_01', +@@ -7143,6 +7153,7 @@ + 'Class::Struct' => '0.63', + 'Compress::Raw::Zlib' => '2.000_13', + 'Compress::Zlib' => '2.000_13', ++ 'Config' => undef, + 'Config::Extensions' => '0.01', + 'Cwd' => '3.19', + 'DB' => '1.01', +@@ -7576,6 +7587,7 @@ + 'warnings' => '1.05', + 'warnings::register' => '1.01', + }, ++ + 5.009005 => { + 'AnyDBM_File' => '1.00', + 'Archive::Extract' => '0.22_01', +@@ -8110,6 +8122,7 @@ + 'warnings' => '1.06', + 'warnings::register' => '1.01', + }, ++ + 5.010000 => { + 'AnyDBM_File' => '1.00', + 'Archive::Extract' => '0.24', + +--- perl/os2/OS2/REXX/REXX.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800 ++++ perl/os2/OS2/REXX/REXX.pm 2008-04-03 09:03:24.000000000 -0700 +@@ -11,7 +11,7 @@ + # Other items we are prepared to export if requested + @EXPORT_OK = qw(drop register); + +-$VERSION = '1.03'; ++$VERSION = '1.04'; + + # We cannot just put OS2::DLL in @ISA, since some scripts would use + # function interface, not method interface... + diff --git a/perl-5.10.0-Change33881.patch b/perl-5.10.0-Change33881.patch new file mode 100644 index 0000000..929f630 --- /dev/null +++ b/perl-5.10.0-Change33881.patch @@ -0,0 +1,222 @@ +--- perl/ext/B/t/concise-xs.t#1~32694~ 2007-12-22 01:23:09.000000000 -0800 ++++ perl/ext/B/t/concise-xs.t 2008-05-20 05:48:04.000000000 -0700 +@@ -177,7 +177,10 @@ + }, + + POSIX => { dflt => 'constant', # all but 252/589 +- skip => [qw/ _POSIX_JOB_CONTROL /], # platform varying ++ skip => [qw/ _POSIX_JOB_CONTROL /, # platform varying ++ # Might be XS or imported from Fcntl, depending on your ++ # perl version: ++ qw / S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG /], + perl => [qw/ import croak AUTOLOAD /], + + XS => [qw/ write wctomb wcstombs uname tzset tzname + +--- perl/ext/POSIX/Makefile.PL#1~32694~ 2007-12-22 01:23:09.000000000 -0800 ++++ perl/ext/POSIX/Makefile.PL 2008-05-20 05:48:04.000000000 -0700 +@@ -48,13 +48,11 @@ + MAX_INPUT MB_LEN_MAX MSG_CTRUNC MSG_DONTROUTE MSG_EOR MSG_OOB MSG_PEEK + MSG_TRUNC MSG_WAITALL NAME_MAX NCCS NGROUPS_MAX NOFLSH OPEN_MAX OPOST + PARENB PARMRK PARODD PATH_MAX PIPE_BUF RAND_MAX R_OK SCHAR_MAX +- SCHAR_MIN SEEK_CUR SEEK_END SEEK_SET SHRT_MAX SHRT_MIN SIGABRT SIGALRM ++ SCHAR_MIN SHRT_MAX SHRT_MIN SIGABRT SIGALRM + SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT + SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU + SIGUSR1 SIGUSR2 SIG_BLOCK SIG_SETMASK SIG_UNBLOCK SSIZE_MAX +- STDERR_FILENO STDIN_FILENO STDOUT_FILENO STREAM_MAX +- S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID +- S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR TCIFLUSH TCIOFF ++ STDERR_FILENO STDIN_FILENO STDOUT_FILENO STREAM_MAX TCIFLUSH TCIOFF + TCIOFLUSH TCION TCOFLUSH TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW + TMP_MAX TOSTOP TZNAME_MAX VEOF VEOL VERASE VINTR VKILL VMIN VQUIT + VSTART VSTOP VSUSP VTIME WNOHANG WUNTRACED W_OK X_OK + +--- perl/ext/POSIX/POSIX.pm#2~33640~ 2008-04-03 09:03:24.000000000 -0700 ++++ perl/ext/POSIX/POSIX.pm 2008-05-20 05:48:04.000000000 -0700 +@@ -4,7 +4,7 @@ + + our(@ISA, %EXPORT_TAGS, @EXPORT_OK, @EXPORT, $AUTOLOAD, %SIGRT) = (); + +-our $VERSION = "1.14"; ++our $VERSION = "1.15"; + + use AutoLoader; + +@@ -13,7 +13,10 @@ + use Fcntl qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK F_SETFD + F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND + O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC +- O_WRONLY); ++ O_WRONLY SEEK_CUR SEEK_END SEEK_SET ++ S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG ++ S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID ++ S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR); + + # Grandfather old foo_h form to new :foo_h form + my $loaded; +@@ -32,9 +35,9 @@ + + XSLoader::load 'POSIX', $VERSION; + +-my %NON_CONSTS = (map {($_,1)} +- qw(S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG WEXITSTATUS +- WIFEXITED WIFSIGNALED WIFSTOPPED WSTOPSIG WTERMSIG)); ++my %NON_CONSTS ++ = (map {($_,1)} qw(WEXITSTATUS WIFEXITED WIFSIGNALED WIFSTOPPED WSTOPSIG ++ WTERMSIG)); + + sub AUTOLOAD { + no strict; + +--- perl/ext/POSIX/POSIX.xs#2~33119~ 2008-01-30 02:06:52.000000000 -0800 ++++ perl/ext/POSIX/POSIX.xs 2008-05-20 05:48:04.000000000 -0700 +@@ -404,7 +404,7 @@ + use ExtUtils::Constant qw (constant_types C_constant XS_constant); + + my $types = {map {($_, 1)} qw(IV)}; +-my @names = (qw(S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG WEXITSTATUS WIFEXITED ++my @names = (qw(WEXITSTATUS WIFEXITED + WIFSIGNALED WIFSTOPPED WSTOPSIG WTERMSIG)); + + print constant_types(); # macro defs +@@ -416,65 +416,14 @@ + */ + + switch (len) { +- case 7: +- /* Names all of length 7. */ +- /* S_ISBLK S_ISCHR S_ISDIR S_ISREG */ +- /* Offset 5 gives the best switch position. */ +- switch (name[5]) { +- case 'E': +- if (memEQ(name, "S_ISREG", 7)) { +- /* ^ */ +-#ifdef S_ISREG +- *arg_result = S_ISREG(*arg_result); +- return PERL_constant_ISIV; +-#else +- return PERL_constant_NOTDEF; +-#endif +- } +- break; +- case 'H': +- if (memEQ(name, "S_ISCHR", 7)) { +- /* ^ */ +-#ifdef S_ISCHR +- *arg_result = S_ISCHR(*arg_result); +- return PERL_constant_ISIV; +-#else +- return PERL_constant_NOTDEF; +-#endif +- } +- break; +- case 'I': +- if (memEQ(name, "S_ISDIR", 7)) { +- /* ^ */ +-#ifdef S_ISDIR +- *arg_result = S_ISDIR(*arg_result); +- return PERL_constant_ISIV; +-#else +- return PERL_constant_NOTDEF; +-#endif +- } +- break; +- case 'L': +- if (memEQ(name, "S_ISBLK", 7)) { +- /* ^ */ +-#ifdef S_ISBLK +- *arg_result = S_ISBLK(*arg_result); +- return PERL_constant_ISIV; +-#else +- return PERL_constant_NOTDEF; +-#endif +- } +- break; +- } +- break; + case 8: + /* Names all of length 8. */ +- /* S_ISFIFO WSTOPSIG WTERMSIG */ +- /* Offset 3 gives the best switch position. */ +- switch (name[3]) { +- case 'O': ++ /* WSTOPSIG WTERMSIG */ ++ /* Offset 1 gives the best switch position. */ ++ switch (name[1]) { ++ case 'S': + if (memEQ(name, "WSTOPSIG", 8)) { +- /* ^ */ ++ /* ^ */ + #ifdef WSTOPSIG + int i = *arg_result; + *arg_result = WSTOPSIG(WMUNGE(i)); +@@ -484,9 +433,9 @@ + #endif + } + break; +- case 'R': ++ case 'T': + if (memEQ(name, "WTERMSIG", 8)) { +- /* ^ */ ++ /* ^ */ + #ifdef WTERMSIG + int i = *arg_result; + *arg_result = WTERMSIG(WMUNGE(i)); +@@ -496,17 +445,6 @@ + #endif + } + break; +- case 'S': +- if (memEQ(name, "S_ISFIFO", 8)) { +- /* ^ */ +-#ifdef S_ISFIFO +- *arg_result = S_ISFIFO(*arg_result); +- return PERL_constant_ISIV; +-#else +- return PERL_constant_NOTDEF; +-#endif +- } +- break; + } + break; + case 9: + +--- perl/t/lib/proxy_constant_subs.t#1~32694~ 2007-12-22 01:23:09.000000000 -0800 ++++ perl/t/lib/proxy_constant_subs.t 2008-05-20 05:48:04.000000000 -0700 +@@ -7,20 +7,20 @@ + print "1..0 # Skip -- Perl configured without B module\n"; + exit 0; + } +- if ($Config::Config{'extensions'} !~ /\bPOSIX\b/) { +- print "1..0 # Skip -- Perl configured without POSIX\n"; ++ if ($Config::Config{'extensions'} !~ /\bFcntl\b/) { ++ print "1..0 # Skip -- Perl configured without Fcntl\n"; + exit 0; + } +- # errno is a real subroutine, and acts as control ++ # S_IFMT is a real subroutine, and acts as control + # SEEK_SET is a proxy constant subroutine. +- @symbols = qw(errno SEEK_SET); ++ @symbols = qw(S_IFMT SEEK_SET); + } + + use strict; + use warnings; + use Test::More tests => 4 * @symbols; + use B qw(svref_2object GVf_IMPORTED_CV); +-use POSIX @symbols; ++use Fcntl @symbols; + + # GVf_IMPORTED_CV should not be set on the original, but should be set on the + # imported GV. +@@ -29,7 +29,7 @@ + my ($ps, $ms); + { + no strict 'refs'; +- $ps = svref_2object(\*{"POSIX::$symbol"}); ++ $ps = svref_2object(\*{"Fcntl::$symbol"}); + $ms = svref_2object(\*{"::$symbol"}); + } + isa_ok($ps, 'B::GV'); + diff --git a/perl-5.10.0-Change33896.patch b/perl-5.10.0-Change33896.patch new file mode 100644 index 0000000..6d0004a --- /dev/null +++ b/perl-5.10.0-Change33896.patch @@ -0,0 +1,261 @@ +--- perl/ext/B/t/concise-xs.t#42~33829~ 2008-05-15 05:01:42.000000000 -0700 ++++ perl/ext/B/t/concise-xs.t 2008-05-21 02:18:00.000000000 -0700 +@@ -180,7 +180,13 @@ + skip => [qw/ _POSIX_JOB_CONTROL /, # platform varying + # Might be XS or imported from Fcntl, depending on your + # perl version: +- qw / S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG /], ++ qw / S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG /, ++ # Might be XS or AUTOLOADed, depending on your perl ++ # version: ++ qw /WEXITSTATUS WIFEXITED WIFSIGNALED WIFSTOPPED ++ WSTOPSIG WTERMSIG/, ++ 'int_macro_int', # Removed in POSIX 1.16 ++ ], + perl => [qw/ import croak AUTOLOAD /], + + XS => [qw/ write wctomb wcstombs uname tzset tzname +@@ -194,7 +200,7 @@ + mblen lseek log10 localeconv ldexp lchown + isxdigit isupper isspace ispunct isprint + islower isgraph isdigit iscntrl isalpha +- isalnum int_macro_int getcwd frexp fpathconf ++ isalnum getcwd frexp fpathconf + fmod floor dup2 dup difftime cuserid ctime + ctermid cosh constant close clock ceil + bootstrap atan asin asctime acos access abort + +--- perl/ext/POSIX/POSIX.pm#55~33826~ 2008-05-15 04:24:43.000000000 -0700 ++++ perl/ext/POSIX/POSIX.pm 2008-05-21 02:18:00.000000000 -0700 +@@ -4,7 +4,7 @@ + + our(@ISA, %EXPORT_TAGS, @EXPORT_OK, @EXPORT, $AUTOLOAD, %SIGRT) = (); + +-our $VERSION = "1.15"; ++our $VERSION = "1.16"; + + use AutoLoader; + +@@ -35,10 +35,6 @@ + + XSLoader::load 'POSIX', $VERSION; + +-my %NON_CONSTS +- = (map {($_,1)} qw(WEXITSTATUS WIFEXITED WIFSIGNALED WIFSTOPPED WSTOPSIG +- WTERMSIG)); +- + sub AUTOLOAD { + no strict; + no warnings 'uninitialized'; +@@ -50,15 +46,9 @@ + local $! = 0; + my $constname = $AUTOLOAD; + $constname =~ s/.*:://; +- if ($NON_CONSTS{$constname}) { +- my ($val, $error) = &int_macro_int($constname, $_[0]); +- croak $error if $error; +- *$AUTOLOAD = sub { &int_macro_int($constname, $_[0]) }; +- } else { +- my ($error, $val) = constant($constname); +- croak $error if $error; +- *$AUTOLOAD = sub { $val }; +- } ++ my ($error, $val) = constant($constname); ++ croak $error if $error; ++ *$AUTOLOAD = sub { $val }; + + goto &$AUTOLOAD; + } + +--- perl/ext/POSIX/POSIX.xs#151~33826~ 2008-05-15 04:24:43.000000000 -0700 ++++ perl/ext/POSIX/POSIX.xs 2008-05-21 02:18:00.000000000 -0700 +@@ -394,116 +394,6 @@ + + #include "const-c.inc" + +-/* These were implemented in the old "constant" subroutine. They are actually +- macros that take an integer argument and return an integer result. */ +-static int +-int_macro_int (const char *name, STRLEN len, IV *arg_result) { +- /* Initially switch on the length of the name. */ +- /* This code has been edited from a "constant" function generated by: +- +-use ExtUtils::Constant qw (constant_types C_constant XS_constant); +- +-my $types = {map {($_, 1)} qw(IV)}; +-my @names = (qw(WEXITSTATUS WIFEXITED +- WIFSIGNALED WIFSTOPPED WSTOPSIG WTERMSIG)); +- +-print constant_types(); # macro defs +-foreach (C_constant ("POSIX", 'int_macro_int', 'IV', $types, undef, 5, @names) ) { +- print $_, "\n"; # C constant subs +-} +-print "#### XS Section:\n"; +-print XS_constant ("POSIX", $types); +- */ +- +- switch (len) { +- case 8: +- /* Names all of length 8. */ +- /* WSTOPSIG WTERMSIG */ +- /* Offset 1 gives the best switch position. */ +- switch (name[1]) { +- case 'S': +- if (memEQ(name, "WSTOPSIG", 8)) { +- /* ^ */ +-#ifdef WSTOPSIG +- int i = *arg_result; +- *arg_result = WSTOPSIG(WMUNGE(i)); +- return PERL_constant_ISIV; +-#else +- return PERL_constant_NOTDEF; +-#endif +- } +- break; +- case 'T': +- if (memEQ(name, "WTERMSIG", 8)) { +- /* ^ */ +-#ifdef WTERMSIG +- int i = *arg_result; +- *arg_result = WTERMSIG(WMUNGE(i)); +- return PERL_constant_ISIV; +-#else +- return PERL_constant_NOTDEF; +-#endif +- } +- break; +- } +- break; +- case 9: +- if (memEQ(name, "WIFEXITED", 9)) { +-#ifdef WIFEXITED +- int i = *arg_result; +- *arg_result = WIFEXITED(WMUNGE(i)); +- return PERL_constant_ISIV; +-#else +- return PERL_constant_NOTDEF; +-#endif +- } +- break; +- case 10: +- if (memEQ(name, "WIFSTOPPED", 10)) { +-#ifdef WIFSTOPPED +- int i = *arg_result; +- *arg_result = WIFSTOPPED(WMUNGE(i)); +- return PERL_constant_ISIV; +-#else +- return PERL_constant_NOTDEF; +-#endif +- } +- break; +- case 11: +- /* Names all of length 11. */ +- /* WEXITSTATUS WIFSIGNALED */ +- /* Offset 1 gives the best switch position. */ +- switch (name[1]) { +- case 'E': +- if (memEQ(name, "WEXITSTATUS", 11)) { +- /* ^ */ +-#ifdef WEXITSTATUS +- int i = *arg_result; +- *arg_result = WEXITSTATUS(WMUNGE(i)); +- return PERL_constant_ISIV; +-#else +- return PERL_constant_NOTDEF; +-#endif +- } +- break; +- case 'I': +- if (memEQ(name, "WIFSIGNALED", 11)) { +- /* ^ */ +-#ifdef WIFSIGNALED +- int i = *arg_result; +- *arg_result = WIFSIGNALED(WMUNGE(i)); +- return PERL_constant_ISIV; +-#else +- return PERL_constant_NOTDEF; +-#endif +- } +- break; +- } +- break; +- } +- return PERL_constant_NOTFOUND; +-} +- + static void + restore_sigmask(pTHX_ SV *osset_sv) + { +@@ -756,47 +646,29 @@ + + INCLUDE: const-xs.inc + +-void +-int_macro_int(sv, iv) +- PREINIT: +- dXSTARG; +- STRLEN len; +- int type; +- INPUT: +- SV * sv; +- const char * s = SvPV(sv, len); +- IV iv; +- PPCODE: +- /* Change this to int_macro_int(s, len, &iv, &nv); +- if you need to return both NVs and IVs */ +- type = int_macro_int(s, len, &iv); +- /* Return 1 or 2 items. First is error message, or undef if no error. +- Second, if present, is found value */ +- switch (type) { +- case PERL_constant_NOTFOUND: +- sv = sv_2mortal(newSVpvf("%s is not a valid POSIX macro", s)); +- EXTEND(SP, 1); +- PUSHs(&PL_sv_undef); +- PUSHs(sv); +- break; +- case PERL_constant_NOTDEF: +- sv = sv_2mortal(newSVpvf( +- "Your vendor has not defined POSIX macro %s, used", s)); +- EXTEND(SP, 1); +- PUSHs(&PL_sv_undef); +- PUSHs(sv); +- break; +- case PERL_constant_ISIV: +- PUSHi(iv); +- break; +- default: +- sv = sv_2mortal(newSVpvf( +- "Unexpected return type %d while processing POSIX macro %s, used", +- type, s)); +- EXTEND(SP, 1); +- PUSHs(&PL_sv_undef); +- PUSHs(sv); +- } ++int ++WEXITSTATUS(status) ++ int status ++ ++int ++WIFEXITED(status) ++ int status ++ ++int ++WIFSIGNALED(status) ++ int status ++ ++int ++WIFSTOPPED(status) ++ int status ++ ++int ++WSTOPSIG(status) ++ int status ++ ++int ++WTERMSIG(status) ++ int status + + int + isalnum(charstring) + + diff --git a/perl-5.10.0-Change33897.patch b/perl-5.10.0-Change33897.patch new file mode 100644 index 0000000..4103b04 --- /dev/null +++ b/perl-5.10.0-Change33897.patch @@ -0,0 +1,61 @@ +--- perl/ext/POSIX/POSIX.xs#152~33896~ 2008-05-21 02:18:00.000000000 -0700 ++++ perl/ext/POSIX/POSIX.xs 2008-05-21 03:31:32.000000000 -0700 +@@ -649,26 +649,37 @@ + int + WEXITSTATUS(status) + int status +- +-int +-WIFEXITED(status) +- int status +- +-int +-WIFSIGNALED(status) +- int status +- +-int +-WIFSTOPPED(status) +- int status +- +-int +-WSTOPSIG(status) +- int status +- +-int +-WTERMSIG(status) +- int status ++ ALIAS: ++ POSIX::WIFEXITED = 1 ++ POSIX::WIFSIGNALED = 2 ++ POSIX::WIFSTOPPED = 3 ++ POSIX::WSTOPSIG = 4 ++ POSIX::WTERMSIG = 5 ++ CODE: ++ switch(ix) { ++ case 0: ++ RETVAL = WEXITSTATUS(status); ++ break; ++ case 1: ++ RETVAL = WIFEXITED(status); ++ break; ++ case 2: ++ RETVAL = WIFSIGNALED(status); ++ break; ++ case 3: ++ RETVAL = WIFSTOPPED(status); ++ break; ++ case 4: ++ RETVAL = WSTOPSIG(status); ++ break; ++ case 5: ++ RETVAL = WTERMSIG(status); ++ break; ++ default: ++ Perl_croak(aTHX_ "Illegal alias %d for POSIX::W*", ix); ++ } ++ OUTPUT: ++ RETVAL + + int + isalnum(charstring) + diff --git a/perl.spec b/perl.spec index 094feca..4329050 100644 --- a/perl.spec +++ b/perl.spec @@ -7,7 +7,7 @@ Name: perl Version: %{perl_version} -Release: 50%{?dist} +Release: 51%{?dist} Epoch: %{perl_epoch} Summary: Practical Extraction and Report Language Group: Development/Languages @@ -103,6 +103,24 @@ Patch26: perl-5.10.0-stlocal.patch # File::Temp 0.20 Patch27: perl-5.10.0-File-Temp-0.20.patch +# Change 33640: More diagnostics for Fatal.pm, version bumps for all non-dual life modules affected +# http://www.nntp.perl.org/group/perl.perl5.changes/2008/04/msg21478.html +Patch28: perl-5.10.0-Change33640.patch + +# Change 33881: (33825) Add SEEK_CUR, SEEK_END, SEEK_SET to list of constants POSIX imports from Fcntl +# (33826) Remove POSIX's internal implementation of S_ISBLK, S_ISCHR, S_ISDIR, S_ISFIFO, S_ISREG, pull from Fcntl +# (33829) Fix typo +# http://www.nntp.perl.org/group/perl.perl5.changes/2008/05/msg21717.html +Patch29: perl-5.10.0-Change33881.patch + +# Change 33896: Eliminate POSIX::int_macro_int, and all the complex AUTOLOAD fandango +# http://www.nntp.perl.org/group/perl.perl5.changes/2008/05/msg21732.html +Patch30: perl-5.10.0-Change33896.patch + +# Change 33897: Replaced the WEXITSTATUS, WIFEXITED, WIFSIGNALED, WIFSTOPPED, WSTOPSIG +# http://www.nntp.perl.org/group/perl.perl5.changes/2008/05/msg21733.html +Patch31: perl-5.10.0-Change33897.patch + BuildRoot: %{_tmppath}/%{name}-%{perl_version}-%{release}-root-%(%{__id_u} -n) BuildRequires: tcsh, dos2unix, man, groff BuildRequires: gdbm-devel, db4-devel, zlib-devel @@ -367,7 +385,7 @@ Summary: Utilities for embedding Perl in C/C++ applications Group: Development/Languages License: GPL+ or Artistic Epoch: 0 -Version: 1.27 +Version: 1.28 Requires: perl-devel Requires: perl = %{perl_epoch}:%{perl_version}-%{release} @@ -559,7 +577,7 @@ Summary: Perl core modules indexed by perl versions Group: Development/Languages License: GPL+ or Artistic Epoch: 0 -Version: 2.14 +Version: 2.15 Requires: perl = %{perl_epoch}:%{perl_version}-%{release} Requires: perl(version) @@ -837,6 +855,10 @@ upstream tarball from perl.org. %patch25 -p1 %patch26 -p1 %patch27 -p1 +%patch28 -p1 +%patch29 -p1 +%patch30 -p1 +%patch31 -p1 # # Candidates for doc recoding (need case by case review): @@ -1066,6 +1088,10 @@ perl -x patchlevel.h 'Fedora Patch24: Storable fix' perl -x patchlevel.h 'Fedora Patch25: Update to Pod::Simple 3.07' perl -x patchlevel.h 'Fedora Patch26: Fix crash when localizing a symtab entry - rt52740' perl -x patchlevel.h 'Fedora Patch27: Update to File::Temp 0.20' +perl -x patchlevel.h '33640 Integrate Changes 33399, 33621, 33622, 33623, 33624' +perl -x patchlevel.h '33881 Integrate Changes 33825, 33826, 33829' +perl -x patchlevel.h '33896 Eliminate POSIX::int_macro_int, and all the complex AUTOLOAD fandango' +perl -x patchlevel.h '33897 Replaced the WEXITSTATUS, WIFEXITED, WIFSIGNALED, WIFSTOPPED, WSTOPSIG' %clean rm -rf $RPM_BUILD_ROOT @@ -1673,6 +1699,10 @@ make test # Old changelog entries are preserved in CVS. %changelog +* Fri Nov 28 2008 Tom "spot" Callaway - 4:5.10.0-51 +- to fix Fedora bz 473223, which is really perl bug #54186 (http://rt.perl.org/rt3//Public/Bug/Display.html?id=54186) + we apply Changes 33640, 33881, 33896, 33897 + * Mon Nov 24 2008 Marcela Mašláňová - 4:5.10.0-50 - change summary according to RFC fix summary discussion at fedora-devel :)