diff options
author | Max Kanat-Alexander <mkanat@bugzilla.org> | 2011-04-27 15:05:18 -0700 |
---|---|---|
committer | Max Kanat-Alexander <mkanat@bugzilla.org> | 2011-04-27 15:05:18 -0700 |
commit | 256ccae5e0ac4e09fe95d177d42b0770c05146b8 (patch) | |
tree | 7e73b8bb346ba6f81b4fd7fa85d504c752eb77c4 | |
parent | Fix typo in POD (diff) | |
download | bugzilla-256ccae5e0ac4e09fe95d177d42b0770c05146b8.tar.gz bugzilla-256ccae5e0ac4e09fe95d177d42b0770c05146b8.tar.bz2 bugzilla-256ccae5e0ac4e09fe95d177d42b0770c05146b8.zip |
Bug 646578: Make Math::Random::Secure fail to install if its dependencies
don't install properly, when using install-module.pl.
r=glob, a=mkanat
-rw-r--r-- | Bugzilla/Install/CPAN.pm | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/Bugzilla/Install/CPAN.pm b/Bugzilla/Install/CPAN.pm index bdf1d5f05..a5615817c 100644 --- a/Bugzilla/Install/CPAN.pm +++ b/Bugzilla/Install/CPAN.pm @@ -54,6 +54,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 @@ -63,6 +70,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 @@ -154,7 +168,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 { @@ -169,6 +187,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; |