Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Mar 2003 18:19:38 -0800
From:      Kent Stewart <kstewart@owt.com>
To:        freebsd-questions@FreeBSD.ORG
Subject:   Re: Portupgrade -- revisited
Message-ID:  <200303021819.38745.kstewart@owt.com>
In-Reply-To: <87healw8ao.fsf@strauser.com>
References:  <20030302192233.GA326@willow.raggedclown.intra> <200303021628.21627.kstewart@owt.com> <87healw8ao.fsf@strauser.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 02 March 2003 05:25 pm, Kirk Strauser wrote:
> At 2003-03-03T00:28:21Z, Kent Stewart <kstewart@owt.com> writes:
> > The -rR bothers me because it is making a lot of ports that don't
> > need to be updated.
>
> It was my understand that if `-rR' would upgrade a port, then that
> port needs to be upgraded.  For a non-FreeBSD perspective, look at
> Debian: you are extremely discouraged from upgrading a program
> without upgrading all of its dependencies, and all of their
> dependencies.
>
> > I typically have 2 or 3 lines that need updating and -ruf will
> > force them.
>
> I'm allergic to the word `force'.  It's usually a synonym for "Yes, I
> really want you to break it!".
>
> I've never, ever used `-f' except when re-installing the same version
> of a port (i.e. with different build options), and that may be why
> I've never had the portupgrade problems that some people have.  Take
> this scenario:
>
> x, y, and z are installed.  y depends on x and z.  After cvsup'ing,
> new versions of all three are installed.  Furthermore, y explicitly
> depends on the newest version of z to function correctly (real world
> examples: libpng, gd).
>
> Now, if you `portupgrade -rR x', it will:
>
> 1. Recompile x
> 2. Recurse to y
> 3. Realize that it has to upgrade z
> 4. Recompile z
> 5. Recompile y
>
> so that y is correctly built with the new versions of x and z.  On
> the other hand, if you `portupgrade -R x', it will:
>
> 1. Recompile x
> 2. Recurse to y
> 3. Recompile y
>
> so that y is incorrectly built against a new version of x, but an old
> version of z.

We are basically doing the same thing. A portversion -c would have shown 
x, y, and z. When I check the versions, I would have seen that y 
depended on x and z.  I would specify x and z on the -ruf.  This is 
what I called an interesection. If there is more than one intersection, 
I usually have rebuilt everything.

I have seen situations where your -rR would have really been beneficial 
and faster than rebuilding everything.

Kent
>
> > The way I understand it, a -rR kdebase will rebuild most of XFree86
> > and etc.
>
> True, but X doesn't update *that* often.
>

True! But the b-dep for kdebase is

B-deps: Mesa-3.4.2_2 XFree86-fontEncodings-4.2.0 
XFree86-fontScalable-4.2.0 XFree86-libraries-4.2.1_7 Xft-2.1_2 
arts-1.1,1 cups-base-1.1.18.0_4 expat-1.95.6_1 fam-2.6.9_2 
fontconfig-2.1_4 freetype2-2.1.3_1 gettext-0.11.5_1 gmake-3.80 
imake-4.2.0_1 jpeg-6b_1 kdelibs-3.1 lcms-1.09 libart_lgpl2-2.3.11 
libaudiofile-0.2.3 libiconv-1.8_2 libmng-1.0.4 libxml2-2.5.4 
libxslt-1.0.27 open-motif-2.2.2_1 pcre-3.9 pkgconfig-0.15.0 png-1.2.5_2 
python-2.2.2_2 qt-3.1.1_4 tiff-3.5.7
 

and a -R kdebase would have rebuilt all of this. The man page for 
portupgrade show

    -R
     --upward-recursive     Act on all those packages required by the 
given packages as well. (When specified with -F, fetch                          
recursively, including the brand new, uninstalled                             
ports that an upgraded port requires)

The b-deps fall into that category.

Kent

> > The AMD 2000+ uses 6-8 hours to rebuild everything but it will
> > rebuild all of kde-3.1 in 3+.
>
> True, but you're also building KDE against old versions of required
> libraries.  Why not launch a `portupgrade -ra' just before you go to
> bed? Then you can wake up to a shiny, happy new system in the
> morning.

-- 
Kent Stewart
Richland, WA

http://users.owt.com/kstewart/index.html


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




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