>From 96b6f5340aaf906e870d20b95d546801de03c587 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ralf=20Cors=C3=A9pius?= <corsepiu@xxxxxxxxxxxxxxxxx> Date: Tue, 7 Apr 2015 05:16:23 +0200 Subject: Upstream update. - Rework spec. - Remove bundled modules. - Drop Fedora/RH-patches. diff --git a/.gitignore b/.gitignore index 48e455c..2ba2233 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/Server-Starter-0.17.tar.gz +/Server-Starter-0.25.tar.gz diff --git a/Server-Starter-0.17-Fix-loading-envdir.patch b/Server-Starter-0.17-Fix-loading-envdir.patch deleted file mode 100644 index d0b9dbf..0000000 --- a/Server-Starter-0.17-Fix-loading-envdir.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 6d965848ff8905f82da0f1ac142000b12a05905e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@xxxxxxxxxx> -Date: Mon, 16 Jun 2014 17:25:08 +0200 -Subject: [PATCH 2/2] Fix loading envdir -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The envdir was scanned each second regardless of signal received. This -caused random failures of the 'removed env' t/07-envdir.t test. - -This patch fixes it by loading the environment only just before -intended restart. It also documents this start_server() option. - -Signed-off-by: Petr PÃsaÅ? <ppisar@xxxxxxxxxx> ---- - lib/Server/Starter.pm | 31 ++++++++++++++++++++++--------- - 1 file changed, 22 insertions(+), 9 deletions(-) - -diff --git a/lib/Server/Starter.pm b/lib/Server/Starter.pm -index 47bc18a..c171307 100644 ---- a/lib/Server/Starter.pm -+++ b/lib/Server/Starter.pm -@@ -179,15 +179,13 @@ sub start_server { - - # the main loop - my $term_signal = 0; -- $current_worker = _start_worker($opts); -+ my %loaded_env; -+ $current_worker = _start_worker($opts, \%loaded_env); - $update_status->(); - my $auto_restart_interval = 0; - my $last_restart_time = time(); - my $restart_flag = 0; - while (1) { -- my %loaded_env = _reload_env(); -- my @loaded_env_keys = keys %loaded_env; -- local @ENV{@loaded_env_keys} = map { $loaded_env{$_} } (@loaded_env_keys); - if ($ENV{ENABLE_AUTO_RESTART}) { - # restart workers periodically - $auto_restart_interval = $ENV{AUTO_RESTART_INTERVAL} ||= 360; -@@ -201,7 +199,7 @@ sub start_server { - last if ($died_worker <= 0); - if ($died_worker == $current_worker) { - print STDERR "worker $died_worker died unexpectedly with status:$status, restarting\n"; -- $current_worker = _start_worker($opts); -+ $current_worker = _start_worker($opts, \%loaded_env); - $last_restart_time = time(); - } else { - print STDERR "old worker $died_worker died, status:$status\n"; -@@ -232,9 +230,10 @@ sub start_server { - } - } - if ($restart_flag > 1 || ($restart_flag > 0 && $num_old_workers == 0)) { -+ %loaded_env = _reload_env(); - print STDERR "spawning a new worker (num_old_workers=$num_old_workers)\n"; - $old_workers{$current_worker} = $ENV{SERVER_STARTER_GENERATION}; -- $current_worker = _start_worker($opts); -+ $current_worker = _start_worker($opts, \%loaded_env); - $last_restart_time = time(); - $restart_flag = 0; - $update_status->(); -@@ -342,7 +341,7 @@ sub _reload_env { - } - - sub _start_worker { -- my $opts = shift; -+ my ($opts, $loaded_env) = @_; - my $pid; - while (1) { - $ENV{SERVER_STARTER_GENERATION}++; -@@ -350,6 +349,8 @@ sub _start_worker { - die "fork(2) failed:$!" - unless defined $pid; - if ($pid == 0) { -+ my @loaded_env_keys = keys %$loaded_env; -+ @ENV{@loaded_env_keys} = map { $loaded_env->{$_} } (@loaded_env_keys); - my @args = @{$opts->{exec}}; - # child process - if (defined $opts->{dir}) { -@@ -418,9 +419,21 @@ A Net::Server personality that can be run under L<Server::Starter> exists under - - Returns zero or more file descriptors on which the server program should call accept(2) in a hashref. Each element of the hashref is: (host:port|port|path_of_unix_socket) => file_descriptor. - --=item start_server -+=item start_server(%options) - --Starts the superdaemon. Used by the C<start_server> script. -+Starts the superdaemon. Used by the C<start_server> script. Options are: -+ -+=over 4 -+ -+=item envdir -+ -+Defines a directory whose content is added into server's environment. Each file name specifies an environment variable, the file's content specifies a value of the environment variable. Files with names starting with a dot are ignored. -+ -+The environment directory is scanned and read only on time-based autorestart or SIGHUP signal. The first server instances have default environment. To remove an enviroment variable added before, remove the file and send the signal. -+ -+This option is not mandatory. -+ -+=back - - =back - --- -1.9.3 - diff --git a/Server-Starter-0.17-Synchronize-to-PID-in-t-01-starter.t.patch b/Server-Starter-0.17-Synchronize-to-PID-in-t-01-starter.t.patch deleted file mode 100644 index e194cf3..0000000 --- a/Server-Starter-0.17-Synchronize-to-PID-in-t-01-starter.t.patch +++ /dev/null @@ -1,82 +0,0 @@ -From f7d5f6bfb5e94a3ea01e53c5b69186ff7172b4bf Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@xxxxxxxxxx> -Date: Fri, 8 Aug 2014 12:58:40 +0200 -Subject: [PATCH] Synchronize to PID in t/01-starter.t -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -There were races between various sleeps and the restarting server. -THis patch fixes it by waiting for complete generation change in the -status file. - -This fixes CPAN RT#73711. - -Signed-off-by: Petr PÃsaÅ? <ppisar@xxxxxxxxxx> ---- - t/01-starter.t | 33 +++++++++++++++++++++++++-------- - 1 file changed, 25 insertions(+), 8 deletions(-) - -diff --git a/t/01-starter.t b/t/01-starter.t -index ec671f0..1ddb925 100644 ---- a/t/01-starter.t -+++ b/t/01-starter.t -@@ -3,7 +3,7 @@ use warnings; - - use File::Temp (); - use Test::TCP; --use Test::More tests => 28; -+use Test::More tests => 26; - - use Server::Starter qw(start_server); - -@@ -43,14 +43,17 @@ for my $signal_on_hup ('TERM', 'USR1') { - $buf =~ /^(\d+):/; - my $worker_pid = $1; - # switch to next gen -- sleep 2; -- my $status = get_status(); -- like(get_status(), qr/^1:\d+\n$/s, 'status before restart'); -+ my $previous_generation = get_single_generation(); -+ like($previous_generation, qr/^1:\d+\n$/s, 'status before restart'); - kill 'HUP', $server_pid; -- sleep 3; -- like(get_status(), qr/^1:\d+\n2:\d+$/s, 'status during restart'); -- sleep 2; -- like(get_status(), qr/^2:\d+\n$/s, 'status after restart'); -+ my $current_generation; -+ while (($current_generation = get_single_generation()) eq -+ $previous_generation) { -+ sleep 1; -+ } -+ diag "Server changed from <$previous_generation> ", -+ "to <$current_generation>\n"; -+ like($current_generation, qr/^2:\d+\n$/s, 'status after restart'); - is( - do { - open my $fh, '<', "$tempdir/signame" -@@ -76,7 +79,21 @@ for my $signal_on_hup ('TERM', 'USR1') { - } - - sub get_status { -+ while (! -e "$tempdir/status") { -+ sleep 1; -+ } - open my $fh, '<', "$tempdir/status" - or die "failed to open file:$tempdir/status:$!"; - do { undef $/; <$fh> }; - } -+ -+sub get_single_generation { -+ my $status; -+ do { -+ sleep 1 if defined $status; -+ $status = get_status; -+ } until ($status =~ /\A\d+:\d+\n\z/); -+ chomp $status; -+ $status; -+} -+ --- -1.9.3 - diff --git a/Server-Starter-0.17-Synchronize-to-PID-in-t-05-killolddelay.t.patch b/Server-Starter-0.17-Synchronize-to-PID-in-t-05-killolddelay.t.patch deleted file mode 100644 index 7dad7e0..0000000 --- a/Server-Starter-0.17-Synchronize-to-PID-in-t-05-killolddelay.t.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 046fb1328e76851a1398a624b77e746c37c62a67 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@xxxxxxxxxx> -Date: Thu, 21 Aug 2014 14:17:25 +0200 -Subject: [PATCH] Synchronize to PID in t/05-killolddelay.t -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -There were races between various sleeps and the restarting server. -This patch fixes it by waiting for complete generation change in the -status file. - -Similar to CPAN RT#73711. - -Signed-off-by: Petr PÃsaÅ? <ppisar@xxxxxxxxxx> ---- - t/05-killolddelay.t | 36 +++++++++++++++++++++++++----------- - 1 file changed, 25 insertions(+), 11 deletions(-) - -diff --git a/t/05-killolddelay.t b/t/05-killolddelay.t -index 19856af..457bdd9 100644 ---- a/t/05-killolddelay.t -+++ b/t/05-killolddelay.t -@@ -3,7 +3,7 @@ use warnings; - - use File::Temp (); - use Test::TCP; --use Test::More tests => 28; -+use Test::More tests => 26; - - use Server::Starter qw(start_server); - -@@ -45,17 +45,18 @@ for my $signal_on_hup ('TERM', 'USR1') { - $buf =~ /^(\d+):/; - my $worker_pid = $1; - # switch to next gen -- sleep 2; -- my $status = get_status(); -- like(get_status(), qr/^1:\d+\n$/s, 'status before restart'); -+ my $previous_generation = get_single_generation(); -+ like($previous_generation, qr/^1:\d+\n$/s, 'status before restart'); - kill 'HUP', $server_pid; -- sleep 4; -- like(get_status(), qr/^1:\d+\n2:\d+$/s, 'status during restart'); -- # Child process has finished in 2 seconds but the parent -- # checks and calls waitpid every second, so wait for an -- # additional 1 second. -- sleep 3; -- like(get_status(), qr/^2:\d+\n$/s, 'status after restart'); -+ my $current_generation; -+ while (($current_generation = get_single_generation()) eq -+ $previous_generation) { -+ sleep 1; -+ } -+ diag "Server changed from <$previous_generation> ", -+ "to <$current_generation>\n"; -+ -+ like($current_generation, qr/^2:\d+\n$/s, 'status after restart'); - is( - do { - open my $fh, '<', "$tempdir/signame" -@@ -81,7 +82,20 @@ for my $signal_on_hup ('TERM', 'USR1') { - } - - sub get_status { -+ while (! -e "$tempdir/status") { -+ sleep 1; -+ } - open my $fh, '<', "$tempdir/status" - or die "failed to open file:$tempdir/status:$!"; - do { undef $/; <$fh> }; - } -+ -+sub get_single_generation { -+ my $status; -+ do { -+ sleep 1 if defined $status; -+ $status = get_status; -+ } until ($status =~ /\A\d+:\d+\n\z/); -+ chomp $status; -+ $status; -+} --- -1.9.3 - diff --git a/Server-Starter-0.17-Synchronize-to-PID-in-t-06-autorestart.t.patch b/Server-Starter-0.17-Synchronize-to-PID-in-t-06-autorestart.t.patch deleted file mode 100644 index 9b4a713..0000000 --- a/Server-Starter-0.17-Synchronize-to-PID-in-t-06-autorestart.t.patch +++ /dev/null @@ -1,83 +0,0 @@ -From b2cee396fea96266a95a829b94cdf759d0eae76d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@xxxxxxxxxx> -Date: Thu, 10 Jul 2014 15:37:47 +0200 -Subject: [PATCH] Synchronize to PID in t/06-autorestart.t -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -There were races between various sleeps and 4s auto_restart_interval. -This patch replaces the sleeps by waiting for status with a single PID -entry. - -Similar to CPAN RT#73711. - -Signed-off-by: Petr PÃsaÅ? <ppisar@xxxxxxxxxx> ---- - t/06-autorestart.t | 35 +++++++++++++++++++++++++++-------- - 1 file changed, 27 insertions(+), 8 deletions(-) - -diff --git a/t/06-autorestart.t b/t/06-autorestart.t -index bab9241..9401500 100644 ---- a/t/06-autorestart.t -+++ b/t/06-autorestart.t -@@ -3,7 +3,7 @@ use warnings; - - use File::Temp (); - use Test::TCP; --use Test::More tests => 28; -+use Test::More tests => 26; - - use Server::Starter qw(start_server); - -@@ -46,13 +46,19 @@ for my $signal_on_hup ('TERM', 'USR1') { - $buf =~ /^(\d+):/; - my $worker_pid = $1; - # switch to next gen -- sleep 2; -- my $status = get_status(); -- like(get_status(), qr/^1:\d+\n$/s, 'status before auto-restart'); -- sleep 5; -- like(get_status(), qr/^1:\d+\n2:\d+$/s, 'status during transient state'); -- sleep 4; -- like(get_status(), qr/^2:\d+\n$/s, 'status after auto-restart'); -+ my $previous_generation = get_single_generation(); -+ like($previous_generation, qr/^\d+:\d+\n$/s, -+ 'status before auto-restart'); -+ my $current_generation; -+ while (($current_generation = get_single_generation()) eq -+ $previous_generation) { -+ sleep 1; -+ } -+ diag "Server changed from <$previous_generation> ", -+ "to <$current_generation>\n"; -+ -+ like($current_generation, qr/^\d+:\d+\n$/s, -+ 'status after auto-restart'); - is( - do { - open my $fh, '<', "$tempdir/signame" -@@ -78,7 +84,20 @@ for my $signal_on_hup ('TERM', 'USR1') { - } - - sub get_status { -+ while (! -e "$tempdir/status") { -+ sleep 1; -+ } - open my $fh, '<', "$tempdir/status" - or die "failed to open file:$tempdir/status:$!"; - do { undef $/; <$fh> }; - } -+ -+sub get_single_generation { -+ my $status; -+ do { -+ sleep 1 if defined $status; -+ $status = get_status; -+ } until ($status =~ /\A\d+:\d+\n\z/); -+ chomp $status; -+ $status; -+} --- -1.9.3 - diff --git a/Server-Starter-0.17-Synchronize-to-PID-in-t-07-envdir.t.patch b/Server-Starter-0.17-Synchronize-to-PID-in-t-07-envdir.t.patch deleted file mode 100644 index c71590d..0000000 --- a/Server-Starter-0.17-Synchronize-to-PID-in-t-07-envdir.t.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 9fc8c81a018ba6cb5f3f0ad3fbc836e301468978 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@xxxxxxxxxx> -Date: Mon, 16 Jun 2014 15:20:43 +0200 -Subject: [PATCH 1/2] Synchronize to PID in t/07-envdir.t -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The t/07-envdir.t used various sleeps to deal with races. This broke obviously -when the timing was abnormal like on have loaded machine. This patch -synchronizes on the status file by checking only the new worker is -running. - -Similar to CPAN RT#73711. - -Signed-off-by: Petr PÃsaÅ? <ppisar@xxxxxxxxxx> ---- - t/07-envdir-print.pl | 3 ++- - t/07-envdir.t | 29 ++++++++++++++++++++++++++--- - 2 files changed, 28 insertions(+), 4 deletions(-) - -diff --git a/t/07-envdir-print.pl b/t/07-envdir-print.pl -index 22cb01a..fb14225 100755 ---- a/t/07-envdir-print.pl -+++ b/t/07-envdir-print.pl -@@ -11,6 +11,7 @@ use Server::Starter qw(server_ports); - $SIG{TERM} = $SIG{USR1} = sub { - exit 0; - }; -+$ENV{PID} = $$; - - my $listener = IO::Socket::INET->new( - Proto => 'tcp', -@@ -21,7 +22,7 @@ $listener->fdopen((values %{server_ports()})[0], 'w') - while (1) { - if (my $conn = $listener->accept) { - my $s = ""; -- for my $envkey (keys %ENV) { -+ for my $envkey (sort keys %ENV) { - $s .= $envkey . "=" . $ENV{$envkey} . "\n"; - } - $conn->syswrite($s); -diff --git a/t/07-envdir.t b/t/07-envdir.t -index 8bf2352..2050706 100644 ---- a/t/07-envdir.t -+++ b/t/07-envdir.t -@@ -46,13 +46,36 @@ test_tcp( - $buf; - }; - my $restart = sub { -- sleep 1; -+ sub getstatus { -+ my ($file, $value); -+ open($file, '<', "$tempdir/status") or return ''; -+ do { local $/ = undef; $value = <$file>; }; -+ close $file; -+ $value // ''; -+ } -+ sub getsinglegeneration { -+ my $status; -+ do { -+ sleep 1 if defined $status; -+ $status = getstatus; -+ } until ($status =~ /\A\d+:\d+\n\z/); -+ chomp $status; -+ $status; -+ } -+ my $previous_generation = getsinglegeneration; - kill "HUP", $server_pid; -- sleep 2; -+ my $current_generation; -+ while (($current_generation = getsinglegeneration) eq -+ $previous_generation) { -+ sleep 1; -+ } -+ diag "Server changed from <$previous_generation> ", -+ "to <$current_generation>\n"; - }; - # Initial worker does not read envdir - my $buf = $fetch_env->(); -- unlike($buf, qr/^FOO=foo-value1$/m, 'changed env'); -+ unlike($buf, qr/^FOO=foo-value1$/m, -+ 'environment not read for the first time'); - # rewrite envdir - open my $envfh, ">", "$tempdir/env/FOO" or die $!; - print $envfh "foo-value2"; --- -1.9.3 - diff --git a/Server-Starter-0.17-Synchronize-to-content-in-signame-file.patch b/Server-Starter-0.17-Synchronize-to-content-in-signame-file.patch deleted file mode 100644 index 6236bea..0000000 --- a/Server-Starter-0.17-Synchronize-to-content-in-signame-file.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 3ec63d1650f9199d6d2b2413c7e855bc108646a4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@xxxxxxxxxx> -Date: Mon, 8 Sep 2014 19:03:08 +0200 -Subject: [PATCH] Synchronize to content in signame file -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -There is a race between t/06-autorestart.t and -t/05-killolddelay-echod.pl. If t/05-killolddelay-echod.pl is not fast -enough with writing received signal name (e.g. by adding "sleep 2;" in -the beginning of a signal handler), the t/06-autorestart.t will get -empty signame file and the test for the signal name will fail. - -This patch adds synchornization by locking the signame file. - -Similar to CPAN RT#73711. - -Signed-off-by: Petr PÃsaÅ? <ppisar@xxxxxxxxxx> ---- - t/05-killolddelay-echod.pl | 3 +++ - t/06-autorestart.t | 8 ++++++-- - 2 files changed, 9 insertions(+), 2 deletions(-) - -diff --git a/t/05-killolddelay-echod.pl b/t/05-killolddelay-echod.pl -index 5b48ca5..bd6be30 100755 ---- a/t/05-killolddelay-echod.pl -+++ b/t/05-killolddelay-echod.pl -@@ -5,16 +5,19 @@ use warnings; - - use lib qw(blib/lib lib); - -+use Fcntl qw(:flock); - use IO::Socket::INET; - use Server::Starter qw(server_ports); - - my $sigfn = shift @ARGV; - open my $sigfh, '>', $sigfn - or die "could not open file:$sigfn:$!"; -+flock $sigfh, LOCK_EX or die "could lock file:$sigfh:$!"; - - $SIG{TERM} = $SIG{USR1} = sub { - my $signame = shift; - print $sigfh $signame; -+ flock $sigfh, LOCK_UN or die $!; - sleep 1; - exit 0; - }; -diff --git a/t/06-autorestart.t b/t/06-autorestart.t -index 9401500..58e98d1 100644 ---- a/t/06-autorestart.t -+++ b/t/06-autorestart.t -@@ -1,6 +1,7 @@ - use strict; - use warnings; - -+use Fcntl qw(:flock); - use File::Temp (); - use Test::TCP; - use Test::More tests => 26; -@@ -61,9 +62,12 @@ for my $signal_on_hup ('TERM', 'USR1') { - 'status after auto-restart'); - is( - do { -- open my $fh, '<', "$tempdir/signame" -+ open my $fh, '+<', "$tempdir/signame" - or die $!; -- <$fh>; -+ flock $fh, LOCK_EX or die $!; -+ my $signal = <$fh>; -+ flock $fh, LOCK_UN or die $!; -+ $signal; - }, - $signal_on_hup, - 'signal sent on hup', --- -1.9.3 - diff --git a/perl-Server-Starter.spec b/perl-Server-Starter.spec index 6a5bbf4..7ad89af 100644 --- a/perl-Server-Starter.spec +++ b/perl-Server-Starter.spec @@ -1,41 +1,36 @@ Name: perl-Server-Starter -Version: 0.17 -Release: 9%{?dist} +Version: 0.25 +Release: 1%{?dist} Summary: Superdaemon for hot-deploying server programs License: GPL+ or Artistic Group: Development/Libraries URL: http://search.cpan.org/dist/Server-Starter/ Source0: http://www.cpan.org/authors/id/K/KA/KAZUHO/Server-Starter-%{version}.tar.gz -# Fix t/07-envdir.t race, bug #1100158, CPAN RT#73711 -Patch0: Server-Starter-0.17-Synchronize-to-PID-in-t-07-envdir.t.patch -# Fix loading the environment directory, bug #1100158, CPAN RT#73711 -Patch1: Server-Starter-0.17-Fix-loading-envdir.patch -# Fix t/06-autorestart.t race, bug #1100158, CPAN RT#73711 -Patch2: Server-Starter-0.17-Synchronize-to-PID-in-t-06-autorestart.t.patch -# Fix t/01-starter.t race, bug #1100158, CPAN RT#73711 -Patch3: Server-Starter-0.17-Synchronize-to-PID-in-t-01-starter.t.patch -# Fix t/05-killolddelay.t race, bug #1100158, CPAN RT#73711 -Patch4: Server-Starter-0.17-Synchronize-to-PID-in-t-05-killolddelay.t.patch -# Fix a race between t/06-autorestart.t and t/05-killolddelay-echod.pl, -# bug #1100158, CPAN RT#73711 -Patch5: Server-Starter-0.17-Synchronize-to-content-in-signame-file.patch BuildArch: noarch +BuildRequires: perl(Carp) +BuildRequires: perl(Exporter) BuildRequires: perl(ExtUtils::MakeMaker) >= 6.42 +BuildRequires: perl(Fcntl) BuildRequires: perl(Getopt::Long) -BuildRequires: perl(List::MoreUtils) -BuildRequires: perl(Proc::Wait3) -BuildRequires: perl(Scope::Guard) +BuildRequires: perl(IO::Handle) +BuildRequires: perl(IO::Socket::UNIX) +BuildRequires: perl(POSIX) +BuildRequires: perl(Socket) +BuildRequires: perl(strict) +BuildRequires: perl(warnings) + # For the tests -BuildRequires: perl(Fcntl) +BuildRequires: perl(IO::Socket::IP) +BuildRequires: perl(Net::EmptyPort) BuildRequires: perl(Test::TCP) >= 2.00 +BuildRequires: perl(Test::Requires) +BuildRequires: perl(Test::SharedFork) Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %package start_server Summary: perl-Server-Starter start_server script -# FIXME: This doesn't make much sense. If at all, then this should be -# Requires: perl(Server::Starter) = perl-version(Server::Starter) Requires: perl-Server-Starter = %{version}-%{release} %description @@ -53,12 +48,13 @@ perl-Server-Starter's start_server script. %prep %setup -q -n Server-Starter-%{version} -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 +# Remove bundled modules +for f in inc/Test/TCP.pm inc/IO/Socket/IP.pm inc/Net/EmptyPort.pm \ + inc/Test/SharedFork.pm; do + pat=$(echo "$f" | sed 's,/,\\/,g;s,\.,\\.,g') + rm $f + sed -i -e "/$pat/d" MANIFEST +done %build # --skipdeps causes ExtUtils::AutoInstall not to try auto-installing @@ -67,8 +63,6 @@ perl-Server-Starter's start_server script. make %{?_smp_mflags} %install -rm -rf $RPM_BUILD_ROOT - make pure_install PERL_INSTALL_ROOT=$RPM_BUILD_ROOT find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} \; @@ -89,6 +83,12 @@ make test %{_mandir}/man1/start_server.* %changelog +* Tue Apr 07 2015 Ralf Corsépius <corsepiu@xxxxxxxxxxxxxxxxx> - 0.25-1 +- Upstream update. +- Rework spec. +- Remove bundled modules. +- Drop Fedora/RH-patches. + * Tue Sep 09 2014 Jitka Plesnikova <jplesnik@xxxxxxxxxx> - 0.17-9 - Perl 5.20 mass diff --git a/sources b/sources index 5088c35..628286e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -c08d2e7d93c60b0c6def9db09b3b2426 Server-Starter-0.17.tar.gz +0b94ee58578d4f5a7a7b97b0a98c90c2 Server-Starter-0.25.tar.gz -- cgit v0.10.2 http://pkgs.fedoraproject.org/cgit/perl-Server-Starter.git/commit/?h=master&id=96b6f5340aaf906e870d20b95d546801de03c587
-- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/perl-devel