libpytalloc-util 2.2.0 broke the ABI
Andreas Schneider
asn at samba.org
Thu Nov 21 13:41:44 UTC 2019
Hello,
we tried to package libtalloc 2.2.0 and our internal testing tools revealed an
ABI breakage in libpytalloc-util.
nothing provides libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.
2(PYTALLOC_UTIL.PY3_2.1.5)(64bit) needed by python3-samba-4.10.4-101
Checking the PRM Provides libpytalloc-utils show the ABI is:
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2()(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.
2(PYTALLOC_UTIL.CPYTHON_36M_PPC64LE_LINUX_GNU_2.2.0)(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.0.6)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.0.7)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.0.8)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.0)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.1)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.10)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.11)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.12)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.13)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.14)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.15)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.16)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.2)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.3)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.4)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.5)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.6)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.7)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.8)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.1.9)
(64bit)
libpytalloc-util.cpython-36m-ppc64le-linux-gnu.so.2(PYTALLOC_UTIL_2.2.0)
(64bit)
as you can see the PYTALLOC_UTIL.PY3_2.1.5 (note the .PY3) symbols are gone.
This means we have an ABI break in libpytalloc-util. You can't update the
library without breaking existing applications!
However the SO version has not been bumped to indicate such a breakage, we
still claim it is compatible. The SO version should be 3 in such a case and
not 2.
This has been introduced by commit 24127acae0f05f0011c4008e75f1a1de31584199
ABI: Remove unused .py3*.sigs files
These are no longer used by the build system so avoid
confusion by removing them from the tree.
I'm investigating how we are fixing this in RHEL now. Maybe we have to add the
symbols back in our package.
For Samba I guess we should bump the SO version of libpytalloc-util to 3 asap.
In addition I think we need a CI job which runs the abi-compliance-checker for
all public libraries.
Fedora provides packages for abi-dumper and abi-compliance-checker. So we
could keep an ABI dump from the current released version in the source tree
and compare against that one if we break anything.
Cheers,
Andreas
--
Andreas Schneider asn at samba.org
Samba Team www.samba.org
GPG-ID: 8DFF53E18F2ABC8D8F3C92237EE0FC4DCC014E3D
More information about the samba-technical
mailing list