cpan Module-Build 0.19

latest releases: 0.42_35, 0.4234, 0.42_33...
20 years ago
  • Added support for the 'install_path' parameter, which allows custom
    specification of where things should be installed. This is a major
    improvement to Module::Build's functionality.

  • Added the 'install_base' parameter. Provides an easy way to
    install to local or alternative directory trees.

  • We now install scripts by default to $Config{installsitebin}
    instead of $Config{installscript}. Neither is a great choice, but
    the former is likely to be [analogous to] /usr/local/bin, and the
    latter is likely to be [something like] /usr/bin . If/when there's
    a $Config{installsitescript}, we'll start using that automatically.

  • Fixed a problem on Win32 in which C and XS files wouldn't be
    compiled properly, and the user would see an error about 'Can't
    locate object method "format_compiler_cmd"'.
    (http://rt.cpan.org/Ticket/Display.html?id=2391)

  • We now use the correct perl interpreter (via
    Module::Build->find_perl_interpreter) in pass-through makefiles.

  • The t/compat.t test now uses $Config{make} instead of just 'make'
    to test makefile compatibility. This fixes some failures on Win32.
    We also skip this test entirely if no make utility is available.

  • Alternative distribution layouts are now supported via the
    'pm_files', 'pod_files', 'xs_files', 'PL_files', and 'script_files'
    parameters to new(). This should help people transition from
    MakeMaker, and might even help us write an automatic transition
    tool.

  • Added tests to t/runthrough.t that check to see installation is
    happening correctly.

  • Added experimental code to build a .ppd file, in support of
    ActiveState's "Perl Package Manager". [original patch by Dave
    Rolsky]

  • For authors who use Module::Signature to sign their distributions,
    we now create the SIGNATURE file right in the distribution
    directory, rather than creating it in the top-level directory and
    copying it into place. This solves problems related to having
    files get out of date with respect to their signatures.

  • We now don't depend on Module::Info to scan for packages during the
    'dist' action anymore, because it's way too aggressive about
    loading other modules that you may not want loaded. We now just
    (ick, yuck) scan the .pm files with a regular expression to find
    "package Foo::Bar;" statements.

  • Silenced some annoying copyright/logo output from Microsoft 'nmake'
    during Makefile compatibility testing. [Randy W. Sims]

  • Command-line arguments may now either be specified using the syntax
    '--foo foovalue' as well as the traditional syntax 'foo=foovalue'.
    The former is often more convenient for shell tab-completion when
    the value is a filename (as in 'Build test --test_files t/basic.t').

  • Command-line arguments may now include non-named parameters, which
    make some actions more natural. For instance, the 'diff' action
    may now be invoked as 'Build diff -u' rather than as
    'Build diff flags=-u'.

  • Pass-through Makefile.PLs now convert unknown Makefile.PL
    parameters to lower-case and hand them to Build.PL, rather than
    ignoring them. This means we only have to account for the
    differences in the interface, not the entire interface, in
    translating parameters.

  • We now issue a warning & don't proceed if asked to make a distdir
    and there's no MANIFEST or it's empty.

  • Moved INSTALL to INSTALL.txt to increase compatibility with various
    odd versions of 'make' during 'make install' on case-insensitive
    filesystems (like nmake on Win32, often). Only affects the
    Makefile compatibility layer. [reported by Andrew Savige]

  • Module::Build->known_actions() now works as a class method.

  • Pass-through makefiles now list each action individually rather
    than using a ".DEFAULT" catch-all. This improves compatibility
    with 'nmake' on Win32, and probably some other less common 'make'
    dialects. [Andrew Savige]

  • We're now more aggressive about testing the pass-through makefiles,
    e.g. making sure they can run 'all' and 'test' targets, and making
    sure the Makefile itself actually exists.

  • Fixed a problem with check_installed_status() when installed
    version contains non-numeric characters like underscores.

  • Fixed a problem with a bareword 'File::Spec' in one of the test
    scripts that caused it not to compile under 5.8.0 (but is fine
    under 5.6).

  • Fixed a problem with the 'destdir' installation parameter on
    platforms that have volume identifiers in path names (like "C:" on
    Win32). The identifier is now stripped from installation
    directories before prepending the destdir path. The destdir path
    may still have a volume identifier on it.

  • Added an 'add_to_cleanup' parameter to new() that calls
    add_to_cleanup() immediately for the given files.

  • The distribution directory (e.g. Sample-Module-0.13/ ) will now be
    deleted during the 'clean' or 'realclean' actions.

  • During testing of modules, blib/lib and blib/arch are now added as
    absolute paths, not relative. This helps tests that load the
    modules at runtime and may change the current working directory
    (like Module::Build itself does during testing).

  • The $Config{cc} entry on some people's systems is something like
    'ccache gcc', so we now split that string using split_like_shell().
    [Richard Clamp]

  • Added documentation for 'extra_linker_flags' parameter, and added a
    corresponding 'extra_compiler_flags' parameter. [original patch by
    Richard Clamp]

  • The pass-through Makefile created by Module::Build::Compat now
    supports MakeMaker options like POLLUTE=1 and INC. We also just
    warn & skip when we see any unknown MM parameters, rather than
    dying. [Dave Rolsky]

  • Fixed an error about how @INC and $ENV{PERL5LIB} interact during
    the testing of M::B itself. [jk billy2000@fastmail.fm]

  • The pass-through Makefile doesn't include 'recommended' M::B
    dependencies in the Makefile anymore, since they're not strictly
    necessary. In particular, this makes installing M::B itself
    easier.

  • A new 'create_makefile_pl' parameter lets you use
    Module::Build::Compat during the 'distdir' (or 'dist') action to
    automatically create a Makefile.PL for compatibility with
    ExtUtils::MakeMaker. The parameter's value should be one of the
    styles named in the Module::Build::Compat documentation.

  • When compiling C code, we now respect 'pollute' and 'inc'
    parameters. (XXX - needs docs) [Dave Rolsky]

  • Made the creation of the "install map" more generic. (XXX - needs
    documentation)

  • Fixed a problem in which add_to_cleanup() didn't note cleanup files
    unless create_build_script() had been called already. [Dave Rolsky]

  • During 'Build dist', we no longer have to load each .pm file (via
    Module::Info) to determine the $VERSION numbers inside. Instead,
    we call our internal version_from_file() method, which is the same
    thing MakeMaker and PAUSE and search.cpan.org do. Also fixes a
    failure when Module::Info is installed in a nonstandard directory.
    [reported by Teun Burgers]

  • Fixed some failing test code on Windows - open files can't be
    deleted. [Andrew Savige]

  • The Cygwin platform is now treated as a flavor of Unix rather than
    a flavor of Windows. [chocolateboy]

  • We're now more aggressive about adding temporary C compilation
    files (*.c, *.bs) to the cleanup list. [Dave Rolsky]

  • When constructing the list in META.yml of packages provided by this
    distribution, we now use the same rules as the PAUSE scanner does
    when a single .pm file contains multiple VERSIONs. [Andreas Koenig]

  • check_installed_status() now works as both a class method and an
    object method (and is documented so). [Spotted by Dave Rolsky]

Don't miss a new Module-Build release

NewReleases is sending notifications on new releases.