summary refs log tree commit diff
path: root/pkgs/desktops/gnome-3
diff options
context:
space:
mode:
authorRobin Gloster <mail@glob.in>2016-07-15 14:41:01 +0000
committerRobin Gloster <mail@glob.in>2016-07-15 14:41:01 +0000
commit5185bc177309c62e53dad1ad346d1220f0e77bd4 (patch)
tree52f5878b394abf2ef326765d46880ccbabd84903 /pkgs/desktops/gnome-3
parent07615735077db344539eb9131823600593f0eddf (diff)
parentf402c6321aa3c6e56f5e1f1e36c4ad459c881309 (diff)
downloadnixlib-5185bc177309c62e53dad1ad346d1220f0e77bd4.tar
nixlib-5185bc177309c62e53dad1ad346d1220f0e77bd4.tar.gz
nixlib-5185bc177309c62e53dad1ad346d1220f0e77bd4.tar.bz2
nixlib-5185bc177309c62e53dad1ad346d1220f0e77bd4.tar.lz
nixlib-5185bc177309c62e53dad1ad346d1220f0e77bd4.tar.xz
nixlib-5185bc177309c62e53dad1ad346d1220f0e77bd4.tar.zst
nixlib-5185bc177309c62e53dad1ad346d1220f0e77bd4.zip
Merge remote-tracking branch 'upstream/master' into hardened-stdenv
Diffstat (limited to 'pkgs/desktops/gnome-3')
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/epiphany/libxml_depend.patch10
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gdm/default.nix5
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix1
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/apps/cheese/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/apps/file-roller/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/3.20/apps/gnome-calendar/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/apps/gnome-documents/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/apps/gnome-maps/default.nix1
-rw-r--r--pkgs/desktops/gnome-3/3.20/apps/gnome-photos/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/apps/seahorse/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/baobab/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/epiphany/libxml_depend.patch10
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/evince/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gdm/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-calculator/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-desktop/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-dictionary/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-disk-utility/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-font-viewer/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-keyring/default.nix1
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-screenshot/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-settings-daemon/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-shell/default.nix11
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-system-log/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-terminal/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-user-share/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/grilo-plugins/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/grilo/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/grilo/setup-hook.sh4
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/libcroco/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/libgdata/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/libpeas/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/libpeas/src.nix11
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/mutter/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/totem/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/3.20/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/misc/geary/disable_valadoc.patch24
-rw-r--r--pkgs/desktops/gnome-3/3.20/misc/gnome-tweak-tool/default.nix28
-rw-r--r--pkgs/desktops/gnome-3/3.20/misc/gpaste/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/misc/pidgin/default.nix42
41 files changed, 151 insertions, 132 deletions
diff --git a/pkgs/desktops/gnome-3/3.18/core/epiphany/libxml_depend.patch b/pkgs/desktops/gnome-3/3.18/core/epiphany/libxml_depend.patch
deleted file mode 100644
index 89e3694a02d9..000000000000
--- a/pkgs/desktops/gnome-3/3.18/core/epiphany/libxml_depend.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- configure.ac.orig	2015-04-08 18:53:52.284580835 +0200
-+++ configure.ac	2015-04-08 18:55:55.697225280 +0200
-@@ -113,6 +113,7 @@
- PKG_CHECK_MODULES(WEB_EXTENSION, [
-                   webkit2gtk-web-extension-4.0 >= $WEBKIT_GTK_REQUIRED
-                   libsecret-1 >= $LIBSECRET_REQUIRED
-+                  libxml-2.0 >= $LIBXML_REQUIRED
-                   ])
- AC_SUBST(WEB_EXTENSION_CFLAGS)
- AC_SUBST(WEB_EXTENSION_LIBS)
diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix b/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix
index 0d21bf546665..588c6bc639b6 100644
--- a/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, glib, itstool, libxml2, xorg, dbus
 , intltool, accountsservice, libX11, gnome3, systemd, gnome_session, autoreconfHook
-, gtk, libcanberra_gtk3, pam, libtool, gobjectIntrospection }:
+, gtk, libcanberra_gtk3, pam, libtool, gobjectIntrospection, plymouth }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
@@ -13,12 +13,13 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--sysconfdir=/etc"
                      "--localstatedir=/var"
                      "--with-systemd=yes"
