Compare commits

...

No commits in common. "c8-stream-5.3" and "c10s" have entirely different histories.

14 changed files with 1365 additions and 19 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

10
.gitignore vendored
View File

@ -1 +1,9 @@
SOURCES/PathTools-3.75.tar.gz
/PathTools-3.33.tar.gz
/PathTools-3.39_01.tar.gz
/PathTools-3.40.tar.gz
/PathTools-3.47.tar.gz
/PathTools-3.59.tar.gz
/PathTools-3.60.tar.gz
/PathTools-3.62.tar.gz
/PathTools-3.74.tar.gz
/PathTools-3.75.tar.gz

View File

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

View File

@ -0,0 +1,278 @@
From 2aa3d01bca010903b9cdb848e61ca45f84ce6bcf Mon Sep 17 00:00:00 2001
From: Jitka Plesnikova <jplesnik@redhat.com>
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<http://cygwin.com/ml/cygwin/2007-07/msg00891.html>
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

View File

@ -0,0 +1,371 @@
From 29821ef8025dddc95c122e87afb09d5b3a5ef6ed Mon Sep 17 00:00:00 2001
From: Jitka Plesnikova <jplesnik@redhat.com>
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<fast_abs_path()>.
=head1 AUTHOR
-Originally by the perl5-porters.
-
-Maintained by Ken Williams <KWILLIAMS@cpan.org>
+Maintained by perl5-porters <F<perl5-porters@perl.org>>.
=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 <unistd.h>
#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<ExtUtils::MakeMaker>
=head1 AUTHOR
-Currently maintained by Ken Williams C<< <KWILLIAMS@cpan.org> >>.
+Maintained by perl5-porters <F<perl5-porters@perl.org>>.
The vast majority of the code was written by
Kenneth Albanowski C<< <kjahds@kjahds.com> >>,
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<https://github.com/Perl/perl5/issues>.
=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

View File

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

View File

@ -0,0 +1,194 @@
From e4e41aa0167b13f4d6c06c5037042bfee0f1bd9e Mon Sep 17 00:00:00 2001
From: Jitka Plesnikova <jplesnik@redhat.com>
Date: Tue, 21 Jan 2025 13:22:44 +0100
Subject: [PATCH] Upgrade to 3.91
---
Cwd.pm | 2 +-
Cwd.xs | 4 ----
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 | 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 ++--
11 files changed, 14 insertions(+), 16 deletions(-)
diff --git a/Cwd.pm b/Cwd.pm
index dbf08a6..549aa94 100644
--- a/Cwd.pm
+++ b/Cwd.pm
@@ -3,7 +3,7 @@ use strict;
use Exporter;
-our $VERSION = '3.89';
+our $VERSION = '3.91';
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..7e1d76f 100644
--- a/lib/File/Spec.pm
+++ b/lib/File/Spec.pm
@@ -2,7 +2,9 @@ package File::Spec;
use strict;
-our $VERSION = '3.88';
+# Keep $VERSION consistent in all *.pm files in this distribution, including
+# Cwd.pm.
+our $VERSION = '3.91';
$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.48.1

19
gating.yaml Normal file
View File

@ -0,0 +1,19 @@
# Fedora
--- !Policy
id: fedora_policy
product_versions:
- fedora-*
decision_contexts:
- bodhi_update_push_testing
- bodhi_update_push_stable
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
# RHEL
--- !Policy
product_versions:
- rhel-*
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

View File

