Problems in KWayland causes by API and ABI compatibility promises
Vlad Zahorodnii
vladzzag at gmail.com
Fri Mar 6 12:45:40 GMT 2020
On 3/5/20 9:50 PM, Martin Flöser wrote:
> For historic context I want to add that we made KWayland an ABI stable
> framework before the unstable-mess of Wayland protocols happened. If
> I/we would have foreseen this problem we would probably have addressed
> this differently. Some of the unstable protocol changes really took me
> by surprise and I had no idea how to handle it at all. Most negative
> example was Qt creating a proprietary input method protocol using the
> official name.
Thank you for providing historical insights. :-)
> Personally I would suggest to keep KWayland in frameworks. It is a
> powerful framework and I still see needs outside of Plasma - especially
> as QtWayland Compositor is going GPL only. I would still love to see QML
> bindings for it. Also what served KWin really well was having the X
> abstracting in KWindowSystem which was a driving factor for me to have
> the KWayland library split out of KWin and provide it as a framework.
> And it's always the joker in case we think we want to start over and
> write a new wayland only window manager.
After some thinking, yes, perhaps it would be better to keep KWayland in
frameworks since there are places where it's used by other projects and
it's not clear how those projects should be ported away from KWayland or
what abstractions we need to introduce in KWindowSystem to break direct
dependencies. But we are still left with the same old problem...
> * only stable protocols get abstracted the way they are today
Given that there are not that many stable protocols in the wild, it's
hard to tell whether we actually need to abstract them.
> * KWin can support multiple versions, although that means more work on
> KWin side, but it also creates pressure to drop support for the old code
Yes, unfortunately we'll have to duplicate some code on KWin side. It's
a nightmare according to the DRY principle, but I think that's the right
way to handle multiple versions of a particular protocol.
Cheers,
Vlad
More information about the kwin
mailing list