On Fri, Mar 12, 2021 at 6:31 PM Simon Lees <sflees@suse.de> wrote:
On 3/13/21 12:34 AM, Adam Majer wrote:
On Fri, Mar 12, 2021 at 02:24:28PM +0100, Stephan Kulow wrote:
Am 12.03.21 um 14:01 schrieb Adam Majer:
So I would say that all versions of Leap prior to 15.2 were all major releases and were not really ABI compatible. Today, we can at least say that ABI compatibility is maintained between these minor releases. Well, at least for some core packages.
Not sure how you conclude that. We can easily break ABI with a binary update - just as we can keep it with recompiled sources. Your statement sounds like FUD to me.
Not sure about the FUD here. Once the underlying dependencies are changed, the ABI interface of components on top can change too, sometimes in unexpected manner. This is why we don't build packages in SLE 15.3 when we want to use them in 15.2 even if the sources are the same. (and especially since we don't track symbol versions like Debian does)
Symbol versioning is tracked in RPM systems too, we express it as auto-generated dependencies. Debian does not expose that information beyond the build of the package itself, so third parties cannot directly depend on that "contract", and indeed Debian does not guarantee this.
The act of rebuilding on a new system (eg. updated systemd, etc), can result in things that are no longer compatible in the old environment. And sometimes, things may not even be compatible with the old environment.
But yes, depends on the piece of software.
True that did happen very occasionally but when it did it was treated as a critical bug and reverted. Packages shouldn't be changing in a way that cause other packages to break ABI. So yes we say that we keep it between minor versions and us failing to do so is treated as a bug.
We're doing it in a very major way with the glibc update happening in 15.3 (*sigh*). -- 真実はいつも一つ!/ Always, there's only one truth!