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>
