Date: 26 Sep 2000 18:19:17 -0000 From: "Peter Pentchev" <roam@orbitel.bg> To: FreeBSD-gnats-submit@freebsd.org Subject: bin/21567: [PATCH] pkg_version -v confuzzled by multiple versions Message-ID: <20000926181917.419.qmail@ringwraith.office1>
next in thread | raw e-mail | index | archive | help
>Number: 21567 >Category: bin >Synopsis: [PATCH] pkg_version -v confuzzled by multiple versions >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Sep 26 11:20:01 PDT 2000 >Closed-Date: >Last-Modified: >Originator: "Peter Pentchev" <roam@orbitel.bg> >Release: FreeBSD 4.1.1-STABLE i386 >Organization: Orbitel JSCo. >Environment: a RELENG_4 as of today >Description: When there are multiple versions of a package in the INDEX file, pkg_version does not even try to check if you have one of the listed versions (which would theoretically imply no need for upgrade). Attached is a proposed patch to add a -m option, which checks if the installed version is amongst the versions in the package, and if so, reports it as "up-to-date (index has .....)". Note: this functionality is ONLY explicitly enabled by specifying the -m option on the command line; the default action is still to report the package as '*' (multiple versions), so existing grep -v up-to-date scripts do not break. >How-To-Repeat: Install e.g. vim or XFree86; run pkg_version -v; see it not attempt to give any judgement on the package. With the proposed patch, pkg_version -vm lists it as up-to-date. >Fix: diff -urN src/usr.sbin/pkg_install/version/pkg_version.1 mysrc/usr.sbin/pkg_install/version/pkg_version.1 --- src/usr.sbin/pkg_install/version/pkg_version.1 Wed Sep 20 15:15:53 2000 +++ mysrc/usr.sbin/pkg_install/version/pkg_version.1 Thu Sep 21 21:15:37 2000 @@ -32,7 +32,7 @@ .Nd summarize installed versions of packages .Sh SYNOPSIS .Nm pkg_version -.Op Fl cdhv +.Op Fl cdhmv .Op Fl l Ar limchar .Op Ar index .Sh DESCRIPTION @@ -93,6 +93,9 @@ to the shell, it is best to quote .Ar limchar with single quotes. +.It Fl m +Even if multiple versions are present, report a match if the installed +version is among those in the INDEX. .It Fl v Enable verbose output. Verbose output includes some English-text interpretations of the version number comparisons, as well as the diff -urN src/usr.sbin/pkg_install/version/pkg_version.pl mysrc/usr.sbin/pkg_install/version/pkg_version.pl --- src/usr.sbin/pkg_install/version/pkg_version.pl Wed Sep 20 15:15:53 2000 +++ mysrc/usr.sbin/pkg_install/version/pkg_version.pl Thu Sep 21 21:14:07 2000 @@ -48,6 +48,7 @@ $VerboseFlag = 0; $CommentChar = "#"; $LimitFlag = ""; +$MultipleFlag = 0; # # CompareNumbers @@ -206,7 +207,7 @@ # # Parse command-line arguments, deal with them # -if (!getopts('cdhl:v') || ($opt_h)) { +if (!getopts('cdhl:mv') || ($opt_h)) { &PrintHelp(); exit; } @@ -219,6 +220,9 @@ if ($opt_l) { $LimitFlag = $opt_l; } +if ($opt_m) { + $MultipleFlag = 1; +} if ($opt_v) { $VerboseFlag = 1; } @@ -309,6 +313,17 @@ $versionCode = "*"; $Comment = "multiple versions (index has $indexVersion)"; $Comment =~ s/\|/,/g; + + if ($MultipleFlag) { + @iVer = split(/\|/, $indexVersion); + foreach $ver (@iVer) { + if (&CompareVersions($currentVersion, $ver) == 0) { + $versionCode = "="; + $Comment = "up-to-date (index has $indexVersion)"; + $Comment =~ s/\|/,/g; + } + } + } } else { >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000926181917.419.qmail>