Skip Menu |

This queue is for tickets about the CPAN CPAN distribution.

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

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

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



Subject: build_require_install_policy=no: runtime dependency not installed if also listed as build_require
If build_require_install_policy is set to 'no', CPAN 2.00 fails to install dependencies if those are listed both as build_require and require: CPAN choose to not install them. How to reproduce: - Setup environment: - install LEONT/ExtUtils-Helpers-0.014.tar.gz - install LEONT/Module-Build-Tiny-0.013.tar.gz - o conf build_requires_install_policy no - Install LEONT/Module-Build-Tiny-0.025.tar.gz (this module has both build and runtime dependency on ExtUtils::Helpers 0.020) Expected result is that both ExtUtils::Helpers and Module::Build::Tiny have been upgraded. Instead only Module::Build::Tiny is installed. CPAN said about ExtUtils::Helpers: Not installing because is only 'build_requires' This is wrong. Here is the log: ------8<------8<------8<------8<------8<------8<------8<------8<------ $ cpan Module::Build::Tiny CPAN: Storable loaded ok (v2.39) Reading '/home/omengue/.local/share/.cpan/Metadata' Database was generated on Tue, 30 Jul 2013 12:41:05 GMT Running install for module 'Module::Build::Tiny' Running make for L/LE/LEONT/Module-Build-Tiny-0.025.tar.gz CPAN: Digest::SHA loaded ok (v5.61) CPAN: Compress::Zlib loaded ok (v2.033) Checksum for /home/omengue/.local/share/.cpan/sources/authors/id/L/LE/LEONT/Module-Build-Tiny-0.025.tar.gz ok Module-Build-Tiny-0.025/ Module-Build-Tiny-0.025/INSTALL Module-Build-Tiny-0.025/t/ Module-Build-Tiny-0.025/t/release-pod-syntax.t Module-Build-Tiny-0.025/t/lib/ Module-Build-Tiny-0.025/t/lib/DistGen.pm Module-Build-Tiny-0.025/t/simple.t Module-Build-Tiny-0.025/t/00-compile.t Module-Build-Tiny-0.025/Build.PL Module-Build-Tiny-0.025/lib/ Module-Build-Tiny-0.025/lib/Module/ Module-Build-Tiny-0.025/lib/Module/Build/ Module-Build-Tiny-0.025/lib/Module/Build/Tiny.pm Module-Build-Tiny-0.025/dist.ini Module-Build-Tiny-0.025/LICENSE Module-Build-Tiny-0.025/Todo Module-Build-Tiny-0.025/META.json Module-Build-Tiny-0.025/Changes Module-Build-Tiny-0.025/MANIFEST Module-Build-Tiny-0.025/META.yml Module-Build-Tiny-0.025/README CPAN: Parse::CPAN::Meta loaded ok (v1.4404) CPAN: CPAN::Meta loaded ok (v2.131560) CPAN: Module::CoreList loaded ok (v2.91) Show quoted text
---- Unsatisfied dependencies detected during ---- ---- LEONT/Module-Build-Tiny-0.025.tar.gz ---- ExtUtils::Helpers [build_requires] Running make test Make had some problems, won't test Delayed until after prerequisites Running make install Make had some problems, won't install Delayed until after prerequisites Running install for module 'ExtUtils::Helpers' Running make for L/LE/LEONT/ExtUtils-Helpers-0.021.tar.gz Checksum for /home/omengue/.local/share/.cpan/sources/authors/id/L/LE/LEONT/ExtUtils-Helpers-0.021.tar.gz ok ExtUtils-Helpers-0.021/ ExtUtils-Helpers-0.021/INSTALL ExtUtils-Helpers-0.021/t/ ExtUtils-Helpers-0.021/t/make_executable.t ExtUtils-Helpers-0.021/t/release-pod-syntax.t ExtUtils-Helpers-0.021/t/author-split_like_shell.t ExtUtils-Helpers-0.021/t/release-pod-coverage.t ExtUtils-Helpers-0.021/t/tilde.t ExtUtils-Helpers-0.021/t/split_like_shell.t ExtUtils-Helpers-0.021/t/man_pagename.t ExtUtils-Helpers-0.021/t/00-compile.t ExtUtils-Helpers-0.021/Makefile.PL ExtUtils-Helpers-0.021/lib/ ExtUtils-Helpers-0.021/lib/ExtUtils/ ExtUtils-Helpers-0.021/lib/ExtUtils/Helpers.pm ExtUtils-Helpers-0.021/lib/ExtUtils/Helpers/ ExtUtils-Helpers-0.021/lib/ExtUtils/Helpers/Windows.pm ExtUtils-Helpers-0.021/lib/ExtUtils/Helpers/Unix.pm ExtUtils-Helpers-0.021/lib/ExtUtils/Helpers/VMS.pm ExtUtils-Helpers-0.021/dist.ini ExtUtils-Helpers-0.021/LICENSE ExtUtils-Helpers-0.021/META.json ExtUtils-Helpers-0.021/Changes ExtUtils-Helpers-0.021/MANIFEST ExtUtils-Helpers-0.021/META.yml ExtUtils-Helpers-0.021/README CPAN.pm: Building L/LE/LEONT/ExtUtils-Helpers-0.021.tar.gz CPAN: CPAN::Reporter loaded ok (v1.2010) Checking if your kit is complete... Looks good Writing Makefile for ExtUtils::Helpers Writing MYMETA.yml and MYMETA.json (/usr/bin/perl Makefile.PL exited with 0) CPAN::Reporter: Makefile.PL result is 'pass', No errors. cp lib/ExtUtils/Helpers.pm blib/lib/ExtUtils/Helpers.pm cp lib/ExtUtils/Helpers/Windows.pm blib/lib/ExtUtils/Helpers/Windows.pm cp lib/ExtUtils/Helpers/VMS.pm blib/lib/ExtUtils/Helpers/VMS.pm cp lib/ExtUtils/Helpers/Unix.pm blib/lib/ExtUtils/Helpers/Unix.pm (/usr/bin/make exited with 0) CPAN::Reporter: make result is 'pass', No errors. LEONT/ExtUtils-Helpers-0.021.tar.gz /usr/bin/make -- OK CPAN: YAML::XS loaded ok (v0.41) Running make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00-compile.t ............... ok t/author-split_like_shell.t .. skipped: these tests are for testing by the author t/make_executable.t .......... ok t/man_pagename.t ............. ok t/release-pod-coverage.t ..... skipped: these tests are for release candidate testing t/release-pod-syntax.t ....... skipped: these tests are for release candidate testing t/split_like_shell.t ......... ok t/tilde.t .................... ok All tests successful. Files=8, Tests=34, 1 wallclock secs ( 0.04 usr 0.01 sys + 0.22 cusr 0.06 csys = 0.33 CPU) Result: PASS (/usr/bin/make test exited with 0) CPAN::Reporter: Test result is 'pass', All tests successful. CPAN::Reporter: preparing a CPAN Testers report for ExtUtils-Helpers-0.021 CPAN::Reporter: this appears to be a duplicate report for the test phase: PASS ExtUtils-Helpers-0.021 x86_64-linux-gnu-thread-multi 2.6.42-37-generic Test report will not be sent. LEONT/ExtUtils-Helpers-0.021.tar.gz /usr/bin/make test -- OK Running make install Not installing because is only 'build_requires' Running make for L/LE/LEONT/Module-Build-Tiny-0.025.tar.gz Prepending /home/omengue/.local/share/.cpan/build/ExtUtils-Helpers-0.021-cN_LvE/blib/arch /home/omengue/.local/share/.cpan/build/ExtUtils-Helpers-0.021-cN_LvE/blib/lib to PERL5LIB for 'get' Prepending /home/omengue/.local/share/.cpan/build/ExtUtils-Helpers-0.021-cN_LvE/blib/arch /home/omengue/.local/share/.cpan/build/ExtUtils-Helpers-0.021-cN_LvE/blib/lib to PERL5LIB for 'make' CPAN.pm: Building L/LE/LEONT/Module-Build-Tiny-0.025.tar.gz Creating new 'Build' script for 'Module-Build-Tiny' version '0.025' (/usr/bin/perl Build.PL exited with 0) CPAN::Reporter: Build.PL result is 'pass', No errors. cp lib/Module/Build/Tiny.pm blib/lib/Module/Build/Tiny.pm (./Build exited with 0) CPAN::Reporter: Build result is 'pass', No errors. LEONT/Module-Build-Tiny-0.025.tar.gz ./Build -- OK Prepending /home/omengue/.local/share/.cpan/build/ExtUtils-Helpers-0.021-cN_LvE/blib/arch /home/omengue/.local/share/.cpan/build/ExtUtils-Helpers-0.021-cN_LvE/blib/lib to PERL5LIB for 'test' Running Build test t/00-compile.t .......... ok t/release-pod-syntax.t .. skipped: these tests are for release candidate testing t/simple.t .............. ok All tests successful. Files=3, Tests=24, 3 wallclock secs ( 0.02 usr 0.02 sys + 0.36 cusr 0.11 csys = 0.51 CPU) Result: PASS (./Build test exited with 0) CPAN::Reporter: Test result is 'pass', All tests successful. CPAN::Reporter: preparing a CPAN Testers report for Module-Build-Tiny-0.025 CPAN::Reporter: this appears to be a duplicate report for the test phase: PASS Module-Build-Tiny-0.025 x86_64-linux-gnu-thread-multi 2.6.42-37-generic Test report will not be sent. LEONT/Module-Build-Tiny-0.025.tar.gz ./Build test -- OK Running Build install Prepending /home/omengue/.local/share/.cpan/build/Module-Build-Tiny-0.025-vF6Qjg/blib/arch /home/omengue/.local/share/.cpan/build/Module-Build-Tiny-0.025-vF6Qjg/blib/lib /home/omengue/.local/share/.cpan/build/ExtUtils-Helpers-0.021-cN_LvE/blib/arch /home/omengue/.local/share/.cpan/build/ExtUtils-Helpers-0.021-cN_LvE/blib/lib to PERL5LIB for 'install' Installing /home/omengue/.perl/lib/perl5/Module/Build/Tiny.pm Installing /home/omengue/.perl/man/man3/Module::Build::Tiny.3pm LEONT/Module-Build-Tiny-0.025.tar.gz ./Build install -- OK ------8<------8<------8<------8<------8<------8<------8<------8<------ -- Olivier Mengué - http://perlresume.org/DOLMEN
Subject: Re: [rt.cpan.org #87474] build_require_install_policy=no: runtime dependency not installed if also listed as build_require
Date: Wed, 31 Jul 2013 06:50:57 -0400
To: bug-CPAN <bug-CPAN [...] rt.cpan.org>
From: David Golden <dagolden [...] cpan.org>
This is sort of known and I have a branch which fixed it, but broke other things. Thank you for the reminder to get it fixed. David
On 2013-07-31 05:53:04, DOLMEN wrote: Show quoted text
> If build_require_install_policy is set to 'no', CPAN 2.00 fails to > install dependencies if those are listed both as build_require and > require: CPAN choose to not install them. > > > How to reproduce: > - Setup environment: > - install LEONT/ExtUtils-Helpers-0.014.tar.gz > - install LEONT/Module-Build-Tiny-0.013.tar.gz > - o conf build_requires_install_policy no > - Install LEONT/Module-Build-Tiny-0.025.tar.gz > (this module has both build and runtime dependency on > ExtUtils::Helpers 0.020) > > Expected result is that both ExtUtils::Helpers and Module::Build::Tiny > have been upgraded. > Instead only Module::Build::Tiny is installed. > > CPAN said about ExtUtils::Helpers: Not installing because is only > 'build_requires' > This is wrong. > > Here is the log: > ------8<------8<------8<------8<------8<------8<------8<------8<------ > $ cpan Module::Build::Tiny > CPAN: Storable loaded ok (v2.39) > Reading '/home/omengue/.local/share/.cpan/Metadata' > Database was generated on Tue, 30 Jul 2013 12:41:05 GMT > Running install for module 'Module::Build::Tiny' > Running make for L/LE/LEONT/Module-Build-Tiny-0.025.tar.gz > CPAN: Digest::SHA loaded ok (v5.61) > CPAN: Compress::Zlib loaded ok (v2.033) > Checksum for > /home/omengue/.local/share/.cpan/sources/authors/id/L/LE/LEONT/Module- > Build-Tiny-0.025.tar.gz ok > Module-Build-Tiny-0.025/ > Module-Build-Tiny-0.025/INSTALL > Module-Build-Tiny-0.025/t/ > Module-Build-Tiny-0.025/t/release-pod-syntax.t > Module-Build-Tiny-0.025/t/lib/ > Module-Build-Tiny-0.025/t/lib/DistGen.pm > Module-Build-Tiny-0.025/t/simple.t > Module-Build-Tiny-0.025/t/00-compile.t > Module-Build-Tiny-0.025/Build.PL > Module-Build-Tiny-0.025/lib/ > Module-Build-Tiny-0.025/lib/Module/ > Module-Build-Tiny-0.025/lib/Module/Build/ > Module-Build-Tiny-0.025/lib/Module/Build/Tiny.pm > Module-Build-Tiny-0.025/dist.ini > Module-Build-Tiny-0.025/LICENSE > Module-Build-Tiny-0.025/Todo > Module-Build-Tiny-0.025/META.json > Module-Build-Tiny-0.025/Changes > Module-Build-Tiny-0.025/MANIFEST > Module-Build-Tiny-0.025/META.yml > Module-Build-Tiny-0.025/README > CPAN: Parse::CPAN::Meta loaded ok (v1.4404) > CPAN: CPAN::Meta loaded ok (v2.131560) > CPAN: Module::CoreList loaded ok (v2.91) > ---- Unsatisfied dependencies detected during ---- > ---- LEONT/Module-Build-Tiny-0.025.tar.gz ---- > ExtUtils::Helpers [build_requires] > Running make test > Make had some problems, won't test > Delayed until after prerequisites > Running make install > Make had some problems, won't install > Delayed until after prerequisites > Running install for module 'ExtUtils::Helpers' > Running make for L/LE/LEONT/ExtUtils-Helpers-0.021.tar.gz > Checksum for > /home/omengue/.local/share/.cpan/sources/authors/id/L/LE/LEONT/ExtUtils- > Helpers-0.021.tar.gz ok > ExtUtils-Helpers-0.021/ > ExtUtils-Helpers-0.021/INSTALL > ExtUtils-Helpers-0.021/t/ > ExtUtils-Helpers-0.021/t/make_executable.t > ExtUtils-Helpers-0.021/t/release-pod-syntax.t > ExtUtils-Helpers-0.021/t/author-split_like_shell.t > ExtUtils-Helpers-0.021/t/release-pod-coverage.t > ExtUtils-Helpers-0.021/t/tilde.t > ExtUtils-Helpers-0.021/t/split_like_shell.t > ExtUtils-Helpers-0.021/t/man_pagename.t > ExtUtils-Helpers-0.021/t/00-compile.t > ExtUtils-Helpers-0.021/Makefile.PL > ExtUtils-Helpers-0.021/lib/ > ExtUtils-Helpers-0.021/lib/ExtUtils/ > ExtUtils-Helpers-0.021/lib/ExtUtils/Helpers.pm > ExtUtils-Helpers-0.021/lib/ExtUtils/Helpers/ > ExtUtils-Helpers-0.021/lib/ExtUtils/Helpers/Windows.pm > ExtUtils-Helpers-0.021/lib/ExtUtils/Helpers/Unix.pm > ExtUtils-Helpers-0.021/lib/ExtUtils/Helpers/VMS.pm > ExtUtils-Helpers-0.021/dist.ini > ExtUtils-Helpers-0.021/LICENSE > ExtUtils-Helpers-0.021/META.json > ExtUtils-Helpers-0.021/Changes > ExtUtils-Helpers-0.021/MANIFEST > ExtUtils-Helpers-0.021/META.yml > ExtUtils-Helpers-0.021/README > > CPAN.pm: Building L/LE/LEONT/ExtUtils-Helpers-0.021.tar.gz > > CPAN: CPAN::Reporter loaded ok (v1.2010) > Checking if your kit is complete... > Looks good > Writing Makefile for ExtUtils::Helpers > Writing MYMETA.yml and MYMETA.json > (/usr/bin/perl Makefile.PL exited with 0) > CPAN::Reporter: Makefile.PL result is 'pass', No errors. > cp lib/ExtUtils/Helpers.pm blib/lib/ExtUtils/Helpers.pm > cp lib/ExtUtils/Helpers/Windows.pm > blib/lib/ExtUtils/Helpers/Windows.pm > cp lib/ExtUtils/Helpers/VMS.pm blib/lib/ExtUtils/Helpers/VMS.pm > cp lib/ExtUtils/Helpers/Unix.pm blib/lib/ExtUtils/Helpers/Unix.pm > (/usr/bin/make exited with 0) > CPAN::Reporter: make result is 'pass', No errors. > LEONT/ExtUtils-Helpers-0.021.tar.gz > /usr/bin/make -- OK > CPAN: YAML::XS loaded ok (v0.41) > Running make test > PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" > "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t > t/00-compile.t ............... ok > t/author-split_like_shell.t .. skipped: these tests are for testing by > the author > t/make_executable.t .......... ok > t/man_pagename.t ............. ok > t/release-pod-coverage.t ..... skipped: these tests are for release > candidate testing > t/release-pod-syntax.t ....... skipped: these tests are for release > candidate testing > t/split_like_shell.t ......... ok > t/tilde.t .................... ok > All tests successful. > Files=8, Tests=34, 1 wallclock secs ( 0.04 usr 0.01 sys + 0.22 cusr > 0.06 csys = 0.33 CPU) > Result: PASS > (/usr/bin/make test exited with 0) > CPAN::Reporter: Test result is 'pass', All tests successful. > CPAN::Reporter: preparing a CPAN Testers report for ExtUtils-Helpers- > 0.021 > > CPAN::Reporter: this appears to be a duplicate report for the test > phase: > PASS ExtUtils-Helpers-0.021 x86_64-linux-gnu-thread-multi 2.6.42-37- > generic > > Test report will not be sent. > > LEONT/ExtUtils-Helpers-0.021.tar.gz > /usr/bin/make test -- OK > Running make install > Not installing because is only 'build_requires' > Running make for L/LE/LEONT/Module-Build-Tiny-0.025.tar.gz > Prepending /home/omengue/.local/share/.cpan/build/ExtUtils-Helpers- > 0.021-cN_LvE/blib/arch > /home/omengue/.local/share/.cpan/build/ExtUtils-Helpers-0.021- > cN_LvE/blib/lib to PERL5LIB for 'get' > Prepending /home/omengue/.local/share/.cpan/build/ExtUtils-Helpers- > 0.021-cN_LvE/blib/arch > /home/omengue/.local/share/.cpan/build/ExtUtils-Helpers-0.021- > cN_LvE/blib/lib to PERL5LIB for 'make' > > CPAN.pm: Building L/LE/LEONT/Module-Build-Tiny-0.025.tar.gz > > Creating new 'Build' script for 'Module-Build-Tiny' version '0.025' > (/usr/bin/perl Build.PL exited with 0) > CPAN::Reporter: Build.PL result is 'pass', No errors. > cp lib/Module/Build/Tiny.pm blib/lib/Module/Build/Tiny.pm > (./Build exited with 0) > CPAN::Reporter: Build result is 'pass', No errors. > LEONT/Module-Build-Tiny-0.025.tar.gz > ./Build -- OK > Prepending /home/omengue/.local/share/.cpan/build/ExtUtils-Helpers- > 0.021-cN_LvE/blib/arch > /home/omengue/.local/share/.cpan/build/ExtUtils-Helpers-0.021- > cN_LvE/blib/lib to PERL5LIB for 'test' > Running Build test > t/00-compile.t .......... ok > t/release-pod-syntax.t .. skipped: these tests are for release > candidate testing > t/simple.t .............. ok > All tests successful. > Files=3, Tests=24, 3 wallclock secs ( 0.02 usr 0.02 sys + 0.36 cusr > 0.11 csys = 0.51 CPU) > Result: PASS > (./Build test exited with 0) > CPAN::Reporter: Test result is 'pass', All tests successful. > CPAN::Reporter: preparing a CPAN Testers report for Module-Build-Tiny- > 0.025 > > CPAN::Reporter: this appears to be a duplicate report for the test > phase: > PASS Module-Build-Tiny-0.025 x86_64-linux-gnu-thread-multi 2.6.42-37- > generic > > Test report will not be sent. > > LEONT/Module-Build-Tiny-0.025.tar.gz > ./Build test -- OK > Running Build install > Prepending /home/omengue/.local/share/.cpan/build/Module-Build-Tiny- > 0.025-vF6Qjg/blib/arch /home/omengue/.local/share/.cpan/build/Module- > Build-Tiny-0.025-vF6Qjg/blib/lib > /home/omengue/.local/share/.cpan/build/ExtUtils-Helpers-0.021- > cN_LvE/blib/arch /home/omengue/.local/share/.cpan/build/ExtUtils- > Helpers-0.021-cN_LvE/blib/lib to PERL5LIB for 'install' > Installing /home/omengue/.perl/lib/perl5/Module/Build/Tiny.pm > Installing /home/omengue/.perl/man/man3/Module::Build::Tiny.3pm > LEONT/Module-Build-Tiny-0.025.tar.gz > ./Build install -- OK > ------8<------8<------8<------8<------8<------8<------8<------8<------
This is still an issue with 2.20-TRIAL. My testing setup: OS preparation: - a fresh debian:buster image in a docker container: docker run -it debian:buster bash - install prereqs apt update && apt install -y make gcc perl-modules libterm-readkey-perl libterm-readline-perl-perl CPAN stuff: - instal newest CPAN.pm: cpan install ANDK/CPAN-2.20-TRIAL.tar.gz quit - set build_requires_install_policy no and install modules: cpan o conf build_requires_install_policy no o conf commit install HTTP::Message LWP - libwww-perl is there and broken: perl -MLWP -e1 Can't locate Try/Tiny.pm in @INC (you may need to install the Try::Tiny module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.1 /usr/local/share/perl/5.26.1 /usr/lib/x86_64-linux-gnu/perl5/5.26 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at /usr/local/share/perl/5.26.1/LWP/Protocol.pm line 11. ... Short analysis: HTTP::Message specifies Try::Tiny as a build_requires, so it does not get installed, but LWP needs it as a hard requirement.
Marking as resolved, Thanks!