summary refs log tree commit diff
diff options
context:
space:
mode:
authorDomen Kožar <domen@dev.si>2014-04-06 13:59:46 +0200
committerDomen Kožar <domen@dev.si>2014-04-06 13:59:46 +0200
commit29bc5feb1d120f16f348c4af22da58ef67bc6143 (patch)
tree5538a24cf81448d4abefd0daaccafe09efa874a5
parent0bab5319cca1b893603fb02e81434b50aacd1f08 (diff)
parent35ccaa2e52c8d8c09118c72c8ed5c167a394dcfa (diff)
downloadnixpkgs-29bc5feb1d120f16f348c4af22da58ef67bc6143.tar
nixpkgs-29bc5feb1d120f16f348c4af22da58ef67bc6143.tar.gz
nixpkgs-29bc5feb1d120f16f348c4af22da58ef67bc6143.tar.bz2
nixpkgs-29bc5feb1d120f16f348c4af22da58ef67bc6143.tar.lz
nixpkgs-29bc5feb1d120f16f348c4af22da58ef67bc6143.tar.xz
nixpkgs-29bc5feb1d120f16f348c4af22da58ef67bc6143.tar.zst
nixpkgs-29bc5feb1d120f16f348c4af22da58ef67bc6143.zip
Merge pull request #2139 from lethalman/gnome3
Fix gsettings schemas usage for several packages due to #1901
-rw-r--r--pkgs/applications/graphics/shotwell/default.nix10
-rw-r--r--pkgs/applications/misc/surf/default.nix7
-rw-r--r--pkgs/applications/networking/browsers/dwb/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/vimb/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/vimprobable2/default.nix7
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix2
-rw-r--r--pkgs/applications/networking/newsreaders/liferea/default.nix5
-rw-r--r--pkgs/desktops/gnome-3/core/baobab/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/dconf/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/empathy/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/core/eog/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/epiphany/default.nix15
-rw-r--r--pkgs/desktops/gnome-3/core/evince/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/folks/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gcr/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-calculator/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-control-center/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-keyring/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-session/default.nix5
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-system-log/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-terminal/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/core/gucharmap/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/core/nautilus/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/vino/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/yelp/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/misc/gitg/default.nix11
-rw-r--r--pkgs/development/libraries/gvfs/default.nix4
-rw-r--r--pkgs/development/libraries/ibus/default.nix4
-rw-r--r--pkgs/tools/networking/network-manager-applet/default.nix11
36 files changed, 119 insertions, 114 deletions
diff --git a/pkgs/applications/graphics/shotwell/default.nix b/pkgs/applications/graphics/shotwell/default.nix
index 2a3ed77609f..1953f951d16 100644
--- a/pkgs/applications/graphics/shotwell/default.nix
+++ b/pkgs/applications/graphics/shotwell/default.nix
@@ -33,11 +33,17 @@ in stdenv.mkDerivation rec {
   preConfigure = ''
     patchShebangs .
   '';
-  
+
   postInstall = ''
+    mkdir -p $out/share/gsettings-schemas/$name
+    mv $out/share/glib-2.0 $out/share/gsettings-schemas/$name/
+  '';
+
+  preFixup = ''
     wrapProgram "$out/bin/shotwell" \
      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-     --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.gsettings_desktop_schemas}/share:${gtk3}/share:$out/share"
+     --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+    rm $out/share/icons/hicolor/icon-theme.cache
   '';
 
 
diff --git a/pkgs/applications/misc/surf/default.nix b/pkgs/applications/misc/surf/default.nix
index 42792ba8f91..651cfcca406 100644
--- a/pkgs/applications/misc/surf/default.nix
+++ b/pkgs/applications/misc/surf/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "01b8hq8z2wd7ssym5bypx2b15mrs1lhgkrcgxf700kswxvxcrhgx";
   };
 
-  buildInputs = [ gtk makeWrapper webkit pkgconfig glib libsoup ];
+  buildInputs = [ gtk makeWrapper webkit gsettings_desktop_schemas pkgconfig glib libsoup ];
 
   # Allow users set their own list of patches
   inherit patches;