@ -1,18 +1,26 @@
%global base_version 3.75
Name: perl-PathTools
Version: 3.78
Release: 439%{?dist}
Version: 3.91
Release: 512%{?dist}
Summary: PathTools Perl module (Cwd, File::Spec)
# Cwd.xs: BSD
# other files: GPL+ or Artistic
License: (GPL+ or Artistic) and BSD
# 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.1
Patch5: PathTools-3.89-Upgrade-to-3.91.patch
BuildRequires: coreutils
BuildRequires: findutils
BuildRequires: gcc
@ -21,7 +29,6 @@ BuildRequires: perl-devel
BuildRequires: perl-generators
BuildRequires: perl-interpreter
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76
BuildRequires: sed
# Run-time:
BuildRequires: perl(Carp)
BuildRequires: perl(constant)
@ -40,7 +47,6 @@ BuildRequires: perl(File::Temp)
BuildRequires: perl(lib)
BuildRequires: perl(Test::More) >= 0.88
BuildRequires: perl(warnings)
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
Requires: perl(Carp)
Requires: perl(Errno)
Requires: perl(Scalar::Util)
@ -53,23 +59,52 @@ Recommends: perl(XSLoader)
%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
%setup -q -n PathTools-%{base_version}
%patch0 -p1
%patch1 -p1
%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
sed -i -e '/^lib\/File\/Spec\/VMS.pm/d' MANIFEST
#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 OPTIMIZE="$RPM_OPT_FLAGS"
make %{?_smp_mflags}
perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1 OPTIMIZE="%{optflags}"
%{make_build}
%install
make pure_install DESTDIR=$RPM_BUILD_ROOT
find $RPM_BUILD_ROOT -type f -name '*.bs' -size 0 -delete
%{_fixperms} $RPM_BUILD_ROOT/*
%{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
@ -79,9 +114,88 @@ make test
%{perl_vendorarch}/auto/*
%{perl_vendorarch}/Cwd.pm
%{perl_vendorarch}/File/
%{_mandir}/man3/*
%{_mandir}/man3/Cwd*
%{_mandir}/man3/File::Spec*
%files tests
%{_libexecdir}/%{name}
%changelog
* Thu Jan 23 2025 Jitka Plesnikova <jplesnik@redhat.com> - 3.91-512
- Resolves: RHEL-75802
- Upgrade to 3.91 as provided in 5.40.1
version of File::Spec was updated
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 3.91-511
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Thu Jul 18 2024 Jitka Plesnikova <jplesnik@redhat.com> - 3.91-510
- Increase release to favour standalone package
* Thu Jul 18 2024 Jitka Plesnikova <jplesnik@redhat.com> - 3.91-503
- Upgrade to 3.91 as provided in 5.40.0-RC1
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 3.89-503
- Bump release for June 2024 mass rebuild
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.89-502
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.89-501
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.89-500
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jul 11 2023 Jitka Plesnikova <jplesnik@redhat.com> - 3.89-499
- Increase release to favour standalone package
* Thu May 18 2023 Jitka Plesnikova <jplesnik@redhat.com> - 3.89-1
- Upgrade to 3.89 as provided in perl-5.37.11
- Package tests
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.84-490
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.84-489
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon May 30 2022 Jitka Plesnikova <jplesnik@redhat.com> - 3.84-488
- Increase release to favour standalone package
* Thu May 12 2022 Jitka Plesnikova <jplesnik@redhat.com> - 3.84-1
- Upgrade to 3.84 as provided in perl-5.35.11
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.80-479
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.80-478
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu May 06 2021 Jitka Plesnikova <jplesnik@redhat.com> - 3.80-477
- Upgrade to 3.80 as provided in perl-5.34.0
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.78-459
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Thu Nov 05 2020 Petr Pisar <ppisar@redhat.com> - 3.78-458
- Fix an off-by-one in bsd_realpath()
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.78-457
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jun 22 2020 Jitka Plesnikova <jplesnik@redhat.com> - 3.78-456
- Increase release to favour standalone package
* Thu Feb 06 2020 Tom Stellard <tstellar@redhat.com> - 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 <releng@fedoraproject.org> - 3.78-440
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.78-439
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

5
plans/sanity.fmf Normal file
View File

@ -0,0 +1,5 @@
summary: Sanity tests
discover:
how: fmf
execute:
how: tmt

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (PathTools-3.75.tar.gz) = bab592a64df391a50b70717cd5fa042ca395e83790dbc447abd72ef81f0e7caf7b8ce1158102d77d470765c572e6773cd907e4884532350bd2f15da667b9a993

11
tests/upstream-tests.fmf Normal file
View File

@ -0,0 +1,11 @@
summary: Upstream tests
component: perl-PathTools
require: perl-PathTools-tests
test: /usr/libexec/perl-PathTools/test
enabled: true
tag:
- rhel-buildroot
adjust:
- enabled: false
when: distro < rhel-10 or distro < centos-stream-10
continue: false