+                     "--with-plymouth=yes"
                      "--with-systemdsystemunitdir=$(out)/etc/systemd/system" ];
 
   buildInputs = [ pkgconfig glib itstool libxml2 intltool autoreconfHook
                   accountsservice gnome3.dconf systemd
                   gobjectIntrospection libX11 gtk
-                  libcanberra_gtk3 pam libtool ];
+                  libcanberra_gtk3 pam libtool plymouth ];
 
   #enableParallelBuilding = true; # problems compiling
 
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix
index 8e755383dd62..e3dc558a49a8 100644
--- a/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix
@@ -15,7 +15,6 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig intltool docbook_xsl_ns docbook_xsl ];
 
   configureFlags = [
-    "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt" # NixOS hardcoded path
     "--with-pkcs11-config=$$out/etc/pkcs11/" # installation directories
     "--with-pkcs11-modules=$$out/lib/pkcs11/"
   ];
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix
index 02d7912b3a6d..e740d3e7e0e7 100644
--- a/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix
@@ -2,12 +2,12 @@
 , pango, gtk3, gnome3, dbus, clutter, appstream-glib, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "${gnome3.version}.4";
+  version = "${gnome3.version}.5";
   name = "gpaste-${version}";
 
   src = fetchurl {
     url = "https://github.com/Keruspe/GPaste/archive/v${version}.tar.gz";
-    sha256 = "0x4yj3cdbgjys9g7d5j8ascr9y27skl5ys8csln7vsk525l12a7p";
+    sha256 = "11sv605c70hgri06ycb74lg1hz1951gqvai1pnax8d6zyrfxdw1c";
   };
 
   buildInputs = [ intltool autoreconfHook pkgconfig vala glib
diff --git a/pkgs/desktops/gnome-3/3.20/apps/cheese/default.nix b/pkgs/desktops/gnome-3/3.20/apps/cheese/default.nix
index db50656cf37a..b5f70d84e520 100644
--- a/pkgs/desktops/gnome-3/3.20/apps/cheese/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/apps/cheese/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Apps/Cheese;
diff --git a/pkgs/desktops/gnome-3/3.20/apps/file-roller/default.nix b/pkgs/desktops/gnome-3/3.20/apps/file-roller/default.nix
index df90c7b29773..181888293777 100644
--- a/pkgs/desktops/gnome-3/3.20/apps/file-roller/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/apps/file-roller/default.nix
@@ -1,17 +1,16 @@
 { stdenv, fetchurl, glib, pkgconfig, gnome3, intltool, itstool, libxml2, libarchive
-, attr, bzip2, acl, wrapGAppsHook, librsvg, gdk_pixbuf }:
+, attr, bzip2, acl, wrapGAppsHook, librsvg, gdk_pixbuf, libnotify, nautilus }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
-  # TODO: support nautilus
-  # it tries to create {nautilus}/lib/nautilus/extensions-3.0/libnautilus-fileroller.so
-
   nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
 
   buildInputs = [ glib gnome3.gtk intltool itstool libxml2 libarchive
                   gnome3.defaultIconTheme attr bzip2 acl gdk_pixbuf librsvg
-                  gnome3.dconf ];
+                  gnome3.dconf libnotify nautilus ];
+
+  installFlags = [ "nautilus_extensiondir=$(out)/lib/nautilus/extensions-3.0" ];
 
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Apps/FileRoller;
diff --git a/pkgs/desktops/gnome-3/3.20/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome-3/3.20/apps/gnome-calendar/default.nix
index cbd5a84bdb55..5fe6583660cb 100644
--- a/pkgs/desktops/gnome-3/3.20/apps/gnome-calendar/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/apps/gnome-calendar/default.nix
@@ -5,7 +5,7 @@
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
   buildInputs = [
     pkgconfig gtk3 wrapGAppsHook intltool evolution_data_server
diff --git a/pkgs/desktops/gnome-3/3.20/apps/gnome-documents/default.nix b/pkgs/desktops/gnome-3/3.20/apps/gnome-documents/default.nix
index 7f1f70114b7b..5daa7277f7b4 100644
--- a/pkgs/desktops/gnome-3/3.20/apps/gnome-documents/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/apps/gnome-documents/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   preFixup = ''
-    substituteInPlace $out/bin/gnome-documents --replace gapplication "${glib}/bin/gapplication"
+    substituteInPlace $out/bin/gnome-documents --replace gapplication "${glib.dev}/bin/gapplication"
 
     gappsWrapperArgs+=(--run 'if [ -z "$XDG_CACHE_DIR" ]; then XDG_CACHE_DIR=$HOME/.cache; fi; if [ -w "$XDG_CACHE_DIR/.." ]; then mkdir -p "$XDG_CACHE_DIR/gnome-documents"; fi')
   '';
diff --git a/pkgs/desktops/gnome-3/3.20/apps/gnome-maps/default.nix b/pkgs/desktops/gnome-3/3.20/apps/gnome-maps/default.nix
index b9aac0539ae5..caff53dcc1d6 100644
--- a/pkgs/desktops/gnome-3/3.20/apps/gnome-maps/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/apps/gnome-maps/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
                   gtk3 geoclue2 gnome3.gjs gnome3.libgee folks gfbgraph
                   gnome3.geocode_glib libchamplain file libsoup
                   gdk_pixbuf librsvg autoreconfHook
+                  gnome3.gsettings_desktop_schemas gnome3.evolution_data_server
                   gnome3.gnome_online_accounts gnome3.defaultIconTheme ];
 
   patches = [ ./soup.patch ];
