[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Accepted sdl-image1.2 1.2.2-1 (i386 source)

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

> 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

Reply to: