From yuri.pankov@gmail.com  Sat May 22 13:38:28 2010
Return-Path: <yuri.pankov@gmail.com>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 5254C106568C
	for <FreeBSD-gnats-submit@freebsd.org>; Sat, 22 May 2010 13:38:28 +0000 (UTC)
	(envelope-from yuri.pankov@gmail.com)
Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.159])
	by mx1.freebsd.org (Postfix) with ESMTP id CF0DA8FC2A
	for <FreeBSD-gnats-submit@freebsd.org>; Sat, 22 May 2010 13:38:27 +0000 (UTC)
Received: by fg-out-1718.google.com with SMTP id 22so584272fge.13
        for <FreeBSD-gnats-submit@freebsd.org>; Sat, 22 May 2010 06:38:26 -0700 (PDT)
Received: by 10.87.69.29 with SMTP id w29mr5428362fgk.35.1274535506676;
        Sat, 22 May 2010 06:38:26 -0700 (PDT)
Received: from darklight.org.ru ([213.132.76.142])
        by mx.google.com with ESMTPS id 4sm6084545fgg.2.2010.05.22.06.38.25
        (version=TLSv1/SSLv3 cipher=RC4-MD5);
        Sat, 22 May 2010 06:38:26 -0700 (PDT)
Received: from darklight.org.ru (yuri@darklight.org.ru [127.0.0.1])
	by darklight.org.ru (8.14.4/8.14.4) with ESMTP id o4MDcN2Q081950
	for <FreeBSD-gnats-submit@freebsd.org>; Sat, 22 May 2010 17:38:24 +0400 (MSD)
	(envelope-from yuri.pankov@gmail.com)
Received: (from yuri@localhost)
	by darklight.org.ru (8.14.4/8.14.4/Submit) id o4MDcN2X081948;
	Sat, 22 May 2010 17:38:23 +0400 (MSD)
	(envelope-from yuri.pankov@gmail.com)
Message-Id: <201005221338.o4MDcN2X081948@darklight.org.ru>
Date: Sat, 22 May 2010 17:38:23 +0400 (MSD)
From: Yuri Pankov <yuri.pankov@gmail.com>
Reply-To: Yuri Pankov <yuri.pankov@gmail.com>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: [PATCH]: bsd.port.mk: change "missing" target to run pkg_info only once
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         146829
>Category:       ports
>Synopsis:       [PATCH]: bsd.port.mk: change "missing" target to run pkg_info only once
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    portmgr
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat May 22 13:40:03 UTC 2010
>Closed-Date:    Wed Jun 02 11:41:00 UTC 2010
>Last-Modified:  Wed Jun 02 11:41:00 UTC 2010
>Originator:     Yuri Pankov
>Release:        FreeBSD 9.0-CURRENT amd64
>Organization:
>Environment:
System: FreeBSD darklight.org.ru 9.0-CURRENT FreeBSD 9.0-CURRENT #2 r208414M: Sat May 22 13:53:45 MSD 2010
>Description:
Change "missing" target to run pkg_info only once and cache the result. Running `pkg_info -O <origin>` for every dependency can be very time and I/O consuming when we have a large number of installed ports.
>How-To-Repeat:
>Fix:
--- bpm.diff begins here ---
Index: ports/Mk/bsd.port.mk
===================================================================
RCS file: /home/ncvs/ports/Mk/bsd.port.mk,v
retrieving revision 1.638
diff -u -r1.638 bsd.port.mk
--- ports/Mk/bsd.port.mk	12 May 2010 19:57:57 -0000	1.638
+++ ports/Mk/bsd.port.mk	22 May 2010 13:16:32 -0000
@@ -5524,11 +5524,11 @@
 
 # Show missing dependiencies
 missing:
-	@for dir in $$(${ALL-DEPENDS-LIST}); do \
-		THISORIGIN=$${dir##${PORTSDIR}/}; \
-		installed=$$(${PKG_INFO} -qO $${THISORIGIN}); \
-		if [ -z "$$installed" ]; then \
-			${ECHO_CMD} $$THISORIGIN; \
+	@_origins=$$(${PKG_INFO} -aoq); \
+	for dir in $$(${ALL-DEPENDS-LIST}); do \
+		_origin=$${dir##${PORTSDIR}/}; \
+		if ! $$(${ECHO_CMD} $${_origins} | ${GREP} -q $${_origin}); then \
+			${ECHO_CMD} $${_origin}; \
 		fi; \
 	done
 
--- bpm.diff ends here ---


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->portmgr 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Sat May 22 13:40:13 UTC 2010 
Responsible-Changed-Why:  
bsd.port.mk is portmgr territory (via the GNATS Auto Assign Tool) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=146829 
State-Changed-From-To: open->closed 
State-Changed-By: pav 
State-Changed-When: Wed Jun 2 11:31:30 UTC 2010 
State-Changed-Why:  
Committed, thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=146829 
>Unformatted:
