Le 17/06/2023 à 04:09, Seth Arnold a écrit :
On Thu, Jun 15, 2023 at 04:07:54PM +1000, Christopher James Halse Rogers wrote:
abi-compliance-checker and abigail. None of those experiments have ended up
sticking, though, for reasons which I'm not fully aware of. Alan Griffiths
and Michał Sawicz did most of that investigation; I'll see if they can help
shed light on problems we encountered.

If we *can* get (one of) the ABI checking tools working they'll be more
valuable than a symbols file anyway, as they actually check that ABI didn't
change rather than just that the symbol strings in the DSO match.
I'm not actually close enough to package updates to see how exactly these
different tools report symbols problems. I've tried reading the Debian
Wiki page, the KDE symbols page, etc, but without having these problems
myself, first-hand, it's hard for me to come to terms with the issues.

How do the default symbols files "failures" appear when building packages?
Are the results "actionable"? Or is the usual outcome to pave over the old
file and use a new file?

One typical example, that's a libcamera build that worked in Debian, was synced in Ubuntu and failed to build
https://launchpadlibrarian.net/486620598/buildlog_ubuntu-groovy-amd64.libcamera_0~git20200629+e7aa92a-3_BUILDING.txt.gz

Search for dpkg-gensymbols in the log

$ diffstat symbols.patch
 dpkg-gensymbols5sl4ol |  691 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 501 insertions(+), 190 deletions(-)

What's the ratio of false positives to true positives?
If the library is well maintained we should have true positives, my experience on desktop packages from the past years is that we only get false positives like in the example there where the package is identical between Debian and Ubuntu and yet we get that stack of changes in the symbols.
There's more to ABI compatibility than keeping the types of parameters and
return values lined up. Do any of the ABI tracking tools provide help
looking into the types, or the functions, etc?
I think abi-compliance-checker is doing at some of that, from the website, https://lvc.github.io/abi-compliance-checker/

> The tool can create and compare ABI dumps for header files and shared objects of a library.


Cheers,
Sebastien


--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel

Reply via email to