about summary refs log tree commit diff
path: root/pkgs/development/libraries/qt-5/5.5/qtbase/nix-profiles-library-paths.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/qt-5/5.5/qtbase/nix-profiles-library-paths.patch')
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtbase/nix-profiles-library-paths.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/nix-profiles-library-paths.patch b/pkgs/development/libraries/qt-5/5.5/qtbase/nix-profiles-library-paths.patch
new file mode 100644
index 000000000000..470526b1dcdb
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.5/qtbase/nix-profiles-library-paths.patch
@@ -0,0 +1,26 @@
+Index: qt-everywhere-opensource-src-5.5.1/qtbase/src/corelib/kernel/qcoreapplication.cpp
+===================================================================
+--- qt-everywhere-opensource-src-5.5.1.orig/qtbase/src/corelib/kernel/qcoreapplication.cpp
++++ qt-everywhere-opensource-src-5.5.1/qtbase/src/corelib/kernel/qcoreapplication.cpp
+@@ -2498,6 +2498,21 @@ QStringList QCoreApplication::libraryPat
+                 }
+             }
+         }
++
++        // Add library paths derived from NIX_PROFILES.
++        const QByteArray nixProfilesEnv = qgetenv("NIX_PROFILES");
++        if (!nixProfilesEnv.isEmpty()) {
++            QLatin1Char pathSep(' ');
++            QStringList paths = QFile::decodeName(nixProfilesEnv).split(pathSep, QString::SkipEmptyParts);
++            for (QStringList::iterator it = paths.begin(); it != paths.end(); ++it) {
++                it->append("/lib/qt5/plugins");
++                QString canonicalPath = QDir(*it).canonicalPath();
++                if (!canonicalPath.isEmpty()
++                    && !app_libpaths->contains(canonicalPath)) {
++                    app_libpaths->append(canonicalPath);
++                }
++            }
++        }
+     }
+     return *(coreappdata()->app_libpaths);
+ }