Skip Menu |

This queue is for tickets about the Config-IniFiles CPAN distribution.

Report information
The Basics
Id: 114978
Status: resolved
Priority: 0/
Queue: Config-IniFiles

People
Owner: Nobody in particular
Requestors: quanah.gibsonmount [...] gmail.com
Cc: KENTNL [...] cpan.org
AdminCc:

Bug Information
Severity: (no value)
Broken in:
  • 2.86
  • 2.87
  • 2.88
  • 2.89
Fixed in: (no value)



Subject: Module::Build was removed from Perl core modules. Stop using it
Module::Build was removed from core perl. This package should no longer have it as a dependency.
On Wed Jun 01 19:53:46 2016, MISHIKAL wrote: Show quoted text
> Module::Build was removed from core perl. This package should no > longer have it as a dependency.
Attempting to build on a modern OS with perl 5.22.1: Can't locate Module/Build/Compat.pm in @INC (you may need to install the Module::Build::Compat module) (@INC contains: /opt/zimbra/common/lib/perl5/x86_64-linux-gnu-thread-multi /opt/zimbra/common/lib/perl5 /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at Makefile.PL line 3. BEGIN failed--compilation aborted at Makefile.PL line 3. debian/rules:7: recipe for target 'override_dh_auto_configure' failed make[2]: *** [override_dh_auto_configure] Error 2 make[2]: Leaving directory '/home/build/git/90/packages/thirdparty/perl-config-inifiles/build/UBUNTU16_64/zimbra-perl-config-inifiles' debian/rules:4: recipe for target 'build' failed make[1]: *** [build] Error 2 make[1]: Leaving directory '/home/build/git/90/packages/thirdparty/perl-config-inifiles/build/UBUNTU16_64/zimbra-perl-config-inifiles' dpkg-buildpackage: error: debian/rules build gave error exit status 2 Makefile:49: recipe for target 'build_deb' failed make: *** [build_deb] Error 2 This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-linux-gnu-thread-multi

On 2016-06-02 11:53:46, MISHIKAL wrote:
> Module::Build was removed from core perl. This package should no
> longer have it as a dependency.


There are reasons toolchain wish to discourage Module::Build, but this is absolutely NOT it.

That is *not* how removal from core works.

Removal from core just means "Use CPAN" and "CPAN Clients should respect configure requires".

Shipping a Makefile.PL with a dist packaged with Module::Build::Compat however is a much more annoying problem than even Module::Build, and toolchain would generally recommend either

 

a) Not using Module::Build at all

b) Not using Module::Build::Compat if you are using Module::Build

c) Use "traditional" Makefile generation, not "small" makefile generation ( https://metacpan.org/pod/Module::Build::Compat#traditional ) like it presently does ( https://metacpan.org/source/SHLOMIF/Config-IniFiles-2.89/Build.PL#L40 )

 

 

On 2016-06-02 11:54:37, MISHIKAL wrote:
>
> Attempting to build on a modern OS with perl 5.22.1:
>
> Can't locate Module/Build/Compat.pm in @INC (you may need to install
> the Module::Build::Compat module) (@INC contains:
> /opt/zimbra/common/lib/perl5/x86_64-linux-gnu-thread-multi
> /opt/zimbra/common/lib/perl5 /etc/perl /usr/local/lib/x86_64-linux-
> gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-
> gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22
> /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-
> gnu/perl-base .) at Makefile.PL line 3.
> BEGIN failed--compilation aborted at Makefile.PL line 3.
 

As for the specific reason you encountered this issue, one must ask "How are you installing this" ?

 

CPAN Protocol mandates configure_requires must be satisfied before running Build.PL or Makefile.PL

 

https://metacpan.org/source/SHLOMIF/Config-IniFiles-2.89/META.json#L39-42

 

configure_requires correctly states you must install Module::Build

 

Module::Build was not present, things broke.

 

Without further clarification as to which tool you used that did this wrong and how we can replicate the failure, the most obvious assumption is you either did it by hand ( failing to satisfy configure_requires first ), or used some 3rd party tooling that is implemented wrong.

