On Wed, 2008-05-07 at 00:46 -0400, Tom Lane wrote:
Ralf Corsepius <rc040203(a)freenet.de> writes:
> On Tue, 2008-05-06 at 23:01 -0400, Tom Lane wrote:
>> Hmm, you think a version digit or so is enough to encode everything
>> there is to be known about a package?
> Think of SONAMES in terms of APIs. Two packages providing a library with
> the same SONAME must be API-compatible and remain API-compatible
> throughout a distributions life-time.
Actually, I think SONAME is supposed to promise ABI compatibility,
which is not the same as API compatibility.
Pedantically speaking, you are right.
It's only that from a library implementor's point of view, the real ABI
(Compiler, object format/ELF) must remain constant and unchanged, i.e.
they use SONAMEs to version their APIs under the premise of a constant
ABI.
But that's a marginal
issue. The point I was trying to make is that a library can have a lot
of behaviors that do not, and SHOULD NOT, involve breakage of its ABI
contract; and yet can well impinge on its ability to play nice with
other packages that are outside the scope of its ABI.
Ralf