The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.22 - 2004-01-10

  • On Unixish platforms, the syntax "FOO=BAR /bin/baz arg arg" now works when present in $Config{ld}. This solves a problem on Mac OS X 10.3. [Reported by Adam Foxson]
  • The have_c_compiler() now also tests whether the linker seems to work too.
  • Fixed a problem with creating the distribution tarball in which permissions would usually be all read-only. We now use our own file-copying routines rather than those in ExtUtils::Manifest, because those do some annoying extra permissions-setting stuff for no apparent reason. It makes me happy that this was a very very easy patch to make. [Reported by Thomas Klausner]
  • The compile_c() method now includes $Config{cccdlflags} in its command invocation. It's usually empty, but not always, so we didn't notice for a while. [Richard Clamp]
  • On some platforms it's common to have a $Config{make} defined, but no 'make' utility actually available. We now detect this and skip some 'make' compatibility tests. [Randy Sims]
  • Fixed a spurious testing failure on non-Unix platforms that happened because we accidentally call localize_file_path() on empty strings in the test suite. [Spotted by Randy Sims on Windows]
  • Made the 'name', 'abstract', 'author', and 'version' properties required when building a PPD file. [Spotted by Randy Sims, Dave Rolsky, & Glenn Linderman]
  • When building a 'traditional' Makefile.PL with Module::Build::Compat, we now use 'VERSION_FROM' when possible, rather than always using 'VERSION'. This way the Makefile.PL doesn't have to get modified every release.
  • Made some fixups to the 'PPM' info-file, improving compatibility with ActiveState's PPM tools. [Randy Sims, Glenn Linderman]
  • The 'dist_author' property can now accept multiple authors, see the docs for more info. [Randy Sims]
  • If the user doesn't have YAML.pm installed during ACTION_dist, we now create a minimal YAML.pm anyway, without any dependency information.
  • The 'distribution_type' field is no longer created in META.yml files, in accordance with the finding made at the London CLPAN meeting that it's essentially meaningless and ill-defined.
  • The 'dist' action now accepts an optional 'tar' parameter to use a system utility for building the tarball, and a 'gzip' parameter for compressing it. If these are used, Archive::Tar won't be invoked. This was added because Archive::Tar is producing some very non-cross-platform tarballs that many tar utilities can't handle.
  • During testing, if YAML.pm isn't installed, then we won't try making a tarball either, since this would invoke YAML to create the META.yml file.
  • Fixed a problem with chmod() being called incorrectly on MacOS (i.e. MacPerl, not Mac OS X). [Spotted by Paul Sanford Toney]
  • Fixed a problem with the --config flag not being treated properly (essentially ignored) on the command line for 'perl Build.PL' or 'Build <action>'. [Spotted by Jakub Bogusz]
  • Added a new config() method to get at the Build object's notion of the %Config hash.
  • Test::Harness is starting to contend for the Most Crotchety Module Award. Work around a few of its nits when setting harness switches. [Spotted by Diab Jerius]
  • Now the Build script will die() if we're run from the wrong directory, rather than trying to chdir() to what it thinks is the right directory and do its work there. See https://rt.cpan.org/Ticket/Display.html?id=4039 . [Chris Dolan]
  • Changed the manpage separator on OS/2 to '.'. [Ilya Zakharevich]
  • On OS/2, disable C compilation, since apparently it isn't working there. [Reported by Ilya Zakharevich]
  • Inserted a comment into auto-generated Makefile.PLs saying it was auto-generated. [Randy Sims]
  • Fixed some annoying behavior in generated passthrough Makefile.PLs when the user chose not to install Module::Build, or if installation failed. [Reported by Ilya Zakharevich and Richard Clamp]
  • Moved the documentation for 'codebase' to the section where it's relevant. [Randy Sims, Glenn Linderman]
  • Fixed a have_c_compiler() failure on some platforms, we now define a boot_compilet() function (since we're compiling a library, not an executable). [Randy Sims]
  • Added a recipe to the Module::Build::Cookbook describing how to maintain compatibility with older versions of CPAN.pm [Jim Cromie]
  • Removed caveat about "looking for alternatives" in how hashes are specified on the command line, since an alternative has been found.
  • Previously most warnings about optional prerequisites looked like they were actually error messages about required prerequisites. This has been corrected. [Reported again by Sagar Shah]
  • Added support for building XS (and C in general) stuff on AIX. This was done by a small reorganization of prelink_c() method from Windows.pm to Build.pm, and it is only invoked for the platforms that need it invoked. AIX also massages some very naughty bits (MakeMaker macro variables) in $Config{lddlflags} that should never have been put there, but alas, they're there, so we find & resolve them.
  • Added OS/2 ($^O = 'os2') to the list of Unix-like platforms. This basically means that most platform-specific operations will be done in a Unix-like manner.
  • Pass-through Makefiles will now die() when they're given a PREFIX parameter, and suggest using 'destdir' or 'install_base' instead. Previously they just ignored the parameter and tried to install to the default location, which is clearly not what the user wanted.
  • Updated my email address in the documentation to a more recent variant.
  • Add NetBSD to the list of Unix-like systems. [Adrian Bunk]
  • Add SVR5 to the list of Unix-like systems. [Rafael Garcia-Suarez]
  • We now use Pod::Parser to find the ABSTRACT and AUTHOR when it's available on the system. [initial patch by Randy Sims]
  • Fixed a little scalar/list buglet in a documentation example.

Modules

Build and install Perl modules
Default methods for Module::Build
Compatibility with ExtUtils::MakeMaker
Examples of Module::Build Usage
Perl Package Manager file creation
Builder class for Amiga platforms
Stub class for unknown platforms
Builder class for EBCDIC platforms
Builder class for MPEiX platforms
Builder class for MacOS platforms
Builder class for RiscOS platforms
Builder class for Unix platforms
Builder class for VMS platforms
Builder class for VOS platforms
Builder class for Windows platforms
Builder class for AIX platform
Builder class for Cygwin platform
Builder class for Mac OS X platform
Builder class for OS/2 platform

Provides

in lib/Module/Build/Platform/Windows.pm
in lib/Module/Build/Platform/Windows.pm
in lib/Module/Build/Platform/Windows.pm
in lib/Module/Build/PodParser.pm