about summary refs log tree commit diff
path: root/pkgs/desktops/gnome-3
diff options
context:
space:
mode:
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/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gnome-packagekit/default.nix26
-rw-r--r--pkgs/desktops/gnome-3/3.18/misc/gnome-software/default.nix31
-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/evolution/src.nix9
-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/gnome-photos/src.nix6
-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/dconf-editor/src.nix6
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/eog/src.nix6
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/epiphany/libxml_depend.patch10
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/epiphany/src.nix6
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/evince/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/evince/src.nix6
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/evolution-data-server/src.nix9
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gdm/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-bluetooth/src.nix10
-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-online-accounts/src.nix9
-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-screenshot/src.nix6
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-session/src.nix9
-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-shell/src.nix6
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-software/default.nix27
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-software/src.nix10
-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/gtksourceview/src.nix6
-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/mutter/src.nix6
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/totem/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/3.20/default.nix14
-rw-r--r--pkgs/desktops/gnome-3/3.20/games/gnome-mines/src.nix6
-rw-r--r--pkgs/desktops/gnome-3/3.20/games/gnome-sudoku/src.nix9
-rw-r--r--pkgs/desktops/gnome-3/3.20/misc/geary/disable_valadoc.patch24
-rw-r--r--pkgs/desktops/gnome-3/3.20/misc/gitg/src.nix6
-rw-r--r--pkgs/desktops/gnome-3/3.20/misc/gnome-packagekit/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.20/misc/gnome-packagekit/src.nix10
-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/gspell/src.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/misc/pidgin/default.nix42
66 files changed, 357 insertions, 203 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 b17c6a0761c7..22d09c04141d 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/default.nix b/pkgs/desktops/gnome-3/3.18/default.nix
index d0a113ff0a48..78a892ebe3fa 100644
--- a/pkgs/desktops/gnome-3/3.18/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/default.nix
@@ -3,7 +3,7 @@
 let
 
   pkgsFun = overrides:
