From c01c56247f6c35ec1f155610ca6737f7d03e533b Mon Sep 17 00:00:00 2001 From: Frédéric Buclin Date: Thu, 1 Aug 2013 03:19:44 +0200 Subject: 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=sgreen --- Bugzilla/Install/Requirements.pm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'Bugzilla/Install/Requirements.pm') diff --git a/Bugzilla/Install/Requirements.pm b/Bugzilla/Install/Requirements.pm index b6e3f9033..0d02904e9 100644 --- a/Bugzilla/Install/Requirements.pm +++ b/Bugzilla/Install/Requirements.pm @@ -676,8 +676,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; # Fix CPAN versions like 1.9304. if ($module eq 'CPAN' and $vnum =~ /^(\d\.\d{2})\d{2}$/) { -- cgit v1.2.3-24-g4f1b