about summary refs log tree commit diff
path: root/nixpkgs/pkgs/desktops
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/desktops')
-rw-r--r--nixpkgs/pkgs/desktops/deepin/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/efl.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome-2/platform/libglade/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/evolution/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix20
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/folks/default.nix52
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gcr/default.nix49
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/geocode-glib/default.nix38
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/geocode-glib/installed-tests-path.patch8
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-menus/default.nix23
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-system-log/default.nix35
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/grilo/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gsound/default.nix31
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/libcroco/default.nix46
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/libgdata/default.nix40
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/libgee/default.nix38
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/libgepub/default.nix34
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix30
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/libgweather/default.nix45
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/libgxps/default.nix53
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/libpeas/default.nix34
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/libzapojit/default.nix32
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/rest/default.nix32
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix26
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/totem/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/tracker-miners/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/tracker/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/vte/2.90.nix41
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/vte/default.nix51
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/vte/ng.nix18
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/default.nix75
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/devtools/anjuta/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/devtools/gdl/default.nix26
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix91
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch44
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/geary/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/gexiv2/default.nix37
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/gfbgraph/default.nix38
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/gitg/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix200
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/fix-paths.patch30
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix18
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/default.nix96
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/fix-dbus-service-dir.patch11
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix45
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/libmediaart/default.nix32
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/nautilus-python/default.nix62
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/back/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/gui/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/atril/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/caja/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/engrampa/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/eom/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/libmateweather/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/marco/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-applets/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-calc/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-media/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-menus/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-panel/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-polkit/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-user-guide/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mozo/default.nix23
-rw-r--r--nixpkgs/pkgs/desktops/mate/pluma/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/python-caja/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/pantheon-terminal/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix4
-rw-r--r--nixpkgs/pkgs/desktops/rox/rox-filer/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix2
-rw-r--r--nixpkgs/pkgs/desktops/xfce4-13/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce4-13/xfce4-panel/default.nix4
98 files changed, 681 insertions, 1218 deletions
diff --git a/nixpkgs/pkgs/desktops/deepin/default.nix b/nixpkgs/pkgs/desktops/deepin/default.nix
index 62a67c11492b..4fe787bc5d4b 100644
--- a/nixpkgs/pkgs/desktops/deepin/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/default.nix
@@ -23,7 +23,7 @@ let
     deepin-shortcut-viewer = callPackage ./deepin-shortcut-viewer { };
     deepin-sound-theme = callPackage ./deepin-sound-theme { };
     deepin-terminal = callPackage ./deepin-terminal {
-      inherit (pkgs.gnome3) libgee vte;
+      inherit (pkgs.gnome3) libgee;
       wnck = pkgs.libwnck3;
     };
     deepin-wallpapers = callPackage ./deepin-wallpapers { };
diff --git a/nixpkgs/pkgs/desktops/enlightenment/efl.nix b/nixpkgs/pkgs/desktops/enlightenment/efl.nix
index 93d80d763524..ea4e6cd1f1c9 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/efl.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/efl.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ openssl zlib lz4 freetype fontconfig SDL libGL mesa_noglu
     giflib libpng libtiff glib gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
-    gst_all_1.gst-libav libpulseaudio libsndfile xorg.libXcursor xorg.printproto
+    gst_all_1.gst-libav libpulseaudio libsndfile xorg.libXcursor xorg.xorgproto
     xorg.libX11 udev systemd ];
 
   propagatedBuildInputs = [ libxkbcommon python27Packages.dbus-python dbus libjpeg xorg.libXcomposite
diff --git a/nixpkgs/pkgs/desktops/gnome-2/platform/libglade/default.nix b/nixpkgs/pkgs/desktops/gnome-2/platform/libglade/default.nix
index 956fec1ddf15..1f4af86ffeb6 100644
--- a/nixpkgs/pkgs/desktops/gnome-2/platform/libglade/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-2/platform/libglade/default.nix
@@ -13,5 +13,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ gtk python gettext ];
 
+  NIX_LDFLAGS = "-lgmodule-2.0";
+
   propagatedBuildInputs = [ libxml2 ];
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/evolution/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/evolution/default.nix
index 3f1dad87548e..dc598267c4b4 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/evolution/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/evolution/default.nix
@@ -5,13 +5,13 @@
 , libcanberra-gtk3, bogofilter, gst_all_1, procps, p11-kit, openldap }:
 
 let
-  version = "3.30.3";
+  version = "3.30.4";
 in stdenv.mkDerivation rec {
   name = "evolution-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1v0bqqwv34j8qamby7dwgnha50fpjs8mhlq0h6c35jxsqb2f3k66";
+    sha256 = "10dy08xpizvvj7r8xgs3lr6migm3ipr199yryqz7wgkycq6nf53b";
   };
 
   propagatedUserEnvPkgs = [ gnome3.evolution-data-server ];
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
index 7db869dc3b47..d2792304016f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, meson, ninja, gettext, fetchurl, evince, gjs
+{ stdenv, meson, ninja, gettext, fetchurl, fetchpatch, evince, gjs
 , pkgconfig, gtk3, glib, tracker, tracker-miners
 , itstool, libxslt, webkitgtk, libgdata
 , gnome-desktop, libzapojit, libgepub
@@ -31,6 +31,14 @@ stdenv.mkDerivation rec {
     gnome-desktop libzapojit libgepub
   ];
 
+  patches = [
+    # fix RPATH to libgd
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-documents/commit/d18a92e0a940073ac766f609937539e4fc6cdbb7.patch";
+      sha256 = "0s3mk8vrl1gzk93yvgqbnz44i27qw1d9yvvmnck3fv23phrxkzk9";
+    })
+  ];
+
   postPatch = ''
     chmod +x meson_post_install.py # patchShebangs requires executable file
     patchShebangs meson_post_install.py
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix
index 7b88204c5eaf..1f902dc9c80a 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix
@@ -1,16 +1,22 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gobject-introspection, wrapGAppsHook, gjs, glib, gtk3, gdk_pixbuf, gst_all_1, gnome3 }:
+{ stdenv, fetchurl, fetchpatch, pkgconfig, intltool, gobject-introspection, wrapGAppsHook, gjs, glib, gtk3, gdk_pixbuf, gst_all_1, gnome3 }:
 
-let
+stdenv.mkDerivation rec {
   pname = "gnome-sound-recorder";
-  version = "3.28.1";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
+  version = "3.28.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0y0srj1hvr1waa35p6dj1r1mlgcsscc0i99jni50ijp4zb36fjqy";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1k63xr3d16qbzi88md913ndaf2mzwmhmi6hipj0123sm7nsz1p94";
   };
 
+  patches = [
+    # Fix crash when trying to play recordings
+    (fetchpatch {
+      url = https://gitlab.gnome.org/GNOME/gnome-sound-recorder/commit/2b311ef67909bc20d0e87f334fe37bf5c4e9f29f.patch;
+      sha256 = "0hqmk846bxma0p66cqp94zd02zc1if836ywjq3sv5dsfwnz7jv3f";
+    })
+  ];
+
   nativeBuildInputs = [ pkgconfig intltool gobject-introspection wrapGAppsHook ];
   buildInputs = [ gjs glib gtk3 gdk_pixbuf ] ++ (with gst_all_1; [ gstreamer.dev gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad ]);
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix
index 344fb4a5738e..9ef2b57e6d14 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, vala, meson, ninja
 , pkgconfig, gtk3, glib, gobject-introspection
 , wrapGAppsHook, itstool, gnupg, libsoup
