Subject: | MM_Cygwin::maybe_command |
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.