http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=5599 Summary: koha_perl_deps.pl and PerlDependencies.pm don't compare $VERSION numbers correctly Change sponsored?: --- Product: Koha Version: HEAD Platform: All OS/Version: All Status: NEW Severity: normal Priority: P5 Component: Installation and upgrade (command-line installer) AssignedTo: gmcharlt@gmail.com ReportedBy: ohiocore@gmail.com QAContact: koha-bugs@lists.koha-community.org Estimated Hours: 0.0 Normal perl $VERSION numbers are not string sortable/comparable. This is because they do not use leading zeroes or static numbers of digits for each part. But our logic in C4/Installer/PerlModules.pm relies on string comparison, so it does not regard 1.3.12 as being greater than 1.3.5, when in reality it is 7 iterations later. Example: $ ./koha_perl_deps.pl -u Module Name Current Version Required Version Module Required -------------------------------------------------------------------------------------------------------------------------- Graphics::Magick 1.3.12 * 1.3.5 No -------------------------------------------------------------------------------------------------------------------------- Total modules reported: 1 * Module is missing or requires an upgrade. Specifically, these comparisons from lines 75 and 89 of C4/Installer/PerlModules.pm are incorrect: $params{'module'}->VERSION lt $PERL_DEPS->{$params{'module'}}->{'min_ver'} ... $pkg->VERSION lt $PERL_DEPS->{$_}->{'min_ver'} I don't like the approach used by PerlModules.pm because the code is overwrought and it tries to reproduce core perl logic. The definitive test would rely on, for example, $pkg->VERSION($min) since VERSION() is a part of UNIVERSAL and it actually understands perl's lax version strings (and always will, even if they change format). We can access that via UNIVERSAL::require($min). -- Configure bugmail: http://bugs.koha-community.org/bugzilla3/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug.