diff options
Diffstat (limited to 'pkgs/development/libraries/kde-frameworks-5.13/kinit/0001-kinit-libpath.patch')
-rw-r--r-- | pkgs/development/libraries/kde-frameworks-5.13/kinit/0001-kinit-libpath.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/pkgs/development/libraries/kde-frameworks-5.13/kinit/0001-kinit-libpath.patch b/pkgs/development/libraries/kde-frameworks-5.13/kinit/0001-kinit-libpath.patch new file mode 100644 index 00000000000..9c76079a382 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.13/kinit/0001-kinit-libpath.patch @@ -0,0 +1,42 @@ +From 723c9b1268a04127647a1c20eebe9804150566dd Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel <ttuegel@gmail.com> +Date: Sat, 13 Jun 2015 08:57:55 -0500 +Subject: [PATCH] kinit libpath + +--- + src/kdeinit/kinit.cpp | 18 ++++++++++-------- + 1 file changed, 10 insertions(+), 8 deletions(-) + +diff --git a/src/kdeinit/kinit.cpp b/src/kdeinit/kinit.cpp +index 9e775b6..0ac5646 100644 +--- a/src/kdeinit/kinit.cpp ++++ b/src/kdeinit/kinit.cpp +@@ -660,15 +660,17 @@ static pid_t launch(int argc, const char *_name, const char *args, + if (!libpath.isEmpty()) { + if (!l.load()) { + if (libpath_relative) { +- // NB: Because Qt makes the actual dlopen() call, the +- // RUNPATH of kdeinit is *not* respected - see +- // https://sourceware.org/bugzilla/show_bug.cgi?id=13945 +- // - so we try hacking it in ourselves +- QString install_lib_dir = QFile::decodeName( +- CMAKE_INSTALL_PREFIX "/" LIB_INSTALL_DIR "/"); +- libpath = install_lib_dir + libpath; +- l.setFileName(libpath); ++ // Use QT_PLUGIN_PATH to find shared library directories ++ // For KF5, the plugin path is /lib/qt5/plugins/, so kdeinit5 ++ // shared libraries should be in /lib/qt5/plugins/../../ ++ const QRegExp pathSepRegExp(QString::fromLatin1("[:\b]")); ++ const QString up = QString::fromLocal8Bit("/../../"); ++ const QStringList paths = QString::fromLocal8Bit(qgetenv("QT_PLUGIN_PATH")).split(pathSepRegExp, QString::KeepEmptyParts); ++ Q_FOREACH (const QString &path, paths) { ++ l.setFileName(path + up + libpath); + l.load(); ++ if (l.isLoaded()) break; ++ } + } + } + if (!l.isLoaded()) { +-- +2.4.2 + |