[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: LDAP library version number



below in that thread you we end up to:

so that it would be very bad to link (ln -s) /usr/lib/liblber-2.2.so.7.0.1 to /usr/lib/liblber.so.2 ?



It certainly would not be all that wise.

So what it the wise solution !? I just compiled & packaged openldap-2.2.11 and I still get the dependencies problem on "liblber.so.2 is needed by (installed) php-ldap-4.2.2-18.3" etc ...
Does this mean I need to recompile all pakages depending on liblber.so.2 &libldap.so.2 ? or I can dream on a easier solution ? the ABI is incompatible with old packages or it just adds "new features" , in that case I don't see why generating a liblber.so.2 in addition (as a copy or link) to the actually make install generated liblber-2.2.so.7 would be bad advice ?
what do you advice ?


$ rpm -qpli openldap-2.2.11-1.i386.rpm | grep liblber*
/usr/lib/liblber-2.2.so.7
/usr/lib/liblber-2.2.so.7.0.4

$ rpm -Uvh openldap-2.2.11-1.i386.rpm
error: Failed dependencies:
       liblber.so.2 is needed by (installed) gnomemeeting-0.96.0-4
       liblber.so.2 is needed by (installed) php-ldap-4.2.2-18.3
       liblber.so.2 is needed by (installed) autofs-3.1.7-36

Thanks.

Kurt D. Zeilenga wrote:

At 06:40 AM 3/30/2004, Jehan PROCACCIA wrote:


Quanah Gibson-Mount a écrit :



See ITS#3035 -- It is agreed that the 2.2.7 solution doesn't work either, and a new fix has been suggested.


http://www.openldap.org/its/index.cgi/Build?id=3035;selectid=3035;statetype=-1

OK, I've followed and tryed to understand that long ITS thread, I realize now that this soname issue is essential .
I just RPM packaged 2.2.8 and although library name changed ( due to -release + -version-info now), I still get a Failed dependencies on liblber.so.2 and libldap.so.2.



Good.



So does 2.2.X as a minor release compare to 2.1.X



While we often refer to a point release as a "minor" release, they often include major functional changes. Other projects may increase the major number upon such changes, we however only change the major number when major architectural or sweeping changes are made. For instance, going from an LDAPv2 core functionality (as in 1.x) to LDAPv3 core functionality (as in 2.x).



means an incompatible API (ABI ? not sure of what is an ABI :-( ),



API - application programming interface ABI - application binary interface

You can think of the API as being defined in <ldap.h> and the
ABI being defined as the linker's interface.  In both cases,
the interface is not just syntax, but also semantics associated
with the syntax.



so that it would be very bad to link (ln -s) /usr/lib/liblber-2.2.so.7.0.1 to /usr/lib/liblber.so.2 ?



It certainly would not be all that wise.



if this is the preconize solution, should this be done by packager or it should be in the build process from openldap-2.2.8.tgz sources ?
After all , what do you suggest ?



Personnel, you should leave setting of API and ABI versioning to the developers. That is, to "make install".



By the way, does liblber.so.2.0.124 means that this library dates from openldap 2.0.X ?



No. Library interface versioning numbers do not necessarily have any relationship to software version numbers. Certainly you should not rely on there being any relationship.

Kurt