diff --git a/pkgs/desktops/gnome-3/3.20/apps/gnome-photos/default.nix b/pkgs/desktops/gnome-3/3.20/apps/gnome-photos/default.nix
index 09e0d9505ff1..df7e23ef9d4f 100644
--- a/pkgs/desktops/gnome-3/3.20/apps/gnome-photos/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/apps/gnome-photos/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
 
   # doCheck = true;
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
   buildInputs = [ pkgconfig gtk3 glib intltool itstool gegl babl gnome3.libgdata
                   gnome3.gsettings_desktop_schemas makeWrapper gmp libmediaart
diff --git a/pkgs/desktops/gnome-3/3.20/apps/seahorse/default.nix b/pkgs/desktops/gnome-3/3.20/apps/seahorse/default.nix
index 3b78babadd9a..49c48a6b962a 100644
--- a/pkgs/desktops/gnome-3/3.20/apps/seahorse/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/apps/seahorse/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
   buildInputs = [ pkgconfig gtk3 glib intltool itstool gnome3.gcr
                   gnome3.gsettings_desktop_schemas makeWrapper gnupg
diff --git a/pkgs/desktops/gnome-3/3.20/core/baobab/default.nix b/pkgs/desktops/gnome-3/3.20/core/baobab/default.nix
index 2ff85662bbbb..874c7280949a 100644
--- a/pkgs/desktops/gnome-3/3.20/core/baobab/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/baobab/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
 
diff --git a/pkgs/desktops/gnome-3/3.20/core/epiphany/libxml_depend.patch b/pkgs/desktops/gnome-3/3.20/core/epiphany/libxml_depend.patch
deleted file mode 100644
index 89e3694a02d9..000000000000
--- a/pkgs/desktops/gnome-3/3.20/core/epiphany/libxml_depend.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- configure.ac.orig	2015-04-08 18:53:52.284580835 +0200
-+++ configure.ac	2015-04-08 18:55:55.697225280 +0200
-@@ -113,6 +113,7 @@
- PKG_CHECK_MODULES(WEB_EXTENSION, [
-                   webkit2gtk-web-extension-4.0 >= $WEBKIT_GTK_REQUIRED
-                   libsecret-1 >= $LIBSECRET_REQUIRED
-+                  libxml-2.0 >= $LIBXML_REQUIRED
-                   ])
- AC_SUBST(WEB_EXTENSION_CFLAGS)
- AC_SUBST(WEB_EXTENSION_LIBS)
diff --git a/pkgs/desktops/gnome-3/3.20/core/evince/default.nix b/pkgs/desktops/gnome-3/3.20/core/evince/default.nix
index d0857a1d32ad..7629e5b56550 100644
--- a/pkgs/desktops/gnome-3/3.20/core/evince/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/evince/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     (if supportXPS then "--enable-xps" else "--disable-xps")
   ];
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
   preConfigure = with stdenv.lib;
     optionalString doCheck ''
diff --git a/pkgs/desktops/gnome-3/3.20/core/gdm/default.nix b/pkgs/desktops/gnome-3/3.20/core/gdm/default.nix
index 0d21bf546665..25a44d90a5b2 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gdm/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gdm/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, glib, itstool, libxml2, xorg, dbus
 , intltool, accountsservice, libX11, gnome3, systemd, gnome_session, autoreconfHook
-, gtk, libcanberra_gtk3, pam, libtool, gobjectIntrospection }:
+, gtk, libcanberra_gtk3, pam, libtool, gobjectIntrospection, plymouth }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
@@ -13,12 +13,13 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--sysconfdir=/etc"
                      "--localstatedir=/var"
                      "--with-systemd=yes"
+                     "--with-plymouth=yes"
                      "--with-systemdsystemunitdir=$(out)/etc/systemd/system" ];
 
   buildInputs = [ pkgconfig glib itstool libxml2 intltool autoreconfHook
                   accountsservice gnome3.dconf systemd
                   gobjectIntrospection libX11 gtk
-                  libcanberra_gtk3 pam libtool ];
+                  libcanberra_gtk3 pam libtool plymouth ];
 
   #enableParallelBuilding = true; # problems compiling
 
