Hello community, here is the log from the commit of package perl for openSUSE:Factory checked in at Wed Jun 2 18:06:42 CEST 2010. -------- --- perl/perl.changes 2010-05-21 12:30:15.000000000 +0200 +++ /mounts/work_src_done/STABLE/perl/perl.changes 2010-05-24 09:54:17.000000000 +0200 @@ -1,0 +2,5 @@ +Mon May 24 07:49:24 UTC 2010 - bg@novell.com + +- fix for hppa [deb#543731] + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- perl-Fatal.diff perl-autodie-flock.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl.spec ++++++ --- /var/tmp/diff_new_pack.t9S1q0/_old 2010-06-02 18:02:34.000000000 +0200 +++ /var/tmp/diff_new_pack.t9S1q0/_new 2010-06-02 18:02:34.000000000 +0200 @@ -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 @@ 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 @@ %patch3 %patch4 %patch5 +%ifarch hppa +%patch6 +%patch7 +%endif %build cp -a lib savelib ++++++ perl-Fatal.diff ++++++ 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; } ++++++ perl-autodie-flock.diff ++++++ 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"); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org