Skip Menu |
 

This queue is for tickets about the ExtUtils-MakeMaker CPAN distribution.

Report information
The Basics
Id: 129386
Status: open
Priority: 0/
Queue: ExtUtils-MakeMaker

People
Owner: Nobody in particular
Requestors:
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: (no value)
Fixed in: (no value)



Subject: MM_Cygwin::maybe_command
Download (untitled) / with headers
text/plain 832b
The check mistakenly tries to use the MM_Win32 variant of this function if the command resolves to a path outside the Cygwin installation directory. This does not indicate that the command in question is _not_ a Cygwin command, nor does Cygwin itself have any limitation in this regard. In particular, if you build outside the Cygwin installation (either in your home directory, on a different disk or a network share) the check will fail false negative. This nixes some recently added tests in fixin.t for the shebang rewrite. I will release a patched version of 7.36 on Cygwin with that overload removed from MM_Cygwin, which fixes the test issues. I can't really think of a situation where you'd need to fall back to MM_Win32 these days; if Cygwin doesn't recognize the file as executable, then its Perl won't run it anyway.
Subject: perl-ExtUtils-MakeMaker.src.patch
--- origsrc/ExtUtils-MakeMaker-7.36/lib/ExtUtils/MM_Cygwin.pm 2019-04-28 17:32:31.000000000 +0200 +++ src/ExtUtils-MakeMaker-7.36/lib/ExtUtils/MM_Cygwin.pm 2019-05-01 16:42:58.927633300 +0200 @@ -9,7 +9,7 @@ require ExtUtils::MM_Unix; require ExtUtils::MM_Win32; our @ISA = qw( ExtUtils::MM_Unix ); -our $VERSION = '7.36'; +our $VERSION = '7.36_01'; $VERSION =~ tr/_//d; @@ -100,26 +100,6 @@ sub init_linker { $self->{EXPORT_LIST} ||= ''; } -=item maybe_command - -Determine whether a file is native to Cygwin by checking whether it -resides inside the Cygwin installation (using Windows paths). If so, -use C<ExtUtils::MM_Unix> to determine if it may be a command. -Otherwise use the tests from C<ExtUtils::MM_Win32>. - -=cut - -sub maybe_command { - my ($self, $file) = @_; - - my $cygpath = Cygwin::posix_to_win_path('/', 1); - my $filepath = Cygwin::posix_to_win_path($file, 1); - - return (substr($filepath,0,length($cygpath)) eq $cygpath) - ? $self->SUPER::maybe_command($file) # Unix - : ExtUtils::MM_Win32->maybe_command($file); # Win32 -} - =item dynamic_lib Use the default to produce the *.dll's.
Thanks for the report. Please don't release a version of EUMM.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.