summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Install/CPAN.pm
diff options
context:
space:
mode:
authorMax Kanat-Alexander <mkanat@bugzilla.org>2011-04-28 00:06:10 +0200
committerMax Kanat-Alexander <mkanat@bugzilla.org>2011-04-28 00:06:10 +0200
commit6233375db2f69e79f2fa7ba3030956aa2a6eafbe (patch)
tree63a326a08e8223d2dfea8428b759dc4a546d656c /Bugzilla/Install/CPAN.pm
parent77d29ce6ca5579674b9c9c4c081bf2f10137f35f (diff)
downloadbugzilla-6233375db2f69e79f2fa7ba3030956aa2a6eafbe.tar.gz
bugzilla-6233375db2f69e79f2fa7ba3030956aa2a6eafbe.tar.xz
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
Diffstat (limited to 'Bugzilla/Install/CPAN.pm')
-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 48dcf6fc0..df32c40b5 100644
--- a/Bugzilla/Install/CPAN.pm
+++ b/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;