libkscreen binary incompatible change

Harald Sitter sitter at kde.org
Fri Mar 6 09:52:38 UTC 2015


Highlighted on IRC. But here's a mail so it doesn't get lost in the
blackhole that is IRC backlog...

Since 2015-03-05 libkscreen has a commit that adds an argument with
default value to a function [1]. While this change is source
compatible (default value), it is not binary compatible (new
argument). From an ABI point of view there is no such thing as a
default value. So this change in fact changed the symbol of the
function to now expect two arguments where previously one was
sufficient, the default value only matters when software is rebuilt
against the new interface.

For additional reading see [2]; in particular the section 'change its
signature. This includes:'

Now I'd suggest that either the old function gets added back as
deprecated forward calling to the new function, or the soversion gets
bumped. Given that the new function has a default argument anyway I
think a forward call would be less hassle for everyone (it certainly
would be for me with my packager hat on :P). However since libkscreen
AFAIK is not expected to be ABI stable both are a viable option.

[1] http://quickgit.kde.org/?p=libkscreen.git&a=blobdiff&h=1ce3d0abfa385996a4f2768d1197add29df864a6&hp=4957d7c4fc819116fb159bea71c9af5ba83d0b0d&hb=98d5e9ce8eee211ef84a6144bafb090eb43dd0c1&f=src%2Fconfig.h
[2] https://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++#The_Do.27s_and_Don.27ts

HS


More information about the Plasma-devel mailing list