@@ -33,6 +34,10 @@ stdenv.mkDerivation rec {
 
   installFlags = [ "sysconfdir=$(out)/etc" "dbusconfdir=$(out)/etc/dbus-1/system.d" ];
 
+  postInstall = ''
+    mv $out/share/gdm/greeter/applications/gnome-shell.desktop $out/share/gdm/greeter/applications/org.gnome.Shell.desktop
+  '';
+
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Projects/GDM;
     description = "A program that manages graphical display servers and handles graphical user logins";
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-calculator/default.nix
index 5458f933a755..e1b81339e91e 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-calculator/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-calculator/default.nix
@@ -5,7 +5,7 @@
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
 
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-desktop/default.nix
index bf0ccd0224ee..7265f09731fd 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-desktop/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-desktop/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
   # this should probably be setuphook for glib
-  NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-dictionary/default.nix
index 1d1f9d18c566..8421bb362c3f 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-dictionary/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-dictionary/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
   propagatedBuildInputs = [ gdk_pixbuf gnome3.defaultIconTheme librsvg ];
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-disk-utility/default.nix
index 3f9f653bdba1..c329d68674a4 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-disk-utility/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-disk-utility/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
 
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-font-viewer/default.nix
index 54767dbc4c59..d0ec2307a852 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-font-viewer/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-font-viewer/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
 
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-keyring/default.nix
index 8e755383dd62..e3dc558a49a8 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-keyring/default.nix
@@ -15,7 +15,6 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig intltool docbook_xsl_ns docbook_xsl ];
 
   configureFlags = [
-    "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt" # NixOS hardcoded path
     "--with-pkcs11-config=$$out/etc/pkcs11/" # installation directories
     "--with-pkcs11-modules=$$out/lib/pkcs11/"
   ];
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-screenshot/default.nix
index 763fc990bdab..72aa97fa6b67 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-screenshot/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-screenshot/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
   propagatedBuildInputs = [ gdk_pixbuf gnome3.defaultIconTheme librsvg ];
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-settings-daemon/default.nix
index 99e1f596f184..2a93328d8ca0 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-settings-daemon/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-settings-daemon/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
   # fatal error: gio/gunixfdlist.h: No such file or directory
