summaryrefslogtreecommitdiff
path: root/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/autodie-flock.diff
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/autodie-flock.diff')
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/autodie-flock.diff100
1 files changed, 0 insertions, 100 deletions
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
deleted file mode 100644
index 375ae418f..000000000
--- a/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/autodie-flock.diff
+++ /dev/null
@@ -1,100 +0,0 @@
-Upstream-Status:Inappropriate [debian patch]
-
-From: Niko Tyni <ntyni@debian.org>
-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)