Import rpm: 7f497f0f16378519e1207dc29430dc60b3d59fe5

This commit is contained in:
James Antill 2023-02-23 13:11:46 -05:00
commit 74b5ea51ac
9 changed files with 1251 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/PathTools-3.62.tar.gz

View File

@ -0,0 +1,203 @@
diff -up PathTools-3.47/t/Spec.t.orig PathTools-3.47/t/Spec.t
--- PathTools-3.47/t/Spec.t.orig 2014-05-23 18:39:28.000000000 +0200
+++ PathTools-3.47/t/Spec.t 2014-05-27 12:32:22.473486887 +0200
@@ -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::$_");
}
@@ -322,190 +322,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('^<test^.new.-.caret^ escapes^>')", '^<test^.new.-.caret^ escapes^>' ],
-
-[ "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('[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' ],

View File

@ -0,0 +1,204 @@
diff --git a/Cwd.pm b/Cwd.pm
index 9b5183e..e8b9f19 100644
--- a/Cwd.pm
+++ b/Cwd.pm
@@ -3,7 +3,7 @@ use strict;
use Exporter;
use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
-$VERSION = '3.62';
+$VERSION = '3.63';
my $xs_version = $VERSION;
$VERSION =~ tr/_//d;
diff --git a/lib/File/Spec.pm b/lib/File/Spec.pm
index 2709c39..32b987e 100644
--- a/lib/File/Spec.pm
+++ b/lib/File/Spec.pm
@@ -3,7 +3,7 @@ package File::Spec;
use strict;
use vars qw(@ISA $VERSION);
-$VERSION = '3.62';
+$VERSION = '3.63';
$VERSION =~ tr/_//d;
my %module = (MacOS => 'Mac',
diff --git a/lib/File/Spec/AmigaOS.pm b/lib/File/Spec/AmigaOS.pm
index e6d6f5f2a..7a5889c 100644
--- a/lib/File/Spec/AmigaOS.pm
+++ b/lib/File/Spec/AmigaOS.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.62';
+$VERSION = '3.64';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
@@ -15,7 +15,8 @@ File::Spec::AmigaOS - File::Spec for AmigaOS
=head1 SYNOPSIS
- require File::Spec::AmigaOS; # Done automatically by File::Spec if needed
+ require File::Spec::AmigaOS; # Done automatically by File::Spec
+ # if needed
=head1 DESCRIPTION
diff --git a/lib/File/Spec/Cygwin.pm b/lib/File/Spec/Cygwin.pm
index 67f056f..2092eb8 100644
--- a/lib/File/Spec/Cygwin.pm
+++ b/lib/File/Spec/Cygwin.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.62';
+$VERSION = '3.63';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
diff --git a/lib/File/Spec/Epoc.pm b/lib/File/Spec/Epoc.pm
index 17e3f54..22f0192 100644
--- a/lib/File/Spec/Epoc.pm
+++ b/lib/File/Spec/Epoc.pm
@@ -3,7 +3,7 @@ package File::Spec::Epoc;
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '3.62';
+$VERSION = '3.63';
$VERSION =~ tr/_//d;
require File::Spec::Unix;
diff --git a/lib/File/Spec/Functions.pm b/lib/File/Spec/Functions.pm
index 470c771..af2c498 100644
--- a/lib/File/Spec/Functions.pm
+++ b/lib/File/Spec/Functions.pm
@@ -5,7 +5,7 @@ use strict;
use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION);
-$VERSION = '3.62';
+$VERSION = '3.63';
$VERSION =~ tr/_//d;
require Exporter;
diff --git a/lib/File/Spec/Mac.pm b/lib/File/Spec/Mac.pm
index 329451f..52c3bfe 100644
--- a/lib/File/Spec/Mac.pm
+++ b/lib/File/Spec/Mac.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.62';
+$VERSION = '3.63';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
diff --git a/lib/File/Spec/OS2.pm b/lib/File/Spec/OS2.pm
index 55e6d33..804ecdb 100644
--- a/lib/File/Spec/OS2.pm
+++ b/lib/File/Spec/OS2.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.62';
+$VERSION = '3.63';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
diff --git a/lib/File/Spec/Unix.pm b/lib/File/Spec/Unix.pm
index 586e9b0..3916a11 100644
--- a/lib/File/Spec/Unix.pm
+++ b/lib/File/Spec/Unix.pm
@@ -3,7 +3,7 @@ package File::Spec::Unix;
use strict;
use vars qw($VERSION);
-$VERSION = '3.62';
+$VERSION = '3.63';
my $xs_version = $VERSION;
$VERSION =~ tr/_//d;
diff --git a/lib/File/Spec/VMS.pm b/lib/File/Spec/VMS.pm
index 600c49f..02cc0b0 100644
--- a/lib/File/Spec/VMS.pm
+++ b/lib/File/Spec/VMS.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.62';
+$VERSION = '3.63';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
@@ -437,15 +437,13 @@ Attempt to convert an absolute file specification to a relative specification.
sub abs2rel {
my $self = shift;
- return vmspath(File::Spec::Unix::abs2rel( $self, @_ ))
- if ((grep m{/}, @_) && !(grep m{(?<!\^)[\[<:]}, @_));
-
my($path,$base) = @_;
+
$base = $self->_cwd() unless defined $base and length $base;
# If there is no device or directory syntax on $base, make sure it
# is treated as a directory.
- $base = VMS::Filespec::vmspath($base) unless $base =~ m{(?<!\^)[\[<:]};
+ $base = vmspath($base) unless $base =~ m{(?<!\^)[\[<:]};
for ($path, $base) { $_ = $self->rel2abs($_) }
@@ -461,7 +459,7 @@ sub abs2rel {
my ($path_volume, $path_directories, $path_file) = $self->splitpath($path);
my ($base_volume, $base_directories, $base_file) = $self->splitpath($base);
- return $path unless lc($path_volume) eq lc($base_volume);
+ return $self->canonpath( $path ) unless lc($path_volume) eq lc($base_volume);
# Now, remove all leading components that are the same
my @pathchunks = $self->splitdir( $path_directories );
diff --git a/lib/File/Spec/Win32.pm b/lib/File/Spec/Win32.pm
index 6df7ee8..1105b67 100644
--- a/lib/File/Spec/Win32.pm
+++ b/lib/File/Spec/Win32.pm
@@ -5,7 +5,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.62';
+$VERSION = '3.63';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
diff --git a/t/abs2rel.t b/t/abs2rel.t
index 5e33ab6..b77a1c2 100644
--- a/t/abs2rel.t
+++ b/t/abs2rel.t
@@ -6,7 +6,7 @@ use Test::More;
use Cwd qw(cwd getcwd abs_path);
use File::Spec();
use File::Temp qw(tempdir);
-use File::Path qw(make_path);
+use File::Path qw(mkpath);
my $startdir = cwd();
my @files = ( 'anyfile', './anyfile', '../first_sub_dir/anyfile', '../second_sub_dir/second_file' );
@@ -25,8 +25,8 @@ sub test_rel2abs {
File::Spec->catdir('first_sub_dir', 'sub_sub_dir'),
'second_sub_dir'
);
- make_path(@subdirs, { mode => 0711 })
- or die "Unable to make_path: $!";
+ mkpath(@subdirs, { mode => 0711 })
+ or die "Unable to mkpath: $!";
open my $OUT2, '>',
File::Spec->catfile('second_sub_dir', 'second_file')

View File

@ -0,0 +1,62 @@
diff -up PathTools/Cwd.pm.cve PathTools/Cwd.pm
--- PathTools/Cwd.pm.cve 2016-03-01 13:33:02.000000000 +0100
+++ PathTools/Cwd.pm 2016-08-02 13:39:39.814316060 +0200
@@ -40,7 +40,10 @@ if ($^O eq 'os2') {
my $use_vms_feature;
BEGIN {
if ($^O eq 'VMS') {
- if (eval { local $SIG{__DIE__}; require VMS::Feature; }) {
+ if (eval { local $SIG{__DIE__};
+ local @INC = @INC;
+ pop @INC if $INC[-1] eq '.';
+ require VMS::Feature; }) {
$use_vms_feature = 1;
}
}
diff -up PathTools/lib/File/Spec/Cygwin.pm.cve PathTools/lib/File/Spec/Cygwin.pm
--- PathTools/lib/File/Spec/Cygwin.pm.cve 2016-03-01 13:33:02.000000000 +0100
+++ PathTools/lib/File/Spec/Cygwin.pm 2016-08-02 13:39:39.814316060 +0200
@@ -137,7 +137,11 @@ sub case_tolerant {
if ($mntopts and ($mntopts =~ /,managed/)) {
return 0;
}
- eval { require Win32API::File; } or return 1;
+ eval {
+ local @INC = @INC;
+ pop @INC if $INC[-1] eq '.';
+ require Win32API::File;
+ } or return 1;
my $osFsType = "\0"x256;
my $osVolName = "\0"x256;
my $ouFsFlags = 0;
diff -up PathTools/lib/File/Spec/VMS.pm.cve PathTools/lib/File/Spec/VMS.pm
--- PathTools/lib/File/Spec/VMS.pm.cve 2016-03-01 13:33:02.000000000 +0100
+++ PathTools/lib/File/Spec/VMS.pm 2016-08-02 13:39:39.814316060 +0200
@@ -39,7 +39,10 @@ via the C<DECC$FILENAME_UNIX_REPORT> CRT
my $use_feature;
BEGIN {
- if (eval { local $SIG{__DIE__}; require VMS::Feature; }) {
+ if (eval { local $SIG{__DIE__};
+ local @INC = @INC;
+ pop @INC if $INC[-1] eq '.';
+ require VMS::Feature; }) {
$use_feature = 1;
}
}
diff -up PathTools/lib/File/Spec/Win32.pm.cve PathTools/lib/File/Spec/Win32.pm
--- PathTools/lib/File/Spec/Win32.pm.cve 2016-03-01 13:33:02.000000000 +0100
+++ PathTools/lib/File/Spec/Win32.pm 2016-08-02 13:39:39.814316060 +0200
@@ -90,7 +90,11 @@ Default: 1
=cut
sub case_tolerant {
- eval { require Win32API::File; } or return 1;
+ eval {
+ local @INC = @INC;
+ pop @INC if $INC[-1] eq '.';
+ require Win32API::File;
+ } or return 1;
my $drive = shift || "C:";
my $osFsType = "\0"x256;
my $osVolName = "\0"x256;

View File

@ -0,0 +1,230 @@
From 27cd91c8d8c0aa03a954097e24d78df08905dc8e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
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ř <ppisar@redhat.com>
---
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('^<test^.new.-.caret^ escapes^>')", $vms_unix_rpt ? '/<test.new.-.caret escapes>' : '^<test^.new.-.caret^ escapes^>' ],
-# 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

View File

@ -0,0 +1,283 @@
From 3c570b93e7ca990b3274219dd828e8fdaac0bf9d Mon Sep 17 00:00:00 2001
From: Jitka Plesnikova <jplesnik@redhat.com>
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

View File

@ -0,0 +1,76 @@
From c8c367581c3333c38d07481e2ea8d81171403c81 Mon Sep 17 00:00:00 2001
From: David Mitchell <davem@iabyn.com>
Date: Mon, 26 Oct 2020 15:11:14 +0000
Subject: [PATCH] PathTools/Cwd.xs: fix off-by-one in bsd_realpath()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
At the heart of this function is a loop which repeatedly finds the next
component in the path, processes it, then chops that component off the
front of the path by shifting the string to the start of the buffer;
i.e. something like:
while (remaining_len) {
s = strchr(remaining, '/')
...
remaining_len -= s - remaining;
memmove(remaining, s, remaining_len + 1);
}
The problem is that the per-iteration decrement to remaining_len doesn't
take account of the '/' character, so each iteration, remaining_len gets
one more byte too big.
It turns out that this is harmless - it just means that more and more
garbage characters after the trailing null byte get copied each time,
but after each copy the path string is still well formed, with a
trailing null in the right place. So just the random garbage after the
null byte is different.
This commit fixes that.
Although really, it would be better to just increment the
start-of-string pointer each time rather than shift the whole string
each time.
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
dist/PathTools/Cwd.xs | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/dist/PathTools/Cwd.xs b/dist/PathTools/Cwd.xs
index 8662400e47..e7ecb3c6c1 100644
--- a/dist/PathTools/Cwd.xs
+++ b/dist/PathTools/Cwd.xs
@@ -119,15 +119,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;
--
2.25.4

191
perl-PathTools.spec Normal file
View File

@ -0,0 +1,191 @@
%global base_version 3.62
Name: perl-PathTools
Version: 3.63
Release: 368%{?dist}
Summary: PathTools Perl module (Cwd, File::Spec)
# Cwd.xs: BSD
# other files: GPL+ or Artistic
## Not in the binary package
# t/lib/Test/Tutorial.pod: (GPL+ or Artistic) and Public Domain
License: (GPL+ or Artistic) and BSD
Group: Development/Libraries
URL: http://search.cpan.org/dist/PathTools/
Source0: http://www.cpan.org/authors/id/R/RJ/RJBS/PathTools-%{base_version}.tar.gz
# Disable VMS test (bug #973713)
Patch0: PathTools-3.47-Disable-VMS-tests.patch
# Unbundled from perl 5.24.0
Patch1: PathTools-3.62-Upgrade-to-3.63.patch
# Avoid loading optional modules from default . (CVE-2016-1238)
Patch2: PathTools-3.63-CVE-2016-1238-avoid-loading-optional-modules-from.patch
BuildRequires: coreutils
BuildRequires: findutils
BuildRequires: gcc
BuildRequires: make
BuildRequires: perl
BuildRequires: perl-devel
BuildRequires: perl-generators
BuildRequires: perl(ExtUtils::MakeMaker)
BuildRequires: sed
# Run-time:
BuildRequires: perl(Carp)
BuildRequires: perl(constant)
BuildRequires: perl(Exporter)
# File::Basename not needed because of removed File::Spec::VMS
BuildRequires: perl(Scalar::Util)
BuildRequires: perl(strict)
BuildRequires: perl(vars)
# 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
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
Requires: perl(Carp)
Requires: perl(Scalar::Util)
%{?perl_default_filter}
%description
This is the combined distribution for the File::Spec and Cwd modules.
%prep
%setup -q -n PathTools-%{base_version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
# Do not distribute File::Spec::VMS as it works on VMS only (bug #973713)
rm lib/File/Spec/VMS.pm
sed -i -e '/^lib\/File\/Spec\/VMS.pm/d' MANIFEST
# Remove bundled modules
rm -rf t/lib
sed -i -e '/t\/lib\//d' MANIFEST
%build
perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS"
make %{?_smp_mflags}
%install
make pure_install DESTDIR=$RPM_BUILD_ROOT
find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} \;
find $RPM_BUILD_ROOT -type f -name '*.bs' -size 0 -exec rm -f {} \;
%{_fixperms} $RPM_BUILD_ROOT/*
%check
make test
%files
%doc Changes README
%{perl_vendorarch}/auto/*
%{perl_vendorarch}/Cwd.pm
%{perl_vendorarch}/File/
%{_mandir}/man3/*
%changelog
* Fri Mar 29 2019 Jitka Plesnikova <jplesnik@redhat.com> - 3.63-368
- Rebuild with enable hardening (bug #1636329)
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.63-367
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Wed Aug 03 2016 Jitka Plesnikova <jplesnik@redhat.com> - 3.63-366
- Avoid loading optional modules from default . (CVE-2016-1238)
* Sat May 14 2016 Jitka Plesnikova <jplesnik@redhat.com> - 3.63-365
- Increase release to favour standalone package
* Wed May 11 2016 Jitka Plesnikova <jplesnik@redhat.com> - 3.63-1
- 3.63 bump in order to dual-live with perl 5.24
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.62-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Tue Jan 12 2016 Petr Pisar <ppisar@redhat.com> - 3.62-1
- 3.62 bump
* Mon Jan 11 2016 Petr Pisar <ppisar@redhat.com> - 3.60-2
- Fix CVE-2015-8607 (File::Spec::canonpath() loses tain) (bug #1297455)
* Thu Nov 19 2015 Petr Pisar <ppisar@redhat.com> - 3.60-1
- 3.60 bump
* Mon Nov 16 2015 Petr Pisar <ppisar@redhat.com> - 3.59-1
- 3.59 bump
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.56-346
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Thu Jun 04 2015 Jitka Plesnikova <jplesnik@redhat.com> - 3.56-345
- Increase release to favour standalone package
* Wed Jun 03 2015 Jitka Plesnikova <jplesnik@redhat.com> - 3.56-2
- Perl 5.22 rebuild
* Mon Apr 27 2015 Jitka Plesnikova <jplesnik@redhat.com> - 3.56-1
- 3.56 bump in order to dual-live with Perl 5.22
* Tue Jan 13 2015 Petr Pisar <ppisar@redhat.com> - 3.47-311
- Require constant module
* Wed Sep 03 2014 Jitka Plesnikova <jplesnik@redhat.com> - 3.47-310
- Increase release to favour standalone package
* Tue Aug 26 2014 Jitka Plesnikova <jplesnik@redhat.com> - 3.47-4
- Perl 5.20 rebuild
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.47-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.47-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Tue May 27 2014 Jitka Plesnikova <jplesnik@redhat.com> - 3.47-1
- 3.47 bump
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.40-291
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Mon Jul 15 2013 Petr Pisar <ppisar@redhat.com> - 3.40-290
- Increase release to favour standalone package
* Fri Jul 12 2013 Petr Pisar <ppisar@redhat.com> - 3.40-4
- Link minimal build-root packages against libperl.so explicitly
* Fri Jul 12 2013 Petr Pisar <ppisar@redhat.com> - 3.40-3
- Disable VMS test (bug #973713)
* Fri Jun 14 2013 Petr Pisar <ppisar@redhat.com> - 3.40-2
- Do not distribute File::Spec::VMS (bug #973713)
* Mon Feb 04 2013 Petr Pisar <ppisar@redhat.com> - 3.40-1
- 3.40 bump
* Tue Sep 18 2012 Petr Pisar <ppisar@redhat.com> - 3.39.01-1
- 3.39_01 bump
* Wed Aug 15 2012 Petr Pisar <ppisar@redhat.com> - 3.33-8
- Specify all dependencies
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.33-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Wed Jun 06 2012 Petr Pisar <ppisar@redhat.com> - 3.33-6
- Perl 5.16 rebuild
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.33-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Mon Jul 25 2011 Petr Pisar <ppisar@redhat.com> - 3.33-4
- RPM 4.9 dependency filtering added
* Mon Jun 20 2011 Marcela Mašláňová <mmaslano@redhat.com> - 3.33-3
- Perl mass rebuild
* Sun May 29 2011 Ville Skyttä <ville.skytta@iki.fi> - 3.33-2
- Own the %%{perl_vendorarch}/File dir.
* Mon Feb 28 2011 Marcela Mašláňová <mmaslano@redhat.com> 3.33-1
- Specfile autogenerated by cpanspec 1.79.

1
sources Normal file
View File

@ -0,0 +1 @@
SHA1 (PathTools-3.62.tar.gz) = 356530987ccfb61779ce038978a614aa64679d72