From: Frédéric Buclin Date: Mon, 2 Dec 2013 16:00:20 +0000 (+0100) Subject: Bug 781672: checksetup.pl fails to check the version of the latest Apache2::SizeLimit... X-Git-Tag: bugzilla-4.2.8~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=428fbf98c5bda12ab2bc018246b6a9d27f628fd1;p=thirdparty%2Fbugzilla.git Bug 781672: checksetup.pl fails to check the version of the latest Apache2::SizeLimit release (it throws "Invalid version format (non-numeric data)") r=dkl a=justdave --- diff --git a/Bugzilla/Install/Requirements.pm b/Bugzilla/Install/Requirements.pm index 83723b327f..7823415130 100644 --- a/Bugzilla/Install/Requirements.pm +++ b/Bugzilla/Install/Requirements.pm @@ -659,8 +659,15 @@ sub have_vers { Bugzilla::Install::Util::set_output_encoding(); # VERSION is provided by UNIVERSAL::, and can be called even if - # the module isn't loaded. - my $vnum = $module->VERSION || -1; + # the module isn't loaded. We eval'uate ->VERSION because it can die + # when the version is not valid (yes, this happens from time to time). + # In that case, we use an uglier method to get the version. + my $vnum = eval { $module->VERSION }; + if ($@) { + no strict 'refs'; + $vnum = ${"${module}::VERSION"}; + } + $vnum ||= -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