QPA plugin like functionality in frameworks?

Martin Gräßlin mgraesslin at kde.org
Wed Jun 24 07:51:29 UTC 2015


On Tuesday 23 June 2015 19:35:48 Aleix Pol wrote:
> On Tue, Jun 23, 2015 at 9:42 AM, Martin Gräßlin <mgraesslin at kde.org> wrote:
> > 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,
> > 
> > Cheers
> > Martin
> > 
> > [1] And obviously also other windowing systems if distributions/OSes want
> > to add support for it.
> > _______________________________________________
> > Kde-frameworks-devel mailing list
> > Kde-frameworks-devel at kde.org
> > https://mail.kde.org/mailman/listinfo/kde-frameworks-devel
> 
> Hi Martin,
> We already have something similar with frameworksintegration, maybe it
> would make sense to integrate what you need there?

Frameworksintegration doesn't really help as it's still part of frameworks and 
thus cannot depend on workspace libraries like kwayland. Also it's absolutely 
no solution for the problem of kglobalaccel (that feature must(!) be provided 
by kwin, there is no other way).

> The biggest problem I see is that you want it in kde-workspace and
> it's really complex to use a changing library within 2 different
> release cycles. It will make things break on one side or another.
> 
> What you can do is a stable plugin API and then provide the Wayland
> plugins from Plasma releases. X11 and others can remain within
> frameworks.

That's option 2 from above. As said above I fear that this will be problematic 
due to the very short release cycle of frameworks and will create many 
subclasses just to keep it ABI stable. Of course it's doable, but well...

Cheers
Martin
-------------- 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/kde-frameworks-devel/attachments/20150624/05c94612/attachment.sig>


More information about the Kde-frameworks-devel mailing list