Skip to content

Commit 1793561

Browse files
committed
Update ExtUtils-MakeMaker to CPAN version 7.72
[DELTA] 7.72 Fri 14 Mar 10:15:56 GMT 2025 No changes since v7.71_08 7.71_08 Sat 8 Mar 23:39:43 GMT 2025 Core fixes: - Fixed split_command with multi-line oneliner Win32 fixes: - Reverted a change from v7.36 to fix RT#144085 - Win32 Liblist stop false positives on multi-LIB (RT#53676) Test fixes: - Added Test::Utils::write_file - test oneliner with multi-line QA fixes: - use GHA for all Strawberry, cut down AppVeyor - CI parallel build & test on Strawberry - CI parallel test on MSVC build (nmake no parallel capability) - Add test for PM_FILTER 7.71_07 Wed 5 Mar 21:32:41 GMT 2025 Core fixes: - Liblist work with Config.libpth supporting paths with spaces Win32 fixes: - Win32 Liblist test for system library Test fixes: - Added test of XS loading other XS, using C symbols within 7.71_06 Mon 3 Mar 16:40:57 GMT 2025 BSD fixes: - RT#117800 affecting BSD make fixed - distmeta and co fixed when using make -j QA fixes: - Added Windows MSVC-built Perl CI - Added Windows Strawberry Perl CI - Added FreeBSD CI 7.71_05 Fri 28 Feb 16:53:16 GMT 2025 Enhancements: - Reinstated %Recognized_Att_Keys Win32 fixes: - GNU Make supports spaces in deps on Win32 as elsewhere Test fixes: - Various improvements to MakeMaker::Test::Setup::XS QA fixes: - Added disttest checks to CI 7.71_04 Mon 24 Feb 15:15:59 GMT 2025 Doc fixes: - Typo fixed in MM_Unix Test fixes: - execute bit removed from two .t files QA fixes: - removed Travis and non-working macos-11 CI config 7.71_03 Wed 19 Feb 01:11:31 GMT 2025 VMS fixes: - Avoid uninitialized value in MM_VMS::_fixin_replace_shebang - Take care with '.' in init_dirscan on VMS 7.71_02 Fri 22 Nov 18:37:30 GMT 2024 Core Fixes: - maybe_command() now handles an undefined or empty argument Macosx fixes: - rpath requires a minimum of Darwin 9 - Fix rpath issue on MacOSX, it only accepts a single path Doc fixes: - typos were squashed Removals: - Removed support for NeXT - Removed support for GNU DLD 7.71_01 Mon 24 Jun 15:08:55 BST 2024 Core fixes: - Set META status as "unstable" for -TRIAL releases Test fixes: - Add DISTVNAME to tests
1 parent dbe3741 commit 1793561

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+607
-311
lines changed

MANIFEST

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1110,6 +1110,7 @@ cpan/ExtUtils-MakeMaker/t/prereq.t See if MakeMaker works
11101110
cpan/ExtUtils-MakeMaker/t/prereq_print.t See if PREREQ_PRINT works
11111111
cpan/ExtUtils-MakeMaker/t/problems.t How MakeMaker reacts to build problems
11121112
cpan/ExtUtils-MakeMaker/t/prompt.t See if E::MM::prompt() works
1113+
cpan/ExtUtils-MakeMaker/t/rec_att_keys.t
11131114
cpan/ExtUtils-MakeMaker/t/recurs.t See if recursive builds work
11141115
cpan/ExtUtils-MakeMaker/t/revision.t See if $Revision is correct
11151116
cpan/ExtUtils-MakeMaker/t/several_authors.t See if multiple AUTHORs work

Porting/Maintainers.pl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ package Maintainers;
495495
},
496496

