Date: Sat, 8 Oct 2005 15:41:45 -0500 (CDT) From: Seán Farley <sean-freebsd@farley.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: bin/87136: pkg_version exits if the INDEX file is not found Message-ID: <200510082041.j98Kfjg4026829@thor.farley.org> Resent-Message-ID: <200510082050.j98KoEue014679@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 87136 >Category: bin >Synopsis: pkg_version exits if the INDEX file is not found >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Oct 08 20:50:13 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Seán Farley >Release: FreeBSD 5.4-STABLE i386 >Organization: >Environment: System: FreeBSD thor.farley.org 5.4-STABLE FreeBSD 5.4-STABLE #0: Thu Sep 29 16:01:50 CDT 2005 root@thor.farley.org:/usr/obj/usr/src/sys/THOR i386 >Description: pkg_version exits if the INDEX file is not found although the -I option, which requires an INDEX file, was not given. I need pkg_version to not exit for my port manager (found here: http://www.farley.org/?page=software#pm) script to function correctly. >How-To-Repeat: Run pkg_version with an installed port that has been removed from /usr/ports. >Fix: Here is a patch to not exit if the INDEX file is not found and -I is not given. The result is that the package will be listed with a '?' as if it was not found within the INDEX file. The patch with and without whitespace changes can be found here: http://www.farley.org/freebsd/tmp/pkg_version.patch http://www.farley.org/freebsd/tmp/pkg_version-nows.patch diff -ruw /usr/src/usr.sbin/pkg_install/version/perform.c pkg_install/version/perform.c --- /usr/src/usr.sbin/pkg_install/version/perform.c Wed Jun 22 17:49:17 2005 +++ pkg_install/version/perform.c Sat Oct 8 15:26:06 2005 @@ -157,6 +157,10 @@ } } if (latest == NULL) { + /* Report package as not found in INDEX if the INDEX is not required. */ + if (IndexFile == NULL && !UseINDEXOnly) + show_version(plist.name, NULL, plist.origin); + else { /* We only pull in the INDEX once, if needed. */ if (SLIST_EMPTY(&Index)) { if (!IndexFile) @@ -222,6 +226,7 @@ show_version(plist.name, NULL, plist.origin); else show_version(plist.name, latest, "index"); + } } if (latest != NULL) free(latest); >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200510082041.j98Kfjg4026829>