portmaster is not always recursive

Miroslav Lachman 000.fbsd at quip.cz
Mon Sep 7 23:17:45 UTC 2009


Doug Barton wrote:
> Miroslav Lachman wrote:
> 
> 
>>I know about -f, but it "always" forces update of dependencies. I mean
>>something "inteligent" to do update of intermediate dependencies only in
>>case when some bottom dependency will be updated.
> 
> 
> I'm not sure that I'm following exactly what you're asking for there,
> but I think that there is a trade-off on trying to make dependency
> tracking too complicated vs. simply using -a. If there are things you
> don't want updated with -a there are options like -i and +IGNOREME
> files to solve those problems. Take a look at the man page for more
> information.

I am not arguing that it is "must have" option. Just sometimes useful in 
case when I need to update small subset of ports, not all of them. And 
if there are a lot of available updates, interactive run (-i -a) is 
annoying.



And now I have one problem on topic with recursive update.

There were about 50 available updates, but I want to update just p5 
modules for Amavis / SpamAssassin. In this case -a + -i is not so useful 
option nor +IGNOREME.

This is the list of available p5 updates:
p5-Compress-Raw-Bzip2-2.017  <  needs updating (port has 2.021)
p5-Compress-Raw-Zlib-2.017   <  needs updating (port has 2.021)
p5-Convert-UUlib-1.12,1      <  needs updating (port has 1.30,1)
p5-DBI-1.60.7                <  needs updating (port has 1.60.9)
p5-Digest-1.15_1             <  needs updating (port has 1.16)
p5-ExtUtils-CBuilder-0.24    <  needs updating (port has 0.2603.01)
p5-ExtUtils-ParseXS-2.19_1   <  needs updating (port has 2.20)
p5-File-Temp-0.21            <  needs updating (port has 0.22)
p5-Geography-Countries-1.4   <  needs updating (port has 2009041301)
p5-HTML-Parser-3.61          <  needs updating (port has 3.62)
p5-IO-Socket-SSL-1.26        <  needs updating (port has 1.30)
p5-IO-Zlib-1.09              <  needs updating (port has 1.10)
p5-Module-Build-0.33         <  needs updating (port has 0.35)
p5-Net-IP-1.25               <  needs updating (port has 1.25_1)
p5-Net-SSLeay-1.35_1         <  needs updating (port has 1.35_2)
p5-PathTools-3.2900          <  needs updating (port has 3.3000)
p5-Storable-2.20             <  needs updating (port has 2.21)
p5-URI-1.38                  <  needs updating (port has 1.40)
p5-YAML-0.68                 <  needs updating (port has 0.70)
p5-libwww-5.828              <  needs updating (port has 5.831)


There is no update for Amavis or SpamAssassin but there are updates for 
their dependencies.
I tried `portmaster -i p5-Mail-SpamAssassin-3.2.5_4` and `portmaster -i 
-x amavisd-new amavisd-new-2.6.4_1,1`

I expected update of all dependencies and in case of Amavis exclude 
amavisd-new from reinstall, but amavisd was reinstalled and not all 
dependencies was updated. (I press Y for all questions on interactive 
run of portmaster)

Only listed questions were asked:

root at fido ~/# portmaster -i p5-Mail-SpamAssassin-3.2.5_4

===>>> Update p5-IO-Zlib-1.09 to p5-IO-Zlib-1.10? [y] y
===>>> Update p5-IO-Socket-SSL-1.26 to p5-IO-Socket-SSL-1.30? [y] y
===>>> Update p5-Net-SSLeay-1.35_1 to p5-Net-SSLeay-1.35_2? [y] y
===>>> Update p5-HTML-Parser-3.61 to p5-HTML-Parser-3.62? [y] y
===>>> Update p5-URI-1.38 to p5-URI-1.40? [y]
===>>> Update p5-libwww-5.828 to p5-libwww-5.831? [y] y

