Re: .so versions



On Sun, 2007-07-15 at 01:05 +0200, Vincent Untz wrote: 
> Le samedi 14 juillet 2007, à 12:01 -0600, Elijah Newren a écrit :
> > On 7/13/07, Murray Cumming <murrayc murrayc com> wrote:
> > > I've stopped changing the --version-info in gtkmm at all since a couple
> > > of years ago to avoid problems, but I'd really like a simple set of
> > > instructions about what to do in our most common cases, with examples of
> > > actual --version-info numbers before and after.
> > 
> > Yes, this is badly needed, IMO.  I've had complaints that I changed
> > libwnck .so versions too much.  But I couldn't figure it out from the
> > comments in various configure.(ac|in) files either.
> 
> Here's what is in gnome-panel:
> 
> # Before making a release, the LT_VERSION string should be modified.
> # The string is of the form C:R:A.
> # - If interfaces have been changed or added, but binary compatibility has
> #   been preserved, change to C+1:0:A+1
> # - If binary compatibility has been broken (eg removed or changed interfaces)
> #   change to C+1:0:0
> # - If the interface is the same as the previous version, change to C:R+1:A
> 
> LIB_PANEL_APPLET_LT_VERSION=2:20:2
> 
> libwnck has some similar comments, but they're less clear (IMHO).
> 
> Murray, is this set of instructions clear enough?
> 
> > Going one step further...it'd also be really nice to have some
> > automated tool to verify whether I made the right changes.  (Perhaps
> > that could be run as part of make distcheck?)
> 
> 100% agree. I believe some packagers are running some test to see if the
> API or ABI has changed. We could perhaps start from this?

What I've seen a few modules do (like gtkhtml and gtksourceview) is to
bump their internal versions then let pkg-config sort out the
requirements.  This might make a better solution for all GNOME modules
rather than increasing .so versions.  

Shared lib versions are not reliable on all platforms.  For example, on
FreeBSD, the libtool code by default use the LT_CURRENT number above for
the shared lib version.  So while Linux will have
libpanel-applet-2.so.0, FreeBSD would have libpanel-applet-2.so.2 (this
gets really ridiculous when you look at something like gtk+ which can
get a shared lib version of 1105 on FreeBSD).  We've since hacked around
this problem, but pkg-config is always unambiguous.

Joe

-- 
Joe Marcus Clarke
FreeBSD GNOME Team      ::      gnome FreeBSD org
FreeNode / #freebsd-gnome
http://www.FreeBSD.org/gnome

Attachment: signature.asc
Description: This is a digitally signed message part



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