Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 03 Aug 2009 12:47:32 -0700
From:      Doug Barton <dougb@FreeBSD.org>
To:        freebsd-stable@freebsd.org
Subject:   Re: portmaster -R (Was: Re: HEADS-UP: Shared Library Versions	bumped...)
Message-ID:  <4A773ED4.7020709@FreeBSD.org>
In-Reply-To: <20090731193145.GA3750@osiris.mauzo.dyndns.org>
References:  <1248027417.14210.110.camel@neo.cse.buffalo.edu> <200907232335.54973.mel.flynn%2Bfbsd.current@mailing.thruhere.net> <4A6FF5FA.5010904@FreeBSD.org> <200907282342.25038.mel.flynn%2Bfbsd.current@mailing.thruhere.net> <4A707534.8000808@FreeBSD.org> <20090729170601.GA2841@tafi.alm.flutnet.org> <20090731193145.GA3750@osiris.mauzo.dyndns.org>

next in thread | previous in thread | raw e-mail | index | archive | help
[If you follow up to this message please change freebsd-stable@ to
freebsd-ports@. Thanks.]

Ben Morrow wrote:

> Since my machine has spent the last 48hrs or so rebuilding everything
> that depended on jpeg-6b and python25 (it's a pretty old machine), I've
> been wondering if an option to say '*don't* rewrite the dependencies of
> other ports to refer to the new version' would be a good solution here.
> 
> Normally this is a helpful thing to do, but when you're trying to
> reinstall a few ports low in the dependency chain and then rebuild
> everything that needs rebuilding it would be helpful to have the ones
> that haven't been rebuilt still depend on the old (now deleted) package,
> so they can be identified.

That's an interesting idea, but with portmaster you can accomplish the
same thing with the -r option. Just use the -R option on successive
runs if the first one fails for some reason.

> -r (and -Rr) don't help here, since lots of large ports depend on *both*
> jpeg and python, and I was specifically trying to avoid rebuilding them
> all twice.

This is a situation (ports relying on 2 dependencies that both require
complete rebuilds) that is not easy to program for. Fortunately it
also does not come up very often.

> AFAICT -r doesn't allow you to ask for two ports plus all
> combined dependants at once. I ended up taking the pkg_info -R list for
> both pkgs before the upgrade, sorting it into dependency order, and
> stripping entries off the front every time something failed and I had to
> restart, which is a little too manual for my taste :). (The list had to
> be sorted, otherwise port A might depend on port B that came later in
> the list, and when portmaster got to B in the list it would reinstall it
> again unnecessarily.)

For future reference you would have been better off if you had done
'sort -u' on the list then done 'portmaster `cat list`'. Portmaster
would then do all the dependency sorting for you, and it will only
rebuild each port on the list once.


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?4A773ED4.7020709>