diff mbox series

[bug#44892] build: qt-build-system: Preserve existing variables when wrapping programs.

Message ID 20201126195942.21200-1-timotej.lazar@araneo.si
State Accepted
Headers show
Series [bug#44892] build: qt-build-system: Preserve existing variables when wrapping programs. | expand

Checks

Context Check Description
cbaines/submitting builds success
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Timotej Lazar Nov. 26, 2020, 7:59 p.m. UTC
This ensures that any additional plugin and icon directories installed in the
profile are found by the wrapped program.

* guix/build/qt-build-system.scm (variables-for-wrapping): Use prefix instead
of = for wrap-program.
---
Hi,

The qt-wrap phase sets environment variables (including XDG_DATA_DIRS
and QT_PLUGIN_PATH) to ensure that required plugin and data directories
are found at runtime. The current code uses = for wrap-program, which
overrides any existing settings for those variables and prevents Qt from
finding additional plugins and icons installed in the user’s profile.
For instance, this prevented qpdfview from picking up the icon theme set
by LXQt.

This patch prepends paths to environment variables instead of overriding
them, so that any paths that are already set are also searched. I used
prefix instead of suffix so that the paths required by the program
itself are considered first.

I think but am not sure that this is the right approach. There are ~170
packages using qt-build-system, including some KDE libs that many other
packages depend on, so this should probably be applied to staging. I
checked that the patch works for a small sample of packages (kmines,
lyx, quaternion, quassel, qpdfview, scantailor and zeal). Unfortunately
I can’t easily rebuild KDE to test everything.

Thanks!
Timotej

 guix/build/qt-build-system.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/guix/build/qt-build-system.scm b/guix/build/qt-build-system.scm
index 005157b0a4..93f512b5d6 100644
--- a/guix/build/qt-build-system.scm
+++ b/guix/build/qt-build-system.scm
@@ -60,7 +60,7 @@ 
    (lambda (var-to-wrap) (not (null? (last var-to-wrap))))
    (map
     (lambda (var-spec)
-      `(,(first var-spec) = ,(collect-sub-dirs base-directories (last var-spec))))
+      `(,(first var-spec) prefix ,(collect-sub-dirs base-directories (last var-spec))))
     (list
      ;; these shall match the search-path-specification for Qt and KDE
      ;; libraries