|Subject:||requires() fails if the requirement has dependencies.|
The attached Makefile.PL and output illustrates the problem. When using MI, if your dependencies have unresolved dependencies the build for the dependency is considered a failure. This does not occur when simply installing the dependency under the CPAN shell. In my environment I do not have File::Find::Rule nor Number::Compare installed to trigger the bug. I've tried it also on Test::Dependencies (lacking it and File::Find::Rule) and JSAN::Client (lacking it and HTML::Location). I noticed this bug because I am unable to install anything which depends on Test::Dependencies without first manually installing TD. This includes Class::Accessor::Named.
0 windhund ~/tmp/Foo-Bar$ perl Makefile.PL include /Users/schwern/tmp/Foo-Bar/inc/Module/Install.pm include inc/Module/Install/Metadata.pm include inc/Module/Install/Base.pm include inc/Module/Install/AutoInstall.pm include inc/Module/Install/Include.pm include inc/Module/AutoInstall.pm *** Module::AutoInstall version 1.02 *** Checking for Perl dependencies... [Core Features] - File::Find::Rule ...missing. ==> Auto-install the 1 mandatory module(s) from CPAN? [y] CPAN: File::HomeDir loaded ok *** Dependencies will be installed the next time you type 'make'. (You may need to do that as the 'root' user.) *** Module::AutoInstall configuration finished. include inc/Module/Install/Makefile.pm include inc/Module/Install/WriteAll.pm Writing META.yml include inc/Module/Install/Win32.pm include inc/Module/Install/Can.pm include inc/Module/Install/Fetch.pm Warning: prerequisite File::Find::Rule 0 not found. Writing Makefile for Foo::Bar 0 windhund ~/tmp/Foo-Bar$ sudo make /usr/bin/perl "-Iinc" Makefile.PL --config= --installdeps=File::Find::Rule,0 include /Users/schwern/tmp/Foo-Bar/inc/Module/Install.pm include inc/Module/Install/Metadata.pm include inc/Module/Install/Base.pm include inc/Module/Install/AutoInstall.pm include inc/Module/Install/Include.pm include inc/Module/AutoInstall.pm *** Installing dependencies... CPAN: File::HomeDir loaded ok *** Installing File::Find::Rule... CPAN: Storable loaded ok Going to read /var/local/cpan_shell/Metadata Database was generated on Tue, 22 Aug 2006 02:32:34 GMT Running install for module File::Find::Rule Running make for R/RC/RCLAMP/File-Find-Rule-0.30.tar.gz CPAN: Digest::SHA loaded ok CPAN: Module::Signature loaded ok WARNING: This key is not certified with a trusted signature! Primary key fingerprint: 2E66 557A B97C 19C7 91AF 8E20 328D A867 450F 89EC Signature for /var/local/cpan_shell/sources/authors/id/R/RC/RCLAMP/CHECKSUMS ok CPAN: Compress::Zlib loaded ok Checksum for /var/local/cpan_shell/sources/authors/id/R/RC/RCLAMP/File-Find-Rule-0.30.tar.gz ok Scanning cache /var/local/cpan_shell/build for sizes File-Find-Rule-0.30/ File-Find-Rule-0.30/t/ File-Find-Rule-0.30/t/lib/ File-Find-Rule-0.30/t/lib/File/ File-Find-Rule-0.30/t/lib/File/Find/ File-Find-Rule-0.30/t/lib/File/Find/Rule/ File-Find-Rule-0.30/t/lib/File/Find/Rule/Test/ File-Find-Rule-0.30/t/lib/File/Find/Rule/Test/ATeam.pm File-Find-Rule-0.30/t/foobar File-Find-Rule-0.30/t/File-Find-Rule.t File-Find-Rule-0.30/t/findrule.t File-Find-Rule-0.30/findrule File-Find-Rule-0.30/META.yml File-Find-Rule-0.30/lib/ File-Find-Rule-0.30/lib/File/ File-Find-Rule-0.30/lib/File/Find/ File-Find-Rule-0.30/lib/File/Find/Rule.pm File-Find-Rule-0.30/lib/File/Find/Rule/ File-Find-Rule-0.30/lib/File/Find/Rule/Extending.pod File-Find-Rule-0.30/lib/File/Find/Rule/Procedural.pod File-Find-Rule-0.30/Changes File-Find-Rule-0.30/MANIFEST File-Find-Rule-0.30/README File-Find-Rule-0.30/Makefile.PL File-Find-Rule-0.30/Build.PL Removing previously used /var/local/cpan_shell/build/File-Find-Rule-0.30 Package came without SIGNATURE CPAN: Module::Build loaded ok CPAN.pm: Going to build R/RC/RCLAMP/File-Find-Rule-0.30.tar.gz Checking whether your kit is complete... Looks good Checking prerequisites... - ERROR: Number::Compare is not installed ERRORS/WARNINGS FOUND IN PREREQUISITES. You may wish to install the versions of the modules indicated above before proceeding with this installation Creating new 'Build' script for 'File-Find-Rule' version '0.30' CPAN: YAML loaded ok ---- Unsatisfied dependencies detected during [R/RC/RCLAMP/File-Find-Rule-0.30.tar.gz] ----- Number::Compare Running Build test Delayed until after prerequisites Running Build install Delayed until after prerequisites *** File::Find::Rule installation failed. *** Module::AutoInstall installation finished. 0 windhund ~/tmp/Foo-Bar$
use inc::Module::Install; name 'Foo-Bar'; version 123; requires 'File::Find::Rule'; license 'perl'; auto_install(); &WriteAll;