Restore compatibility with Perl 5.26.0
This commit is contained in:
parent
3b5f9241d4
commit
d3adfbd1bf
@ -0,0 +1,91 @@
|
||||
From 128c34c9823340454dbdc16700bb67b40398a997 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= <ilmari@ilmari.org>
|
||||
Date: Mon, 22 May 2017 18:04:28 +0100
|
||||
Subject: [PATCH 1/2] Use File::Temp::tempdir in UNIX socket test/example
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
POSIX::tmpnam is insecure, and has been removed in Perl 5.26.
|
||||
Instead, use File::Temp::tempdir() to create a secure tmporary
|
||||
directory that the server can create its UNIX sockets in.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
examples/connection_test.pl | 14 ++++++++------
|
||||
t/UNIX_test.t | 6 ++++--
|
||||
2 files changed, 12 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/examples/connection_test.pl b/examples/connection_test.pl
|
||||
index 1ec49a1..7d8ff7a 100644
|
||||
--- a/examples/connection_test.pl
|
||||
+++ b/examples/connection_test.pl
|
||||
@@ -20,11 +20,11 @@ connection_test.pl - Test UDP/TCP/UNIX/UNIX_DGRAM connections
|
||||
|
||||
# or
|
||||
|
||||
- perl connection_test.pl UNIX
|
||||
+ perl connection_test.pl UNIX <UNIX socket directory>
|
||||
|
||||
# or
|
||||
|
||||
- perl connection_test.pl UNIX_DGRAM
|
||||
+ perl connection_test.pl UNIX_DGRAM <UNIX socket directory>
|
||||
|
||||
=cut
|
||||
|
||||
@@ -34,7 +34,8 @@ use strict;
|
||||
use warnings;
|
||||
use base qw(Net::Server);
|
||||
use IO::Socket ();
|
||||
-use POSIX qw(tmpnam);
|
||||
+use File::Temp qw(tempdir);
|
||||
+use File::Spec::Functions qw(catdir);
|
||||
use Socket qw(SOCK_DGRAM SOCK_STREAM);
|
||||
|
||||
sub post_bind_hook {
|
||||
@@ -44,13 +45,14 @@ sub post_bind_hook {
|
||||
}
|
||||
}
|
||||
|
||||
-my $socket_file = tmpnam();
|
||||
-$socket_file =~ s|/[^/]+$|/mysocket.file|;
|
||||
-my $socket_file2 = $socket_file ."2";
|
||||
+my $socket_dir = $ARGV[1] || tempdir();
|
||||
+my $socket_file = catdir($socket_dir, 'mysocket.file');
|
||||
+my $socket_file2 = catdir($socket_dir, 'mysocket.file2');
|
||||
my $udp_port = 20204;
|
||||
my $tcp_port = 20204;
|
||||
|
||||
print "\$Net::Server::VERSION = $Net::Server::VERSION\n";
|
||||
+print "UNIX socket directory = $socket_dir\n";
|
||||
|
||||
if( @ARGV ){
|
||||
if( uc($ARGV[0]) eq 'UDP' ){
|
||||
diff --git a/t/UNIX_test.t b/t/UNIX_test.t
|
||||
index b41f2fa..92649f2 100644
|
||||
--- a/t/UNIX_test.t
|
||||
+++ b/t/UNIX_test.t
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
package Net::Server::Test;
|
||||
use strict;
|
||||
-use POSIX qw(tmpnam);
|
||||
+use File::Temp qw(tempdir);
|
||||
+use File::Spec::Functions qw(catfile);
|
||||
use English qw($UID $GID);
|
||||
use FindBin qw($Bin);
|
||||
use lib $Bin;
|
||||
@@ -22,7 +23,8 @@ sub accept {
|
||||
return shift->SUPER::accept(@_);
|
||||
}
|
||||
|
||||
-my $socket_file = tmpnam; # must do before fork
|
||||
+my $socket_dir = tempdir();
|
||||
+my $socket_file = catfile($socket_dir, 'socket'); # must do before fork
|
||||
my $ok = eval {
|
||||
local $SIG{'ALRM'} = sub { die "Timeout\n" };
|
||||
alarm $env->{'timeout'};
|
||||
--
|
||||
2.9.4
|
||||
|
||||
@ -0,0 +1,82 @@
|
||||
From a3f1f13fec367e03f298abf53bf702c6c5ba76a8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= <ilmari@ilmari.org>
|
||||
Date: Mon, 22 May 2017 18:05:58 +0100
|
||||
Subject: [PATCH] Use File::Temp::tempfile instead of POSIX::tmpnam for lock
|
||||
file
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
POSIX::tmpnam is insecure, and has been removed in Perl 5.26.
|
||||
Instead, use File::Temp::tempfile to create the lock file.
|
||||
|
||||
Petr Písař: Ported to 2.008.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
Makefile.PL | 1 +
|
||||
lib/Net/Server/PreFork.pm | 2 +-
|
||||
lib/Net/Server/PreForkSimple.pm | 8 ++++++--
|
||||
3 files changed, 8 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/Makefile.PL b/Makefile.PL
|
||||
index ea3edc2..58713a9 100644
|
||||
--- a/Makefile.PL
|
||||
+++ b/Makefile.PL
|
||||
@@ -9,6 +9,7 @@ my %args =
|
||||
AUTHOR => 'Paul Seamons <paul@seamons.com> and Rob Brown <bbb@cpan.org>',
|
||||
EXE_FILES => [ 'bin/net-server' ],
|
||||
PREREQ_PM => {
|
||||
+ "File::Temp" => 0,
|
||||
'IO::Socket' => 0,
|
||||
Socket => 0,
|
||||
POSIX => 0,
|
||||
diff --git a/lib/Net/Server/PreFork.pm b/lib/Net/Server/PreFork.pm
|
||||
index d986f1a..40b2dfa 100644
|
||||
--- a/lib/Net/Server/PreFork.pm
|
||||
+++ b/lib/Net/Server/PreFork.pm
|
||||
@@ -512,7 +512,7 @@ You really should also see L<Net::Server::PreForkSimple>.
|
||||
serialize (flock|semaphore
|
||||
|pipe|none) undef
|
||||
# serialize defaults to flock on multi_port or on Solaris
|
||||
- lock_file "filename" File::Temp::tempfile or POSIX::tmpnam
|
||||
+ lock_file "filename" File::Temp->new
|
||||
|
||||
check_for_dead \d+ 30
|
||||
check_for_waiting \d+ 10
|
||||
diff --git a/lib/Net/Server/PreForkSimple.pm b/lib/Net/Server/PreForkSimple.pm
|
||||
index fcccb74..03805c7 100644
|
||||
--- a/lib/Net/Server/PreForkSimple.pm
|
||||
+++ b/lib/Net/Server/PreForkSimple.pm
|
||||
@@ -23,6 +23,7 @@ package Net::Server::PreForkSimple;
|
||||
|
||||
use strict;
|
||||
use base qw(Net::Server);
|
||||
+use File::Temp qw(tempfile);
|
||||
use Net::Server::SIG qw(register_sig check_sigs);
|
||||
use POSIX qw(WNOHANG EINTR);
|
||||
use Fcntl ();
|
||||
@@ -81,7 +82,10 @@ sub post_bind {
|
||||
if (defined $prop->{'lock_file'}) {
|
||||
$prop->{'lock_file_unlink'} = undef;
|
||||
} else {
|
||||
- $prop->{'lock_file'} = eval { require File::Temp } ? File::Temp::tmpnam() : POSIX::tmpnam();
|
||||
+ (my $fh, $prop->{'lock_file'}) = tempfile();
|
||||
+ # We don't need to keep the file handle open in the parent;
|
||||
+ # each child opens it separately to avoid sharing the lock
|
||||
+ close $fh or die "Cannot close lock file $prop->{'lock_file'}: $!";
|
||||
$prop->{'lock_file_unlink'} = 1;
|
||||
}
|
||||
|
||||
@@ -407,7 +411,7 @@ parameters.
|
||||
serialize (flock|semaphore
|
||||
|pipe|none) undef
|
||||
# serialize defaults to flock on multi_port or on Solaris
|
||||
- lock_file "filename" File::Temp::tempfile or POSIX::tmpnam
|
||||
+ lock_file "filename" File::Temp->new
|
||||
|
||||
check_for_dead \d+ 30
|
||||
|
||||
--
|
||||
2.9.4
|
||||
|
||||
@ -1,15 +1,24 @@
|
||||
Name: perl-Net-Server
|
||||
Version: 2.008
|
||||
Release: 7%{?dist}
|
||||
Release: 8%{?dist}
|
||||
Summary: Extensible, general Perl server engine
|
||||
License: GPL+ or Artistic
|
||||
Group: Development/Libraries
|
||||
URL: http://search.cpan.org/dist/Net-Server/
|
||||
Source0: http://www.cpan.org/modules/by-module/Net/Net-Server-%{version}.tar.gz
|
||||
# 1/2 Restore compatibility with Perl 5.26.0,
|
||||
# <https://github.com/rhandom/perl-net-server/issues/9>,
|
||||
# fix from <https://github.com/rhandom/perl-net-server/pull/10>
|
||||
Patch0: Net-Server-2.008-Use-File-Temp-tempdir-in-UNIX-socket-test-example.patch
|
||||
# 2/2 Restore compatibility with Perl 5.26.0,
|
||||
# <https://github.com/rhandom/perl-net-server/issues/9>,
|
||||
# fix from <https://github.com/rhandom/perl-net-server/pull/10>
|
||||
Patch1: Net-Server-2.008-Use-File-Temp-tempfile-instead-of-POSIX-tmpnam-for-l.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -nu)
|
||||
BuildArch: noarch
|
||||
BuildRequires: perl-generators
|
||||
BuildRequires: perl(ExtUtils::MakeMaker)
|
||||
BuildRequires: perl(File::Temp)
|
||||
BuildRequires: perl(Socket)
|
||||
BuildRequires: perl(Test::More)
|
||||
BuildRequires: perl(Time::HiRes)
|
||||
@ -33,6 +42,8 @@ be the back end layer of internet protocol servers.
|
||||
|
||||
%prep
|
||||
%setup -q -n Net-Server-%{version}
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
|
||||
# Do not want to pull in any packaging deps here.
|
||||
chmod -c 644 examples/*
|
||||
@ -61,6 +72,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_mandir}/man1/net-server.1*
|
||||
|
||||
%changelog
|
||||
* Wed May 24 2017 Petr Pisar <ppisar@redhat.com> - 2.008-8
|
||||
- Restore compatibility with Perl 5.26.0
|
||||
|
||||
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.008-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user