QPA plugin like functionality in frameworks?

Martin Gräßlin mgraesslin at kde.org
Tue Jun 23 07:42:40 UTC 2015

Hi framework-developers and packagers,

with two frameworks I'm currently in the need to have something like QPA. I 
want to make it possible to provide windowing-system specific plugins for 
frameworks using a private API. The need arises first of all in kwindowsystem 
to support wayland [1]. To implement it we need a dependency to KWayland, 
which is currently part of kde-workspace and not yet up to the quality and 
stability levels needed to make it a framework. The second framework where I 
need such functionality is kglobalaccel where kwin needs to take over a large 
part of the functionality of the runtime to make it work on wayland at all.

I see the following possibilities to solve the problem:
1.Make it a private API without any ABI guarantee
2. Make it a public stable API with ABI guarantee
3. Make it a private API with so-version changes whenever the ABI changes

Option 1 is closest to what Qt's QPA does, but I think this would be a 
nightmare for packagers. 

Option 2 could result in a nightmare for developers especially in the plugin 
infrastructure itself. With releases every month that could quickly end in 
classes like KWindowSystemPrivate32 and result in an unmanageable runtime 
check system.

Personally I think Option 3 is the cleanest solution. Would this be acceptable 
for everyone? If yes are there any suggestions for where to install headers 
to, for naming the libraries, etc?

Looking forward for your input,


[1] And obviously also other windowing systems if distributions/OSes want to 
add support for it.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/release-team/attachments/20150623/36cf8129/attachment.sig>

More information about the release-team mailing list