Mailinglist Archive: opensuse-commit (1903 mails)

< Previous Next >
commit perl-Module-Build for openSUSE:Factory
Hello community,

here is the log from the commit of package perl-Module-Build for
openSUSE:Factory checked in at 2019-04-18 13:55:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Module-Build (Old)
and /work/SRC/openSUSE:Factory/.perl-Module-Build.new.5536 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Module-Build"

Thu Apr 18 13:55:23 2019 rev:19 rq:694713 version:0.422900

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Module-Build/perl-Module-Build.changes
2017-06-07 09:52:26.160013407 +0200
+++
/work/SRC/openSUSE:Factory/.perl-Module-Build.new.5536/perl-Module-Build.changes
2019-04-18 13:55:25.575935837 +0200
@@ -1,0 +2,25 @@
+Tue Apr 16 05:14:36 UTC 2019 - Stephan Kulow <coolo@xxxxxxxx>
+
+- updated to 0.4229
+ see /usr/share/doc/packages/perl-Module-Build/Changes
+
+ 0.4229 - Tue Apr 16 00:49:45 CEST 2019
+ - Released 0.42_28 without changes
+
+ 0.42_28 - Thu Apr 19 16:34:32 CEST 2018
+
+ - Replace "MOTIVATIONS" section with "COMPARISON" [Dan Brook]
+
+ - Update configure, build, test prereqs [Karen Etheridge]
+
+ 0.4227 - Wed Dec 13 11:17:51 CET 2017
+
+ - Released 0.42_26 without changes
+
+ 0.42_26 - Wed Dec 13 10:52:39 CET 2017
+
+ - Improve pureperl-only support (#119914) [Shoichi Kaji]
+
+ - Improve the documentation of Module::Build::Compat and dynamic_config
[Dan Brook]
+
+-------------------------------------------------------------------

Old:
----
Module-Build-0.4224.tar.gz

New:
----
Module-Build-0.4229.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Module-Build.spec ++++++
--- /var/tmp/diff_new_pack.uuNnyL/_old 2019-04-18 13:55:26.331936082 +0200
+++ /var/tmp/diff_new_pack.uuNnyL/_new 2019-04-18 13:55:26.335936083 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Module-Build
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,20 +12,20 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


Name: perl-Module-Build
-Version: 0.422400
+Version: 0.422900
Release: 0
-%define cpan_version 0.4224
-Provides: perl(Module::Build) = 0.422400
+%define cpan_version 0.4229
+Provides: perl(Module::Build) = 0.422900
%define cpan_name Module-Build
Summary: Build and install Perl modules
-License: Artistic-1.0 or GPL-1.0+
+License: Artistic-1.0 OR GPL-1.0-or-later
Group: Development/Libraries/Perl
-Url: http://search.cpan.org/dist/Module-Build/
+Url: https://metacpan.org/release/%{cpan_name}
Source0:
https://cpan.metacpan.org/authors/id/L/LE/LEONT/%{cpan_name}-%{cpan_version}.tar.gz
Source1: cpanspec.yml
BuildArch: noarch
@@ -56,13 +56,12 @@
%description
'Module::Build' is a system for building, testing, and installing Perl
modules. It is meant to be an alternative to 'ExtUtils::MakeMaker'.
-Developers may alter the behavior of the module through subclassing in a
-much more straightforward way than with 'MakeMaker'. It also does not
-require a 'make' on your system - most of the 'Module::Build' code is
-pure-perl and written in a very cross-platform way.
+Developers may alter the behavior of the module through subclassing. It
+also does not require a 'make' on your system - most of the 'Module::Build'
+code is pure-perl and written in a very cross-platform way.

-See "MOTIVATIONS" for more comparisons between 'ExtUtils::MakeMaker' and
-'Module::Build'.
+See "COMPARISON" for more comparisons between 'Module::Build' and other
+installer tools.

To install 'Module::Build', and any other module that uses 'Module::Build'
for its installation process, do the following:
@@ -102,7 +101,7 @@
%setup -q -n %{cpan_name}-%{cpan_version}

%build
-%{__perl} Build.PL installdirs=vendor
+perl Build.PL installdirs=vendor
./Build build flags=%{?_smp_mflags}

%check

++++++ Module-Build-0.4224.tar.gz -> Module-Build-0.4229.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/Build.PL
new/Module-Build-0.4229/Build.PL
--- old/Module-Build-0.4224/Build.PL 2017-05-30 20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/Build.PL 2019-04-16 00:51:33.000000000 +0200
@@ -30,13 +30,10 @@
'Perl::OSType' => 1,
'Module::Metadata' => '1.000002',
'version' => '0.87',
- },
- build_requires => {
- 'File::Temp' => 0.15, # tmpdir() + fixes
- 'Test::More' => 0.49,
- 'TAP::Harness' => 3.29, # TAP::Harness::Env
- 'Parse::CPAN::Meta' => '1.4401',
- 'CPAN::Meta::YAML' => 0.003,
+ 'File::Spec' => '0.82',
+ 'File::Copy' => 0,
+ 'File::Basename' => 0,
+ 'File::Path' => 0,
},
# KEEP 'requires' as low as possible and target Build/test/install
# Requirements for authors should be implemented as optional features
@@ -65,6 +62,13 @@
'Module::Metadata' => 1.000002, # uses version.pm
'Pod::Man' => 2.17, # utf8 support
},
+ test_requires => {
+ 'File::Temp' => 0.15, # tmpdir() + fixes
+ 'Test::More' => 0.49,
+ 'TAP::Harness' => 3.29, # TAP::Harness::Env
+ 'Parse::CPAN::Meta' => '1.4401',
+ 'CPAN::Meta::YAML' => 0.003,
+ },
recommends => {
'ExtUtils::Install' => 0.30,
'ExtUtils::Manifest' => 1.54, # public maniskip()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/Changes
new/Module-Build-0.4229/Changes
--- old/Module-Build-0.4224/Changes 2017-05-30 20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/Changes 2019-04-16 00:51:33.000000000 +0200
@@ -1,5 +1,24 @@
Revision history for Perl extension Module::Build.

+0.4229 - Tue Apr 16 00:49:45 CEST 2019
+ - Released 0.42_28 without changes
+
+0.42_28 - Thu Apr 19 16:34:32 CEST 2018
+
+ - Replace "MOTIVATIONS" section with "COMPARISON" [Dan Brook]
+
+ - Update configure, build, test prereqs [Karen Etheridge]
+
+0.4227 - Wed Dec 13 11:17:51 CET 2017
+
+ - Released 0.42_26 without changes
+
+0.42_26 - Wed Dec 13 10:52:39 CET 2017
+
+ - Improve pureperl-only support (#119914) [Shoichi Kaji]
+
+ - Improve the documentation of Module::Build::Compat and dynamic_config [Dan
Brook]
+
0.4224 - Tue May 30 19:50:07 CEST 2017

- Released 0.42_23 without changes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/META.json
new/Module-Build-0.4229/META.json
--- old/Module-Build-0.4224/META.json 2017-05-30 20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/META.json 2019-04-16 00:51:33.000000000 +0200
@@ -5,7 +5,7 @@
"Module-Build mailing list at <module-build@xxxxxxxx>."
],
"dynamic_config" : 1,
- "generated_by" : "Module::Build version 0.4224",
+ "generated_by" : "Module::Build version 0.4229",
"license" : [
"perl_5"
],
@@ -15,18 +15,13 @@
},
"name" : "Module-Build",
"prereqs" : {
- "build" : {
- "requires" : {
- "CPAN::Meta::YAML" : "0.003",
- "File::Temp" : "0.15",
- "Parse::CPAN::Meta" : "1.4401",
- "TAP::Harness" : "3.29",
- "Test::More" : "0.49"
- }
- },
"configure" : {
"requires" : {
"CPAN::Meta" : "2.142060",
+ "File::Basename" : "0",
+ "File::Copy" : "0",
+ "File::Path" : "0",
+ "File::Spec" : "0.82",
"Module::Metadata" : "1.000002",
"Perl::OSType" : "1",
"version" : "0.87"
@@ -62,84 +57,93 @@
"perl" : "5.006001",
"version" : "0.87"
}
+ },
+ "test" : {
+ "requires" : {
+ "CPAN::Meta::YAML" : "0.003",
+ "File::Temp" : "0.15",
+ "Parse::CPAN::Meta" : "1.4401",
+ "TAP::Harness" : "3.29",
+ "Test::More" : "0.49"
+ }
}
},
"provides" : {
"Module::Build" : {
"file" : "lib/Module/Build.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::Base" : {
"file" : "lib/Module/Build/Base.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::Compat" : {
"file" : "lib/Module/Build/Compat.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::Config" : {
"file" : "lib/Module/Build/Config.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::Cookbook" : {
"file" : "lib/Module/Build/Cookbook.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::Dumper" : {
"file" : "lib/Module/Build/Dumper.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::Notes" : {
"file" : "lib/Module/Build/Notes.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::PPMMaker" : {
"file" : "lib/Module/Build/PPMMaker.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::Platform::Default" : {
"file" : "lib/Module/Build/Platform/Default.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::Platform::MacOS" : {
"file" : "lib/Module/Build/Platform/MacOS.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::Platform::Unix" : {
"file" : "lib/Module/Build/Platform/Unix.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::Platform::VMS" : {
"file" : "lib/Module/Build/Platform/VMS.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::Platform::VOS" : {
"file" : "lib/Module/Build/Platform/VOS.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::Platform::Windows" : {
"file" : "lib/Module/Build/Platform/Windows.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::Platform::aix" : {
"file" : "lib/Module/Build/Platform/aix.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::Platform::cygwin" : {
"file" : "lib/Module/Build/Platform/cygwin.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::Platform::darwin" : {
"file" : "lib/Module/Build/Platform/darwin.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::Platform::os2" : {
"file" : "lib/Module/Build/Platform/os2.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
},
"Module::Build::PodParser" : {
"file" : "lib/Module/Build/PodParser.pm",
- "version" : "0.4224"
+ "version" : "0.4229"
}
},
"release_status" : "stable",
@@ -153,6 +157,6 @@
"x_IRC" : "irc://irc.perl.org/#toolchain",
"x_MailingList" : "mailto:module-build@xxxxxxxx";
},
- "version" : "0.4224",
+ "version" : "0.4229",
"x_serialization_backend" : "JSON::PP version 2.27300"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/META.yml
new/Module-Build-0.4229/META.yml
--- old/Module-Build-0.4224/META.yml 2017-05-30 20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/META.yml 2019-04-16 00:51:33.000000000 +0200
@@ -11,11 +11,15 @@
Test::More: '0.49'
configure_requires:
CPAN::Meta: '2.142060'
+ File::Basename: '0'
+ File::Copy: '0'
+ File::Path: '0'
+ File::Spec: '0.82'
Module::Metadata: '1.000002'
Perl::OSType: '1'
version: '0.87'
dynamic_config: 1
-generated_by: 'Module::Build version 0.4224, CPAN::Meta::Converter version
2.150005'
+generated_by: 'Module::Build version 0.4229, CPAN::Meta::Converter version
2.150005'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -24,61 +28,61 @@
provides:
Module::Build:
file: lib/Module/Build.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::Base:
file: lib/Module/Build/Base.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::Compat:
file: lib/Module/Build/Compat.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::Config:
file: lib/Module/Build/Config.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::Cookbook:
file: lib/Module/Build/Cookbook.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::Dumper:
file: lib/Module/Build/Dumper.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::Notes:
file: lib/Module/Build/Notes.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::PPMMaker:
file: lib/Module/Build/PPMMaker.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::Platform::Default:
file: lib/Module/Build/Platform/Default.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::Platform::MacOS:
file: lib/Module/Build/Platform/MacOS.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::Platform::Unix:
file: lib/Module/Build/Platform/Unix.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::Platform::VMS:
file: lib/Module/Build/Platform/VMS.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::Platform::VOS:
file: lib/Module/Build/Platform/VOS.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::Platform::Windows:
file: lib/Module/Build/Platform/Windows.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::Platform::aix:
file: lib/Module/Build/Platform/aix.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::Platform::cygwin:
file: lib/Module/Build/Platform/cygwin.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::Platform::darwin:
file: lib/Module/Build/Platform/darwin.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::Platform::os2:
file: lib/Module/Build/Platform/os2.pm
- version: '0.4224'
+ version: '0.4229'
Module::Build::PodParser:
file: lib/Module/Build/PodParser.pm
- version: '0.4224'
+ version: '0.4229'
recommends:
ExtUtils::Install: '0.3'
ExtUtils::Manifest: '1.54'
@@ -111,5 +115,5 @@
MailingList: mailto:module-build@xxxxxxxx
license: http://dev.perl.org/licenses/
repository: https://github.com/Perl-Toolchain-Gang/Module-Build
-version: '0.4224'
+version: '0.4229'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/README
new/Module-Build-0.4229/README
--- old/Module-Build-0.4224/README 2017-05-30 20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/README 2019-04-16 00:51:33.000000000 +0200
@@ -23,13 +23,12 @@

Module::Build is a system for building, testing, and installing Perl
modules. It is meant to be an alternative to ExtUtils::MakeMaker.
- Developers may alter the behavior of the module through subclassing in
- a much more straightforward way than with MakeMaker. It also does not
- require a make on your system - most of the Module::Build code is
- pure-perl and written in a very cross-platform way.
+ Developers may alter the behavior of the module through subclassing. It
+ also does not require a make on your system - most of the Module::Build
+ code is pure-perl and written in a very cross-platform way.

- See "MOTIVATIONS" for more comparisons between ExtUtils::MakeMaker and
- Module::Build.
+ See "COMPARISON" for more comparisons between Module::Build and other
+ installer tools.

To install Module::Build, and any other module that uses Module::Build
for its installation process, do the following:
@@ -176,7 +175,7 @@
[version 0.05]

Reports which files are in the build directory but not in the
- MANIFEST file, and vice versa. (See manifest for details.)
+ MANIFEST file, and vice versa. (See "manifest" for details.)

distclean

@@ -346,8 +345,8 @@
^MANIFEST\.SKIP$
CVS

- See the distcheck and skipcheck actions if you want to find out what
- the manifest action would do, without actually doing anything.
+ See the "distcheck" and "skipcheck" actions if you want to find out
+ what the manifest action would do, without actually doing anything.

manifest_skip

@@ -455,7 +454,7 @@
[version 0.05]

Reports which files are skipped due to the entries in the
- MANIFEST.SKIP file (See manifest for details)
+ MANIFEST.SKIP file (See "manifest" for details)

test

@@ -508,8 +507,8 @@

[Note: the 'testall' action and the code snippets below are currently
in alpha stage, see
- "/www.nntp.perl.org/group/perl.module.build/2007/03/msg584.html"" in
- "http: ]
+ http://www.nntp.perl.org/group/perl.module.build/2007/03/msg584.html
+ ]

Runs the test action plus each of the test$type actions defined by
the keys of the test_types parameter.
@@ -881,57 +880,47 @@
location as ExtUtils::MakeMaker" in Module::Build::Cookbook for
further information.

-MOTIVATIONS
+COMPARISON

- There are several reasons I wanted to start over, and not just fix what
- I didn't like about MakeMaker:
+ A comparison between Module::Build and other CPAN distribution
+ installers.

- * I don't like the core idea of MakeMaker, namely that make should be
- involved in the build process. Here are my reasons:
-
- +
-
- When a person is installing a Perl module, what can you assume
- about their environment? Can you assume they have make? No, but you
- can assume they have some version of Perl.
-
- +
-
- When a person is writing a Perl module for intended distribution,
- can you assume that they know how to build a Makefile, so they can
- customize their build process? No, but you can assume they know
- Perl, and could customize that way.
-
- For years, these things have been a barrier to people getting the
- build/install process to do what they want.
-
- * There are several architectural decisions in MakeMaker that make it
- very difficult to customize its behavior. For instance, when using
- MakeMaker you do use ExtUtils::MakeMaker, but the object created in
- WriteMakefile() is actually blessed into a package name that's
- created on the fly, so you can't simply subclass ExtUtils::MakeMaker.
- There is a workaround MY package that lets you override certain
- MakeMaker methods, but only certain explicitly preselected (by
- MakeMaker) methods can be overridden. Also, the method of
- customization is very crude: you have to modify a string containing
- the Makefile text for the particular target. Since these strings
- aren't documented, and can't be documented (they take on different
- values depending on the platform, version of perl, version of
- MakeMaker, etc.), you have no guarantee that your modifications will
- work on someone else's machine or after an upgrade of MakeMaker or
- perl.
-
- * It is risky to make major changes to MakeMaker, since it does so
- many things, is so important, and generally works. Module::Build is
- an entirely separate package so that I can work on it all I want,
- without worrying about backward compatibility with MakeMaker.
-
- * Finally, Perl is said to be a language for system administration.
- Could it really be the case that Perl isn't up to the task of
- building and installing software? Even if that software is a bunch of
- .pm files that just need to be copied from one place to another? My
- sense was that we could design a system to accomplish this in a
- flexible, extensible, and friendly manner. Or die trying.
+ * ExtUtils::MakeMaker requires make and use of a Makefile.
+ Module::Build does not, nor do other pure-perl installers following
+ the Build.PL spec such as Module::Build::Tiny. In practice, this is
+ usually not an issue for the end user, as make is already required to
+ install most CPAN modules, even on Windows.
+
+ * ExtUtils::MakeMaker has been a core module in every version of Perl
+ 5, and must maintain compatibility to install the majority of CPAN
+ modules. Module::Build was added to core in Perl 5.10 and removed
+ from core in Perl 5.20, and (like ExtUtils::MakeMaker) is only
+ updated to fix critical issues and maintain compatibility.
+ Module::Build and other non-core installers like Module::Build::Tiny
+ are installed from CPAN by declaring themselves as a configure phase
+ prerequisite, and in this way any installer can be used in place of
+ ExtUtils::MakeMaker.
+
+ * Customizing the build process with ExtUtils::MakeMaker involves
+ overriding certain methods that form the Makefile by defining the
+ subs in the MY:: namespace, requiring in-depth knowledge of Makefile,
+ but allowing targeted customization of the entire build. Customizing
+ Module::Build involves subclassing Module::Build itself, adding or
+ overriding pure-perl methods that represent build actions, which are
+ invoked as arguments passed to the generated ./Build script. This is
+ a simpler concept but requires redefining the standard build actions
+ to invoke your customizations. Module::Build::Tiny does not allow for
+ customization.
+
+ * Module::Build provides more features and a better experience for
+ distribution authors than ExtUtils::MakeMaker. However, tools
+ designed specifically for authoring, such as Dist::Zilla and its
+ spinoffs Dist::Milla and Minilla, provide these features and more,
+ and generate a configure script (Makefile.PL/Build.PL) that will use
+ any of the various installers separately on the end user side.
+ App::ModuleBuildTiny is an alternative standalone authoring tool for
+ distributions using Module::Build::Tiny, which requires only a simple
+ two-line Build.PL.

TO DO

diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/lib/Module/Build/API.pod
new/Module-Build-0.4229/lib/Module/Build/API.pod
--- old/Module-Build-0.4224/lib/Module/Build/API.pod 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/API.pod 2019-04-16
00:51:33.000000000 +0200
@@ -356,17 +356,16 @@
[version 0.07]

A boolean flag indicating whether the F<Build.PL> file must be
-executed, or whether this module can be built, tested and installed
+executed to determine prerequisites, or whether they can be determined
solely from consulting its metadata file. The main reason to set this
-to a true value is that your module performs some dynamic
-configuration as part of its build/install process. If the flag is
-omitted, the F<META.yml> spec says that installation tools should
-treat it as 1 (true), because this is a safer way to behave.
+to a true value is that your module adds or removes prerequisites
+dynamically in F<Build.PL>. If the flag is omitted, it will be treated
+as 1 (true), because this is a safer way to behave.

Currently C<Module::Build> doesn't actually do anything with this flag
- it's up to higher-level tools like C<CPAN.pm> to do something useful
-with it. It can potentially bring lots of security, packaging, and
-convenience improvements.
+with it. It can also be very helpful for static analysis. See
+L<CPAN::Meta::Spec/dynamic_config> for details on the metadata field.

=item extra_compiler_flags

diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/lib/Module/Build/Base.pm
new/Module-Build-0.4229/lib/Module/Build/Base.pm
--- old/Module-Build-0.4224/lib/Module/Build/Base.pm 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/Base.pm 2019-04-16
00:51:33.000000000 +0200
@@ -6,7 +6,7 @@
use strict;
use warnings;

-our $VERSION = '0.4224';
+our $VERSION = '0.4229';
$VERSION = eval $VERSION;

use Carp;
@@ -1517,7 +1517,11 @@
# If set, we need ExtUtils::CBuilder (and a compiler)
my $xs_files = $self->find_xs_files;
if ( ! defined $p->{needs_compiler} ) {
- $self->needs_compiler( keys %$xs_files || defined $self->c_source );
+ if ( $self->pureperl_only && $self->allow_pureperl ) {
+ $self->needs_compiler( 0 );
+ } else {
+ $self->needs_compiler( keys %$xs_files || defined $self->c_source );
+ }
}
if ($self->needs_compiler) {
$self->_add_prereq('build_requires', 'ExtUtils::CBuilder', 0);
@@ -2865,6 +2869,7 @@
my $self = shift;
my $p = $self->{properties};
return unless $p->{c_source};
+ return if $self->pureperl_only && $self->allow_pureperl;

my $files;
if (ref($p->{c_source}) eq "ARRAY") {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/lib/Module/Build/Compat.pm
new/Module-Build-0.4229/lib/Module/Build/Compat.pm
--- old/Module-Build-0.4224/lib/Module/Build/Compat.pm 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/Compat.pm 2019-04-16
00:51:33.000000000 +0200
@@ -2,7 +2,7 @@

use strict;
use warnings;
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';

use File::Basename ();
use File::Spec;
@@ -477,6 +477,13 @@
C<Module::Build::Compat> also provides some code that helps out the
F<Makefile.PL> at runtime.

+=head1 WARNING
+
+Note that C<Module::Build::Compat> more often causes installation issues
+than solves them, and each of the three F<Makefile.PL> generation styles
+has unique compatibility or functionality issues that are unlikely to be
+fixed. Thus, the use of this module and C<create_makefile_pl> is
+discouraged.

=head1 METHODS

@@ -506,6 +513,8 @@
you ask the user questions, or do some auto-sensing about the user's
environment, or if you subclass C<Module::Build> to do some
customization, because the vanilla F<Makefile.PL> won't do any of that.
+Many standard C<Module::Build> features such as C<test_requires> are also
+not supported.

=item small

@@ -514,6 +523,13 @@
already have C<Module::Build> installed in order to use this, or else
they'll get a module-not-found error.

+This style attempts (with varying success) to translate the F<Makefile.PL>
+protocol to F<Build.PL>, and is unnecessary on any modern toolchain that
+recognizes C<configure_requires> metadata described below, as F<Build.PL>
+will be run by default in this case. See
+L<https://rt.cpan.org/Public/Bug/Display.html?id=75936> for an example of
+the issues it may cause.
+
=item passthrough (DEPRECATED)

This is just like the C<small> option above, but if C<Module::Build> is
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/lib/Module/Build/Config.pm
new/Module-Build-0.4229/lib/Module/Build/Config.pm
--- old/Module-Build-0.4224/lib/Module/Build/Config.pm 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/Config.pm 2019-04-16
00:51:33.000000000 +0200
@@ -2,7 +2,7 @@

use strict;
use warnings;
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';
$VERSION = eval $VERSION;
use Config;

diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/lib/Module/Build/Cookbook.pm
new/Module-Build-0.4229/lib/Module/Build/Cookbook.pm
--- old/Module-Build-0.4224/lib/Module/Build/Cookbook.pm 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/Cookbook.pm 2019-04-16
00:51:33.000000000 +0200
@@ -1,7 +1,7 @@
package Module::Build::Cookbook;
use strict;
use warnings;
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';


=head1 NAME
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/lib/Module/Build/Dumper.pm
new/Module-Build-0.4229/lib/Module/Build/Dumper.pm
--- old/Module-Build-0.4224/lib/Module/Build/Dumper.pm 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/Dumper.pm 2019-04-16
00:51:33.000000000 +0200
@@ -1,7 +1,7 @@
package Module::Build::Dumper;
use strict;
use warnings;
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';

# This is just a split-out of a wrapper function to do Data::Dumper
# stuff "the right way". See:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/lib/Module/Build/Notes.pm
new/Module-Build-0.4229/lib/Module/Build/Notes.pm
--- old/Module-Build-0.4224/lib/Module/Build/Notes.pm 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/Notes.pm 2019-04-16
00:51:33.000000000 +0200
@@ -4,7 +4,7 @@

use strict;
use warnings;
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';
$VERSION = eval $VERSION;
use Data::Dumper;
use Module::Build::Dumper;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/lib/Module/Build/PPMMaker.pm
new/Module-Build-0.4229/lib/Module/Build/PPMMaker.pm
--- old/Module-Build-0.4224/lib/Module/Build/PPMMaker.pm 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/PPMMaker.pm 2019-04-16
00:51:33.000000000 +0200
@@ -4,7 +4,7 @@
use warnings;
use Config;

-our $VERSION = '0.4224';
+our $VERSION = '0.4229';
$VERSION = eval $VERSION;

# This code is mostly borrowed from ExtUtils::MM_Unix 6.10_03, with a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Module-Build-0.4224/lib/Module/Build/Platform/Default.pm
new/Module-Build-0.4229/lib/Module/Build/Platform/Default.pm
--- old/Module-Build-0.4224/lib/Module/Build/Platform/Default.pm
2017-05-30 20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/Platform/Default.pm
2019-04-16 00:51:33.000000000 +0200
@@ -2,7 +2,7 @@

use strict;
use warnings;
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';
$VERSION = eval $VERSION;
use Module::Build::Base;

diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Module-Build-0.4224/lib/Module/Build/Platform/MacOS.pm
new/Module-Build-0.4229/lib/Module/Build/Platform/MacOS.pm
--- old/Module-Build-0.4224/lib/Module/Build/Platform/MacOS.pm 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/Platform/MacOS.pm 2019-04-16
00:51:33.000000000 +0200
@@ -2,7 +2,7 @@

use strict;
use warnings;
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';
$VERSION = eval $VERSION;
use Module::Build::Base;
our @ISA = qw(Module::Build::Base);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Module-Build-0.4224/lib/Module/Build/Platform/Unix.pm
new/Module-Build-0.4229/lib/Module/Build/Platform/Unix.pm
--- old/Module-Build-0.4224/lib/Module/Build/Platform/Unix.pm 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/Platform/Unix.pm 2019-04-16
00:51:33.000000000 +0200
@@ -2,7 +2,7 @@

use strict;
use warnings;
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';
$VERSION = eval $VERSION;
use Module::Build::Base;

diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/lib/Module/Build/Platform/VMS.pm
new/Module-Build-0.4229/lib/Module/Build/Platform/VMS.pm
--- old/Module-Build-0.4224/lib/Module/Build/Platform/VMS.pm 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/Platform/VMS.pm 2019-04-16
00:51:33.000000000 +0200
@@ -2,7 +2,7 @@

use strict;
use warnings;
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';
$VERSION = eval $VERSION;
use Module::Build::Base;
use Config;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/lib/Module/Build/Platform/VOS.pm
new/Module-Build-0.4229/lib/Module/Build/Platform/VOS.pm
--- old/Module-Build-0.4224/lib/Module/Build/Platform/VOS.pm 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/Platform/VOS.pm 2019-04-16
00:51:33.000000000 +0200
@@ -2,7 +2,7 @@

use strict;
use warnings;
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';
$VERSION = eval $VERSION;
use Module::Build::Base;

diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Module-Build-0.4224/lib/Module/Build/Platform/Windows.pm
new/Module-Build-0.4229/lib/Module/Build/Platform/Windows.pm
--- old/Module-Build-0.4224/lib/Module/Build/Platform/Windows.pm
2017-05-30 20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/Platform/Windows.pm
2019-04-16 00:51:33.000000000 +0200
@@ -2,7 +2,7 @@

use strict;
use warnings;
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';
$VERSION = eval $VERSION;

use Config;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/lib/Module/Build/Platform/aix.pm
new/Module-Build-0.4229/lib/Module/Build/Platform/aix.pm
--- old/Module-Build-0.4224/lib/Module/Build/Platform/aix.pm 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/Platform/aix.pm 2019-04-16
00:51:33.000000000 +0200
@@ -2,7 +2,7 @@

use strict;
use warnings;
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';
$VERSION = eval $VERSION;
use Module::Build::Platform::Unix;

diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Module-Build-0.4224/lib/Module/Build/Platform/cygwin.pm
new/Module-Build-0.4229/lib/Module/Build/Platform/cygwin.pm
--- old/Module-Build-0.4224/lib/Module/Build/Platform/cygwin.pm 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/Platform/cygwin.pm 2019-04-16
00:51:33.000000000 +0200
@@ -2,7 +2,7 @@

use strict;
use warnings;
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';
$VERSION = eval $VERSION;
use Module::Build::Platform::Unix;

diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Module-Build-0.4224/lib/Module/Build/Platform/darwin.pm
new/Module-Build-0.4229/lib/Module/Build/Platform/darwin.pm
--- old/Module-Build-0.4224/lib/Module/Build/Platform/darwin.pm 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/Platform/darwin.pm 2019-04-16
00:51:33.000000000 +0200
@@ -2,7 +2,7 @@

use strict;
use warnings;
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';
$VERSION = eval $VERSION;
use Module::Build::Platform::Unix;

diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/lib/Module/Build/Platform/os2.pm
new/Module-Build-0.4229/lib/Module/Build/Platform/os2.pm
--- old/Module-Build-0.4224/lib/Module/Build/Platform/os2.pm 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/Platform/os2.pm 2019-04-16
00:51:33.000000000 +0200
@@ -2,7 +2,7 @@

use strict;
use warnings;
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';
$VERSION = eval $VERSION;
use Module::Build::Platform::Unix;

diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/lib/Module/Build/PodParser.pm
new/Module-Build-0.4229/lib/Module/Build/PodParser.pm
--- old/Module-Build-0.4224/lib/Module/Build/PodParser.pm 2017-05-30
20:03:05.000000000 +0200
+++ new/Module-Build-0.4229/lib/Module/Build/PodParser.pm 2019-04-16
00:51:33.000000000 +0200
@@ -2,7 +2,7 @@

use strict;
use warnings;
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';
$VERSION = eval $VERSION;

sub new {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Build-0.4224/lib/Module/Build.pm
new/Module-Build-0.4229/lib/Module/Build.pm
--- old/Module-Build-0.4224/lib/Module/Build.pm 2017-05-30 20:03:05.000000000
+0200
+++ new/Module-Build-0.4229/lib/Module/Build.pm 2019-04-16 00:51:33.000000000
+0200
@@ -17,7 +17,7 @@
use Module::Build::Base;

our @ISA = qw(Module::Build::Base);
-our $VERSION = '0.4224';
+our $VERSION = '0.4229';
$VERSION = eval $VERSION;

# Inserts the given module into the @ISA hierarchy between
@@ -91,13 +91,12 @@
C<Module::Build> is a system for building, testing, and installing
Perl modules. It is meant to be an alternative to
C<ExtUtils::MakeMaker>. Developers may alter the behavior of the
-module through subclassing in a much more straightforward way than
-with C<MakeMaker>. It also does not require a C<make> on your system
-- most of the C<Module::Build> code is pure-perl and written in a very
-cross-platform way.
+module through subclassing. It also does not require a C<make> on your
+system - most of the C<Module::Build> code is pure-perl and written in a
+very cross-platform way.

-See L<"MOTIVATIONS"> for more comparisons between C<ExtUtils::MakeMaker>
-and C<Module::Build>.
+See L</"COMPARISON"> for more comparisons between C<Module::Build> and
+other installer tools.

To install C<Module::Build>, and any other module that uses
C<Module::Build> for its installation process, do the following:
@@ -272,7 +271,7 @@
[version 0.05]

Reports which files are in the build directory but not in the
-F<MANIFEST> file, and vice versa. (See L<manifest> for details.)
+F<MANIFEST> file, and vice versa. (See L</manifest> for details.)

=item distclean

@@ -387,7 +386,7 @@
[version 0.01]

This action will use C<ExtUtils::Install> to install the files from
-C<blib/> into the system. See L<"INSTALL PATHS">
+C<blib/> into the system. See L</"INSTALL PATHS">
for details about how Module::Build determines where to install
things, and how to influence this process.

@@ -444,7 +443,7 @@
^MANIFEST\.SKIP$
CVS

-See the L<distcheck> and L<skipcheck> actions if you want to find out
+See the L</distcheck> and L</skipcheck> actions if you want to find out
what the C<manifest> action would do, without actually doing anything.

=item manifest_skip
@@ -553,7 +552,7 @@
[version 0.05]

Reports which files are skipped due to the entries in the
-F<MANIFEST.SKIP> file (See L<manifest> for details)
+F<MANIFEST.SKIP> file (See L</manifest> for details)

=item test

@@ -604,7 +603,7 @@

[Note: the 'testall' action and the code snippets below are currently
in alpha stage, see
-L<"http://www.nntp.perl.org/group/perl.module.build/2007/03/msg584.html";> ]
+L<http://www.nntp.perl.org/group/perl.module.build/2007/03/msg584.html> ]

Runs the C<test> action plus each of the C<test$type> actions defined by
the keys of the C<test_types> parameter.
@@ -998,71 +997,53 @@
=back


-=head1 MOTIVATIONS
+=head1 COMPARISON

-There are several reasons I wanted to start over, and not just fix
-what I didn't like about C<MakeMaker>:
+A comparison between C<Module::Build> and other CPAN distribution installers.

-=over 4
+=over

=item *

-I don't like the core idea of C<MakeMaker>, namely that C<make> should be
-involved in the build process. Here are my reasons:
-
-=over 4
-
-=item +
-
-When a person is installing a Perl module, what can you assume about
-their environment? Can you assume they have C<make>? No, but you can
-assume they have some version of Perl.
-
-=item +
-
-When a person is writing a Perl module for intended distribution, can
-you assume that they know how to build a Makefile, so they can
-customize their build process? No, but you can assume they know Perl,
-and could customize that way.
-
-=back
-
-For years, these things have been a barrier to people getting the
-build/install process to do what they want.
+L<ExtUtils::MakeMaker> requires C<make> and use of a F<Makefile>.
+C<Module::Build> does not, nor do other pure-perl installers following the
+F<Build.PL> spec such as L<Module::Build::Tiny>. In practice, this is usually
+not an issue for the end user, as C<make> is already required to install most
+CPAN modules, even on Windows.

=item *

-There are several architectural decisions in C<MakeMaker> that make it
-very difficult to customize its behavior. For instance, when using
-C<MakeMaker> you do C<use ExtUtils::MakeMaker>, but the object created in
-C<WriteMakefile()> is actually blessed into a package name that's
-created on the fly, so you can't simply subclass
-C<ExtUtils::MakeMaker>. There is a workaround C<MY> package that lets
-you override certain C<MakeMaker> methods, but only certain explicitly
-preselected (by C<MakeMaker>) methods can be overridden. Also, the method
-of customization is very crude: you have to modify a string containing
-the Makefile text for the particular target. Since these strings
-aren't documented, and I<can't> be documented (they take on different
-values depending on the platform, version of perl, version of
-C<MakeMaker>, etc.), you have no guarantee that your modifications will
-work on someone else's machine or after an upgrade of C<MakeMaker> or
-perl.
+L<ExtUtils::MakeMaker> has been a core module in every version of Perl 5, and
+must maintain compatibility to install the majority of CPAN modules.
+C<Module::Build> was added to core in Perl 5.10 and removed from core in Perl
+5.20, and (like L<ExtUtils::MakeMaker>) is only updated to fix critical issues
+and maintain compatibility. C<Module::Build> and other non-core installers like
+L<Module::Build::Tiny> are installed from CPAN by declaring themselves as a
+C<configure> phase prerequisite, and in this way any installer can be used in
+place of L<ExtUtils::MakeMaker>.

=item *

-It is risky to make major changes to C<MakeMaker>, since it does so many
-things, is so important, and generally works. C<Module::Build> is an
-entirely separate package so that I can work on it all I want, without
-worrying about backward compatibility with C<MakeMaker>.
+Customizing the build process with L<ExtUtils::MakeMaker> involves overriding
+certain methods that form the F<Makefile> by defining the subs in the C<MY::>
+namespace, requiring in-depth knowledge of F<Makefile>, but allowing targeted
+customization of the entire build. Customizing C<Module::Build> involves
+subclassing C<Module::Build> itself, adding or overriding pure-perl methods
+that represent build actions, which are invoked as arguments passed to the
+generated C<./Build> script. This is a simpler concept but requires redefining
+the standard build actions to invoke your customizations.
+L<Module::Build::Tiny> does not allow for customization.

=item *

-Finally, Perl is said to be a language for system administration.
-Could it really be the case that Perl isn't up to the task of building
-and installing software? Even if that software is a bunch of
-C<.pm> files that just need to be copied from one place to
-another? My sense was that we could design a system to accomplish
-this in a flexible, extensible, and friendly manner. Or die trying.
+C<Module::Build> provides more features and a better experience for
distribution
+authors than L<ExtUtils::MakeMaker>. However, tools designed specifically for
+authoring, such as L<Dist::Zilla> and its spinoffs L<Dist::Milla> and
+L<Minilla>, provide these features and more, and generate a configure script
+(F<Makefile.PL>/F<Build.PL>) that will use any of the various installers
+separately on the end user side. L<App::ModuleBuildTiny> is an alternative
+standalone authoring tool for distributions using L<Module::Build::Tiny>, which
+requires only a simple two-line F<Build.PL>.

=back



< Previous Next >
This Thread
  • No further messages