Bug 176783

Summary: [bsd.pkgng.mk] PKGNG master breaks pkg-query calls with non-zero exit status
Product: Ports & Packages Reporter: Bryan Drewery <bdrewery>
Component: Individual Port(s)Assignee: Bryan Drewery <bdrewery>
Status: Closed FIXED    
Severity: Affects Only Me CC: bapt
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
patch-pkgng-query-non-zero.txt none

Description Bryan Drewery freebsd_committer freebsd_triage 2013-03-09 13:40:02 UTC
	pkg-query(8) now returns a non-zero exit status if no package is found. This breaks
	calls which may not have any data to return. See commit 99f5514742a5fbb2b08c62e929eac197b8b63728

Fix: Patch ignores non-zero exit status from pkg-query
How-To-Repeat: 	# make -C /usr/ports/security/openbsm-devel package
	<snip>
	===>   Registering installation for openbsm-devel-1.2.a3_1
	pkg: Invalid manifest format
	*** Error code 74

	Stop in /usr/ports/security/openbsm-devel.

	In the manifest:

	deps:

	  *** Error code 69
	  Stop in /usr/ports/security/openbsm-devel.
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2013-03-09 13:40:19 UTC
Responsible Changed
From-To: freebsd-ports-bugs->portmgr

bsd.pkgng.mk is portmgr territory (via the GNATS Auto Assign Tool)
Comment 2 Bryan Drewery freebsd_committer freebsd_triage 2013-03-09 13:45:24 UTC
Responsible Changed
From-To: portmgr->bapt

Over to maintainer.
Comment 3 Baptiste Daroussin freebsd_committer freebsd_triage 2013-03-09 14:07:47 UTC
Responsible Changed
From-To: bapt->bdrewery

Approved, please commit
Comment 4 Bryan Drewery freebsd_committer freebsd_triage 2013-03-09 14:14:50 UTC
State Changed
From-To: open->closed

Committed.
Comment 5 dfilter service freebsd_committer freebsd_triage 2013-03-09 14:15:02 UTC
Author: bdrewery
Date: Sat Mar  9 14:14:40 2013
New Revision: 313713
URL: http://svnweb.freebsd.org/changeset/ports/313713

Log:
  - pkg-query(8) in pkg-1.1.x returns non-zero exit status when
    no matching packages are found. Fix cases that
    expect to potentially find no matches.
  
  PR:		ports/176783
  Approved by:	portmgr (bapt)

Modified:
  head/Mk/bsd.pkgng.mk

Modified: head/Mk/bsd.pkgng.mk
==============================================================================
--- head/Mk/bsd.pkgng.mk	Sat Mar  9 14:14:39 2013	(r313712)
+++ head/Mk/bsd.pkgng.mk	Sat Mar  9 14:14:40 2013	(r313713)
@@ -22,8 +22,8 @@ PLIST_REINPLACE:=	${PLIST_REINPLACE:Nsto
 
 ACTUAL-PACKAGE-DEPENDS?= \
 	if [ "${_LIB_RUN_DEPENDS}" != "  " ]; then \
-		${PKG_QUERY} "%n: {origin: %o, version: \"%v\"}" " " ${_LIB_RUN_DEPENDS:C,[^:]*:([^:]*):?.*,\1,:C,${PORTSDIR}/,,} ; \
-		${PKG_QUERY} "%dn: {origin: %do, version: \"%dv\"}" " " ${_LIB_RUN_DEPENDS:C,[^:]*:([^:]*):?.*,\1,:C,${PORTSDIR}/,,} ; \
+		${PKG_QUERY} "%n: {origin: %o, version: \"%v\"}" " " ${_LIB_RUN_DEPENDS:C,[^:]*:([^:]*):?.*,\1,:C,${PORTSDIR}/,,} 2>/dev/null || : ; \
+		${PKG_QUERY} "%dn: {origin: %do, version: \"%dv\"}" " " ${_LIB_RUN_DEPENDS:C,[^:]*:([^:]*):?.*,\1,:C,${PORTSDIR}/,,} 2>/dev/null || : ; \
 	fi
 
 
@@ -153,7 +153,7 @@ fake-pkg:
 check-build-conflicts:
 .if ( defined(CONFLICTS) || defined(CONFLICTS_BUILD) ) && !defined(DISABLE_CONFLICTS) && !defined(DEFER_CONFLICTS_CHECK)
 	@conflicts_with=$$( \
-	${PKG_QUERY} -g "%n-%v %p %o" ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_BUILD:C/.+/'&'/} 2>/dev/null \
+	${PKG_QUERY} -g "%n-%v %p %o" ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_BUILD:C/.+/'&'/} 2>/dev/null || : \
 		| while read pkgname prfx orgn; do \
 		if [ "/${PREFIX}" = "/$${prfx}" -a "/${PKGORIGIN}" != "/$${orgn}" ]; then \
 			${ECHO_CMD} -n " $${pkgname}"; \
@@ -177,7 +177,7 @@ check-build-conflicts:
 identify-install-conflicts:
 .if ( defined(CONFLICTS) || defined(CONFLICTS_INSTALL) ) && !defined(DISABLE_CONFLICTS)
 	@conflicts_with=$$( \
-	${PKG_QUERY} -g "%n-%v %p %o" ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_INSTALL:C/.+/'&'/} 2>/dev/null \
+	${PKG_QUERY} -g "%n-%v %p %o" ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_INSTALL:C/.+/'&'/} 2>/dev/null || : \
 		| while read pkgname prfx orgn; do \
 		if [ "/${PREFIX}" = "/$${prfx}" -a "/${PKGORIGIN}" != "/$${orgn}" ]; then \
 			${ECHO_CMD} -n " $${pkgname}"; \
@@ -202,7 +202,7 @@ check-install-conflicts:
 .if ( defined(CONFLICTS) || defined(CONFLICTS_INSTALL) || ( defined(CONFLICTS_BUILD) && defined(DEFER_CONFLICTS_CHECK) ) ) && !defined(DISABLE_CONFLICTS) 
 .if defined(DEFER_CONFLICTS_CHECK)
 	@conflicts_with=$$( \
-	${PKG_QUERY} -g "%n-%v %p %o" ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_BUILD:C/.+/'&'/} ${CONFLICTS_INSTALL:C/.+/'&'/} 2>/dev/null \
+	${PKG_QUERY} -g "%n-%v %p %o" ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_BUILD:C/.+/'&'/} ${CONFLICTS_INSTALL:C/.+/'&'/} 2>/dev/null || : \
 	       	| while read pkgname prfx orgn; do \
 		if [ "/${PREFIX}" = "/$${prfx}" -a "/${PKGORIGIN}" != "/$${orgn}" ]; then \
 			${ECHO_CMD} -n " $${pkgname}"; \
@@ -220,7 +220,7 @@ check-install-conflicts:
 	fi
 .else
 	@conflicts_with=$$( \
-	${PKG_QUERY} -g "%n-%v %p %o" ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_INSTALL:C/.+/'&'/} 2>/dev/null \
+	${PKG_QUERY} -g "%n-%v %p %o" ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_INSTALL:C/.+/'&'/} 2>/dev/null || : \
 	       	| while read pkgname prfx orgn; do \
 		if [ "/${PREFIX}" = "/$${prfx}" -a "/${PKGORIGIN}" != "/$${orgn}" ]; then \
 			${ECHO_CMD} -n " $${pkgname}"; \
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"