jdporter has asked for the wisdom of the Perl Monks concerning the following question:

We received this ticket regarding Pod-Coverage-Moose. The user (who shall remain unnamed) apparently was using the RT system to seek support. Any ideas I can forward to the submitter? TIA...

This module is required for testing, so I am installing it. Before building starts in MacPorts package manager it complains:

---> Configuring p5.34-pod-coverage-moose Executing: cd "/opt/local/var/macports/build/_opt_local_var_macports_ +sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5-po +d-coverage-moose/p5.34-pod-coverage-moose/work/Pod-Coverage-Moose-0.0 +8" && /opt/local/bin/perl5.34 Makefile.PL INSTALLDIRS=vendor CC="/usr +/bin/clang" LD="/usr/bin/clang" *** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ** +* If you're seeing this warning, your toolchain is really, really old* a +nd you'll almost certainly have problems installing CPAN modules from thi +s century. But never fear, dear user, for we have the technology to fix +this! If you're using CPAN.pm to install things, then you can upgrade it usi +ng: cpan CPAN If you're using CPANPLUS to install things, then you can upgrade it us +ing: cpanp CPANPLUS If you're using cpanminus, you shouldn't be seeing this message in the + first place, so please file an issue on github. If you're using a packaging tool through a unix distribution, this iss +ue should be reported to the package manager. If you're installing manually, please retrain your fingers to run Buil +d.PL when present instead of Makefile.PL. This public service announcement was brought to you by the Perl Toolch +ain Gang, the irc.perl.org #toolchain IRC channel, and the number 42. ---- * Alternatively, you are doing something overly clever, in which case +you should consider setting the 'prefer_installer' config option in CPAN.p +m, or 'prefer_makefile' in CPANPLUS, to 'mb" and '0' respectively. You can also silence this warning for future installations by setting +the PERL_MM_FALLBACK_SILENCE_WARNING environment variable. Checking if your kit is complete... Looks good Generating a Unix-style Makefile Writing Makefile for Pod::Coverage::Moose

This is Perl 5.34, not really outdated. Most Perl Modules used in toolchain are already in Perl's core. Actually what is causing this warning? Which modules are being checked for their age?

Replies are listed 'Best First'.
Re: Warnings when trying to install Pod::Coverage::Moose
by Corion (Patriarch) on Nov 26, 2024 at 17:12 UTC

    This error is created by Build.PL when any prerequisite raised an error. Ideally, there would be a list of additional error messages at the bottom of the output:

    my %errors = map { eval "require $_; $_->VERSION($configure_requires{$_}); 1"; $_ => $@, } keys %configure_requires; if (!grep $_, values %errors) { # This section for Pod-Coverage-Moose was generated by Dist::Zilla +::Plugin::ModuleBuildTiny 0.017. use strict; use warnings; use 5.006; # use Module::Build::Tiny 0.034; Module::Build::Tiny::Build_PL(); } else { if (not $ENV{PERL_MB_FALLBACK_SILENCE_WARNING}) { warn <<'EOW' *** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ** +* ... You can also silence this warning for future installations by setting +the PERL_MB_FALLBACK_SILENCE_WARNING environment variable, but please don' +t do that until you fix your toolchain as described above. Errors from configure prereqs: EOW . do { require Data::Dumper; Data::Dumper->new([ \%errors ])->Ind +ent(2)->Terse(1)->Sortkeys(1)->Dump; }; sleep 10 if -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT +)); }

    The weird thing is that the section starting with

    Errors from configure prereqs:

    ... is missing, as are the actual error messages. So I guess that what we are seeing is not the whole truth or that Data::Dumper output went to STDOUT and that is not shown.

      > This error is created by Build.PL when any prerequisite raised an error.

      And the relevant part of Build.PL seems to be generated by Dist::Zilla::Plugin::ModuleBuildTiny::Fallback, if I'm not mistaken.

      map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]
      The warning is actually from the Makefile.PL file. It exists as a fallback, but a properly behaving CPAN client (or other tool that installs modules) should always prefer a Build.PL if it exists.
        but a properly behaving CPAN client (or other tool that installs modules) should always prefer a Build.PL if it exists

        May I ask where that is documented? I explicitly prefer the Makefile.PL way of doing things.