From owner-svn-ports-all@FreeBSD.ORG Tue Apr 22 12:56:14 2014 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8085F47B; Tue, 22 Apr 2014 12:56:14 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 53AFD12FF; Tue, 22 Apr 2014 12:56:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s3MCuEmW027930; Tue, 22 Apr 2014 12:56:14 GMT (envelope-from bdrewery@svn.freebsd.org) Received: (from bdrewery@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s3MCuExh027929; Tue, 22 Apr 2014 12:56:14 GMT (envelope-from bdrewery@svn.freebsd.org) Message-Id: <201404221256.s3MCuExh027929@svn.freebsd.org> From: Bryan Drewery Date: Tue, 22 Apr 2014 12:56:14 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r351830 - head/Mk/Scripts X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Apr 2014 12:56:14 -0000 Author: bdrewery Date: Tue Apr 22 12:56:13 2014 New Revision: 351830 URL: http://svnweb.freebsd.org/changeset/ports/351830 QAT: https://qat.redports.org/buildarchive/r351830/ Log: - For pkg run-depends dir listing, consider deps recursively. pkg_install already did this. - Speedup the pkg_install run-depends listing by processing unique packages. With hat: portmgr Reported by: antoine Modified: head/Mk/Scripts/check-stagedir.sh Modified: head/Mk/Scripts/check-stagedir.sh ============================================================================== --- head/Mk/Scripts/check-stagedir.sh Tue Apr 22 12:50:54 2014 (r351829) +++ head/Mk/Scripts/check-stagedir.sh Tue Apr 22 12:56:13 2014 (r351830) @@ -169,11 +169,25 @@ fi fi } >${WRKDIR}/.mtree +pkg_get_recursive_deps() { + echo "$@" + PKG_CHECKED="${PKG_CHECKED} $@" + for depends in $(${PKG_QUERY} '%do' $@ | sort -u); do + [ -z "${depends}" ] && return + case " ${PKG_CHECKED} " in + *\ ${depends}\ *) continue ;; + esac + pkg_get_recursive_deps "${depends}" + done +} + ### GATHER DIRS OWNED BY RUN-DEPENDS. WHY ARE WE SCREAMING? : >${WRKDIR}/.run-depends-dirs if [ -n "${WITH_PKGNG}" ]; then - echo "${PACKAGE_DEPENDS}" | xargs ${PKG_QUERY} "%D" | \ - sed -e 's,/$,,' | sort -u >>${WRKDIR}/.run-depends-dirs + echo "${PACKAGE_DEPENDS}" | while read pkg; do \ + PKG_CHECKED= pkg_get_recursive_deps "${pkg}"; done | sort -u | \ + xargs ${PKG_QUERY} "%D" | sed -e 's,/$,,' | sort -u \ + >>${WRKDIR}/.run-depends-dirs else # Evaluate ACTUAL-PACKAGE-DEPENDS packagelist= @@ -190,11 +204,11 @@ else } EOF ) - echo "${package_depends}" | while read line; do - ${PKG_QUERY} -f ${line%%:*} | \ - awk "${awk_script}" | \ - sed -e "/^[^/]/s,^,${LOCALBASE}/," - done | sort -u >>${WRKDIR}/.run-depends-dirs + echo "${package_depends}" | tr ' ' '\n' | cut -d : -f 1 | \ + sort -u | xargs -n 1 ${PKG_QUERY} -f | \ + awk "${awk_script}" | \ + sed -e "/^[^/]/s,^,${LOCALBASE}/," | sort -u \ + >>${WRKDIR}/.run-depends-dirs fi fi unset PACKAGE_DEPENDS PKG_QUERY