Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Jan 2012 00:57:13 +0200
From:      Andriy Gapon <avg@FreeBSD.org>
To:        Doug Barton <dougb@FreeBSD.org>
Cc:        FreeBSD Stable <freebsd-stable@FreeBSD.org>, George Kontostanos <gkontos.mail@gmail.com>
Subject:   Re: FreeBSD 9 & recompile ports
Message-ID:  <4F10B6C9.8010607@FreeBSD.org>
In-Reply-To: <4F10B1AD.9000400@FreeBSD.org>
References:  <CA%2BdUSyrV_j8GtxS4=yN-DsFCprQ7N%2BEmuRoraDwBLZN1EFFR9w@mail.gmail.com> <CA%2BdUSyqZVVyVkVWTPJXJe921NcZ3RaEN9QojH55NhRNP8xDinA@mail.gmail.com> <4F10009A.7000307@FreeBSD.org> <4F100D9E.80807@FreeBSD.org> <CA%2BdUSyrFVn0skisgeJ1pYjHN3wCXC2tqDPoMoqWNqkjAk8DVmA@mail.gmail.com> <4F10B1AD.9000400@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

Just for the sake of this conversation...

on 14/01/2012 00:35 Doug Barton said the following:
> If you have a sufficiently small number of ports, sure it's possible
> that you *might* not have to recompile. However if you're talking about
> a desktop system with X I guarantee you that if you clean out all the
> old stuff in the base after doing a major version upgrade then there are
> things in /usr/local/ that are linked against libs that no longer exist.
> How much that affects you is a YMMV of course.

But if the appropriate misc/compatX port is installed, then those libraries do
actually exist and the system should be fully usable... Modulo the compat
libraries not working with the new kernel as Kostik has pointed out.

> Meanwhile my larger point was that it doesn't matter whether
> COMPAT_FREEBSD8 exists or not, whether some upgrades appear to work or
> not, etc. When you do a major version upgrade your safest bet is wipe
> out your old stuff and start over from scratch. You'll waste more time
> trying to find ways around doing that than you would spend just doing it. :)

Despite what I said above I still (mostly) agree with this suggestion.
As soon as a user starts updating his ports one at a time it is very easy to run
into a version of a "dll hell" where a binary from port A is linked to a newer
version of some system library, say, libfoo.so.5 and is also linked to a library
from port B, say, libbar.so, which in its turn was originally linked with the
older version of the system library, say, libfoo.so.4.  This could lead to some
severe and hard to debug problem.  Such a situation can be possible if port A is
updated after the system upgrade, but port B is not.

So reinstalling all ports/packages after the system upgrade is the most
straightforward solution.

But the overall situation is not as dramatic as you've originally described and
a more gradual approach to updating the ports is possible with enough care.  But
this is only for the expert users to attempt :-)

-- 
Andriy Gapon



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