On Sun, Jul 28, 2002 at 09:23:52AM +0900, Junichi Uekawa wrote: > Steve Langasek <vorlon@netexpress.net> immo vero scripsit: > > Yes, there is a mass rebuild. But using versioned symbols, we only have > > to rebuild all of the packages that *directly* link against libpng in > > order to have a smooth transition. If you change the SONAMEs of > > libraries that link against libpng, then we also have to rebuild all > > packages that *indirectly* link against libpng, as well. > Is this statement true? Yes. What part do you believe to be untrue? > Take this scenario: > A user is using Debian 3.0 > Looks at unstable. > He upgrades mozilla (mozilla might not be a good example, > maybe evolution) which pulls in new libgtk1.2, > and other misc things which is compiled against libpng3. > Does the rest of gnome/kde/whatever still work after that? Once all packages have been upgraded to use versioned symbols (with either libpng2 or libpng3), this will be true for all further upgrades. > More precisely, does versioned symbols really help > applications to link against libpng2 and libpng3 at > the same time (which might be versioned or unversioned) Only in the case where they are versioned; but using unversioned symbols here is broken, as I argue below. > I don't accept "use dist-upgrade" as a solution. > That is a poor answer. To provide a smooth transition, the use of versioned symbols does require users to run apt-get [dist-]upgrade *once*. This is unfortunate, but the entire situation we're in right now is unfortunate. Once apt-get upgrade has been done, and all packages on the system reference the versioned libpng symbols, all further upgrades can be handled smoothly. Partial upgrades will work correctly; migrating to libpng3 can be handled gradually; archive bloat from redundant libraries will be kept to a minimum; and we will be better able to maintain compatibility with other distributions, because no SONAMEs will be changing. I don't think "use dist-upgrade" is too high a price to pay, especially when it's a one-time price. No one guarantees that partial upgrades will always work, after all; and I would argue that the libpng-using packages we have in the archive right now are *already* broken, even if they aren't (yet) segfaulting. Requiring an apt-get upgrade to remove broken packages from your system is not too much to ask. In addition, using versioned symbols easily guarantees that all packages in the archive will remain installable throughout the transition, without having to create multiple source packages for multiple libraries. > If Debian wants to do a Debian local hack to one of its core > libraries, which makes it binary-incompatible, > then we might as well start changing SONAMEs of random libraries > ignoring upstream, as some libraries in Debian already are doing. But, this is precisely what you are proposing when you suggest changing the SONAME of every library that links against libpng! At least with versioned symbols, binaries built on other platforms have a chance of working on Debian systems (as long as they don't link in too many copies of libpng). With your proposed change, we will be permanently incompatible with other distros -- not just during the libpng2->libpng3 transition, but afterwards, as well. Steve Langasek postmodern programmer
Attachment:
pgpcTotDzZ1fT.pgp
Description: PGP signature