[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: QT install and search paths
From: |
Thomas Danckaert |
Subject: |
Re: QT install and search paths |
Date: |
Thu, 24 Aug 2017 13:37:49 +0200 (CEST) |
From: Hartmut Goebel <address@hidden>
Subject: QT install and search paths
Date: Wed, 23 Aug 2017 20:25:10 +0200
[...] I found this in qt.scm
(qtbase):
(search-path-specification
(variable "QT_PLUGIN_PATH")
(files '("plugins")))
This means that `lib/plugins` is *not* included in QT_PLUGIN_PATH
and thus not searched. (Which I assume is the reason for many
test-failures.)
(indeed, e.g. for kdevplatform, I set the QT_PLUGIN_PATH before
running tests)
Also in qt.scm (qtbase) there is:
(substitute* qt_config.prf
…
(("\\$\\$\\[QT_INSTALL_PLUGINS\\]")
"$$replace(dir, mkspecs/modules, plugins)")
I assume this should make the plugins to be in stalled in …/plugins,
but KDE framework is installing into …/lib/plugins.
I'm not sure if this is an error, or if KDE chooses this directory on
purpose.
Either way, I think qtbase's QT_PLUGIN_PATH setting only has an
effect if a user installs qtbase directly in their profile (or do I
misunderstand native-search-paths? The manual doesn't explain the
difference between "native-search-paths" and "search-paths"), so
applications using these plugins will still need to set the correct
environment variable themselves somehow?
A previous discussion is here
https://lists.gnu.org/archive/html/guix-devel/2016-12/msg00776.html
For the kdevelop package, I wrapped the executable, setting a bunch
of Qt-related environment variables. This works as a stop-gap, but
it will break down when a user uses multiple Qt/KDE applications with
different plugin requirements (some KDE daemons, such as kdeinit,
need to find all their plugins at the moment they are started).
Ludo suggested using a profile hook to set the required environment
variables depending on the installed applications, but I never looked
into it further because wrapping the executable was “good enough”
for. For a KDE desktop, I think you'll need a better solution.
Thomas