portmaster is not always recursive

Mel Flynn mel.flynn+fbsd.ports at mailing.thruhere.net
Thu Sep 3 22:08:32 UTC 2009

On Sunday 30 August 2009 19:07:24 Doug Barton wrote:
> Ok, I found the problem, but the bad news is that I don't know what the
> solution is going to be. I've cc'ed ale since what I'm seeing is weird
> behavior by the php5-mcrypt slave port.
> What portmaster does by default when looking for dependencies is to run
> 'make build-depends-list run-depends-list | sort -u' to get the list of
> things to check. I used to just do all-depends-list by default but users
> complained that it was creating problems by recursing so far down the
> tree.
> What I'm seeing in security/php5-mcrypt is that the union of
> {build|run}-depends-list is different if I run it in the slave port than
> if I run it in lang/php5 (after enabling the OPTION for apache):
> In the slave port:
> /usr/ports/devel/autoconf262
> /usr/ports/devel/libltdl22
> /usr/ports/lang/php5
> /usr/ports/security/libmcrypt
> In lang/php5:
> /usr/ports/devel/autoconf262
> /usr/ports/devel/pkg-config
> /usr/ports/textproc/libxml2
> /usr/ports/www/apache22
> That's why portmaster is not picking up the dependency on apache when
> updating php5-mcrypt.

Why should it matter? I didn't think portmaster stopped searching if a first 
level dep does not need upgrading. The reason for not using all-depends-list 
is that it duplicates efforts. F.e. all-depends-list on x11/xorg recurses down 
to everything and then asking all-depends-list for x11/xorg-apps will have 
been done already by x11/xorg, but make(1) will still recurse the list and you 
can't filter it till you see it.
But when using {build|run}-depends-list, lang/php5 is seen from security/php5-
mcrypt, as such, portmaster should drill down to {build|run}-depends-list of 
lang/php5 until ending at leaf nodes. In principle this will end up to be an 
all-depends-list, but with faster performance.

More information about the freebsd-ports mailing list