git.net

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

Symbols files for C++ libraries for Ubuntu main


On 18.05.2018 01:49, Jeremy Bicha wrote:
> Hi,
> 
> There has recently been a question [1] about whether symbols files
> should be mandatory for C++ libraries in Ubuntu 'main'. I'm curious to
> hear what other Ubuntu developers think about this topic.
> 
> Symbols files aren't mentioned in the official MIR criteria at all. [2]

This is wrong. https://wiki.ubuntu.com/MIRTeam shows the list of things that the
MIR team usually checks and we usually extend it when we see new checks which
should be necessary.  It might be time to update the list of criteria using this
list.  I'm adding a work item for that for our next sprint.

> I think there's general agreement that Ubuntu should use symbols files
> for C libraries. And although it's not "required" in Debian as I
> understand it, I think there is widespread support for it as "best
> practice" there too.
> 
> C++ libraries can be much more difficult to maintain symbols files
> for. I frequently see uploads for a new upstream release of a C++
> library, quickly followed by another upload to fix the symbols files
> so that the package builds on all supported architectures.

yes, and that is a very easy process using the pkg kde symbols helper.
See https://pkg-kde.alioth.debian.org/symbolfiles.html, but this link is now not
accessible anymore.

> In my opinion, symbols files for a C++ library is a decision best made
> by the package maintainer. [3] Therefore, if the Debian maintainer
> chooses to not maintain symbols files, the Ubuntu team handling the
> package can follow the Debian lead or optionally maintain symbols
> files as an Ubuntu diff.

I completely disagree.  Replacing a somehow suboptimal check with no check is
not an option.  The symbols files for C++ are not ideal, and having template
instantiated symbols there, which change with the level of optimization or the
compiler version is sometimes tedious.

What you refer to the decision of the Debian maintainer is the resolution of
Debian bug #815633, a request (including a patch) to add support for kfreebsd
symbols files, resulting in just dropping the symbols files.  Sorry, but that's
not something where we should follow Debian, at least not for packages in main.

I already mentioned the pkg kde symbols helper how to improve that situation,
but there are other alternatives:

 - the abi-compliance-checker, and available in debhelper via dh-acc.
   I'm not sure about how it is maintained these days

 - abigail-tools, a tool used by Fedora/RedHat, but it can be picky sometimes,
   and more strict than just symbols files.

I am more worried that Ubuntu tries to drop deltas more aggressively these days,
at least for packages in main.  The MIR process is a one-time process (including
the security reviews), and relies on the fact that having these changes in
follow-up uploads is respected for further uploads.  If that's not anymore the
case we need to review the MIR process and security reviews to include new
reviews when Ubuntu is dropping deltas from Debian (for packages in main).

Having no-delta between Debian and Ubuntu should be goal, but not a must-have.
I feel that this is seen differently these days, but it's a policy change which
is not communicated in any way.

Matthias