portmaster is not always recursive

Miroslav Lachman 000.fbsd at quip.cz
Sat Aug 29 21:19:14 UTC 2009


Doug Barton wrote:
> Miroslav Lachman wrote:
> 
> 
>>I have another case, where portmaster did not update dependency.
>>
>>I started with the following list of available updates
>>
>>root at elsa ~/# portmaster fetch update && pkg_version -vIL =
>>apache-2.2.11_7               <  needs updating (index has 2.2.13)
> 
> 
> Portmaster doesn't use the INDEX file at all, so all bets are off at
> this point. However ...

I know it, the same output is produced by pkg_version -vL =, -vIL = is 
just faster, but ports tree was fresh.
The first part of the command was `portsnap fetch update`, it was my 
typo in the e-mail, not on the commandline.

>>root at elsa ~/# portmaster -L | grep apache
>>===>>> apache-2.2.11_7
>>        ===>>> New version available: apache-2.2.13
>>===>>> apachetop-0.12.6_1
> 
> 
> So let's look at php5-mcrypt:
> 
> make all-depends-list
> /usr/ports/lang/php5
> /usr/ports/devel/autoconf262
> /usr/ports/security/libmcrypt
> /usr/ports/devel/libltdl22
> /usr/ports/devel/pkg-config
> /usr/ports/textproc/libxml2
> /usr/ports/lang/perl5.8
> /usr/ports/devel/m4
> /usr/ports/misc/help2man
> /usr/ports/devel/gmake
> /usr/ports/devel/autoconf-wrapper
> /usr/ports/devel/libtool22
> /usr/ports/converters/libiconv
> 
> I have no idea how pkg_tree creates its list of dependencies, but
> according to the method that portmaster uses apache is not a dependency.

pkg_tree get it from /var/db/pkg/, from +REQUIRED_BY and +CONTENTS. 
pkg_tree shows dependencies of installed packages, not /usr/ports defaults!


Your list of dependencies was with default OPTIONS for PHP5 port, but I 
am not using defaults.

I have following options:

root at elsa ~/# cat /var/db/ports/php5/options
# This file is auto-generated by 'make config'.
# No user-servicable parts inside!
# Options for php5-5.2.2
_OPTIONS_READ=php5-5.2.2
WITH_CLI=true
WITH_CGI=true
WITH_APACHE=true
WITHOUT_DEBUG=true
WITH_SUHOSIN=true
WITH_MULTIBYTE=true
WITHOUT_IPV6=true
WITH_MAILHEAD=true
WITHOUT_REDIRECT=true
WITHOUT_DISCARD=true
WITH_FASTCGI=true
WITH_PATHINFO=true


Then resulting dependencies are:

root at elsa ~/# cd /usr/ports/lang/php5

root at elsa php5/# make all-depends-list
/usr/ports/www/apache22
/usr/ports/devel/autoconf262
/usr/ports/devel/pkg-config
/usr/ports/textproc/libxml2
/usr/ports/lang/perl5.8
/usr/ports/devel/libtool22
/usr/ports/textproc/expat2
/usr/ports/devel/pcre
/usr/ports/converters/libiconv
/usr/ports/databases/mysql50-client
/usr/ports/databases/db41
/usr/ports/devel/m4
/usr/ports/misc/help2man
/usr/ports/devel/gmake
/usr/ports/devel/autoconf-wrapper
/usr/ports/devel/p5-Locale-gettext
/usr/ports/devel/gettext

root at elsa php5/# cd /usr/ports/security/php5-mcrypt

root at elsa php5-mcrypt/# make all-depends-list
/usr/ports/lang/php5
/usr/ports/devel/autoconf262
/usr/ports/security/libmcrypt
/usr/ports/devel/libltdl22
/usr/ports/www/apache22
/usr/ports/devel/pkg-config
/usr/ports/textproc/libxml2
/usr/ports/lang/perl5.8
/usr/ports/devel/m4
/usr/ports/misc/help2man
/usr/ports/devel/gmake
/usr/ports/devel/autoconf-wrapper
/usr/ports/devel/libtool22
/usr/ports/textproc/expat2
/usr/ports/devel/pcre
/usr/ports/converters/libiconv
/usr/ports/databases/mysql50-client
/usr/ports/databases/db41
/usr/ports/devel/p5-Locale-gettext
/usr/ports/devel/gettext


As you can see - Apache is dependency of php5-mcrypt in my (non default) 
case.

Can I provide you some more informations from my environment?

Miroslav Lachman


More information about the freebsd-ports mailing list