Bug 17880 - Use version.pm to parse version numbers in C4::Installer::PerlModules

Signed-off-by: Mark Tompsett <mtompset@hotmail.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
David Cook 2017-01-12 11:15:22 +11:00 committed by Kyle M Hall
parent 2321ae0d79
commit b732963e2f
1 changed files with 6 additions and 2 deletions

View File

@ -68,10 +68,12 @@ sub version_info {
if ($params{'module'}) {
return -1 unless grep {m/$params{'module'}/} keys(%$PERL_DEPS);
eval "require $params{'module'}";
my $pkg_version = $params{'module'} && $params{'module'}->can("VERSION") ? $params{'module'}->VERSION : 0;
my $min_version = $PERL_DEPS->{$params{'module'}}->{'min_ver'} // 0;
if ($@) {
return {$params{'module'} => {cur_ver => 0, min_ver => $PERL_DEPS->{$_}->{'min_ver'}, upgrade => 0, required => $PERL_DEPS->{$_}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}};
}
elsif ($params{'module'}->VERSION lt $PERL_DEPS->{$params{'module'}}->{'min_ver'}) {
elsif (version->parse("$pkg_version") < version->parse("$min_version")) {
return {$params{'module'} => {cur_ver => $params{'module'}->VERSION, min_ver => $PERL_DEPS->{$params{'module'}}->{'min_ver'}, upgrade => 1, required => $PERL_DEPS->{$params{'module'}}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}};
}
else {
@ -82,10 +84,12 @@ sub version_info {
for (sort keys(%{$PERL_DEPS})) {
my $pkg = $_; # $_ holds the string
eval "require $pkg";
my $pkg_version = $params{'module'} && $params{'module'}->can("VERSION") ? $params{'module'}->VERSION : 0;
my $min_version = $PERL_DEPS->{$_}->{'min_ver'} // 0;
if ($@) {
push (@{$self->{'missing_pm'}}, {$_ => {cur_ver => 0, min_ver => $PERL_DEPS->{$_}->{'min_ver'}, required => $PERL_DEPS->{$_}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}});
}
elsif ($pkg->VERSION lt $PERL_DEPS->{$_}->{'min_ver'}) {
elsif (version->parse("$pkg_version") < version->parse("$min_version")) {
push (@{$self->{'upgrade_pm'}}, {$_ => {cur_ver => $pkg->VERSION, min_ver => $PERL_DEPS->{$_}->{'min_ver'}, required => $PERL_DEPS->{$_}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}});
}
else {