library versioning

Benedikt Meurer benedikt.meurer at unix-ag.uni-siegen.de
Sat Jan 22 14:15:04 CET 2005


Brian J. Tarricone wrote:
> [snip]

In short: The problems people have in upgrading to 4.2 and using 4.0 and 
4.2 in parallel are most likely caused by the fact that we didn't bump 
the libxfce4util major version for 4.2.0. I realized that when I was 
preparing 4.2.0, but I didn't want to break it for the release (esp. 
since some amazingly complicated Linux distributions use the major 
version in the package, and that would have meant to rebuild all 
packages, a maintinace nightmare, no wonder that the release of this 
distribution is delayed again and again :-), but thats off-topic now).

Concerning the naming issue suggested by Brian, I'd like to explain what 
we do with libexo currently, to allow parallel installations of major 
versions, and why this isn't suitable for low-level libraries (IMHO):

  a) The library is named libexo-<version>.so
  b) There's a matching exo-<version>.pc file
  c) headers are installed to exo-<version>/ subdir

Currently, the version number is 0.2. Everytime the API is broken 
(though thats unlikely to happen now), the version number will be 
increased. All applications that used the old library will continue to 
work with the old version, but atleast the configure check will have to 
be changed to support the new version. Thats all a minor issue for a 
high-level library. But for low-level libraries like the Xfce libs, that 
can become a problem. Upgrades from one snapshot to another won't be 
very smooth in the future; instead of complains about the problems 
caused by the missed major version bump, we'll see complains about 
missing libxfcegui4-4.3.x.pc or similar. And with all the 3rd party 
applications and panel plugins, it doesn't look like a good idea to use 
this naming scheme in core libraries.

Benedikt



More information about the Xfce4-dev mailing list