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

Re: RFS: libconfig



Hi again, mentors

    When checking the reference package, as per Jan's suggestion I have
found an apparent oddity, as described below:

Jan Hauke Rahm wrote:
> I'm not very familiar with shared libraries to be honest. Why don't you
> provide versioned symbols? And did you check for API/ABI breakage --
> just to be sure no binNMUs are needed?
>   
* We have
-----------------
(unstable)joseluis@vortex:/usr/src/debian/libconfig/libconfig-1.4.3$ ls
-F lib/.libs/*.so*
lib/.libs/libconfig++.so@        lib/.libs/libconfig.so@
lib/.libs/libconfig++.so.8@      lib/.libs/libconfig.so.8@
lib/.libs/libconfig++.so.8.1.2*  lib/.libs/libconfig.so.8.1.2*
-----------------
 -> This is what I checked to decide whether an API/ABI bump had
occurred upstream.


* Whereas:
----------------
(unstable)joseluis@vortex:/usr/src/debian/libconfig/libconfig-1.4.3$
tail -n +24 lib/Makefile.am | head
# For more info see section 6.3 of the GNU Libtool Manual.
VERINFO = -version-info 9:2:1
PARSER_PREFIX = libconfig_yy
libconfig_la_LDFLAGS = $(VERINFO) -no-undefined
libconfig___la_LDFLAGS = $(VERINFO) -no-undefined
libsrc = libconfig.c scanner.l grammar.y parsectx.h wincompat.h \
        scanctx.c scanctx.h strbuf.c strbuf.h
---------------
 and upstream ships a set of (most basic) debian/libconfig9* files

... but in fact the libraries are compiled as  ".so.8.1.2", which means
8:1:2


Re-reading upstream's Changelog, the newly-introduced copy constructor
would indeed change the ABI, and hence need a soname bump -- upstream
just changed the "micro" version ????


I would really appreciate it if someone profficient with shared
libraries could provide some insight on this.
My current take:
 - package 1.4.4 (from 1.4.3)
 - soname bump to 9 -- which alleviates most problems outlined below
 - generate symbols files from this
 - potentially generate a symbols file from 1.3.2 and include it too, to
help with versioning

 - provide some tip / patch to upstream to fix this "naming breakage"
  (either this, or my build system is badly br0ken)


Additional comments are welcome, of course.

Regards,
    J.L.



Reply to: