<pre style='margin:0'>
Mojca Miklavec (mojca) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/51ee0156b4c12a957f15cae705258bc4ee121406">https://github.com/macports/macports-ports/commit/51ee0156b4c12a957f15cae705258bc4ee121406</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 51ee0156b4c perl5.28: Fix build with inaccessible parent dir
</span>51ee0156b4c is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 51ee0156b4c12a957f15cae705258bc4ee121406
</span>Author: Ryan Schmidt <ryandesign@macports.org>
AuthorDate: Sat Nov 21 02:31:40 2020 -0600

<span style='display:block; white-space:pre;color:#404040;'>    perl5.28: Fix build with inaccessible parent dir
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    This fix is already in perl5.30 and doesn't appear to affect perl5.26.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/61577
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Increase revision because installed files change
</span><span style='display:block; white-space:pre;color:#404040;'>    (${prefix}/lib/perl5/5.28/darwin-thread-multi-2level/Cwd.pm).
</span>---
 lang/perl5/Portfile                                | 10 ++-
 lang/perl5/files/5.28/add-internals-getcwd.patch   | 77 ++++++++++++++++++++++
 ...ont-write-invalid-write_buildcustomize.pl.patch | 22 +++++++
 .../files/5.28/fallback-to-built-in-getcwd.patch   | 44 +++++++++++++
 4 files changed, 152 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/perl5/Portfile b/lang/perl5/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index c085773076d..0cd54c157d4 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/perl5/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/perl5/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -30,7 +30,7 @@ set perl5.versions_info {
</span>     5.22 4 5 54fdbcbf249134dc7d82b693417900286201b5e7  8b3122046d1186598082d0e6da53193b045e85e3505e7d37ee0bdd0bdb539b71  13745983
     5.24 4 4 8d6b67fc6d58334b2fdbfa9d6d7456265dca1f4e  e34ff38c54857f431f37403b757267c9998152bf46b5c750b462f62461279b10  14125130
     5.26 3 4 84ed404407c198ca2b8194c374c7914d941b6f49  9ff35a613213f29ab53975141af6825ae7d4408895538cac0922e47ab92a1477  14539342
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    5.28 3 0 d2ae86e19666b689cad4c866e7d95c6491fd50c1  77dc1ddf541643af14d585867d3d0741cce45d0dbe8f1467024e63165d9e2fc5  12382032
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    5.28 3 1 d2ae86e19666b689cad4c866e7d95c6491fd50c1  77dc1ddf541643af14d585867d3d0741cce45d0dbe8f1467024e63165d9e2fc5  12382032
</span>     5.30 3 0 7aaec213f6537a53abd8fd97bb96d91b681cdf1e  6967595f2e3f3a94544c35152f9a25e0cb8ea24ae45f4bf1882f2e33f4a400f4  12375128
 }
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -131,6 +131,14 @@ foreach {perl5.v perl5.subversion perl5.revision perl5.rmd160 perl5.sha256 perl5
</span>             patchfiles-append \
                             ${perl5.major}/enable-syscall-on-sierra.patch
         }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${perl5.major} == 5.28} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Fix build failure when parent paths are not completely accessible.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # https://github.com/perl/perl5/issues/16903#issuecomment-544100709
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            ${perl5.major}/add-internals-getcwd.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            ${perl5.major}/dont-write-invalid-write_buildcustomize.pl.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            ${perl5.major}/fallback-to-built-in-getcwd.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span> 
         post-patch {
             reinplace -W ${worksrcpath} "s|__PREFIX__|${prefix}|g" \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/perl5/files/5.28/add-internals-getcwd.patch b/lang/perl5/files/5.28/add-internals-getcwd.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e0659508668
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/perl5/files/5.28/add-internals-getcwd.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,77 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 15f67d146cf1f32504e8a11de3faa2abc0f467cd Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Tony Cook <tony@develop-help.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 25 Mar 2019 16:48:40 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] (perl #133951) add Internals::getcwd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- MANIFEST
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ MANIFEST
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5425,6 +5425,7 @@ t/io/errno.t                 See if $! is correctly set
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ t/io/errnosig.t                   Test case for restoration $! when leaving signal handlers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ t/io/fflush.t                     See if auto-flush on fork/exec/system/qx works
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ t/io/fs.t                 See if directory manipulations work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++t/io/getcwd.t                     See if Internals::getcwd is sane
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ t/io/inplace.t                    See if inplace editing works
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ t/io/iofile.t                     See if we can load IO::File on demand
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ t/io/iprefix.t                    See if inplace editing works with prefixes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ t/io/getcwd.t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#!./perl -w
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++BEGIN {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    chdir 't' if -d 't';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    require "./test.pl";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set_up_inc('../lib');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++use Config;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$Config{d_getcwd}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  or plan skip_all => "no getcwd";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++my $cwd = Internals::getcwd();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ok(!defined $cwd || $cwd ne "",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   "Internals::getcwd() returned a reasonable result");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if (defined $cwd) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ok(-d $cwd, "check a success result is a directory");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++done_testing();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- universal.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ universal.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -986,6 +986,25 @@ XS(XS_re_regexp_pattern)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NOT_REACHED; /* NOTREACHED */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAS_GETCWD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++XS(XS_Internals_getcwd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    dXSARGS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SV *sv = sv_newmortal();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (items != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        croak_xs_usage(cv, "");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    (void)getcwd_sv(sv);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SvTAINTED_on(sv);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    PUSHs(sv);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    XSRETURN(1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "vutil.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "vxs.inc"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1020,6 +1039,9 @@ static const struct xsub_details these_details[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {"re::regnames", XS_re_regnames, ";$"},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {"re::regnames_count", XS_re_regnames_count, ""},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {"re::regexp_pattern", XS_re_regexp_pattern, "$"},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAS_GETCWD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {"Internals::getcwd", XS_Internals_getcwd, ""},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ STATIC OP*
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/perl5/files/5.28/dont-write-invalid-write_buildcustomize.pl.patch b/lang/perl5/files/5.28/dont-write-invalid-write_buildcustomize.pl.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..b40ec15bdc4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/perl5/files/5.28/dont-write-invalid-write_buildcustomize.pl.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 05fed879afada2f6ac1f1b5b6962e06190f5b9f6 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Tony Cook <tony@develop-help.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 25 Mar 2019 16:11:16 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] (perl #133951) don't write an invalid lib/buildcustomize.pl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Cwd under miniperl (at this point) can't determine the current
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+directory if some ancestor directory isn't readable.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+So Cwd::getcwd() would return undef, and write_buildcustomize.pl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+would write out a list of paths relative to / rather than to the cwd.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- write_buildcustomize.pl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ write_buildcustomize.pl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -61,6 +61,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ my $cwd  = Cwd::getcwd();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++defined $cwd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  or die "$0: Can't determine current working directory\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # lib must be last, as the toolchain modules write themselves into it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # as they build, and it's important that @INC order ensures that the partially
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # written files are always masked by the complete versions.
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/perl5/files/5.28/fallback-to-built-in-getcwd.patch b/lang/perl5/files/5.28/fallback-to-built-in-getcwd.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..8d0632cf395
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/perl5/files/5.28/fallback-to-built-in-getcwd.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,44 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 0a4d1779402e8824dd675302ad6a1914ea6ccf23 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Tony Cook <tony@develop-help.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 26 Mar 2019 14:23:53 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] (perl #133951) fallback to the built-in getcwd if we can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- dist/PathTools/Cwd.pm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ dist/PathTools/Cwd.pm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -659,6 +659,10 @@ if (exists $METHOD_MAP{$^O}) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# built-in from 5.30
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++*getcwd = \&Internals::getcwd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if !defined &getcwd && defined &Internals::getcwd;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # In case the XS version doesn't load.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *abs_path = \&_perl_abs_path unless defined &abs_path;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *getcwd = \&_perl_getcwd unless defined &getcwd;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- dist/PathTools/t/cwd.t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ dist/PathTools/t/cwd.t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10,6 +10,7 @@ chdir 't';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ use Config;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ use File::Spec;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ use File::Path;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++use Errno qw(EACCES);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ use lib File::Spec->catdir('t', 'lib');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ use Test::More;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -208,7 +209,15 @@ SKIP: {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     like($abs_path,      qr|$want$|i, "Cwd::abs_path produced $abs_path");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     like($fast_abs_path, qr|$want$|i, "Cwd::fast_abs_path produced $fast_abs_path");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    like($pas,           qr|$want$|i, "Cwd::_perl_abs_path produced $pas") if $EXTRA_ABSPATH_TESTS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if ($EXTRA_ABSPATH_TESTS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # _perl_abs_path() can fail if some ancestor directory isn't readable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (defined $pas) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            like($pas,           qr|$want$|i, "Cwd::_perl_abs_path produced $pas");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            is($!+0, EACCES, "check we got the expected error on failure");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     rmtree($test_dirs[0], 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     1 while unlink $file;
</span></pre><pre style='margin:0'>

</pre>