perl-Git-CPAN-Patch-0.8.0-5.fc21 fails to build in F21 because tests fail: # Failed test 'require MooseX::App::Cmd::Command;' # at t/000-report-versions.t line 441. Bailout called. Further testing stopped: can't load MooseX::App::Cmd::Command # Tried to require 'MooseX::App::Cmd::Command'. # Error: Could not load class (MouseX::Getopt) because : Can't locate MouseX/Getopt.pm in @INC (you may need to install the MouseX::Getopt module) (@INC contains: /builddir/build/BUILD/Git-CPAN-Patch-0.8.0/blib/lib /builddir/build/BUILD/Git-CPAN-Patch-0.8.0/blib/arch /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/lib64/perl5/vendor_perl/Mouse/Util.pm line 283. # at /usr/lib64/perl5/vendor_perl/Mouse/Util.pm line 292. # Mouse::Util::load_class("MouseX::Getopt") called at /usr/lib64/perl5/vendor_perl/Mouse/Util.pm line 315 # Mouse::Util::apply_all_roles("MooseX::App::Cmd::Command", "MouseX::Getopt") called at /usr/lib64/perl5/vendor_perl/Mouse.pm line 40 # Mouse::with("MouseX::Getopt") called at /usr/share/perl5/vendor_perl/MooseX/App/Cmd/Command.pm line 10 # require MooseX/App/Cmd/Command.pm called at (eval 401) line 2 # eval 'package main; # require MooseX::App::Cmd::Command; # 1; # ' called at /usr/share/perl5/vendor_perl/Test/More.pm line 992 # Test::More::_eval("package main;\x{a}require MooseX::App::Cmd::Command;\x{a}1;\x{a}") called at /usr/share/perl5/vendor_perl/Test/More.pm line 859 # Test::More::require_ok("MooseX::App::Cmd::Command") called at t/000-report-versions.t line 441 # main::BEGIN() called at /usr/share/perl5/vendor_perl/MooseX/App/Cmd/Command.pm line 0 # eval {...} called at /usr/share/perl5/vendor_perl/MooseX/App/Cmd/Command.pm line 0 # Compilation failed in require at (eval 401) line 2. # Tests were run but no plan was declared and done_testing() was not seen. # Looks like your test exited with 255 just after 23. FAILED--Further testing stopped: can't load MooseX::App::Cmd::Command This because of incompatibility with current MooseX::App::Cmd::Command. MooseX::App::Cmd::Command is to be used with Moose, while Mouse implementation should use MouseX::App::Cmd::Command.
Well, it's because MooseX::App::Cmd::Command uses Any::Moose and Any::Moose prefers Mouse: $ perl -e 'use MooseX::App::Cmd::Command' Could not load class (MouseX::Getopt) because : Can't locate MouseX/Getopt.pm in @INC (you may need to install the MouseX::Getopt module) (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/lib64/perl5/vendor_perl/Mouse/Util.pm line 283. at /usr/lib64/perl5/vendor_perl/Mouse/Util.pm line 292. Mouse::Util::load_class("MouseX::Getopt") called at /usr/lib64/perl5/vendor_perl/Mouse/Util.pm line 315 Mouse::Util::apply_all_roles("MooseX::App::Cmd::Command", "MouseX::Getopt") called at /usr/lib64/perl5/vendor_perl/Mouse.pm line 40 Mouse::with("MouseX::Getopt") called at /usr/share/perl5/vendor_perl/MooseX/App/Cmd/Command.pm line 10 require MooseX/App/Cmd/Command.pm called at -e line 1 main::BEGIN() called at /usr/share/perl5/vendor_perl/MooseX/App/Cmd/Command.pm line 0 eval {...} called at /usr/share/perl5/vendor_perl/MooseX/App/Cmd/Command.pm line 0 Compilation failed in require at -e line 1. BEGIN failed--compilation aborted at -e line 1. While: $ perl -e 'use Moose; use MooseX::App::Cmd::Command' passes. This could be a bug in MooseX::App::Cmd::Command which does that for backward compatibility. I think we can solve that by adding an exception to the t/000-report-versions.t because there is already list of such exceptions. The only MooseX::App::Cmd::Command usage is in lib/Git/CPAN/Patch/Command/sources.pm which uses Moose explicitly.
Created attachment 887541 [details] Fix in the test