-  NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
   buildInputs = with gnome3;
     [ intltool pkgconfig ibus gtk glib gsettings_desktop_schemas networkmanager
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-shell/default.nix
index 11d78cd61328..d0d7bceef61f 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-shell/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, stdenv, pkgconfig, gnome3, json_glib, libcroco, intltool, libsecret
-, python3, libsoup, polkit, clutter, networkmanager, docbook_xsl, docbook_xsl_ns, at_spi2_core
+, python3Packages, libsoup, polkit, clutter, networkmanager, docbook_xsl , docbook_xsl_ns, at_spi2_core
 , libstartup_notification, telepathy_glib, telepathy_logger, libXtst, p11_kit, unzip
 , sqlite, libgweather, libcanberra_gtk3
 , libpulseaudio, libical, libtool, nss, gobjectIntrospection, gstreamer, makeWrapper
@@ -15,16 +15,18 @@ stdenv.mkDerivation rec {
 
   buildInputs = with gnome3;
     [ gsettings_desktop_schemas gnome_keyring gnome-menus glib gcr json_glib accountsservice
-      libcroco intltool libsecret pkgconfig python3 libsoup polkit libcanberra gdk_pixbuf librsvg
+      libcroco intltool libsecret pkgconfig libsoup polkit libcanberra gdk_pixbuf librsvg
       clutter networkmanager libstartup_notification telepathy_glib docbook_xsl docbook_xsl_ns
       libXtst p11_kit networkmanagerapplet gjs mutter libpulseaudio caribou evolution_data_server
-      libical libtool nss gobjectIntrospection gtk gstreamer makeWrapper gdm
+      libical libtool nss gtk gstreamer makeWrapper gdm
       libcanberra_gtk3 gnome_control_center
       defaultIconTheme sqlite gnome3.gnome-bluetooth
       libgweather # not declared at build time, but typelib is needed at runtime
       gnome3.gnome-clocks # schemas needed
       at_spi2_core upower ibus gnome_session gnome_desktop telepathy_logger gnome3.gnome_settings_daemon ];
 
+  propagatedBuildInputs = [ python3Packages.pygobject3 python3Packages.python gobjectIntrospection ];
+
   installFlags = [ "keysdir=$(out)/share/gnome-control-center/keybindings" ];
 
   preBuild = ''
@@ -40,6 +42,9 @@ stdenv.mkDerivation rec {
       --prefix XDG_DATA_DIRS : "${gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS" \
       --suffix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
 
+    wrapProgram "$out/bin/gnome-shell-extension-tool" \
+      --prefix PYTHONPATH : "${python3Packages.pygobject3}/${python3Packages.python.sitePackages}:$PYTHONPATH"
+
     wrapProgram "$out/libexec/gnome-shell-calendar-server" \
       --prefix XDG_DATA_DIRS : "${evolution_data_server}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
 
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-system-log/default.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-system-log/default.nix
index 716f92a072d4..271f23e69204 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-system-log/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-system-log/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
   propagatedBuildInputs = [ gdk_pixbuf gnome3.defaultIconTheme librsvg ];
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-terminal/default.nix
index 052a16affdc0..c523d732e03a 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-terminal/default.nix
@@ -11,8 +11,15 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libuuid libxml2
                         desktop_file_utils wrapGAppsHook ];
 
+  # Silly ./configure, it looks for dbus file from gnome-shell in the
+  # installation tree of the package it is configuring.
+  preConfigure = ''
+    mkdir -p "$out/share/dbus-1/interfaces"
+    cp "${gnome3.gnome_shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml" "$out/share/dbus-1/interfaces"
+  '';
+
   # FIXME: enable for gnome3
-  configureFlags = [ "--disable-search-provider" "--disable-migration" ];
+  configureFlags = [ "--disable-migration" ];
 
   meta = with stdenv.lib; {
     description = "The GNOME Terminal Emulator";
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-user-share/default.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-user-share/default.nix
index 49ad40912c66..977c5800aeb7 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-user-share/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-user-share/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
   preConfigure = ''
     sed -e 's,^LoadModule dnssd_module.\+,LoadModule dnssd_module ${mod_dnssd}/modules/mod_dnssd.so,' -i data/dav_user_2.2.conf 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   postInstall = ''
     mkdir -p $out/share/gsettings-schemas/$name
     mv $out/share/glib-2.0 $out/share/gsettings-schemas/$name
-    ${glib}/bin/glib-compile-schemas $out/share/gsettings-schemas/$name/glib-2.0/schemas
+    ${glib.dev}/bin/glib-compile-schemas $out/share/gsettings-schemas/$name/glib-2.0/schemas
   '';
 
   preFixup = ''
diff --git a/pkgs/desktops/gnome-3/3.20/core/grilo-plugins/default.nix b/pkgs/desktops/gnome-3/3.20/core/grilo-plugins/default.nix
index 4c952e3de276..caa0176036fe 100644
--- a/pkgs/desktops/gnome-3/3.20/core/grilo-plugins/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/grilo-plugins/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   major = "0.3";
-  minor = "1";
+  minor = "2";
   name = "grilo-plugins-${major}.${minor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/grilo-plugins/${major}/${name}.tar.xz";
-    sha256 = "1akd7q6pqnkcnayrdfjb0qx5w5yyl06kxzwhqp2gxm4y1b208pb0";
+    sha256 = "1z8s62a29zidm35ajf708r7d36glb27im4s52l02q9w1jwl8j6vr";
   };
 
   installFlags = [ "GRL_PLUGINS_DIR=$(out)/lib/grilo-${major}" ];
diff --git a/pkgs/desktops/gnome-3/3.20/core/grilo/default.nix b/pkgs/desktops/gnome-3/3.20/core/grilo/default.nix
index e178985c1785..0bae28387bb1 100644
--- a/pkgs/desktops/gnome-3/3.20/core/grilo/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/grilo/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, pkgconfig, file, intltool, glib
-, libxml2, gnome3, gobjectIntrospection, libsoup }:
+, libxml2, gnome3, gobjectIntrospection, libsoup, python3Packages }:
 
 stdenv.mkDerivation rec {
-  major = "0.3";
-  minor = "0";
+  major = "0.3"; # if you change this, also change ./setup-hook.sh
+  minor = "1";
   name = "grilo-${major}.${minor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/grilo/${major}/${name}.tar.xz";
-    sha256 = "0q5wcvnckpfks48hy0gvlfdmvqm67vnblm3912rssmkgc1ysil8z";
+    sha256 = "0k6d8drgh7inbpxqfa9m9dm4vrhfb9ifi5b88fn8q2ljqwfwdggb";
   };
 
   setupHook = ./setup-hook.sh;
@@ -23,7 +23,9 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [ pkgconfig file intltool glib libxml2 libsoup
-                  gnome3.totem-pl-parser gobjectIntrospection ];
+                  gnome3.totem-pl-parser ];
+
+  propagatedBuildInputs = [ python3Packages.pygobject3 gobjectIntrospection ];
 
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/action/show/Projects/Grilo;
diff --git a/pkgs/desktops/gnome-3/3.20/core/grilo/setup-hook.sh b/pkgs/desktops/gnome-3/3.20/core/grilo/setup-hook.sh
index bc93dddec386..3291e38addb8 100644
--- a/pkgs/desktops/gnome-3/3.20/core/grilo/setup-hook.sh
+++ b/pkgs/desktops/gnome-3/3.20/core/grilo/setup-hook.sh
@@ -1,6 +1,6 @@
 make_grilo_find_plugins() {
-    if [ -d "$1"/lib/grilo-0.2 ]; then
-        addToSearchPath GRL_PLUGIN_PATH "$1/lib/grilo-0.2"
+    if [ -d "$1"/lib/grilo-0.3 ]; then
+        addToSearchPath GRL_PLUGIN_PATH "$1/lib/grilo-0.3"
     fi
 }
 
