Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

t/27inline_maker.t fails on Windows (Inline-C-0.62) #20

Closed
sisyphus opened this issue Jul 29, 2014 · 6 comments
Closed

t/27inline_maker.t fails on Windows (Inline-C-0.62) #20

sisyphus opened this issue Jul 29, 2014 · 6 comments

Comments

@sisyphus
Copy link
Collaborator

Currently, this test script outputs a large amount of bewildering garbage on Windows - as can be seen by viewing any of the Windows cpan-testers FAIL reports.

The culprit for most of it seems to be the white space in the assignment (in t/27inline_maker.t):

my $src_dir = File::Spec->catdir($base_dir, 'src dir');

Changing that to a sane assignment such as:

my $src_dir = File::Spec->catdir($base_dir, 'src_dir');

fixes most of the problems with that test script. All tests except test 7 then pass without any noise.
Test 7 still fails with:

Failed test 'make install'
at t/27inline_maker.t line 51.
Can't open file C:\sisyphusion\Inline-C-0.62_Inline_27inline_maker.4256\instdir\lib\perl5\MSWin32-x86-multi-thread\auto\Math\Simple.packlist: Permission denied at C:/MinGW/perl512/lib/ExtUtils/Install.pm line 855
Files found in blib\arch: installing files in blib\lib into architecture dependent library tree
Installing C:\sisyphusion\Inline-C-0.62_Inline_27inline_maker.4256\instdir\lib\perl5\MSWin32-x86-multi-thread\auto\Math\Simple.packlist
Installing C:\sisyphusion\Inline-C-0.62_Inline_27inline_maker.4256\instdir\lib\perl5\MSWin32-x86-multi-thread\auto\Math\Simple\Simple.bs
Installing C:\sisyphusion\Inline-C-0.62_Inline_27inline_maker.4256\instdir\lib\perl5\MSWin32-x86-multi-thread\auto\Math\Simple\Simple.dll
Installing C:\sisyphusion\Inline-C-0.62_Inline_27inline_maker.4256\instdir\lib\perl5\MSWin32-x86-multi-thread\Math\Simple.pm
dmake.EXE: Error code 141, while making 'pure_site_install'

Coming after that is the warning:

cannot remove directory for C:\sisyphusion\Inline-C-0.62_Inline_27inline_maker.
4256\src_dir: Permission denied at t/27inline_maker.t line 43

I think the rmtree() failure is the source of the test 7 failure ... but I haven't yet got a handle on precisely what's going on, or what needs to be done wrt it.

Is it ok to remove the whitespace (as per the alteration given above) ? ... or does that then defeat some purpose ?
If I get "the go-ahead" on that change, I'll then try to sort out the problem with rmtree().

Cheers,
Rob

@mohawk2
Copy link
Collaborator

mohawk2 commented Jul 29, 2014

I'd like to leave the space in, as it's deliberate. I'm in the middle of working on ExtUtils::MakeMaker itself to make it work with spaces in the path (including the dreaded "Program Files", of course).

In order to have the tests not fail for now, how about if we just make 27 on Win32 be either TODO on the specific tests, or skip the whole test?

@sisyphus
Copy link
Collaborator Author

Just pushed a "skip all" version to git.
It's only the first and last test in the loop that fail (2-3 and 6-7) ... so we could probably turn it into a TODO script if you want.

@wphillipmoore
Copy link

I'm having the exact same problem building Inline-C-0.66 on RHEL5 and RHEL6 for all of 5.14 through 5.20. The problem is that ExtUtils::Install can't handle the space in the paths yet. While you may very well be working on that, the default version of that code in the perl5 cores can't install this version. You get errors like this:

Can't open file /var/tmp/perl5-Inline-C-0.66-build001-build/x86-64.rhel.6/5.20/source/Inline-C-0.66/_Inline_27inline_maker.24558/src: Is a directory at /efs/dist/perl5/core/5.20.1-build001/.exec/x86-64.rhel.6/lib/perl5/ExtUtils/Install.pm line 841.

For now, I'm patching this test locally to drop the spaces. Shouldn't you publish a working Extutils::MakeMaker are friends that handle the spaces first, and THEN publish the tests with the spaces, including a dependency in the required version of the appropriate build tools?

@mohawk2
Copy link
Collaborator

mohawk2 commented Nov 26, 2014

@wphillipmoore, which EUMM are you using? 7.0+ handles spaces. Please:

  • tell us your version numbers for Inline::C and EUMM
  • give precise steps to reproduce any problem you are claiming exists

@wphillipmoore
Copy link

I'm building Inline-C 0.66 (haven't tried with 0.67 yet, but those tests
are basically the same). It looks like you defined the dependency
correctly too, since runtime->requires includes EU::MM 7.00. I'll have to
figure out why I didn't end up getting 7.00 installed. 5.20 has 6.98, and
it still fails the tests.

I take back what I said then -- if the dependency is defined correctly,
then it's a problem with my build environment not satisfying it.

On Wed, Nov 26, 2014 at 6:25 PM, mohawk2 notifications@github.com wrote:

@wphillipmoore https://github.com/wphillipmoore, which EUMM are you
using? 7.0+ handles spaces. Please:

  • tell us your version numbers for Inline::C and EUMM
  • give precise steps to reproduce any problem you are claiming exists


Reply to this email directly or view it on GitHub
#20 (comment)
.

@mohawk2
Copy link
Collaborator

mohawk2 commented Dec 24, 2014

The skip_all was a wrong action. The whole point of making perl stuff including Inline::C work in places-with-spaces is to enable the poor Windows user whose temp dir is in such a place, who'd like to use Perl and install CPAN modules. Surprised you guys hate Windows users so much.

Commit e247419 is intended to make t/27 work on Windows. Please report problems on this page - closing in meantime.

@mohawk2 mohawk2 closed this as completed Dec 24, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants