Skip Menu |
 

This queue is for tickets about the CPAN CPAN distribution.

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

People
Owner: Nobody in particular
Requestors: 'spro^^*%*^6ut# [...] &$%*c
Cc:
AdminCc:

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



Subject: Dependency problem: does not install on fresh 5.26.0 installation
Download (untitled) / with headers
text/plain 6.7k
I have just installed 5.26.0 with the defaults for everything. ‘test Class::Load’ in the CPAN shell fails, apparently because a required dependency (Data::OptList) is listed as optional, so things get processed the wrong order. What I think are relevant parts of the build log are as follows: $ cpan5.26.0 Loading internal null logger. Install Log::Log4perl for logging messages There seems to be running another CPAN process (pid 16650). Contacting... Other job is running. Shall I try to run in downgraded mode? (Y/n) [y] Running in downgraded mode (experimental). Please report if something unexpected happens cpan shell -- CPAN exploration and modules installation (v2.18) Enter 'h' for help. Show quoted text
nolock_cpan> test Class::Load
... 'YAML' not installed, will not store persistent state CPAN: CPAN::Meta::Requirements loaded ok (v2.140) CPAN: Parse::CPAN::Meta loaded ok (v2.150010) CPAN: CPAN::Meta loaded ok (v2.150010) CPAN: Module::CoreList loaded ok (v5.20170530) Configuring E/ET/ETHER/Class-Load-0.24.tar.gz with Makefile.PL Checking if your kit is complete... Looks good Warning: prerequisite Data::OptList 0 not found. Warning: prerequisite Module::Implementation 0.04 not found. Warning: prerequisite Module::Runtime 0.012 not found. Warning: prerequisite Package::Stash 0.14 not found. Warning: prerequisite Test::Fatal 0 not found. Warning: prerequisite Test::Needs 0 not found. Warning: prerequisite Try::Tiny 0 not found. Generating a Unix-style Makefile Writing Makefile for Class::Load Writing MYMETA.yml and MYMETA.json ETHER/Class-Load-0.24.tar.gz /usr/local/bin/perl5.26.0 Makefile.PL -- OK Running make for E/ET/ETHER/Class-Load-0.24.tar.gz Show quoted text
---- Unsatisfied dependencies detected during ---- ---- ETHER/Class-Load-0.24.tar.gz ---- Data::OptList [requires,optional] Module::Implementation [requires] Module::Runtime [requires] Package::Stash [requires] Test::Fatal [build_requires] Test::Needs [build_requires] Try::Tiny [requires] Running test for module 'Module::Implementation' ... Notice how the list of dependencies says [requires,optional] for Data::OptList. The modules are then processed in this order: • Module::Implementation, which depends on: • Module::Runtime, which depends on: • Module::Build • Test::Fatal, which depends on: • Try::Tiny • Test::Requires • Package::Stash, which depends on: • Dist::CheckConflicts • Package::Stash::XS • Test::Needs and then when it comes to build Class::Load, it again lists the optional prerequisite: Running make for E/ET/ETHER/Class-Load-0.24.tar.gz
---- Unsatisfied dependencies detected during ---- ---- ETHER/Class-Load-0.24.tar.gz ---- Data::OptList [requires,optional] 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 which fails: t/000-load.t .................... 1/? # Failed test 'use Test::Class::Load;' # at t/000-load.t line 9. # Tried to use 'Test::Class::Load'. # Error: Can't locate Data/OptList.pm in @INC (you may need to install the Data::OptList module) (@INC contains: blah blah blah) ... Files=16, Tests=2, 3 wallclock secs ( 0.07 usr 0.03 sys + 1.31 cusr 0.32 csys = 1.73 CPU) Result: FAIL Failed 13/16 test programs. 1/2 subtests failed. make: *** [test_dynamic] Error 2 ETHER/Class-Load-0.24.tar.gz /usr/bin/make test -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports ETHER/Class-Load-0.24.tar.gz Running test for module 'Data::OptList' Checksum for /Users/sprout/.cpan/sources/authors/id/R/RJ/RJBS/Data-OptList-0.110.tar.gz ok x Data-OptList-0.110 x Data-OptList-0.110/README x Data-OptList-0.110/Changes x Data-OptList-0.110/LICENSE x Data-OptList-0.110/dist.ini x Data-OptList-0.110/t x Data-OptList-0.110/t/hash.t x Data-OptList-0.110/META.yml x Data-OptList-0.110/MANIFEST Oh look, now it’s processing Data::OptList. How is that ‘,optional’ getting there? Attached is the full build log. $ perl5.26.0 -V Summary of my perl5 (revision 5 version 26 subversion 0) configuration: Platform: osname=darwin osvers=12.5.0 archname=darwin-2level uname='darwin pint.local 12.5.0 darwin kernel version 12.5.0: sun sep 29 13:33:47 pdt 2013; root:xnu-2050.48.12~1release_x86_64 x86_64 ' config_args='-Dversiononly -de' hint=recommended useposix=true d_sigaction=define useithreads=undef usemultiplicity=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n default_inc_excludes_dot=define bincompat5005=undef Compiler: cc='cc' ccflags ='-fno-common -DPERL_DARWIN -mmacosx-version-min=10.8 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include -DPERL_USE_SAFE_PUTENV' optimize='-O3' cppflags='-fno-common -DPERL_DARWIN -mmacosx-version-min=10.8 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include' ccversion='' gccversion='4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.27)' gccosandvers='' intsize=4 longsize=8 ptrsize=8 doublesize=8 byteorder=12345678 doublekind=3 d_longlong=define longlongsize=8 d_longdbl=define longdblsize=16 longdblkind=3 ivtype='long' ivsize=8 nvtype='double' nvsize=8 Off_t='off_t' lseeksize=8 alignbytes=8 prototype=define Linker and Libraries: ld='cc' ldflags =' -mmacosx-version-min=10.8 -fstack-protector -L/usr/local/lib -L/opt/local/lib' libpth=/usr/local/lib /usr/bin/../lib/clang/4.2/lib /usr/lib /opt/local/lib libs=-lpthread -ldbm -ldl -lm -lutil -lc perllibs=-lpthread -ldl -lm -lutil -lc libc= so=dylib useshrplib=false libperl=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs dlext=bundle d_dlsymun=undef ccdlflags=' ' cccdlflags=' ' lddlflags=' -mmacosx-version-min=10.8 -bundle -undefined dynamic_lookup -L/usr/local/lib -L/opt/local/lib -fstack-protector' Characteristics of this binary (from libperl): Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_COPY_ON_WRITE PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP PERL_OP_PARENT PERL_PRESERVE_IVUV PERL_USE_SAFE_PUTENV USE_64_BIT_ALL USE_64_BIT_INT USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_PERLIO USE_PERL_ATOF Built under darwin Compiled at Oct 29 2017 13:20:00 @INC: /usr/local/lib/perl5/site_perl/5.26.0/darwin-2level /usr/local/lib/perl5/site_perl/5.26.0 /usr/local/lib/perl5/5.26.0/darwin-2level /usr/local/lib/perl5/5.26.0 /usr/local/lib/perl5/site_perl
Subject: tmp.text
Download tmp.text
text/plain 98.2k

