On Fri, Aug 16, 2002 at 04:06:56PM +0100, Richard Kettlewell wrote: > Matthew Wilcox <willy@debian.org> writes: > > * Add a Conflict with the non-`c' version of the package. > So it will be impossible to have both the old and new library packages > on the system simultaneously. That's broken. > > Why don't we just change the sonames? > > Because upstream chooses the soname to match their API. If we change > Sonames define ABIs not APIs. > > the soname then we render ourselves binary-incompatible with other > > distros and vendor-supplied binaries. This is important because the > > LSB intend to standardise the GCC 3.2 ABI; for Debian to become > > binary-incompatible at this point would be the height of > > perversity. > You have to change the soname for this kind of transition to work > properly and (obviously) this must be coordinated with upstream. From the heated discussion I've just had on IRC, I've gathered the following: * It is assumed that for the vast majority of C++ libs we ship, upstream has already transitioned to using the GCC 3.2 ABI, therefore our current packages are already binary-incompatible with the rest of the world. (ok) * In these cases, having a package whose soname is compatible with the rest of the world is considered more important than providing compatibility for binaries locally compiled by our users against the old, broken ABI. (ok) * For any remaining libraries, there are many in Debian who don't give a damn about getting it right, to the point that they don't want maintainers to get any grandiose ideas about discussing this issue with upstream and possibly hammering out a sane, cross-platform transitioning plan for the library in question that actually manages to NOT break anything. (not ok) But, I seem to be strongly outvoted on the last point. <shrug> Steve Langasek postmodern programmer
Attachment:
pgp_BHsrDAx6s.pgp
Description: PGP signature