-, gnome3, gpgme, python3, openldap
+, gnome3, gpgme, python3, openldap, gcr
 , libsecret, avahi, p11-kit, openssh }:
 
 stdenv.mkDerivation rec {
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     python3 gobject-introspection
   ];
   buildInputs = [
-    gtk3 glib gnome3.gcr
+    gtk3 glib gcr
     gnome3.gsettings-desktop-schemas gnupg
     gnome3.defaultIconTheme gpgme
     libsecret avahi libsoup p11-kit
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix
index 679974f28f98..5b6281869cc5 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix
@@ -25,6 +25,15 @@ in stdenv.mkDerivation rec {
     patchShebangs meson_post_install.py
   '';
 
+  preFixup = ''
+    gappsWrapperArgs+=(
+      # Thumbnailers
+      --prefix XDG_DATA_DIRS : "${gdk_pixbuf}/share"
+      --prefix XDG_DATA_DIRS : "${librsvg}/share"
+      --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
+    )
+  '';
+
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = pname;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
index c9c8acfecb3b..d244dc08ebee 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
@@ -1,17 +1,17 @@
 { fetchurl, stdenv, substituteAll, pkgconfig, gnome3, python3, gobject-introspection
-, intltool, libsoup, libxml2, libsecret, icu, sqlite, tzdata, libcanberra-gtk3
+, intltool, libsoup, libxml2, libsecret, icu, sqlite, tzdata, libcanberra-gtk3, gcr
 , p11-kit, db, nspr, nss, libical, gperf, wrapGAppsHook, glib-networking, pcre
 , vala, cmake, ninja, kerberos, openldap, webkitgtk, libaccounts-glib, json-glib }:
 
 stdenv.mkDerivation rec {
   name = "evolution-data-server-${version}";
-  version = "3.30.3";
+  version = "3.30.4";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1q1wpsc3p6b1cacwgkgqbni7rdx3skvb2fm6fyjs2wjgq6zi5753";
+    sha256 = "1j8lwl04zz59sg7k3hpkzp829z8xyd1isz8xavm9vzxfvw5w776y";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/folks/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/folks/default.nix
deleted file mode 100644
index 2eb33cde975f..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/folks/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ fetchurl, stdenv, pkgconfig, glib, gnome3, nspr, intltool, gobject-introspection
-, vala, sqlite, libxml2, dbus-glib, libsoup, nss, dbus
-, telepathy-glib, evolution-data-server, libsecret, db }:
-
-# TODO: enable more folks backends
-
-let
-  version = "0.11.4";
-in stdenv.mkDerivation rec {
-  name = "folks-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/folks/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57";
-  };
-
-  propagatedBuildInputs = [ glib gnome3.libgee sqlite ];
-  # dbus_daemon needed for tests
-  buildInputs = [
-    dbus-glib telepathy-glib evolution-data-server dbus
-    libsecret libxml2 libsoup nspr nss db
-  ];
-  nativeBuildInputs = [ pkgconfig intltool vala gobject-introspection ];
-
-  configureFlags = [ "--disable-fatal-warnings" ];
-
-  NIX_CFLAGS_COMPILE = ["-I${nss.dev}/include/nss"
-                        "-I${dbus-glib.dev}/include/dbus-1.0" "-I${dbus.dev}/include/dbus-1.0"];
-
-  enableParallelBuilding = true;
-
-  postBuild = "rm -rf $out/share/gtk-doc";
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "folks";
-      attrPath = "gnome3.folks";
-      versionPolicy = "none";
-    };
-  };
-
-  meta = {
-    description = "Folks";
-
-    homepage = https://wiki.gnome.org/Projects/Folks;
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-
-    maintainers = gnome3.maintainers;
-    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;  # arbitrary choice
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gcr/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gcr/default.nix
deleted file mode 100644
index 2cfdb518dfab..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gcr/default.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gnupg, p11-kit, glib
-, libgcrypt, libtasn1, dbus-glib, gtk, pango, gdk_pixbuf, atk
-, gobject-introspection, makeWrapper, libxslt, vala, gnome3
-, python2 }:
-
-stdenv.mkDerivation rec {
-  name = "gcr-${version}";
-  version = "3.28.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gcr/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "02xgky22xgvhgd525khqh64l5i21ca839fj9jzaqdi3yvb8pbq8m";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "gcr"; attrPath = "gnome3.gcr"; };
-  };
-
-  postPatch = ''
-    patchShebangs .
-  '';
-
-  outputs = [ "out" "dev" ];
-
-  nativeBuildInputs = [ pkgconfig intltool gobject-introspection libxslt makeWrapper vala ];
-
-  buildInputs = let
-    gpg = gnupg.override { guiSupport = false; }; # prevent build cycle with pinentry_gnome
-  in [
-    gpg libgcrypt libtasn1 dbus-glib pango gdk_pixbuf atk
-  ];
-
-  propagatedBuildInputs = [ glib gtk p11-kit ];
-
-  checkInputs = [ python2 ];
-  doCheck = false; # fails 21 out of 603 tests, needs dbus daemon
-
-  #enableParallelBuilding = true; issues on hydra
-
-  preFixup = ''
-    wrapProgram "$out/bin/gcr-viewer" \
-      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
-  '';
-
-  meta = with stdenv.lib; {
-    platforms = platforms.linux;
-    maintainers = gnome3.maintainers;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/geocode-glib/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/geocode-glib/default.nix
deleted file mode 100644
index ce5f46534c7b..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/geocode-glib/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ fetchurl, stdenv, meson, ninja, pkgconfig, gettext, gtk-doc, docbook_xsl, gobject-introspection, gnome3, libsoup, json-glib }:
-
-stdenv.mkDerivation rec {
-  name = "geocode-glib-${version}";
-  version = "3.26.0";
-
-  outputs = [ "out" "dev" "installedTests" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/geocode-glib/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1vmydxs5xizcmaxpkfrq75xpj6pqrpdjizxyb30m00h54yqqch7a";
-  };
-
-  nativeBuildInputs = with gnome3; [ meson ninja pkgconfig gettext gtk-doc docbook_xsl gobject-introspection ];
-  buildInputs = with gnome3; [ glib libsoup json-glib ];
-
-  patches = [
-    ./installed-tests-path.patch
-  ];
-
-  postPatch = ''
-    substituteInPlace geocode-glib/tests/meson.build --subst-var-by "installedTests" "$installedTests"
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "geocode-glib";
-      attrPath = "gnome3.geocode-glib";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "A convenience library for the geocoding and reverse geocoding using Nominatim service";
-    license = licenses.lgpl2Plus;
-    maintainers = gnome3.maintainers;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/geocode-glib/installed-tests-path.patch b/nixpkgs/pkgs/desktops/gnome-3/core/geocode-glib/installed-tests-path.patch
deleted file mode 100644
index 499c68008088..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/geocode-glib/installed-tests-path.patch
+++ /dev/null
@@ -1,8 +0,0 @@
---- a/geocode-glib/tests/meson.build
-+++ b/geocode-glib/tests/meson.build
-@@ -1,4 +1,4 @@
--install_dir = get_option('libexecdir') + '/installed-tests/geocode-glib'
-+install_dir = '@installedTests@/libexec/installed-tests/geocode-glib'
- 
- e = executable('geo-uri',
-                'geo-uri.c',
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
index 1e3e98cba732..a72efc61e2fe 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
@@ -23,15 +23,19 @@ stdenv.mkDerivation rec {
   ];
 
   configureFlags = [
-    "--with-pkcs11-config=$$out/etc/pkcs11/" # installation directories
-    "--with-pkcs11-modules=$$out/lib/pkcs11/"
+    "--with-pkcs11-config=${placeholder ''out''}/etc/pkcs11/" # installation directories
+    "--with-pkcs11-modules=${placeholder ''out''}/lib/pkcs11/"
   ];
 
   postPatch = ''
     patchShebangs build
   '';
 
-  doCheck = !stdenv.isi686; # https://github.com/NixOS/nixpkgs/issues/51121
+  # Tends to fail non-deterministically.
+  # - https://github.com/NixOS/nixpkgs/issues/55293
+  # - https://github.com/NixOS/nixpkgs/issues/51121
+  doCheck = false;
+
   # In 3.20.1, tests do not support Python 3
   checkInputs = [ dbus python2 ];
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-menus/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-menus/default.nix
deleted file mode 100644
index 9d49eb5e007c..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-menus/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl, intltool, pkgconfig, glib, gobject-introspection }:
-
-stdenv.mkDerivation rec {
-  name = "gnome-menus-${version}";
-  version = "3.10.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-menus/3.10/${name}.tar.xz";
-    sha256 = "0wcacs1vk3pld8wvrwq7fdrm11i56nrajkrp6j1da6jc4yx0m5a6";
-  };
-
-  makeFlags = "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/ INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0";
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool glib gobject-introspection ];
-
-  meta = {
-    homepage = https://www.gnome.org;
-    description = "Gnome menu specification";
-
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
index 677117b6b780..4ceb0335c183 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
@@ -6,13 +6,13 @@
 
 let
   pname = "gnome-online-accounts";
-  version = "3.30.0";
+  version = "3.30.1";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1hyg9g7l4ypnirx2j7ms2vr8711x90aybpq3s3wa20ma8a4xin97";
+    sha256 = "0havx26cfy0ln17jzmzbrrx35afknv2s9mdy34j0p7wmbqr8m5ky";
   };
 
   outputs = [ "out" "man" "dev" "devdoc" ];
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
index 4d708de43046..c76ba218c9ac 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnome-settings-daemon-${version}";
-  version = "3.30.1.2";
+  version = "3.30.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-settings-daemon/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "079dh609rvpwfyzg4m898q8km9g7x04hg18rwwb1izj1dr7zdp2w";
+    sha256 = "0c663csa3gnsr6wm0xfll6aani45snkdj7zjwjfzcwfh8w4a3z12";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
index ff4263f74e3b..ec6d1af015a5 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, meson, ninja, gettext, pkgconfig, spidermonkey_52, glib
-, gnome3, substituteAll }:
+, gnome3, gnome-menus, substituteAll }:
 
 stdenv.mkDerivation rec {
   name = "gnome-shell-extensions-${version}";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   patches = [
     (substituteAll {
       src = ./fix_gmenu.patch;
-      gmenu_path = "${gnome3.gnome-menus}/lib/girepository-1.0";
+      gmenu_path = "${gnome-menus}/lib/girepository-1.0";
     })
   ];
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
index c1d5a5a916b7..76e5bd13522e 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -2,8 +2,8 @@
 , python3Packages, libsoup, polkit, clutter, networkmanager, docbook_xsl , docbook_xsl_ns, at-spi2-core
 , libstartup_notification, telepathy-glib, telepathy-logger, libXtst, unzip, glibcLocales, shared-mime-info
 , libgweather, libcanberra-gtk3, librsvg, geoclue2, perl, docbook_xml_dtd_42, desktop-file-utils
-, libpulseaudio, libical, gobject-introspection, gstreamer, wrapGAppsHook, libxslt
-, accountsservice, gdk_pixbuf, gdm, upower, ibus, networkmanagerapplet
+, libpulseaudio, libical, gobject-introspection, gstreamer, wrapGAppsHook, libxslt, gcr
+, accountsservice, gdk_pixbuf, gdm, upower, ibus, networkmanagerapplet, libgnomekbd
 , sassc, systemd, gst_all_1 }:
 
 # http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup
@@ -56,8 +56,7 @@ in stdenv.mkDerivation rec {
     })
     (substituteAll {
       src = ./fix-paths.patch;
-      inherit (gnome3) libgnomekbd;
-      inherit unzip;
+      inherit libgnomekbd unzip;
     })
   ];
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-system-log/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-system-log/default.nix
deleted file mode 100644
index f31fbc3d3f4f..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-system-log/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv, intltool, fetchurl, pkgconfig
-, gtk3, glib, wrapGAppsHook
-, itstool, gnome3, libxml2 }:
-
-let
-  pname = "gnome-system-log";
-  version = "3.9.90";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "9eeb51982d347aa7b33703031e2c1d8084201374665425cd62199649b29a5411";
-  };
-
-  doCheck = true;
-
-  nativeBuildInputs = [ pkgconfig intltool itstool wrapGAppsHook libxml2 ];
-  buildInputs = [ gtk3 glib gnome3.gsettings-desktop-schemas gnome3.defaultIconTheme ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-      versionPolicy = "none";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "Graphical, menu-driven viewer that you can use to view and monitor your system logs";
-    maintainers = gnome3.maintainers;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix
index 124db9272363..ab2ead7d3449 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, meson, ninja, pkgconfig, gettext, sqlite
 , gnome3, libxml2, gupnp, gssdp, lua5, liboauth, gupnp-av
-, gmime, json-glib, avahi, tracker, dleyna-server, itstool }:
+, gmime, json-glib, avahi, tracker, dleyna-server, itstool, totem-pl-parser }:
 
 let
   pname = "grilo-plugins";
@@ -17,7 +17,7 @@ in stdenv.mkDerivation rec {
   buildInputs = [
     gnome3.grilo libxml2 gupnp gssdp gnome3.libgdata
     lua5 liboauth gupnp-av sqlite gnome3.gnome-online-accounts
-    gnome3.totem-pl-parser gnome3.rest gmime json-glib
+    totem-pl-parser gnome3.rest gmime json-glib
     avahi gnome3.libmediaart tracker dleyna-server
   ];
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/grilo/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/grilo/default.nix
index acde7a385727..a2bee6ac41ee 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/grilo/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/grilo/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, meson, ninja, pkgconfig, gettext, vala, glib, liboauth, gtk3
 , gtk-doc, docbook_xsl, docbook_xml_dtd_43
-, libxml2, gnome3, gobject-introspection, libsoup }:
+, libxml2, gnome3, gobject-introspection, libsoup, totem-pl-parser }:
 
 let
   pname = "grilo";
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
     meson ninja pkgconfig gettext gobject-introspection vala
     gtk-doc docbook_xsl docbook_xml_dtd_43
   ];
