KIO workers and the Qt5->Qt6 transition

Nicolas Fella nicolas.fella at gmx.de
Tue Dec 12 14:57:49 GMT 2023


Hi,

this is a variant of the plugin problem outlined in
https://mail.kde.org/pipermail/kde-devel/2023-December/002234.html

TL;DR Qt6 can't load Qt5-based plugins and vice versa

This also affects KIO workers.

We have a number of sources of KIO worker plugins:

- KIO itself provides file, http, help, ftp, remote, and trash. Since
KIO is available from KF5 and KF6 we get builds of those for both Qt
versions. No problem here.

- kio-extras provides additional workers: sftp, mtp, smb, ... kio-extras
is available for KF5 and KF6, so no problem here.

- various kio-* modules, like kio-gdrive, kio-stash, kio-gopher. These
should be built for both Qts, which should generally be possible, modulo
some common files to be deconflicted

- "Applications" that ship a KIO worker as part of their offering.
Examples that come to my mind are KDE Connect that ships a kdeconnect
worker and bluedevil that ships the bluetooth and obexftp workers. These
project are generally not designed to be coinstallable. i.e. if I have
Qt6-based KDE Connect I can't use the kdeconnect worker from a KF5 app

The last case is the one giving me headaches. Possible options would be

- Ignore the problem and hope nobody misses some workers in some
applications

- Make sure all (relevant) workers are available for both Qts, adding
some complexity to the build, release, and packaging process

- Since KIO workers run out of process it should be technically feasible
to come up with a way to run KF5-based worker plugins from a KF6-based
app and vice versa. I have not tried to implement that though, and it
would require some non-trivial surgery on KIO internals




More information about the Distributions mailing list