Issues with library version numbers




In reviewing interface stability, I have been looking at the differences between
the interfaces exposed in the various GNOME libraries.  I notice that there are
a few libraries which have not changed version number since GNOME 2.0, but have
also had modifications to their exposed interfaces.  This seems to be caused
because these libraries have not been updating the LT_VERSION in their
configure.in files when interfaces have changed.

+ libORBit-2.so.0.0.0 (bug 314504)
+ libbonobo-2.so.0.0.0 (bug 314505)
+ libbonobo-activation-2.so.4.0.0 (bug 314508)
+ libbonoboui-2.so.0.0.0 (bug 314505)
+ libaudiofile.so.0.0.2
+ libgconf.so.4.0.0 (bug 314509)

Also, the libgnomevfs library seems to have had a lot of removed interfaces
and it's version number seems to have been changed from 0.0.0 in GNOME 2.0
to 0.1000.0 in GNOME 2.10.  I suspect that libgnome-vfs should really be
bumped to 1.0.0.  (bug 313661).

I also notice that libpangoxft has had 142 functions removed.  I haven't
created a bug on this yet, but I will later today.  Just for the record
there were also some interfaces removed from libgdk-x11-2.0,
libgdk_pixbuf-2.0, libglib-2.0, libgobject-2.0, libgtk-x11-2.0,
libpango-1.0, libpangox-1.0 and libspi, but I have already worked with
these module maintainers and verified that the interfaces removed were
never exposed as public so this isn't really a huge problem.  We shouldn't
have problems in the future with glib or GTK+ since the abicheck script
used by them will help ensure that private interfaces don't leak into
public space anymore.  I'm working with Bala to help get abicheck working
for other modules that will likely stay around after Project Ridley
such as Pango, GConf, and gnome-vfs (though suggestions about which
libraries should be enhanced in this way would be useful).

From an interface stability perspective, it is important for these library
numbers to be bumped when appropriate.  It also is probably bad that
interfaces are removed from these libraries when this probably is not
appropriate according to GNOME's API/ABI rules.  However, I suspect that
this isn't a huge problem since GNOME user's don't seem to be
complaining about the removed interfaces.  I suggest it is probably
reasonable to just fix the numbers for the next release and keep a closer
eye on the library versioning to make sure that the rules are better
followed going forward.

Brian



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