aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Kanat-Alexander <mkanat@bugzilla.org>2011-04-27 15:05:18 -0700
committerMax Kanat-Alexander <mkanat@bugzilla.org>2011-04-27 15:05:18 -0700
commit256ccae5e0ac4e09fe95d177d42b0770c05146b8 (patch)
tree7e73b8bb346ba6f81b4fd7fa85d504c752eb77c4
parentFix typo in POD (diff)
downloadbugzilla-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.pm25
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;