summaryrefslogtreecommitdiff
path: root/cpan/Module-Build/lib/Module/Build.pm
diff options
context:
space:
mode:
authorDavid Golden <dagolden@cpan.org>2009-11-18 00:52:18 -0500
committerDavid Golden <dagolden@cpan.org>2009-11-18 00:52:18 -0500
commit613f422f899872b39e45f0f48c3285ac4cece8c7 (patch)
tree8a11a9316ba0a7dc5dae3d983ee987ac851a1421 /cpan/Module-Build/lib/Module/Build.pm
parent6821e3836b3437b3deb760f4225a6b3dbe4d7015 (diff)
downloadperl-613f422f899872b39e45f0f48c3285ac4cece8c7.tar.gz
Updated Module::Build to 0.35_08
0.35_08 - Mon Nov 16 22:38:28 EST 2009 Bug fixes: - Multiple tests were failing due to dependency problems. Author dependencies have been largely removed from core 'requires' into optional features. Feature prereq detection and messaging have been expanded and bugs on older Perls have been removed. 0.35_07 - Sat Nov 14 17:14:39 EST 2009 Bug fixes: - Auto-detection of abstract and author fixed for mixed-case POD headers (RT#51117) [David Wheeler] - resume() was not restoring additions to @INC added in Build.PL (RT#50145) [David Golden] - When tarball paths are less than 100 characters, disables 'prefix' mode of Archive::Tar for maximum compatibility (RT#50571) [David Golden] 0.35_06 - Fri Nov 13 14:51:28 EST 2009 Enhancements: - Added experimental inc/ bundling; see Module::Build::Bundling for details. [David Golden and Eric Wilhelm] - Clarified that 'apache' in the license attribute indicates the Apache License 2.0 and added 'apache_1_1' for the older version of the license (RT#50614) [David Golden] Bug fixes: - Merging 'requires' and 'build_requires' in Module::Build::Compat could lead to duplicate PREREQ_PM entries; now the highest version is used for PREREQ_PM. (RT#50948) [David Golden] - Module::Build::Compat will now die with an error if advanced, non-numeric prerequisites are given, as these are not supported by ExtUtils::MakeMaker in PREREQ_PM [David Golden] - Made MYMETA generation non-fatal if fields required for META.yml are missing [David Golden] - Added Pod::Simple to requirements for manpage support; avoids problems if a user has a broken Pod::Man/Pod::Simple. (RT#50081) [David Golden] - Won't die if installed Pod::Readme is broken [David Golden] Other: - Fixed Module::Build::Notes POD [David Golden] - Some commands had become silent by default, so added a few short status messages so users know something actually happened [David Golden] - Cleaned up Changes file formatting [David Golden] - Removed most PERL_CORE customizations from test files due to reorganization of dual-life modules in core (RT#49522) [David Golden] 0.35_05 - Wed Oct 28 17:20:59 EDT 2009 Bug fixes: - Fix test failure in t/actions/installdeps.t when $^X is not the default perl [David Golden] - Work around $VERSION numbers in ActiveState with multiple underscores that prevent Module::Build from installing on Win32 [David Golden] - Fix bug cleaning compatibility Makefile when older ExtUtils::Manifest is installed [David Golden with help from David Cantrell] Other: - Suppressed more warnings from tests [David Golden] - Add provisional support for 'package NAME VERSION' syntax added in Perl 5.11.1 [David Golden] 0.35_04 - Fri Oct 23 11:20:41 EDT 2009 Bug fixes: - Fix test failure if IPC::Cmd isn't installed [David Golden] Other: - Suppressed warning messages from various tests [David Golden] 0.35_03 - Wed Oct 21 21:20:59 EDT 2009 *** API CHANGE *** - The prepare_metadata() method used to take a YAML::Node object as an argument for modification. The method now takes no arguments and just returns a hash reference of metadata. [David Golden] Enhancements - Command line options may be set via the PERL_MB_OPT environment variable (similar to PERL_MM_OPT in ExtUtils::MakeMaker) Bug fixes: - Updated PPM generation to PPM v4 (RT#49600) [Olivier Mengue] - When c_source is specified, the directory scan will include additional, less-common C++ extensions (RT49298) [David Golden] - When module_name is not supplied, no packlist was being written; fixed by guessing module_name from dist_version_from or the directory name (just like ExtUtils::Manifest does without NAME) [David Golden] - Bumped IO::File prereq to fix binmode failures in PPMMaker on Perl prior to 5.8.8 [David Golden] Other: - Replaced use of YAML.pm with YAML::Tiny; Module::Build::YAML is now based on YAML::Tiny as well [David Golden] - Reduced amount of console output under normal operation (use --verbose to see all output) [David Golden] 0.35_02 - Mon Sep 7 22:37:42 EDT 2009 Enhancements: - Added 'needs_compiler' property. Defaults to true if XS or c_source exist. If true, ExtUtils::CBuilder is also added to build_requires. [David Golden] - File::ShareDir automatically added to 'requires' if 'share_dir' is set [David Golden] - Added 'Build installdeps' action to install needed dependencies via a user-configurable command line program. (Defaults to 'cpan'.) [Eric Wilhelm] Bug fixes: - Failure to detect a compiler will now warn during Build.PL and be a fatal error when trying to compile during Build. (RT#48918) [David Golden] - Fixed directory sorting failure in share_dir.t [David Golden] - Property defaults that are data structures were being assigned as references to new objects. Changed so that defaults are cloned instead. (This mostly affects testing, which often creates multiple objects in the same process) [David Golden] - Simplified error message on exit under use_tap_harness [suggested by David Wheeler] - Fixed typemap search to use a dist-level typemap if a typemap is not found in the directory with the *.xs file; (was manifesting as warnings in Perl 5.6 tests) [David Golden] Other: - Replaced guts of new_from_context(). Build.PL is now executed in a separate process before resume() is called. (This is generally only of interest to Module::Build or toolchain developers) (RT#49350) [David Golden, Eric Wilhelm, Ken Williams] - Revised test helper classes to fix potential bugs and add new features to make writing tests simpler and easier. Changes incorporated into t/README.pod and t/sample.t as examples for new testing. [David Golden] 0.35_01 - Mon Aug 31 12:11:10 EDT 2009 Enhancements: - Generates MYMETA.yml during Build.PL (new standard protocol for communicating configuration results between toolchain components) [David Golden] - Added 'share_dir' property to provide File::ShareDir support; set automatically if a directory called 'share' exists [David Golden] Bug fixes: - Fix the t/destinations.t fix. [David Golden, with thanks to Eric Wilhelm] - Fix recursive test files in generated Makefile.PL (RT#49254) [Sawyer X] - Guard against trying :utf8 when :utf8 isn't available - The "test" action now dies when using the 'use_tap_harness' option and tests fail, matching the behavior under Test::Harness. (RT#49080) [initial patch from David Wheeler; revised by David Golden] Other: - Added t/README.pod and t/sample.t to guide developers writing new tests [David Golden, with some code from Eric Wilhelm] - Module::Build::Compat 'passthrough' style has been deprecated. Using 'passthrough' will issue warnings on Makefile.PL generation. See Module::Build::Compat documentation for rationale.
Diffstat (limited to 'cpan/Module-Build/lib/Module/Build.pm')
-rw-r--r--cpan/Module-Build/lib/Module/Build.pm112
1 files changed, 77 insertions, 35 deletions
diff --git a/cpan/Module-Build/lib/Module/Build.pm b/cpan/Module-Build/lib/Module/Build.pm
index be8c1f7079..efae7f9abb 100644
--- a/cpan/Module-Build/lib/Module/Build.pm
+++ b/cpan/Module-Build/lib/Module/Build.pm
@@ -15,7 +15,7 @@ use Module::Build::Base;
use vars qw($VERSION @ISA);
@ISA = qw(Module::Build::Base);
-$VERSION = '0.35';
+$VERSION = '0.35_08';
$VERSION = eval $VERSION;
# Okay, this is the brute-force method of finding out what kind of
@@ -167,24 +167,24 @@ This illustrates initial configuration and the running of three
'actions'. In this case the actions run are 'build' (the default
action), 'test', and 'install'. Other actions defined so far include:
- build manpages
- clean pardist
- code ppd
- config_data ppmdist
- diff prereq_data
- dist prereq_report
- distcheck pure_install
- distclean realclean
- distdir retest
- distmeta skipcheck
- distsign test
- disttest testall
- docs testcover
- fakeinstall testdb
- help testpod
- html testpodcoverage
- install versioninstall
- manifest
+ build manifest
+ clean manpages
+ code pardist
+ config_data ppd
+ diff ppmdist
+ dist prereq_data
+ distcheck prereq_report
+ distclean pure_install
+ distdir realclean
+ distmeta retest
+ distsign skipcheck
+ disttest test
+ docs testall
+ fakeinstall testcover
+ help testdb
+ html testpod
+ install testpodcoverage
+ installdeps versioninstall
You can run the 'help' action for a complete list of actions.
@@ -318,7 +318,7 @@ tarball of the files listed in F<MANIFEST> and compress the tarball using
GZIP compression.
By default, this action will use the C<Archive::Tar> module. However, you can
-force it to use binary "tar" and "gzip" executables by supplying an explicit
+force it to use binary "tar" and "gzip" executables by supplying an explicit
C<tar> (and optional C<gzip>) parameter:
./Build dist --tar C:\path\to\tar.exe --gzip C:\path\to\zip.exe
@@ -355,8 +355,8 @@ F<META.yml> is a file containing various bits of I<metadata> about the
distribution. The metadata includes the distribution name, version,
abstract, prerequisites, license, and various other data about the
distribution. This file is created as F<META.yml> in YAML format.
-It is recommended that the C<YAML> module be installed to create it.
-If the C<YAML> module is not installed, an internal module supplied
+It is recommended that the C<YAML::Tiny> module be installed to create it.
+If the C<YAML::Tiny> module is not installed, an internal module supplied
with Module::Build will be used to write the META.yml file, and this
will most likely be fine.
@@ -445,6 +445,24 @@ This can be a good idea, as it helps prevent multiple versions of a
module from being present on your system, which can be a confusing
situation indeed.
+=item installdeps
+
+[version 0.36]
+
+This action will use the C<cpan_client> parameter as a command to install
+missing prerequisites. You will be prompted whether to install
+optional dependencies.
+
+The C<cpan_client> option defaults to 'cpan' but can be set as an option or in
+F<.modulebuildrc>. It must be a shell command that takes a list of modules to
+install as arguments (e.g. 'cpanp -i' for CPANPLUS). If the program part is a
+relative path (e.g. 'cpan' or 'cpanp'), it will be located relative to the perl
+program that executed Build.PL.
+
+ /opt/perl/5.8.9/bin/perl Build.PL
+ ./Build installdeps --cpan_client 'cpanp -i'
+ # installs to 5.8.9
+
=item manifest
[version 0.05]
@@ -541,7 +559,7 @@ for a bug report.
[version 0.28]
This action is identical to the C<install> action. In the future,
-though, when C<install> starts writing to the file
+though, when C<install> starts writing to the file
F<$(INSTALLARCHLIB)/perllocal.pod>, C<pure_install> won't, and that
will be the only difference between them.
@@ -666,7 +684,7 @@ argument.
[version 0.25]
-This checks all the files described in the C<docs> action and
+This checks all the files described in the C<docs> action and
produces C<Test::Harness>-style output. If you are a module author,
this is useful to run before creating a new release.
@@ -674,7 +692,7 @@ this is useful to run before creating a new release.
[version 0.28]
-This checks the pod coverage of the distribution and
+This checks the pod coverage of the distribution and
produces C<Test::Harness>-style output. If you are a module author,
this is useful to run before creating a new release.
@@ -731,15 +749,20 @@ C<no> or C<no-> (e.g. C<--noverbose> or C<--no-verbose>).
Suppress informative messages on output.
+=item verbose
+
+Display extra information about the Build on output.
+
+=item cpan_client
+
+Sets the C<cpan_client> command for use with the C<installdeps> action.
+See C<installdeps> for more details.
+
=item use_rcfile
Load the F<~/.modulebuildrc> option file. This option can be set to
false to prevent the custom resource file from being loaded.
-=item verbose
-
-Display extra information about the Build on output.
-
=item allow_mb_mismatch
Suppresses the check upon startup that the version of Module::Build
@@ -754,7 +777,6 @@ executed build actions.
=back
-
=head2 Default Options File (F<.modulebuildrc>)
[version 0.28]
@@ -782,15 +804,35 @@ key C<*> (asterisk) denotes any global options that should be applied
to all actions, and the key 'Build_PL' specifies options to be applied
when you invoke C<perl Build.PL>.
- * verbose=1 # global options
- diff flags=-u
- install --install_base /home/ken
- --install_path html=/home/ken/docs/html
+ * verbose=1 # global options
+ diff flags=-u
+ install --install_base /home/ken
+ --install_path html=/home/ken/docs/html
+ installdeps --cpan_client 'cpanp -i'
If you wish to locate your resource file in a different location, you
can set the environment variable C<MODULEBUILDRC> to the complete
absolute path of the file containing your options.
+=head2 Environment variables
+
+=over
+
+=item MODULEBUILDRC
+
+[version 0.28]
+
+Specifies an alternate location for a default options file as described above.
+
+=item PERL_MB_OPT
+
+[version 0.36]
+
+Command line options that are applied to Build.PL or any Build action. The
+string is split as the shell would (e.g. whitespace) and the result is
+prepended to any actual command-line arguments.
+
+=back
=head1 INSTALL PATHS
@@ -1091,7 +1133,7 @@ modify it under the same terms as Perl itself.
=head1 SEE ALSO
perl(1), L<Module::Build::Cookbook>, L<Module::Build::Authoring>,
-L<Module::Build::API>, L<ExtUtils::MakeMaker>, L<YAML>
+L<Module::Build::API>, L<ExtUtils::MakeMaker>, L<YAML::Tiny>
F<META.yml> Specification:
L<http://module-build.sourceforge.net/META-spec-current.html>