From owner-freebsd-questions@FreeBSD.ORG Thu Apr 16 10:27:08 2009 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 407361065677 for ; Thu, 16 Apr 2009 10:27:08 +0000 (UTC) (envelope-from mel.flynn+fbsd.questions@mailing.thruhere.net) Received: from mailhub.rachie.is-a-geek.net (rachie.is-a-geek.net [66.230.99.27]) by mx1.freebsd.org (Postfix) with ESMTP id 01E4E8FC1C for ; Thu, 16 Apr 2009 10:27:07 +0000 (UTC) (envelope-from mel.flynn+fbsd.questions@mailing.thruhere.net) Received: from sarevok.dnr.servegame.org (gate.lan.rachie.is-a-geek.net [192.168.2.10]) by mailhub.rachie.is-a-geek.net (Postfix) with ESMTP id 3E1067E818; Thu, 16 Apr 2009 02:27:06 -0800 (AKDT) From: Mel Flynn To: freebsd-questions@freebsd.org Date: Thu, 16 Apr 2009 12:27:04 +0200 User-Agent: KMail/1.11.0 (FreeBSD/8.0-CURRENT; KDE/4.2.0; i386; ; ) References: <49E274F5.4030001@onetel.com> <200904142102.09258.mel.flynn+fbsd.questions@mailing.thruhere.net> <49E518CF.3000105@onetel.com> In-Reply-To: <49E518CF.3000105@onetel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200904161227.04972.mel.flynn+fbsd.questions@mailing.thruhere.net> Cc: Tim Judd , Chris Whitehouse Subject: Re: make run-depends-list-recursive? X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Apr 2009 10:27:08 -0000 On Wednesday 15 April 2009 01:14:23 Chris Whitehouse wrote: > Mel Flynn wrote: > > On Monday 13 April 2009 03:56:15 Tim Judd wrote: > >> On Sun, Apr 12, 2009 at 5:10 PM, Chris Whitehouse wrote: > >>> Hi > >>> > >>> Is there a make target which will give a list of _all_ dependencies > >>> recursively not just next level up? Or a port? I tried > >>> ports-mgmt/pkg_tree but it only seems to work with installed ports. > >>> > >>> I don't care if I get duplicates as long as every dependency is listed > >>> at least once. > >>> > >>> Thanks > >>> > >>> Chris > >> > >> make all-depends-list > > > > Two things: > > 1) It surpresses config target and if a port has OPTIONS set, then you > > may get surprised once you've configured the port and ticked/unticked an > > option 2) It includes EXTRACT_DEPENDS, PATCH_DEPENDS and BUILD_DEPENDS, > > which typically don't end up in run dependencies. Looking at the subject > > this may not be what you need. > > > > make -C /usr/ports/category/portname -V LIB_DEPENDS -V RUN_DEPENDS > > > > will list the dependencies that will be registered in /var/db/pkg. > > Recurse through the list, take the second field split by : and run the > > above for each origin. Something like the script below, which calls the > > config target if not configured, remembers already visited dependencies > > and then prints the runtime dependency list. > > Thanks Mel and Tim. I am trying to determine how much disk space the > distfiles for a port would use. I can get the file size from the > distinfo file in the port directory. So I need to list dependencies for > which a distfile would be downloaded. > > I guess my question now is which targets or variables need to be > included to achieve that. (I know it includes build dependencies. > I didn't include build deps in the subject because I figured replies > would give me the principle and I could expand from that.) > > I took a guess at the existence of BUILD_DEPENDS and added it into the > script. Running the modified script on multimedia/vlc I get the same > number of dependencies as make all-depends-list so make all-depends-list > is the same as make -V LIB_DEPENDS -V RUN_DEPENDS -V BUILD-DEPENDS for > vlc. Is that all I need for any port? EXTRACT_DEPENDS can matter when distfiles are delivered in formats for which you don't have an unarchiver installed (7zip/zip/cabextract being the most common). But yes, all-depends-list is exactly that, with the provision that it does not take changed OPTIONS into account. -- Mel