Skip Menu |

This queue is for tickets about the CPAN CPAN distribution.

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

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

Bug Information
Severity: Normal
Broken in: 1.9800
Fixed in: 2.22



Subject: build_requires_install_policy=no and deep dependency trees
When installing Dist::Zilla on a bare Perl environment (core and only a few modules (CPAN, File::HomeDir, Task::Reporter) under the CPAN config option "build_requires_install_policy set to 'no', the following modules are not installed as a result: - Module::Runtime 0.012 - Hook::LexWrap The problems seems to be an issue related to the handling of deep dependency trees: - Hook::LexWrap is built for Test::SubCalls that seems to be built before Sub::UpLevel. So Hook::LexWrap seems to be marked as "build_require" because it is a dependency of a build_requires. So as a result Sub::UpLevel is installed but without Hook::LexWrap, despite Sub::UpLevel is a "requires". - Module::Runtime 0.012: it is a dependency of Class::Load (a direct dependency of Dist::Zilla) and Module::Implementation. I've not yet figured out the reason why it is marked as "build_requires" and so not installed. Is it because Module::Implementation is itself a dependency of Class::Load? In addition, ExtUtils::MakeMaker 6.62 is built and so used during the build, but not installed as a result. So if later one of the modules is upgraded it will be installed with the older version of EUMM. Here is my CPAN config: ------8<------8<------8<------8<------8<------ applypatch [] auto_commit [0] build_cache [100] build_dir [/home/omengue/.local/share/.cpan/build] build_dir_reuse [0] build_requires_install_policy [no] bzip2 [/bin/bzip2] cache_metadata [1] check_sigs [0] colorize_debug undef colorize_output undef colorize_print undef colorize_warn undef commandnumber_in_prompt [1] commands_quote undef connect_to_internet_ok [1] cpan_home [/home/omengue/.local/share/.cpan] curl [/usr/bin/curl] dontload_hash undef dontload_list undef ftp [/usr/bin/ftp] ftp_passive [1] ftp_proxy [] ftpstats_period undef ftpstats_size undef getcwd [cwd] gpg [/usr/bin/gpg] gzip [/bin/gzip] halt_on_failure [0] histfile [/home/omengue/.local/share/.cpan/histfile] histsize [100] http_proxy [] inactivity_timeout [0] index_expire [1] inhibit_startup_message [0] keep_source_where [/home/omengue/.local/share/.cpan/sources] load_module_verbosity [v] lynx [] make [/usr/bin/make] make_arg [] make_install_arg [] make_install_make_command [/usr/bin/make] makepl_arg [] mbuild_arg [] mbuild_install_arg [] mbuild_install_build_command [./Build] mbuildpl_arg [] ncftp [] ncftpget [] no_proxy [] pager [/usr/bin/less] password undef patch [/usr/bin/patch] patches_dir undef perl5lib_verbosity [v] prefer_external_tar [1] prefer_installer [MB] prefs_dir [/home/omengue/.local/share/.cpan/prefs] prerequisites_policy [ask] proxy_pass undef proxy_user undef randomize_urllist undef scan_cache [atstart] shell [/bin/bash] show_unparsable_versions [0] show_upload_date [0] show_zero_versions [0] tar [/bin/tar] tar_verbosity [v] term_is_latin [1] term_ornaments [1] test_report [1] trust_test_report_history [0] unzip [/usr/bin/unzip] urllist 0 [http://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/cpan/] 1 [http://mir2.ovh.net/ftp.cpan.org/] 2 [http://www.cpan.org/] use_sqlite [0] username undef version_timeout [15] wait_list undef wget [/usr/bin/wget] yaml_load_code [0] yaml_module [YAML] ------8<------8<------8<------8<------8<------ -- Olivier Mengué - http://perlresume.org/DOLMEN
Subject: Re: [rt.cpan.org #77708] build_requires_install_policy=no and deep dependency trees
Date: Fri, 8 Jun 2012 21:27:35 -0400
To: bug-CPAN [...] rt.cpan.org
From: David Golden <dagolden [...] cpan.org>
My guess is that this is related to a bug with dependencies listed both in requires and build_requires. There is a patch on a branch I'm (slowly) working on that fixes that bug. David
I'm tempted to believe that this is one of the bugs fixed in 2.22, if it was not already fixed earlier. Thanks for your patience!