From 949277ed0a2d772476f83a108783c2ff1af68342 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 15 Jul 2016 09:43:35 -0500 Subject: [PATCH] kde5.startkde: append extra PATH elements; set Qt search paths --- .../kde-5/plasma/startkde/default.nix | 48 ++++++++++++++----- .../kde-5/plasma/startkde/startkde.sh | 6 ++- 2 files changed, 40 insertions(+), 14 deletions(-) diff --git a/pkgs/desktops/kde-5/plasma/startkde/default.nix b/pkgs/desktops/kde-5/plasma/startkde/default.nix index 30e986c21b4..516d651cec2 100644 --- a/pkgs/desktops/kde-5/plasma/startkde/default.nix +++ b/pkgs/desktops/kde-5/plasma/startkde/default.nix @@ -1,16 +1,15 @@ -{ stdenv, lib, runCommand -, dbus, qttools, socat -, gnugrep, gnused -, kconfig, kinit, kservice -, plasma-workspace -, xmessage, xprop, xsetroot +{ + stdenv, lib, runCommand, dbus, qttools, socat, gnugrep, gnused, kconfig, + kinit, kservice, plasma-workspace, xmessage, xprop, xsetroot, qtbase, + qtdeclarative, qtgraphicaleffects, qtquickcontrols, qtscript, qtsvg, + qtx11extras, qtxmlpatterns }: let env = { inherit (stdenv) shell; - paths = builtins.map (pkg: pkg.out or pkg) + bins = builtins.map (pkg: pkg.out or pkg) [ dbus qttools socat gnugrep gnused @@ -18,15 +17,38 @@ let plasma-workspace xmessage xprop xsetroot ]; + libs = builtins.map (pkg: pkg.out or pkg) + [ + qtbase qtdeclarative qtgraphicaleffects qtquickcontrols + qtscript qtsvg qtx11extras qtxmlpatterns + ]; }; in runCommand "startkde" env '' - prefix_PATH= - for pkg in $paths; do - addToSearchPath prefix_PATH "$pkg/bin" - addToSearchPath prefix_PATH "$pkg/lib/libexec" - addToSearchPath prefix_PATH "$pkg/lib/libexec/kf5" + + # Configure PATH variable + suffixPATH= + for p in $bins; do + addToSearchPath suffixPATH "$p/bin" + addToSearchPath suffixPATH "$p/lib/libexec" + addToSearchPath suffixPATH "$p/lib/libexec/kf5" done - substitute ${./startkde.sh} "$out" --subst-var shell --subst-var prefix_PATH + + # Configure Qt search paths + QT_PLUGIN_PATH= + QML_IMPORT_PATH= + QML2_IMPORT_PATH= + for p in $libs; do + addToSearchPath QT_PLUGIN_PATH "$p/lib/qt5/plugins" + addToSearchPath QML_IMPORT_PATH "$p/lib/qt5/imports" + addToSearchPath QML2_IMPORT_PATH "$p/lib/qt5/qml" + done + + substitute ${./startkde.sh} "$out" \ + --subst-var shell \ + --subst-var suffixPATH \ + --subst-var QT_PLUGIN_PATH \ + --subst-var QML_IMPORT_PATH \ + --subst-var QML2_IMPORT_PATH chmod +x "$out" '' diff --git a/pkgs/desktops/kde-5/plasma/startkde/startkde.sh b/pkgs/desktops/kde-5/plasma/startkde/startkde.sh index d839226a456..a626fdc2b5a 100755 --- a/pkgs/desktops/kde-5/plasma/startkde/startkde.sh +++ b/pkgs/desktops/kde-5/plasma/startkde/startkde.sh @@ -1,6 +1,10 @@ #!@shell@ -PATH="@prefix_PATH@:$PATH" +PATH="$PATH${PATH:+:}@suffixPATH@" + +export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}@QT_PLUGIN_PATH@" +export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}@QML_IMPORT_PATH@" +export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}@QML2_IMPORT_PATH@" # The KDE icon cache is supposed to update itself # automatically, but it uses the timestamp on the icon