summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@mailbox.org>2017-04-18 08:11:17 -0500
committerThomas Tuegel <ttuegel@mailbox.org>2017-04-28 05:54:18 -0500
commitc37220fcf92f590be66bfc7289e498044d429640 (patch)
treeaa1274d376e11e15c0b81f41d02ade2cd51dcd75 /pkgs/development
parentbd92780b4c8b1803b570491eb40e4d4d8dbfaad5 (diff)
downloadnixpkgs-c37220fcf92f590be66bfc7289e498044d429640.tar
nixpkgs-c37220fcf92f590be66bfc7289e498044d429640.tar.gz
nixpkgs-c37220fcf92f590be66bfc7289e498044d429640.tar.bz2
nixpkgs-c37220fcf92f590be66bfc7289e498044d429640.tar.lz
nixpkgs-c37220fcf92f590be66bfc7289e498044d429640.tar.xz
nixpkgs-c37220fcf92f590be66bfc7289e498044d429640.tar.zst
nixpkgs-c37220fcf92f590be66bfc7289e498044d429640.zip
kwindowsystem: purify platform plugin detection
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/libraries/kde-frameworks/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix (renamed from pkgs/development/libraries/kde-frameworks/kwindowsystem.nix)6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwindowsystem/platform-plugins-path.patch22
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwindowsystem/series1
4 files changed, 29 insertions, 2 deletions
diff --git a/pkgs/development/libraries/kde-frameworks/default.nix b/pkgs/development/libraries/kde-frameworks/default.nix
index 2906dc78886..221fba628ba 100644
--- a/pkgs/development/libraries/kde-frameworks/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/default.nix
@@ -96,7 +96,7 @@ let
       kwallet = callPackage ./kwallet.nix {};
       kwayland = callPackage ./kwayland.nix {};
       kwidgetsaddons = callPackage ./kwidgetsaddons.nix {};
-      kwindowsystem = callPackage ./kwindowsystem.nix {};
+      kwindowsystem = callPackage ./kwindowsystem {};
       kxmlgui = callPackage ./kxmlgui.nix {};
       kxmlrpcclient = callPackage ./kxmlrpcclient.nix {};
       modemmanager-qt = callPackage ./modemmanager-qt.nix {};
diff --git a/pkgs/development/libraries/kde-frameworks/kwindowsystem.nix b/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
index 4bfd813ff93..8a91bdbac52 100644
--- a/pkgs/development/libraries/kde-frameworks/kwindowsystem.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
@@ -1,5 +1,5 @@
 {
-  kdeFramework, lib,
+  kdeFramework, lib, copyPathsToStore,
   extra-cmake-modules,
   qtbase, qttools, qtx11extras
 }:
@@ -12,4 +12,8 @@ kdeFramework {
   };
   nativeBuildInputs = [ extra-cmake-modules qttools ];
   propagatedBuildInputs = [ qtx11extras ];
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  preConfigure = ''
+    NIX_CFLAGS_COMPILE+=" -DNIXPKGS_QT_PLUGIN_PATH=\"$out/lib/qt5/plugins\""
+  '';
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kwindowsystem/platform-plugins-path.patch b/pkgs/development/libraries/kde-frameworks/kwindowsystem/platform-plugins-path.patch
new file mode 100644
index 00000000000..ed24897d342
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kwindowsystem/platform-plugins-path.patch
@@ -0,0 +1,22 @@
+Index: kwindowsystem-5.32.0/src/pluginwrapper.cpp
+===================================================================
+--- kwindowsystem-5.32.0.orig/src/pluginwrapper.cpp
++++ kwindowsystem-5.32.0/src/pluginwrapper.cpp
+@@ -37,14 +37,9 @@ Q_GLOBAL_STATIC(KWindowSystemPluginWrapp
+ static QStringList pluginCandidates()
+ {
+     QStringList ret;
+-    foreach (const QString &path, QCoreApplication::libraryPaths()) {
+-        QDir pluginDir(path + QLatin1Literal("/kf5/org.kde.kwindowsystem.platforms"));
+-        if (!pluginDir.exists()) {
+-            continue;
+-        }
+-        foreach (const QString &entry, pluginDir.entryList(QDir::Files | QDir::NoDotAndDotDot)) {
+-            ret << pluginDir.absoluteFilePath(entry);
+-        }
++    QDir pluginDir(QStringLiteral(NIXPKGS_QT_PLUGIN_PATH) + QLatin1Literal("/kf5/org.kde.kwindowsystem.platforms"));
++    foreach (const QString &entry, pluginDir.entryList(QDir::Files | QDir::NoDotAndDotDot)) {
++        ret << pluginDir.absoluteFilePath(entry);
+     }
+     return ret;
+ }
diff --git a/pkgs/development/libraries/kde-frameworks/kwindowsystem/series b/pkgs/development/libraries/kde-frameworks/kwindowsystem/series
new file mode 100644
index 00000000000..2cd02056ff8
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kwindowsystem/series
@@ -0,0 +1 @@
+platform-plugins-path.patch