Message body is not shown because it is too large.

Download (untitled) / with headers
text/plain 261b
I think the issue is that Data::OptList is listed in both requires and recommends. The required version is version 0 and the recommends is for 0.110. I'd argue that this is a bug in the CPAN shell, but it probably makes sense to just require the 0.110 version.
Download (untitled) / with headers
text/plain 476b
On 2018-06-09 09:00:32, DROLSKY wrote: Show quoted text
> I think the issue is that Data::OptList is listed in both requires and > recommends. The required version is version 0 and the recommends is > for 0.110. > > I'd argue that this is a bug in the CPAN shell, but it probably makes > sense to just require the 0.110 version.
This is most definitely a CPAN bug. I'll move this ticket there. (I'll also update the prereqs in metadata so we don't hit this problem again, in the meantime.)
Download (untitled) / with headers
text/plain 275b
Having reproduced this in 2.18 we've been unable to reproduce in 2.20. This appears to be fixed now. Show quoted text
> This is most definitely a CPAN bug. I'll move this ticket there. > > (I'll also update the prereqs in metadata so we don't hit this problem > again, in the meantime.)
Download (untitled) / with headers
text/plain 105b
Indeed, this looks like a duplicate of #121914 which was fixed in 2.19. I'll mark this one as fixed, too.
Marking as resolved, since release 2.22 is out and not a trial. Thanks!


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

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