On Mon, Jul 11, 2011 at 9:00 AM, Reini Urban wrote: > > 2011/7/11 Reini Urban: > > 2011/7/7 Marco Moreno: > >> After doing a little debugging, I discovered why installing > >> ExtUtils::MakeMaker > >> was failing for me. ExtUtils::MM_Cygwin.pm contains: > >> > >> =item maybe_command > >> > >> If our path begins with F</cygdrive/> then we use C<ExtUtils::MM_Win32> > >> to determine if it may be a command. Otherwise we use the tests > >> from C<ExtUtils::MM_Unix>. > >> > >> =cut > >> > >> sub maybe_command { > >> my ($self, $file) = @_; > >> > >> if ($file =~ m{^/cygdrive/}i) { > >> return ExtUtils::MM_Win32->maybe_command($file); > >> } > >> > >> return $self->SUPER::maybe_command($file); > >> } > >> > >> > >> Obviously, if your cygdrive prefix is something else (e.g. '/'), then > >> this will fail. > >> > >> What do you think of this instead: > >> > >> =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 $cygwin_winpath = Cygwin::posix_to_win_path('/', 1); > >> my $file_winpath = Cygwin::posix_to_win_path($file, 1); > >> > >> return ($file_winpath =~ /^${cygwin_winpath}/) > >> ? $self->SUPER::maybe_command($file) > >> : ExtUtils::MM_Win32->maybe_command($file); > >> } > > I improved it a bit, because I don't like userdata end up in regexp. > > 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 > > > >> > >> > >> This passed all the tests and installed ok for me. Does this look > >> ok to you and is it reasonable to assume that native Cygwin > >> commands will always be inside the Cygwin installation directory? > >> If this proposed change is worthy of implementing, what is the best > >> way to do it? rt.cpan.org? > > > > Sorry, I did not come to test this this weekend. > > > > Yes, this uncommon cornercase looks worthy to be fixed. > > Please file a perlbug for this. It should go to rt.perl.org. > > I just added it as https://rt.perl.org/rt3/Ticket/Display.html?id=94532
Reini, This bug from last year just bit me again today. I checked the perlbug you submitted and its status says it was rejected. Do you know why? Should it be resubmitted? Marco Moreno -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple