summaryrefslogtreecommitdiff
path: root/dev-lang/perl/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2021-10-30 19:43:03 +0100
committerV3n3RiX <venerix@koprulu.sector>2021-10-30 19:43:03 +0100
commit162945d2a91899b637bbb9e163b406350de12906 (patch)
tree49cc2cc66f724a7c6f033f93aaba4ae3be1f2259 /dev-lang/perl/files
parentf660c6de84558324d784218831d8f0782ee41e2e (diff)
gentoo resync : 30.10.2021
Diffstat (limited to 'dev-lang/perl/files')
-rw-r--r--dev-lang/perl/files/perl-5.34.0-fallback-getcwd-pwd.patch263
1 files changed, 263 insertions, 0 deletions
diff --git a/dev-lang/perl/files/perl-5.34.0-fallback-getcwd-pwd.patch b/dev-lang/perl/files/perl-5.34.0-fallback-getcwd-pwd.patch
new file mode 100644
index 000000000000..849a09a39a05
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.34.0-fallback-getcwd-pwd.patch
@@ -0,0 +1,263 @@
+https://github.com/Perl/perl5/pull/18791
+https://github.com/Perl/perl5/issues/18703
+https://bugs.gentoo.org/818172
+
+From: Tony Cook <tony@develop-help.com>
+Date: Tue, 4 May 2021 14:55:50 +1000
+Subject: [PATCH 1/4] remove code that assuming finding pwd on the path is
+ reasonable
+
+We deliberately clear PATH when invoking pwd, so this search is
+useless.
+---
+ dist/PathTools/Cwd.pm | 14 --------------
+ 1 file changed, 14 deletions(-)
+
+diff --git a/dist/PathTools/Cwd.pm b/dist/PathTools/Cwd.pm
+index 6a1d2f17ee57..49c12885b32e 100644
+--- a/dist/PathTools/Cwd.pm
++++ b/dist/PathTools/Cwd.pm
+@@ -213,20 +213,6 @@ sub _backtick_pwd {
+ # we take care not to override an existing definition for cwd().
+
+ unless ($METHOD_MAP{$^O}{cwd} or defined &cwd) {
+- # The pwd command is not available in some chroot(2)'ed environments
+- my $sep = $Config::Config{path_sep} || ':';
+- my $os = $^O; # Protect $^O from tainting
+-
+-
+- # Try again to find a pwd, this time searching the whole PATH.
+- if (defined $ENV{PATH} and $os ne 'MSWin32') { # no pwd on Windows
+- my @candidates = split($sep, $ENV{PATH});
+- while (!$found_pwd_cmd and @candidates) {
+- my $candidate = shift @candidates;
+- $found_pwd_cmd = 1 if -x "$candidate/pwd";
+- }
+- }
+-
+ if( $found_pwd_cmd )
+ {
+ *cwd = \&_backtick_pwd;
+
+From e5378ea37c6c4910107975d8099c1d552af0c7b3 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Wed, 5 May 2021 10:12:31 +1000
+Subject: [PATCH 2/4] don't fallback to simple pwd
+
+When _backtick_pwd invokes $pwd_cmd it first clears the PATH, and since
+the command has no shell metacharacters, it perl won't invoke the
+shell, so it will always fail.
+
+An alternative here might be to use "/bin/sh -c pwd" but there's no
+guarantee that pwd is available as a shell builtin.
+---
+ dist/PathTools/Cwd.pm | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/dist/PathTools/Cwd.pm b/dist/PathTools/Cwd.pm
+index 49c12885b32e..fbe683e20b8a 100644
+--- a/dist/PathTools/Cwd.pm
++++ b/dist/PathTools/Cwd.pm
+@@ -181,12 +181,6 @@ if ($^O =~ /android/) {
+ }
+
+ my $found_pwd_cmd = defined($pwd_cmd);
+-unless ($pwd_cmd) {
+- # Isn't this wrong? _backtick_pwd() will fail if someone has
+- # pwd in their path but it is not /bin/pwd or /usr/bin/pwd?
+- # See [perl #16774]. --jhi
+- $pwd_cmd = 'pwd';
+-}
+
+ # Lazy-load Carp
+ sub _carp { require Carp; Carp::carp(@_) }
+
+From e14ffd3c21efe708a5fb5e25f29d61ccb6ee0a0a Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Tue, 4 May 2021 15:04:25 +1000
+Subject: [PATCH 3/4] avoid a prototype warning assigning \&getcwd to *cwd
+
+This would produce a warning if we fallback to using getcwd() where
+getcwd() has a prototype.
+---
+ dist/PathTools/Cwd.pm | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/dist/PathTools/Cwd.pm b/dist/PathTools/Cwd.pm
+index fbe683e20b8a..b6dc0b798e8c 100644
+--- a/dist/PathTools/Cwd.pm
++++ b/dist/PathTools/Cwd.pm
+@@ -212,7 +212,8 @@ unless ($METHOD_MAP{$^O}{cwd} or defined &cwd) {
+ *cwd = \&_backtick_pwd;
+ }
+ else {
+- *cwd = \&getcwd;
++ # getcwd() might have an empty prototype
++ *cwd = sub { getcwd(); };
+ }
+ }
+
+
+From e725e6ced4d2bbb6a5866992509c2ac3e995c228 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Wed, 12 May 2021 12:24:59 +1000
+Subject: [PATCH 4/4] bump PathTools to 3.81
+
+---
+ dist/PathTools/Cwd.pm | 2 +-
+ dist/PathTools/lib/File/Spec.pm | 2 +-
+ dist/PathTools/lib/File/Spec/AmigaOS.pm | 2 +-
+ dist/PathTools/lib/File/Spec/Cygwin.pm | 2 +-
+ dist/PathTools/lib/File/Spec/Epoc.pm | 2 +-
+ dist/PathTools/lib/File/Spec/Functions.pm | 2 +-
+ dist/PathTools/lib/File/Spec/Mac.pm | 2 +-
+ dist/PathTools/lib/File/Spec/OS2.pm | 2 +-
+ dist/PathTools/lib/File/Spec/Unix.pm | 2 +-
+ dist/PathTools/lib/File/Spec/VMS.pm | 2 +-
+ dist/PathTools/lib/File/Spec/Win32.pm | 2 +-
+ 11 files changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/dist/PathTools/Cwd.pm b/dist/PathTools/Cwd.pm
+index b6dc0b798e8c..4a9c786c1c3c 100644
+--- a/dist/PathTools/Cwd.pm
++++ b/dist/PathTools/Cwd.pm
+@@ -3,7 +3,7 @@ use strict;
+ use Exporter;
+
+
+-our $VERSION = '3.80';
++our $VERSION = '3.81';
+ my $xs_version = $VERSION;
+ $VERSION =~ tr/_//d;
+
+diff --git a/dist/PathTools/lib/File/Spec.pm b/dist/PathTools/lib/File/Spec.pm
+index 30d883b61b3e..fe738acf58bd 100644
+--- a/dist/PathTools/lib/File/Spec.pm
++++ b/dist/PathTools/lib/File/Spec.pm
+@@ -2,7 +2,7 @@ package File::Spec;
+
+ use strict;
+
+-our $VERSION = '3.80';
++our $VERSION = '3.81';
+ $VERSION =~ tr/_//d;
+
+ my %module = (
+diff --git a/dist/PathTools/lib/File/Spec/AmigaOS.pm b/dist/PathTools/lib/File/Spec/AmigaOS.pm
+index fd9da81cdf5a..1398379ca57c 100644
+--- a/dist/PathTools/lib/File/Spec/AmigaOS.pm
++++ b/dist/PathTools/lib/File/Spec/AmigaOS.pm
+@@ -3,7 +3,7 @@ package File::Spec::AmigaOS;
+ use strict;
+ require File::Spec::Unix;
+
+-our $VERSION = '3.80';
++our $VERSION = '3.81';
+ $VERSION =~ tr/_//d;
+
+ our @ISA = qw(File::Spec::Unix);
+diff --git a/dist/PathTools/lib/File/Spec/Cygwin.pm b/dist/PathTools/lib/File/Spec/Cygwin.pm
+index 953c23361a10..55d551ce0663 100644
+--- a/dist/PathTools/lib/File/Spec/Cygwin.pm
++++ b/dist/PathTools/lib/File/Spec/Cygwin.pm
+@@ -3,7 +3,7 @@ package File::Spec::Cygwin;
+ use strict;
+ require File::Spec::Unix;
+
+-our $VERSION = '3.80';
++our $VERSION = '3.81';
+ $VERSION =~ tr/_//d;
+
+ our @ISA = qw(File::Spec::Unix);
+diff --git a/dist/PathTools/lib/File/Spec/Epoc.pm b/dist/PathTools/lib/File/Spec/Epoc.pm
+index fcb9e894e33c..4cde744231aa 100644
+--- a/dist/PathTools/lib/File/Spec/Epoc.pm
++++ b/dist/PathTools/lib/File/Spec/Epoc.pm
+@@ -2,7 +2,7 @@ package File::Spec::Epoc;
+
+ use strict;
+
+-our $VERSION = '3.80';
++our $VERSION = '3.81';
+ $VERSION =~ tr/_//d;
+
+ require File::Spec::Unix;
+diff --git a/dist/PathTools/lib/File/Spec/Functions.pm b/dist/PathTools/lib/File/Spec/Functions.pm
+index e14ad2f74538..4b3d7bbde130 100644
+--- a/dist/PathTools/lib/File/Spec/Functions.pm
++++ b/dist/PathTools/lib/File/Spec/Functions.pm
+@@ -3,7 +3,7 @@ package File::Spec::Functions;
+ use File::Spec;
+ use strict;
+
+-our $VERSION = '3.80';
++our $VERSION = '3.81';
+ $VERSION =~ tr/_//d;
+
+ require Exporter;
+diff --git a/dist/PathTools/lib/File/Spec/Mac.pm b/dist/PathTools/lib/File/Spec/Mac.pm
+index 8026edcb1261..51d00a01f6f7 100644
+--- a/dist/PathTools/lib/File/Spec/Mac.pm
++++ b/dist/PathTools/lib/File/Spec/Mac.pm
+@@ -4,7 +4,7 @@ use strict;
+ use Cwd ();
+ require File::Spec::Unix;
+
+-our $VERSION = '3.80';
++our $VERSION = '3.81';
+ $VERSION =~ tr/_//d;
+
+ our @ISA = qw(File::Spec::Unix);
+diff --git a/dist/PathTools/lib/File/Spec/OS2.pm b/dist/PathTools/lib/File/Spec/OS2.pm
+index 3c35ba99b48a..57d67ba01e93 100644
+--- a/dist/PathTools/lib/File/Spec/OS2.pm
++++ b/dist/PathTools/lib/File/Spec/OS2.pm
+@@ -4,7 +4,7 @@ use strict;
+ use Cwd ();
+ require File::Spec::Unix;
+
+-our $VERSION = '3.80';
++our $VERSION = '3.81';
+ $VERSION =~ tr/_//d;
+
+ our @ISA = qw(File::Spec::Unix);
+diff --git a/dist/PathTools/lib/File/Spec/Unix.pm b/dist/PathTools/lib/File/Spec/Unix.pm
+index c06d18f46819..df98f580c3ea 100644
+--- a/dist/PathTools/lib/File/Spec/Unix.pm
++++ b/dist/PathTools/lib/File/Spec/Unix.pm
+@@ -3,7 +3,7 @@ package File::Spec::Unix;
+ use strict;
+ use Cwd ();
+
+-our $VERSION = '3.80';
++our $VERSION = '3.81';
+ $VERSION =~ tr/_//d;
+
+ =head1 NAME
+diff --git a/dist/PathTools/lib/File/Spec/VMS.pm b/dist/PathTools/lib/File/Spec/VMS.pm
+index 9b78c8b4bc6e..bbff3ad7d807 100644
+--- a/dist/PathTools/lib/File/Spec/VMS.pm
++++ b/dist/PathTools/lib/File/Spec/VMS.pm
+@@ -4,7 +4,7 @@ use strict;
+ use Cwd ();
+ require File::Spec::Unix;
+
+-our $VERSION = '3.80';
++our $VERSION = '3.81';
+ $VERSION =~ tr/_//d;
+
+ our @ISA = qw(File::Spec::Unix);
+diff --git a/dist/PathTools/lib/File/Spec/Win32.pm b/dist/PathTools/lib/File/Spec/Win32.pm
+index 153744202338..b38419cdf1a6 100644
+--- a/dist/PathTools/lib/File/Spec/Win32.pm
++++ b/dist/PathTools/lib/File/Spec/Win32.pm
+@@ -5,7 +5,7 @@ use strict;
+ use Cwd ();
+ require File::Spec::Unix;
+
+-our $VERSION = '3.80';
++our $VERSION = '3.81';
+ $VERSION =~ tr/_//d;
+
+ our @ISA = qw(File::Spec::Unix);
+