X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=1.9 required=5.0 tests=AWL,BAYES_20,DKIM_SIGNED,DKIM_VALID,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org MIME-Version: 1.0 Date: Thu, 7 Jul 2011 14:37:08 -0400 Message-ID: Subject: Perl's ExtUtils::MakeMaker fails and proposed fix From: Marco Moreno To: cygwin AT cygwin DOT com Content-Type: text/plain; charset=ISO-8859-1 X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Reini, 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 then we use C to determine if it may be a command. Otherwise we use the tests from C. =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 to determine if it may be a command. Otherwise use the tests from C. =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); } 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? 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