Subject: | C compilation support should be explicity labelled for dependencies |
When you install Module::Build it checks for ExtUtils::CBuilder among
other modules. If CBuilder is installed then Module::Build configures
itself with C support. If CBuilder isn't there then you get a version
of Module::Build that doesn't support modules with C code.
This causes problems when trying to install modules automatically using
a package manager that follows dependencies, for example 'perl -MCPAN -e
shell'. You might try to 'install Data::Bind', for example, and that
pulls down Module::Build as it should, but unless CBuilder happens to be
there as well, you'll get a Module::Build that doesn't support C code
and the final installation will fail.
I don't know if there is a way for Data::Bind to specify in its
dependencies that not only does it require Module::Build, it requires a
Module::Build capable of building C code. In any case, the CPAN shell
doesn't realize this.
I don't know the right way to fix this: perhaps you could add a dummy
package Module::Build::CSupport which Data::Bind and similar modules
could explicitly require; then there would need to be some way to say
that Module::Build::CSupport depends on ExtUtils::CBuilder and is
installed by building the normal Module::Build package.
I think some fix is needed, otherwise the CPAN shell ends up being
broken for any package that uses Module::Build and includes XS code.
% perl -v
This is perl, v5.8.7 built for cygwin-thread-multi-64int
(with 1 registered patch, see perl -V for more detail)
Copyright 1987-2005, Larry Wall
Perl may be copied only under the terms of either the Artistic License
or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'. If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.