make run-depends-list-recursive?

Mel Flynn mel.flynn+fbsd.questions at mailing.thruhere.net
Thu Apr 16 10:27:08 UTC 2009


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 
<cwhiteh at 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?

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


More information about the freebsd-questions mailing list