That doesn't leave us with much scope to be helpful, but that's a "toolchain concern" now, so we're all ears.

Hi MISHIKAL and KENTNL, On Wed Jun 01 22:41:41 2016, KENTNL wrote: Show quoted text
> On 2016-06-02 11:53:46, MISHIKAL wrote:
> > Module::Build was removed from core perl. This package should no > > longer have it as a dependency.
> > > There are reasons toolchain wish to discourage Module::Build, but this > is > absolutely NOT it. > > That is *not* how removal from core works. > > Removal from core just means "Use CPAN" and "CPAN Clients should > respect > configure requires". > > Shipping a Makefile.PL with a dist packaged with Module::Build::Compat > however > is a much more annoying problem than even Module::Build, and toolchain > would > generally recommend either > > a) Not using Module::Build at all > > b) Not using Module::Build::Compat if you are using Module::Build > > c) Use "traditional" Makefile generation, not "small" makefile > generation ( > https://metacpan.org/pod/Module::Build::Compat#traditional ) like it > presently > does ( https://metacpan.org/source/SHLOMIF/Config-IniFiles- > 2.89/Build.PL#L40 )
I mostly agree with what KENTNL said. One can always install Module::Build from CPAN. I was however under the impression that "traditional" Makefile.PL generation was discouraged so I did not use it, but I guess I can try to use it again - that or convert Config-IniFiles to use Dist-Zilla anyway. Regards, -- Shlomi Fish
On 2016-06-02 01:43:55, SHLOMIF wrote: Show quoted text
> I was however under the impression that > "traditional" Makefile.PL generation was discouraged so I did not use > it, but I guess I can try to use it again - that or convert Config- > IniFiles to use Dist-Zilla anyway.
Module::Build::Compat is a big pile of fail. You happened to choose the worse variant of it :) In general, if it's possible to fall back to EUMM to build the distribution, just use ExtUtils::MakeMaker to begin with!
On Wed Jun 01 22:41:41 2016, KENTNL wrote: Show quoted text
> On 2016-06-02 11:53:46, MISHIKAL wrote:
> > Module::Build was removed from core perl. This package should no > > longer have it as a dependency.
> > > There are reasons toolchain wish to discourage Module::Build, but this > is > absolutely NOT it. > > That is *not* how removal from core works. > > Removal from core just means "Use CPAN" and "CPAN Clients should > respect > configure requires".
I disagree. module::build pulls in a ton of modules that I neither want nor need on my system. Of the approximately 100 modules I build, ONLY THIS ONE requires module::build. I prefer NOT to pollute my build systems with unnecessary cruft, and clearly module::build is exactly that. Here's what using the OS version of Module::Build pulls in: libalgorithm-c3-perl libb-hooks-endofscope-perl libb-hooks-op-check-perl libbareword-filehandles-perl libclass-c3-perl libclass-c3-xs-perl libclass-method- modifiers-perl \ libclass-xsaccessor-perl libcpan-changes-perl libdata-optlist-perl libdata-perl-perl libdata-section-perl libdevel-caller-perl libdevel-globaldestruction-perl libdevel-lexalias-perl \ libexporter-tiny-perl libfile-slurp-perl libgetopt-long-descriptive-perl libimport-into-perl libindirect-perl libio-stringy-perl liblexical-sealrequirehints-perl liblist-moreutils-perl \ libmodule-build-perl libmodule-implementation-perl libmodule-runtime-perl libmodule-signature-perl libmoo-perl libmoox-handlesvia-perl libmro-compat-perl libmultidimensional-perl \ libnamespace-autoclean-perl libnamespace-clean-perl libpackage-stash-perl libpackage-stash-xs-perl libpadwalker-perl libparams-classify-perl libparams-util-perl libparams-validate-perl \ libpath-tiny-perl libpod-markdown-perl libpod-readme-perl librole-tiny-perl libsoftware-license-perl libstrictures-perl libsub-exporter-perl libsub-exporter-progressive-perl \ libsub-identify-perl libsub-install-perl libsub-name-perl libtext-template-perl libtry-tiny-perl libtype-tiny-perl libtype-tiny-xs-perl libunicode-utf8-perl libvariable-magic-perl \ libmodule-build-perl It's insane to require all that crap to build one out of 100 modules.
On Thu Jun 02 19:00:08 2016, MISHIKAL wrote: Show quoted text
> On Wed Jun 01 22:41:41 2016, KENTNL wrote:
> > On 2016-06-02 11:53:46, MISHIKAL wrote:
> > > Module::Build was removed from core perl. This package should no > > > longer have it as a dependency.
> > > > > > There are reasons toolchain wish to discourage Module::Build, but > > this > > is > > absolutely NOT it. > > > > That is *not* how removal from core works. > > > > Removal from core just means "Use CPAN" and "CPAN Clients should > > respect > > configure requires".
> > I disagree. module::build pulls in a ton of modules that I neither > want nor need on my system. Of the approximately 100 modules I build, > ONLY THIS ONE requires module::build. I prefer NOT to pollute my > build systems with unnecessary cruft, and clearly module::build is > exactly that. > > Here's what using the OS version of Module::Build pulls in: > > libalgorithm-c3-perl libb-hooks-endofscope-perl libb-hooks-op-check- > perl libbareword-filehandles-perl libclass-c3-perl libclass-c3-xs-perl > libclass-method- > modifiers-perl \ > libclass-xsaccessor-perl libcpan-changes-perl libdata-optlist-perl > libdata-perl-perl libdata-section-perl libdevel-caller-perl libdevel- > globaldestruction-perl libdevel-lexalias-perl \ > libexporter-tiny-perl libfile-slurp-perl libgetopt-long-descriptive- > perl libimport-into-perl libindirect-perl libio-stringy-perl > liblexical-sealrequirehints-perl liblist-moreutils-perl \ > libmodule-build-perl libmodule-implementation-perl libmodule- > runtime-perl libmodule-signature-perl libmoo-perl libmoox-handlesvia- > perl libmro-compat-perl libmultidimensional-perl \ > libnamespace-autoclean-perl libnamespace-clean-perl libpackage- > stash-perl libpackage-stash-xs-perl libpadwalker-perl libparams- > classify-perl libparams-util-perl libparams-validate-perl \ > libpath-tiny-perl libpod-markdown-perl libpod-readme-perl librole- > tiny-perl libsoftware-license-perl libstrictures-perl libsub-exporter- > perl libsub-exporter-progressive-perl \ > libsub-identify-perl libsub-install-perl libsub-name-perl libtext- > template-perl libtry-tiny-perl libtype-tiny-perl libtype-tiny-xs-perl > libunicode-utf8-perl libvariable-magic-perl \ > libmodule-build-perl > > > It's insane to require all that crap to build one out of 100 modules.
It kinda is, but the CPAN version of Module::Build does not require all this. I've now installed bleadperl and ran «/home/shlomif/apps/perl/bleadperl/bin/cpan5.25.2 -i Module::Build» and it installs Module-Build and Module-Build alone - nothing more. One can also install inc::latest for extra functionality, but that's it. So the fact that the operating system version of Module-Build requires all that seems like either poor packaging or the fact you need to add --no-suggest/--no-recommends/etc. to your command line. Anyway, in the most recently uploaded version (2.90) of Config-IniFiles (which can also be built as an OS package), you should be able to run Makefile.PL without requiring Module::Build, but please don't report it as a bug in CPAN packages in the future. Can I close this bug?