diff --git a/pkgs/desktops/gnome-3/3.20/core/libcroco/default.nix b/pkgs/desktops/gnome-3/3.20/core/libcroco/default.nix
index 76d9118c4b95..563a18e510f1 100644
--- a/pkgs/desktops/gnome-3/3.20/core/libcroco/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/libcroco/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libxml2, glib }:
 
 stdenv.mkDerivation rec {
-  name = "libcroco-0.6.8";
+  name = "libcroco-0.6.11";
 
   src = fetchurl {
     url = "mirror://gnome/sources/libcroco/0.6/${name}.tar.xz";
-    sha256 = "0w453f3nnkbkrly7spx5lx5pf6mwynzmd5qhszprq8amij2invpa";
+    sha256 = "0mm0wldbi40am5qn0nv7psisbg01k42rwzjxl3gv11l5jj554aqk";
   };
 
   outputs = [ "dev" "out" ];
diff --git a/pkgs/desktops/gnome-3/3.20/core/libgdata/default.nix b/pkgs/desktops/gnome-3/3.20/core/libgdata/default.nix
index 0a5fc0f8f601..e455be07bdf9 100644
--- a/pkgs/desktops/gnome-3/3.20/core/libgdata/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/libgdata/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "1xniw4y90hbk9fa548pa9pfclibw7amr2f458lfh16jdzq7gw5cz";
   };
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.libsoup}/include/libsoup-gnome-2.4/ -I${gnome3.gcr}/include/gcr-3 -I${gnome3.gcr}/include/gck-1";
+  NIX_CFLAGS_COMPILE = "-I${gnome3.libsoup.dev}/include/libsoup-gnome-2.4/ -I${gnome3.gcr}/include/gcr-3 -I${gnome3.gcr}/include/gck-1";
 
   buildInputs = with gnome3;
     [ pkgconfig libsoup intltool libxml2 glib gobjectIntrospection
diff --git a/pkgs/desktops/gnome-3/3.20/core/libpeas/default.nix b/pkgs/desktops/gnome-3/3.20/core/libpeas/default.nix
index 8d40d977a80b..1ba143539d40 100644
--- a/pkgs/desktops/gnome-3/3.20/core/libpeas/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/libpeas/default.nix
@@ -1,14 +1,13 @@
 { stdenv, fetchurl, pkgconfig, intltool, gnome3
-, glib, gtk3, gobjectIntrospection, python, pygobject3
+, glib, gtk3, gobjectIntrospection, python3Packages, ncurses
 }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
-  buildInputs =  [
-   intltool pkgconfig glib gtk3 gobjectIntrospection python pygobject3
-   gnome3.defaultIconTheme
-  ];
+  configureFlags = [ "--enable-python3" ];
+
+  buildInputs =  [ intltool pkgconfig glib gtk3 gnome3.defaultIconTheme ncurses python3Packages.python python3Packages.pygobject3 gobjectIntrospection ];
 
   meta = with stdenv.lib; {
     description = "A GObject-based plugins engine";
diff --git a/pkgs/desktops/gnome-3/3.20/core/libpeas/src.nix b/pkgs/desktops/gnome-3/3.20/core/libpeas/src.nix
index 8a24097bbd67..cd440858946e 100644
--- a/pkgs/desktops/gnome-3/3.20/core/libpeas/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/libpeas/src.nix
@@ -1,10 +1,13 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
-fetchurl: {
-  name = "libpeas-1.16.0";
+fetchurl: rec {
+  major = "1.18";
+  minor = "0";
+  version = "${major}.${minor}";
+  name = "libpeas-${version}";
 
   src = fetchurl {
-    url = mirror://gnome/sources/libpeas/1.16/libpeas-1.16.0.tar.xz;
-    sha256 = "b093008ecd65f7d55c80517589509698ff15ad41f664b11a3eb88ff461b1454e";
+    url = "mirror://gnome/sources/libpeas/${major}/${name}.tar.xz";
+    sha256 = "09jy2rwwgp0xx7cnypxl56m7zzxnj3j4v58xqjxjasf3chn88jdz";
   };
 }
diff --git a/pkgs/desktops/gnome-3/3.20/core/mutter/default.nix b/pkgs/desktops/gnome-3/3.20/core/mutter/default.nix
index dd08a96cc232..a128990b4029 100644
--- a/pkgs/desktops/gnome-3/3.20/core/mutter/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/mutter/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
   # fatal error: gio/gunixfdlist.h: No such file or directory
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
   configureFlags = "--with-x --disable-static --enable-shape --enable-sm --enable-startup-notification --enable-xsync --enable-verbose-mode --with-libcanberra"; 
 
diff --git a/pkgs/desktops/gnome-3/3.20/core/totem/default.nix b/pkgs/desktops/gnome-3/3.20/core/totem/default.nix
index bce3bd0ceba3..194b4aca4383 100644
--- a/pkgs/desktops/gnome-3/3.20/core/totem/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/totem/default.nix
@@ -1,8 +1,8 @@
 { stdenv, intltool, fetchurl, gst_all_1
-, clutter_gtk, clutter-gst, pygobject3, shared_mime_info
-, pkgconfig, gtk3, glib
-, bash, makeWrapper, itstool, libxml2, dbus_glib
-, gnome3, librsvg, gdk_pixbuf, file }:
+, clutter_gtk, clutter-gst, python3Packages, shared_mime_info
+, pkgconfig, gtk3, glib, gobjectIntrospection
+, bash, wrapGAppsHook, itstool, libxml2, dbus_glib
+, gnome3, librsvg, gdk_pixbuf, file, tracker, nautilus }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
@@ -11,28 +11,27 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
 
   buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 gnome3.grilo
                   clutter_gtk clutter-gst gnome3.totem-pl-parser gnome3.grilo-plugins
                   gst_all_1.gstreamer gst_all_1.gst-plugins-base
-                  gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad
-                  gnome3.libpeas pygobject3 shared_mime_info dbus_glib
+                  gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-ugly gst_all_1.gst-libav
+                  gnome3.libpeas shared_mime_info dbus_glib
                   gdk_pixbuf gnome3.defaultIconTheme librsvg gnome3.gnome_desktop
-                  gnome3.gsettings_desktop_schemas makeWrapper file ];
+                  gnome3.gsettings_desktop_schemas wrapGAppsHook file tracker nautilus ];
 
