Skip Menu |

This queue is for tickets about the CPAN CPAN distribution.

Report information
The Basics
Id: 121914
Status: resolved
Priority: 0/
Queue: CPAN

People
Owner: Nobody in particular
Requestors: RANDIR [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in:
  • 2.19-TRIAL
  • 2.20-TRIAL
  • 2.21-TRIAL
  • 2.22
  • 2.22-TRIAL



Subject: cpan client fails to install Class::Load
On perl 5.26-rc2 it's possible to install Class::Load only from a second attempt. Original ticket went into Class::Load's queue, but was redirected here (see https://rt.cpan.org/Ticket/Display.html?id=121839). CPAN module version is the one bundled with perl5.26 (i.e. 2.18).

Message body is not shown because it is too large.

Here's a full log from the second CPAN invocation: afl@dorothy% cpan Class::Load Loading internal null logger. Install Log::Log4perl for logging messages Reading '/home/afl/.cpan/Metadata' Database was generated on Wed, 24 May 2017 06:41:02 GMT Running install for module 'Class::Load' Checksum for /home/afl/.cpan/sources/authors/id/E/ET/ETHER/Class-Load-0.24.tar.gz ok 'YAML' not installed, will not store persistent state Configuring E/ET/ETHER/Class-Load-0.24.tar.gz with Makefile.PL Checking if your kit is complete... Looks good Generating a Unix-style Makefile Writing Makefile for Class::Load Writing MYMETA.yml and MYMETA.json ETHER/Class-Load-0.24.tar.gz /home/afl/perlbrew/perls/perl-5.26.0-rc2/bin/perl Makefile.PL -- OK Running make for E/ET/ETHER/Class-Load-0.24.tar.gz cp lib/Class/Load/PP.pm blib/lib/Class/Load/PP.pm cp lib/Class/Load.pm blib/lib/Class/Load.pm Manifying 1 pod document ETHER/Class-Load-0.24.tar.gz /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 "/home/afl/perlbrew/perls/perl-5.26.0-rc2/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00-report-prereqs.t ........... # # Versions for all modules listed in MYMETA.json (including optional ones): # # === Configure Requires === # # Module Want Have # ------------------- ---- ---- # ExtUtils::MakeMaker any 7.24 # # === Configure Suggests === # # Module Want Have # -------- ------- ---------- # JSON::PP 2.27300 2.27400_02 # # === Build Requires === # # Module Want Have # ------------------- ---- ---- # ExtUtils::MakeMaker any 7.24 # # === Test Requires === # # Module Want Have # ------------------- ---- -------- # ExtUtils::MakeMaker any 7.24 # File::Spec any 3.67 # Test::Fatal any 0.014 # Test::More 0.88 1.302073 # Test::Needs any 0.002005 # constant any 1.33 # lib any 0.64 # version any 0.9917 # # === Test Recommends === # # Module Want Have # ---------- -------- -------- # CPAN::Meta 2.120900 2.150010 # # === Runtime Requires === # # Module Want Have # ---------------------- ----- ------- # Carp any 1.42 # Data::OptList any 0.110 # Exporter any 5.72 # Module::Implementation 0.04 0.09 # Module::Runtime 0.012 0.014 # Package::Stash 0.14 0.37 # Scalar::Util any 1.46_02 # Try::Tiny any 0.28 # base any 2.25 # strict any 1.11 # warnings any 1.37 # # === Runtime Recommends === # # Module Want Have # ------------- ----- ----- # Data::OptList 0.110 0.110 # # === Other Modules === # # Module Have # --------- ---------- # JSON::PP 2.27400_02 # Sub::Name missing # YAML missing # autodie 2.29 # t/00-report-prereqs.t ........... ok t/000-load.t .................... 1/? # Using PP implementation t/000-load.t .................... ok t/001-is-class-loaded.t ......... ok t/002-try-load-class.t .......... ok t/003-load-class.t .............. ok t/004-load-double.t ............. ok t/005-load-optional.t ........... ok t/006-returned-error.t .......... ok t/007-first-existing.t .......... ok t/008-gvstash-bug.t ............. ok t/009-invalid-module-name.t ..... ok t/010-isa-false-positive.t ...... ok t/011-without-xs.t .............. skipped: Need Test::Without::Module t/012-without-implementation.t .. skipped: Need Test::Without::Module t/013-errors.t .................. ok t/014-weird-constants.t ......... ok All tests successful. Files=16, Tests=125, 1 wallclock secs ( 0.05 usr 0.00 sys + 0.70 cusr 0.05 csys = 0.80 CPU) Result: PASS ETHER/Class-Load-0.24.tar.gz /usr/bin/make test -- OK Running make install Manifying 1 pod document Installing /home/afl/perlbrew/perls/perl-5.26.0-rc2/lib/site_perl/5.26.0/Class/Load.pm Installing /home/afl/perlbrew/perls/perl-5.26.0-rc2/lib/site_perl/5.26.0/Class/Load/PP.pm Installing /home/afl/perlbrew/perls/perl-5.26.0-rc2/man/man3/Class::Load.3 Appending installation info to /home/afl/perlbrew/perls/perl-5.26.0-rc2/lib/5.26.0/x86_64-linux/perllocal.pod ETHER/Class-Load-0.24.tar.gz /usr/bin/make install -- OK
Thanks! On first inspection this looks like CPAN.pm is confused when a module ist both a "requires" and a "recommends" with the recommended version being higher than the required one. One could be tempted to at least partially argue it as a bug in the META.yml: why would somebody recommend a higher version when it is not required? Witness in META.yml: recommends: Data::OptList: '0.110' requires: Data::OptList: '0'
On 2017-05-28 00:26:49, ANDK wrote: Show quoted text
> One could be tempted to at least partially argue it as a bug in the > META.yml: why would somebody recommend a higher version when it is not > required?
Because Data::OptList 0.110 is much faster: https://github.com/moose/Class-Load/commit/4916895fa7fb7bdd862db61a281f9114c47c0729 https://github.com/rjbs/Data-OptList/pull/1
Fixed in repository, commit 5c86d071. Thanks for the report!
Marking as resolved, now that 2.22 is out. Thanks!