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

Re: Fwd: civetweb_1.15+dfsg-5_source.changes REJECTED



Dear Andreas,

For whatever reason the pristine-tar information does not match the
upstream source tarball.  My way to solve it is to re-import the
tarball I get via

     apt source civetweb

Thanks, that worked! But indeed, it is not relevant anymore since your update to civetweb 1.16 :-)

I admit I'm a bit scared about the need to update the symbols file again.
For my not very well educated eyes we do not need to bump SOVERSION -
but I'd like to have some review here.

From my understanding, the issue here is that we have 2 shared libraries: "libcivetweb-cpp.so" (from C++) and "libcivetweb.so" (from C).

But, according to the following page, "For C++ libraries it is often better not to ship symbols files":
https://wiki.debian.org/UsingSymbolsFiles#C.2B-.2B-_libraries

This stems from the fact that the names of the binary C++ symbols will for instance change by just upgrading g++. This contrasts with the C shared library, for which the ABI is standardized.

As far as I'm concerned, I would consequently tend to consider that "libcivetweb1.symbols.amd64" should only contain the symbols of "libcivetweb.so" (i.e. not those of "libcivetweb-cpp.so").

Furthermore, from my understanding, the suffix of the symbols from "libcivetweb.so" should only contain "1", not "1.15" or "1.16", because of the stability of the C ABI, and because it is OK to add new symbols, while removing symbols should be prohibited. This explains my following changeset, where "1.15" was replaced by "1" for all the functions beginning with "mg_":
https://salsa.debian.org/med-team/civetweb/-/commit/4be6bc58d7c7f5477b34b9ad4bffdad7ad0cac3c

Unfortunately, I was unable to find an option to "dpkg-gensymbols" to generate one single symbols file describing two shared libraries, but with different versions.
So in case you see some issues that take longer to resolve (bumping
SOVERSION means new processing) it might be more sensible to revert the
upstream version to what we had and fix the bug first.

As explained above, I don't think that SOVERSION should be bumped in a C library, at least as long as symbols are not removed, and as long as the upstream doesn't warn about a breaking change in the meaning of the functions (which is not the case of civetweb).

But I might also be fully wrong with what I explained above...

Regards,
Sébastien-


Reply to: