commit 8da0ec5b722cf4ff2af8ab1970834f63febee23b Author: MSVSphere Packaging Team Date: Tue Nov 26 18:01:04 2024 +0300 import perl-PathTools-3.91-510.el10 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0270881 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/PathTools-3.75.tar.gz diff --git a/.perl-PathTools.metadata b/.perl-PathTools.metadata new file mode 100644 index 0000000..40b3e41 --- /dev/null +++ b/.perl-PathTools.metadata @@ -0,0 +1 @@ +ff2f9e55e33a1cfe1247e29f4e136b9a78f4be3a SOURCES/PathTools-3.75.tar.gz diff --git a/SOURCES/PathTools-3.74-Disable-VMS-tests.patch b/SOURCES/PathTools-3.74-Disable-VMS-tests.patch new file mode 100644 index 0000000..b4a93e0 --- /dev/null +++ b/SOURCES/PathTools-3.74-Disable-VMS-tests.patch @@ -0,0 +1,230 @@ +From 27cd91c8d8c0aa03a954097e24d78df08905dc8e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Thu, 11 May 2017 11:36:46 +0200 +Subject: [PATCH] Disable VMS test (bug #973713) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Petr Písař +--- + t/Spec.t | 196 +-------------------------------------------------------------- + 1 file changed, 1 insertion(+), 195 deletions(-) + +diff --git a/t/Spec.t b/t/Spec.t +index 84ed6b1..7ef976f 100644 +--- a/t/Spec.t ++++ b/t/Spec.t +@@ -38,7 +38,7 @@ if ( $@ ) { + $INC{"VMS/Filespec.pm"} = 1 ; + } + +-foreach (qw(Unix Win32 VMS OS2 Mac Epoc Cygwin)) { ++foreach (qw(Unix Win32 OS2 Mac Epoc Cygwin)) { + require_ok("File::Spec::$_"); + } + +@@ -326,200 +326,6 @@ my @tests = ( + [ "FakeWin32->rel2abs('../','//prague_main/work')", '\\\\prague_main\\work' ], + [ "FakeWin32->rel2abs('D:foo.txt')", 'D:\\alpha\\beta\\foo.txt' ], + +-[ "VMS->case_tolerant()", '1' ], +- +-[ "VMS->catfile('a','b','c')", $vms_unix_rpt ? 'a/b/c' : '[.a.b]c' ], +-[ "VMS->catfile('a','b','[]c')", $vms_unix_rpt ? 'a/b/c' : '[.a.b]c' ], +-[ "VMS->catfile('[.a]','b','c')", $vms_unix_rpt ? 'a/b/c' : '[.a.b]c' ], +-[ "VMS->catfile('a/b/','c')", $vms_unix_rpt ? 'a/b/c' : '[.a.b]c' ], +-[ "VMS->catfile('c')", 'c' ], +-[ "VMS->catfile('[]c')", 'c' ], +- +-[ "VMS->catfile('0','b','c')", $vms_unix_rpt ? '0/b/c' : '[.0.b]c' ], +-[ "VMS->catfile('a','0','c')", $vms_unix_rpt ? 'a/0/c' : '[.a.0]c' ], +-[ "VMS->catfile('a','b','0')", $vms_unix_rpt ? 'a/b/0' : '[.a.b]0' ], +-[ "VMS->catfile('0','0','c')", $vms_unix_rpt ? '0/0/c' : '[.0.0]c' ], +-[ "VMS->catfile('a','0','0')", $vms_unix_rpt ? 'a/0/0' : '[.a.0]0' ], +-[ "VMS->catfile('0','b','0')", $vms_unix_rpt ? '0/b/0' : '[.0.b]0' ], +-[ "VMS->catfile('0','0','0')", $vms_unix_rpt ? '0/0/0' : '[.0.0]0' ], +- +- +-[ "VMS->splitpath('file')", ',,file' ], +-[ "VMS->splitpath('[d1.d2.d3]')", ',[d1.d2.d3],' ], +-[ "VMS->splitpath('[.d1.d2.d3]')", ',[.d1.d2.d3],' ], +-[ "VMS->splitpath('[d1.d2.d3]file')", ',[d1.d2.d3],file' ], +-[ "VMS->splitpath('d1/d2/d3/file')", +- $vms_unix_rpt ? ',d1/d2/d3/,file' : ',[.d1.d2.d3],file' ], +-[ "VMS->splitpath('/d1/d2/d3/file')", +- $vms_unix_rpt ? ',/d1/d2/d3/,file' : 'd1:,[d2.d3],file' ], +-[ "VMS->splitpath('[.d1.d2.d3]file')", ',[.d1.d2.d3],file' ], +-[ "VMS->splitpath('node::volume:[d1.d2.d3]')", 'node::volume:,[d1.d2.d3],' ], +-[ "VMS->splitpath('node::volume:[d1.d2.d3]file')", 'node::volume:,[d1.d2.d3],file' ], +-[ "VMS->splitpath('node\"access_spec\"::volume:[d1.d2.d3]')", 'node"access_spec"::volume:,[d1.d2.d3],' ], +-[ "VMS->splitpath('node\"access_spec\"::volume:[d1.d2.d3]file')", 'node"access_spec"::volume:,[d1.d2.d3],file' ], +- +-[ "VMS->splitpath('[]')", ',[],' ], +-[ "VMS->splitpath('[-]')", ',[-],' ], +-[ "VMS->splitpath('[]file')", ',[],file' ], +-[ "VMS->splitpath('[-]file')", ',[-],file' ], +-[ "VMS->splitpath('')", ',,' ], +-[ "VMS->splitpath('0')", ',,0' ], +-[ "VMS->splitpath('[0]')", ',[0],' ], +-[ "VMS->splitpath('[.0]')", ',[.0],' ], +-[ "VMS->splitpath('[0.0.0]')", ',[0.0.0],' ], +-[ "VMS->splitpath('[.0.0.0]')", ',[.0.0.0],' ], +-[ "VMS->splitpath('[0]0')", ',[0],0' ], +-[ "VMS->splitpath('[0.0.0]0')", ',[0.0.0],0' ], +-[ "VMS->splitpath('[.0.0.0]0')", ',[.0.0.0],0' ], +-[ "VMS->splitpath('0/0')", $vms_unix_rpt ? ',0/,0' : ',[.0],0' ], +-[ "VMS->splitpath('0/0/0')", $vms_unix_rpt ? ',0/0/,0' : ',[.0.0],0' ], +-[ "VMS->splitpath('/0/0')", $vms_unix_rpt ? ',/0/,0' : '0:,[000000],0' ], +-[ "VMS->splitpath('/0/0/0')", $vms_unix_rpt ? ',/0/0/,0' : '0:,[0],0' ], +-[ "VMS->splitpath('d1',1)", ',d1,' ], +-# $no_file tests +-[ "VMS->splitpath('[d1.d2.d3]',1)", ',[d1.d2.d3],' ], +-[ "VMS->splitpath('[.d1.d2.d3]',1)", ',[.d1.d2.d3],' ], +-[ "VMS->splitpath('d1/d2/d3',1)", $vms_unix_rpt ? ',d1/d2/d3,' : ',[.d1.d2.d3],' ], +-[ "VMS->splitpath('/d1/d2/d3',1)", $vms_unix_rpt ? ',/d1/d2/d3,' : 'd1:,[d2.d3],' ], +-[ "VMS->splitpath('node::volume:[d1.d2.d3]',1)", 'node::volume:,[d1.d2.d3],' ], +-[ "VMS->splitpath('node\"access_spec\"::volume:[d1.d2.d3]',1)", 'node"access_spec"::volume:,[d1.d2.d3],' ], +-[ "VMS->splitpath('[]',1)", ',[],' ], +-[ "VMS->splitpath('[-]',1)", ',[-],' ], +-[ "VMS->splitpath('',1)", ',,' ], +-[ "VMS->splitpath('0',1)", ',0,' ], +-[ "VMS->splitpath('[0]',1)", ',[0],' ], +-[ "VMS->splitpath('[.0]',1)", ',[.0],' ], +-[ "VMS->splitpath('[0.0.0]',1)", ',[0.0.0],' ], +-[ "VMS->splitpath('[.0.0.0]',1)", ',[.0.0.0],' ], +-[ "VMS->splitpath('0/0',1)", $vms_unix_rpt ? ',0/0,' : ',[.0.0],' ], +-[ "VMS->splitpath('0/0/0',1)", $vms_unix_rpt ? ',0/0/0,' : ',[.0.0.0],' ], +-[ "VMS->splitpath('/0/0',1)", $vms_unix_rpt ? ',/0/0,' : '0:,[000000.0],' ], +-[ "VMS->splitpath('/0/0/0',1)", $vms_unix_rpt ? ',/0/0/0,' : '0:,[0.0],' ], +- +-[ "VMS->catpath('','','file')", 'file' ], +-[ "VMS->catpath('','[d1.d2.d3]','')", '[d1.d2.d3]' ], +-[ "VMS->catpath('','[.d1.d2.d3]','')", '[.d1.d2.d3]' ], +-[ "VMS->catpath('','[d1.d2.d3]','file')", '[d1.d2.d3]file' ], +-[ "VMS->catpath('','[.d1.d2.d3]','file')", '[.d1.d2.d3]file' ], +-[ "VMS->catpath('','d1/d2/d3','file')", +- $vms_unix_rpt ? 'd1/d2/d3/file' : '[.d1.d2.d3]file' ], +-[ "VMS->catpath('v','d1/d2/d3','file')", 'v:[.d1.d2.d3]file' ], +-[ "VMS->catpath('v','','file')", 'v:file' ], +-[ "VMS->catpath('v','w:[d1.d2.d3]','file')", 'v:[d1.d2.d3]file' ], +-[ "VMS->catpath('node::volume:','[d1.d2.d3]','')", 'node::volume:[d1.d2.d3]' ], +-[ "VMS->catpath('node::volume:','[d1.d2.d3]','file')", 'node::volume:[d1.d2.d3]file' ], +-[ "VMS->catpath('node\"access_spec\"::volume:','[d1.d2.d3]','')", 'node"access_spec"::volume:[d1.d2.d3]' ], +-[ "VMS->catpath('node\"access_spec\"::volume:','[d1.d2.d3]','file')", 'node"access_spec"::volume:[d1.d2.d3]file' ], +- +-[ "VMS->canonpath('')", '' ], +-[ "VMS->canonpath('volume:[d1]file')", $vms_unix_rpt ? '/volume/d1/file' : 'volume:[d1]file' ], +-[ "VMS->canonpath('volume:[d1.-.d2.][d3.d4.-]')", $vms_unix_rpt ? '/volume/d2/d3/' : 'volume:[d2.d3]' ], +-[ "VMS->canonpath('volume:[000000.d1]d2.dir;1')", $vms_unix_rpt ? '/volume/d1/d2.dir.1' : 'volume:[d1]d2.dir;1' ], +-[ "VMS->canonpath('volume:[d1.d2.d3]file.txt')", $vms_unix_rpt ? '/volume/d1/d2/d3/file.txt' : 'volume:[d1.d2.d3]file.txt' ], +-[ "VMS->canonpath('[d1.d2.d3]file.txt')", $vms_unix_rpt ? '/sys$disk/d1/d2/d3/file.txt' : '[d1.d2.d3]file.txt' ], +-[ "VMS->canonpath('volume:[-.d1.d2.d3]file.txt')", $vms_unix_rpt ? '/volume/../d1/d2/d3/file.txt' : 'volume:[-.d1.d2.d3]file.txt' ], +-[ "VMS->canonpath('[-.d1.d2.d3]file.txt')", $vms_unix_rpt ? '../d1/d2/d3/file.txt' : '[-.d1.d2.d3]file.txt' ], +-[ "VMS->canonpath('volume:[--.d1.d2.d3]file.txt')", $vms_unix_rpt ? '/volume/../../d1/d2/d3/file.txt' : 'volume:[--.d1.d2.d3]file.txt' ], +-[ "VMS->canonpath('[--.d1.d2.d3]file.txt')", $vms_unix_rpt ? '../../d1/d2/d3/file.txt' : '[--.d1.d2.d3]file.txt' ], +-[ "VMS->canonpath('volume:[d1.-.d2.d3]file.txt')", $vms_unix_rpt ? '/volume/d2/d3/file.txt' : 'volume:[d2.d3]file.txt' ], +-[ "VMS->canonpath('[d1.-.d2.d3]file.txt')", $vms_unix_rpt ? '/sys$disk/d2/d3/file.txt' : '[d2.d3]file.txt' ], +-[ "VMS->canonpath('volume:[d1.--.d2.d3]file.txt')", $vms_unix_rpt ? '/volume/../d2/d3/file.txt' : 'volume:[-.d2.d3]file.txt' ], +-[ "VMS->canonpath('[d1.--.d2.d3]file.txt')", $vms_unix_rpt ? '../d2/d3/file.txt' : '[-.d2.d3]file.txt' ], +-[ "VMS->canonpath('volume:[d1.d2.-.d3]file.txt')", $vms_unix_rpt ? '/volume/d1/d3/file.txt' : 'volume:[d1.d3]file.txt' ], +-[ "VMS->canonpath('[d1.d2.-.d3]file.txt')", $vms_unix_rpt ? '/sys$disk/d1/d3/file.txt' : '[d1.d3]file.txt' ], +-[ "VMS->canonpath('volume:[d1.d2.--.d3]file.txt')", $vms_unix_rpt ? '/volume/d3/file.txt' : 'volume:[d3]file.txt' ], +-[ "VMS->canonpath('[d1.d2.--.d3]file.txt')", $vms_unix_rpt ? '/sys$disk/d3/file.txt' : '[d3]file.txt' ], +-[ "VMS->canonpath('volume:[d1.d2.d3.-]file.txt')", $vms_unix_rpt ? '/volume/d1/d2/file.txt' : 'volume:[d1.d2]file.txt' ], +-[ "VMS->canonpath('[d1.d2.d3.-]file.txt')", $vms_unix_rpt ? '/sys$disk/d1/d2/file.txt' : '[d1.d2]file.txt' ], +-[ "VMS->canonpath('volume:[d1.d2.d3.--]file.txt')", $vms_unix_rpt ? '/volume/d1/file.txt' : 'volume:[d1]file.txt' ], +-[ "VMS->canonpath('[d1.d2.d3.--]file.txt')", $vms_unix_rpt ? '/sys$disk/d1/file.txt' : '[d1]file.txt' ], +-[ "VMS->canonpath('volume:[d1.000000.][000000.][d3.--]file.txt')", $vms_unix_rpt ? '/volume/d1/file.txt' +- : 'volume:[d1]file.txt' ], +-[ "VMS->canonpath('[d1.000000.][000000.][d3.--]file.txt')", $vms_unix_rpt ? '/sys$disk/d1/file.txt' +- : '[d1]file.txt' ], +-[ "VMS->canonpath('volume:[d1.000000.][000000.][d2.000000]file.txt')", $vms_unix_rpt ? '/volume/d1/000000/d2/000000/file.txt' +- : 'volume:[d1.000000.d2.000000]file.txt' ], +-[ "VMS->canonpath('[d1.000000.][000000.][d2.000000]file.txt')", $vms_unix_rpt ? '/sys$disk/d1/000000/d2/000000/file.txt' +- : '[d1.000000.d2.000000]file.txt' ], +-[ "VMS->canonpath('volume:[d1.000000.][000000.][d3.--.000000]file.txt')", $vms_unix_rpt ? '/volume/d1/000000/file.txt' +- : 'volume:[d1.000000]file.txt' ], +-[ "VMS->canonpath('[d1.000000.][000000.][d3.--.000000]file.txt')", $vms_unix_rpt ? '/sys$disk/d1/000000/file.txt' +- : '[d1.000000]file.txt' ], +-[ "VMS->canonpath('volume:[d1.000000.][000000.][-.-.000000]file.txt')", $vms_unix_rpt ? '/volume/file.txt' +- : 'volume:[000000]file.txt' ], +-[ "VMS->canonpath('[d1.000000.][000000.][--.-.000000]file.txt')", $vms_unix_rpt ? '../file.txt' : '[-.000000]file.txt' ], +-[ "VMS->canonpath('[d1.d2.--]file')", $vms_unix_rpt ? '../file.txt' : '[000000]file' ], +-# During the Perl 5.8 era, FS::Unix stopped eliminating redundant path elements, so mimic that here. +-[ "VMS->canonpath('a/../../b/c.dat')", $vms_unix_rpt ? 'a/../../b/c.dat' : '[-.b]c.dat' ], +-[ "VMS->canonpath('^')", $vms_unix_rpt ? '/' : '^' ], +-# Check that directory specs with caret-dot component is treated correctly +-[ "VMS->canonpath('foo:[bar.coo.kie.--]file.txt')", $vms_unix_rpt ? '/foo/bar/file.txt' : "foo:[bar]file.txt" ], +-[ "VMS->canonpath('foo:[bar^.coo.kie.--]file.txt')", $vms_unix_rpt ? '/foo/file.txt' : "foo:[000000]file.txt" ], +-[ "VMS->canonpath('foo:[bar.coo^.kie.--]file.txt')", $vms_unix_rpt ? '/foo/file.txt' : "foo:[000000]file.txt" ], +-[ "VMS->canonpath('foo:[bar.coo.kie.-]file.txt')", $vms_unix_rpt ? '/foo/bar/coo/file.txt' : "foo:[bar.coo]file.txt" ], +-[ "VMS->canonpath('foo:[bar^.coo.kie.-]file.txt')", $vms_unix_rpt ? '/foo/bar.coo/file.txt' : "foo:[bar^.coo]file.txt" ], +-[ "VMS->canonpath('foo:[bar.coo^.kie.-]file.txt')", $vms_unix_rpt ? '/foo/bar/file.txt' : "foo:[bar]file.txt" ], +- +-[ "VMS->splitdir('')", '' ], +-[ "VMS->splitdir('[]')", '' ], +-[ "VMS->splitdir('d1.d2.d3')", 'd1,d2,d3' ], +-[ "VMS->splitdir('[d1.d2.d3]')", 'd1,d2,d3' ], +-[ "VMS->splitdir('.d1.d2.d3')", 'd1,d2,d3' ], +-[ "VMS->splitdir('[.d1.d2.d3]')", 'd1,d2,d3' ], +-[ "VMS->splitdir('.-.d2.d3')", '-,d2,d3' ], +-[ "VMS->splitdir('[.-.d2.d3]')", '-,d2,d3' ], +-[ "VMS->splitdir('[d1.d2]')", 'd1,d2' ], +-[ "VMS->splitdir('[d1-.--d2]')", 'd1-,--d2' ], +-[ "VMS->splitdir('[d1---.-.d2]')", 'd1---,-,d2' ], +-[ "VMS->splitdir('[d1.---.d2]')", 'd1,-,-,-,d2' ], +-[ "VMS->splitdir('[d1---d2]')", 'd1---d2' ], +-[ "VMS->splitdir('[d1.][000000.d2]')", 'd1,d2' ], +-[ "VMS->splitdir('[.d1.d2^.d3]')", 'd1,d2^.d3' ], +- +-[ "VMS->catdir('')", '' ], +-[ "VMS->catdir('foo')", $vms_unix_rpt ? 'foo' : '[.foo]' ], +-[ "VMS->catdir('d1','d2','d3')", $vms_unix_rpt ? 'd1/d2/d3' : '[.d1.d2.d3]' ], +-[ "VMS->catdir('d1','d2/','d3')", $vms_unix_rpt ? 'd1/d2/d3' : '[.d1.d2.d3]' ], +-[ "VMS->catdir('','d1','d2','d3')",$vms_unix_rpt ? '/d1/d2/d3' : '[.d1.d2.d3]' ], +-[ "VMS->catdir('','-','d2','d3')", $vms_unix_rpt ? '-/d2/d3' : '[-.d2.d3]' ], +-[ "VMS->catdir('','-','','d3')", $vms_unix_rpt ? '-/d3' : '[-.d3]' ], +-[ "VMS->catdir('dir.dir','d2.dir','d3.dir')", $vms_unix_rpt ? 'dir/d2/d3' +- : '[.dir.d2.d3]' ], +-[ "VMS->catdir('[.name]')", $vms_unix_rpt ? 'name/' : '[.name]' ], +-[ "VMS->catdir('[.name]','[.name]')", $vms_unix_rpt ? 'name/name' :'[.name.name]' ], +-[ "VMS->catdir('/a/b/c','[-]')", $vms_unix_rpt ? '/a/b/c/..' : 'a:[b]'], +-[ "VMS->catdir('a:[b.c]','..')", $vms_unix_rpt ? '/a/b/c/..' : 'a:[b]'], +- +-[ "VMS->abs2rel('node::volume:[t1.t2.t3]','node::volume:[t1.t2.t3]')", $vms_unix_rpt ? './' : '[]' ], +-[ "VMS->abs2rel('node::volume:[t1.t2.t3]','[t1.t2.t3]')", $vms_unix_rpt ? '/node//volume/t1/t2/t3/' : 'node::volume:[t1.t2.t3]' ], +-[ "VMS->abs2rel('node::volume:[t1.t2.t4]','node::volume:[t1.t2.t3]')", $vms_unix_rpt ? '../t4/' : '[-.t4]' ], +-[ "VMS->abs2rel('node::volume:[t1.t2.t4]','[t1.t2.t3]')", $vms_unix_rpt ? '/node//volume/t1/t2/t4/' : 'node::volume:[t1.t2.t4]' ], +-[ "VMS->abs2rel('/volume/t1/t2/t3','/volume/t1')", $vms_unix_rpt ? 't2/t3' : '[.t2]t3' ], +-[ "VMS->abs2rel('/volume/t1/t2/t3/t4','/volume/t1/xyz')", $vms_unix_rpt ? '../t2/t3/t4' : '[-.t2.t3]t4' ], +-[ "VMS->abs2rel('[t1.t2.t3]','[t1.t2.t3]')", $vms_unix_rpt ? './' : '[]' ], +-[ "VMS->abs2rel('[t1.t2.t3]file','[t1.t2.t3]')", 'file' ], +-[ "VMS->abs2rel('[t1.t2.t3]file','[t1.t2]')", $vms_unix_rpt ? 't3/file' : '[.t3]file' ], +-[ "VMS->abs2rel('v:[t1.t2.t3]file','v:[t1.t2]')", $vms_unix_rpt ? 't3/file' : '[.t3]file' ], +-[ "VMS->abs2rel('[t1.t2.t4]','[t1.t2.t3]')", $vms_unix_rpt ? '../t4/' : '[-.t4]' ], +-[ "VMS->abs2rel('[t1.t2]file','[t1.t2.t3]')", $vms_unix_rpt ? '../file' : '[-]file' ], +-[ "VMS->abs2rel('[t1.t2.t3.t4]','[t1.t2.t3]')", $vms_unix_rpt ? 't4/' : '[.t4]' ], +-[ "VMS->abs2rel('[t4.t5.t6]','[t1.t2.t3]')", $vms_unix_rpt ? '../../../t4/t5/t6/' : '[---.t4.t5.t6]' ], +-[ "VMS->abs2rel('[000000]','[t1.t2.t3]')", $vms_unix_rpt ? '../../../' : '[---]' ], +-[ "VMS->abs2rel('a:[t1.t2.t4]','a:[t1.t2.t3]')", $vms_unix_rpt ? '../t4/' : '[-.t4]' ], +-[ "VMS->abs2rel('a:[t1.t2.t4]','[t1.t2.t3]')", $vms_unix_rpt ? '/a/t1/t2/t4' : 'a:[t1.t2.t4]' ], +-[ "VMS->abs2rel('[a.-.b.c.-]','[t1.t2.t3]')", $vms_unix_rpt ? '../../../b/' : '[---.b]' ], +- +-[ "VMS->rel2abs('[.t4]','[t1.t2.t3]')", $vms_unix_rpt ? '/sys$disk/t1/t2/t3/t4/' : '[t1.t2.t3.t4]' ], +-[ "VMS->rel2abs('[.t4.t5]','[t1.t2.t3]')", $vms_unix_rpt ? '/sys$disk/t1/t2/t3/t4/t5/' : '[t1.t2.t3.t4.t5]' ], +-[ "VMS->rel2abs('[]','[t1.t2.t3]')", $vms_unix_rpt ? '/sys$disk/t1/t2/t3/' : '[t1.t2.t3]' ], +-[ "VMS->rel2abs('[-]','[t1.t2.t3]')", $vms_unix_rpt ? '/sys$disk/t1/t2/' : '[t1.t2]' ], +-[ "VMS->rel2abs('[-.t4]','[t1.t2.t3]')", $vms_unix_rpt ? '/sys$disk/t1/t2/t4/' : '[t1.t2.t4]' ], +-[ "VMS->rel2abs('[t1]','[t1.t2.t3]')", $vms_unix_rpt ? '/sys$disk/t1/' : '[t1]' ], +- +-[ "VMS->file_name_is_absolute('foo:')", '1' ], +-[ "VMS->file_name_is_absolute('foo:bar.dat')", '1' ], +-[ "VMS->file_name_is_absolute('foo:[000000]bar.dat')", '1' ], +- + [ "OS2->case_tolerant()", '1' ], + + [ "OS2->catdir('A:/d1','B:/d2','d3','')", 'A:/d1/B:/d2/d3' ], +-- +2.13.6 + diff --git a/SOURCES/PathTools-3.75-Upgrade-to-3.78.patch b/SOURCES/PathTools-3.75-Upgrade-to-3.78.patch new file mode 100644 index 0000000..67d2581 --- /dev/null +++ b/SOURCES/PathTools-3.75-Upgrade-to-3.78.patch @@ -0,0 +1,283 @@ +From 3c570b93e7ca990b3274219dd828e8fdaac0bf9d Mon Sep 17 00:00:00 2001 +From: Jitka Plesnikova +Date: Thu, 25 Apr 2019 17:04:30 +0200 +Subject: [PATCH] Upgrade to 3.78 + +--- + Cwd.pm | 8 ++++++-- + lib/File/Spec.pm | 2 +- + lib/File/Spec/AmigaOS.pm | 2 +- + lib/File/Spec/Cygwin.pm | 2 +- + lib/File/Spec/Epoc.pm | 2 +- + lib/File/Spec/Functions.pm | 2 +- + lib/File/Spec/Mac.pm | 2 +- + lib/File/Spec/OS2.pm | 2 +- + lib/File/Spec/Unix.pm | 2 +- + lib/File/Spec/Win32.pm | 14 ++------------ + t/Spec.t | 4 ++-- + t/cwd.t | 11 ++++++++++- + t/cwd_enoent.t | 9 ++++++--- + 13 files changed, 34 insertions(+), 28 deletions(-) + +diff --git a/Cwd.pm b/Cwd.pm +index 16d5b11..9b173c2 100644 +--- a/Cwd.pm ++++ b/Cwd.pm +@@ -3,7 +3,7 @@ use strict; + use Exporter; + + +-our $VERSION = '3.75'; ++our $VERSION = '3.78'; + my $xs_version = $VERSION; + $VERSION =~ tr/_//d; + +@@ -171,7 +171,7 @@ if($^O ne 'MSWin32') { + if ($^O =~ /android/) { + # If targetsh is executable, then we're either a full + # perl, or a miniperl for a native build. +- if (-x $Config::Config{targetsh}) { ++ if ( exists($Config::Config{targetsh}) && -x $Config::Config{targetsh}) { + $pwd_cmd = "$Config::Config{targetsh} -c pwd" + } + else { +@@ -659,6 +659,10 @@ if (exists $METHOD_MAP{$^O}) { + } + } + ++# built-in from 5.30 ++*getcwd = \&Internals::getcwd ++ if !defined &getcwd && defined &Internals::getcwd; ++ + # In case the XS version doesn't load. + *abs_path = \&_perl_abs_path unless defined &abs_path; + *getcwd = \&_perl_getcwd unless defined &getcwd; +diff --git a/lib/File/Spec.pm b/lib/File/Spec.pm +index eb3b55a..7fe3272 100644 +--- a/lib/File/Spec.pm ++++ b/lib/File/Spec.pm +@@ -2,7 +2,7 @@ package File::Spec; + + use strict; + +-our $VERSION = '3.75'; ++our $VERSION = '3.78'; + $VERSION =~ tr/_//d; + + my %module = ( +diff --git a/lib/File/Spec/AmigaOS.pm b/lib/File/Spec/AmigaOS.pm +index 1355768..2b7d18a 100644 +--- a/lib/File/Spec/AmigaOS.pm ++++ b/lib/File/Spec/AmigaOS.pm +@@ -3,7 +3,7 @@ package File::Spec::AmigaOS; + use strict; + require File::Spec::Unix; + +-our $VERSION = '3.75'; ++our $VERSION = '3.78'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/Cygwin.pm b/lib/File/Spec/Cygwin.pm +index 9dc15a1..d44ced3 100644 +--- a/lib/File/Spec/Cygwin.pm ++++ b/lib/File/Spec/Cygwin.pm +@@ -3,7 +3,7 @@ package File::Spec::Cygwin; + use strict; + require File::Spec::Unix; + +-our $VERSION = '3.75'; ++our $VERSION = '3.78'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/Epoc.pm b/lib/File/Spec/Epoc.pm +index bd87b68..b611cd9 100644 +--- a/lib/File/Spec/Epoc.pm ++++ b/lib/File/Spec/Epoc.pm +@@ -2,7 +2,7 @@ package File::Spec::Epoc; + + use strict; + +-our $VERSION = '3.75'; ++our $VERSION = '3.78'; + $VERSION =~ tr/_//d; + + require File::Spec::Unix; +diff --git a/lib/File/Spec/Functions.pm b/lib/File/Spec/Functions.pm +index 19ab4db..3f617bd 100644 +--- a/lib/File/Spec/Functions.pm ++++ b/lib/File/Spec/Functions.pm +@@ -3,7 +3,7 @@ package File::Spec::Functions; + use File::Spec; + use strict; + +-our $VERSION = '3.75'; ++our $VERSION = '3.78'; + $VERSION =~ tr/_//d; + + require Exporter; +diff --git a/lib/File/Spec/Mac.pm b/lib/File/Spec/Mac.pm +index 926a5dd..d920d2f 100644 +--- a/lib/File/Spec/Mac.pm ++++ b/lib/File/Spec/Mac.pm +@@ -4,7 +4,7 @@ use strict; + use Cwd (); + require File::Spec::Unix; + +-our $VERSION = '3.75'; ++our $VERSION = '3.78'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/OS2.pm b/lib/File/Spec/OS2.pm +index 4404fe8..603781a 100644 +--- a/lib/File/Spec/OS2.pm ++++ b/lib/File/Spec/OS2.pm +@@ -4,7 +4,7 @@ use strict; + use Cwd (); + require File::Spec::Unix; + +-our $VERSION = '3.75'; ++our $VERSION = '3.78'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/Unix.pm b/lib/File/Spec/Unix.pm +index cd29f76..6749e60 100644 +--- a/lib/File/Spec/Unix.pm ++++ b/lib/File/Spec/Unix.pm +@@ -3,7 +3,7 @@ package File::Spec::Unix; + use strict; + use Cwd (); + +-our $VERSION = '3.75'; ++our $VERSION = '3.78'; + $VERSION =~ tr/_//d; + + =head1 NAME +diff --git a/lib/File/Spec/Win32.pm b/lib/File/Spec/Win32.pm +index 0cf0e28..5934010 100644 +--- a/lib/File/Spec/Win32.pm ++++ b/lib/File/Spec/Win32.pm +@@ -5,7 +5,7 @@ use strict; + use Cwd (); + require File::Spec::Unix; + +-our $VERSION = '3.75'; ++our $VERSION = '3.78'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +@@ -137,7 +137,7 @@ sub catfile { + # Legacy / compatibility support + # + shift, return _canon_cat( "/", @_ ) +- if $_[0] eq ""; ++ if !@_ || $_[0] eq ""; + + # Compatibility with File::Spec <= 3.26: + # catfile('A:', 'foo') should return 'A:\foo'. +@@ -407,16 +407,6 @@ sub _canon_cat # @path -> path + )+ # performance boost -- I do not know why + }{\\}gx; + +- # XXX I do not know whether more dots are supported by the OS supporting +- # this ... annotation (NetWare or symbian but not MSWin32). +- # Then .... could easily become ../../.. etc: +- # Replace \.\.\. by (\.\.\.+) and substitute with +- # { $1 . ".." . "\\.." x (length($2)-2) }gex +- # ... --> ../.. +- $path =~ s{ (\A|\\) # at begin or after a slash +- \.\.\. +- (?=\\|\z) # at end or followed by slash +- }{$1..\\..}gx; + # xx\yy\..\zz --> xx\zz + while ( $path =~ s{(?: + (?:\A|\\) # at begin or after a slash +diff --git a/t/Spec.t b/t/Spec.t +index 1b26190..c953391 100644 +--- a/t/Spec.t ++++ b/t/Spec.t +@@ -277,9 +277,9 @@ my @tests = ( + [ "Win32->canonpath('//a/b/../../c')", '\\\\a\\b\\c' ], + [ "Win32->canonpath('//a/b/c/../d')", '\\\\a\\b\\d' ], + [ "Win32->canonpath('//a/b/c/../../d')",'\\\\a\\b\\d' ], +-[ "Win32->canonpath('//a/b/c/.../d')", '\\\\a\\b\\d' ], ++[ "Win32->canonpath('//a/b/c/.../d')", '\\\\a\\b\\c\\...\\d' ], + [ "Win32->canonpath('/a/b/c/../../d')", '\\a\\d' ], +-[ "Win32->canonpath('/a/b/c/.../d')", '\\a\\d' ], ++[ "Win32->canonpath('/a/b/c/.../d')", '\\a\\b\\c\\...\\d' ], + [ "Win32->canonpath('\\../temp\\')", '\\temp' ], + [ "Win32->canonpath('\\../')", '\\' ], + [ "Win32->canonpath('\\..\\')", '\\' ], +diff --git a/t/cwd.t b/t/cwd.t +index 483b437..c056938 100644 +--- a/t/cwd.t ++++ b/t/cwd.t +@@ -10,6 +10,7 @@ chdir 't'; + use Config; + use File::Spec; + use File::Path; ++use Errno qw(EACCES); + + use lib File::Spec->catdir('t', 'lib'); + use Test::More; +@@ -208,7 +209,15 @@ SKIP: { + + like($abs_path, qr|$want$|i, "Cwd::abs_path produced $abs_path"); + like($fast_abs_path, qr|$want$|i, "Cwd::fast_abs_path produced $fast_abs_path"); +- like($pas, qr|$want$|i, "Cwd::_perl_abs_path produced $pas") if $EXTRA_ABSPATH_TESTS; ++ if ($EXTRA_ABSPATH_TESTS) { ++ # _perl_abs_path() can fail if some ancestor directory isn't readable ++ if (defined $pas) { ++ like($pas, qr|$want$|i, "Cwd::_perl_abs_path produced $pas"); ++ } ++ else { ++ is($!+0, EACCES, "check we got the expected error on failure"); ++ } ++ } + + rmtree($test_dirs[0], 0, 0); + 1 while unlink $file; +diff --git a/t/cwd_enoent.t b/t/cwd_enoent.t +index 8f3a1fb..510c65e 100644 +--- a/t/cwd_enoent.t ++++ b/t/cwd_enoent.t +@@ -2,7 +2,7 @@ use warnings; + use strict; + + use Config; +-use Errno qw(ENOENT); ++use Errno qw(); + use File::Temp qw(tempdir); + use Test::More; + +@@ -19,6 +19,7 @@ unless(mkdir("$tmp/testdir") && chdir("$tmp/testdir") && rmdir("$tmp/testdir")){ + plan tests => 8; + require Cwd; + ++my @acceptable_errnos = (&Errno::ENOENT, (defined &Errno::ESTALE ? &Errno::ESTALE : ())); + foreach my $type (qw(regular perl)) { + SKIP: { + skip "_perl_abs_path() not expected to work", 4 +@@ -36,12 +37,14 @@ foreach my $type (qw(regular perl)) { + $res = Cwd::getcwd(); + $eno = 0+$!; + is $res, undef, "$type getcwd result on non-existent directory"; +- is $eno, ENOENT, "$type getcwd errno on non-existent directory"; ++ ok((grep { $eno == $_ } @acceptable_errnos), "$type getcwd errno on non-existent directory") ++ or diag "Got errno code $eno, expected " . join(", ", @acceptable_errnos); + $! = 0; + $res = Cwd::abs_path("."); + $eno = 0+$!; + is $res, undef, "$type abs_path result on non-existent directory"; +- is $eno, ENOENT, "$type abs_path errno on non-existent directory"; ++ ok((grep { $eno == $_ } @acceptable_errnos), "$type abs_path errno on non-existent directory") ++ or diag "Got errno code $eno, expected " . join(", ", @acceptable_errnos); + } + } + +-- +2.20.1 + diff --git a/SOURCES/PathTools-3.78-Upgrade-to-3.80.patch b/SOURCES/PathTools-3.78-Upgrade-to-3.80.patch new file mode 100644 index 0000000..6585b32 --- /dev/null +++ b/SOURCES/PathTools-3.78-Upgrade-to-3.80.patch @@ -0,0 +1,278 @@ +From 2aa3d01bca010903b9cdb848e61ca45f84ce6bcf Mon Sep 17 00:00:00 2001 +From: Jitka Plesnikova +Date: Thu, 6 May 2021 08:31:26 +0200 +Subject: [PATCH] Upgrade to 3.80 + +--- + Cwd.pm | 2 +- + Cwd.xs | 24 +++-- + META.json | 2 +- + META.yml | 2 +- + lib/File/Spec.pm | 2 +- + lib/File/Spec/AmigaOS.pm | 2 +- + lib/File/Spec/Cygwin.pm | 2 +- + lib/File/Spec/Epoc.pm | 2 +- + lib/File/Spec/Functions.pm | 2 +- + lib/File/Spec/Mac.pm | 2 +- + lib/File/Spec/OS2.pm | 2 +- + lib/File/Spec/Unix.pm | 2 +- + lib/File/Spec/Win32.pm | 4 +- + t/cwd.t | 4 + + t/cwd_enoent.t | 2 + + 16 files changed, 232 insertions(+), 20 deletions(-) + +diff --git a/Cwd.pm b/Cwd.pm +index 9b173c2..6a1d2f1 100644 +--- a/Cwd.pm ++++ b/Cwd.pm +@@ -3,7 +3,7 @@ use strict; + use Exporter; + + +-our $VERSION = '3.78'; ++our $VERSION = '3.80'; + my $xs_version = $VERSION; + $VERSION =~ tr/_//d; + +diff --git a/Cwd.xs b/Cwd.xs +index 8662400..223e1a6 100644 +--- a/Cwd.xs ++++ b/Cwd.xs +@@ -84,6 +84,9 @@ bsd_realpath(const char *path, char resolved[MAXPATHLEN]) + unsigned symlinks; + int serrno; + char remaining[MAXPATHLEN], next_token[MAXPATHLEN]; ++#ifdef PERL_IMPLICIT_SYS ++ dTHX; ++#endif + + serrno = errno; + symlinks = 0; +@@ -119,15 +122,24 @@ bsd_realpath(const char *path, char resolved[MAXPATHLEN]) + + p = strchr(remaining, '/'); + s = p ? p : remaining + remaining_len; ++ + if ((STRLEN)(s - remaining) >= (STRLEN)sizeof(next_token)) { + errno = ENAMETOOLONG; + return (NULL); + } + memcpy(next_token, remaining, s - remaining); + next_token[s - remaining] = '\0'; +- remaining_len -= s - remaining; +- if (p != NULL) +- memmove(remaining, s + 1, remaining_len + 1); ++ ++ /* shift first component off front of path, including '/' */ ++ if (p) { ++ s++; /* skip '/' */ ++ remaining_len -= s - remaining; ++ /* the +1 includes the trailing '\0' */ ++ memmove(remaining, s, remaining_len + 1); ++ } ++ else ++ remaining_len = 0; ++ + if (resolved[resolved_len - 1] != '/') { + if (resolved_len + 1 >= MAXPATHLEN) { + errno = ENAMETOOLONG; +@@ -166,8 +178,8 @@ bsd_realpath(const char *path, char resolved[MAXPATHLEN]) + } + #if defined(HAS_LSTAT) && defined(HAS_READLINK) && defined(HAS_SYMLINK) + { +- struct stat sb; +- if (lstat(resolved, &sb) != 0) { ++ Stat_t sb; ++ if (PerlLIO_lstat(resolved, &sb) != 0) { + if (errno == ENOENT && p == NULL) { + errno = serrno; + return (resolved); +@@ -182,7 +194,7 @@ bsd_realpath(const char *path, char resolved[MAXPATHLEN]) + errno = ELOOP; + return (NULL); + } +- slen = readlink(resolved, symlink, sizeof(symlink) - 1); ++ slen = PerlLIO_readlink(resolved, symlink, sizeof(symlink) - 1); + if (slen < 0) + return (NULL); + symlink[slen] = '\0'; +diff --git a/META.json b/META.json +index e41b849..ad429a5 100644 +--- a/META.json ++++ b/META.json +@@ -50,6 +50,6 @@ + "url" : "git://perl5.git.perl.org/perl.git" + } + }, +- "version" : "3.75", ++ "version" : "3.73", + "x_serialization_backend" : "JSON::PP version 2.27400_02" + } +diff --git a/META.yml b/META.yml +index c53f36e..c2adfcf 100644 +--- a/META.yml ++++ b/META.yml +@@ -26,5 +26,5 @@ resources: + bugtracker: https://rt.perl.org/rt3/ + homepage: http://dev.perl.org/ + repository: git://perl5.git.perl.org/perl.git +-version: '3.75' ++version: '3.73' + x_serialization_backend: 'CPAN::Meta::YAML version 0.018' +diff --git a/lib/File/Spec.pm b/lib/File/Spec.pm +index 7fe3272..30d883b 100644 +--- a/lib/File/Spec.pm ++++ b/lib/File/Spec.pm +@@ -2,7 +2,7 @@ package File::Spec; + + use strict; + +-our $VERSION = '3.78'; ++our $VERSION = '3.80'; + $VERSION =~ tr/_//d; + + my %module = ( +diff --git a/lib/File/Spec/AmigaOS.pm b/lib/File/Spec/AmigaOS.pm +index 2b7d18a..fd9da81 100644 +--- a/lib/File/Spec/AmigaOS.pm ++++ b/lib/File/Spec/AmigaOS.pm +@@ -3,7 +3,7 @@ package File::Spec::AmigaOS; + use strict; + require File::Spec::Unix; + +-our $VERSION = '3.78'; ++our $VERSION = '3.80'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/Cygwin.pm b/lib/File/Spec/Cygwin.pm +index d44ced3..953c233 100644 +--- a/lib/File/Spec/Cygwin.pm ++++ b/lib/File/Spec/Cygwin.pm +@@ -3,7 +3,7 @@ package File::Spec::Cygwin; + use strict; + require File::Spec::Unix; + +-our $VERSION = '3.78'; ++our $VERSION = '3.80'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/Epoc.pm b/lib/File/Spec/Epoc.pm +index b611cd9..fcb9e89 100644 +--- a/lib/File/Spec/Epoc.pm ++++ b/lib/File/Spec/Epoc.pm +@@ -2,7 +2,7 @@ package File::Spec::Epoc; + + use strict; + +-our $VERSION = '3.78'; ++our $VERSION = '3.80'; + $VERSION =~ tr/_//d; + + require File::Spec::Unix; +diff --git a/lib/File/Spec/Functions.pm b/lib/File/Spec/Functions.pm +index 3f617bd..e14ad2f 100644 +--- a/lib/File/Spec/Functions.pm ++++ b/lib/File/Spec/Functions.pm +@@ -3,7 +3,7 @@ package File::Spec::Functions; + use File::Spec; + use strict; + +-our $VERSION = '3.78'; ++our $VERSION = '3.80'; + $VERSION =~ tr/_//d; + + require Exporter; +diff --git a/lib/File/Spec/Mac.pm b/lib/File/Spec/Mac.pm +index d920d2f..8026edc 100644 +--- a/lib/File/Spec/Mac.pm ++++ b/lib/File/Spec/Mac.pm +@@ -4,7 +4,7 @@ use strict; + use Cwd (); + require File::Spec::Unix; + +-our $VERSION = '3.78'; ++our $VERSION = '3.80'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/OS2.pm b/lib/File/Spec/OS2.pm +index 603781a..3c35ba9 100644 +--- a/lib/File/Spec/OS2.pm ++++ b/lib/File/Spec/OS2.pm +@@ -4,7 +4,7 @@ use strict; + use Cwd (); + require File::Spec::Unix; + +-our $VERSION = '3.78'; ++our $VERSION = '3.80'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/Unix.pm b/lib/File/Spec/Unix.pm +index 6749e60..c06d18f 100644 +--- a/lib/File/Spec/Unix.pm ++++ b/lib/File/Spec/Unix.pm +@@ -3,7 +3,7 @@ package File::Spec::Unix; + use strict; + use Cwd (); + +-our $VERSION = '3.78'; ++our $VERSION = '3.80'; + $VERSION =~ tr/_//d; + + =head1 NAME +diff --git a/lib/File/Spec/Win32.pm b/lib/File/Spec/Win32.pm +index 5934010..1537442 100644 +--- a/lib/File/Spec/Win32.pm ++++ b/lib/File/Spec/Win32.pm +@@ -5,7 +5,7 @@ use strict; + use Cwd (); + require File::Spec::Unix; + +-our $VERSION = '3.78'; ++our $VERSION = '3.80'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +@@ -84,7 +84,7 @@ sub tmpdir { + MSWin32 case-tolerance depends on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE, + indicating the case significance when comparing file specifications. + Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem. +-See http://cygwin.com/ml/cygwin/2007-07/msg00891.html ++See L + Default: 1 + + =cut +diff --git a/t/cwd.t b/t/cwd.t +index c056938..d155e33 100644 +--- a/t/cwd.t ++++ b/t/cwd.t +@@ -187,6 +187,10 @@ rmtree($test_dirs[0], 0, 0); + SKIP: { + skip "no symlinks on this platform", 2+$EXTRA_ABSPATH_TESTS unless $Config{d_symlink} && $^O !~ m!^(qnx|nto)!; + ++ # on Win32 GetCurrentDirectory() includes the symlink if ++ # you chdir() to a path including the symlink. ++ skip "Win32 symlinks are unusual", 2+$EXTRA_ABSPATH_TESTS if $^O eq "MSWin32"; ++ + my $file = "linktest"; + mkpath([$Test_Dir], 0, 0777); + symlink $Test_Dir, $file; +diff --git a/t/cwd_enoent.t b/t/cwd_enoent.t +index 510c65e..2e94bad 100644 +--- a/t/cwd_enoent.t ++++ b/t/cwd_enoent.t +@@ -26,6 +26,8 @@ foreach my $type (qw(regular perl)) { + if $type eq "perl" && + !(($Config{prefix} =~ m/\//) && $^O ne "cygwin"); + ++ # https://github.com/Perl/perl5/issues/16525 ++ # https://bugs.dragonflybsd.org/issues/3250 + skip "getcwd() doesn't fail on non-existent directories on this platform", 4 + if $type eq 'regular' && $^O eq 'dragonfly'; + +-- +2.30.2 + diff --git a/SOURCES/PathTools-3.80-Upgrade-to-3.84.patch b/SOURCES/PathTools-3.80-Upgrade-to-3.84.patch new file mode 100644 index 0000000..d104e3d --- /dev/null +++ b/SOURCES/PathTools-3.80-Upgrade-to-3.84.patch @@ -0,0 +1,371 @@ +From 29821ef8025dddc95c122e87afb09d5b3a5ef6ed Mon Sep 17 00:00:00 2001 +From: Jitka Plesnikova +Date: Thu, 12 May 2022 10:53:47 +0200 +Subject: [PATCH] Upgrade to 3.84 + +--- + Changes | 30 ++++++++++++++++++++++++++ + Cwd.pm | 43 ++++++++++---------------------------- + Cwd.xs | 4 ++++ + Makefile.PL | 2 +- + lib/File/Spec.pm | 4 ++-- + lib/File/Spec/AmigaOS.pm | 2 +- + lib/File/Spec/Cygwin.pm | 2 +- + lib/File/Spec/Epoc.pm | 2 +- + lib/File/Spec/Functions.pm | 2 +- + lib/File/Spec/Mac.pm | 2 +- + lib/File/Spec/OS2.pm | 2 +- + lib/File/Spec/Unix.pm | 4 ++-- + lib/File/Spec/Win32.pm | 2 +- + t/cwd_enoent.t | 3 +++ + 14 files changed, 60 insertions(+), 44 deletions(-) + +diff --git a/Changes b/Changes +index 7f04db2..9533c1f 100644 +--- a/Changes ++++ b/Changes +@@ -1,5 +1,35 @@ + Revision history for Perl distribution PathTools. + ++3.81 ++ ++- compare inode numbers as strings (github #18788) ++ ++3.80 ++ ++- use the PerlLIO_*() functions for lstat() and readlink() to support ++ Win32 symlink support added to perl. ++ ++- skip a test that assumes getcwd() doesn't return symlinks on Win32, where ++ it can. ++ ++3.79 ++ ++- fix an off-by-one in bsd_realpath() ++ ++3.78 ++ ++- fallback to Internals::getcwd() for getcwd() if available (requires ++ $Config{d_getcwd}) ++ ++3.77 ++ ++- don't translate "..." to "..\.." on Win32 ++ ++3.76 ++ ++- test t/cwd_enoent.t - also accept ESTALE for a directory that no ++ longer exists (github #16699) ++ + 3.75 + - Fix t/abs2rel.t on 5.8.8 by changing mkpath call to be + compatible with older File::Path +diff --git a/Cwd.pm b/Cwd.pm +index 6a1d2f1..0683583 100644 +--- a/Cwd.pm ++++ b/Cwd.pm +@@ -3,7 +3,7 @@ use strict; + use Exporter; + + +-our $VERSION = '3.80'; ++our $VERSION = '3.84'; + my $xs_version = $VERSION; + $VERSION =~ tr/_//d; + +@@ -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(@_) } +@@ -213,26 +207,13 @@ 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; + } + else { +- *cwd = \&getcwd; ++ # getcwd() might have an empty prototype ++ *cwd = sub { getcwd(); }; + } + } + +@@ -275,7 +256,7 @@ sub fastcwd_ { + ($odev, $oino) = ($cdev, $cino); + CORE::chdir('..') || return undef; + ($cdev, $cino) = stat('.'); +- last if $odev == $cdev && $oino == $cino; ++ last if $odev == $cdev && $oino eq $cino; + opendir(DIR, '.') || return undef; + for (;;) { + $direntry = readdir(DIR); +@@ -284,7 +265,7 @@ sub fastcwd_ { + next if $direntry eq '..'; + + ($tdev, $tino) = lstat($direntry); +- last unless $tdev != $odev || $tino != $oino; ++ last unless $tdev != $odev || $tino ne $oino; + } + closedir(DIR); + return undef unless defined $direntry; # should never happen +@@ -298,7 +279,7 @@ sub fastcwd_ { + && CORE::chdir($1) or return undef; + ($cdev, $cino) = stat('.'); + die "Unstable directory path, current directory changed unexpectedly" +- if $cdev != $orig_cdev || $cino != $orig_cino; ++ if $cdev != $orig_cdev || $cino ne $orig_cino; + $path; + } + if (not defined &fastcwd) { *fastcwd = \&fastcwd_ } +@@ -315,7 +296,7 @@ sub chdir_init { + if ($ENV{'PWD'} and $^O ne 'os2' and $^O ne 'dos' and $^O ne 'MSWin32') { + my($dd,$di) = stat('.'); + my($pd,$pi) = stat($ENV{'PWD'}); +- if (!defined $dd or !defined $pd or $di != $pi or $dd != $pd) { ++ if (!defined $dd or !defined $pd or $di ne $pi or $dd != $pd) { + $ENV{'PWD'} = cwd(); + } + } +@@ -328,7 +309,7 @@ sub chdir_init { + if ($^O ne 'MSWin32' and $ENV{'PWD'} =~ m|(/[^/]+(/[^/]+/[^/]+))(.*)|s) { + my($pd,$pi) = stat($2); + my($dd,$di) = stat($1); +- if (defined $pd and defined $dd and $di == $pi and $dd == $pd) { ++ if (defined $pd and defined $dd and $di ne $pi and $dd == $pd) { + $ENV{'PWD'}="$2$3"; + } + } +@@ -430,7 +411,7 @@ sub _perl_abs_path + $! = $e; + return undef; + } +- if ($pst[0] == $cst[0] && $pst[1] == $cst[1]) ++ if ($pst[0] == $cst[0] && $pst[1] eq $cst[1]) + { + $dir = undef; + } +@@ -448,7 +429,7 @@ sub _perl_abs_path + $tst[0] = $pst[0]+1 unless (@tst = lstat("$dotdots/$dir")) + } + while ($dir eq '.' || $dir eq '..' || $tst[0] != $pst[0] || +- $tst[1] != $pst[1]); ++ $tst[1] ne $pst[1]); + } + $cwd = (defined $dir ? "$dir" : "" ) . "/$cwd" ; + closedir(PARENT); +@@ -820,9 +801,7 @@ C. + + =head1 AUTHOR + +-Originally by the perl5-porters. +- +-Maintained by Ken Williams ++Maintained by perl5-porters >. + + =head1 COPYRIGHT + +diff --git a/Cwd.xs b/Cwd.xs +index 223e1a6..4fda057 100644 +--- a/Cwd.xs ++++ b/Cwd.xs +@@ -15,6 +15,10 @@ + # include "ppport.h" + #endif + ++#if defined(HAS_READLINK) && !defined(PerlLIO_readlink) ++#define PerlLIO_readlink readlink ++#endif ++ + #ifdef I_UNISTD + # include + #endif +diff --git a/Makefile.PL b/Makefile.PL +index 11e04af..0311708 100644 +--- a/Makefile.PL ++++ b/Makefile.PL +@@ -16,7 +16,7 @@ push @extra, 'LICENSE' => 'perl_5' + push @extra, 'META_MERGE' => { + resources => { + repository => 'git://perl5.git.perl.org/perl.git', +- bugtracker => 'https://rt.perl.org/rt3/', ++ bugtracker => 'https://github.com/Perl/perl5/issues', + homepage => "http://dev.perl.org/", + license => [ 'http://dev.perl.org/licenses/' ], + }, +diff --git a/lib/File/Spec.pm b/lib/File/Spec.pm +index 30d883b..e0a49ed 100644 +--- a/lib/File/Spec.pm ++++ b/lib/File/Spec.pm +@@ -2,7 +2,7 @@ package File::Spec; + + use strict; + +-our $VERSION = '3.80'; ++our $VERSION = '3.84'; + $VERSION =~ tr/_//d; + + my %module = ( +@@ -316,7 +316,7 @@ L + + =head1 AUTHOR + +-Currently maintained by Ken Williams C<< >>. ++Maintained by perl5-porters >. + + The vast majority of the code was written by + Kenneth Albanowski C<< >>, +diff --git a/lib/File/Spec/AmigaOS.pm b/lib/File/Spec/AmigaOS.pm +index fd9da81..a29617c 100644 +--- a/lib/File/Spec/AmigaOS.pm ++++ b/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.84'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/Cygwin.pm b/lib/File/Spec/Cygwin.pm +index 953c233..e21c0bb 100644 +--- a/lib/File/Spec/Cygwin.pm ++++ b/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.84'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/Epoc.pm b/lib/File/Spec/Epoc.pm +index fcb9e89..2429bb2 100644 +--- a/lib/File/Spec/Epoc.pm ++++ b/lib/File/Spec/Epoc.pm +@@ -2,7 +2,7 @@ package File::Spec::Epoc; + + use strict; + +-our $VERSION = '3.80'; ++our $VERSION = '3.84'; + $VERSION =~ tr/_//d; + + require File::Spec::Unix; +diff --git a/lib/File/Spec/Functions.pm b/lib/File/Spec/Functions.pm +index e14ad2f..a09150c 100644 +--- a/lib/File/Spec/Functions.pm ++++ b/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.84'; + $VERSION =~ tr/_//d; + + require Exporter; +diff --git a/lib/File/Spec/Mac.pm b/lib/File/Spec/Mac.pm +index 8026edc..369d1f0 100644 +--- a/lib/File/Spec/Mac.pm ++++ b/lib/File/Spec/Mac.pm +@@ -4,7 +4,7 @@ use strict; + use Cwd (); + require File::Spec::Unix; + +-our $VERSION = '3.80'; ++our $VERSION = '3.84'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/OS2.pm b/lib/File/Spec/OS2.pm +index 3c35ba9..604e2e3 100644 +--- a/lib/File/Spec/OS2.pm ++++ b/lib/File/Spec/OS2.pm +@@ -4,7 +4,7 @@ use strict; + use Cwd (); + require File::Spec::Unix; + +-our $VERSION = '3.80'; ++our $VERSION = '3.84'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/Unix.pm b/lib/File/Spec/Unix.pm +index c06d18f..52904b4 100644 +--- a/lib/File/Spec/Unix.pm ++++ b/lib/File/Spec/Unix.pm +@@ -3,7 +3,7 @@ package File::Spec::Unix; + use strict; + use Cwd (); + +-our $VERSION = '3.80'; ++our $VERSION = '3.84'; + $VERSION =~ tr/_//d; + + =head1 NAME +@@ -530,7 +530,7 @@ Copyright (c) 2004 by the Perl 5 Porters. All rights reserved. + This program is free software; you can redistribute it and/or modify + it under the same terms as Perl itself. + +-Please submit bug reports and patches to perlbug@perl.org. ++Please submit bug reports at L. + + =head1 SEE ALSO + +diff --git a/lib/File/Spec/Win32.pm b/lib/File/Spec/Win32.pm +index 1537442..b05b535 100644 +--- a/lib/File/Spec/Win32.pm ++++ b/lib/File/Spec/Win32.pm +@@ -5,7 +5,7 @@ use strict; + use Cwd (); + require File::Spec::Unix; + +-our $VERSION = '3.80'; ++our $VERSION = '3.84'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/t/cwd_enoent.t b/t/cwd_enoent.t +index 2e94bad..0fe3834 100644 +--- a/t/cwd_enoent.t ++++ b/t/cwd_enoent.t +@@ -31,6 +31,9 @@ foreach my $type (qw(regular perl)) { + skip "getcwd() doesn't fail on non-existent directories on this platform", 4 + if $type eq 'regular' && $^O eq 'dragonfly'; + ++ skip "getcwd() doesn't fail on non-existent directories on this platform", 4 ++ if $type eq 'regular' && $^O eq 'haiku'; ++ + no warnings "redefine"; + local *Cwd::abs_path = \&Cwd::_perl_abs_path if $type eq "perl"; + local *Cwd::getcwd = \&Cwd::_perl_getcwd if $type eq "perl"; +-- +2.34.3 + diff --git a/SOURCES/PathTools-3.84-Upgrade-to-3.89.patch b/SOURCES/PathTools-3.84-Upgrade-to-3.89.patch new file mode 100644 index 0000000..e6b3d15 --- /dev/null +++ b/SOURCES/PathTools-3.84-Upgrade-to-3.89.patch @@ -0,0 +1,345 @@ +From ebaf4e0e48c6e881818d8759470f227d4e15abca Mon Sep 17 00:00:00 2001 +From: Jitka Plesnikova +Date: Thu, 18 May 2023 14:28:48 +0200 +Subject: [PATCH] Upgrade to 3.89 + +--- + Changes | 24 +++++ + Cwd.pm | 10 +- + Cwd.xs | 18 ++-- + META.json | 2 +- + META.yml | 2 +- + Makefile.PL | 5 +- + lib/File/Spec.pm | 6 +- + lib/File/Spec/AmigaOS.pm | 2 +- + lib/File/Spec/Cygwin.pm | 2 +- + lib/File/Spec/Epoc.pm | 2 +- + lib/File/Spec/Functions.pm | 2 +- + lib/File/Spec/Mac.pm | 2 +- + lib/File/Spec/OS2.pm | 2 +- + lib/File/Spec/Unix.pm | 2 +- + lib/File/Spec/Win32.pm | 2 +- + t/Spec.t | 196 ++++++++++++++++++++++++++++++++++++- + t/cwd_enoent.t | 4 +- + t/tmpdir.t | 2 +- + 18 files changed, 254 insertions(+), 31 deletions(-) + +diff --git a/Changes b/Changes +index 9533c1f..47e172a 100644 +--- a/Changes ++++ b/Changes +@@ -1,5 +1,29 @@ + Revision history for Perl distribution PathTools. + ++3.87-3.88 ++ ++- Fix handling of empty path, VMS fixes. ++ ++3.86 ++ ++- Fix compilation warning on illumos based platforms ++ ++3.85 ++ ++- Fix issue related to tainting empty PATH ++ ++3.84 ++ ++- Add PerlIO_readlink backcompat defines to Cws.xs ++ ++3.83 ++ ++- More bugtracker changes, document maintainer is the Perl-5 Porters ++ ++3.82 ++ ++- Change to build so bugreports go to GitHub ++ + 3.81 + + - compare inode numbers as strings (github #18788) +diff --git a/Cwd.pm b/Cwd.pm +index 0683583..dbf08a6 100644 +--- a/Cwd.pm ++++ b/Cwd.pm +@@ -3,7 +3,7 @@ use strict; + use Exporter; + + +-our $VERSION = '3.84'; ++our $VERSION = '3.89'; + my $xs_version = $VERSION; + $VERSION =~ tr/_//d; + +@@ -192,8 +192,14 @@ sub _backtick_pwd { + # Localize %ENV entries in a way that won't create new hash keys. + # Under AmigaOS we don't want to localize as it stops perl from + # finding 'sh' in the PATH. +- my @localize = grep exists $ENV{$_}, qw(PATH IFS CDPATH ENV BASH_ENV) if $^O ne "amigaos"; ++ my @localize = grep exists $ENV{$_}, qw(IFS CDPATH ENV BASH_ENV) if $^O ne "amigaos"; + local @ENV{@localize} if @localize; ++ # empty PATH is the same as "." on *nix, so localize it to /something/ ++ # we won't *use* the path as code above turns $pwd_cmd into a specific ++ # executable, but it will blow up anyway under taint. We could set it to ++ # anything absolute. Perhaps "/" would be better. ++ local $ENV{PATH}= "/usr/bin" ++ if $^O ne "amigaos"; + + my $cwd = `$pwd_cmd`; + # Belt-and-suspenders in case someone said "undef $/". +diff --git a/Cwd.xs b/Cwd.xs +index 4fda057..ca8639d 100644 +--- a/Cwd.xs ++++ b/Cwd.xs +@@ -7,13 +7,11 @@ + #include "EXTERN.h" + #include "perl.h" + #include "XSUB.h" +-#ifndef NO_PPPORT_H +-# define NEED_croak_xs_usage +-# define NEED_sv_2pv_flags +-# define NEED_my_strlcpy +-# define NEED_my_strlcat +-# include "ppport.h" +-#endif ++#define NEED_croak_xs_usage ++#define NEED_sv_2pv_flags ++#define NEED_my_strlcpy ++#define NEED_my_strlcat ++#include "ppport.h" + + #if defined(HAS_READLINK) && !defined(PerlLIO_readlink) + #define PerlLIO_readlink readlink +@@ -24,8 +22,10 @@ + #endif + + /* For special handling of os390 sysplexed systems */ ++#ifdef OS390 + #define SYSNAME "$SYSNAME" + #define SYSNAME_LEN (sizeof(SYSNAME) - 1) ++#endif + + /* The realpath() implementation from OpenBSD 3.9 to 4.2 (realpath.c 1.13) + * Renamed here to bsd_realpath() to avoid library conflicts. +@@ -202,7 +202,7 @@ bsd_realpath(const char *path, char resolved[MAXPATHLEN]) + if (slen < 0) + return (NULL); + symlink[slen] = '\0'; +-# ifdef EBCDIC /* XXX Probably this should be only os390 */ ++# ifdef OS390 + /* Replace all instances of $SYSNAME/foo simply by /foo */ + if (slen > SYSNAME_LEN + strlen(next_token) + && strnEQ(symlink, SYSNAME, SYSNAME_LEN) +@@ -245,7 +245,7 @@ bsd_realpath(const char *path, char resolved[MAXPATHLEN]) + } + remaining_len = my_strlcpy(remaining, symlink, sizeof(remaining)); + } +-# ifdef EBCDIC ++# ifdef OS390 + not_symlink: ; + # endif + } +diff --git a/META.json b/META.json +index ad429a5..d810ba7 100644 +--- a/META.json ++++ b/META.json +@@ -50,6 +50,6 @@ + "url" : "git://perl5.git.perl.org/perl.git" + } + }, +- "version" : "3.73", ++ "version" : "3.86", + "x_serialization_backend" : "JSON::PP version 2.27400_02" + } +diff --git a/META.yml b/META.yml +index c2adfcf..f5e9fe3 100644 +--- a/META.yml ++++ b/META.yml +@@ -26,5 +26,5 @@ resources: + bugtracker: https://rt.perl.org/rt3/ + homepage: http://dev.perl.org/ + repository: git://perl5.git.perl.org/perl.git +-version: '3.73' ++version: '3.86' + x_serialization_backend: 'CPAN::Meta::YAML version 0.018' +diff --git a/Makefile.PL b/Makefile.PL +index 0311708..754acbe 100644 +--- a/Makefile.PL ++++ b/Makefile.PL +@@ -29,10 +29,7 @@ WriteMakefile + 'VERSION_FROM' => 'Cwd.pm', + 'ABSTRACT' => 'Tools for working with directory and file names', + 'AUTHOR' => 'Perl 5 Porters', +- 'DEFINE' => join(" ", +- "-DDOUBLE_SLASHES_SPECIAL=@{[$^O eq q(qnx) || $^O eq q(nto) ? 1 : 0]}", +- ((grep { $_ eq 'PERL_CORE=1' } @ARGV) ? '-DNO_PPPORT_H' : ()), +- ), ++ 'DEFINE' => "-DDOUBLE_SLASHES_SPECIAL=@{[$^O eq q(qnx) || $^O eq q(nto) ? 1 : 0]}", + 'PREREQ_PM' => { + 'Carp' => '0', + 'File::Basename' => '0', +diff --git a/lib/File/Spec.pm b/lib/File/Spec.pm +index e0a49ed..fc10c0f 100644 +--- a/lib/File/Spec.pm ++++ b/lib/File/Spec.pm +@@ -2,7 +2,7 @@ package File::Spec; + + use strict; + +-our $VERSION = '3.84'; ++our $VERSION = '3.88'; + $VERSION =~ tr/_//d; + + my %module = ( +@@ -33,13 +33,13 @@ File::Spec - portably perform operations on file names + + use File::Spec; + +- $x=File::Spec->catfile('a', 'b', 'c'); ++ my $x = File::Spec->catfile('a', 'b', 'c'); + + which returns 'a/b/c' under Unix. Or: + + use File::Spec::Functions; + +- $x = catfile('a', 'b', 'c'); ++ my $x = catfile('a', 'b', 'c'); + + =head1 DESCRIPTION + +diff --git a/lib/File/Spec/AmigaOS.pm b/lib/File/Spec/AmigaOS.pm +index a29617c..3fc3c98 100644 +--- a/lib/File/Spec/AmigaOS.pm ++++ b/lib/File/Spec/AmigaOS.pm +@@ -3,7 +3,7 @@ package File::Spec::AmigaOS; + use strict; + require File::Spec::Unix; + +-our $VERSION = '3.84'; ++our $VERSION = '3.88'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/Cygwin.pm b/lib/File/Spec/Cygwin.pm +index e21c0bb..fb3eaaa 100644 +--- a/lib/File/Spec/Cygwin.pm ++++ b/lib/File/Spec/Cygwin.pm +@@ -3,7 +3,7 @@ package File::Spec::Cygwin; + use strict; + require File::Spec::Unix; + +-our $VERSION = '3.84'; ++our $VERSION = '3.88'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/Epoc.pm b/lib/File/Spec/Epoc.pm +index 2429bb2..9391f3a 100644 +--- a/lib/File/Spec/Epoc.pm ++++ b/lib/File/Spec/Epoc.pm +@@ -2,7 +2,7 @@ package File::Spec::Epoc; + + use strict; + +-our $VERSION = '3.84'; ++our $VERSION = '3.88'; + $VERSION =~ tr/_//d; + + require File::Spec::Unix; +diff --git a/lib/File/Spec/Functions.pm b/lib/File/Spec/Functions.pm +index a09150c..a0d8641 100644 +--- a/lib/File/Spec/Functions.pm ++++ b/lib/File/Spec/Functions.pm +@@ -3,7 +3,7 @@ package File::Spec::Functions; + use File::Spec; + use strict; + +-our $VERSION = '3.84'; ++our $VERSION = '3.88'; + $VERSION =~ tr/_//d; + + require Exporter; +diff --git a/lib/File/Spec/Mac.pm b/lib/File/Spec/Mac.pm +index 369d1f0..5f5cca9 100644 +--- a/lib/File/Spec/Mac.pm ++++ b/lib/File/Spec/Mac.pm +@@ -4,7 +4,7 @@ use strict; + use Cwd (); + require File::Spec::Unix; + +-our $VERSION = '3.84'; ++our $VERSION = '3.88'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/OS2.pm b/lib/File/Spec/OS2.pm +index 604e2e3..eea5328 100644 +--- a/lib/File/Spec/OS2.pm ++++ b/lib/File/Spec/OS2.pm +@@ -4,7 +4,7 @@ use strict; + use Cwd (); + require File::Spec::Unix; + +-our $VERSION = '3.84'; ++our $VERSION = '3.88'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/Unix.pm b/lib/File/Spec/Unix.pm +index 52904b4..2d5af10 100644 +--- a/lib/File/Spec/Unix.pm ++++ b/lib/File/Spec/Unix.pm +@@ -3,7 +3,7 @@ package File::Spec::Unix; + use strict; + use Cwd (); + +-our $VERSION = '3.84'; ++our $VERSION = '3.88'; + $VERSION =~ tr/_//d; + + =head1 NAME +diff --git a/lib/File/Spec/Win32.pm b/lib/File/Spec/Win32.pm +index b05b535..292c2f8 100644 +--- a/lib/File/Spec/Win32.pm ++++ b/lib/File/Spec/Win32.pm +@@ -5,7 +5,7 @@ use strict; + use Cwd (); + require File::Spec::Unix; + +-our $VERSION = '3.84'; ++our $VERSION = '3.88'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/t/cwd_enoent.t b/t/cwd_enoent.t +index 0fe3834..05b30b3 100644 +--- a/t/cwd_enoent.t ++++ b/t/cwd_enoent.t +@@ -28,8 +28,10 @@ foreach my $type (qw(regular perl)) { + + # https://github.com/Perl/perl5/issues/16525 + # https://bugs.dragonflybsd.org/issues/3250 ++ my @vlist = ($Config{osvers} =~ /(\d+)/g); ++ my $osver = sprintf("%d%03d", map { defined() ? $_ : '0' } @vlist[0,1]); + skip "getcwd() doesn't fail on non-existent directories on this platform", 4 +- if $type eq 'regular' && $^O eq 'dragonfly'; ++ if $type eq 'regular' && $^O eq 'dragonfly' && $osver < 6002; + + skip "getcwd() doesn't fail on non-existent directories on this platform", 4 + if $type eq 'regular' && $^O eq 'haiku'; +diff --git a/t/tmpdir.t b/t/tmpdir.t +index 0f03dc5..aeff4fc 100644 +--- a/t/tmpdir.t ++++ b/t/tmpdir.t +@@ -43,7 +43,7 @@ for ('File::Spec', "File::Spec::Win32") { + -d $ENV{TMPDIR} && -w _ + or skip "Can't create usable TMPDIR env var", 1; + my $tmpdir2 = $_->tmpdir; +- isn't $tmpdir2, $tmpdir1, "$_->tmpdir works with changing env"; ++ isnt $tmpdir2, $tmpdir1, "$_->tmpdir works with changing env"; + } + } + +-- +2.40.1 + diff --git a/SOURCES/PathTools-3.89-Upgrade-to-3.91.patch b/SOURCES/PathTools-3.89-Upgrade-to-3.91.patch new file mode 100644 index 0000000..862f8d2 --- /dev/null +++ b/SOURCES/PathTools-3.89-Upgrade-to-3.91.patch @@ -0,0 +1,193 @@ +From 0c5f0ea37e3c4d50f47c531bb32e184fa9c38980 Mon Sep 17 00:00:00 2001 +From: Jitka Plesnikova +Date: Thu, 9 May 2024 15:42:26 +0200 +Subject: [PATCH] Upgrade to 3.91 + +--- + Cwd.pm | 2 +- + Cwd.xs | 4 - + lib/File/Spec.pm | 2 +- + lib/File/Spec/AmigaOS.pm | 2 +- + lib/File/Spec/Cygwin.pm | 2 +- + lib/File/Spec/Epoc.pm | 2 +- + lib/File/Spec/Functions.pm | 4 +- + lib/File/Spec/Mac.pm | 2 +- + lib/File/Spec/OS2.pm | 2 +- + lib/File/Spec/Unix.pm | 2 +- + lib/File/Spec/Win32.pm | 4 +- + t/Spec.t | 196 ++++++++++++++++++++++++++++++++++++- + 12 files changed, 207 insertions(+), 17 deletions(-) + +diff --git a/Cwd.pm b/Cwd.pm +index dbf08a6..90013c9 100644 +--- a/Cwd.pm ++++ b/Cwd.pm +@@ -3,7 +3,7 @@ use strict; + use Exporter; + + +-our $VERSION = '3.89'; ++our $VERSION = '3.90'; + my $xs_version = $VERSION; + $VERSION =~ tr/_//d; + +diff --git a/Cwd.xs b/Cwd.xs +index ca8639d..bca575c 100644 +--- a/Cwd.xs ++++ b/Cwd.xs +@@ -292,7 +292,6 @@ return FALSE + #define getcwd_sv(a) Perl_getcwd_sv(aTHX_ a) + int Perl_getcwd_sv(pTHX_ SV *sv) + { +-#ifndef PERL_MICRO + + SvTAINTED_on(sv); + +@@ -430,9 +429,6 @@ int Perl_getcwd_sv(pTHX_ SV *sv) + } + #endif + +-#else +- return FALSE; +-#endif + } + + #endif +diff --git a/lib/File/Spec.pm b/lib/File/Spec.pm +index fc10c0f..b2349be 100644 +--- a/lib/File/Spec.pm ++++ b/lib/File/Spec.pm +@@ -2,7 +2,7 @@ package File::Spec; + + use strict; + +-our $VERSION = '3.88'; ++our $VERSION = '3.90'; + $VERSION =~ tr/_//d; + + my %module = ( +diff --git a/lib/File/Spec/AmigaOS.pm b/lib/File/Spec/AmigaOS.pm +index 3fc3c98..c500d23 100644 +--- a/lib/File/Spec/AmigaOS.pm ++++ b/lib/File/Spec/AmigaOS.pm +@@ -3,7 +3,7 @@ package File::Spec::AmigaOS; + use strict; + require File::Spec::Unix; + +-our $VERSION = '3.88'; ++our $VERSION = '3.91'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/Cygwin.pm b/lib/File/Spec/Cygwin.pm +index fb3eaaa..ef1c9ec 100644 +--- a/lib/File/Spec/Cygwin.pm ++++ b/lib/File/Spec/Cygwin.pm +@@ -3,7 +3,7 @@ package File::Spec::Cygwin; + use strict; + require File::Spec::Unix; + +-our $VERSION = '3.88'; ++our $VERSION = '3.91'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/Epoc.pm b/lib/File/Spec/Epoc.pm +index 9391f3a..1bc81f6 100644 +--- a/lib/File/Spec/Epoc.pm ++++ b/lib/File/Spec/Epoc.pm +@@ -2,7 +2,7 @@ package File::Spec::Epoc; + + use strict; + +-our $VERSION = '3.88'; ++our $VERSION = '3.91'; + $VERSION =~ tr/_//d; + + require File::Spec::Unix; +diff --git a/lib/File/Spec/Functions.pm b/lib/File/Spec/Functions.pm +index a0d8641..6068506 100644 +--- a/lib/File/Spec/Functions.pm ++++ b/lib/File/Spec/Functions.pm +@@ -3,7 +3,7 @@ package File::Spec::Functions; + use File::Spec; + use strict; + +-our $VERSION = '3.88'; ++our $VERSION = '3.91'; + $VERSION =~ tr/_//d; + + require Exporter; +@@ -72,7 +72,7 @@ File::Spec::Functions - portably perform operations on file names + =head1 SYNOPSIS + + use File::Spec::Functions; +- $x = catfile('a','b'); ++ my $x = catfile('a', 'b'); + + =head1 DESCRIPTION + +diff --git a/lib/File/Spec/Mac.pm b/lib/File/Spec/Mac.pm +index 5f5cca9..08d7fdb 100644 +--- a/lib/File/Spec/Mac.pm ++++ b/lib/File/Spec/Mac.pm +@@ -4,7 +4,7 @@ use strict; + use Cwd (); + require File::Spec::Unix; + +-our $VERSION = '3.88'; ++our $VERSION = '3.91'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/OS2.pm b/lib/File/Spec/OS2.pm +index eea5328..d8533c0 100644 +--- a/lib/File/Spec/OS2.pm ++++ b/lib/File/Spec/OS2.pm +@@ -4,7 +4,7 @@ use strict; + use Cwd (); + require File::Spec::Unix; + +-our $VERSION = '3.88'; ++our $VERSION = '3.91'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +diff --git a/lib/File/Spec/Unix.pm b/lib/File/Spec/Unix.pm +index 2d5af10..dbe36fb 100644 +--- a/lib/File/Spec/Unix.pm ++++ b/lib/File/Spec/Unix.pm +@@ -3,7 +3,7 @@ package File::Spec::Unix; + use strict; + use Cwd (); + +-our $VERSION = '3.88'; ++our $VERSION = '3.91'; + $VERSION =~ tr/_//d; + + =head1 NAME +diff --git a/lib/File/Spec/Win32.pm b/lib/File/Spec/Win32.pm +index 292c2f8..f9225e6 100644 +--- a/lib/File/Spec/Win32.pm ++++ b/lib/File/Spec/Win32.pm +@@ -5,7 +5,7 @@ use strict; + use Cwd (); + require File::Spec::Unix; + +-our $VERSION = '3.88'; ++our $VERSION = '3.91'; + $VERSION =~ tr/_//d; + + our @ISA = qw(File::Spec::Unix); +@@ -249,7 +249,7 @@ Unlike just splitting the directories on the separator, leading empty and + trailing directory entries can be returned, because these are significant + on some OSs. So, + +- File::Spec->splitdir( "/a/b/c" ); ++ File::Spec->splitdir( "/a/b//c/" ); + + Yields: + +-- +2.45.0 + diff --git a/SPECS/perl-PathTools.spec b/SPECS/perl-PathTools.spec new file mode 100644 index 0000000..241b563 --- /dev/null +++ b/SPECS/perl-PathTools.spec @@ -0,0 +1,332 @@ +%global base_version 3.75 + +Name: perl-PathTools +Version: 3.91 +Release: 510%{?dist} +Summary: PathTools Perl module (Cwd, File::Spec) +# Cwd.xs: BSD-3-Clause +# other files: GPL-1.0-or-later OR Artistic-1.0-Perl +License: ( GPL-1.0-or-later OR Artistic-1.0-Perl ) AND BSD-3-Clause +URL: https://metacpan.org/release/PathTools +Source0: https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX/PathTools-%{base_version}.tar.gz +# Disable VMS tests (bug #973713) +Patch0: PathTools-3.74-Disable-VMS-tests.patch +# Unbundled from perl 5.29.10 +Patch1: PathTools-3.75-Upgrade-to-3.78.patch +# Unbundled from perl 5.34.0 +Patch2: PathTools-3.78-Upgrade-to-3.80.patch +# Unbundled from perl 5.35.11 +Patch3: PathTools-3.80-Upgrade-to-3.84.patch +# Unbundled from perl 5.37.11 +Patch4: PathTools-3.84-Upgrade-to-3.89.patch +# Unbundled from perl 5.40.0-RC1 +Patch5: PathTools-3.89-Upgrade-to-3.91.patch +BuildRequires: coreutils +BuildRequires: findutils +BuildRequires: gcc +BuildRequires: make +BuildRequires: perl-devel +BuildRequires: perl-generators +BuildRequires: perl-interpreter +BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76 +# Run-time: +BuildRequires: perl(Carp) +BuildRequires: perl(constant) +BuildRequires: perl(Errno) +BuildRequires: perl(Exporter) +# File::Basename not needed because of removed File::Spec::VMS +BuildRequires: perl(Scalar::Util) +BuildRequires: perl(strict) +# Optional run-time: +BuildRequires: perl(XSLoader) +# Tests: +BuildRequires: perl(Carp::Heavy) +BuildRequires: perl(Config) +BuildRequires: perl(File::Path) +BuildRequires: perl(File::Temp) +BuildRequires: perl(lib) +BuildRequires: perl(Test::More) >= 0.88 +BuildRequires: perl(warnings) +Requires: perl(Carp) +Requires: perl(Errno) +Requires: perl(Scalar::Util) +# XSLoader is optional only because miniperl does not support XS. With perl we +# almost certainly want it. +Recommends: perl(XSLoader) + +%{?perl_default_filter} + +%description +This is the combined distribution for the File::Spec and Cwd modules. + +%package tests +Summary: Tests for %{name} +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: perl-Test-Harness + +%description tests +Tests from %{name}. Execute them +with "%{_libexecdir}/%{name}/test". + +%prep +%autosetup -p1 -n PathTools-%{base_version} + +# Do not distribute File::Spec::VMS as it works on VMS only (bug #973713) +rm lib/File/Spec/VMS.pm +#perl -i -ne 'print $_ unless m{^\Qlib/File/Spec/VMS.pm\E}' MANIFEST + +# Help generators to recognize Perl scripts +for F in t/*.t; do + perl -i -MConfig -ple 'print $Config{startperl} if $. == 1 && !s{\A#!.*perl\b}{$Config{startperl}}' "$F" + chmod +x "$F" +done + +%build +perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1 OPTIMIZE="%{optflags}" +%{make_build} + +%install +%{make_install} +find %{buildroot} -type f -name '*.bs' -size 0 -delete +%{_fixperms} %{buildroot}/* + +# Install tests +mkdir -p %{buildroot}%{_libexecdir}/%{name} +cp -a t %{buildroot}%{_libexecdir}/%{name} +perl -i -pe "s#qr{blib}#qr{%{perl_vendorarch}}#" %{buildroot}%{_libexecdir}/%{name}/t/cwd.t +cat > %{buildroot}%{_libexecdir}/%{name}/test << 'EOF' +#!/bin/bash +set -e +DIR=$(mktemp -d) +pushd "$DIR" +cp -a %{_libexecdir}/%{name}/* ./ +prove -I . -j "$(getconf _NPROCESSORS_ONLN)" +popd +rm -rf "$DIR" +EOF +chmod +x %{buildroot}%{_libexecdir}/%{name}/test + +%check +make test + +%files +%doc Changes +%{perl_vendorarch}/auto/* +%{perl_vendorarch}/Cwd.pm +%{perl_vendorarch}/File/ +%{_mandir}/man3/Cwd* +%{_mandir}/man3/File::Spec* + +%files tests +%{_libexecdir}/%{name} + +%changelog +* Tue Nov 26 2024 MSVSphere Packaging Team - 3.91-510 +- Rebuilt for MSVSphere 10 + +* Thu Jul 18 2024 Jitka Plesnikova - 3.91-510 +- Increase release to favour standalone package + +* Thu Jul 18 2024 Jitka Plesnikova - 3.91-503 +- Upgrade to 3.91 as provided in 5.40.0-RC1 + +* Mon Jun 24 2024 Troy Dawson - 3.89-503 +- Bump release for June 2024 mass rebuild + +* Thu Jan 25 2024 Fedora Release Engineering - 3.89-502 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 3.89-501 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jul 21 2023 Fedora Release Engineering - 3.89-500 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jul 11 2023 Jitka Plesnikova - 3.89-499 +- Increase release to favour standalone package + +* Thu May 18 2023 Jitka Plesnikova - 3.89-1 +- Upgrade to 3.89 as provided in perl-5.37.11 +- Package tests + +* Fri Jan 20 2023 Fedora Release Engineering - 3.84-490 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jul 22 2022 Fedora Release Engineering - 3.84-489 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon May 30 2022 Jitka Plesnikova - 3.84-488 +- Increase release to favour standalone package + +* Thu May 12 2022 Jitka Plesnikova - 3.84-1 +- Upgrade to 3.84 as provided in perl-5.35.11 + +* Fri Jan 21 2022 Fedora Release Engineering - 3.80-479 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jul 22 2021 Fedora Release Engineering - 3.80-478 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu May 06 2021 Jitka Plesnikova - 3.80-477 +- Upgrade to 3.80 as provided in perl-5.34.0 + +* Wed Jan 27 2021 Fedora Release Engineering - 3.78-459 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Nov 05 2020 Petr Pisar - 3.78-458 +- Fix an off-by-one in bsd_realpath() + +* Tue Jul 28 2020 Fedora Release Engineering - 3.78-457 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jun 22 2020 Jitka Plesnikova - 3.78-456 +- Increase release to favour standalone package + +* Thu Feb 06 2020 Tom Stellard - 3.78-441 +- Spec file cleanups: Use make_build and make_install macros +- https://docs.fedoraproject.org/en-US/packaging-guidelines/#_parallel_make +- https://fedoraproject.org/wiki/Perl/Tips#ExtUtils::MakeMake + +* Thu Jan 30 2020 Fedora Release Engineering - 3.78-440 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Jul 26 2019 Fedora Release Engineering - 3.78-439 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu May 30 2019 Jitka Plesnikova - 3.78-438 +- Increase release to favour standalone package + +* Thu Apr 25 2019 Jitka Plesnikova - 3.78-1 +- Upgrade to 3.78 as provided in perl-5.29.10 + +* Fri Feb 01 2019 Fedora Release Engineering - 3.75-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Aug 30 2018 Petr Pisar - 3.75-1 +- 3.75 bump + +* Fri Jul 13 2018 Fedora Release Engineering - 3.74-417 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Jun 27 2018 Jitka Plesnikova - 3.74-416 +- Increase release to favour standalone package + +* Mon Feb 19 2018 Petr Pisar - 3.74-1 +- 3.74 bump + +* Fri Feb 09 2018 Fedora Release Engineering - 3.67-396 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 3.67-395 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 3.67-394 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Jun 03 2017 Jitka Plesnikova - 3.67-393 +- Perl 5.26 rebuild + +* Thu May 11 2017 Petr Pisar - 3.67-1 +- Upgrade to 3.67 as provided in perl-5.25.12 + +* Sat Feb 11 2017 Fedora Release Engineering - 3.63-367 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Aug 03 2016 Jitka Plesnikova - 3.63-366 +- Avoid loading optional modules from default . (CVE-2016-1238) + +* Sat May 14 2016 Jitka Plesnikova - 3.63-365 +- Increase release to favour standalone package + +* Wed May 11 2016 Jitka Plesnikova - 3.63-1 +- 3.63 bump in order to dual-live with perl 5.24 + +* Thu Feb 04 2016 Fedora Release Engineering - 3.62-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Jan 12 2016 Petr Pisar - 3.62-1 +- 3.62 bump + +* Mon Jan 11 2016 Petr Pisar - 3.60-2 +- Fix CVE-2015-8607 (File::Spec::canonpath() loses tain) (bug #1297455) + +* Thu Nov 19 2015 Petr Pisar - 3.60-1 +- 3.60 bump + +* Mon Nov 16 2015 Petr Pisar - 3.59-1 +- 3.59 bump + +* Thu Jun 18 2015 Fedora Release Engineering - 3.56-346 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu Jun 04 2015 Jitka Plesnikova - 3.56-345 +- Increase release to favour standalone package + +* Wed Jun 03 2015 Jitka Plesnikova - 3.56-2 +- Perl 5.22 rebuild + +* Mon Apr 27 2015 Jitka Plesnikova - 3.56-1 +- 3.56 bump in order to dual-live with Perl 5.22 + +* Tue Jan 13 2015 Petr Pisar - 3.47-311 +- Require constant module + +* Wed Sep 03 2014 Jitka Plesnikova - 3.47-310 +- Increase release to favour standalone package + +* Tue Aug 26 2014 Jitka Plesnikova - 3.47-4 +- Perl 5.20 rebuild + +* Sun Aug 17 2014 Fedora Release Engineering - 3.47-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 3.47-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue May 27 2014 Jitka Plesnikova - 3.47-1 +- 3.47 bump + +* Sun Aug 04 2013 Fedora Release Engineering - 3.40-291 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Mon Jul 15 2013 Petr Pisar - 3.40-290 +- Increase release to favour standalone package + +* Fri Jul 12 2013 Petr Pisar - 3.40-4 +- Link minimal build-root packages against libperl.so explicitly + +* Fri Jul 12 2013 Petr Pisar - 3.40-3 +- Disable VMS test (bug #973713) + +* Fri Jun 14 2013 Petr Pisar - 3.40-2 +- Do not distribute File::Spec::VMS (bug #973713) + +* Mon Feb 04 2013 Petr Pisar - 3.40-1 +- 3.40 bump + +* Tue Sep 18 2012 Petr Pisar - 3.39.01-1 +- 3.39_01 bump + +* Wed Aug 15 2012 Petr Pisar - 3.33-8 +- Specify all dependencies + +* Fri Jul 20 2012 Fedora Release Engineering - 3.33-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Jun 06 2012 Petr Pisar - 3.33-6 +- Perl 5.16 rebuild + +* Fri Jan 13 2012 Fedora Release Engineering - 3.33-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Jul 25 2011 Petr Pisar - 3.33-4 +- RPM 4.9 dependency filtering added + +* Mon Jun 20 2011 Marcela Mašláňová - 3.33-3 +- Perl mass rebuild + +* Sun May 29 2011 Ville Skyttä - 3.33-2 +- Own the %%{perl_vendorarch}/File dir. + +* Mon Feb 28 2011 Marcela Mašláňová 3.33-1 +- Specfile autogenerated by cpanspec 1.79.