From 64283334df2bfafd1b4e6db5588bc2b3e5c8731daa756ffbfdc5ecfd64d23905 Mon Sep 17 00:00:00 2001 From: Lars Vogdt Date: Tue, 1 Jun 2010 11:33:30 +0000 Subject: [PATCH 1/3] Accepting request 40922 from home:azouhr:branches:devel:languages:perl Copy from home:azouhr:branches:devel:languages:perl/perl via accept of submit request 40922 revision 4. Request was accepted with message: Reviewed ok OBS-URL: https://build.opensuse.org/request/show/40922 OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl?expand=0&rev=36 --- perl-Fatal.diff | 48 +++++++++++++++++++++++++++++++++++++++++ perl-autodie-flock.diff | 37 +++++++++++++++++++++++++++++++ perl.changes | 5 +++++ perl.spec | 6 ++++++ 4 files changed, 96 insertions(+) create mode 100644 perl-Fatal.diff create mode 100644 perl-autodie-flock.diff diff --git a/perl-Fatal.diff b/perl-Fatal.diff new file mode 100644 index 0000000..7b8c12c --- /dev/null +++ b/perl-Fatal.diff @@ -0,0 +1,48 @@ +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; + } + diff --git a/perl-autodie-flock.diff b/perl-autodie-flock.diff new file mode 100644 index 0000000..6815c00 --- /dev/null +++ b/perl-autodie-flock.diff @@ -0,0 +1,37 @@ +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"); + diff --git a/perl.changes b/perl.changes index ed2c95b..85508e1 100644 --- a/perl.changes +++ b/perl.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon May 24 07:49:24 UTC 2010 - bg@novell.com + +- fix for hppa [deb#543731] + ------------------------------------------------------------------- Fri May 21 12:30:00 CEST 2010 - mls@suse.de diff --git a/perl.spec b/perl.spec index f5e7f2b..65f9ab6 100644 --- a/perl.spec +++ b/perl.spec @@ -38,6 +38,8 @@ Patch2: perl-fix_dbmclose_call.patch Patch3: perl-regexp-refoverflow.diff Patch4: perl-nroff.diff Patch5: perl-netcmdutf8.diff +Patch6: perl-autodie-flock.diff +Patch7: perl-Fatal.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build PreReq: perl-base = %version #PreReq: %fillup_prereq @@ -148,6 +150,10 @@ cp -p %{S:3} . %patch3 %patch4 %patch5 +%ifarch hppa +%patch6 +%patch7 +%endif %build cp -a lib savelib From 5df49de15271f3ea4bdcfb5bbb06f7863a7a949f16f00f716a0589cf75c8e242 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Wed, 2 Jun 2010 16:06:43 +0000 Subject: [PATCH 2/3] Accepting request 40945 from devel:languages:perl checked in (request 40945) OBS-URL: https://build.opensuse.org/request/show/40945 OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl?expand=0&rev=37 --- perl-Fatal.diff | 48 ----------------------------------------- perl-autodie-flock.diff | 37 ------------------------------- perl.changes | 5 ----- perl.spec | 6 ------ 4 files changed, 96 deletions(-) delete mode 100644 perl-Fatal.diff delete mode 100644 perl-autodie-flock.diff diff --git a/perl-Fatal.diff b/perl-Fatal.diff deleted file mode 100644 index 7b8c12c..0000000 --- a/perl-Fatal.diff +++ /dev/null @@ -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; - } - diff --git a/perl-autodie-flock.diff b/perl-autodie-flock.diff deleted file mode 100644 index 6815c00..0000000 --- a/perl-autodie-flock.diff +++ /dev/null @@ -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"); - diff --git a/perl.changes b/perl.changes index 85508e1..ed2c95b 100644 --- a/perl.changes +++ b/perl.changes @@ -1,8 +1,3 @@ -------------------------------------------------------------------- -Mon May 24 07:49:24 UTC 2010 - bg@novell.com - -- fix for hppa [deb#543731] - ------------------------------------------------------------------- Fri May 21 12:30:00 CEST 2010 - mls@suse.de diff --git a/perl.spec b/perl.spec index 65f9ab6..f5e7f2b 100644 --- a/perl.spec +++ b/perl.spec @@ -38,8 +38,6 @@ Patch2: perl-fix_dbmclose_call.patch Patch3: perl-regexp-refoverflow.diff Patch4: perl-nroff.diff Patch5: perl-netcmdutf8.diff -Patch6: perl-autodie-flock.diff -Patch7: perl-Fatal.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build PreReq: perl-base = %version #PreReq: %fillup_prereq @@ -150,10 +148,6 @@ cp -p %{S:3} . %patch3 %patch4 %patch5 -%ifarch hppa -%patch6 -%patch7 -%endif %build cp -a lib savelib From b5a27dae3ed33aadc5a9e0c4417b3adb5b389d0a3f1dc04d3b71b98b9f2f0514 Mon Sep 17 00:00:00 2001 From: OBS User buildservice-autocommit Date: Wed, 2 Jun 2010 16:06:44 +0000 Subject: [PATCH 3/3] Updating link to change in openSUSE:Factory/perl revision 43.0 OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl?expand=0&rev=f723955118192f629d81e4e5bdf30b86 --- perl-Fatal.diff | 48 +++++++++++++++++++++++++++++++++++++++++ perl-autodie-flock.diff | 37 +++++++++++++++++++++++++++++++ perl.changes | 5 +++++ perl.spec | 8 ++++++- 4 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 perl-Fatal.diff create mode 100644 perl-autodie-flock.diff diff --git a/perl-Fatal.diff b/perl-Fatal.diff new file mode 100644 index 0000000..7b8c12c --- /dev/null +++ b/perl-Fatal.diff @@ -0,0 +1,48 @@ +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; + } + diff --git a/perl-autodie-flock.diff b/perl-autodie-flock.diff new file mode 100644 index 0000000..6815c00 --- /dev/null +++ b/perl-autodie-flock.diff @@ -0,0 +1,37 @@ +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"); + diff --git a/perl.changes b/perl.changes index ed2c95b..85508e1 100644 --- a/perl.changes +++ b/perl.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon May 24 07:49:24 UTC 2010 - bg@novell.com + +- fix for hppa [deb#543731] + ------------------------------------------------------------------- Fri May 21 12:30:00 CEST 2010 - mls@suse.de diff --git a/perl.spec b/perl.spec index f5e7f2b..8447552 100644 --- a/perl.spec +++ b/perl.spec @@ -21,7 +21,7 @@ Name: perl Summary: The Perl interpreter Version: 5.12.0 -Release: 2 +Release: 3 %define pversion 5.12.0 License: Artistic License .. ; GPLv2+ Group: Development/Languages/Perl @@ -38,6 +38,8 @@ Patch2: perl-fix_dbmclose_call.patch Patch3: perl-regexp-refoverflow.diff Patch4: perl-nroff.diff Patch5: perl-netcmdutf8.diff +Patch6: perl-autodie-flock.diff +Patch7: perl-Fatal.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build PreReq: perl-base = %version #PreReq: %fillup_prereq @@ -148,6 +150,10 @@ cp -p %{S:3} . %patch3 %patch4 %patch5 +%ifarch hppa +%patch6 +%patch7 +%endif %build cp -a lib savelib