kf510.kinit: fix library path

+18 -6
+1 -1
pkgs/development/libraries/kde-frameworks-5.10/default.nix
··· 178 + " -I${ilmbase}/include/OpenEXR"; 179 }; 180 181 - kinit = super.kinit // { patches = [ ./kinit/kinit-libpath.patch ]; }; 182 183 kpackage = super.kpackage // { patches = [ ./kpackage/0001-allow-external-paths.patch ]; }; 184
··· 178 + " -I${ilmbase}/include/OpenEXR"; 179 }; 180 181 + kinit = super.kinit // { patches = [ ./kinit/0001-kinit-libpath.patch ]; }; 182 183 kpackage = super.kpackage // { patches = [ ./kpackage/0001-allow-external-paths.patch ]; }; 184
+17 -5
pkgs/development/libraries/kde-frameworks-5.10/kinit/kinit-libpath.patch pkgs/development/libraries/kde-frameworks-5.10/kinit/0001-kinit-libpath.patch
··· 1 diff --git a/src/kdeinit/kinit.cpp b/src/kdeinit/kinit.cpp 2 - index 3c3c913..f510620 100644 3 --- a/src/kdeinit/kinit.cpp 4 +++ b/src/kdeinit/kinit.cpp 5 - @@ -652,15 +652,17 @@ static pid_t launch(int argc, const char *_name, const char *args, 6 if (!libpath.isEmpty()) { 7 if (!l.load()) { 8 if (libpath_relative) { ··· 15 - libpath = install_lib_dir + libpath; 16 - l.setFileName(libpath); 17 + // Use QT_PLUGIN_PATH to find shared library directories 18 - + // For KF5, the plugin path is /lib/plugins, so the kdeinit5 19 - + // shared libraries should be in /lib/plugins/../ 20 + const QRegExp pathSepRegExp(QString::fromLatin1("[:\b]")); 21 - + const QString up = QString::fromLocal8Bit("/../"); 22 + const QStringList paths = QString::fromLocal8Bit(qgetenv("QT_PLUGIN_PATH")).split(pathSepRegExp, QString::KeepEmptyParts); 23 + Q_FOREACH (const QString &path, paths) { 24 + l.setFileName(path + up + libpath); ··· 28 } 29 } 30 if (!l.isLoaded()) {
··· 1 + From 723c9b1268a04127647a1c20eebe9804150566dd Mon Sep 17 00:00:00 2001 2 + From: Thomas Tuegel <ttuegel@gmail.com> 3 + Date: Sat, 13 Jun 2015 08:57:55 -0500 4 + Subject: [PATCH] kinit libpath 5 + 6 + --- 7 + src/kdeinit/kinit.cpp | 18 ++++++++++-------- 8 + 1 file changed, 10 insertions(+), 8 deletions(-) 9 + 10 diff --git a/src/kdeinit/kinit.cpp b/src/kdeinit/kinit.cpp 11 + index 9e775b6..0ac5646 100644 12 --- a/src/kdeinit/kinit.cpp 13 +++ b/src/kdeinit/kinit.cpp 14 + @@ -660,15 +660,17 @@ static pid_t launch(int argc, const char *_name, const char *args, 15 if (!libpath.isEmpty()) { 16 if (!l.load()) { 17 if (libpath_relative) { ··· 24 - libpath = install_lib_dir + libpath; 25 - l.setFileName(libpath); 26 + // Use QT_PLUGIN_PATH to find shared library directories 27 + + // For KF5, the plugin path is /lib/qt5/plugins/, so kdeinit5 28 + + // shared libraries should be in /lib/qt5/plugins/../../ 29 + const QRegExp pathSepRegExp(QString::fromLatin1("[:\b]")); 30 + + const QString up = QString::fromLocal8Bit("/../../"); 31 + const QStringList paths = QString::fromLocal8Bit(qgetenv("QT_PLUGIN_PATH")).split(pathSepRegExp, QString::KeepEmptyParts); 32 + Q_FOREACH (const QString &path, paths) { 33 + l.setFileName(path + up + libpath); ··· 37 } 38 } 39 if (!l.isLoaded()) { 40 + -- 41 + 2.4.2 42 +