@@ -21,9 +21,12 @@ stdenv.mkDerivation rec {
   preConfigure = [ ''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g" config.mk'' ];
   installPhase = ''
     make PREFIX=/ DESTDIR=$out install
+  '';
+
+  preFixup = ''
     wrapProgram "$out/bin/surf" \
       --prefix GIO_EXTRA_MODULES : ${glib_networking}/lib/gio/modules \
-      --prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share"
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = {
diff --git a/pkgs/applications/networking/browsers/dwb/default.nix b/pkgs/applications/networking/browsers/dwb/default.nix
index e14996d35f4..dcdbe724194 100644
--- a/pkgs/applications/networking/browsers/dwb/default.nix
+++ b/pkgs/applications/networking/browsers/dwb/default.nix
@@ -10,17 +10,17 @@ stdenv.mkDerivation {
     sha256 = "145sq2wv0s0n32cwpwgy59ff6ppcv80ialak7nnj1rpqicfqb72h";
   };
 
-  buildInputs = [ pkgconfig makeWrapper libsoup webkit gtk3 gnutls json_c m4  ];
+  buildInputs = [ pkgconfig makeWrapper gsettings_desktop_schemas libsoup webkit gtk3 gnutls json_c m4  ];
 
   # There are Xlib and gtk warnings therefore I have set Wno-error
   preBuild=''
     makeFlagsArray=(CPPFLAGS="-Wno-error" GTK=3 PREFIX=$out);
   '';
 
-  postInstall=''
+  preFixup=''
     wrapProgram "$out/bin/dwb" \
      --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
-     --prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share:$out/share"
+     --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share"
     wrapProgram "$out/bin/dwbem" \
      --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules"
   '';
diff --git a/pkgs/applications/networking/browsers/vimb/default.nix b/pkgs/applications/networking/browsers/vimb/default.nix
index 10bca4848dd..6cb52be775c 100644
--- a/pkgs/applications/networking/browsers/vimb/default.nix
+++ b/pkgs/applications/networking/browsers/vimb/default.nix
@@ -16,14 +16,14 @@ stdenv.mkDerivation rec {
     sed -i s,/etc/ssl/certs/ca-certificates.crt,/etc/ssl/certs/ca-bundle.crt, src/default.h
   '';
 
-  buildInputs = [ makeWrapper gtk libsoup pkgconfig webkit ];
+  buildInputs = [ makeWrapper gtk libsoup pkgconfig webkit gsettings_desktop_schemas ];
 
   makeFlags = [ "PREFIX=$(out)" ];
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/vimb" \
       --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
-      --prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share"
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = {
diff --git a/pkgs/applications/networking/browsers/vimprobable2/default.nix b/pkgs/applications/networking/browsers/vimprobable2/default.nix
index 2a44449c750..f723e3791f3 100644
--- a/pkgs/applications/networking/browsers/vimprobable2/default.nix
+++ b/pkgs/applications/networking/browsers/vimprobable2/default.nix
@@ -14,13 +14,16 @@ stdenv.mkDerivation rec {
     sed -i s,/etc/ssl/certs/ca-certificates.crt,/etc/ssl/certs/ca-bundle.crt, config.h
   '';
 
-  buildInputs = [ makeWrapper gtk libsoup libX11 perl pkgconfig webkit ];
+  buildInputs = [ makeWrapper gtk libsoup libX11 perl pkgconfig webkit gsettings_desktop_schemas ];
 
   installPhase = ''
     make PREFIX=/ DESTDIR=$out install
+  '';
+
+  preFixup = ''
     wrapProgram "$out/bin/vimprobable2" \
       --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
-      --prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share"
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = {
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
index bd8cffd40e4..173dfe9c929 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
@@ -19,8 +19,6 @@ stdenv.mkDerivation rec {
 
   configureFlags = "--enable-call";
 
-  installFlags = "gsettingsschemadir=\${out}/share/telepathy/logger/glib-2.0/schemas/";
-
   meta = {
     description = "Logger service for Telepathy framework";
     homepage = http://telepathy.freedesktop.org/wiki/Logger ;
diff --git a/pkgs/applications/networking/newsreaders/liferea/default.nix b/pkgs/applications/networking/newsreaders/liferea/default.nix
index 83eeb18d126..650e3237fe4 100644
--- a/pkgs/applications/networking/newsreaders/liferea/default.nix
+++ b/pkgs/applications/networking/newsreaders/liferea/default.nix
@@ -28,16 +28,15 @@ stdenv.mkDerivation rec {
   ];
 
   preFixup = ''
-    rm $out/share/icons/hicolor/icon-theme.cache'';
+    rm $out/share/icons/hicolor/icon-theme.cache
 
-  postInstall  = ''
     for f in "$out"/bin/*; do
       wrapProgram "$f" \
         --prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${pygobject3})" \
         --prefix LD_LIBRARY_PATH : "${gnome3.libgnome_keyring}/lib" \
         --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
         --prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules:${glib_networking}/lib/gio/modules" \
-        --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.gnome_icon_theme}/share:${gnome3.gsettings_desktop_schemas}/share:${gnome3.gtk}/share:$out/share"
+        --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.gnome_icon_theme}/share:${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
     done
   '';
 
diff --git a/pkgs/desktops/gnome-3/core/baobab/default.nix b/pkgs/desktops/gnome-3/core/baobab/default.nix
index 5121f1f69be..9381f45105d 100644
--- a/pkgs/desktops/gnome-3/core/baobab/default.nix
+++ b/pkgs/desktops/gnome-3/core/baobab/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     rm $out/share/icons/HighContrast/icon-theme.cache
     wrapProgram "$out/bin/baobab" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/dconf/default.nix b/pkgs/desktops/gnome-3/core/dconf/default.nix
index 4ee8143bb2b..a485b18c5e5 100644
--- a/pkgs/desktops/gnome-3/core/dconf/default.nix
+++ b/pkgs/desktops/gnome-3/core/dconf/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, vala, libxslt, pkgconfig, glib, dbus_glib, gnome3
-, libxml2, intltool, docbook_xsl_ns, docbook_xsl }:
+, libxml2, intltool, docbook_xsl_ns, docbook_xsl, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "dconf-${version}";
@@ -11,7 +11,15 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ vala libxslt pkgconfig glib dbus_glib gnome3.gtk libxml2
-                  intltool docbook_xsl docbook_xsl_ns ];
+                  intltool docbook_xsl docbook_xsl_ns makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/dconf-editor" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+
+    rm $out/lib/gio/modules/giomodule.cache
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
 
   meta = with stdenv.lib; {
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome-3/core/empathy/default.nix b/pkgs/desktops/gnome-3/core/empathy/default.nix
index 1f7a027fd3e..a227c1422d6 100644
--- a/pkgs/desktops/gnome-3/core/empathy/default.nix
+++ b/pkgs/desktops/gnome-3/core/empathy/default.nix
@@ -39,12 +39,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  installFlags = "gsettingsschemadir=\${out}/share/empathy/glib-2.0/schemas/";
-
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/empathy" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gnome3.gnome_themes_standard}/:${gnome3.gnome_themes_standard}/share:${hicolor_icon_theme}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/empathy:${telepathy_logger}/share/telepathy/logger:${folks}/share/folks:${evolution_data_server}/share/evolution-data-server"
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gnome3.gnome_themes_standard}/:${gnome3.gnome_themes_standard}/share:${hicolor_icon_theme}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+
+    rm $out/share/icons/hicolor/icon-theme.cache
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/eog/default.nix b/pkgs/desktops/gnome-3/core/eog/default.nix
index 99e87b3c584..57f19dcaa32 100644
--- a/pkgs/desktops/gnome-3/core/eog/default.nix
+++ b/pkgs/desktops/gnome-3/core/eog/default.nix
@@ -14,11 +14,13 @@ stdenv.mkDerivation rec {
     [ intltool pkgconfig itstool libxml2 libjpeg gtk glib libpeas makeWrapper librsvg
       gsettings_desktop_schemas shared_mime_info gnome_icon_theme gnome_desktop libexif ];
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/eog" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${shared_mime_info}/share:${gnome3.gnome_icon_theme}/share:${gnome3.gsettings_desktop_schemas}/share:${gnome3.gtk}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${shared_mime_info}/share:${gnome3.gnome_icon_theme}/share:${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+
+    rm $out/share/icons/hicolor/icon-theme.cache
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/epiphany/default.nix b/pkgs/desktops/gnome-3/core/epiphany/default.nix
index 7da49dbc738..9df3a7ed01e 100644
--- a/pkgs/desktops/gnome-3/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome-3/core/epiphany/default.nix
@@ -1,10 +1,8 @@
 { stdenv, intltool, fetchurl, pkgconfig, gtk3, glib, nspr, icu
 , bash, makeWrapper, gnome3, libwnck3, libxml2, libxslt, libtool
 , webkitgtk, libsoup, libsecret, gnome_desktop, libnotify, p11_kit
-, sqlite, gcr, avahi, nss, isocodes, itstool, file }:
-
-# TODO: icons and theme still does not work
-# use packaged gnome3.gnome_icon_theme_symbolic 
+, sqlite, gcr, avahi, nss, isocodes, itstool, file
+, hicolor_icon_theme, gdk_pixbuf, librsvg }:
 
 stdenv.mkDerivation rec {
   name = "epiphany-3.10.3";
@@ -18,6 +16,8 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--disable-static --disable-tests" ];
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
 
   nativeBuildInputs = [ pkgconfig file ];
 
@@ -30,13 +30,12 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr -I${nss}/include/nss";
 
-  installFlags = "gsettingsschemadir=\${out}/share/${name}/glib-2.0/schemas/";
-
   enableParallelBuilding = true;
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/epiphany" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/${name}"
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
index de8f28ddaab..3a2688a64b9 100644
--- a/pkgs/desktops/gnome-3/core/evince/default.nix
+++ b/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -21,8 +21,6 @@ stdenv.mkDerivation rec {
     makeWrapper libsecret librsvg
   ];
 
-  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
-
   configureFlags = [
     "--disable-nautilus" # Do not use nautilus
   ];
@@ -40,12 +38,14 @@ stdenv.mkDerivation rec {
       sed -i 's/\(if (++n_items == \)5\(.*\)/\1${builtins.toString recentListSize}\2/' shell/ev-window.c
     '';
 
-  postInstall = ''
+  preFixup = ''
     # Tell Glib/GIO about the MIME info directory, which is used
     # by `g_file_info_get_content_type ()'.
     wrapProgram "$out/bin/evince" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.gsettings_desktop_schemas}/share:${gtk3}/share:${shared_mime_info}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${shared_mime_info}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+
+    rm $out/share/icons/hicolor/icon-theme.cache
   '';
 
   doCheck = false; # would need pythonPackages.dogTail, which is missing
diff --git a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
index 30805c1c597..0ded30b11ab 100644
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
@@ -19,8 +19,6 @@ stdenv.mkDerivation rec {
   configureFlags = ["--disable-uoa" "--with-nspr-includes=${nspr}/include/nspr" "--with-nss-includes=${nss}/include/nss"]
                    ++ stdenv.lib.optional valaSupport "--enable-vala-bindings";
 
-  installFlags = "gsettingsschemadir=\${out}/share/evolution-data-server/glib-2.0/schemas/";
-
   meta = with stdenv.lib; {
     platforms = platforms.linux;
   };
diff --git a/pkgs/desktops/gnome-3/core/folks/default.nix b/pkgs/desktops/gnome-3/core/folks/default.nix
index 9b0f403b079..12518c634c4 100644
--- a/pkgs/desktops/gnome-3/core/folks/default.nix
+++ b/pkgs/desktops/gnome-3/core/folks/default.nix
@@ -27,8 +27,6 @@ stdenv.mkDerivation rec {
 
   postBuild = "rm -rf $out/share/gtk-doc";
 
-  installFlags = "gsettingsschemadir=\${out}/share/folks/glib-2.0/schemas/";
-
   meta = {
     description = "Folks";
 
diff --git a/pkgs/desktops/gnome-3/core/gcr/default.nix b/pkgs/desktops/gnome-3/core/gcr/default.nix
index 059942530ea..a1fdd471282 100644
--- a/pkgs/desktops/gnome-3/core/gcr/default.nix
+++ b/pkgs/desktops/gnome-3/core/gcr/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, intltool, gnupg, p11_kit, glib
 , libgcrypt, libtasn1, dbus_glib, gtk, pango, gdk_pixbuf, atk
-, gobjectIntrospection }:
+, gobjectIntrospection, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "gcr-3.10.1";
@@ -12,11 +12,16 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     pkgconfig intltool gnupg p11_kit glib gobjectIntrospection
-    libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk
+    libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk makeWrapper
   ];
 
   #doCheck = true;
 
+  preFixup = ''
+    wrapProgram "$out/bin/gcr-viewer" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
+
   meta = with stdenv.lib; {
     platforms = platforms.linux;
   };
diff --git a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
index 805f0e5276d..981ae3bd9df 100644
--- a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
@@ -20,12 +20,10 @@ stdenv.mkDerivation rec {
                   libxml2 gnome3.gtksourceview
                   gnome3.gsettings_desktop_schemas makeWrapper ];
 
-  installFlags = "gsettingsschemadir=\${out}/share/gnome-calculator/glib-2.0/schemas/";
-
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/gnome-calculator" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/gnome-calculator:$XDG_ICON_DIRS"
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
index ac9c53422b3..a3f2e2b7584 100644
--- a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
@@ -36,13 +36,15 @@ stdenv.mkDerivation rec {
     substituteInPlace panels/datetime/test-endianess.c --replace "/usr/share/locale/" "$out/share/locale/"
   '';
 
-  postInstall = with gnome3; ''
+  preFixup = with gnome3; ''
     wrapProgram $out/bin/gnome-control-center \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:${gsettings_desktop_schemas}/share:${gnome_settings_daemon}/share:${glib}/share:${gtk}/share:${colord}/share:$out/share:$out/share/gnome-control-center:$XDG_ICON_DIRS"
+      --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:${gnome_settings_daemon}/share:${glib}/share:${gtk}/share:${colord}/share:$out/share:$out/share/gnome-control-center:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
     for i in $out/share/applications/*; do
       substituteInPlace $i --replace "gnome-control-center" "$out/bin/gnome-control-center"
     done
+
+    rm $out/share/icons/hicolor/icon-theme.cache
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
index 9ab5259a630..c02f8f0a665 100644
--- a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
@@ -25,12 +25,10 @@ stdenv.mkDerivation rec {
                   libnotify libdvdread libcanberra_gtk3 docbook_xsl
                   gnome3.gsettings_desktop_schemas makeWrapper libxml2 ];
 
-  installFlags = "gsettingsschemadir=\${out}/share/gnome-disk-utility/glib-2.0/schemas/";
-
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/gnome-disks" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/gnome-disk-utility:$XDG_ICON_DIRS"
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   preFixup = ''
diff --git a/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
index 8a1b0054e39..cba651ca36a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
@@ -22,12 +22,10 @@ stdenv.mkDerivation rec {
   buildInputs = [ pkgconfig gtk3 glib intltool itstool gnome3.gnome_desktop
                   gnome3.gsettings_desktop_schemas makeWrapper ];
 
-  installFlags = "gsettingsschemadir=\${out}/share/gnome-font-viewer/glib-2.0/schemas/";
-
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/gnome-font-viewer" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/gnome-font-viewer:$XDG_ICON_DIRS"
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
index b557e210645..dbb8da93c6c 100644
--- a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
@@ -25,11 +25,11 @@ stdenv.mkDerivation rec {
     "--with-pkcs11-modules=$$out/lib/pkcs11/"
   ];
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/gnome-keyring" \
-      --prefix XDG_DATA_DIRS : "${glib}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "${glib}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
     wrapProgram "$out/bin/gnome-keyring-daemon" \
-      --prefix XDG_DATA_DIRS : "${glib}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "${glib}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
index 0d891e4625d..349df0b103c 100644
--- a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
@@ -21,12 +21,10 @@ stdenv.mkDerivation rec {
   buildInputs = [ bash pkgconfig gtk3 glib intltool itstool libcanberra_gtk3
                   gnome3.gsettings_desktop_schemas makeWrapper ];
 
-  installFlags = "gsettingsschemadir=\${out}/share/gnome-screenshot/glib-2.0/schemas/";
-
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/gnome-screenshot" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/gnome-screenshot:$XDG_ICON_DIRS"
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
index 804a0c54a41..f999702af54 100644
--- a/pkgs/desktops/gnome-3/core/gnome-session/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
@@ -14,12 +14,13 @@ stdenv.mkDerivation rec {
 
   buildInputs = with gnome3;
     [ pkgconfig glib gnome_desktop gtk dbus_glib json_glib libxslt 
+      gnome3.gnome_settings_daemon
       gsettings_desktop_schemas upower intltool gconf makeWrapper systemd ];
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/gnome-session" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-      --prefix XDG_DATA_DIRS : "${gnome3.gsettings_desktop_schemas}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
index 668a53d2bf8..7a50b8db56f 100644
--- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
@@ -20,11 +20,11 @@ stdenv.mkDerivation rec {
       polkit geocode_glib geoclue2 librsvg xf86_input_wacom udev libwacom libxslt
       libtool docbook_xsl docbook_xsl_ns makeWrapper gnome_themes_standard ];
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/libexec/gnome-settings-daemon-localeexec" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
       --prefix PATH : "${glib}/bin" \
-      --prefix XDG_DATA_DIRS : "${gnome3.gtk}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
index 59f62b6948d..519347f14c8 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -22,22 +22,20 @@ stdenv.mkDerivation rec {
       libical libtool nss gobjectIntrospection gtk gstreamer makeWrapper gdm gnome_control_center
       at_spi2_core upower ibus gnome_session gnome_desktop telepathy_logger ];
 
-  configureFlags = "--disable-static";
-
   preBuild = ''
     patchShebangs src/data-to-c.pl
     substituteInPlace data/Makefile --replace " install-keysDATA" ""
   '';
 
-  postInstall = with gnome3; ''
+  preFixup = with gnome3; ''
     wrapProgram "$out/bin/gnome-shell" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
       --prefix LD_LIBRARY_PATH : "${accountservice}/lib:${ibus}/lib:${gdm}/lib" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "${gnome-menus}:/share:${ibus}/share:${gnome_settings_daemon}/share:${gnome_control_center}/share:${gdm}/share:${glib}/share:${gnome_themes_standard}/share:${mutter}/share:${gnome_icon_theme}/share:${gsettings_desktop_schemas}/share:${gtk}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "${gnome-menus}:/share:${ibus}/share:${gnome_settings_daemon}/share:${gnome_control_center}/share:${gdm}/share:${glib}/share:${gnome_themes_standard}/share:${mutter}/share:${gtk}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
 
     wrapProgram "$out/libexec/gnome-shell-calendar-server" \
-      --prefix XDG_DATA_DIRS : "${evolution_data_server}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "${evolution_data_server}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/gnome-system-log/default.nix b/pkgs/desktops/gnome-3/core/gnome-system-log/default.nix
index 8b387627da5..7152332217a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-system-log/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-system-log/default.nix
@@ -21,12 +21,10 @@ stdenv.mkDerivation rec {
   buildInputs = [ bash pkgconfig gtk3 glib intltool itstool
                   gnome3.gsettings_desktop_schemas makeWrapper libxml2 ];
 
-  installFlags = "gsettingsschemadir=\${out}/share/gnome-system-log/glib-2.0/schemas/";
-
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/gnome-system-log" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/gnome-system-log:$XDG_ICON_DIRS"
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   preFixup = ''
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
index 31ee53e9713..541db5720db 100644
--- a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -19,12 +19,12 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libuuid libxml2 desktop_file_utils ];
 
-  postInstall = ''
-    wrapProgram "$out/libexec/gnome-terminal-server" \
-      --prefix XDG_DATA_DIRS : "${gnome3.gsettings_desktop_schemas}/share:$out/share"
+  preFixup = ''
+    for f in "$out/libexec/gnome-terminal-migration" "$out/libexec/gnome-terminal-server"; do
+      wrapProgram "$f" --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH"
+    done
   '';
 
-
   meta = with stdenv.lib; {
     platforms = platforms.linux;
   };
diff --git a/pkgs/desktops/gnome-3/core/gucharmap/default.nix b/pkgs/desktops/gnome-3/core/gucharmap/default.nix
index bf630e1947d..a6bf72b2fc7 100644
--- a/pkgs/desktops/gnome-3/core/gucharmap/default.nix
+++ b/pkgs/desktops/gnome-3/core/gucharmap/default.nix
@@ -25,11 +25,9 @@ stdenv.mkDerivation rec {
                   gnome3.yelp_tools libxml2 file desktop_file_utils
                   gnome3.gsettings_desktop_schemas makeWrapper ];
 
-  installFlags = "gsettingsschemadir=\${out}/share/${name}/glib-2.0/schemas/";
-
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/gucharmap" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/${name}"
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix
index e6454aa8e5d..0acfa9f36ae 100644
--- a/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, stdenv, pkgconfig, gnome3, intltool, gobjectIntrospection, upower, cairo
 , pango, cogl, clutter, libstartup_notification, libcanberra, zenity, libcanberra_gtk3
-, libtool }:
+, libtool, makeWrapper }:
 
 
 stdenv.mkDerivation rec {
@@ -19,7 +19,12 @@ stdenv.mkDerivation rec {
   buildInputs = with gnome3;
     [ pkgconfig intltool glib gobjectIntrospection gtk gsettings_desktop_schemas upower
       gnome_desktop cairo pango cogl clutter zenity libstartup_notification libcanberra
-      libcanberra_gtk3 zenity libtool ];
+      libcanberra_gtk3 zenity libtool makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/mutter" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
 
   meta = with stdenv.lib; {
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome-3/core/nautilus/default.nix b/pkgs/desktops/gnome-3/core/nautilus/default.nix
index 091e48626ae..2041a71a82c 100644
--- a/pkgs/desktops/gnome-3/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome-3/core/nautilus/default.nix
@@ -15,11 +15,11 @@ stdenv.mkDerivation rec {
   buildInputs = [ pkgconfig libxml2 dbus_glib shared_mime_info libexif gtk libunique intltool exempi librsvg
                   gnome3.gnome_desktop gnome3.gnome_icon_theme gnome3.gnome_icon_theme_symbolic gnome3.gsettings_desktop_schemas libnotify makeWrapper ];
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/nautilus" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk}/share:${gnome3.gnome_icon_theme}:${gnome3.gsettings_desktop_schemas}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk}/share:${gnome3.gnome_icon_theme}:${gnome3.gsettings_desktop_schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/vino/default.nix b/pkgs/desktops/gnome-3/core/vino/default.nix
index b431a199bf7..65668dce6a2 100644
--- a/pkgs/desktops/gnome-3/core/vino/default.nix
+++ b/pkgs/desktops/gnome-3/core/vino/default.nix
@@ -15,9 +15,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gtk3 intltool glib libsoup pkgconfig libnotify file makeWrapper ];
 
-  postInstall = ''
+  preFixup = ''
     for f in "$out/bin/vino-passwd" "$out/libexec/vino-server"; do
-      wrapProgram $f --prefix XDG_DATA_DIRS : "${gtk3}/share:$out/share"
+      wrapProgram $f --prefix XDG_DATA_DIRS : "${gtk3}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
     done
   '';
 
diff --git a/pkgs/desktops/gnome-3/core/yelp/default.nix b/pkgs/desktops/gnome-3/core/yelp/default.nix
index d84bd288707..b58aa99721e 100644
--- a/pkgs/desktops/gnome-3/core/yelp/default.nix
+++ b/pkgs/desktops/gnome-3/core/yelp/default.nix
@@ -20,12 +20,10 @@ stdenv.mkDerivation rec {
                   libxml2 libxslt icu file makeWrapper gnome3.yelp_xsl
                   gnome3.gsettings_desktop_schemas ];
 
-  installFlags = "gsettingsschemadir=\${out}/share/yelp/glib-2.0/schemas/";
-
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/yelp" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/:${gnome3.gnome_themes_standard}/share:${gnome3.yelp_xsl}/share/yelp-xsl:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/yelp:$XDG_ICON_DIRS"
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/:${gnome3.gnome_themes_standard}/share:${gnome3.yelp_xsl}/share/yelp-xsl:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/yelp:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/misc/gitg/default.nix b/pkgs/desktops/gnome-3/misc/gitg/default.nix
index 26268f4c90c..7ca35a8255f 100644
--- a/pkgs/desktops/gnome-3/misc/gitg/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gitg/default.nix
@@ -9,12 +9,10 @@ stdenv.mkDerivation rec {
   name = "gitg-0.3.2";
 
   src = fetchurl {
-    url = "https://download.gnome.org/sources/gitg/0.3/${name}.tar.xz";
+    url = "mirror://gnome/sources/gitg/0.3/${name}.tar.xz";
     sha256 = "03vc59d1r3326piqdph6qjqnc40chm1lpg52lpf8466ddjs0x8vp";
   };
 
-  configureFlags = [ "--disable-static" ];
-
   preCheck = ''
     substituteInPlace tests/libgitg/test-commit.c --replace "/bin/bash" "${bash}/bin/bash"
   '';
@@ -29,14 +27,11 @@ stdenv.mkDerivation rec {
                   libgit2-glib gtkspell3 gnome3.gsettings_desktop_schemas gnome3.gtksourceview librsvg
                   gobjectIntrospection makeWrapper gnome3.gnome_icon_theme_symbolic gnome3.gnome_icon_theme ];
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/gitg" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share"
-  '';
-
-  preFixup = ''
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
     rm $out/share/icons/hicolor/icon-theme.cache
     rm $out/share/gitg/icons/hicolor/icon-theme.cache
   '';
diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix
index 73b74a12c66..3f20147d0e9 100644
--- a/pkgs/development/libraries/gvfs/default.nix
+++ b/pkgs/development/libraries/gvfs/default.nix
@@ -31,8 +31,8 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   # ToDo: one probably should specify schemas for samba and others here
-  fixupPhase = ''
-    wrapProgram $out/libexec/gvfsd --set GSETTINGS_SCHEMA_DIR "$out/share/glib-2.0/schemas"
+  preFixup = ''
+    wrapProgram $out/libexec/gvfsd --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = {
diff --git a/pkgs/development/libraries/ibus/default.nix b/pkgs/development/libraries/ibus/default.nix
index 75eb1b4134c..905f11dfdc2 100644
--- a/pkgs/development/libraries/ibus/default.nix
+++ b/pkgs/development/libraries/ibus/default.nix
@@ -21,9 +21,9 @@ stdenv.mkDerivation rec {
 
   preBuild = "patchShebangs ./scripts";
 
-  postInstall = ''
+  preFixup = ''
     for f in "$out"/bin/*; do
-      wrapProgram "$f" --prefix XDG_DATA_DIRS : "$out/share" \
+      wrapProgram "$f" --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
                        --prefix PYTHONPATH : "$(toPythonPath ${pygobject3})" \
                        --prefix LD_LIBRARY_PATH : "${gnome3.gtk3}/lib:${atk}/lib:$out/lib" \
                        --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH:$out/lib/girepository-1.0" \
diff --git a/pkgs/tools/networking/network-manager-applet/default.nix b/pkgs/tools/networking/network-manager-applet/default.nix
index 6db55ada192..8d0d4521b86 100644
--- a/pkgs/tools/networking/network-manager-applet/default.nix
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    gnome3.gtk libglade networkmanager libnotify libsecret dbus_glib
+    gnome3.gtk libglade networkmanager libnotify libsecret dbus_glib gsettings_desktop_schemas
     polkit isocodes makeWrapper udev gnome3.gconf gnome3.libgnome_keyring
   ];
 
@@ -44,9 +44,12 @@ stdenv.mkDerivation rec {
     ln -s ${networkmanager_openvpn}/libexec/* $out/libexec/
     ln -s ${networkmanager_vpnc}/libexec/* $out/libexec/
     ln -s ${networkmanager_openconnect}/libexec/* $out/libexec/
+  '';
+
+  preFixup = ''
     wrapProgram "$out/bin/nm-applet" \
       --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
-      --prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share:${gnome3.gtk}/share:$out/share" \
+      --prefix XDG_DATA_DIRS : "${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
       --set GCONF_CONFIG_SOURCE "xml::~/.gconf" \
       --prefix PATH ":" "${gnome3.gconf}/bin"
   '';
@@ -57,9 +60,5 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ phreedom urkud rickynils ];
     platforms = platforms.linux;
-
-    # resolve collision between evince and nm-applet for
-    # gschemas.compiled
-    priority = 6;
   };
 }