summary refs log tree commit diff
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@mailbox.org>2017-05-18 08:01:54 -0500
committerThomas Tuegel <ttuegel@mailbox.org>2017-06-18 08:44:42 -0500
commit5a8295e5965a2c86062e5d554e8b8cdec3082716 (patch)
tree7eef8ed32b7b9775824da32c5f4e4af2f98f8bb4
parentc816bbc8a86c7ea6c09ca42e1694fe08003a55fc (diff)
downloadnixpkgs-5a8295e5965a2c86062e5d554e8b8cdec3082716.tar
nixpkgs-5a8295e5965a2c86062e5d554e8b8cdec3082716.tar.gz
nixpkgs-5a8295e5965a2c86062e5d554e8b8cdec3082716.tar.bz2
nixpkgs-5a8295e5965a2c86062e5d554e8b8cdec3082716.tar.lz
nixpkgs-5a8295e5965a2c86062e5d554e8b8cdec3082716.tar.xz
nixpkgs-5a8295e5965a2c86062e5d554e8b8cdec3082716.tar.zst
nixpkgs-5a8295e5965a2c86062e5d554e8b8cdec3082716.zip
qtbase: setup required environment in GTK3 platform theme plugin
-rw-r--r--pkgs/development/libraries/qt-5/5.8/default.nix1
-rw-r--r--pkgs/development/libraries/qt-5/5.8/qtbase/default.nix8
-rw-r--r--pkgs/development/libraries/qt-5/5.8/qtbase/qgtk-env.patch36
-rw-r--r--pkgs/development/libraries/qt-5/5.8/qtbase/series1
4 files changed, 45 insertions, 1 deletions
diff --git a/pkgs/development/libraries/qt-5/5.8/default.nix b/pkgs/development/libraries/qt-5/5.8/default.nix
index b7d141fd5a2..57728ad13ce 100644
--- a/pkgs/development/libraries/qt-5/5.8/default.nix
+++ b/pkgs/development/libraries/qt-5/5.8/default.nix
@@ -94,6 +94,7 @@ let
       qtbase = callPackage ./qtbase {
         inherit (srcs.qtbase) src version;
         inherit bison cups harfbuzz mesa;
+        inherit dconf gtk3;
         inherit developerBuild decryptSslTraffic;
       };
 
diff --git a/pkgs/development/libraries/qt-5/5.8/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.8/qtbase/default.nix
index 008eb1e3709..64e208a22b0 100644
--- a/pkgs/development/libraries/qt-5/5.8/qtbase/default.nix
+++ b/pkgs/development/libraries/qt-5/5.8/qtbase/default.nix
@@ -7,7 +7,7 @@
   # darwin support
   darwin, libiconv, libcxx,
 
-  dbus, fontconfig, freetype, glib, gtk3, harfbuzz, icu, libX11, libXcomposite,
+  dbus, dconf, fontconfig, freetype, glib, gtk3, harfbuzz, icu, libX11, libXcomposite,
   libXcursor, libXext, libXi, libXrender, libinput, libjpeg, libpng, libtiff,
   libxcb, libxkbcommon, libxml2, libxslt, openssl, pcre16, sqlite, udev,
   xcbutil, xcbutilimage, xcbutilkeysyms, xcbutilrenderutil, xcbutilwm, xlibs,
@@ -147,6 +147,12 @@ stdenv.mkDerivation {
     ++ lib.optional mesaSupported
        ''-DNIXPKGS_MESA_GL="${mesa.out}/lib/libGL"''
 
+    ++ lib.optionals (!stdenv.isDarwin)
+    [
+      ''-DNIXPKGS_QGTK3_XDG_DATA_DIRS="${gtk3}/share/gsettings-schemas/${gtk3.name}"''
+      ''-DNIXPKGS_QGTK3_GIO_EXTRA_MODULES="${dconf.lib}/lib/gio/modules"''
+    ]
+
     ++ lib.optionals stdenv.isDarwin
     [
       "-D__MAC_OS_X_VERSION_MAX_ALLOWED=1090"
diff --git a/pkgs/development/libraries/qt-5/5.8/qtbase/qgtk-env.patch b/pkgs/development/libraries/qt-5/5.8/qtbase/qgtk-env.patch
new file mode 100644
index 00000000000..6a22b203afc
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.8/qtbase/qgtk-env.patch
@@ -0,0 +1,36 @@
+Index: qtbase-opensource-src-5.8.0/src/plugins/platformthemes/gtk3/main.cpp
+===================================================================
+--- qtbase-opensource-src-5.8.0.orig/src/plugins/platformthemes/gtk3/main.cpp
++++ qtbase-opensource-src-5.8.0/src/plugins/platformthemes/gtk3/main.cpp
+@@ -39,6 +39,7 @@
+ 
+ #include <qpa/qplatformthemeplugin.h>
+ #include "qgtk3theme.h"
++#include <QFile>
+ 
+ QT_BEGIN_NAMESPACE
+ 
+@@ -54,8 +55,22 @@ public:
+ QPlatformTheme *QGtk3ThemePlugin::create(const QString &key, const QStringList &params)
+ {
+     Q_UNUSED(params);
+-    if (!key.compare(QLatin1String(QGtk3Theme::name), Qt::CaseInsensitive))
++    if (!key.compare(QLatin1String(QGtk3Theme::name), Qt::CaseInsensitive)) {
++
++#ifdef NIXPKGS_QGTK3_XDG_DATA_DIRS
++        QStringList XDG_DATA_DIRS = QFile::decodeName(qgetenv("XDG_DATA_DIRS")).split(':');
++        XDG_DATA_DIRS << QStringLiteral(NIXPKGS_QGTK3_XDG_DATA_DIRS);
++        qputenv("XDG_DATA_DIRS", QFile::encodeName(XDG_DATA_DIRS.join(':')));
++#endif
++
++#ifdef NIXPKGS_QGTK3_GIO_EXTRA_MODULES
++        QStringList GIO_EXTRA_MODULES = QFile::decodeName(qgetenv("GIO_EXTRA_MODULES")).split(':');
++        GIO_EXTRA_MODULES << QStringLiteral(NIXPKGS_QGTK3_GIO_EXTRA_MODULES);
++        qputenv("GIO_EXTRA_MODULES", QFile::encodeName(GIO_EXTRA_MODULES.join(':')));
++#endif
++
+         return new QGtk3Theme;
++    }
+ 
+     return 0;
+ }
diff --git a/pkgs/development/libraries/qt-5/5.8/qtbase/series b/pkgs/development/libraries/qt-5/5.8/qtbase/series
index 47400cf7aa3..03f5e6b1002 100644
--- a/pkgs/development/libraries/qt-5/5.8/qtbase/series
+++ b/pkgs/development/libraries/qt-5/5.8/qtbase/series
@@ -8,3 +8,4 @@ qpa-platform-plugin-path.patch
 dlopen-gl.patch
 compose-search-path.patch
 cmake-paths.patch
+qgtk-env.patch