aboutsummaryrefslogtreecommitdiffstats
path: root/misc/porteasy
diff options
context:
space:
mode:
authordes <des@FreeBSD.org>2002-07-17 06:54:05 +0800
committerdes <des@FreeBSD.org>2002-07-17 06:54:05 +0800
commitbca1b6bf3404cbded61e2f828ed176acde5a29f3 (patch)
treefcd418c2dc676c88b2609a07707e5bedf44f775c /misc/porteasy
parent572242e51f02f8f4a80420bd7855047283ab7987 (diff)
downloadfreebsd-ports-gnome-bca1b6bf3404cbded61e2f828ed176acde5a29f3.tar.gz
freebsd-ports-gnome-bca1b6bf3404cbded61e2f828ed176acde5a29f3.tar.zst
freebsd-ports-gnome-bca1b6bf3404cbded61e2f828ed176acde5a29f3.zip
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.
Diffstat (limited to 'misc/porteasy')
-rw-r--r--misc/porteasy/Makefile2
-rw-r--r--misc/porteasy/src/porteasy.pl17
2 files changed, 12 insertions, 7 deletions
diff --git a/misc/porteasy/Makefile b/misc/porteasy/Makefile
index 44e86da37c11..8518d8215ea9 100644
--- a/misc/porteasy/Makefile
+++ b/misc/porteasy/Makefile
@@ -8,7 +8,7 @@
#
PORTNAME= porteasy
-PORTVERSION= 2.7.2
+PORTVERSION= 2.7.3
CATEGORIES= misc
MASTER_SITES= # none
DISTFILES= # none
diff --git a/misc/porteasy/src/porteasy.pl b/misc/porteasy/src/porteasy.pl
index 6fd4eced5205..199f9f5f214b 100644
--- a/misc/porteasy/src/porteasy.pl
+++ b/misc/porteasy/src/porteasy.pl
@@ -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