Date: Wed, 19 Mar 2008 21:28:35 +0100 (CET) From: Oliver Fromme <olli@lurza.secnetix.de> To: freebsd-stable@FreeBSD.ORG, mlerota@iskon.hr Subject: Re: Upgrading to 7.0 - stupid requirements Message-ID: <200803192028.m2JKSZen098816@lurza.secnetix.de> In-Reply-To: <868x0ezh9u.fsf@zid.claresco.hr>
next in thread | previous in thread | raw e-mail | index | archive | help
Marko Lerota wrote: > This thing should be solved. I liked the way that my OS have > independance from ports. Well, they are not really completely independent. The ports still use libraries from the base OS, e.g. libc, threading libraries etc. Please try to understand the following simple example. The problem is this: Program A from ports links against library B from ports. Both programm A and libray B als link against libc.so.6 from the base OS (FreeBSD 6). Now you update to FreeBSD 7, but you don't update all the ports. Everything still works (even though FreeBSD has a new libc.so.7), because the old software uses libc.so.6 from the compat6x port. BUT ... As soon as you have to update the old library B because of a security problem or anything, you will run into problems: The new library B will link against the new libc.so.7, but the old program A (which uses library B) is still linked against the libc.do.6 from compat6x. So when you try to run program A, it will try to load both libc.so.6 and libc.so.7 (via library B), which will fail, because a binary cannot use two different versions of the same library at once. So program A stops working. Of course, rebuilding program A will solve the problem, so it links to the new libc.so.7, too. That's easy. But in practice it is a lot more complicated, because you have many ports with many binaries and many libraries, with many dependencies between them. You could try to run "pkg_info -R" each time you update something, so you can make sure to update all ports dependent on the one you update. If you do this every time, everything will continue to work, but it's tedious, and as soon as you forget something, you will run into trouble. Really, the easiest and most reliable way is to rebuild all ports (or download compiled packages) and be done with it. > So no metter what I do with ports, my OS and his apps will work. They _will_ work. The trouble only starts when you update some of the ports on which other ports depend, as explained above. > If this thing can be solved (I'm not programmer so I don't know) I can > donate some amount of $ for development. I think that this would make > lots of people happy. I have to admit I see no way how the problem could be solved in a different way, I'm afraid. Best regards Oliver -- Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M. Handelsregister: Registergericht Muenchen, HRA 74606, Geschäftsfuehrung: secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün- chen, HRB 125758, Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart FreeBSD-Dienstleistungen, -Produkte und mehr: http://www.secnetix.de/bsd "C++ is over-complicated nonsense. And Bjorn Shoestrap's book a danger to public health. I tried reading it once, I was in recovery for months." -- Cliff Sarginson
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200803192028.m2JKSZen098816>