-  preFixup = ''
-    wrapProgram "$out/bin/totem" \
-      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \
-      --prefix GRL_PLUGIN_PATH : "${gnome3.grilo-plugins}/lib/grilo-0.2" \
-      --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  patches = [ ./x86.patch ];
 
-  '';
+  propagatedBuildInputs = [ gobjectIntrospection python3Packages.pylint python3Packages.pygobject ];
 
-  patches = [ ./x86.patch ];
+  configureFlags = [ "--with-nautilusdir=$(out)/lib/nautilus/extensions-3.0" ];
+
+  GI_TYPELIB_PATH = "$out/lib/girepository-1.0";
+
+  wrapPrefixVariables = [ "PYTHONPATH" ];
 
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Apps/Videos;
diff --git a/pkgs/desktops/gnome-3/3.20/default.nix b/pkgs/desktops/gnome-3/3.20/default.nix
index 4e00db3962e2..fe122d75e975 100644
--- a/pkgs/desktops/gnome-3/3.20/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/default.nix
@@ -385,6 +385,8 @@ let
 
   gpaste = callPackage ./misc/gpaste { };
 
+  pidgin-im-gnome-shell-extension = callPackage ./misc/pidgin { };
+  
   gtkhtml = callPackage ./misc/gtkhtml { };
 
   pomodoro = callPackage ./misc/pomodoro { };
