Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Aug 2009 23:31:42 -0700
From:      Doug Barton <dougb@FreeBSD.org>
To:        Andrew Reilly <andrew-freebsd@areilly.bpc-users.org>
Cc:        gnome@freebsd.org, ports@freebsd.org, gecko@freebsd.org, Kevin Oberman <oberman@es.net>
Subject:   Re: [HEADUP] FreeBSD Gecko's TODO and plan for future
Message-ID:  <4A93854E.7020608@FreeBSD.org>
In-Reply-To: <20090825021135.GA70448@duncan.reilly.home>
References:  <20090825002359.GA61141@duncan.reilly.home>	<20090825011847.53F801CC09@ptavv.es.net> <20090825021135.GA70448@duncan.reilly.home>

next in thread | previous in thread | raw e-mail | index | archive | help
Andrew Reilly wrote:
> On Mon, Aug 24, 2009 at 06:18:47PM -0700, Kevin Oberman wrote:
>> If you have portupgrade, I would suggest 'portupgrade -rfx firefox
>> firefox'. portupgrade works by building a dependency graph of the needed
>> ports and builds te tree from the root. This should get rid of all but a
>> handful of ports.
> 
> I've stopped using portupgrade in favour of portmaster,

Always nice to hear from a happy customer. :)

> but I
> don't see a ready equivalent to this with portmaster, hence my
> dumb script.  In particular, I don't think that portmaster can
> combine the -r and -x flags (depend and exclude),

Ummm, why not? It's a little hard to represent in the man page because
there are so many flags, but -x is included in the "common flags" list
at the top, and the man page does indicate that -r will take the
common flags. You'd have to write it:

portmaster -x firefox -r firefox-2.34
(substitute the actual value for the installed firefox port)

but it should work.

There are at least three other ways to do something similar. One would
be to use -i instead of -x, another would be an +IGNOREME file. Read
the man page for how to use the latter.

Yet another way to do what you proposed in the part of your post that
I snipped (building based on a list) would have been to do this:

pkg_info -q -R firefox-2* > list
portmaster `cat list`

That's probably the simplest way to do what you were trying to
accomplish, and would have had the benefit of portmaster caching all
the data on up to date dependencies, and building the things in the
list in proper dependency order. Sorry to jump in after the fact with
this news, but hopefully it will help someone else.

> and when I've
> done -f -r in combination before, then it seems to build the
> entire transitive closure of dependencies, rather than just the
> immediate ones.

The -f option means "rebuild everything in the chain, no matter what."
If you just want to rebuild everything that has a dependency on the
port you specify with -r, that is the default, you don't need -f.


hth,

Doug

-- 

    This .signature sanitized for your protection




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A93854E.7020608>