497497
'ExtUtils::MakeMaker' => {
498-
'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.70.tar.gz',
498+
'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.72.tar.gz',
499499
'SYNCINFO' => 'yorton on Sun Mar 26 16:20:23 2023',
500500
'FILES' => q[cpan/ExtUtils-MakeMaker],
501501
'EXCLUDED' => [

cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ require Exporter;
77
our @ISA = qw(Exporter);
88
our @EXPORT = qw(cp rm_f rm_rf mv cat eqtime mkpath touch test_f test_d chmod
99
dos2unix);
10-
our $VERSION = '7.70';
10+
our $VERSION = '7.72';
1111
$VERSION =~ tr/_//d;
1212

1313
my $Is_VMS = $^O eq 'VMS';

cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ our @ISA = qw(Exporter);
1010

1111
our @EXPORT = qw(test_harness pod2man perllocal_install uninstall
1212
warn_if_old_packlist test_s cp_nonempty);
13-
our $VERSION = '7.70';
13+
our $VERSION = '7.72';
1414
$VERSION =~ tr/_//d;
1515

1616
my $Is_VMS = $^O eq 'VMS';

cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package ExtUtils::Liblist;
33
use strict;
44
use warnings;
55

6-
our $VERSION = '7.70';
6+
our $VERSION = '7.72';
77
$VERSION =~ tr/_//d;
88

99
use File::Spec;

cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm

Lines changed: 46 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use 5.006;
1111

1212
use strict;
1313
use warnings;
14-
our $VERSION = '7.70';
14+
our $VERSION = '7.72';
1515
$VERSION =~ tr/_//d;
1616

1717
use ExtUtils::MakeMaker::Config;
@@ -20,9 +20,29 @@ use File::Basename;
2020
use File::Spec;
2121

2222
sub ext {
23-
if ( $^O eq 'VMS' ) { return &_vms_ext; }
24-
elsif ( $^O eq 'MSWin32' ) { return &_win32_ext; }
25-
else { return &_unix_os2_ext; }
23+
if ( $^O eq 'VMS' ) { goto &_vms_ext; }
24+
elsif ( $^O eq 'MSWin32' ) { goto &_win32_ext; }
25+
else { goto &_unix_os2_ext; }
26+
}
27+
28+
sub _space_dirs_split {
29+
my ($libpth) = @_;
30+
return if !length $libpth;
31+
my (@chunks, @ret);
32+
push @chunks, [$1,$2] while $libpth =~ /(\S+)(\s*)/g;
33+
CHUNK: while (@chunks) {
34+
my ($c, $ind) = (shift(@chunks), 0);
35+
if (-d $c->[0]) { push @ret, $c->[0]; next CHUNK; }
36+
my $sofar = join '', @$c;
37+
while ($ind < @chunks) {
38+
my ($this_word, $this_space) = @{ $chunks[$ind] };
39+
$sofar .= $this_word;
40+
if (-d $sofar) { push @ret, $sofar; next CHUNK; }
41+
$sofar .= $this_space;
42+
$ind++;
43+
}
44+
}
45+
@ret;
2646
}
2747

2848
sub _unix_os2_ext {
@@ -51,20 +71,20 @@ sub _unix_os2_ext {
5171

5272
require Text::ParseWords;
5373

54-
my ( @searchpath ); # from "-L/path" entries in $potential_libs
55-
my ( @libpath ) = Text::ParseWords::shellwords( $Config{'libpth'} || '' );
74+
my @searchpath; # from "-L/path" entries in $potential_libs
75+
my @libpath = _space_dirs_split($Config{libpth} || '');
5676
my ( @ldloadlibs, @bsloadlibs, @extralibs, @ld_run_path, %ld_run_path_seen );
5777
my ( @libs, %libs_seen );
5878
my ( $fullname, @fullname );
5979
my ( $pwd ) = cwd(); # from Cwd.pm
6080
my ( $found ) = 0;
61-
if ($Config{gccversion}) {
62-
chomp(my @incpath = grep s/^ //, grep { /^#include </ .. /^End of search / } `$Config{cc} -E -v - </dev/null 2>&1 >/dev/null`);
63-
unshift @libpath, map { s{/include[^/]*}{/lib}; $_ } @incpath
64-
}
65-
@libpath = grep -d, @libpath;
81+
if ($Config{gccversion}) {
82+
chomp(my @incpath = grep s/^ //, grep { /^#include </ .. /^End of search / } `$Config{cc} -E -v - </dev/null 2>&1 >/dev/null`);
83+
unshift @libpath, map { s{/include[^/]*}{/lib}; $_ } @incpath
84+
}
85+
@libpath = grep -d, @libpath;
6686

67-
if ( $^O eq 'darwin' or $^O eq 'next' ) {
87+
if ($^O eq 'darwin') {
6888
# 'escape' Mach-O ld -framework and -F flags, so they aren't dropped later on
6989
$potential_libs =~ s/(^|\s)(-(?:weak_|reexport_|lazy_)?framework)\s+(\S+)/$1-Wl,$2 -Wl,$3/g;
7090
$potential_libs =~ s/(^|\s)(-F)\s*(\S+)/$1-Wl,$2 -Wl,$3/g;
@@ -164,8 +184,7 @@ sub _unix_os2_ext {
164184
} @fullname
165185
)[0];
166186
}
167-
elsif ( -f ( $fullname = "$thispth/lib$thislib.$so" )
168-
&& ( ( $Config{'dlsrc'} ne "dl_dld.xs" ) || ( $thislib eq "m" ) ) )
187+
elsif ( -f ( $fullname = "$thispth/lib$thislib.$so" ) )
169188
{
170189
}
171190
elsif (-f ( $fullname = "$thispth/lib${thislib}_s$Config_libext" )
@@ -233,42 +252,18 @@ sub _unix_os2_ext {
233252

234253
# Do not add it into the list if it is already linked in
235254
# with the main perl executable.
236-
# We have to special-case the NeXT, because math and ndbm
237-
# are both in libsys_s
238-
unless (
239-
$in_perl
240-
|| ( $Config{'osname'} eq 'next'
241-
&& ( $thislib eq 'm' || $thislib eq 'ndbm' ) )
242-
)
243-
{
244-
push( @extralibs, "-l$custom_name$thislib" );
245-
}
255+
push( @extralibs, "-l$custom_name$thislib" )
256+
unless $in_perl;
246257

247-
# We might be able to load this archive file dynamically
248-
if ( ( $Config{'dlsrc'} =~ /dl_next/ && $Config{'osvers'} lt '4_0' )
249-
|| ( $Config{'dlsrc'} =~ /dl_dld/ ) )
250-
{
258+
if ( $is_dyna ) {
251259

252-
# We push -l$thislib instead of $fullname because
253-
# it avoids hardwiring a fixed path into the .bs file.
254-
# Mkbootstrap will automatically add dl_findfile() to
255-
# the .bs file if it sees a name in the -l format.
256-
# USE THIS, when dl_findfile() is fixed:
257-
# push(@bsloadlibs, "-l$thislib");
258-
# OLD USE WAS while checking results against old_extliblist
259-
push( @bsloadlibs, "$fullname" );
260+
# For SunOS4, do not add in this shared library if
261+
# it is already linked in the main perl executable
262+
push( @ldloadlibs, "-l$custom_name$thislib" )
263+
unless ( $in_perl and $^O eq 'sunos' );
260264
}
261265
else {
262-
if ( $is_dyna ) {
263-
264-
# For SunOS4, do not add in this shared library if
265-
# it is already linked in the main perl executable
266-
push( @ldloadlibs, "-l$custom_name$thislib" )
267-
unless ( $in_perl and $^O eq 'sunos' );
268-
}
269-
else {
270-
push( @ldloadlibs, "-l$custom_name$thislib" );
271-
}
266+
push( @ldloadlibs, "-l$custom_name$thislib" );
272267
}
273268
last; # found one here so don't bother looking further
274269
}
@@ -378,19 +373,9 @@ sub _win32_ext {
378373

379374
sub _win32_make_lib_search_list {
380375
my ( $potential_libs, $verbose ) = @_;
381-
382-
# If Config.pm defines a set of default libs, we always
383-
# tack them on to the user-supplied list, unless the user
384-
# specified :nodefault
385-
my $libs = $Config{'perllibs'};
386-
$potential_libs = join( ' ', $potential_libs, $libs ) if $libs and $potential_libs !~ /:nodefault/i;
387376
_debug( "Potential libraries are '$potential_libs':\n", $verbose );
388-
389377
$potential_libs =~ s,\\,/,g; # normalize to forward slashes
390-
391-
my @list = Text::ParseWords::quotewords( '\s+', 0, $potential_libs );
392-
393-
return @list;
378+
Text::ParseWords::quotewords( '\s+', 0, $potential_libs );
394379
}
395380

396381
sub _win32_default_search_paths {
@@ -399,11 +384,12 @@ sub _win32_default_search_paths {
399384
my $libpth = $Config{'libpth'} || '';
400385
$libpth =~ s,\\,/,g; # normalize to forward slashes
401386

402-
my @libpath = Text::ParseWords::quotewords( '\s+', 0, $libpth );
387+
my @libpath = _space_dirs_split($libpth);
403388
push @libpath, "$Config{installarchlib}/CORE"; # add "$Config{installarchlib}/CORE" to default search path
404389

405390
push @libpath, split /;/, $ENV{LIB} if $VC and $ENV{LIB};
406391
push @libpath, split /;/, $ENV{LIBRARY_PATH} if $GC and $ENV{LIBRARY_PATH};
392+
push @libpath, "$ENV{SYSTEMROOT}\\system32" if $ENV{SYSTEMROOT};
407393

408394
return @libpath;
409395
}
@@ -460,8 +446,8 @@ sub _win32_try_attach_extension {
460446
}
461447

462448
sub _win32_lib_extensions {
463-
my @extensions;
464-
push @extensions, $Config{'lib_ext'} if $Config{'lib_ext'};
449+
my @extensions = grep $_, @Config{qw(lib_ext)};
450+
push @extensions, map ".$_", grep $_, @Config{qw(dlext so)};
465451
push @extensions, '.dll.a' if grep { m!^\.a$! } @extensions;
466452
push @extensions, '.lib' unless grep { m!^\.lib$! } @extensions;
467453
return \@extensions;

cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use strict;
44
use warnings;
55
use ExtUtils::MakeMaker::Config;
66

7-
our $VERSION = '7.70';
7+
our $VERSION = '7.72';
88
$VERSION =~ tr/_//d;
99

1010
require ExtUtils::Liblist;

cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package ExtUtils::MM_AIX;
22

33
use strict;
44
use warnings;
5-
our $VERSION = '7.70';
5+
our $VERSION = '7.72';
66
$VERSION =~ tr/_//d;
77

88
use ExtUtils::MakeMaker::Config;

cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package ExtUtils::MM_Any;
22

33
use strict;
44
use warnings;
5-
our $VERSION = '7.70';
5+
our $VERSION = '7.72';
66
$VERSION =~ tr/_//d;
77

88
use Carp;
@@ -225,7 +225,7 @@ sub is_make_type {
225225
if $type eq 'gmake' and $minus_v =~ /GNU make/i;
226226
return $maketype2true{$type} = 1
227227
if $type eq 'bsdmake'
228-
and $minus_v =~ /^usage: make \[-BeikNnqrstWwX\]/im;
228+
and $minus_v =~ /^usage:.*make\s*\[-B/im;
229229
$maketype2true{$type} = 0; # it wasn't whatever you asked
230230
}
231231

@@ -287,7 +287,8 @@ the args. Collectively they will process all the arguments. Each
287287
individual line in @cmds will not be longer than the
288288
$self->max_exec_len being careful to take into account macro expansion.
289289
290-
$cmd should include any switches and repeated initial arguments.
290+
$cmd should include any switches and repeated initial arguments. If it
291+
has newlines, they should be already escaped.
291292
292293
If no @args are given, no @cmds will be returned.
293294
@@ -334,7 +335,7 @@ sub split_command {
334335
}
335336
chop $arg_str;
336337

337-
push @cmds, $self->escape_newlines("$cmd \n$arg_str");
338+
push @cmds, $cmd . $self->escape_newlines(" \n$arg_str");
338339
} while @args;
339340

340341
return @cmds;
@@ -520,7 +521,7 @@ bareword. For example:
520521
# Assign the value of the $(VERSION_FROM) make macro to $vf.
521522
$oneliner = $MM->oneliner('$vf = "$(VERSION_FROM)"');
522523
523-
Its currently very simple and may be expanded sometime in the figure
524+
It's currently very simple, and may be expanded sometime in the future
524525
to include more flexible code and switches.
525526
526527
@@ -1302,7 +1303,8 @@ sub metafile_data {
13021303
$meta_merge ||= {};
13031304

13041305
my $version = _normalize_version($self->{VERSION});
1305-
my $release_status = ($version =~ /_/) ? 'unstable' : 'stable';
1306+
my $unstable = $version =~ /_/ || $self->{DISTVNAME} =~ /-TRIAL\d*$/;
1307+
my $release_status = $unstable ? 'unstable' : 'stable';
13061308
my %meta = (
13071309
# required
13081310
abstract => $self->{ABSTRACT} || 'unknown',
@@ -2431,13 +2433,12 @@ sub init_others {
24312433
$self->{LIBS} = $self->_fix_libs($self->{LIBS});
24322434

24332435
# Compute EXTRALIBS, BSLOADLIBS and LDLOADLIBS from $self->{LIBS}
2434-
foreach my $libs ( @{$self->{LIBS}} ){
2436+
foreach my $libs ( @{$self->{LIBS}} ) {
24352437
$libs =~ s/^\s*(.*\S)\s*$/$1/; # remove leading and trailing whitespace
2436-
my(@libs) = $self->extliblist($libs);
2437-
if ($libs[0] or $libs[1] or $libs[2]){
2438+
my @libs = $self->extliblist($libs);
2439+
if (grep $_, @libs[0..2]) {
24382440
# LD_RUN_PATH now computed by ExtUtils::Liblist
2439-
($self->{EXTRALIBS}, $self->{BSLOADLIBS},
2440-
$self->{LDLOADLIBS}, $self->{LD_RUN_PATH}) = @libs;
2441+
@$self{qw(EXTRALIBS BSLOADLIBS LDLOADLIBS LD_RUN_PATH)} = @libs;
24412442
last;
24422443
}
24432444
}
@@ -2498,6 +2499,10 @@ sub tools_other {
24982499
my($self) = shift;
24992500
my @m;
25002501

2502+
my $is_nmake = $self->is_make_type('nmake');
2503+
push @m, <<'EOF' if $is_nmake;
2504+
EUMM_NMAKE_HASH = ^# # to get hash character into strings - yes, horrible
2505+
EOF
25012506
# We set PM_FILTER as late as possible so it can see all the earlier
25022507
# on macro-order sensitive makes such as nmake.
25032508
for my $tool (qw{ SHELL CHMOD CP MV NOOP NOECHO RM_F RM_RF TEST_F TOUCH
@@ -2514,8 +2519,14 @@ sub tools_other {
25142519
CP_NONEMPTY
25152520
} )
25162521
{
2517-
next unless defined $self->{$tool};
2518-
push @m, "$tool = $self->{$tool}\n";
2522+
next unless defined(my $value = $self->{$tool});
2523+
# https://learn.microsoft.com/en-us/cpp/build/reference/contents-of-a-makefile?view=msvc-170#special-characters-in-a-makefile
2524+
if ($is_nmake) {
2525+
$value =~ s/#/\$(EUMM_NMAKE_HASH)/g
2526+
} else {
2527+
$value =~ s/#/\\#/g
2528+
}
2529+
push @m, "$tool = $value\n";
25192530
}
25202531

25212532
return join "", @m;

cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ require ExtUtils::MM_Any;
2727
require ExtUtils::MM_Unix;
2828

2929
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
30-
our $VERSION = '7.70';
30+
our $VERSION = '7.72';
3131
$VERSION =~ tr/_//d;
3232

3333

0 commit comments

Comments
 (0)