summary refs log tree commit diff
path: root/pkgs/development/libraries/qt-5/5.6/qtbase/nix-profiles-library-paths.patch
blob: b2aad140ad0f2fff10fe29da705fe8542c27a040 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Index: qt-everywhere-opensource-src-5.6.0/qtbase/src/corelib/kernel/qcoreapplication.cpp
===================================================================
--- qt-everywhere-opensource-src-5.6.0.orig/qtbase/src/corelib/kernel/qcoreapplication.cpp
+++ qt-everywhere-opensource-src-5.6.0/qtbase/src/corelib/kernel/qcoreapplication.cpp
@@ -2533,7 +2533,17 @@ QStringList QCoreApplication::libraryPat
         QStringList *app_libpaths = new QStringList;
         coreappdata()->app_libpaths.reset(app_libpaths);
 
+        // Add library paths derived from NIX_PROFILES.
+        const QByteArrayList profiles = qgetenv("NIX_PROFILES").split(' ');
+        const QString plugindir = QString::fromLatin1("/lib/qt5/plugins");
+        Q_FOREACH (const QByteArray &profile, profiles) {
+            if (!profile.isEmpty()) {
+                app_libpaths->append(QFile::decodeName(profile) + plugindir);
+            }
+        }
+
         const QByteArray libPathEnv = qgetenv("QT_PLUGIN_PATH");
+        qunsetenv("QT_PLUGIN_PATH"); // do not propagate to child processes
         if (!libPathEnv.isEmpty()) {
             QStringList paths = QFile::decodeName(libPathEnv).split(QDir::listSeparator(), QString::SkipEmptyParts);
             for (QStringList::const_iterator it = paths.constBegin(); it != paths.constEnd(); ++it) {