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