-  buildInputs = [ glib liboauth gtk3 libxml2 libsoup gnome3.totem-pl-parser ];
+  buildInputs = [ glib liboauth gtk3 libxml2 libsoup totem-pl-parser ];
 
   passthru = {
     updateScript = gnome3.updateScript {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gsound/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gsound/default.nix
deleted file mode 100644
index b0384c1ebb09..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gsound/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, libcanberra, gobject-introspection, libtool, gnome3 }:
-
-let
-  pname = "gsound";
-  version = "1.0.2";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "bba8ff30eea815037e53bee727bbd5f0b6a2e74d452a7711b819a7c444e78e53";
-  };
-
-  nativeBuildInputs = [ pkgconfig gobject-introspection libtool gnome3.vala ];
-  buildInputs = [ glib libcanberra ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = https://wiki.gnome.org/Projects/GSound;
-    description = "Small library for playing system sounds";
-    maintainers = gnome3.maintainers;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/libcroco/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/libcroco/default.nix
deleted file mode 100644
index 312231f648f3..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/libcroco/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, glib, fetchpatch, gnome3 }:
-let
-  pname = "libcroco";
-  version = "0.6.12";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0q7qhi7z64i26zabg9dbs5706fa8pmzp1qhpa052id4zdiabbi6x";
-  };
-
-  patches = [
-    (fetchpatch {
-      name = "CVE-2017-7960.patch";
-      url = https://gitlab.gnome.org/GNOME/libcroco/commit/898e3a8c8c0314d2e6b106809a8e3e93cf9d4394.patch;
-      sha256 = "1xjwdqijxf4b7mhdp3kkgnb6c14y0bn3b3gg79kyrm82x696d94l";
-    })
-    (fetchpatch {
-      name = "CVE-2017-7961.patch";
-      url = https://gitlab.gnome.org/GNOME/libcroco/commit/9ad72875e9f08e4c519ef63d44cdbd94aa9504f7.patch;
-      sha256 = "0zakd72ynzjgzskwyvqglqiznsb93j1bkvc1lgyrzgv9rwrbwv9s";
-    })
-  ];
-
-  outputs = [ "out" "dev" ];
-  outputBin = "dev";
-
-  configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic";
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libxml2 glib ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "GNOME CSS2 parsing and manipulation toolkit";
-    homepage = https://gitlab.gnome.org/GNOME/libcroco;
-    license = licenses.lgpl2;
-    platforms = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/libgdata/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/libgdata/default.nix
deleted file mode 100644
index 4cbf0a78d894..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/libgdata/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libxml2, glib, json-glib
-, gobject-introspection, liboauth, gnome3, p11-kit, openssl, uhttpmock }:
-
-let
-  pname = "libgdata";
-  version = "0.17.9";
-in
-stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45";
-  };
-
-  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 gobject-introspection
-      liboauth gcr gnome-online-accounts p11-kit openssl uhttpmock ];
-
-  propagatedBuildInputs = [ json-glib ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-      versionPolicy = "none"; # Stable version has not been updated for a long time.
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "GData API library";
-    homepage = https://wiki.gnome.org/Projects/libgdata;
-    maintainers = with maintainers; [ raskin lethalman ];
-    platforms = platforms.linux;
-    license = licenses.lgpl21Plus;
-  };
-
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/libgee/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/libgee/default.nix
deleted file mode 100644
index 2de8b430843c..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/libgee/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, fetchurl, autoconf, vala, pkgconfig, glib, gobject-introspection, gnome3 }:
-let
-  pname = "libgee";
-  version = "0.20.1";
-in
-stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  outputs = [ "out" "dev" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0c26x8gi3ivmhlbqcmiag4jwrkvcy28ld24j55nqr3jikb904a5v";
-  };
-
-  doCheck = true;
-
-  nativeBuildInputs = [ pkgconfig autoconf vala gobject-introspection ];
-  buildInputs = [ glib ];
-
-  PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_GIRDIR = "${placeholder "dev"}/share/gir-1.0";
-  PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_TYPELIBDIR = "${placeholder "out"}/lib/girepository-1.0";
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "Utility library providing GObject-based interfaces and classes for commonly used data structures";
-    homepage = https://wiki.gnome.org/Projects/Libgee;
-    license = licenses.lgpl21Plus;
-    platforms = platforms.unix;
-    maintainers = gnome3.maintainers;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/libgepub/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/libgepub/default.nix
deleted file mode 100644
index 26531a61ffaa..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/libgepub/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, glib, gobject-introspection, gnome3
-, webkitgtk, libsoup, libxml2, libarchive }:
-
-let
-  pname = "libgepub";
-  version = "0.6.0";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "16dkyywqdnfngmwsgbyga0kl9vcnzczxi3lmhm27pifrq5f3k2n7";
-  };
-
-  doCheck = true;
-
-  nativeBuildInputs = [ meson ninja pkgconfig gobject-introspection ];
-  buildInputs = [ glib webkitgtk libsoup libxml2 libarchive ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-      versionPolicy = "none";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "GObject based library for handling and rendering epub documents";
-    license = licenses.lgpl21Plus;
-    platforms = platforms.linux;
-    maintainers = gnome3.maintainers;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix
deleted file mode 100644
index a9b27fa65a47..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, file, intltool, glib, gtk3, libxklavier, makeWrapper, gnome3 }:
-
-stdenv.mkDerivation rec {
-  name = "libgnomekbd-${version}";
-  version = "3.26.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/libgnomekbd/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "ea3b418c57c30615f7ee5b6f718def7c9d09ce34637324361150744258968875";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "libgnomekbd"; attrPath = "gnome3.libgnomekbd"; };
-  };
-
-  nativeBuildInputs = [ pkgconfig file intltool makeWrapper ];
-  buildInputs = [ glib gtk3 libxklavier ];
-
-  preFixup = ''
-    wrapProgram $out/bin/gkbd-keyboard-display \
-      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Keyboard management library";
-    maintainers = gnome3.maintainers;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/libgweather/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/libgweather/default.nix
deleted file mode 100644
index f9feb21749ae..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/libgweather/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, libxml2, glib, gtk, gettext, libsoup
-, gtk-doc, docbook_xsl, docbook_xml_dtd_43, gobject-introspection, python3, tzdata, geocode-glib, vala, gnome3 }:
-
-let
-  pname = "libgweather";
-  version = "3.28.2";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  outputs = [ "out" "dev" "devdoc" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0xfy5ghwvnz2g9074dy6512m4z2pv66pmja14vhi9imgacbfh708";
-  };
-
-  nativeBuildInputs = [ meson ninja pkgconfig gettext vala gtk-doc docbook_xsl docbook_xml_dtd_43 gobject-introspection python3 ];
-  buildInputs = [ glib gtk libsoup libxml2 geocode-glib ];
-
-  postPatch = ''
-    chmod +x meson/meson_post_install.py
-    patchShebangs meson/meson_post_install.py
-  '';
-
-  mesonFlags = [
-    "-Dzoneinfo_dir=${tzdata}/share/zoneinfo"
-    "-Denable_vala=true"
-    "-Dgtk_doc=true"
-  ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "A library to access weather information from online services for numerous locations";
-    homepage = https://wiki.gnome.org/Projects/LibGWeather;
-    license = licenses.gpl2Plus;
-    maintainers = gnome3.maintainers;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/libgxps/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/libgxps/default.nix
deleted file mode 100644
index 852a546f4bf3..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/libgxps/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, glib, gobject-introspection, cairo
-, libarchive, freetype, libjpeg, libtiff, gnome3, fetchpatch
-}:
-
-let
-  pname = "libgxps";
-  version = "0.3.0";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "412b1343bd31fee41f7204c47514d34c563ae34dafa4cc710897366bd6cd0fae";
-  };
-
-  patches = [
-    (fetchpatch {
-      name = "CVE-2018-10733-1.patch";
-      url = https://gitlab.gnome.org/GNOME/libgxps/commit/b458226e162fe1ffe7acb4230c114a52ada5131b.patch;
-      sha256 = "0pqg9iwkg69qknj7vkgn26c32fndy55byxivd4km0vjfhfyx69hd";
-    })
-    (fetchpatch {
-      name = "CVE-2018-10733-2.patch";
-      url = https://gitlab.gnome.org/GNOME/libgxps/commit/133fe2a96e020d4ca65c6f64fb28a404050ebbfd.patch;
-      sha256 = "19n01x8zs05wf801mkz4mypvapph7h941md3hr3rj0ry6r88pkir";
-    })
-  ];
-
-  nativeBuildInputs = [ meson ninja pkgconfig gobject-introspection ];
-  buildInputs = [ glib cairo freetype libjpeg libtiff ];
-  propagatedBuildInputs = [ libarchive ];
-
-  mesonFlags = [
-    "-Denable-test=false"
-    "-Dwith-liblcms2=false"
-  ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-      versionPolicy = "none";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "A GObject based library for handling and rendering XPS documents";
-    homepage = https://wiki.gnome.org/Projects/libgxps;
-    license = licenses.lgpl21Plus;
-    maintainers = gnome3.maintainers;
-    platforms = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/libpeas/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/libpeas/default.nix
deleted file mode 100644
index fdbeb94c5054..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/libpeas/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gnome3
-, glib, gtk3, gobject-introspection, python3Packages, ncurses
-}:
-
-stdenv.mkDerivation rec {
-  name = "libpeas-${version}";
-  version = "1.22.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/libpeas/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0qm908kisyjzjxvygdl18hjqxvvgkq9w0phs2g55pck277sw0bsv";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "libpeas"; attrPath = "gnome3.libpeas"; };
-  };
-
-  configureFlags = [ "--enable-python3" ];
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs =  [ intltool glib gtk3 gnome3.defaultIconTheme ncurses python3Packages.python python3Packages.pygobject3 ];
-  propagatedBuildInputs = [
-    # Required by libpeas-1.0.pc
-    gobject-introspection
-  ];
-
-  meta = with stdenv.lib; {
-    description = "A GObject-based plugins engine";
-    homepage = http://ftp.acc.umu.se/pub/GNOME/sources/libpeas/;
-    license = licenses.gpl2Plus;
-    platforms = platforms.unix;
-    maintainers = gnome3.maintainers;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/libzapojit/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/libzapojit/default.nix
deleted file mode 100644
index 5c0291767877..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/libzapojit/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, intltool, json-glib, rest, libsoup, gnome-online-accounts, gnome3, gobject-introspection }:
-let
-  pname = "libzapojit";
-  version = "0.0.3";
-in
-stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  outputs = [ "out" "dev" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x";
-  };
-
-  nativeBuildInputs = [ pkgconfig intltool gobject-introspection ];
-  propagatedBuildInputs = [ glib json-glib rest libsoup gnome-online-accounts ]; # zapojit-0.0.pc
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "GObject wrapper for the SkyDrive and Hotmail REST APIs";
-    license = licenses.lgpl21Plus;
-    maintainers = gnome3.maintainers;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/rest/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/rest/default.nix
deleted file mode 100644
index 70cc31cd706c..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/rest/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, libsoup, gobject-introspection, gnome3 }:
-
-let
-  pname = "rest";
-  version = "0.8.1";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0513aad38e5d3cedd4ae3c551634e3be1b9baaa79775e53b2dba9456f15b01c9";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ glib libsoup gobject-introspection];
-
-  configureFlags = [ "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt" ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = https://wiki.gnome.org/Projects/Librest;
-    license = licenses.lgpl21;
-    platforms = platforms.linux;
-    maintainers = gnome3.maintainers;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix
deleted file mode 100644
index baf42b88e15b..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, gmime, libxml2, gobject-introspection, gnome3 }:
-
-stdenv.mkDerivation rec {
-  name = "totem-pl-parser-${version}";
-  version = "3.26.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/totem-pl-parser/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0k5pnka907invgds48d73c1xx1a366v5dcld3gr2l1dgmjwc9qka";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "totem-pl-parser"; attrPath = "gnome3.totem-pl-parser"; };
-  };
-
-  nativeBuildInputs = [ meson ninja pkgconfig gettext gobject-introspection ];
-  buildInputs = [ gmime libxml2 ];
-
-  meta = with stdenv.lib; {
-    homepage = https://wiki.gnome.org/Apps/Videos;
-    description = "Simple GObject-based library to parse and save a host of playlist formats";
-    maintainers = gnome3.maintainers;
-    license = licenses.lgpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/totem/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/totem/default.nix
index 3b7015919141..3565931e4df1 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/totem/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/totem/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, meson, ninja, intltool, gst_all_1
 , clutter-gtk, clutter-gst, python3Packages, shared-mime-info
-, pkgconfig, gtk3, glib, gobject-introspection
+, pkgconfig, gtk3, glib, gobject-introspection, totem-pl-parser
 , wrapGAppsHook, itstool, libxml2, vala, gnome3
 , gdk_pixbuf, tracker, nautilus }:
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ meson ninja vala pkgconfig intltool python3Packages.python itstool gobject-introspection wrapGAppsHook ];
   buildInputs = [
-    gtk3 glib gnome3.grilo clutter-gtk clutter-gst gnome3.totem-pl-parser gnome3.grilo-plugins
+    gtk3 glib gnome3.grilo clutter-gtk clutter-gst 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
     gst_all_1.gst-plugins-ugly gst_all_1.gst-libav gnome3.libpeas shared-mime-info
     gdk_pixbuf libxml2 gnome3.defaultIconTheme gnome3.gnome-desktop
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/tracker-miners/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
index 5e57a22906c8..7127ab71b1fc 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
@@ -2,7 +2,7 @@
 , meson, ninja, pkgconfig, vala, wrapGAppsHook, bzip2, dbus, evolution-data-server
 , exempi, flac, giflib, glib, gnome3, gst_all_1, icu, json-glib, libcue, libexif
 , libgrss, libgsf, libiptcdata, libjpeg, libpng, libseccomp, libsoup, libtiff, libuuid
-, libvorbis, libxml2, poppler, taglib, upower }:
+, libvorbis, libxml2, poppler, taglib, upower, totem-pl-parser }:
 
 let
   pname = "tracker-miners";
