This queue is for tickets about the CPAN CPAN distribution.

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

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

BugTracker
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!


This service runs on Request Tracker, is sponsored by The Perl Foundation, and maintained by Best Practical Solutions.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.