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

Andreas Tille <[email protected]>
Newsgroups gmane.linux.debian.devel.medical
Message-ID <[email protected]>
Hi Sébastien,

Am Sun, Jul 16, 2023 at 11:38:51AM +0200 schrieb Sébastien Jodogne:
> > 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

I confirm I'm pretty bored by the RC bugs every C++ package with symbols
files recieves for every gcc upgrade.  It simply drains a lot of
developer time for no real use.  I have one reason to keep the symbols
file for certain libraries:  Very often upstream does not care about
SOVERSIONs.  Maintaining a symbols file usually raises a signal in new
upstream versions if we need to bump SOVERSION.  IMHO this has some
advantage - but I'm not sure whether it is outweighting the extra work
we have.

> 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").

Fine for me.
 
> 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

How can you be sure that the ABI is really stable?
 
> 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...

I think you are right.  I was just asking for some review.
 
We should probably fix the lintian error (about the pkgconfig files) but
I probably will not manage before tomorrow evening (more probably
Tuesday morning).  So if you (or someone else) beat me with uploading
this is perfectly fine.
 
Kind regards
      Andreas.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.