-    let 
+    let
       self = self_ // overrides;
       self_ = with self; {
 
@@ -35,7 +35,7 @@ let
     gnome-clocks gnome-music gnome-tweak-tool gnome-photos
     nautilus-sendto dconf-editor vinagre gnome-weather gnome-logs
     gnome-maps gnome-characters gnome-calendar accerciser gnome-nettool
-    gnome-getting-started-docs
+    gnome-getting-started-docs gnome-software gnome-packagekit
   ];
 
   gamesPackages = with gnome3; [ swell-foop lightsoff iagno
@@ -79,7 +79,7 @@ let
   dconf = callPackage ./core/dconf { };
   dconf-editor = callPackage ./core/dconf-editor { };
 
-  empathy = callPackage ./core/empathy { 
+  empathy = callPackage ./core/empathy {
     webkitgtk = webkitgtk24x;
     clutter-gst = pkgs.clutter-gst;
   };
@@ -360,13 +360,13 @@ let
 
   california = callPackage ./misc/california { };
 
-  geary = callPackage ./misc/geary { 
+  geary = callPackage ./misc/geary {
     webkitgtk = webkitgtk24x;
   };
 
   gfbgraph = callPackage ./misc/gfbgraph { };
 
-  gitg = callPackage ./misc/gitg { 
+  gitg = callPackage ./misc/gitg {
     webkitgtk = webkitgtk24x;
   };
 
@@ -383,13 +383,17 @@ let
   gpaste = callPackage ./misc/gpaste { };
 
   pidgin-im-gnome-shell-extension = callPackage ./misc/pidgin { };
-  
+
   gtkhtml = callPackage ./misc/gtkhtml { };
 
   pomodoro = callPackage ./misc/pomodoro { };
 
   gnome-video-effects = callPackage ./misc/gnome-video-effects { };
 
+  gnome-software = callPackage ./misc/gnome-software { };
+
+  gnome-packagekit = callPackage ./misc/gnome-packagekit { };
+
     };
   in self; # pkgsFun
 
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-packagekit/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gnome-packagekit/default.nix
new file mode 100644
index 000000000000..99cf939fb507
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-packagekit/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gnome3, libxslt, packagekit
+, fontconfig, libcanberra_gtk3, libnotify, wrapGAppsHook, dbus_glib, dbus_libs }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-packagekit-${version}";
+  version = "3.18.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-packagekit/3.18/${name}.tar.xz";
+    sha256 = "0a7ww807b77yjf6l8s2ycpxx813lyncwaxq227jckphazpq65a50";
+  };
+
+  NIX_CFLAGS_COMPILE = "-I${dbus_glib.dev}/include/dbus-1.0 -I${dbus_libs.dev}/include/dbus-1.0";
+
+  nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ];
+  buildInputs = [ libxslt gnome3.gtk packagekit fontconfig
+                  libcanberra_gtk3 libnotify dbus_glib dbus_libs ];
+
+  meta = with stdenv.lib; {
+    homepage = https://www.freedesktop.org/software/PackageKit/;
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    description = "Tools for installing software on the GNOME desktop using PackageKit";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-software/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gnome-software/default.nix
new file mode 100644
index 000000000000..51efc0446ef9
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-software/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gnome3, wrapGAppsHook, packagekit
+, appstream-glib, libsoup, polkit, attr, acl, libyaml, isocodes }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-software-${version}";
+  version = "3.18.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-software/3.18/${name}.tar.xz";
+    sha256 = "0ywvjmn0cwr4kv2l6ic80ac7js7hpsp3g127cj7h256iaqgsaxnc";
+  };
+
+  nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ];
+  buildInputs = [ gnome3.gtk packagekit appstream-glib libsoup
+                  gnome3.gsettings_desktop_schemas gnome3.gnome_desktop
+                  polkit attr acl libyaml ];
+  propagatedBuildInputs = [ isocodes ];
+
+  postInstall = ''
+    mkdir -p $out/share/xml/
+    ln -s ${isocodes}/share/xml/iso-codes $out/share/xml/iso-codes
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://www.freedesktop.org/software/PackageKit/;
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    description = "GNOME Software lets you install and update applications and system extensions.";
+  };
+}
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/evolution/src.nix b/pkgs/desktops/gnome-3/3.20/apps/evolution/src.nix
index c68ee65cb8b3..9c55a6b60e2e 100644
--- a/pkgs/desktops/gnome-3/3.20/apps/evolution/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/apps/evolution/src.nix
@@ -1,10 +1,11 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
-fetchurl: {
-  name = "evolution-3.20.2";
+fetchurl: rec {
+  major = "3.20";
+  name = "evolution-${major}.4";
 
   src = fetchurl {
-    url = mirror://gnome/sources/evolution/3.20/evolution-3.20.2.tar.xz;
-    sha256 = "66fa6e18c4e6a29c44870d5786e4dbb82507a8254bca9e27e802625081fca630";
+    url = "mirror://gnome/sources/evolution/${major}/${name}.tar.xz";
+    sha256 = "1g1nai6jz0irz94d06vx8gbwbzdp7r53qjxvjfhdqhlhnhy76a9c";
   };
 }
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/gnome-photos/src.nix b/pkgs/desktops/gnome-3/3.20/apps/gnome-photos/src.nix
index 48d0cc385197..c24de8525a87 100644
--- a/pkgs/desktops/gnome-3/3.20/apps/gnome-photos/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/apps/gnome-photos/src.nix
@@ -1,10 +1,10 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
 fetchurl: {
-  name = "gnome-photos-3.20.1";
+  name = "gnome-photos-3.20.2";
 
   src = fetchurl {
-    url = mirror://gnome/sources/gnome-photos/3.20/gnome-photos-3.20.1.tar.xz;
-    sha256 = "7639cc9367aa0f4bbf54aa46edaeedb91fcce85d387e8ffb669470710e247e5a";
+    url = mirror://gnome/sources/gnome-photos/3.20/gnome-photos-3.20.2.tar.xz;
+    sha256 = "ec6b95ad1c4aeeb065a65d2d48335036c0750761c7f6762bafcf874791272b46";
   };
 }
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/dconf-editor/src.nix b/pkgs/desktops/gnome-3/3.20/core/dconf-editor/src.nix
index 5980c0fc6af6..ee04b9cd463f 100644
--- a/pkgs/desktops/gnome-3/3.20/core/dconf-editor/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/dconf-editor/src.nix
@@ -1,10 +1,10 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
 fetchurl: {
-  name = "dconf-editor-3.20.2";
+  name = "dconf-editor-3.20.3";
 
   src = fetchurl {
-    url = mirror://gnome/sources/dconf-editor/3.20/dconf-editor-3.20.2.tar.xz;
-    sha256 = "486dcb60001b934186f3c3591897d986459bf240f35641fbb59ee957c15af2be";
+    url = mirror://gnome/sources/dconf-editor/3.20/dconf-editor-3.20.3.tar.xz;
+    sha256 = "a8721499a277550b28d8dd94dafbea6efeb95fa153020da10603d0d4d628c579";
   };
 }
diff --git a/pkgs/desktops/gnome-3/3.20/core/eog/src.nix b/pkgs/desktops/gnome-3/3.20/core/eog/src.nix
index 90a4a8537fb5..1aaf23319c4d 100644
--- a/pkgs/desktops/gnome-3/3.20/core/eog/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/eog/src.nix
@@ -1,10 +1,10 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
 fetchurl: {
-  name = "eog-3.20.2";
+  name = "eog-3.20.3";
 
   src = fetchurl {
-    url = mirror://gnome/sources/eog/3.20/eog-3.20.2.tar.xz;
-    sha256 = "d7d022af85ea0046e90b02fc94672757300bbbdb422eef2be2afc99fc2cd87e7";
+    url = mirror://gnome/sources/eog/3.20/eog-3.20.3.tar.xz;
+    sha256 = "16308c389deced3acb801dcc180c5e5e18b1db6ba5bd5835b5320cba9b0d2c26";
   };
 }
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/epiphany/src.nix b/pkgs/desktops/gnome-3/3.20/core/epiphany/src.nix
index 1738b14e17b6..457814913d60 100644
--- a/pkgs/desktops/gnome-3/3.20/core/epiphany/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/epiphany/src.nix
@@ -1,10 +1,10 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
 fetchurl: {
-  name = "epiphany-3.20.2";
+  name = "epiphany-3.20.3";
 
   src = fetchurl {
-    url = mirror://gnome/sources/epiphany/3.20/epiphany-3.20.2.tar.xz;
-    sha256 = "d107ea1d621e91b1c5a7b51435fa81684d4cd4dd2c6fd71adf95e9a46fe6237a";
+    url = mirror://gnome/sources/epiphany/3.20/epiphany-3.20.3.tar.xz;
+    sha256 = "4d9de1bdb44c14adf25aa6dc02ea3de60925cff5eb01fe89545e6032c9b424a2";
   };
 }
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/evince/src.nix b/pkgs/desktops/gnome-3/3.20/core/evince/src.nix
index 1f20db4a97e9..6f924bbbc1b7 100644
--- a/pkgs/desktops/gnome-3/3.20/core/evince/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/evince/src.nix
@@ -1,10 +1,10 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
 fetchurl: {
-  name = "evince-3.20.0";
+  name = "evince-3.20.1";
 
   src = fetchurl {
-    url = mirror://gnome/sources/evince/3.20/evince-3.20.0.tar.xz;
-    sha256 = "cf8358a453686c2a7f85d245f83fe918c0ce02eb6532339f3e02e31249a5a280";
+    url = mirror://gnome/sources/evince/3.20/evince-3.20.1.tar.xz;
+    sha256 = "fc7ac23036939c24f02e9fed6dd6e28a85b4b00b60fa4b591b86443251d20055";
   };
 }
diff --git a/pkgs/desktops/gnome-3/3.20/core/evolution-data-server/src.nix b/pkgs/desktops/gnome-3/3.20/core/evolution-data-server/src.nix
index 82ea796c3b04..cdb3dacf7ab5 100644
--- a/pkgs/desktops/gnome-3/3.20/core/evolution-data-server/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/evolution-data-server/src.nix
@@ -1,10 +1,11 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
-fetchurl: {
-  name = "evolution-data-server-3.20.2";
+fetchurl: rec {
+  major = "3.20";
+  name = "evolution-data-server-${major}.4";
 
   src = fetchurl {
-    url = mirror://gnome/sources/evolution-data-server/3.20/evolution-data-server-3.20.2.tar.xz;
-    sha256 = "8cdc74b08f1404f5df4b8cf5ccc4999a3e70a1db9ce472f71b623266941ffad9";
+    url = "mirror://gnome/sources/evolution-data-server/${major}/${name}.tar.xz";
+    sha256 = "03h81dnk34b3xf2065rymr1jd7as4dmpd89hyf380c5np36f6l7j";
   };
 }
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-bluetooth/src.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-bluetooth/src.nix
index 6da79276afc8..474d4722b4ab 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-bluetooth/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-bluetooth/src.nix
@@ -1,12 +1,10 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
-fetchurl: rec {
-  major = "3.18";
-  minor = "3";
-  name = "gnome-bluetooth-${major}.${minor}";
+fetchurl: {
+  name = "gnome-bluetooth-3.20.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-bluetooth/${major}/${name}.tar.xz";
-    sha256 = "1qwc9q7x22sc71zhqv4db78rqzxl6fqfw6d978ydqap54c2bg0g4";
+    url = mirror://gnome/sources/gnome-bluetooth/3.20/gnome-bluetooth-3.20.0.tar.xz;
+    sha256 = "93b3ca16b348a168d044b3f777049b7dba2a9292c4adb2751a771e3bc5e4eb53";
   };
 }
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-online-accounts/src.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-online-accounts/src.nix
index 7680208c27a9..4c263d9d2d68 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-online-accounts/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-online-accounts/src.nix
@@ -1,10 +1,11 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
-fetchurl: {
-  name = "gnome-online-accounts-3.20.1";
+fetchurl: rec {
+  major = "3.20";
+  name = "gnome-online-accounts-${major}.2";
 
   src = fetchurl {
-    url = mirror://gnome/sources/gnome-online-accounts/3.20/gnome-online-accounts-3.20.1.tar.xz;
-    sha256 = "c37aebc1e12f31f5516d33a354181e4d202a07da4f7d3a95b0da8cf0028c0c93";
+    url = "mirror://gnome/sources/gnome-online-accounts/${major}/${name}.tar.xz";
+    sha256 = "1pf1rn1i7dqll9ph6scg2g281njx5pq6z0wyj9493m474nfmsmab";
   };
 }
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-screenshot/src.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-screenshot/src.nix
index af6007fa2338..d6b0e28a0c27 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-screenshot/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-screenshot/src.nix
@@ -1,10 +1,10 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
 fetchurl: {
-  name = "gnome-screenshot-3.18.0";
+  name = "gnome-screenshot-3.20.1";
 
   src = fetchurl {
-    url = mirror://gnome/sources/gnome-screenshot/3.18/gnome-screenshot-3.18.0.tar.xz;
-    sha256 = "eba64dbf4acf0ab8222fec549d0a4f2dd7dbd51c255e7978dedf1f5c06a98841";
+    url = mirror://gnome/sources/gnome-screenshot/3.20/gnome-screenshot-3.20.1.tar.xz;
+    sha256 = "06a89b6887146cdbbeb64adf11bdae21acf22b0422337041c66eedb21ef7e143";
   };
 }
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-session/src.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-session/src.nix
index 28d8496a3540..06c40b6c2cfb 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-session/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-session/src.nix
@@ -1,10 +1,11 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
-fetchurl: {
-  name = "gnome-session-3.20.1";
+fetchurl: rec {
+  major = "3.20";
+  name = "gnome-session-${major}.2";
 
   src = fetchurl {
-    url = mirror://gnome/sources/gnome-session/3.20/gnome-session-3.20.1.tar.xz;
-    sha256 = "2ae9f53dc74f851222fbefbe0dc08db0a78cc76ceeb156f92ebd4d40fd038913";
+    url = "mirror://gnome/sources/gnome-session/${major}/${name}.tar.xz";
+    sha256 = "1npnjm6wirz2v0liv7n23ivp2w0y1q230qcdb681hhzmp7h9fpq2";
   };
 }
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-shell/src.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-shell/src.nix
index 3033cdffa332..df4994cead0b 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-shell/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-shell/src.nix
@@ -1,10 +1,10 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
 fetchurl: {
-  name = "gnome-shell-3.20.2";
+  name = "gnome-shell-3.20.3";
 
   src = fetchurl {
-    url = mirror://gnome/sources/gnome-shell/3.20/gnome-shell-3.20.2.tar.xz;
-    sha256 = "eaff6b177cc5bab16b252c45393a6c9305ad3837a288e738388c7b4d4bae13cd";
+    url = mirror://gnome/sources/gnome-shell/3.20/gnome-shell-3.20.3.tar.xz;
+    sha256 = "b23fd558623bfdc726066be3f47bb5fb8ed9c0ad980a95d6afc6397b6d41171e";
   };
 }
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-software/default.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-software/default.nix
new file mode 100644
index 000000000000..7c258e9cf211
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-software/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gnome3, wrapGAppsHook, packagekit
+, appstream-glib, libsoup, polkit, attr, acl, libyaml, isocodes, gtkspell3
+, json_glib }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ];
+  buildInputs = [ gnome3.gtk packagekit appstream-glib libsoup
+                  gnome3.gsettings_desktop_schemas gnome3.gnome_desktop
+		  gtkspell3 json_glib
+                  polkit attr acl libyaml ];
+  propagatedBuildInputs = [ isocodes ];
+
+  postInstall = ''
+    mkdir -p $out/share/xml/
+    ln -s ${isocodes}/share/xml/iso-codes $out/share/xml/iso-codes
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://www.freedesktop.org/software/PackageKit/;
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    description = "GNOME Software lets you install and update applications and system extensions.";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-software/src.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-software/src.nix
new file mode 100644
index 000000000000..4d377903cc1d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-software/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-software-3.20.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-software/3.20/gnome-software-3.20.0.tar.xz;
+    sha256 = "0w0bp29fm13a235gq8vylihzjfxx20ri46w4w2syaw0cixxihbix";
+  };
+}
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/gtksourceview/src.nix b/pkgs/desktops/gnome-3/3.20/core/gtksourceview/src.nix
index 63de05e88209..4f80104cc3b2 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gtksourceview/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gtksourceview/src.nix
@@ -1,10 +1,10 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
 fetchurl: {
-  name = "gtksourceview-3.20.3";
+  name = "gtksourceview-3.20.4";
 
   src = fetchurl {
-    url = mirror://gnome/sources/gtksourceview/3.20/gtksourceview-3.20.3.tar.xz;
-    sha256 = "53069c6e2645716d5dc3dc875b2fe7aacbe70e6560f8dc01c66597231886a8df";
+    url = mirror://gnome/sources/gtksourceview/3.20/gtksourceview-3.20.4.tar.xz;
+    sha256 = "7a0e6ac95ff3862bd8ef77a40e95a942939e73cb407f2eb67af600d7ce533d01";
   };
 }
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/mutter/src.nix b/pkgs/desktops/gnome-3/3.20/core/mutter/src.nix
index 47acaa6b58e5..89f05f8ed1b2 100644
--- a/pkgs/desktops/gnome-3/3.20/core/mutter/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/mutter/src.nix
@@ -1,10 +1,10 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
 fetchurl: {
-  name = "mutter-3.20.2";
+  name = "mutter-3.20.3";
 
   src = fetchurl {
-    url = mirror://gnome/sources/mutter/3.20/mutter-3.20.2.tar.xz;
-    sha256 = "1e8c46a81e21f382f56729282fcd0bb1c3a2067135f4b0f3651b307bf7a5b454";
+    url = mirror://gnome/sources/mutter/3.20/mutter-3.20.3.tar.xz;
+    sha256 = "142c5271df4bde968c725ed09026173292c07b4dd7ba75f19c4b14fc363af916";
   };
 }
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..6e7b16e77333 100644
--- a/pkgs/desktops/gnome-3/3.20/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/default.nix
@@ -3,7 +3,7 @@
 let
 
   pkgsFun = overrides:
