Skip Menu |

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

Report information
The Basics
Id: 448
Status: resolved
Priority: 0/
Queue: ExtUtils-MakeMaker

People
Owner: Nobody in particular
Requestors: burkhard.meier [...] gmx.de
epa98 [...] doc.ic.ac.uk
Cc:
AdminCc:

Bug Information
Severity: Wishlist
Broken in: 5.55_01
Fixed in: (no value)



Subject: MakeMaker busted when perl is in C:\Program Files
On Win32, when Perl is in C:\Program Files MakeMaker can't find itself. This is likely because find_perl is using `` which can't handle a path name with a space in it (how ironic). The propsal is to use system LIST and bypass the shell. But there's likely other problems due to having a space in the path name. It may be necessary to convert it to the short DOS filename (ie. PROGRA~1).
[MSCHWERN - Fri Apr 5 11:04:23 2002]: Show quoted text
> On Win32, when Perl is in C:\Program Files MakeMaker can't find itself. > This is likely because find_perl is using `` which can't handle > a path name with a space in it (how ironic). > > The propsal is to use system LIST and bypass the shell. But there's > likely other problems due to having a space in the path name. > It may be necessary to convert it to the short DOS filename > (ie. PROGRA~1).
This has been partially fixed in the latest snapshot. find_perl() now handles perl with spaces in the filename.
[MSCHWERN - Wed Nov 13 17:10:10 2002]: Show quoted text
> > On Win32, when Perl is in C:\Program Files MakeMaker can't find
> itself.
This problem should be fully fixed in the latest snapshot. Perls with spaces in the name should work properly in all cases. Give the snapshot a shot, please.
[MSCHWERN - Sat Dec 7 20:31:49 2002]: Show quoted text
> [MSCHWERN - Wed Nov 13 17:10:10 2002]:
> > > On Win32, when Perl is in C:\Program Files MakeMaker can't find
> > itself.
> > This problem should be fully fixed in the latest snapshot. Perls with > spaces in the name should work properly in all cases. > > Give the snapshot a shot, please.
Oh, well... the new bottleneck is Test::Harness. Its not safe with perls with spaces in it. So 'make test' will probably not work. Well, try it anyway.
The fix doesn't work on Windows, which defeats the purpose. "C:\foo\bar\bin\perl" works fine from command.com and cmd.exe, but not inside nmake for some reason. `"$program" ...` is also causing trouble. We tried, but I'm going to have to declare this bug as not being worth the trouble.
From: Fabrice.Popineau [...] supelec.fr
[MSCHWERN - Sat Dec 21 21:32:35 2002]: Show quoted text
> The fix doesn't work on Windows, which defeats the purpose. > > "C:\foo\bar\bin\perl" works fine from command.com and cmd.exe, but
not Show quoted text
> inside nmake for some reason. `"$program" ...` is also causing > trouble. > > We tried, but I'm going to have to declare this bug as not being
worth Show quoted text
> the trouble.
It does worth the trouble IMHO. Microsoft guidelines for installing programs explicitely state that programs should be installed under "c:\Program Files". For myself, this "bug" prevented me to redistribute Perl as part of a free software project. I need to stick to ActiveState PerlApp compiler and redistribute scripts compiled as .exe files rather than embbed a full Perl distribution. With the drawback that users can't upgrade their scripts by themselves. On the other hand, I have thought a little bit about the problem and it does not seem easy to fix, because of the syntax involved. Fabrice Popineau
[guest - Sat Jul 5 10:25:57 2003]: Show quoted text
> > We tried, but I'm going to have to declare this bug as not being
> worth
> > the trouble.
> > It does worth the trouble IMHO. Microsoft guidelines for installing > programs explicitely state that programs should be installed > under "c:\Program Files".
Well, I'll be waiting for the patch from Microsoft then. :)
From: Sam
At my workplace (restricted environment; perl under c:\Program Files), we currently work around the problem by post-processing the generating Makefile: 1) Run perl Makefile.PL 2) s///g in Makefile, replacing each "c:\Program Files" by "c:\Progra~1", as returned by Win32::GetShortPathName() 3) Run nmake Makefile Could this be done by ExtUtils::MakeMaker itself? Same as above, we tried just double-quoting the paths containing c:\Program Files, but it did not help.
I claim this is now obsolete since a) duplicate of RT-448; b) hopefully fixed in https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/pull/105 -> 6.99_06.