From 3a08c401f298095840a2aee9079845f5ff434410 Mon Sep 17 00:00:00 2001 From: Nitin A Kamble Date: Sat, 23 Apr 2011 19:43:17 -0700 Subject: perl: upgrade from 5.12.2 to 5.12.3 And changed the perl tarball URL to more stable cpan location. Signed-off-by: Nitin A Kamble --- .../perl-5.12.3/debian/fixes/autodie-flock.diff | 100 +++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/autodie-flock.diff (limited to 'meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/autodie-flock.diff') diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/autodie-flock.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/autodie-flock.diff new file mode 100644 index 000000000..375ae418f --- /dev/null +++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/autodie-flock.diff @@ -0,0 +1,100 @@ +Upstream-Status:Inappropriate [debian patch] + +From: Niko Tyni +Subject: Allow for flock returning EAGAIN instead of EWOULDBLOCK on linux/parisc +Bug-Debian: http://bugs.debian.org/543731 +Origin: upstream, http://github.com/pfenwick/autodie/commit/037738e11a6097734b0e1dabdd77b92e5fe35219 + + +--- + cpan/autodie/lib/Fatal.pm | 14 +++++++++++++- + cpan/autodie/t/flock.t | 12 ++++++++++-- + 2 files changed, 23 insertions(+), 3 deletions(-) + +diff --git a/cpan/autodie/lib/Fatal.pm b/cpan/autodie/lib/Fatal.pm +old mode 100644 +new mode 100755 +index 18e71ed..c17a257 +--- a/cpan/autodie/lib/Fatal.pm ++++ b/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/cpan/autodie/t/flock.t b/cpan/autodie/t/flock.t +index a7550ba..6421a56 100755 +--- a/cpan/autodie/t/flock.t ++++ b/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"); + +-- +tg: (a508b62..) fixes/autodie-flock (depends on: upstream) -- cgit v1.2.3