diff --git a/pkgs/desktops/gnome-3/3.20/misc/geary/disable_valadoc.patch b/pkgs/desktops/gnome-3/3.20/misc/geary/disable_valadoc.patch
deleted file mode 100644
index e65c0dea7472..000000000000
--- a/pkgs/desktops/gnome-3/3.20/misc/geary/disable_valadoc.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- src/CMakeLists.txt.orig	2014-05-23 14:41:20.809160364 +0200
-+++ src/CMakeLists.txt	2014-05-23 14:41:29.240261581 +0200
-@@ -696,21 +696,6 @@
-         ${CMAKE_COMMAND} -E copy geary-mailer ${CMAKE_BINARY_DIR}/
- )
- 
--# Valadoc
--#################################################
--foreach(pkg ${ENGINE_PACKAGES})
--    list(APPEND valadoc_pkg_opts "--pkg=${pkg}")
--endforeach(pkg ${ENGINE_PACKAGES})
--
--include(FindValadoc)
--add_custom_target(
--    valadoc
--    WORKING_DIRECTORY
--        ${CMAKE_SOURCE_DIR}/src
--    COMMAND
--        ${VALADOC_EXECUTABLE} --force --no-protected -b ${CMAKE_CURRENT_SOURCE_DIR} -o ${CMAKE_SOURCE_DIR}/valadoc --package-name=geary --package-version=${VERSION} ${ENGINE_SRC} ${valadoc_pkg_opts} --vapidir=${CMAKE_SOURCE_DIR}/bindings/vapi
--)
--
- ## Make clean: remove copied files
- ##################################################
- set_property(
diff --git a/pkgs/desktops/gnome-3/3.20/misc/gnome-tweak-tool/default.nix b/pkgs/desktops/gnome-3/3.20/misc/gnome-tweak-tool/default.nix
index 986d4058af92..e6c4b8c82027 100644
--- a/pkgs/desktops/gnome-3/3.20/misc/gnome-tweak-tool/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/misc/gnome-tweak-tool/default.nix
@@ -1,9 +1,11 @@
-{ stdenv, intltool, fetchurl, python, pygobject3, atk
+{ stdenv, intltool, fetchurl, atk
 , pkgconfig, gtk3, glib, libsoup
-, bash, makeWrapper, itstool, libxml2, python3Packages
-, gnome3, librsvg, gdk_pixbuf, file, libnotify }:
+, bash, makeWrapper, itstool, libxml2, python2Packages
+, gnome3, librsvg, gdk_pixbuf, file, libnotify, gobjectIntrospection, wrapGAppsHook }:
 
-stdenv.mkDerivation rec {
+let
+  python = python2Packages.python.withPackages ( ps: with ps; [ pygobject3 ] );
+in stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
   doCheck = true;
@@ -15,17 +17,15 @@ stdenv.mkDerivation rec {
   buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2
                   gnome3.gsettings_desktop_schemas makeWrapper file
                   gdk_pixbuf gnome3.defaultIconTheme librsvg
-                  python pygobject3 libnotify gnome3.gnome_shell
+                  libnotify gnome3.gnome_shell
                   libsoup gnome3.gnome_settings_daemon gnome3.nautilus
-                  gnome3.gnome_desktop ];
-
-  preFixup = ''
-    wrapProgram "$out/bin/gnome-tweak-tool" \
-      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --suffix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
-      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-      --prefix PYTHONPATH : "$PYTHONPATH:$(toPythonPath $out)"
-  '';
+                  gnome3.gnome_desktop wrapGAppsHook ];
+
+  propagatedBuildInputs = [ python gobjectIntrospection ];
+
+  PYTHONPATH = "$out/${python.python.sitePackages}";
+
+  wrapPrefixVariables = [ "PYTHONPATH" ];
 
   patches = [
     ./find_gsettings.patch
diff --git a/pkgs/desktops/gnome-3/3.20/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/3.20/misc/gpaste/default.nix
index 2dc93b6843f9..5b9f16384008 100644
--- a/pkgs/desktops/gnome-3/3.20/misc/gpaste/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/misc/gpaste/default.nix
@@ -2,12 +2,12 @@
 , pango, gtk3, gnome3, dbus, clutter, appstream-glib, makeWrapper, systemd, gobjectIntrospection }:
 
 stdenv.mkDerivation rec {
-  version = "${gnome3.version}";
+  version = "${gnome3.version}.4";
   name = "gpaste-${version}";
 
   src = fetchurl {
     url = "https://github.com/Keruspe/GPaste/archive/v${version}.tar.gz";
-    sha256 = "129bz9ph398n1n43qggr8xfrd7y30nm8gdgn1hq0xq7a4v1fb2dj";
+    sha256 = "08h1igdgapz7px12r7mrfcxmz68g9ijg73w69j75spg0yc6f4xax";
   };
 
   buildInputs = [ intltool autoreconfHook pkgconfig vala glib
diff --git a/pkgs/desktops/gnome-3/3.20/misc/pidgin/default.nix b/pkgs/desktops/gnome-3/3.20/misc/pidgin/default.nix
new file mode 100644
index 000000000000..64f7920d9afc
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.20/misc/pidgin/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, glib }:
+
+stdenv.mkDerivation rec {
+  version = "1.0";
+  basename = "pidgin-im-gnome-shell-extension";
+  name = "${basename}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "muffinmad";
+    repo = "${basename}";
+    rev = "v${version}";
+    sha256 = "0vj4w9qqx9gads24w3f6v6mfh5va28bp8rc4w7lz0vhp7njmy1yy";
+  };
+
+  buildInputs = [ glib ];
+
+  configurePhase = "";
+  buildPhase = "";
+  installPhase = ''
+    share_dir="$prefix/share"
+    extensions_dir="$share_dir/gnome-shell/extensions/pidgin@muffinmad"
+    mkdir -p "$extensions_dir"
+    mv *.js metadata.json dbus.xml gnome-shell-extension-pidgin.pot "$extensions_dir"
+
+    schemas_dir="$share_dir/gsettings-schemas/${name}/glib-2.0/schemas"
+    mkdir -p "$schemas_dir"
+    mv schemas/* "$schemas_dir" # fix Emacs syntax highlighting: */
+    ${glib.dev}/bin/glib-compile-schemas "$schemas_dir"
+
+    locale_dir="$share_dir/locale"
+    mkdir -p "$locale_dir"
+    mv locale/* $locale_dir # fix Emacs syntax highlighting: */
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/muffinmad/pidgin-im-gnome-shell-extension;
+    description = "Make Pidgin IM conversations appear in the Gnome Shell message tray";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ DamienCassou ];
+  };
+}