Skip Menu |

This queue is for tickets about the Module-Build CPAN distribution.

Report information
The Basics
Id: 8728
Status: resolved
Priority: 0/
Queue: Module-Build

People
Owner: Nobody in particular
Requestors: corion [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: (no value)
Fixed in: (no value)



Subject: Module::Build does not build on Win32 due to ExtUtils::ParseXS prerequisite
In addition of cpansmoke / CPANPLUS trying to install the optional ExtUtils::ParseXS (and failing if no C compiler is available), the tests in Module::Build also do seem to require ExtUtils::ParseXS: C:\.cpan\5.8.5\build\Module-Build-0.2605>perl Build.PL Checking whether your kit is complete... Looks good * Optional prerequisite ExtUtils::ParseXS isn't installed ERRORS/WARNINGS FOUND IN PREREQUISITES. You may wish to install the versions of the modules indicated above before proceeding with this installation. Feature 'YAML_support' enabled. Deleting Build Removed previous script 'Build' Creating new 'Build' script for 'Module-Build' version '0.2605' C:\.cpan\5.8.5\build\Module-Build-0.2605>perl -w Build test Writing config notes to blib\lib\Module\Build\ConfigData.pm t\basic.........ok t\compat........ok t\ext...........ok t\extend........ok t\files.........ok t\install.......ok t\manifypods....ok t\notes.........ok t\pod_parser....ok t\runthrough....ok t\signature.....skipped all skipped: Skipping unless $ENV{TEST_SIGNATURE} is true t\versions......ok t\xs............ok 6/12Can't locate loadable object for module XSTest in @INC (@INC contains: C:\.cp an\5.8.5\build\Module-Build-0.2605\t\XSTest\blib\lib C:\.cpan\5.8.5\build\Module-Build-0.2605\t\XSTe st\blib\arch C:\.cpan\5.8.5\build\Module-Build-0.2605\blib\lib C:\.cpan\5.8.5\build\Module-Build-0.2 605\blib\arch C:\.cpan\5.8.5\build\Module-Build-0.2605\lib C:\perl\5.8.5\lib C:\perl\site\5.8.5\lib C:\.cpan\5.8.5\build\Module-Build-0.2605 c:/perl/5.8.5/lib c:/perl/site/5.8.5/lib . c:/perl/5.8.5/li b c:/perl/site/5.8.5/lib .) at test.pl line 11 Compilation failed in require at test.pl line 11. BEGIN failed--compilation aborted at test.pl line 11. # Test 7 got: "Failed 1/1 test scripts, 0.00% okay. 3/3 subtests failed, 0.00% okay.\n" (t\xs.t at l ine 44) t\xs............NOK 7# Expected: "" # t\xs.t line 44 is: ok $@, ''; t\xs............FAILED test 7 Failed 1/12 tests, 91.67% okay (less 2 skipped tests: 9 okay, 75.00%) Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------------- t\xs.t 12 1 8.33% 7 1 test and 2 subtests skipped. Failed 1/13 test scripts, 92.31% okay. 1/312 subtests failed, 99.68% okay. The whole install process (using the already installed Module::Build 0.2605) does nowhere mention ExtUtils::ParseXS as mandatory, but cpanplus resp. cpansmoke seem to think it's mandatory. If ExtUtils::ParseXS is mandatory, then I call that a very bad design choice, as it seems to rely on the availablility of a C compiler (plus toolsuite), which will rule out using Module::Build on systems without such, like Windows in its default configuration. If the prerequisite was an oversight, consider this as a heads up. Have fun, -max
Date: Fri, 3 Dec 2004 19:15:52 -0600
From: "Ken Williams" <ken [...] mathforum.org>
To: bug-Module-Build [...] rt.cpan.org
Subject: Re: [cpan #8728] Module::Build does not build on Win32 due to ExtUtils::ParseXS prerequisite
RT-Send-Cc:
Hi Max, If you look closely, the error during testing isn't due to ExtUtils::ParseXS being missing. It's due to a failure to build the sample C/XS test module, "XSTest". ExtUtils::ParseXS is indeed an optional prerequisite, and the test failure is because of some bona fide bug or another in trying to function *without* ExtUtils::ParseXS. In your case, it seems to have found a C compiler (or else it would have skipped that test), but it can't get it to work properly. -Ken On Dec 3, 2004, at 8:50 AM, via RT wrote: Show quoted text
> > This message about Module-Build was sent to you by CORION > <CORION@cpan.org> via rt.cpan.org > > Full context and any attached attachments can be found at: > <URL: https://rt.cpan.org/Ticket/Display.html?id=8728 > > > In addition of cpansmoke / CPANPLUS trying to install the optional > ExtUtils::ParseXS (and failing if no C compiler is available), the > tests in Module::Build also do seem to require ExtUtils::ParseXS: > > C:\.cpan\5.8.5\build\Module-Build-0.2605>perl Build.PL > Checking whether your kit is complete... > Looks good > * Optional prerequisite ExtUtils::ParseXS isn't installed > ERRORS/WARNINGS FOUND IN PREREQUISITES. You may wish to install the > versions > of the modules indicated above before proceeding with this > installation. > > Feature 'YAML_support' enabled. > > Deleting Build > Removed previous script 'Build' > Creating new 'Build' script for 'Module-Build' version '0.2605' > > C:\.cpan\5.8.5\build\Module-Build-0.2605>perl -w Build test > Writing config notes to blib\lib\Module\Build\ConfigData.pm > t\basic.........ok > t\compat........ok > t\ext...........ok > t\extend........ok > t\files.........ok > t\install.......ok > t\manifypods....ok > t\notes.........ok > t\pod_parser....ok > t\runthrough....ok > t\signature.....skipped > all skipped: Skipping unless $ENV{TEST_SIGNATURE} is true > t\versions......ok > t\xs............ok 6/12Can't locate loadable object for module XSTest > in @INC (@INC contains: C:\.cp > an\5.8.5\build\Module-Build-0.2605\t\XSTest\blib\lib > C:\.cpan\5.8.5\build\Module-Build-0.2605\t\XSTe > st\blib\arch C:\.cpan\5.8.5\build\Module-Build-0.2605\blib\lib > C:\.cpan\5.8.5\build\Module-Build-0.2 > 605\blib\arch C:\.cpan\5.8.5\build\Module-Build-0.2605\lib > C:\perl\5.8.5\lib C:\perl\site\5.8.5\lib > C:\.cpan\5.8.5\build\Module-Build-0.2605 c:/perl/5.8.5/lib > c:/perl/site/5.8.5/lib . c:/perl/5.8.5/li > b c:/perl/site/5.8.5/lib .) at test.pl line 11 > Compilation failed in require at test.pl line 11. > BEGIN failed--compilation aborted at test.pl line 11. > # Test 7 got: "Failed 1/1 test scripts, 0.00% okay. 3/3 subtests > failed, 0.00% okay.\n" (t\xs.t at l > ine 44) > t\xs............NOK 7# Expected: "" > # t\xs.t line 44 is: ok $@, ''; > t\xs............FAILED test 7 > Failed 1/12 tests, 91.67% okay (less 2 skipped tests: 9 okay, > 75.00%) > Failed Test Stat Wstat Total Fail Failed List of Failed > ----------------------------------------------------------------------- > -------- > t\xs.t 12 1 8.33% 7 > 1 test and 2 subtests skipped. > Failed 1/13 test scripts, 92.31% okay. 1/312 subtests failed, 99.68% > okay. > > The whole install process (using the already installed Module::Build > 0.2605) does nowhere mention ExtUtils::ParseXS as mandatory, but > cpanplus resp. cpansmoke seem to think it's mandatory. > > If ExtUtils::ParseXS is mandatory, then I call that a very bad design > choice, as it seems to rely on the availablility of a C compiler (plus > toolsuite), which will rule out using Module::Build on systems without > such, like Windows in its default configuration. > > If the prerequisite was an oversight, consider this as a heads up. > > Have fun, > -max
Show quoted text
> If you look closely, the error during testing isn't due to > ExtUtils::ParseXS being missing. It's due to a failure to build the > sample C/XS test module, "XSTest". ExtUtils::ParseXS is indeed an > optional prerequisite, and the test failure is because of some bona > fide bug or another in trying to function *without* ExtUtils::ParseXS. > > In your case, it seems to have found a C compiler (or else it would > have skipped that test), but it can't get it to work properly.
Ah, yes. cl.exe is in the path, but the INCLUDE and LIBrary environment variables haven't been set up. So that test then fails, that explains it. The test should maybe better check whether the C<link> worked instead of generating the failure afterwards, but I don't know if the Module::Build framework supports that - the test shouldn't proceed if one of the previous build steps didn't fatally fail but still failed, I think. Have fun, -max
[CORION - Sat Dec 4 16:10:45 2004]: Show quoted text
> The test should maybe better check whether the C<link> worked instead of > generating the failure afterwards, but I don't know if the Module::Build > framework supports that - the test shouldn't proceed if one of the > previous build steps didn't fatally fail but still failed, I think.
An update: for the next major release of Module::Build, we'll require ExtUtils::CBuilder for people who want to build & install XS modules. For people who don't need/want to build XS modules, or for people who don't have the capability to, it's not required. Among other things, what this means is that in Module::Build we'll have a much better idea of whether the user can actually compile & link C code to perl modules, and we won't need the guesswork. -Ken