ldb ABI versions in 4.17: should it include 2.5.1 & 2.5.2 versions too?
mjt at tls.msk.ru
Sat Sep 10 10:20:06 UTC 2022
09.09.2022 23:20, Andrew Bartlett via samba-technical wrote:
> On Fri, 2022-09-09 at 14:19 +0300, Michael Tokarev via samba-technical
>> I'm not sure if this matter or not (since ldb is tied with samba), but ldb in 4.17.0rc5
>> lacks versions 2.5.1 and 2.5.2 released within samba 4.16.x series, while previous minor
>> ldb releases are listed there.
> No, we don't normally include the branched history of ldb there.
Maybe this is something which can be reviewed?
The thing is. Giving this ldb-2.5.2 version as an example.
Let's imagine there's a program using ldb (linking with ldb). And it
has been compiled with ldb-2.5.2. And it uses, say, ldb_msg_add_string_flags
symbol. When compiled/linked against ldb-2.5.2, the executable is marked with
NEEDS: ldb_msg_add_string_flags at LDB_2.5.2, and generally needs LDB_2.5.2
version in libldb.
Now we upgrade libldb from 2.5.2 to 2.6.1. But there, the same
ldb_msg_add_string_flags is versioned as LDB_2.6.1. But it is the
same symbol, doing exactly the same thing.
So this program which were linked with ldb-2.5.2, will not run after
upgrade. - runtime linker will complain it can't find LDB_2.5.2 version
(and this symbol) in just-upgraded ldb-2.6.1. So we'll have to
recompile the program just to fix the ldb versioning references.
Maybe for ldb this is more theoretical, since main its user is samba,
and as far as I can tell, samba should use exactly the same version of
ldb at runtime as it were compiled with. In debian we do have this
requirement now, - maybe someday it can be lifted, I dunno. But for
other libraries this might be more interesting.
More information about the samba-technical