@@ -36,7 +36,7 @@ in stdenv.mkDerivation rec {
     giflib
     glib
     gnome3.gexiv2
-    gnome3.totem-pl-parser
+    totem-pl-parser
     gnome3.tracker
     gst_all_1.gst-plugins-base
     gst_all_1.gstreamer
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/tracker/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/tracker/default.nix
index 14795064cb49..d744fc6c87c7 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/tracker/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/tracker/default.nix
@@ -46,6 +46,14 @@ in stdenv.mkDerivation rec {
   postPatch = ''
     patchShebangs utils/g-ir-merge/g-ir-merge
     patchShebangs utils/data-generators/cc/generate
+
+    # make .desktop Exec absolute
+    patch -p0 <<END_PATCH
+    +++ src/tracker-store/tracker-store.desktop.in.in
+    @@ -4 +4 @@
+    -Exec=gdbus call -e -d org.freedesktop.DBus -o /org/freedesktop/DBus -m org.freedesktop.DBus.StartServiceByName org.freedesktop.Tracker1 0
+    +Exec=${glib.dev}/bin/gdbus call -e -d org.freedesktop.DBus -o /org/freedesktop/DBus -m org.freedesktop.DBus.StartServiceByName org.freedesktop.Tracker1 0
+    END_PATCH
   '';
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/vte/2.90.nix b/nixpkgs/pkgs/desktops/gnome-3/core/vte/2.90.nix
deleted file mode 100644
index 52bf198f29ce..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/vte/2.90.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses, gobject-introspection }:
-
-stdenv.mkDerivation rec {
-  versionMajor = "0.36";
-  versionMinor = "3";
-  moduleName   = "vte";
-
-  name = "${moduleName}-${versionMajor}.${versionMinor}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "54e5b07be3c0f7b158302f54ee79d4de1cb002f4259b6642b79b1e0e314a959c";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gobject-introspection intltool gnome3.glib gnome3.gtk3 ncurses ];
-
-  configureFlags = [ "--enable-introspection" ];
-
-  enableParallelBuilding = true;
-
-  postInstall = ''
-    substituteInPlace $out/lib/libvte2_90.la --replace "-lncurses" "-L${ncurses.out}/lib -lncurses"
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = https://www.gnome.org/;
-    description = "A library implementing a terminal emulator widget for GTK+";
-    longDescription = ''
-      VTE is a library (libvte) implementing a terminal emulator widget for
-      GTK+, and a minimal sample application (vte) using that.  Vte is
-      mainly used in gnome-terminal, but can also be used to embed a
-      console/terminal in games, editors, IDEs, etc. VTE supports Unicode and
-      character set conversion, as well as emulating any terminal known to
-      the system's terminfo database.
-    '';
-    license = licenses.lgpl2;
-    maintainers = with maintainers; [ astsmtl antono lethalman ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/vte/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/vte/default.nix
deleted file mode 100644
index 904bdd323d81..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/vte/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ stdenv, fetchurl, intltool, pkgconfig
-, gnome3, ncurses, gobject-introspection, vala, libxml2, gnutls
-, gperf, pcre2
-}:
-
-stdenv.mkDerivation rec {
-  name = "vte-${version}";
-  version = "0.54.3";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/vte/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1zgb8jgi6sr4km58zfml8zkm24qipbngl2h7s5razhi5a0a84dk9";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "vte"; attrPath = "gnome3.vte"; };
-  };
-
-  nativeBuildInputs = [ gobject-introspection intltool pkgconfig vala gperf libxml2 ];
-  buildInputs = [ gnome3.glib gnome3.gtk3 ncurses ];
-
-  propagatedBuildInputs = [
-    # Required by vte-2.91.pc.
-    gnome3.gtk3
-    gnutls
-    pcre2
-  ];
-
-  preConfigure = "patchShebangs .";
-
-  configureFlags = [ "--enable-introspection" "--disable-Bsymbolic" ];
-
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
-    homepage = https://www.gnome.org/;
-    description = "A library implementing a terminal emulator widget for GTK+";
-    longDescription = ''
-      VTE is a library (libvte) implementing a terminal emulator widget for
-      GTK+, and a minimal sample application (vte) using that.  Vte is
-      mainly used in gnome-terminal, but can also be used to embed a
-      console/terminal in games, editors, IDEs, etc. VTE supports Unicode and
-      character set conversion, as well as emulating any terminal known to
-      the system's terminfo database.
-    '';
-    license = licenses.lgpl2;
-    maintainers = with maintainers; [ astsmtl antono lethalman ];
-    platforms = platforms.linux ++ platforms.darwin;
-  };
-}
-
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/vte/ng.nix b/nixpkgs/pkgs/desktops/gnome-3/core/vte/ng.nix
deleted file mode 100644
index e6dc005fe58e..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/vte/ng.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ gnome3, fetchFromGitHub, autoconf, automake, gtk-doc, gettext, libtool, gperf }:
-
-gnome3.vte.overrideAttrs (oldAttrs: rec {
-  name = "vte-ng-${version}";
-  version = "0.50.2.a";
-
-  src = fetchFromGitHub {
-    owner = "thestinger";
-    repo = "vte-ng";
-    rev = version;
-    sha256 = "0i6hfzw9sq8521kz0l7lld2km56r0bfp1hw6kxq3j1msb8z8svcf";
-  };
-
-  preConfigure = oldAttrs.preConfigure + "; NOCONFIGURE=1 ./autogen.sh";
-
-  nativeBuildInputs = oldAttrs.nativeBuildInputs or []
-    ++ [ gtk-doc autoconf automake gettext libtool gperf ];
-})
diff --git a/nixpkgs/pkgs/desktops/gnome-3/default.nix b/nixpkgs/pkgs/desktops/gnome-3/default.nix
index 6bf0c5add1fd..7c028656faec 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/default.nix
@@ -3,6 +3,22 @@
 lib.makeScope pkgs.newScope (self: with self; {
   updateScript = callPackage ./update.nix { };
 
+  /* Remove packages of packagesToRemove from packages, based on their names
+
+     Type:
+       removePackagesByName :: [package] -> [package] -> [package]
+
+     Example:
+       removePackagesByName [ nautilus file-roller ] [ file-roller totem ]
+       => [ nautilus ]
+  */
+  removePackagesByName = packages: packagesToRemove:
+    let
+      pkgName = drv: (builtins.parseDrvName drv.name).name;
+      namesToRemove = map pkgName packagesToRemove;
+    in
+      lib.filter (x: !(builtins.elem (pkgName x) namesToRemove)) packages;
+
   maintainers = with pkgs.lib.maintainers; [ lethalman jtojnar hedning ];
 
   corePackages = with gnome3; [
@@ -19,7 +35,7 @@ lib.makeScope pkgs.newScope (self: with self; {
   optionalPackages = with gnome3; [ baobab eog epiphany evince
     gucharmap nautilus totem vino yelp gnome-bluetooth
     gnome-calculator gnome-contacts gnome-font-viewer gnome-screenshot
-    gnome-system-log gnome-system-monitor simple-scan
+    gnome-system-monitor simple-scan
     gnome-terminal gnome-user-docs evolution file-roller gedit
     gnome-clocks gnome-music gnome-tweaks gnome-photos
     nautilus-sendto dconf-editor vinagre gnome-weather gnome-logs
@@ -38,7 +54,7 @@ lib.makeScope pkgs.newScope (self: with self; {
   inherit (pkgs) atk glib gobject-introspection gspell webkitgtk gtk3 gtkmm3
     libgtop libgudev libhttpseverywhere librsvg libsecret gdk_pixbuf gtksourceview gtksourceviewmm gtksourceview4
     easytag meld orca rhythmbox shotwell gnome-usage
-    clutter clutter-gst clutter-gtk cogl gtk-vnc libdazzle libgda;
+    clutter clutter-gst clutter-gtk cogl gtk-vnc libdazzle libgda libgit2-glib libgxps libgdata libgepub libcroco libpeas libgee geocode-glib libgweather librest libzapojit libmediaart gfbgraph gexiv2 folks totem-pl-parser gcr gsound libgnomekbd vte vte_290 vte-ng gnome-menus gdl;
 
   libsoup = pkgs.libsoup.override { gnomeSupport = true; };
   libchamplain = pkgs.libchamplain.override { libsoup = libsoup; };
@@ -47,6 +63,7 @@ lib.makeScope pkgs.newScope (self: with self; {
   gtkmm = gtkmm3;
   vala = pkgs.vala_0_42;
   gegl_0_4 = pkgs.gegl_0_4.override { inherit gtk; };
+  rest = librest;
 
 # Simplify the nixos module and gnome packages
   defaultIconTheme = adwaita-icon-theme;
@@ -73,10 +90,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   evolution-data-server = callPackage ./core/evolution-data-server { };
 
-  geocode-glib = callPackage ./core/geocode-glib { };
-
-  gcr = callPackage ./core/gcr { }; # ToDo: tests fail
-
   gdm = callPackage ./core/gdm { };
 
   gjs = callPackage ./core/gjs { };
@@ -107,16 +120,10 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   gnome-font-viewer = callPackage ./core/gnome-font-viewer { };
 
-  gnome-menus = callPackage ./core/gnome-menus { };
-
   gnome-keyring = callPackage ./core/gnome-keyring { };
 
   libgnome-keyring = callPackage ./core/libgnome-keyring { };
 
-  libgnomekbd = callPackage ./core/libgnomekbd { };
-
-  folks = callPackage ./core/folks { };
-
   gnome-online-accounts = callPackage ./core/gnome-online-accounts { };
 
   gnome-online-miners = callPackage ./core/gnome-online-miners { };
@@ -135,8 +142,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   gnome-software = callPackage ./core/gnome-software { };
 
-  gnome-system-log = callPackage ./core/gnome-system-log { };
-
   gnome-system-monitor = callPackage ./core/gnome-system-monitor { };
 
   gnome-terminal = callPackage ./core/gnome-terminal { };
@@ -153,30 +158,12 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   gsettings-desktop-schemas = callPackage ./core/gsettings-desktop-schemas { };
 
-  gsound = callPackage ./core/gsound { };
-
   gucharmap = callPackage ./core/gucharmap { };
 
   gvfs = pkgs.gvfs.override { gnome = gnome3; gnomeSupport = true; };
 
   eog = callPackage ./core/eog { };
 
-  libcroco = callPackage ./core/libcroco {};
-
-  libgee = callPackage ./core/libgee { };
-
-  libgepub = callPackage ./core/libgepub { };
-
-  libgdata = callPackage ./core/libgdata { };
-
-  libgxps = callPackage ./core/libgxps { };
-
-  libpeas = callPackage ./core/libpeas {};
-
-  libgweather = callPackage ./core/libgweather { };
-
-  libzapojit = callPackage ./core/libzapojit { };
-
   mutter = callPackage ./core/mutter { };
 
   # Needed for elementary's gala and greeter until they get around to adapting to all the API breaking changes in libmutter-3
@@ -214,8 +201,6 @@ lib.makeScope pkgs.newScope (self: with self; {
     withGnome = true;
   };
 
-  rest = callPackage ./core/rest { };
-
   rygel = callPackage ./core/rygel { };
 
   simple-scan = callPackage ./core/simple-scan { };
@@ -224,18 +209,10 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   totem = callPackage ./core/totem { };
 
-  totem-pl-parser = callPackage ./core/totem-pl-parser { };
-
   tracker = callPackage ./core/tracker { };
 
   tracker-miners = callPackage ./core/tracker-miners { };
 
-  vte = callPackage ./core/vte { };
-
-  vte_290 = callPackage ./core/vte/2.90.nix { };
-
-  vte-ng = callPackage ./core/vte/ng.nix { };
-
   vino = callPackage ./core/vino { };
 
   yelp = callPackage ./core/yelp { };
@@ -311,8 +288,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   devhelp = callPackage ./devtools/devhelp { };
 
-  gdl = callPackage ./devtools/gdl { };
-
   gnome-devel-docs = callPackage ./devtools/gnome-devel-docs { };
 
   nemiver = callPackage ./devtools/nemiver { };
@@ -361,30 +336,26 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   geary = callPackage ./misc/geary { };
 
-  gfbgraph = callPackage ./misc/gfbgraph { };
-
   gitg = callPackage ./misc/gitg { };
 
   libgnome-games-support = callPackage ./misc/libgnome-games-support { };
 
-  libgit2-glib = callPackage ./misc/libgit2-glib { };
-
-  libmediaart = callPackage ./misc/libmediaart { };
-
-  gexiv2 = callPackage ./misc/gexiv2 { };
-
   gnome-applets = callPackage ./misc/gnome-applets { };
 
   gnome-flashback = callPackage ./misc/gnome-flashback { };
 
   gnome-panel = callPackage ./misc/gnome-panel { };
 
+  gnome-screensaver = callPackage ./misc/gnome-screensaver { };
+
   gnome-tweaks = callPackage ./misc/gnome-tweaks { };
 
   gpaste = callPackage ./misc/gpaste { };
 
   metacity = callPackage ./misc/metacity { };
 
+  nautilus-python = callPackage ./misc/nautilus-python { };
+
   pidgin-im-gnome-shell-extension = callPackage ./misc/pidgin { };
 
   gtkhtml = callPackage ./misc/gtkhtml { };
diff --git a/nixpkgs/pkgs/desktops/gnome-3/devtools/anjuta/default.nix b/nixpkgs/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
index 7dee751314f5..dcf0bd439420 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
@@ -1,4 +1,5 @@
 { stdenv, fetchurl, pkgconfig, gnome3, gtk3, flex, bison, libxml2, intltool,
+  gdl, libgda, gtksourceview,
   itstool, python3, ncurses, makeWrapper }:
 
 stdenv.mkDerivation rec {
@@ -22,8 +23,8 @@ stdenv.mkDerivation rec {
     ncurses
   ];
   buildInputs = [
-    flex bison gtk3 libxml2 gnome3.gjs gnome3.gdl
-    gnome3.libgda gnome3.gtksourceview
+    flex bison gtk3 libxml2 gnome3.gjs gdl
+    libgda gtksourceview
     gnome3.gsettings-desktop-schemas
   ];
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/devtools/gdl/default.nix b/nixpkgs/pkgs/desktops/gnome-3/devtools/gdl/default.nix
deleted file mode 100644
index 5098ff3bd8bb..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/devtools/gdl/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, gtk3, gnome3, intltool }:
-
-stdenv.mkDerivation rec {
-  name = "gdl-${version}";
-  version = "3.28.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gdl/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1dipnzqpxl0yfwzl2lqdf6vb3174gb9f1d5jndkq8505q7n9ik2j";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "gdl"; attrPath = "gnome3.gdl"; };
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libxml2 gtk3 intltool ];
-
-  meta = with stdenv.lib; {
-    description = "Gnome docking library";
-    homepage = https://developer.gnome.org/gdl/;
-    maintainers = gnome3.maintainers;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
new file mode 100644
index 000000000000..9c2f72cce664
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
@@ -0,0 +1,91 @@
+{ stdenv, fetchFromGitHub, substituteAll, python3, openssl
+, meson, ninja, libxml2, pkgconfig, gobject-introspection, wrapGAppsHook
+, glib, gtk3, at-spi2-core, upower, openssh, gnome3 }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-shell-gsconnect-${version}";
+  version = "20";
+
+  src = fetchFromGitHub {
+    owner = "andyholmes";
+    repo = "gnome-shell-extension-gsconnect";
+    rev = "v${version}";
+    sha256 = "1x5lrb4hdw482hr5dh4ki0p1651w1s0ijs96vs65vrh15cd60h02";
+  };
+
+  patches = [
+    # Make typelibs available in the extension
+    (substituteAll {
+      src = ./fix-paths.patch;
+      gapplication = "${glib.bin}/bin/gapplication";
+      mutter_gsettings_path = "${gnome3.mutter}/share/gsettings-schemas/${gnome3.mutter.name}/glib-2.0/schemas";
+    })
+  ];
+
+  nativeBuildInputs = [
+    meson ninja pkgconfig
+    gobject-introspection # for locating typelibs
+    wrapGAppsHook # for wrapping daemons
+    libxml2 # xmllint
+  ];
+
+  buildInputs = [
+    (python3.withPackages (pkgs: [ python3.pkgs.pygobject3 ])) # for folks.py
+    glib # libgobject
+    gtk3
+    at-spi2-core # atspi
+    gnome3.folks # libfolks
+    gnome3.nautilus # TODO: this contaminates the package with nautilus and gnome-autoar typelibs but it is only needed for the extension
+    gnome3.nautilus-python
+    gnome3.gsound
+    upower
+    gnome3.caribou
+    gnome3.gjs # for running daemon
+    gnome3.evolution-data-server # folks.py requires org.gnome.Evolution.DefaultSources gsettings; TODO: hardcode the schema path to the library (similarly to https://github.com/NixOS/nixpkgs/issues/47226)
+  ];
+
+  mesonFlags = [
+    "-Dgnome_shell_libdir=${gnome3.gnome-shell}/lib"
+    "-Dgsettings_schemadir=${placeholder "out"}/share/gsettings-schemas/${name}/glib-2.0/schemas"
+    "-Dchrome_nmhdir=${placeholder "out"}/etc/opt/chrome/native-messaging-hosts"
+    "-Dchromium_nmhdir=${placeholder "out"}/etc/chromium/native-messaging-hosts"
+    "-Dopenssl_path=${openssl}/bin/openssl"
+    "-Dsshadd_path=${openssh}/bin/ssh-add"
+    "-Dsshkeygen_path=${openssh}/bin/ssh-keygen"
+    "-Dpost_install=true"
+  ];
+
+  postPatch = ''
+    patchShebangs meson/nmh.sh
+    patchShebangs meson/post-install.sh
+
+    # TODO: do not include every typelib everywhere
+    # for example, we definitely do not need nautilus
+    for file in src/extension.js src/prefs.js; do
+      substituteInPlace "$file" \
+        --subst-var-by typelibPath "$GI_TYPELIB_PATH"
+    done
+  '';
+
+  preFixup = ''
+    # TODO: figure out why folks GIR does not contain shared-library attribute
+    # https://github.com/NixOS/nixpkgs/issues/47226
+    gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ gnome3.folks ]}")
+  '';
+
+  postFixup = ''
+    # Let’s wrap the daemons
+    for file in $out/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/{{daemon,nativeMessagingHost}.js,components/folks.py}; do
+      echo "Wrapping program ''${file}"
+      wrapProgram "''${file}" "''${gappsWrapperArgs[@]}"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "KDE Connect implementation for Gnome Shell";
+    homepage = https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ etu ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch
new file mode 100644
index 000000000000..b32d0af32721
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch
@@ -0,0 +1,44 @@
+--- a/data/org.gnome.Shell.Extensions.GSConnect.desktop
++++ b/data/org.gnome.Shell.Extensions.GSConnect.desktop
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Type=Application
+ Name=GSConnect
+-Exec=gapplication launch org.gnome.Shell.Extensions.GSConnect %U
++Exec=@gapplication@ launch org.gnome.Shell.Extensions.GSConnect %U
+ Terminal=false
+ NoDisplay=true
+ Icon=org.gnome.Shell.Extensions.GSConnect
+--- a/src/extension.js
++++ b/src/extension.js
+@@ -1,5 +1,7 @@
+ 'use strict';
+ 
++'@typelibPath@'.split(':').forEach(path => imports.gi.GIRepository.Repository.prepend_search_path(path));
++
+ const Gio = imports.gi.Gio;
+ const GLib = imports.gi.GLib;
+ const Gtk = imports.gi.Gtk;
+--- a/src/prefs.js
++++ b/src/prefs.js
+@@ -1,5 +1,7 @@
+ 'use strict';
+ 
++'@typelibPath@'.split(':').forEach(path => imports.gi.GIRepository.Repository.prepend_search_path(path));
++
+ const Gio = imports.gi.Gio;
+ const GLib = imports.gi.GLib;
+ const Gtk = imports.gi.Gtk;
+--- a/src/service/__init__.js
++++ b/src/service/__init__.js
+@@ -600,7 +600,9 @@
+ /**
+  * Convenience functions for saving/restoring window geometry
+  */
+-const _mutter = new Gio.Settings({schema_id: 'org.gnome.mutter'});
++const _schema_source = Gio.SettingsSchemaSource.new_from_directory('@mutter_gsettings_path@', Gio.SettingsSchemaSource.get_default(), true);
++const _schema = _schema_source.lookup('org.gnome.mutter', false);
++const _mutter = new Gio.Settings({settings_schema: _schema});
+ 
+ Gtk.Window.prototype.restore_geometry = function() {
+     let [width, height] = this.settings.get_value('window-size').deep_unpack();
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/geary/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/geary/default.nix
index 7bb54904fb0f..8f1080ccc2e0 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/geary/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/misc/geary/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, intltool, pkgconfig, gtk3, vala_0_40, enchant
 , wrapGAppsHook, gdk_pixbuf, cmake, ninja, desktop-file-utils
 , libnotify, libcanberra-gtk3, libsecret, gmime, isocodes
-, gobject-introspection, libpthreadstubs, sqlite
+, gobject-introspection, libpthreadstubs, sqlite, gcr
 , gnome3, librsvg, gnome-doc-utils, webkitgtk, fetchpatch }:
 
 let
@@ -30,12 +30,18 @@ stdenv.mkDerivation rec {
       url = https://gitlab.gnome.org/GNOME/geary/commit/e091f24b00ec421e1aadd5e360d1550e658ad5ef.patch;
       sha256 = "0d5hc4h9c1hnn2sk18nkpmzdvwm3h746n2zj8n22ax9rj6lxl38l";
     })
+    # Fix build with vala 0.40.12
+    # See: https://gitlab.gnome.org/GNOME/vala/blob/0.40.12/NEWS#L22
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/geary/commit/088cb2c0aa35ad4b54ea5a0a2edaf0ff96c64b45.patch";
+      sha256 = "0cnjmbd3snm8ggmprqa32f7i3w86gs3ylab9p5ffj921dcpvvlb2";
+    })
   ];
 
   nativeBuildInputs = [ vala_0_40 intltool pkgconfig wrapGAppsHook cmake ninja desktop-file-utils gnome-doc-utils gobject-introspection ];
   buildInputs = [
     gtk3 enchant webkitgtk libnotify libcanberra-gtk3 gnome3.libgee libsecret gmime sqlite
-    libpthreadstubs gnome3.gsettings-desktop-schemas gnome3.gcr isocodes
+    libpthreadstubs gnome3.gsettings-desktop-schemas gcr isocodes
     gdk_pixbuf librsvg gnome3.defaultIconTheme
   ];
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gexiv2/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gexiv2/default.nix
deleted file mode 100644
index d74faf09fb7d..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gexiv2/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, exiv2, glib, gnome3, gobject-introspection, vala }:
-
-let
-  pname = "gexiv2";
-  version = "0.10.9";
-in
-stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1vf0zv92p9hybdhn7zx53h3ia53ph97a21xz8rfk877xlr5261l8";
-  };
-
-  preConfigure = ''
-    patchShebangs .
-  '';
-
-  nativeBuildInputs = [ meson ninja pkgconfig gobject-introspection vala ];
-  buildInputs = [ glib ];
-  propagatedBuildInputs = [ exiv2 ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = https://wiki.gnome.org/Projects/gexiv2;
-    description = "GObject wrapper around the Exiv2 photo metadata library";
-    license = licenses.gpl2;
-    platforms = platforms.unix;
-    maintainers = gnome3.maintainers;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gfbgraph/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gfbgraph/default.nix
deleted file mode 100644
index f4c0d6134c0f..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gfbgraph/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib
-, gnome3, libsoup, json-glib, gobject-introspection }:
-
-let
-  pname = "gfbgraph";
-  version = "0.2.3";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  outputs = [ "out" "dev" "devdoc" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs";
-  };
-
-  nativeBuildInputs = [ pkgconfig gobject-introspection ];
-  buildInputs = [ glib gnome3.gnome-online-accounts ];
-  propagatedBuildInputs = [ libsoup json-glib gnome3.rest ];
-
-  configureFlags = [ "--enable-introspection" ];
-
-  enableParallelBuilding = true;
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "GLib/GObject wrapper for the Facebook Graph API";
-    maintainers = gnome3.maintainers;
-    license = licenses.lgpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gitg/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gitg/default.nix
index b424a8a79697..a447d2aa5903 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gitg/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gitg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, vala, intltool, pkgconfig, gtk3, glib
+{ stdenv, fetchurl, fetchpatch, vala, intltool, pkgconfig, gtk3, glib
 , json-glib, wrapGAppsHook, libpeas, bash, gobject-introspection
 , gnome3, gtkspell3, shared-mime-info, libgee, libgit2-glib, libsecret
 , meson, ninja, python3
@@ -15,6 +15,13 @@ in stdenv.mkDerivation rec {
     sha256 = "1fz8q1aiql6k740savdjh0vzbyhcflgf94cfdhvzcrrvm929n2ss";
   };
 
+  patches = [
+    (fetchpatch {
+      url = https://gitlab.gnome.org/GNOME/gitg/commit/42bceea265f53fe7fd4a41037b936deed975fc6c.patch;
+      sha256 = "1xq245rsi1bi66lswk33pdiazfaagxf77836ds5q73900rx4r7fw";
+    })
+  ];
+
   postPatch = ''
     chmod +x meson_post_install.py
     patchShebangs meson_post_install.py
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
index fe5345f1a6e2..716988252d54 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
@@ -6,6 +6,7 @@
 , glib
 , gnome-bluetooth
 , gnome-desktop
+, gnome-panel
 , gnome-session
 , gnome3
 , gsettings-desktop-schemas
@@ -16,77 +17,154 @@
 , libpulseaudio
 , libxkbfile
 , libxml2
-, metacity
 , pkgconfig
 , polkit
 , substituteAll
 , upower
-, xkeyboard_config }:
+, wrapGAppsHook
+, writeTextFile
+, writeShellScriptBin
+, xkeyboard_config
+}:
 
 let
   pname = "gnome-flashback";
   version = "3.30.0";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
+  requiredComponents = wmName: "RequiredComponents=${wmName};gnome-flashback-init;gnome-flashback;gnome-panel;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Clipboard;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Mouse;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;";
+  gnome-flashback = stdenv.mkDerivation rec {
+    name = "${pname}-${version}";
 
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "18rwql2pi78155l9zp1i50xfi5z8xz2l08m9d81x6qqbfr1nyy57";
-  };
+    src = fetchurl {
+      url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+      sha256 = "18rwql2pi78155l9zp1i50xfi5z8xz2l08m9d81x6qqbfr1nyy57";
+    };
+
+    patches =[
+      # overrides do not respect gsettingsschemasdir
+      # https://gitlab.gnome.org/GNOME/gnome-flashback/issues/9
+      (fetchpatch {
+       url = https://gitlab.gnome.org/GNOME/gnome-flashback/commit/a55530f58ccd600414a5420b287868ab7d219705.patch;
+       sha256 = "1la94lhhb9zlw7bnbpl6hl26zv3kxbsvgx996mhph720wxg426mh";
+      })
+    ];
+
+    # make .desktop Execs absolute
+    postPatch = ''
+      patch -p0 <<END_PATCH
+      +++ data/applications/gnome-flashback-init.desktop.in
+      @@ -4 +4 @@
+      -Exec=gnome-flashback --initialize
+      +Exec=$out/bin/gnome-flashback --initialize
+      +++ data/applications/gnome-flashback.desktop.in
+      @@ -4 +4 @@
+      -Exec=gnome-flashback
+      +Exec=$out/bin/gnome-flashback
+      END_PATCH
+    '';
+
+    postInstall = ''
+      # Check that our expected RequiredComponents match the stock session files, but then don't install them.
+      # They can be installed using mkSessionForWm.
+      grep '${requiredComponents "metacity"}' $out/share/gnome-session/sessions/gnome-flashback-metacity.session || (echo "RequiredComponents have changed, please update gnome-flashback/default.nix."; false)
+
+      rm -r $out/share/gnome-session
+      rm -r $out/share/xsessions
+      rm -r $out/libexec
+    '';
+
+    nativeBuildInputs = [
+      autoreconfHook
+      gettext
+      libxml2
+      pkgconfig
+      wrapGAppsHook
+    ];
+
+    buildInputs = [
+      glib
+      gnome-bluetooth
+      gnome-desktop
+      gsettings-desktop-schemas
+      gtk
+      ibus
+      libcanberra-gtk3
+      libpulseaudio
+      libxkbfile
+      polkit
+      upower
+      xkeyboard_config
+    ];
+
+    doCheck = true;
 
-  patches =[
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit metacity;
-      gnomeSession = gnome-session;
-    })
-
-    # overrides do not respect gsettingsschemasdir
-    # https://gitlab.gnome.org/GNOME/gnome-flashback/issues/9
-    (fetchpatch {
-     url = https://gitlab.gnome.org/GNOME/gnome-flashback/commit/a55530f58ccd600414a5420b287868ab7d219705.patch;
-     sha256 = "1la94lhhb9zlw7bnbpl6hl26zv3kxbsvgx996mhph720wxg426mh";
-    })
-  ];
-
-  nativeBuildInputs = [
-    autoreconfHook
-    gettext
-    libxml2
-    pkgconfig
-  ];
-
-  buildInputs = [
-    glib
-    gnome-bluetooth
-    gnome-desktop
-    gsettings-desktop-schemas
-    gtk
-    ibus
-    libcanberra-gtk3
-    libpulseaudio
-    libxkbfile
-    polkit
-    upower
-    xkeyboard_config
-  ];
-
-  doCheck = true;
-
-  enableParallelBuilding = true;
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
+    enableParallelBuilding = true;
+
+    passthru = {
+      updateScript = gnome3.updateScript {
+        packageName = pname;
+        attrPath = "gnome3.${pname}";
+      };
+
+      mkSessionForWm = { wmName, wmLabel, wmCommand }:
+        let
+          wmApplication = writeTextFile {
+            name = "gnome-flashback-${wmName}-wm";
+            destination = "/share/applications/${wmName}.desktop";
+            text = ''
+              [Desktop Entry]
+              Type=Application
+              Encoding=UTF-8
+              Name=${wmLabel}
+              Exec=${wmCommand}
+              NoDisplay=true
+              X-GNOME-WMName=${wmLabel}
+              X-GNOME-Autostart-Phase=WindowManager
+              X-GNOME-Provides=windowmanager
+              X-GNOME-Autostart-Notify=false
+            '';
+          };
+
+        gnomeSession = writeTextFile {
+          name = "gnome-flashback-${wmName}-gnome-session";
+          destination = "/share/gnome-session/sessions/gnome-flashback-${wmName}.session";
+          text = ''
+            [GNOME Session]
+            Name=GNOME Flashback (${wmLabel})
+            ${requiredComponents wmName}
+          '';
+        };
+
+        executable = writeShellScriptBin "gnome-flashback-${wmName}" ''
+          if [ -z $XDG_CURRENT_DESKTOP ]; then
+            export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
+          fi
+
+          export XDG_DATA_DIRS=${wmApplication}/share:${gnomeSession}/share:${gnome-flashback}/share:${gnome-panel}/share:$XDG_DATA_DIRS
+
+          exec ${gnome-session}/bin/gnome-session --session=gnome-flashback-${wmName} "$@"
+        '';
+
+      in writeTextFile {
+        name = "gnome-flashback-${wmName}-xsession";
+        destination = "/share/xsessions/gnome-flashback-${wmName}.desktop";
+        text = ''
+          [Desktop Entry]
+          Name=GNOME Flashback (${wmLabel})
+          Comment=This session logs you into GNOME Flashback with ${wmLabel}
+          Exec=${executable}/bin/gnome-flashback-${wmName}
+          TryExec=${wmCommand}
+          Type=Application
+          DesktopNames=GNOME-Flashback;GNOME;
+        '';
+      };
     };
