Subject: bug#43446: Qt Apps cant make use of qtwayland due to QT_PLUGIN_PATH '= wrapping

From: Brendan Tildesley <[email-masked]>
Date: Mon, 5 Oct 2020 17:39:28 +1100

On 4/10/20 10:43 pm, Ricardo Wurmus wrote:
> Brendan Tildesley <[email-masked]> writes:
>
>> qt-build-system wraps variables such as QT_PLUGIN_PATH  with  '=
>> instead of prefix, so when qtwayland is installed in a profile or
>> included in the environment, the application fails to see it. Programs
>> run with export QT_QPA_PLATFORM=wayland-egl will fail to launch.
>>
>> We could:
>>
>> 1. Use 'prefix so that the parent environment's variables are appended
>>     and users have to manually install qtwayland them selves.
>> 2. Include qtwayland as an input to every qt package somehow. Can the
>>     build system do that? Considering that Wayland seems to be the
>>     future, I feel that Qt GUI applications should support it by
>>     default. I mean, wayland is in the closure of qtbase anyway.
>> 3. Both? Why is '= used anyway?
> I can’t say why the Qt build system does this, but in other cases we
> know that 'prefix causes problems because the application may end up
> loading incompatible binaries leading to a crash.  That’s especially the
> case on foreign distros, e.g. when the Guix-installed graphical
> application loads a plugin from the system’s XDG_* directories.
>
Thanks for pointing that out. But, currently a Guix Qt program is unable 
to see plugins available in the environment/profile even if the variable 
is set because the wrapper just deletes that in its local environment. 
It can only see what's in it's inputs. How else can that be fixed?

cat `which nheko`|grep QT;

export 
QT_PLUGIN_PATH="/gnu/store/swqnld90m4gmmc1qaf4lg1psvf6q0rr0-qttools-5.14.2/lib/qt5/plugins:/gnu/store/j0b10r3djln34avx4qxh1kxzg70fn04r-qtbase-5.14.2/lib/qt5/plugins:/gnu/store/lh2yq7dlw3cfaf613h787drpy6f146n3-qtdeclarative-5.14.2/lib/qt5/plugins:/gnu/store/cz6lfbphrdqvgrbhgdq0hd7a50015i5h-qtmultimedia-5.14.2/lib/qt5/plugins:/gnu/store/r4h7w3zw02nc33bi7bjlqbl9b8kilh9r-qtsvg-5.14.2/lib/qt5/plugins"