On 2016-06-03 11:00:08, MISHIKAL wrote:

>
> libalgorithm-c3-perl libb-hooks-endofscope-perl libb-hooks-op-check-
> perl libbareword-filehandles-perl libclass-c3-perl libclass-c3-xs-perl
> libclass-method-
> modifiers-perl \
> libclass-xsaccessor-perl libcpan-changes-perl libdata-optlist-perl
> libdata-perl-perl libdata-section-perl libdevel-caller-perl libdevel-
> globaldestruction-perl libdevel-lexalias-perl \
> libexporter-tiny-perl libfile-slurp-perl libgetopt-long-descriptive-
> perl libimport-into-perl libindirect-perl libio-stringy-perl
> liblexical-sealrequirehints-perl liblist-moreutils-perl \
> libmodule-build-perl libmodule-implementation-perl libmodule-
> runtime-perl libmodule-signature-perl libmoo-perl libmoox-handlesvia-
> perl libmro-compat-perl libmultidimensional-perl \
> libnamespace-autoclean-perl libnamespace-clean-perl libpackage-
> stash-perl libpackage-stash-xs-perl libpadwalker-perl libparams-
> classify-perl libparams-util-perl libparams-validate-perl \
> libpath-tiny-perl libpod-markdown-perl libpod-readme-perl librole-
> tiny-perl libsoftware-license-perl libstrictures-perl libsub-exporter-
> perl libsub-exporter-progressive-perl \
> libsub-identify-perl libsub-install-perl libsub-name-perl libtext-
> template-perl libtry-tiny-perl libtype-tiny-perl libtype-tiny-xs-perl
> libunicode-utf8-perl libvariable-magic-perl \
> libmodule-build-perl
>
>
> It's insane to require all that crap to build one out of 100 modules.
 