-  };
 
-  meta = with stdenv.lib; {
-    description = "GNOME 2.x-like session for GNOME 3";
-    homepage = https://wiki.gnome.org/Projects/GnomeFlashback;
-    license = licenses.gpl2;
-    maintainers = gnome3.maintainers;
-    platforms = platforms.linux;
+    meta = with stdenv.lib; {
+      description = "GNOME 2.x-like session for GNOME 3";
+      homepage = https://wiki.gnome.org/Projects/GnomeFlashback;
+      license = licenses.gpl2;
+      maintainers = gnome3.maintainers;
+      platforms = platforms.linux;
+    };
   };
-}
+  in gnome-flashback
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/fix-paths.patch
deleted file mode 100644
index 9d5add233d61..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/fix-paths.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- a/data/Makefile.am
-+++ b/data/Makefile.am
-@@ -22,7 +22,7 @@
- 	             echo 'if [ -z $$XDG_CURRENT_DESKTOP ]; then' && \
- 	             echo '  export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"' && \
- 	             echo 'fi' && echo '' && \
--	             echo 'exec gnome-session --session=gnome-flashback-compiz "$$@"') > $@
-+	             echo 'exec @gnomeSession@/bin/gnome-session --session=gnome-flashback-compiz "$$@"') > $@
- 	$(AM_V_at) chmod a+x $@
- 
- gnome-flashback-metacity: Makefile
-@@ -30,7 +30,7 @@
- 	             echo 'if [ -z $$XDG_CURRENT_DESKTOP ]; then' && \
- 	             echo '  export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"' && \
- 	             echo 'fi' && echo '' && \
--	             echo 'exec gnome-session --session=gnome-flashback-metacity --disable-acceleration-check "$$@"') > $@
-+	             echo 'exec @gnomeSession@/bin/gnome-session --session=gnome-flashback-metacity --disable-acceleration-check "$$@"') > $@
- 	$(AM_V_at) chmod a+x $@
- 
- CLEANFILES = \
---- a/data/xsessions/gnome-flashback-metacity.desktop.in.in
-+++ b/data/xsessions/gnome-flashback-metacity.desktop.in.in
-@@ -2,6 +2,6 @@
- Name=GNOME Flashback (Metacity)
- Comment=This session logs you into GNOME Flashback with Metacity
- Exec=@libexecdir@/gnome-flashback-metacity
--TryExec=metacity
-+TryExec=@metacity@/bin/metacity
- Type=Application
- DesktopNames=GNOME-Flashback;GNOME;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
index b9522e1e3f40..f9cc0a8aa4f9 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
@@ -8,6 +8,7 @@
 , gettext
 , glib
 , gnome-desktop
