]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 560691: Make sure that install-module.pl never prompts the user while
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Wed, 21 Apr 2010 00:01:18 +0000 (17:01 -0700)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Wed, 21 Apr 2010 00:01:18 +0000 (17:01 -0700)
installing modules
r=mkanat, a=mkanat (module owner)

Bugzilla/Install/CPAN.pm
Bugzilla/Install/Requirements.pm

index ad8470260f16fade091868b72a7d7ef5defeda5e..af50b52e41bfdad6da78cbf465da7246b9c93b79 100644 (file)
@@ -125,6 +125,12 @@ sub install_module {
     my ($name, $test) = @_;
     my $bzlib = BZ_LIB;
 
+    # Make Module::AutoInstall install all dependencies and never prompt.
+    local $ENV{PERL_AUTOINSTALL} = '--alldeps';
+    # This makes Net::SSLeay not prompt the user, if it gets installed.
+    # It also makes any other MakeMaker prompts accept their defaults.
+    local $ENV{PERL_MM_USE_DEFAULT} = 1;
+
     # Certain modules require special stuff in order to not prompt us.
     my $original_makepl = $CPAN::Config->{makepl_arg};
     # This one's a regex in case we're doing Template::Plugin::GD and it
@@ -135,12 +141,13 @@ sub install_module {
     elsif ($name eq 'XML::Twig') {
         $CPAN::Config->{makepl_arg} = "-n $original_makepl";
     }
-    elsif ($name eq 'Net::LDAP') {
-        $CPAN::Config->{makepl_arg} .= " --skipdeps";
-    }
     elsif ($name eq 'SOAP::Lite') {
         $CPAN::Config->{makepl_arg} .= " --noprompt";
     }
+    # MIME-tools has a Module::Install that's too old to understand alldeps.
+    elsif ($name =~ /^MIME::/) {
+        $ENV{PERL_AUTOINSTALL} = '--defaultdeps';
+    }
 
     my $module = CPAN::Shell->expand('Module', $name);
     print install_string('install_module', 
index 6223c954351449495e7ed0915a93d0334fc2d69e..bb078e9b9f16739e8597e961336f43638c1cfc0e 100644 (file)
@@ -540,8 +540,9 @@ sub have_vers {
 
     eval "require $module;";
 
-    # VERSION is provided by UNIVERSAL::
-    my $vnum = eval { $module->VERSION } || -1;
+    # VERSION is provided by UNIVERSAL::, and can be called even if
+    # the module isn't loaded.
+    my $vnum = $module->VERSION || -1;
 
     # CGI's versioning scheme went 2.75, 2.751, 2.752, 2.753, 2.76
     # That breaks the standard version tests, so we need to manually correct