Fix a bug in the version comparison logic (epochs weren't being compared
properly), and update dependencies for -f as well as for -l and -u.
This commit is contained in:
parent
66b03afbc7
commit
5cd868dff5
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=63107
4 changed files with 24 additions and 14 deletions
|
@ -8,7 +8,7 @@
|
|||
#
|
||||
|
||||
PORTNAME= porteasy
|
||||
PORTVERSION= 2.7.2
|
||||
PORTVERSION= 2.7.3
|
||||
CATEGORIES= misc
|
||||
MASTER_SITES= # none
|
||||
DISTFILES= # none
|
||||
|
|
|
@ -33,7 +33,7 @@ use strict;
|
|||
use Fcntl;
|
||||
use Getopt::Long;
|
||||
|
||||
my $VERSION = "2.7.2";
|
||||
my $VERSION = "2.7.3";
|
||||
my $COPYRIGHT = "Copyright (c) 2000-2002 Dag-Erling Smørgrav. " .
|
||||
"All rights reserved.";
|
||||
|
||||
|
@ -813,14 +813,19 @@ sub cmp_version($$) {
|
|||
my $inst = shift; # Installed package
|
||||
my $port = shift; # Origin port
|
||||
|
||||
my $tree; # Version in tree
|
||||
|
||||
# Shortcut
|
||||
if ($inst eq $pkgname{$port}) {
|
||||
if (($tree = $pkgname{$port}) eq $inst) {
|
||||
return '=';
|
||||
}
|
||||
|
||||
# Compare port epochs
|
||||
if ((($a) = ($inst =~ m/,(\d+)$/)) ||
|
||||
(($b) = ($pkgname{$port} =~ m/,(\d+)$/))) {
|
||||
$inst =~ s/,(\d+)$//
|
||||
and $a = $1;
|
||||
$tree =~ s/,(\d+)$//
|
||||
and $b = $1;
|
||||
if (defined($a) || defined($b)) {
|
||||
$a = int($a || 0);
|
||||
$b = int($b || 0);
|
||||
if ($a != $b) {
|
||||
|
@ -830,7 +835,7 @@ sub cmp_version($$) {
|
|||
|
||||
# Split it into components
|
||||
my @a = split(/[\._-]/, $inst);
|
||||
my @b = split(/[\._-]/, $pkgname{$port});
|
||||
my @b = split(/[\._-]/, $tree);
|
||||
|
||||
# Compare the components one by one
|
||||
while (@a && @b) {
|
||||
|
@ -1101,7 +1106,7 @@ MAIN:{
|
|||
}
|
||||
|
||||
# Step 3: update port directories and discover dependencies
|
||||
$need_deps = ($update || $list);
|
||||
$need_deps = ($update || $fetch || $list);
|
||||
update_ports_tree(keys(%reqd));
|
||||
|
||||
# Step 4: deselect ports which are already installed
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#
|
||||
|
||||
PORTNAME= porteasy
|
||||
PORTVERSION= 2.7.2
|
||||
PORTVERSION= 2.7.3
|
||||
CATEGORIES= misc
|
||||
MASTER_SITES= # none
|
||||
DISTFILES= # none
|
||||
|
|
|
@ -33,7 +33,7 @@ use strict;
|
|||
use Fcntl;
|
||||
use Getopt::Long;
|
||||
|
||||
my $VERSION = "2.7.2";
|
||||
my $VERSION = "2.7.3";
|
||||
my $COPYRIGHT = "Copyright (c) 2000-2002 Dag-Erling Smørgrav. " .
|
||||
"All rights reserved.";
|
||||
|
||||
|
@ -813,14 +813,19 @@ sub cmp_version($$) {
|
|||
my $inst = shift; # Installed package
|
||||
my $port = shift; # Origin port
|
||||
|
||||
my $tree; # Version in tree
|
||||
|
||||
# Shortcut
|
||||
if ($inst eq $pkgname{$port}) {
|
||||
if (($tree = $pkgname{$port}) eq $inst) {
|
||||
return '=';
|
||||
}
|
||||
|
||||
# Compare port epochs
|
||||
if ((($a) = ($inst =~ m/,(\d+)$/)) ||
|
||||
(($b) = ($pkgname{$port} =~ m/,(\d+)$/))) {
|
||||
$inst =~ s/,(\d+)$//
|
||||
and $a = $1;
|
||||
$tree =~ s/,(\d+)$//
|
||||
and $b = $1;
|
||||
if (defined($a) || defined($b)) {
|
||||
$a = int($a || 0);
|
||||
$b = int($b || 0);
|
||||
if ($a != $b) {
|
||||
|
@ -830,7 +835,7 @@ sub cmp_version($$) {
|
|||
|
||||
# Split it into components
|
||||
my @a = split(/[\._-]/, $inst);
|
||||
my @b = split(/[\._-]/, $pkgname{$port});
|
||||
my @b = split(/[\._-]/, $tree);
|
||||
|
||||
# Compare the components one by one
|
||||
while (@a && @b) {
|
||||
|
@ -1101,7 +1106,7 @@ MAIN:{
|
|||
}
|
||||
|
||||
# Step 3: update port directories and discover dependencies
|
||||
$need_deps = ($update || $list);
|
||||
$need_deps = ($update || $fetch || $list);
|
||||
update_ports_tree(keys(%reqd));
|
||||
|
||||
# Step 4: deselect ports which are already installed
|
||||
|
|
Loading…
Reference in a new issue