+, gnome-flashback
 , gnome-menus
 , gnome3
 , gtk
@@ -43,6 +44,23 @@ in stdenv.mkDerivation rec {
     })
   ];
 
+  # make .desktop Exec absolute
+  postPatch = ''
+    patch -p0 <<END_PATCH
+    +++ gnome-panel/gnome-panel.desktop.in
+    @@ -7 +7 @@
+    -Exec=gnome-panel
+    +Exec=$out/bin/gnome-panel
+    END_PATCH
+  '';
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix XDG_DATA_DIRS : "${gnome-menus}/share:${gnome-flashback}/share"
+      --prefix XDG_CONFIG_DIRS : "${gnome-menus}/etc/xdg:${gnome-flashback}/etc/xdg"
+    )
+  '';
+
   nativeBuildInputs = [
     autoreconfHook
     gettext
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/default.nix
new file mode 100644
index 000000000000..be8ab81457ea
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/default.nix
@@ -0,0 +1,96 @@
+{ stdenv
+, fetchgit
+, fetchurl
+, autoreconfHook
+, dbus-glib
+, glib
+, gnome-common
+, gnome-desktop
+, gnome3
+, gtk
+, gsettings-desktop-schemas
+, pkgconfig
+, intltool
+, pam
+, systemd
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-screensaver";
+  version = "3.6.1";
+
+  # the original package is deprecated and the Ubuntu version has a number of useful patches
+  src = fetchgit {
+    url = "https://git.launchpad.net/ubuntu/+source/gnome-screensaver";
+    rev =  "4f7b666131dec060a5aac9117f395ac522a627b4";
+    sha256 = "15xqgcpm825cy3rm8pj00qlblq66svmh06lcw8qi74a3g0xcir87";
+  };
+
+  # from debian/patches/series
+  patches = map (patch: "debian/patches/${patch}") [
+    "00git_logind_check.patch"
+    "01_no_autostart.patch"
+    "03_fix_ltsp-fading.patch"
+    "05_dbus_service.patch"
+    "10_legacy_scrsvr_inhibit.patch"
+    "13_nvidia_gamma_fade_fallback.patch"
+    "14_no_fade_on_user_switch.patch"
+    "15_dont_crash_on_no_fade.patch"
+    "16_dont_crash_in_kvm.patch"
+    "17_remove_top_panel.patch"
+    "18_unity_dialog_layout.patch"
+    "24_use_user_settings.patch"
+    "25_fix_lock_command.patch"
+    "27_lightdm_switch_user.patch"
+    "28_blocking_return.patch"
+    "29_handle_expired_creds.patch"
+    # these two patches are ubuntu-specific
+    # "30_ubuntu-lock-on-suspend_gsetting.patch"
+    # "31_lock_screen_on_suspend.patch"
+    "32_input_sources_switcher.patch"
+    "move-not-nuke.patch"
+    "allow-replacement"
+    "libsystemd.patch"
+    "0001-gs-lock-plug-Disconnect-signal-handler-from-right-ob.patch"
+    "33_budgie_support.patch"
+  ] ++ [ ./fix-dbus-service-dir.patch ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    intltool
+    wrapGAppsHook
+    gnome-common
+    pkgconfig
+  ];
+
+  buildInputs = [
+    glib
+    gtk
+    gnome-desktop
+    dbus-glib
+    pam
+    systemd
+  ];
+
+  configureFlags = [ "--enable-locking" "--with-systemd=yes" ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "Component of Gnome Flashback that provides screen locking";
+    homepage = https://wiki.gnome.org/Projects/GnomeScreensaver;
+    license = licenses.gpl2Plus;
+    maintainers = gnome3.maintainers;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/fix-dbus-service-dir.patch b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/fix-dbus-service-dir.patch
new file mode 100644
index 000000000000..81e037ee690d
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/fix-dbus-service-dir.patch
@@ -0,0 +1,11 @@
+--- a/configure.ac  2019-01-20 20:28:01.309231507 +0100
++++ b/configure.ac  2019-01-20 20:31:54.927978927 +0100
+@@ -137,7 +137,7 @@
+ 
+ # Find out where the session service file goes
+ # The sad sed hack is recomended by section 27.10 of the automake manual.
+-DBUS_SESSION_SERVICE_DIR=`pkg-config --variable session_bus_services_dir dbus-1 | sed -e 's,/usr/share,${datarootdir},g'`
++DBUS_SESSION_SERVICE_DIR=`pkg-config --variable session_bus_services_dir dbus-1 --define-variable 'datadir=${datadir}'`
+ AC_SUBST(DBUS_SESSION_SERVICE_DIR)
+ 
+ dnl ---------------------------------------------------------------------------
\ No newline at end of file
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix
deleted file mode 100644
index 8d078ea41e78..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ stdenv, fetchurl, gnome3, meson, ninja, pkgconfig, vala, libssh2
-, gtk-doc, gobject-introspection, libgit2, glib, python3 }:
-
-stdenv.mkDerivation rec {
-  name = "libgit2-glib-${version}";
-  version = "0.26.4";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/libgit2-glib/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0nhyqas110q7ingw97bvyjdb7v4dzch517dq8sn8c33s8910wqcp";
-  };
-
-  postPatch = ''
-    for f in meson_vapi_link.py meson_python_compile.py; do
-      chmod +x $f
-      patchShebangs $f
-    done
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "libgit2-glib"; attrPath = "gnome3.libgit2-glib"; };
-  };
-
-  nativeBuildInputs = [
-    meson ninja pkgconfig vala gtk-doc gobject-introspection
-  ];
-
-  propagatedBuildInputs = [
-    # Required by libgit2-glib-1.0.pc
-    libgit2 glib
-  ];
-
-  buildInputs = [
-    libssh2
-    python3.pkgs.pygobject3 # this should really be a propagated input of python output
-  ];
-
-  meta = with stdenv.lib; {
-    description = "A glib wrapper library around the libgit2 git access library";
-    homepage = https://wiki.gnome.org/Projects/Libgit2-glib;
-    license = licenses.lgpl21;
-    maintainers = gnome3.maintainers;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/libmediaart/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/libmediaart/default.nix
deleted file mode 100644
index fac5db943871..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/libmediaart/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, gdk_pixbuf, gobject-introspection, gnome3 }:
-
-let
-  pname = "libmediaart";
-  version = "1.9.4";
-in
-stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "a57be017257e4815389afe4f58fdacb6a50e74fd185452b23a652ee56b04813d";
-  };
-
-  nativeBuildInputs = [ pkgconfig gobject-introspection ];
-  buildInputs = [ glib gdk_pixbuf ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-      versionPolicy = "none";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "Library tasked with managing, extracting and handling media art caches";
-    maintainers = gnome3.maintainers;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/nautilus-python/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/nautilus-python/default.nix
new file mode 100644
index 000000000000..4aec5ba4d848
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome-3/misc/nautilus-python/default.nix
@@ -0,0 +1,62 @@
+{ stdenv
+, fetchurl
+, pkgconfig
+, which
+, gtk-doc
+, docbook_xsl
+, docbook_xml_dtd_412
+, python3
+, ncurses
+, nautilus
+, gtk3
+, gnome3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nautilus-python";
+  version = "1.2.2";
+
+  outputs = [ "out" "dev" "doc" ];
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "04pib6fan6cq8x0fhf5gll2f5d2dh5pxrhj79qhi5l1yc7ys7kch";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    which
+    gtk-doc
+    docbook_xsl
+    docbook_xml_dtd_412
+  ];
+
+  buildInputs = [
+    python3
+    ncurses # required by python3
+    python3.pkgs.pygobject3
+    nautilus
+    gtk3 # required by libnautilus-extension
+  ];
+
+  makeFlags = [
+    "PYTHON_LIB_LOC=${python3}/lib"
+  ];
+
+  PKG_CONFIG_LIBNAUTILUS_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/lib/nautilus/extensions-3.0";
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "Python bindings for the Nautilus Extension API";
+    homepage = https://wiki.gnome.org/Projects/NautilusPython;
+    license = licenses.gpl2Plus;
+    maintainers = gnome3.maintainers;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnustep/back/default.nix b/nixpkgs/pkgs/desktops/gnustep/back/default.nix
index ed162229d9af..54ea8dcf4875 100644
--- a/nixpkgs/pkgs/desktops/gnustep/back/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/back/default.nix
@@ -8,13 +8,13 @@
 , libXmu
 }:
 let