===>>> The following actions were performed:
         Upgrade of p5-IO-Zlib-1.09 to p5-IO-Zlib-1.10
         Upgrade of p5-URI-1.38 to p5-URI-1.40
         Upgrade of p5-HTML-Parser-3.61 to p5-HTML-Parser-3.62
         Upgrade of p5-Net-SSLeay-1.35_1 to p5-Net-SSLeay-1.35_2
         Upgrade of p5-IO-Socket-SSL-1.26 to p5-IO-Socket-SSL-1.30
         Upgrade of p5-libwww-5.828 to p5-libwww-5.831
         Re-installation of p5-Mail-SpamAssassin-3.2.5_4


root at fido ~/# portmaster -i -x amavisd-new amavisd-new-2.6.4_1,1

===>>> Update unrar-3.80,5 to unrar-3.90,5? [y] y
===>>> Update p5-Convert-UUlib-1.12,1 to p5-Convert-UUlib-1.30,1? [y] y

===>>> The following actions were performed:
         Upgrade of unrar-3.80,5 to unrar-3.90,5
         Upgrade of p5-Convert-UUlib-1.12,1 to p5-Convert-UUlib-1.30,1
         Re-installation of amavisd-new-2.6.4_1,1


After this upgrade, there are 7 dependencies not updated:

root at fido ~/# pkg_version -vL = | grep '^p5-'
p5-Compress-Raw-Bzip2-2.017  <  needs updating (port has 2.021)
p5-Compress-Raw-Zlib-2.017   <  needs updating (port has 2.021)
p5-DBI-1.60.7                <  needs updating (port has 1.60.9)
p5-File-Temp-0.21            <  needs updating (port has 0.22)
p5-Geography-Countries-1.4   <  needs updating (port has 2009041301)
p5-Net-IP-1.25               <  needs updating (port has 1.25_1)
p5-PathTools-3.2900          <  needs updating (port has 3.3000)
p5-Storable-2.20             <  needs updating (port has 2.21)


p5-PathTools-3.2900 is not dependency of Amavis or SpamAssassin


# pkg_info -R p5-Compress-Raw-Bzip2-2.017 | egrep -i "amavisd|spamassassin"
p5-Mail-SpamAssassin-3.2.5_4
amavisd-new-2.6.4_1,1

# pkg_info -R p5-Compress-Raw-Zlib-2.017 | egrep -i "amavisd|spamassassin"
p5-Mail-SpamAssassin-3.2.5_4
amavisd-new-2.6.4_1,1

# pkg_info -R p5-DBI-1.60.7 | egrep -i "amavisd|spamassassin"
p5-Mail-SpamAssassin-3.2.5_4
amavisd-new-2.6.4_1,1

# pkg_info -R p5-File-Temp-0.21 | egrep -i "amavisd|spamassassin"
amavisd-new-2.6.4_1,1

# pkg_info -R p5-Geography-Countries-1.4 | egrep -i "amavisd|spamassassin"
p5-Mail-SpamAssassin-3.2.5_4
amavisd-new-2.6.4_1,1

# pkg_info -R p5-Net-IP-1.25 | egrep -i "amavisd|spamassassin"
p5-Mail-SpamAssassin-3.2.5_4
amavisd-new-2.6.4_1,1

# pkg_info -R p5-PathTools-3.2900 | egrep -i "amavisd|spamassassin"

# pkg_info -R p5-Storable-2.20 | egrep -i "amavisd|spamassassin"
p5-Mail-SpamAssassin-3.2.5_4
amavisd-new-2.6.4_1,1


As I wrote above, -a is not useful for this type of update when I want 
to update just a small subset of ports, -i is not much helpful as 
portmaster doesn't ask for all recorded dependencies.
-f forces to rebuild all dependencies (not just deps with available update)
-x doesn't work for me (I don't know why in this case)


I can live with it. I am just saying there may remains some bug in 
portmaster with recursion or exclusion. But it is not too serious for me 
and I know the debugging is very time consuming for you.

All in all, portmaster is the best ports management tool for me and this 
minor problems I have will not change it :)

Miroslav Lachman


More information about the freebsd-ports mailing list