gnustep-dev
[Top][All Lists]
Advanced

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

Re: ABI Compatibility (was Re: Installation woes for the average user...


From: David Chisnall
Subject: Re: ABI Compatibility (was Re: Installation woes for the average user...)
Date: Wed, 20 May 2009 12:29:54 +0100

On 20 May 2009, at 11:53, Yavor Doganov wrote:

On Wed, May 20, 2009 at 11:24:39AM +0100, Richard Frith-Macdonald wrote:
I think what you are describing (as the correct way to do things) is
what GNUstep already tries to do ... see
http://mediawiki.gnustep.org/index.php/GNUstep_release_policy for the
actual release policy details.

On the contrary -- this very policy is the problem.

The SONAME of a shared library should be bumped if and only if there is
ABI break, not because of publicity reasons, big API additions, or
anything else.  You can continue to version stable releases with even
numbers and unstable releases with odd numbers and release them in any
order you feel apropriate; the SONAME has absolutely nothing to do with
the package version.

In fact, this link appears to directly contradict itself:

The library (SONAME) versions is changed when the major or minor version number of a release changes, but not the subminor number.


and

The minor version number is changed (and therefore the library version) when we break backward compatibility


This does not appear to be what really happens. The minor version number is changed with each new release. This causes installed applications to link against the old GNUstep if you leave it installed (or to just fail if you don't) and causes linker problems with frameworks, since they will link against the GNUstep that they were compiled against while apps that link against them will also link against the new GNUstep.

How you version the releases and what is considered
"stable" and "unstable" is completely orthogonal to the library
versioning.

is technically true, it's not what people expect in practice, and
therefor not policy. The policy is to keep the main so version numbers
in sync with the main release version numbers, because that matches
normal expectations.

Name just one library -- just one -- on your GNU system that behaves
this way.  Consider what would happen if glibc or glib/gtk+ bump the
soname every six months...  I find it incredibly hard to believe that
this is "normal expectation".

Totally agree. For a great many packages (and for OS X frameworks) the soname is completely unrelated to the library version. If you need to know the installed library version, you ask your package manager or pkg-config, or you read some global value / call some global function.

However, I don't think there have been any recent releases which should
have changed the so number for any of the libraries.

I've made an experiment some time ago by altering the symlinks without
recompiling anything. Every GNUstep app in Debian worked out of the box
(of course that's not a 100% proof that the new Base/GUI were ABI
compatible).

Exactly the same for me on FreeBSD. We're not actually breaking the ABI, we just look to the linker / loader like we are doing, which is even worse because it has the same effect while being trivially fixable.

David




reply via email to

[Prev in Thread] Current Thread [Next in Thread]