-  version = "0.26.2";
+  version = "0.27.0";
 in
 gsmakeDerivation {
   name = "gnustep-back-${version}";
   src = fetchurl {
     url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-back-${version}.tar.gz";
-    sha256 = "012gsc7x66gmsw6r5w65a64krcigf7rzqzd5x86d4gv94344knlf";
+    sha256 = "0j400892ysxygh50i3918nn87vkxh15h892jwvphmkd34j8wdn9f";
   };
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ cairo base gui freetype xlibsWrapper libXmu ];
diff --git a/nixpkgs/pkgs/desktops/gnustep/gui/default.nix b/nixpkgs/pkgs/desktops/gnustep/gui/default.nix
index 399bad2581f6..72d109b69796 100644
--- a/nixpkgs/pkgs/desktops/gnustep/gui/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/gui/default.nix
@@ -1,12 +1,12 @@
 { gsmakeDerivation, fetchurl, base }:
 let
-  version = "0.26.2";
+  version = "0.27.0";
 in
 gsmakeDerivation {
   name = "gnustep-gui-${version}";
   src = fetchurl {
     url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-gui-${version}.tar.gz";
-    sha256 = "1dsbkifnjha3ghq8xx55bpsbbng0cjsni3yz71r7342ax2ixcvxc";
+    sha256 = "1m6k3fa2ndxv0kl2fazi76mwa27gn5jyp24q0rk96f2djhsy94br";
   };
   buildInputs = [ base ];
   patches = [ ./fixup-all.patch ];
diff --git a/nixpkgs/pkgs/desktops/mate/atril/default.nix b/nixpkgs/pkgs/desktops/mate/atril/default.nix
index 05b9d966fc43..57f721f49a28 100644
--- a/nixpkgs/pkgs/desktops/mate/atril/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/atril/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk3, libxml2, libsecret, poppler, itstool, hicolor-icon-theme, mate, wrapGAppsHook }:
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, glib, libxml2, libsecret, poppler, itstool, hicolor-icon-theme, mate, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   name = "atril-${version}";
-  version = "1.20.0";
+  version = "1.20.3";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "1639jxcdhcn5wvb4gj9xncdj5d5c3rnyydwwsgqj66cmfmb53l1n";
+    sha256 = "00vrqyfk370fdhlfv3m6n0l6hnx30hrsrcg1xja03957cgvcvnvr";
   };
 
   nativeBuildInputs = [
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gtk3
+    glib
     itstool
     libsecret
     libxml2
@@ -25,7 +26,9 @@ stdenv.mkDerivation rec {
     mate.mate-desktop
     hicolor-icon-theme
   ];
-  
+
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
   makeFlags = [ "cajaextensiondir=$$out/lib/caja/extensions-2.0" ];
 
   meta = {
diff --git a/nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix b/nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix
index cd47f7b62b4f..64ef0cb57f27 100644
--- a/nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "caja-extensions-${version}";
-  version = "1.20.1";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "01k7c3gw6rfd7vlch61zig22bvz40wlnalc5p3rz4d9i98fr643n";
+    sha256 = "14w1xd33ggn6wdzqvcmj8rqc68w4k094lai6mqrgmv1zljifydqz";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/caja/default.nix b/nixpkgs/pkgs/desktops/mate/caja/default.nix
index 63ad4e671254..130d44d6a1a1 100644
--- a/nixpkgs/pkgs/desktops/mate/caja/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/caja/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "caja-${version}";
-  version = "1.21.2";
+  version = "1.20.3";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "0kswpghpsz69l417ammniy1ja0dsg1hrsm2k0rx28q9mhdfdmnwq";
+    sha256 = "1wlrhcvhqving3pphbz50xnbp7z57mlkf7m36lfh8mim62kfmmd0";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/engrampa/default.nix b/nixpkgs/pkgs/desktops/mate/engrampa/default.nix
index 2becc40a46c3..1989ac8e12cc 100644
--- a/nixpkgs/pkgs/desktops/mate/engrampa/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/engrampa/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "engrampa-${version}";
-  version = "1.21.0";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "0y79rzmv3i03la443bp8f6gsgm03vr4nd88npwrvjqlxs59lg1gw";
+    sha256 = "0fj957dfagw6p7mq5545h9j2w3hv18yqnkpypnr719r4g13d3f2v";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/eom/default.nix b/nixpkgs/pkgs/desktops/mate/eom/default.nix
index 4f3380514494..3b830f73c76a 100644
--- a/nixpkgs/pkgs/desktops/mate/eom/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/eom/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "eom-${version}";
-  version = "1.21.2";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "08idw219mw0v0nkaphy0jvxi67gqm4nzbbnhnwjksxbma2gmpvss";
+    sha256 = "0440sfbidizn860w5avgwld08qc2fslrm0nx2659651cf3r7rw05";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix b/nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix
index 842ab5b214da..15b81a628863 100644
--- a/nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "libmatekbd-${version}";
-  version = "1.21.0";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "0xi5ds2psbf0qb0363ljxz5m9xxh1hr2hcn8zv6ni6mdqsqnkajz";
+    sha256 = "1l1zbphs4snswf4bkrwkk6gsmb44bdhymcfgaaspzbrcmw3y7hr1";
   };
 
   nativeBuildInputs = [ pkgconfig intltool ];
diff --git a/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix b/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix
index dab73ed34991..8bf0d9bec18c 100644
--- a/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   name = "libmatemixer-${version}";
-  version = "1.21.0";
+  version = "1.20.1";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "1376x3rlisrc6hsz6yzi637msplmacxryyqnrsgfc580knp1nrvm";
+    sha256 = "00p67mi0flsbgn15qpwq60rzf917s5islbmhirbvz6npcvv0d493";
   };
 
   nativeBuildInputs = [ pkgconfig intltool ];
diff --git a/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix b/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix
index e6769a2e978e..9805b8d91b5a 100644
--- a/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "libmateweather-${version}";
-  version = "1.21.0";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "1vj2pgry6wdscdcpwwagqlsjf8rkh4id67iw7d9qk1pfbhb2sznl";
+    sha256 = "1ksp1xn13m94sjnnrx2dyv7hlbgjbnbahwdyaq35r2419b366hxv";
   };
 
   nativeBuildInputs = [ pkgconfig intltool ];
diff --git a/nixpkgs/pkgs/desktops/mate/marco/default.nix b/nixpkgs/pkgs/desktops/mate/marco/default.nix
index e2c2a54bc748..975c80b1d0cf 100644
--- a/nixpkgs/pkgs/desktops/mate/marco/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/marco/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "marco-${version}";
-  version = "1.21.0";
+  version = "1.20.3";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "1vg3dl7kqhzgspa2ykyql4j3bpki59769qrkakqfdcavb9j5c877";
+    sha256 = "192nlr4ylisxisk0ljabm8v0a5sapdncj4gbw39q2fpr938ifs32";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix b/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix
index 59316039b36b..f9f0689fa65f 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-applets-${version}";
-  version = "1.21.0";
+  version = "1.20.3";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "0jr66xrwjrlyh4hz6h5axh96pgxm8n1xyc0rmggah2fijs940rsb";
+    sha256 = "0y5501wliipxf43p2q9917r3ird7azlrbcwnj2q2q2zy00hvvk5f";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-calc/default.nix b/nixpkgs/pkgs/desktops/mate/mate-calc/default.nix
index a4d7e0a20988..d45563db8a1c 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-calc/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-calc/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-calc-${version}";
-  version = "1.21.0";
+  version = "1.20.3";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "07mmc99wwgqbp15zrr6z7iz0frc388z19jwk28ymyzgn6bcc9cn6";
+    sha256 = "0nv0q2c93rv36dhid7vf0w0rb6zdwyqaibfsmc7flj00qgsn3r5a";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix b/nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix
index bc5a78c5a4b2..8697a150881b 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-control-center-${version}";
-  version = "1.21.0";
+  version = "1.20.4";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "0m40jr1midh5fzk3k97sydihlqfqjvzxlgmkx8w2j30a09h7230w";
+    sha256 = "1rjxndikj0w516nlvyzcss31l9qjwkzvns7ygasnjbl02bgml9a4";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix b/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix
index 124cd644467e..e6a43e6b457d 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-desktop-${version}";
-  version = "1.21.0";
+  version = "1.20.4";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "0qd76p5zqgifiawkgv2casb9ll55j4qq4pfxgxj3j5zvjr3dgr47";
+    sha256 = "073hn68f57ahif0znbx850x6ncsq50m7jg0sy1mllxjjqf3b1fxr";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-icon-theme/default.nix b/nixpkgs/pkgs/desktops/mate/mate-icon-theme/default.nix
index c18dd7783809..9d813e715ffd 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-icon-theme/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-icon-theme/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-icon-theme-${version}";
-  version = "1.21.0";
+  version = "1.20.3";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "170vir6h9sgsibd4kfq5qgz542qrw94q3qakqry77clls5wj6b62";
+    sha256 = "10l58mjc2a69pm7srxvlav2b8b7nbzyvwjrlrk79a3gr6dd1mbk4";
   };
 
   nativeBuildInputs = [ pkgconfig intltool iconnamingutils ];
diff --git a/nixpkgs/pkgs/desktops/mate/mate-media/default.nix b/nixpkgs/pkgs/desktops/mate/mate-media/default.nix
index 11f71d109377..643f67cd1e95 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-media/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-media/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-media-${version}";
-  version = "1.21.0";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "0mgx4xjarpyvyaw0p0jnh74447y6zd93fvpi12078vyqr25dsi43";
+    sha256 = "06fka82smrphzj4dz9dw1566kmdscxvxl0rchj9qxg7aidy0rmnv";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-menus/default.nix b/nixpkgs/pkgs/desktops/mate/mate-menus/default.nix
index 94a7f572b16b..9a0db6107e1a 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-menus/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-menus/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   name = "mate-menus-${version}";
-  version = "1.21.0";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "168f7jgm4kbnx92xh3iqvvrgpkv1q862xg27zxg40nkz5xhk95hx";
+    sha256 = "18y4nka38dqqxycxpf7ig4vmrk4i05xqqjk4fxr1ghkj60xxyxz2";
   };
 
-  nativeBuildInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool gobject-introspection ];
 
-  buildInputs = [ glib gobject-introspection python ];
+  buildInputs = [ glib python ];
 
   makeFlags = [
     "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/"
diff --git a/nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix b/nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix
index 748a45eda79c..e9f8b4b75b1f 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-notification-daemon-${version}";
-  version = "1.20.1";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "0hwswgc3i6d7zvmj0as95xjjw431spxkf1d37mxwaf6j80gx0p78";
+    sha256 = "0a60f67yjvlffrnviqgc64jz5l280f30h8br7wz2x415if5dmjyn";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix b/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix
index 92da012ca7da..a7d34fc85a64 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix
@@ -1,18 +1,19 @@
-{ stdenv, fetchurl, pkgconfig, intltool, itstool, glib, dbus-glib, libwnck3, librsvg, libxml2, gnome3, mate, hicolor-icon-theme, wrapGAppsHook }:
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, glib, dbus-glib, libwnck3, librsvg, libxml2, gnome3, mate, hicolor-icon-theme, gobject-introspection, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   name = "mate-panel-${version}";
-  version = "1.21.1";
+  version = "1.20.4";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "0093pimqkx5db2nciksgrmq02hldg08p7hghafky3njl0kzv8l5z";
+    sha256 = "02pdrwgl3plgv6l6nc45nsnmjppkxs4ybggwibd6mm777i9nb44d";
   };
 
   nativeBuildInputs = [
-    pkgconfig
+    gobject-introspection
     intltool
     itstool
+    pkgconfig
     wrapGAppsHook
   ];
 