-    let 
+    let
       self = self_ // overrides;
       self_ = with self; {
 
@@ -35,7 +35,7 @@ let
     gnome-clocks gnome-music gnome-tweak-tool gnome-photos
     nautilus-sendto dconf-editor vinagre gnome-weather gnome-logs
     gnome-maps gnome-characters gnome-calendar accerciser gnome-nettool
-    gnome-getting-started-docs
+    gnome-getting-started-docs gnome-packagekit gnome-software
   ];
 
   gamesPackages = with gnome3; [ swell-foop lightsoff iagno
@@ -149,6 +149,8 @@ let
 
   gnome_settings_daemon = callPackage ./core/gnome-settings-daemon { };
 
+  gnome-software = callPackage ./core/gnome-software { };
+
   gnome-system-log = callPackage ./core/gnome-system-log { };
 
   gnome-system-monitor = callPackage ./core/gnome-system-monitor { };
@@ -359,13 +361,13 @@ let
 
   california = callPackage ./misc/california { };
 
-  geary = callPackage ./misc/geary { 
+  geary = callPackage ./misc/geary {
     webkitgtk = webkitgtk24x;
   };
 
   gfbgraph = callPackage ./misc/gfbgraph { };
 
-  gitg = callPackage ./misc/gitg { 
+  gitg = callPackage ./misc/gitg {
     webkitgtk = webkitgtk24x;
   };
 
@@ -385,12 +387,16 @@ let
 
   gpaste = callPackage ./misc/gpaste { };
 
+  pidgin-im-gnome-shell-extension = callPackage ./misc/pidgin { };
+  
   gtkhtml = callPackage ./misc/gtkhtml { };
 
   pomodoro = callPackage ./misc/pomodoro { };
 
   gnome-video-effects = callPackage ./misc/gnome-video-effects { };
 
+  gnome-packagekit = callPackage ./misc/gnome-packagekit { };
+
     };
   in self; # pkgsFun
 
diff --git a/pkgs/desktops/gnome-3/3.20/games/gnome-mines/src.nix b/pkgs/desktops/gnome-3/3.20/games/gnome-mines/src.nix
index 5dbae6476613..9894d5011225 100644
--- a/pkgs/desktops/gnome-3/3.20/games/gnome-mines/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/games/gnome-mines/src.nix
@@ -1,10 +1,10 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
 fetchurl: {
-  name = "gnome-mines-3.20.0";
+  name = "gnome-mines-3.20.1";
 
   src = fetchurl {
-    url = mirror://gnome/sources/gnome-mines/3.20/gnome-mines-3.20.0.tar.xz;
-    sha256 = "7775c8d19cda9663a3e6b69d921c9de869278aeff93e249099af2d3c19b970a6";
+    url = mirror://gnome/sources/gnome-mines/3.20/gnome-mines-3.20.1.tar.xz;
+    sha256 = "5815e886d92817d4127b9e94bf63cb91e2bf371029d18efdf9f195e2400e2b3b";
   };
 }
diff --git a/pkgs/desktops/gnome-3/3.20/games/gnome-sudoku/src.nix b/pkgs/desktops/gnome-3/3.20/games/gnome-sudoku/src.nix
index 2a83f89bb9b8..8cc9731e3708 100644
--- a/pkgs/desktops/gnome-3/3.20/games/gnome-sudoku/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/games/gnome-sudoku/src.nix
@@ -1,10 +1,11 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
-fetchurl: {
-  name = "gnome-sudoku-3.20.2";
+fetchurl: rec {
+  major = "3.20";
+  name = "gnome-sudoku-${major}.4";
 
   src = fetchurl {
-    url = mirror://gnome/sources/gnome-sudoku/3.20/gnome-sudoku-3.20.2.tar.xz;
-    sha256 = "9c7e737686e88c20e83ca366bfc0a20194b7fe4af7c74ab752d98f0af1df3553";
+    url = "mirror://gnome/sources/gnome-sudoku/${major}/${name}.tar.xz";
+    sha256 = "1hw6r0yfg60ynp4gxnqm6zrsklzn0d6lb88vybdbifzrlaww8xwh";
   };
 }
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/gitg/src.nix b/pkgs/desktops/gnome-3/3.20/misc/gitg/src.nix
index ad05a219b253..805380c9d603 100644
--- a/pkgs/desktops/gnome-3/3.20/misc/gitg/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/misc/gitg/src.nix
@@ -1,10 +1,10 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
 fetchurl: {
-  name = "gitg-3.20.0";
+  name = "gitg-3.20.1";
 
   src = fetchurl {
-    url = mirror://gnome/sources/gitg/3.20/gitg-3.20.0.tar.xz;
-    sha256 = "1f09f61208349d003f228e51dc9709bd3426960f5585c0e38197bd02b51f3346";
+    url = mirror://gnome/sources/gitg/3.20/gitg-3.20.1.tar.xz;
+    sha256 = "104420bcdd765fa2196a7b146ba1e0fa82a5686ed5ba9af40e31e88e601aa585";
   };
 }
diff --git a/pkgs/desktops/gnome-3/3.20/misc/gnome-packagekit/default.nix b/pkgs/desktops/gnome-3/3.20/misc/gnome-packagekit/default.nix
new file mode 100644
index 000000000000..ee3dd60e59ad
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.20/misc/gnome-packagekit/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gnome3, libxslt, packagekit
+, fontconfig, libcanberra_gtk3, libnotify, wrapGAppsHook, dbus_glib, dbus_libs }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  NIX_CFLAGS_COMPILE = "-I${dbus_glib.dev}/include/dbus-1.0 -I${dbus_libs.dev}/include/dbus-1.0";
+
+  nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ];
+  buildInputs = [ libxslt gnome3.gtk packagekit fontconfig
+                  libcanberra_gtk3 libnotify dbus_glib dbus_libs ];
+
+  meta = with stdenv.lib; {
+    homepage = https://www.freedesktop.org/software/PackageKit/;
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    description = "Tools for installing software on the GNOME desktop using PackageKit";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.20/misc/gnome-packagekit/src.nix b/pkgs/desktops/gnome-3/3.20/misc/gnome-packagekit/src.nix
new file mode 100644
index 000000000000..71de360f24f6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.20/misc/gnome-packagekit/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "gnome-packagekit-3.20.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-packagekit/3.20/gnome-packagekit-3.20.0.tar.xz;
+    sha256 = "0wf5r0qrdlalbr73fpfaapq61vlya3nwygsv4wm2bxaf56v5sjmq";
+  };
+}
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/gspell/src.nix b/pkgs/desktops/gnome-3/3.20/misc/gspell/src.nix
index 3758936d175b..248e39151524 100644
--- a/pkgs/desktops/gnome-3/3.20/misc/gspell/src.nix
+++ b/pkgs/desktops/gnome-3/3.20/misc/gspell/src.nix
@@ -1,10 +1,10 @@
 fetchurl: rec {
   major = "1.0";
-  minor = "0";
+  minor = "3";
   name = "gspell-${major}.${minor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gspell/${major}/${name}.tar.xz";
-    sha256 = "1nkpy005qyrfdklrjnvx5xksd3dv27fmn48wi12q8c8whxy2al3a";
+    sha256 = "1m8v4rqaxjsblccc3nnirkbkzgqm90vfpzp3x08lkqriqvk0anfr";
   };
 }
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..e3f6bca10a4d
--- /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.1";
+  basename = "pidgin-im-gnome-shell-extension";
+  name = "${basename}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "muffinmad";
+    repo = "${basename}";
+    rev = "v${version}";
+    sha256 = "1567s2sfqig4jw0nrn134f5vkx0yq31q044grv3xk4vpl1f3z2lr";
+  };
+
+  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 ];
+  };
+}