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