I would suggest following this up with your vendor / changing your configuration.

There is no good reason that you should be expecting "Moo" to be installed to support Module::Build.

That's absolutely broken.

On 2016-06-02 19:00:08, MISHIKAL wrote: Show quoted text
> On Wed Jun 01 22:41:41 2016, KENTNL wrote:
> > On 2016-06-02 11:53:46, MISHIKAL wrote:
> > > Module::Build was removed from core perl. This package should no > > > longer have it as a dependency.
> > > > > > There are reasons toolchain wish to discourage Module::Build, but > > this > > is > > absolutely NOT it. > > > > That is *not* how removal from core works. > > > > Removal from core just means "Use CPAN" and "CPAN Clients should > > respect > > configure requires".
> > I disagree. module::build pulls in a ton of modules that I neither > want nor need on my system. Of the approximately 100 modules I build, > ONLY THIS ONE requires module::build. I prefer NOT to pollute my > build systems with unnecessary cruft, and clearly module::build is > exactly that. > > Here's what using the OS version of Module::Build pulls in: > > libalgorithm-c3-perl libb-hooks-endofscope-perl libb-hooks-op-check- > perl libbareword-filehandles-perl libclass-c3-perl libclass-c3-xs-perl > libclass-method- > modifiers-perl \ > libclass-xsaccessor-perl libcpan-changes-perl libdata-optlist-perl > libdata-perl-perl libdata-section-perl libdevel-caller-perl libdevel- > globaldestruction-perl libdevel-lexalias-perl \ > libexporter-tiny-perl libfile-slurp-perl libgetopt-long-descriptive- > perl libimport-into-perl libindirect-perl libio-stringy-perl > liblexical-sealrequirehints-perl liblist-moreutils-perl \ > libmodule-build-perl libmodule-implementation-perl libmodule- > runtime-perl libmodule-signature-perl libmoo-perl libmoox-handlesvia- > perl libmro-compat-perl libmultidimensional-perl \ > libnamespace-autoclean-perl libnamespace-clean-perl libpackage- > stash-perl libpackage-stash-xs-perl libpadwalker-perl libparams- > classify-perl libparams-util-perl libparams-validate-perl \ > libpath-tiny-perl libpod-markdown-perl libpod-readme-perl librole- > tiny-perl libsoftware-license-perl libstrictures-perl libsub-exporter- > perl libsub-exporter-progressive-perl \ > libsub-identify-perl libsub-install-perl libsub-name-perl libtext- > template-perl libtry-tiny-perl libtype-tiny-perl libtype-tiny-xs-perl > libunicode-utf8-perl libvariable-magic-perl \ > libmodule-build-perl > > > It's insane to require all that crap to build one out of 100 modules.
It is *very* likely that you configured apt to install all the recommended packages. If you turn this off, then the dependency tree of libmodule-build-perl should be very small. To visualize this, just install debtree+graphviz+imagemagick and look at the generated images: $ debtree --no-recommends libmodule-build-perl | dot -Tpng > norec.png $ debtree libmodule-build-perl | dot -Tpng > rec.png Please set this issue to "rejected" if this analysis is true.
On Sat Jun 11 07:50:18 2016, SREZIC wrote: Show quoted text
> On 2016-06-02 19:00:08, MISHIKAL wrote:
> > On Wed Jun 01 22:41:41 2016, KENTNL wrote:
> > > On 2016-06-02 11:53:46, MISHIKAL wrote:
> > > > Module::Build was removed from core perl. This package should no > > > > longer have it as a dependency.
> > > > > > > > > There are reasons toolchain wish to discourage Module::Build, but > > > this > > > is > > > absolutely NOT it. > > > > > > That is *not* how removal from core works. > > > > > > Removal from core just means "Use CPAN" and "CPAN Clients should > > > respect > > > configure requires".
> > > > I disagree. module::build pulls in a ton of modules that I neither > > want nor need on my system. Of the approximately 100 modules I > > build, > > ONLY THIS ONE requires module::build. I prefer NOT to pollute my > > build systems with unnecessary cruft, and clearly module::build is > > exactly that. > > > > Here's what using the OS version of Module::Build pulls in: > > > > libalgorithm-c3-perl libb-hooks-endofscope-perl libb-hooks-op-check- > > perl libbareword-filehandles-perl libclass-c3-perl libclass-c3-xs- > > perl > > libclass-method- > > modifiers-perl \ > > libclass-xsaccessor-perl libcpan-changes-perl libdata-optlist-perl > > libdata-perl-perl libdata-section-perl libdevel-caller-perl libdevel- > > globaldestruction-perl libdevel-lexalias-perl \ > > libexporter-tiny-perl libfile-slurp-perl libgetopt-long- > > descriptive- > > perl libimport-into-perl libindirect-perl libio-stringy-perl > > liblexical-sealrequirehints-perl liblist-moreutils-perl \ > > libmodule-build-perl libmodule-implementation-perl libmodule- > > runtime-perl libmodule-signature-perl libmoo-perl libmoox-handlesvia- > > perl libmro-compat-perl libmultidimensional-perl \ > > libnamespace-autoclean-perl libnamespace-clean-perl libpackage- > > stash-perl libpackage-stash-xs-perl libpadwalker-perl libparams- > > classify-perl libparams-util-perl libparams-validate-perl \ > > libpath-tiny-perl libpod-markdown-perl libpod-readme-perl librole- > > tiny-perl libsoftware-license-perl libstrictures-perl libsub- > > exporter- > > perl libsub-exporter-progressive-perl \ > > libsub-identify-perl libsub-install-perl libsub-name-perl libtext- > > template-perl libtry-tiny-perl libtype-tiny-perl libtype-tiny-xs-perl > > libunicode-utf8-perl libvariable-magic-perl \ > > libmodule-build-perl > > > > > > It's insane to require all that crap to build one out of 100 modules.
> > It is *very* likely that you configured apt to install all the > recommended packages. If you turn this off, then the dependency tree > of libmodule-build-perl should be very small. To visualize this, just > install debtree+graphviz+imagemagick and look at the generated images: > > $ debtree --no-recommends libmodule-build-perl | dot -Tpng > norec.png > $ debtree libmodule-build-perl | dot -Tpng > rec.png > > Please set this issue to "rejected" if this analysis is true.
Resolved/REJECTing this issue report as the original poster became unresponsive and the problem should be fixed now.
On Tue Jun 14 08:04:36 2016, SHLOMIF wrote: Show quoted text
> Resolved/REJECTing this issue report as the original poster became > unresponsive and the problem should be fixed now.
Thanks. You have a low threshold for unresponsive..