library versioning

Brian J. Tarricone bjt23 at cornell.edu
Sun Jan 23 02:20:54 CET 2005


Oliver Lehmann wrote:

>Let's take libxfce4util.so.1. You would rename it to libxfceutil-4.3.so
>right? And when 4.4 comes out, you have to recompile everything, because
>the old 4.3 lib is gone, and the new one is named libxfceutil-4.4.so? Even
>if the libraries API didn't changed? That would be really bad!
>
um, but a recompile of everything *was* required.  during the RC cycle, 
we bumped the MCS plugin and panel API version, and a recompile was 
necessary.  frankly, i *want* to force a recompile between the 4.3 devel 
series and the 4.4 stable series.  this ensures that there aren't 
problems with people linking against possibly old (and broken) 4.3 libs 
when 4.4 stable comes out.

at any rate, this boils down to a packaging problem, not a 
compile/install problem.  users should just be upgrading packages in 
their packaging system, and this ensures that stale, leftover libraries 
from manual compiles (during the dev series) don't end up causing broken 
packages.

>My point is: why changing the name even if nothing changed. Take 
>libxfce4util.so.1. In 4.0.6 it was libxfce4util.so.1 too.
>  
>
yes, which was an error, as benny mentioned.

>When the ABI doesn't gets changed, it makes no sence to rename the
>library.
>  
>
that depends on what you mean by an ABI change.  the ABI from 4.0 to 4.2 
*did* change, though it was a mostly backward-compatible change.  i mean 
that, theoretically, you could compile xfdesktop 4.0.6 against 
libxfce4util 4.2.0, and it should work ok.  however, you can't compile 
xfdesktop 4.2.0 against libxfce4util 4.0.6, obviously.  and this is the 
problem: stale 4.0.6 libraries causing 4.2.0 compiles to fail.  
versioning the library file names would solve this.

>If it is requiered to install different versions of xfce4, install them in
>different locations (--prefix) and use -L to make shure everything
>gets linked against the right library. Further, use -rpath to make shure
>it will use the right library later.
>  
>
except that this didn't work.  i agree with you that it should in 
theory, but it didn't.  there were unresolved symbol problems all over.  
it was very frustrating to answer the same questions over and over 
again, since it often required helping users find and manually delete 
the problematic files.  not something that's easily FAQ-able, especially 
considering many users often refused to believe that there were old 
files on their system.  of course, 99% of the time, after forcing them 
to look, it turned out they were there - but overall it was very 
frustrating for me, and i'd like to avoid that during the 4.3 cycle.  if 
you have a different way of avoiding this crap, feel free to speak up.

    -brian



More information about the Xfce4-dev mailing list