diff --git a/nixpkgs/pkgs/desktops/mate/mate-polkit/default.nix b/nixpkgs/pkgs/desktops/mate/mate-polkit/default.nix
index b5d87acded80..5f1dfaa5ba4e 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-polkit/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-polkit/default.nix
@@ -2,21 +2,21 @@
 
 stdenv.mkDerivation rec {
   name = "mate-polkit-${version}";
-  version = "1.20.1";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "05g6k5z903p9p0dbi0y61z5chip52gqrhy5zrjn6xjxv1ad29lsk";
+    sha256 = "0zajisavrxiynmp4qg7zamvkpnhy9nra01czwn21h6hm2yakbayr";
   };
 
   nativeBuildInputs = [
-    pkgconfig
+    gobject-introspection
     intltool
+    pkgconfig
   ];
 
   buildInputs = [
     gtk3
-    gobject-introspection
     libappindicator-gtk3
     libindicator-gtk3
     polkit
diff --git a/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix b/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix
index 14f5f0443730..a9c162e59122 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-power-manager-${version}";
-  version = "1.21.0";
+  version = "1.20.3";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "1l7rxv16j95w26igs4n7fdfv5hqm91b9ddc1lw5m26s42nkzzf85";
+    sha256 = "17x47j5dkxxsq63bv2jwf3xgnddyy2dya4y14ryivq8q3jh5yhr5";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix b/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix
index b4c215339b55..089296a0b842 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-screensaver-${version}";
-  version = "1.21.0";
+  version = "1.20.3";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "1asfw2x0ha830ilkw97bjdqm2gnjbpb6dd7lb6h43aix7g3lgm7f";
+    sha256 = "0kmaj4psg7261h02dzarga6k5cb7n709d60xbfrhywnf5fb9787i";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix b/nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix
index a317b175f9bb..86cbd3a86d25 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-sensors-applet-${version}";
-  version = "1.21.0";
+  version = "1.20.3";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "1l84hfxz5qzipchxxi5whccq5d0kg9c8fxisar8pbckl6763b4dx";
+    sha256 = "0s98qy3jkri9zh5xqffprqd00cqspaq9av0mcrcakjkl8wyfh2g6";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix b/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
index 38881e425762..31f447861fc8 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-session-manager-${version}";
-  version = "1.21.0";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "1556kn4sk41x70m8cx200g4c9q3wndnhdxj4vp93sw262yqmk9mn";
+    sha256 = "05qq07b568qf6zyy459wajhfpbx1wfrinw3hsbky7abdjfn529dy";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix b/nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix
index 4138a042856b..2be518bcc5e1 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-settings-daemon-${version}";
-  version = "1.21.0";
+  version = "1.20.4";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "1k0xbwxpv3wfl7z3hgaf2ylzaz3aky4j7awdy8cfgxr0d6nqhp3w";
+    sha256 = "10xlg2gb7fypnn5cnr14kbpjy5jdfz98ji615scz61zf5lljksxh";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix b/nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix
index c3f29dff6319..5757f5eb9b40 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-system-monitor-${version}";
-  version = "1.21.0";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "0filf6qyw4fk45br3cridbqdngwl525z49zn36r7q4agzhny4phz";
+    sha256 = "0f6sh23axzmcmyv0d837gbc0dixf1afh8951zrzp1y53rdgpa9qn";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix b/nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix
index a2f35284f4e3..9b0018e8e2fc 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, itstool, libxml2, mate, gnome3, wrapGAppsHook }:
+{ stdenv, fetchurl, pkgconfig, intltool, glib, itstool, libxml2, mate, gnome3, gtk3, vte, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   name = "mate-terminal-${version}";
-  version = "1.21.0";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "15vx7b5nbjbym22pz3l3cyqhv4dnd6vl2hb56xhwq625aw2a7chv";
+    sha256 = "0fqyi0az4ax1gyk5gymd7ssq2crdcd7slmqljc1b1pa283ql7p3q";
   };
 
   buildInputs = [
@@ -16,8 +16,8 @@ stdenv.mkDerivation rec {
 
      mate.mate-desktop
 
-     gnome3.vte
-     gnome3.gtk
+     vte
+     gtk3
      gnome3.dconf
   ];
 
diff --git a/nixpkgs/pkgs/desktops/mate/mate-user-guide/default.nix b/nixpkgs/pkgs/desktops/mate/mate-user-guide/default.nix
index 9992d911814d..5264c772a537 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-user-guide/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-user-guide/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-user-guide-${version}";
-  version = "1.21.0";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "0ayg570000calzpj51dwhh5mil11s0nrhl21c0si3sxr8f5cld6q";
+    sha256 = "0cbi625xd7nsifvxbixsb29kj2zj14sn0sl61wkcvasz7whg7w6r";
   };
 
   nativeBuildInputs = [ itstool intltool libxml2 ];
diff --git a/nixpkgs/pkgs/desktops/mate/mate-utils/default.nix b/nixpkgs/pkgs/desktops/mate/mate-utils/default.nix
index e4cd9126dfaa..17ec165f7559 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-utils/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-utils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-utils-${version}";
-  version = "1.21.0";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "0q05zzxgwwk7af05yzcjixjd8hi8cqykirj43g60ikhzym009n4q";
+    sha256 = "0w7hw192jzhad8jab8mjms4x6k2xijvb3rhlbxb6z5n5880xgfqf";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mozo/default.nix b/nixpkgs/pkgs/desktops/mate/mozo/default.nix
index 387df5d45b3d..f2419f7f5e80 100644
--- a/nixpkgs/pkgs/desktops/mate/mozo/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mozo/default.nix
@@ -1,21 +1,22 @@
-{ stdenv, fetchurl, pkgconfig, intltool, mate, pythonPackages }:
+{ stdenv, python, fetchurl, pkgconfig, intltool, mate, gtk3, glib, wrapGAppsHook, gobject-introspection }:
 
-stdenv.mkDerivation rec {
-  name = "mozo-${version}";
-  version = "1.20.1";
+python.pkgs.buildPythonApplication rec {
+  pname = "mozo";
+  version = "1.20.2";
+
+  format = "other";
+  doCheck = false;
 
   src = fetchurl {
-    url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "16rkwbq385i2acll0kcsnp4ghdyljylhp06bjdsvbwv6bjspyyrp";
+    url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${pname}-${version}.tar.xz";
+    sha256 = "1q4hqhigimxav2a8xxyd53lq8q80szsphcv37y2jhm6g6wvdmvhd";
   };
-  
-  pythonPath = [ mate.mate-menus pythonPackages.pygobject3 ];
 
-  nativeBuildInputs = [ pkgconfig intltool pythonPackages.wrapPython ];
+  nativeBuildInputs = [ pkgconfig intltool gobject-introspection wrapGAppsHook ];
 
-  buildInputs = [ pythonPackages.python ] ++ pythonPath;
+  propagatedBuildInputs =  [ mate.mate-menus python.pkgs.pygobject3 ];
 
-  preFixup = "wrapPythonPrograms";
+  buildInputs = [ gtk3 glib ];
 
   meta = with stdenv.lib; {
     description = "MATE Desktop menu editor";
diff --git a/nixpkgs/pkgs/desktops/mate/pluma/default.nix b/nixpkgs/pkgs/desktops/mate/pluma/default.nix
index 9dd992c4699f..abb1b8c28a1b 100644
--- a/nixpkgs/pkgs/desktops/mate/pluma/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/pluma/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "pluma-${version}";
-  version = "1.21.1";
+  version = "1.20.4";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "0sc69bz0h3f4cpgkyda9fnpjfkvbc20ldh6v3jj8fd3n460bc8ai";
+    sha256 = "0qdbm5y6q8lbabd81mg3rnls5bdvbmfii82f6syqw1cw6381mzgz";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/python-caja/default.nix b/nixpkgs/pkgs/desktops/mate/python-caja/default.nix
index 1659ebaae656..0470086f865f 100644
--- a/nixpkgs/pkgs/desktops/mate/python-caja/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/python-caja/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "python-caja-${version}";
-  version = "1.20.1";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "16y9xri92x7a40db2qakf20c80a6vqy21nwnjhwrki5rqk7nwbgx";
+    sha256 = "16r8mz1b44qgs19d14zadwzshzrdc5sdwgjp9f9av3fa6g09yd7b";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/pantheon-terminal/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/pantheon-terminal/default.nix
index 95d371959e53..d6bc8f5330b0 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/pantheon-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/pantheon-terminal/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, cmake, vala_0_38, pkgconfig, glib, gtk3, granite, gnome3, libnotify, gettext, wrapGAppsHook, gobject-introspection }:
+{ stdenv, fetchurl, perl, cmake, vala_0_38, pkgconfig, glib, gtk3, granite, gnome3, vte_290, libnotify, gettext, wrapGAppsHook, gobject-introspection }:
 
 stdenv.mkDerivation rec {
   majorVersion = "0.4";
diff --git a/nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix b/nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
index 5fdd6bea4640..fc77e163e8f9 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
@@ -1,13 +1,15 @@
 {
   mkDerivation,
   extra-cmake-modules, gettext, kdoctools, python,
-  kcoreaddons, knotifications, kwayland, kwidgetsaddons
+  kcoreaddons, knotifications, kwayland, kwidgetsaddons,
+  cups, pcre, pipewire
 }:
 
 mkDerivation {
   name = "xdg-desktop-portal-kde";
   nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python ];
   buildInputs = [
+    cups pcre pipewire
     kcoreaddons knotifications kwayland kwidgetsaddons
   ];
 }
diff --git a/nixpkgs/pkgs/desktops/rox/rox-filer/default.nix b/nixpkgs/pkgs/desktops/rox/rox-filer/default.nix
index 65e4463600a9..543e3ca897f1 100644
--- a/nixpkgs/pkgs/desktops/rox/rox-filer/default.nix
+++ b/nixpkgs/pkgs/desktops/rox/rox-filer/default.nix
@@ -13,6 +13,7 @@ in stdenv.mkDerivation {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libxml2 gtk shared-mime-info hicolor-icon-theme libSM ];
+  NIX_LDFLAGS = [ "-ldl" "-lm" ];
 
   patches = [
     ./rox-filer-2.11-in-source-build.patch
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin.nix
index cb32d5676437..280f39f8d997 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, exo, libXtst, xproto, libxfce4util, xfce4-panel, libxfce4ui, libxfcegui4, xfconf, gtk, hicolor-icon-theme }:
+{ stdenv, fetchurl, pkgconfig, intltool, glib, exo, libXtst, xorgproto, libxfce4util, xfce4-panel, libxfce4ui, libxfcegui4, xfconf, gtk, hicolor-icon-theme }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   name = "${p_name}-${ver_maj}.${ver_min}";
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool glib exo libXtst xproto libxfce4util libxfce4ui xfce4-panel libxfcegui4 xfconf gtk hicolor-icon-theme ];
+  buildInputs = [ intltool glib exo libXtst xorgproto libxfce4util libxfce4ui xfce4-panel libxfcegui4 xfconf gtk hicolor-icon-theme ];
 
   meta = {
     homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin.nix
index 8048a8570298..e088e74cfb1c 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, exo, libXtst, xproto, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk, hicolor-icon-theme }:
+{ stdenv, fetchurl, pkgconfig, intltool, glib, exo, libXtst, xorgproto, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk, hicolor-icon-theme }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   name = "${p_name}-${ver_maj}.${ver_min}";
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool glib exo libXtst xproto libxfce4util libxfce4ui xfce4-panel xfconf gtk hicolor-icon-theme ];
+  buildInputs = [ intltool glib exo libXtst xorgproto libxfce4util libxfce4ui xfce4-panel xfconf gtk hicolor-icon-theme ];
 
   meta = {
     homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
index c420c9fb6436..57cd48c6f270 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
-    description = "Battery plugin for Xfce panel";
+    description = "A simple XFCE panel plugin that lets the user run an alarm at a specified time or at the end of a specified countdown period";
     platforms = platforms.linux;
     license = licenses.gpl2;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/desktops/xfce4-13/default.nix b/nixpkgs/pkgs/desktops/xfce4-13/default.nix
index 4809cec839ad..d3e46cf23654 100644
--- a/nixpkgs/pkgs/desktops/xfce4-13/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce4-13/default.nix
@@ -81,9 +81,7 @@ makeScope newScope (self: with self; {
 
   xfce4-taskmanager = callPackage ./xfce4-taskmanager { };
 
-  xfce4-terminal = callPackage ./xfce4-terminal {
-    inherit (gnome3) vte;
-  };
+  xfce4-terminal = callPackage ./xfce4-terminal { };
 
   xfce4-volumed-pulse = callPackage ./xfce4-volumed-pulse { };
 
diff --git a/nixpkgs/pkgs/desktops/xfce4-13/xfce4-panel/default.nix b/nixpkgs/pkgs/desktops/xfce4-13/xfce4-panel/default.nix
index 2b52b515c04e..27c8e1e58c71 100644
--- a/nixpkgs/pkgs/desktops/xfce4-13/xfce4-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce4-13/xfce4-panel/default.nix
@@ -3,9 +3,9 @@
 mkXfceDerivation rec {
   category = "xfce";
   pname = "xfce4-panel";
-  version = "4.13.3";
+  version = "4.13.4";
 
-  sha256 = "00b2b16wqwzdbh1vsnpl2kasa7f9i1hr1wkkjmvzmy2v7bmkygr0";
+  sha256 = "13hnzh31d2b1331lnsbfaxg4fqhqa7hmdwkiqsl9hyr8pqimjb2g";
 
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ exo garcon gtk2 gtk3 libxfce4ui libxfce4util libwnck3 xfconf ];