Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Apr 2009 00:14:23 +0100
From:      Chris Whitehouse <cwhiteh@onetel.com>
To:        Mel Flynn <mel.flynn+fbsd.questions@mailing.thruhere.net>
Cc:        Tim Judd <tajudd@gmail.com>, freebsd-questions@freebsd.org
Subject:   Re: make run-depends-list-recursive?
Message-ID:  <49E518CF.3000105@onetel.com>
In-Reply-To: <200904142102.09258.mel.flynn%2Bfbsd.questions@mailing.thruhere.net>
References:  <49E274F5.4030001@onetel.com> <ade45ae90904121856r760eb7b4g1d90904c83fb2801@mail.gmail.com> <200904142102.09258.mel.flynn%2Bfbsd.questions@mailing.thruhere.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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 <cwhiteh@onetel.com>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?

thanks

Chris



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49E518CF.3000105>