diff --git a/mozilla/webtools/bugzilla/.bzrrev b/mozilla/webtools/bugzilla/.bzrrev index 48e10e43b8c..bbae37c24d7 100644 --- a/mozilla/webtools/bugzilla/.bzrrev +++ b/mozilla/webtools/bugzilla/.bzrrev @@ -1 +1 @@ -7794 \ No newline at end of file +7795 \ No newline at end of file diff --git a/mozilla/webtools/bugzilla/Bugzilla/Install/CPAN.pm b/mozilla/webtools/bugzilla/Bugzilla/Install/CPAN.pm index 48dcf6fc08f..df32c40b5f1 100644 --- a/mozilla/webtools/bugzilla/Bugzilla/Install/CPAN.pm +++ b/mozilla/webtools/bugzilla/Bugzilla/Install/CPAN.pm @@ -55,6 +55,13 @@ use constant REQUIREMENTS => ( package => 'YAML', version => 0, }, + { + # Many modules on CPAN are now built with Dist::Zilla, which + # unfortunately means they require this version of EU::MM to install. + module => 'ExtUtils::MakeMaker', + package => 'ExtUtils-MakeMaker', + version => '6.31', + }, ); # We need the absolute path of ext_libpath, because CPAN chdirs around @@ -64,6 +71,13 @@ use constant REQUIREMENTS => ( # we make it a constant. use constant BZ_LIB => abs_path(bz_locations()->{ext_libpath}); +# These modules are problematic to install with "notest" (sometimes they +# get installed when they shouldn't). So we always test their installation +# and never ignore test failures. +use constant ALWAYS_TEST => qw( + Math::Random::Secure +); + # CPAN requires nearly all of its parameters to be set, or it will start # asking questions to the user. We want to avoid that, so we have # defaults here for most of the required parameters we know about, in case @@ -175,7 +189,11 @@ sub install_module { } print install_string('install_module', { module => $name, version => $module->cpan_version }) . "\n"; - if ($test) { + + if (_always_test($name)) { + CPAN::Shell->install($name); + } + elsif ($test) { CPAN::Shell->force('install', $name); } else { @@ -190,6 +208,11 @@ sub install_module { $CPAN::Config->{makepl_arg} = $original_makepl; } +sub _always_test { + my ($name) = @_; + return grep(lc($_) eq lc($name), ALWAYS_TEST) ? 1 : 0; +} + sub set_cpan_config { my $do_global = shift; my $bzlib = BZ_LIB;