[perl-libwww-perl] Honor time-out
Petr Pisar
ppisar at fedoraproject.org
Fri Mar 8 14:10:12 UTC 2013
commit 44c10702d8c42a545795c979bf5e401c25dbfa0c
Author: Petr Písař <ppisar at redhat.com>
Date: Fri Mar 8 15:07:49 2013 +0100
Honor time-out
...TP-6.04-we-don-t-need-our-own-can_read-an.patch | 75 ++++++++++++++++++++
perl-libwww-perl.spec | 19 +++--
2 files changed, 87 insertions(+), 7 deletions(-)
---
diff --git a/libwww-perl-6.04-With-Net-HTTP-6.04-we-don-t-need-our-own-can_read-an.patch b/libwww-perl-6.04-With-Net-HTTP-6.04-we-don-t-need-our-own-can_read-an.patch
new file mode 100644
index 0000000..ad25cbe
--- /dev/null
+++ b/libwww-perl-6.04-With-Net-HTTP-6.04-we-don-t-need-our-own-can_read-an.patch
@@ -0,0 +1,75 @@
+From 6794fa73e92d63e973b38f97299b4181bdd7ee8b Mon Sep 17 00:00:00 2001
+From: Gisle Aas <gisle at aas.no>
+Date: Thu, 8 Nov 2012 21:07:33 +0100
+Subject: [PATCH] With Net::HTTP 6.04 we don't need our own can_read() and
+ sysread override
+
+---
+ Makefile.PL | 2 +-
+ lib/LWP/Protocol/http.pm | 37 -------------------------------------
+ 2 files changed, 1 insertion(+), 38 deletions(-)
+
+diff --git a/Makefile.PL b/Makefile.PL
+index a6f808e..87075b4 100644
+--- a/Makefile.PL
++++ b/Makefile.PL
+@@ -61,7 +61,7 @@ WriteMakefile(
+ 'LWP::MediaTypes' => 6,
+ 'MIME::Base64' => "2.1",
+ 'Net::FTP' => "2.58",
+- 'Net::HTTP' => 6,
++ 'Net::HTTP' => "6.04",
+ 'URI' => "1.10",
+ 'URI::Escape' => 0,
+ 'WWW::RobotRules' => 6,
+diff --git a/lib/LWP/Protocol/http.pm b/lib/LWP/Protocol/http.pm
+index 8d7c6d9..d0583d4 100644
+--- a/lib/LWP/Protocol/http.pm
++++ b/lib/LWP/Protocol/http.pm
+@@ -446,43 +446,6 @@ sub request
+ #-----------------------------------------------------------
+ package LWP::Protocol::http::SocketMethods;
+
+-sub sysread {
+- my $self = shift;
+- if (my $timeout = ${*$self}{io_socket_timeout}) {
+- die "read timeout" unless $self->can_read($timeout);
+- }
+- else {
+- # since we have made the socket non-blocking we
+- # use select to wait for some data to arrive
+- $self->can_read(undef) || die "Assert";
+- }
+- sysread($self, $_[0], $_[1], $_[2] || 0);
+-}
+-
+-sub can_read {
+- my($self, $timeout) = @_;
+- my $fbits = '';
+- vec($fbits, fileno($self), 1) = 1;
+- SELECT:
+- {
+- my $before;
+- $before = time if $timeout;
+- my $nfound = select($fbits, undef, undef, $timeout);
+- if ($nfound < 0) {
+- if ($!{EINTR} || $!{EAGAIN}) {
+- # don't really think EAGAIN can happen here
+- if ($timeout) {
+- $timeout -= time - $before;
+- $timeout = 0 if $timeout < 0;
+- }
+- redo SELECT;
+- }
+- die "select failed: $!";
+- }
+- return $nfound > 0;
+- }
+-}
+-
+ sub ping {
+ my $self = shift;
+ !$self->can_read(0);
+--
+1.8.1.4
+
diff --git a/perl-libwww-perl.spec b/perl-libwww-perl.spec
index 72d6f81..9c6eae8 100644
--- a/perl-libwww-perl.spec
+++ b/perl-libwww-perl.spec
@@ -1,11 +1,13 @@
Name: perl-libwww-perl
Version: 6.04
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: A Perl interface to the World-Wide Web
Group: Development/Libraries
License: GPL+ or Artistic
URL: http://search.cpan.org/dist/libwww-perl/
Source0: http://www.cpan.org/authors/id/G/GA/GAAS/libwww-perl-%{version}.tar.gz
+# Fix time-out, bug #919448, CPAN RT#81799, in upstream after 6.04
+Patch0: libwww-perl-6.04-With-Net-HTTP-6.04-we-don-t-need-our-own-can_read-an.patch
BuildArch: noarch
BuildRequires: perl(Digest::MD5)
BuildRequires: perl(Encode) >= 2.12
@@ -28,14 +30,14 @@ BuildRequires: perl(IO::Socket)
BuildRequires: perl(LWP::MediaTypes) >= 6
BuildRequires: perl(MIME::Base64) >= 2.1
BuildRequires: perl(Net::FTP) >= 2.58
-BuildRequires: perl(Net::HTTP) >= 6
+BuildRequires: perl(Net::HTTP) >= 6.04
BuildRequires: perl(URI) >= 1.10
BuildRequires: perl(URI::Escape)
BuildRequires: perl(WWW::RobotRules) >= 6
# Tests only:
BuildRequires: perl(Config)
BuildRequires: perl(Test::More)
-Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
+Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
Requires: perl(Encode) >= 2.12
Requires: perl(File::Listing) >= 6
Requires: perl(HTML::Entities)
@@ -51,7 +53,7 @@ Requires: perl(HTTP::Status) >= 6
Requires: perl(LWP::MediaTypes) >= 6
Requires: perl(MIME::Base64) >= 2.1
Requires: perl(Net::FTP) >= 2.58
-Requires: perl(Net::HTTP) >= 6
+Requires: perl(Net::HTTP) >= 6.04
Requires: perl(URI) >= 1.10
Requires: perl(URI::Escape)
Requires: perl(WWW::RobotRules) >= 6
@@ -82,16 +84,16 @@ use and even classes that help you implement simple HTTP servers.
%prep
%setup -q -n libwww-perl-%{version}
+%patch0 -p1
%build
# Install the aliases by default
-%{__perl} Makefile.PL INSTALLDIRS=perl --aliases < /dev/null
+perl Makefile.PL INSTALLDIRS=perl --aliases < /dev/null
make %{?_smp_mflags}
%install
-make pure_install PERL_INSTALL_ROOT=$RPM_BUILD_ROOT
+make pure_install DESTDIR=$RPM_BUILD_ROOT
find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';'
-find $RPM_BUILD_ROOT -type d -depth -exec rmdir {} 2>/dev/null ';'
chmod -R u+w $RPM_BUILD_ROOT/*
%check
@@ -108,6 +110,9 @@ make test
%{_mandir}/man3/*.3*
%changelog
+* Fri Mar 08 2013 Petr Pisar <ppisar at redhat.com> - 6.04-5
+- Honor time-out (bug #919448)
+
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 6.04-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
More information about the scm-commits
mailing list