Perl5-Alien / Alien-Base

Base classes for Alien:: modules (deprecated, see Alien-Build)
Other
35 stars 19 forks source link

use / instead of \ on relocated paths on windows #139

Closed plicease closed 8 years ago

plicease commented 8 years ago

This will fix errors like this:

http://www.cpantesters.org/cpan/report/8fd11466-6bf6-1014-a76b-fd2118e9470d

plicease commented 8 years ago

The earlier travis failure is unrelated to this PR but including a fix for it.

mohawk2 commented 8 years ago

Aye.

jberger commented 8 years ago

I'm going to abstain as I don't follow what's going on here

plicease commented 8 years ago

@jberger it is pretty simple. \ is a problem character for a lot of reasons on Windows, but is the default path separator. / is fine for most tools.

mohawk2 commented 8 years ago

I'm having second thoughts here a bit: \ is a valid filesystem character in a Unix environment. Isn't the real solution to use correct quoting? (I know that the list form of eg exec on Windows is a bit of a nightmare, but this should not be beyond the wit of man)

plicease commented 8 years ago

@mohawk2 this is already what we do in Alien::Base::ModuleBuild and we only do it on MSWin32 (including this patch). It's made the windows builds as reliable as they have been IMHO.

plicease commented 8 years ago

Here are the relevant tickets: #64 #68

The problem is that quoting correctly for any one shell is tricky for windows. Compound that with the fact that cmd.exe, command.com and PowerShell all have different, incompatible and (at least in the case of cmd.exe and command.com) undocumented quoting rules it really becomes untenable to support them all correctly.

mohawk2 commented 8 years ago

Fair enough. Aye!