summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-perl/HTTP-Server-Simple')
-rw-r--r--dev-perl/HTTP-Server-Simple/ChangeLog8
-rw-r--r--dev-perl/HTTP-Server-Simple/HTTP-Server-Simple-0.35.ebuild22
-rw-r--r--dev-perl/HTTP-Server-Simple/files/0.35-debian.patch87
3 files changed, 116 insertions, 1 deletions
diff --git a/dev-perl/HTTP-Server-Simple/ChangeLog b/dev-perl/HTTP-Server-Simple/ChangeLog
index 22c9cb807e30..fa5ddba0b879 100644
--- a/dev-perl/HTTP-Server-Simple/ChangeLog
+++ b/dev-perl/HTTP-Server-Simple/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-perl/HTTP-Server-Simple
# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-perl/HTTP-Server-Simple/ChangeLog,v 1.30 2008/09/15 18:55:18 tove Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-perl/HTTP-Server-Simple/ChangeLog,v 1.31 2008/10/23 07:24:03 tove Exp $
+
+*HTTP-Server-Simple-0.35 (23 Oct 2008)
+
+ 23 Oct 2008; Torsten Veller <tove@gentoo.org> +files/0.35-debian.patch,
+ +HTTP-Server-Simple-0.35.ebuild:
+ Version bump
15 Sep 2008; Torsten Veller <tove@gentoo.org>
-HTTP-Server-Simple-0.16.ebuild, -HTTP-Server-Simple-0.20.ebuild,
diff --git a/dev-perl/HTTP-Server-Simple/HTTP-Server-Simple-0.35.ebuild b/dev-perl/HTTP-Server-Simple/HTTP-Server-Simple-0.35.ebuild
new file mode 100644
index 000000000000..9a266da34c72
--- /dev/null
+++ b/dev-perl/HTTP-Server-Simple/HTTP-Server-Simple-0.35.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-perl/HTTP-Server-Simple/HTTP-Server-Simple-0.35.ebuild,v 1.1 2008/10/23 07:24:03 tove Exp $
+
+MODULE_AUTHOR=ALEXMV
+inherit perl-module eutils
+
+DESCRIPTION="Lightweight HTTP Server"
+
+SLOT="0"
+LICENSE="|| ( Artistic GPL-2 )"
+KEYWORDS="~amd64 ~ia64 ~ppc ~sparc ~x86"
+IUSE="test"
+
+RDEPEND="dev-lang/perl
+ dev-perl/URI"
+DEPEND="${RDEPEND}
+ test? ( dev-perl/Test-Pod
+ dev-perl/Test-Pod-Coverage )"
+
+SRC_TEST="do"
+PATCHES="${FILESDIR}/${PV}-debian.patch"
diff --git a/dev-perl/HTTP-Server-Simple/files/0.35-debian.patch b/dev-perl/HTTP-Server-Simple/files/0.35-debian.patch
new file mode 100644
index 000000000000..800a2667c6c2
--- /dev/null
+++ b/dev-perl/HTTP-Server-Simple/files/0.35-debian.patch
@@ -0,0 +1,87 @@
+--- a/t/01live.t
++++ b/t/01live.t
+@@ -34,11 +34,7 @@ for my $class (@classes) {
+ }
+
+
+-TODO: {
+- local $TODO = "We don't currently wait for 'server is running' responses from the client";
+- run_server_tests('SlowServer');
+-
+-}
++run_server_tests('SlowServer');
+
+
+
+--- libhttp-server-simple-perl.orig/lib/HTTP/Server/Simple.pm
++++ libhttp-server-simple-perl/lib/HTTP/Server/Simple.pm
+@@ -6,6 +6,7 @@
+ use Socket;
+ use Carp;
+ use URI::Escape;
++use IO::Select;
+
+ use vars qw($VERSION $bad_request_doc);
+ $VERSION = '0.35';
+@@ -215,15 +216,36 @@
+
+ sub background {
+ my $self = shift;
++
++ # set up a pipe so the child can tell the parent when it's ready
++ # to accept requests
++ my ($readfh, $writefh) = FileHandle::pipe;
++
+ my $child = fork;
+ die "Can't fork: $!" unless defined($child);
+- return $child if $child;
++ if ($child) { # parent
++ my $s = IO::Select->new;
++ $s->add($readfh);
++ my $now = time; my $left = 0;
++ my @ready;
++ while(not @ready and $left < 5) {
++ @ready = $s->can_read($left);
++ $left = time - $now;
++ }
++ die("child unresponsive for 5 seconds") if(not @ready);
++ my $response = <$readfh>;
++ chomp $response;
++ die("child is confused: answer '$response' != 'OK'")
++ if $response ne "OK";
++ return $child;
++ }
+
+ if ( $^O !~ /MSWin32/ ) {
+ require POSIX;
+ POSIX::setsid()
+ or die "Can't start a new session: $!";
+ }
++ $self->{_parent_handle} = $writefh;
+ $self->run(@_);
+ }
+
+@@ -270,6 +292,7 @@
+ $self->after_setup_listener();
+ *{"$pkg\::run"} = $self->_default_run;
+ }
++ $self->_maybe_tell_parent();
+
+ local $SIG{HUP} = sub { $SERVER_SHOULD_RUN = 0; };
+
+@@ -407,6 +430,15 @@
+ }
+ }
+
++sub _maybe_tell_parent {
++ # inform the parent process that we're ready, if applicable
++ my $self = shift;
++ my $handle = $self->{_parent_handle};
++ return if !$handle;
++ print $handle "OK\n";
++ close $handle;
++ delete $self->{_parent_handle};
++}
+
+
+