summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/enlightenment/enlightenment.nix44
-rw-r--r--pkgs/desktops/enlightenment/enlightenment.suid-exes.patch4
-rw-r--r--pkgs/desktops/enlightenment/terminology.nix13
-rw-r--r--pkgs/desktops/gnome-2/desktop/gtksourceview/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/desktop/libgweather/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/bijiben/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/evolution/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-characters/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-logs/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-maps/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-music/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/eog/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/core/folks/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/default.nix68
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/fix-paths.patch60
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/sessions_dir.patch39
-rw-r--r--pkgs/desktops/gnome-3/core/gjs/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-contacts/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-keyring/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-menus/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch11
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-software/default.nix5
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/tracker-miners/default.nix119
-rw-r--r--pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix9
-rw-r--r--pkgs/desktops/lxde/core/lxtask/default.nix6
-rw-r--r--pkgs/desktops/mate/caja/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-panel/default.nix4
-rw-r--r--pkgs/desktops/maxx/default.nix29
-rw-r--r--pkgs/desktops/plasma-5/fetch.sh2
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/default.nix10
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/patches/follow-symlinks.patch (renamed from pkgs/desktops/plasma-5/kde-gtk-config/0001-follow-symlinks.patch)35
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/patches/gsettings.patch21
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/patches/series2
-rw-r--r--pkgs/desktops/plasma-5/srcs.nix352
-rw-r--r--pkgs/desktops/xfce/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/appmenu-gtk-module.nix31
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix49
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/fix-bamf-dependency.patch12
45 files changed, 676 insertions, 359 deletions
diff --git a/pkgs/desktops/enlightenment/enlightenment.nix b/pkgs/desktops/enlightenment/enlightenment.nix
index 9b782b94f7ff..dc538625bf09 100644
--- a/pkgs/desktops/enlightenment/enlightenment.nix
+++ b/pkgs/desktops/enlightenment/enlightenment.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, meson, ninja, pkgconfig, gettext, efl,
   xcbutilkeysyms, libXrandr, libXdmcp, libxcb, libffi, pam, alsaLib,
-  luajit, bzip2, libpthreadstubs, gdbm, libcap, libGLU,
+  luajit, bzip2, libpthreadstubs, gdbm, libcap, libGLU, mesa_noglu,
   xkeyboard_config, pcre
 }:
 
@@ -34,15 +34,45 @@ stdenv.mkDerivation rec {
     libpthreadstubs
     gdbm
     pcre
+    mesa_noglu
+    xkeyboard_config
   ] ++
     stdenv.lib.optionals stdenv.isLinux [ libcap ];
 
-  # Instead of setting owner to root and permissions to setuid/setgid
-  # (which is not allowed for files in /nix/store) of some
-  # enlightenment programs, the file $out/e-wrappers.nix is created,
-  # containing the needed configuration for that purpose. It can be
-  # used in the enlightenment module.
-  patches = [ ./enlightenment.suid-exes.patch ];
+  patches = [
+    # Some programs installed by enlightenment (to set the cpu frequency,
+    # for instance) need root ownership and setuid/setgid permissions, which
+    # are not allowed for files in /nix/store. Instead of allowing the
+    # installer to try to do this, the file $out/e-wrappers.nix is created,
+    # containing the needed configuration for wrapping those programs. It
+    # can be used in the enlightenment module. The idea is:
+    # 
+    #  1) rename the original binary adding the extension .orig
+    #  2) wrap the renamed binary at /run/wrappers/bin/
+    #  3) create a new symbolic link using the original binary name (in the
+    #     original directory where enlightenment wants it) pointing to the
+    #     wrapper
+
+    ./enlightenment.suid-exes.patch
+  ];
+
+  postPatch = ''
+    # In order to get the available keyboard layouts Enlightenment looks for
+    # the file xorg.lst, that should be provided by xkeyboard-config (when
+    # configured with option --with-xkb-rules-symlink=xorg). Currently
+    # xkeyboard-config is not configured with this option in
+    # NixOS. Therefore it is needed to add base.lst (which xorg.lst would be
+    # a symbolic link to) explicitly as an alternative.
+
+    sed "/#ifdef XKB_BASE/a XKB_BASE \"\/rules\/base.lst\"," \
+      -i src/modules/wizard/page_011.c src/modules/xkbswitch/e_mod_parse.c
+
+    # edge_cc is a binary provided by efl and cannot be found at the directory
+    # given by e_prefix_bin_get(), which is $out/bin
+
+    substituteInPlace src/bin/e_import_config_dialog.c \
+      --replace "e_prefix_bin_get()" "\"${efl}/bin\""
+  '';
 
   mesonFlags = [ "-Dsystemdunitdir=lib/systemd/user" ];
 
diff --git a/pkgs/desktops/enlightenment/enlightenment.suid-exes.patch b/pkgs/desktops/enlightenment/enlightenment.suid-exes.patch
index 7a89309c89ff..f53f6ffa7ca8 100644
--- a/pkgs/desktops/enlightenment/enlightenment.suid-exes.patch
+++ b/pkgs/desktops/enlightenment/enlightenment.suid-exes.patch
@@ -14,9 +14,9 @@
  for x in "$@" ; do
 -	chown root "$DESTDIR/$x"
 -	chmod a=rx,u+xs "$DESTDIR/$x"
-+	f="$DESTDIR/$x";
++	f="$DESTDIR$x";
 +	b=$(basename "$f".orig)
-+	mv -v "$f"{,.orig}
++	mv -v "$f" "$f".orig
 +	ln -sv /run/wrappers/bin/"$b" "$f"
 +	echo "    \"$b\".source = \"$f.orig\";" >> $w
  done
diff --git a/pkgs/desktops/enlightenment/terminology.nix b/pkgs/desktops/enlightenment/terminology.nix
index 3a52707fcf4c..3b00ab55835f 100644
--- a/pkgs/desktops/enlightenment/terminology.nix
+++ b/pkgs/desktops/enlightenment/terminology.nix
@@ -1,15 +1,17 @@
-{ stdenv, fetchurl, pkgconfig, efl, pcre, makeWrapper }:
+{ stdenv, fetchurl, meson, ninja, pkgconfig, efl, pcre, mesa_noglu, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "terminology-${version}";
-  version = "1.1.1";
+  version = "1.2.1";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/apps/terminology/${name}.tar.xz";
-    sha256 = "05ncxvzb9rzkyjvd95hzn8lswqdwr8cix6rd54nqn9559jibh4ns";
+    sha256 = "1ii8332bl88l8md3gvz5dhi9bjpm6shyf14ck9kfyy7d56hp71mc";
   };
 
   nativeBuildInputs = [
+    meson
+    ninja
     (pkgconfig.override { vanilla = true; })
     makeWrapper
   ];
@@ -17,11 +19,12 @@ stdenv.mkDerivation rec {
   buildInputs = [
     efl
     pcre
+    mesa_noglu
   ];
 
   meta = {
-    description = "The best terminal emulator written with the EFL";
-    homepage = http://enlightenment.org/;
+    description = "Powerful terminal emulator based on EFL";
+    homepage = https://www.enlightenment.org/about-terminology;
     platforms = stdenv.lib.platforms.linux;
     license = stdenv.lib.licenses.bsd2;
     maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ftrvxmtrx ];
diff --git a/pkgs/desktops/gnome-2/desktop/gtksourceview/default.nix b/pkgs/desktops/gnome-2/desktop/gtksourceview/default.nix
index 9efca75e8f87..05da06846418 100644
--- a/pkgs/desktops/gnome-2/desktop/gtksourceview/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/gtksourceview/default.nix
@@ -38,6 +38,4 @@ stdenv.mkDerivation rec {
   preConfigure = optionalString stdenv.isDarwin ''
     intltoolize --force
   '';
-
-  NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
 }
diff --git a/pkgs/desktops/gnome-2/desktop/libgweather/default.nix b/pkgs/desktops/gnome-2/desktop/libgweather/default.nix
index 4b1daa3af90b..47f2b8c90fb7 100644
--- a/pkgs/desktops/gnome-2/desktop/libgweather/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/libgweather/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, libxml2, gtk, intltool, GConf, libsoup, libtasn1, nettle, gmp }:
 
-assert stdenv.isLinux;
+assert stdenv ? glibc;
 
 stdenv.mkDerivation rec {
   name = "libgweather-2.30.3";
diff --git a/pkgs/desktops/gnome-3/apps/bijiben/default.nix b/pkgs/desktops/gnome-3/apps/bijiben/default.nix
index 93a2c41caf35..5ed4b487bdd9 100644
--- a/pkgs/desktops/gnome-3/apps/bijiben/default.nix
+++ b/pkgs/desktops/gnome-3/apps/bijiben/default.nix
@@ -5,13 +5,13 @@
 , gnome3, libxml2 }:
 
 let
-  version = "3.28.1";
+  version = "3.28.2";
 in stdenv.mkDerivation rec {
   name = "bijiben-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/bijiben/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "0ivx3hbpg7qaqzpbbn06lz9w3q285vhwgfr353b14bg0nsidwy17";
+    sha256 = "1z1dqspjpyym27yav7pr813x7k0jdxifgj5rdxgp4m6cs1ixcvjs";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/apps/evolution/default.nix b/pkgs/desktops/gnome-3/apps/evolution/default.nix
index d7def6e27091..4470f11597eb 100644
--- a/pkgs/desktops/gnome-3/apps/evolution/default.nix
+++ b/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.28.1";
+  version = "3.28.2";
 in stdenv.mkDerivation rec {
   name = "evolution-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "0sdv5lg2vlz5f4raymz9d8a5jq4j18vbqyigaip6508p3bjnfj8l";
+    sha256 = "0lx9amjxmfnwc0089griyxms9prmb78wfnfvdsvli8yw1cns4i74";
   };
 
   propagatedUserEnvPkgs = [ gnome3.evolution-data-server ];
diff --git a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
index 8921d70787ca..0ba4199630ab 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
@@ -9,13 +9,13 @@
 # TODO: ovirt (optional)
 
 let
-  version = "3.28.2";
+  version = "3.28.3";
 in stdenv.mkDerivation rec {
   name = "gnome-boxes-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-boxes/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "0xss6wrs4hkmr0aa9qxr9b6wxbygrkjz4p0c4xnymicq97jnwra1";
+    sha256 = "05x9c7w60cafcd3bdkr68ra8pbh7m8pciw67871hckaqafw76q1d";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
index b88bad2f6497..347cd7a16ae0 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
@@ -4,13 +4,13 @@
 
 let
   pname = "gnome-calendar";
-  version = "3.28.1";
+  version = "3.28.2";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "1jacznnjql5jgzvzcp5kh2k0cd0y41cri6qz2bsakpllf7adbrq6";
+    sha256 = "0x6wxngf8fkwgbl6x7rzp0srrb43rm55klpb2vfjk2hahpbjvxyw";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix b/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
index 1587fec2c695..b07417ecc35a 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnome-characters-${version}";
-  version = "3.28.0";
+  version = "3.28.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-characters/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "14q92ysg7krawxlwv6ymgsxz2plk81wgfz6knlma7lm13jsczmf0";
+    sha256 = "04nmn23iw65wsczx1l6fa4jfdsv65klb511p39zj1pgwyisgj5l0";
   };
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix b/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
index 09c006771997..78366755ad6a 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl
 , meson, ninja, gettext, pkgconfig, wrapGAppsHook, itstool, desktop-file-utils
-, vala, gobjectIntrospection, libxml2, gtk3, glib, gsound
+, vala, gobjectIntrospection, libxml2, gtk3, glib, gsound, sound-theme-freedesktop
 , gnome3, gdk_pixbuf, geoclue2, libgweather }:
 
 stdenv.mkDerivation rec {
@@ -30,6 +30,13 @@ stdenv.mkDerivation rec {
     gnome3.gnome-desktop gnome3.geocode-glib geoclue2 libgweather gsound
   ];
 
+  preFixup = ''
+    gappsWrapperArgs+=(
+      # Fallback sound theme
+      --prefix XDG_DATA_DIRS : "${sound-theme-freedesktop}/share"
+    )
+  '';
+
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Apps/Clocks;
     description = "Clock application designed for GNOME 3";
diff --git a/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix b/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
index c184bcbb42d8..614308f7b631 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnome-logs-${version}";
-  version = "3.28.0";
+  version = "3.28.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-logs/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "0j3wkbz7c2snmx4kjmh767175nf2lqxx2p8b8xa2qslknxc3gq6b";
+    sha256 = "0qqmw55rrxdz2n9xwn85nm7j9y9i85fxlxjfgv683mbpdyv0gbg0";
   };
 
   configureFlags = [ "--disable-tests" ];
diff --git a/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix b/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
index b5c8188bd064..cade274e69a8 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
@@ -5,13 +5,13 @@
 
 let
   pname = "gnome-maps";
-  version = "3.28.1";
+  version = "3.28.2";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "19xx1v25ycr8ih4jwb1vc662jcx6kynaf7baj4i569ccrcwaj2d5";
+    sha256 = "1yzi08a9316jplgsl2z0qzlqxhghyqcjhv0m6i94wcain4mxk1z7";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
index c2d5045e79ea..9aa8eee0bca8 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
@@ -6,13 +6,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gnome-music";
-  version = "3.28.1";
+  version = "3.28.2";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${pname}-${version}.tar.xz";
-    sha256 = "0xbwndfl72292dx4x99vm0iyrcy8xw2i5fhsch7b073rk4ydbyfx";
+    sha256 = "0xkbw9cp002vwwq6vlsbkahz9xbwpkyydd9cvh7az379sdlz4rid";
   };
 
   nativeBuildInputs = [ meson ninja gettext itstool pkgconfig libxml2 wrapGAppsHook desktop-file-utils appstream-glib gobjectIntrospection ];
diff --git a/pkgs/desktops/gnome-3/core/eog/default.nix b/pkgs/desktops/gnome-3/core/eog/default.nix
index 85587d11178d..7f7a533a5502 100644
--- a/pkgs/desktops/gnome-3/core/eog/default.nix
+++ b/pkgs/desktops/gnome-3/core/eog/default.nix
@@ -4,13 +4,13 @@
 
 let
   pname = "eog";
-  version = "3.28.1";
+  version = "3.28.2";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "1v3s4x4xdmfa488drwvxfps33jiyh3qz9z8v8s3779n1jn92rmbq";
+    sha256 = "1gasrfqi7qrzdq1idh29r0n6ikkqjb6pbp7a8k5krfz5hkhyfin0";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig gettext itstool wrapGAppsHook libxml2 gobjectIntrospection ];
diff --git a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
index 01891ad82473..a95162068599 100644
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
@@ -1,26 +1,26 @@
-{ fetchurl, stdenv, pkgconfig, gnome3, python3, dconf, gobjectIntrospection
+{ fetchurl, stdenv, pkgconfig, gnome3, python3, gobjectIntrospection
 , intltool, libsoup, libxml2, libsecret, icu, sqlite
-, p11-kit, db, nspr, nss, libical, gperf, makeWrapper
+, p11-kit, db, nspr, nss, libical, gperf, wrapGAppsHook, glib-networking
 , vala, cmake, ninja, kerberos, openldap, webkitgtk, libaccounts-glib, json-glib }:
 
 stdenv.mkDerivation rec {
   name = "evolution-data-server-${version}";
-  version = "3.28.1";
+  version = "3.28.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "12b9lfgwd57rzn9394xrbvl9ym5aqldpz9v7c9a421dsv8dgq13b";
+    sha256 = "1azk8zh167a6hyxzz73yh36gbpf7i52b7zi10hnnnsywh80pj6jk";
   };
 
   nativeBuildInputs = [
-    cmake ninja pkgconfig intltool python3 gperf makeWrapper gobjectIntrospection vala
+    cmake ninja pkgconfig intltool python3 gperf wrapGAppsHook gobjectIntrospection vala
   ];
   buildInputs = with gnome3; [
     glib libsoup libxml2 gtk gnome-online-accounts
     gcr p11-kit libgweather libgdata libaccounts-glib json-glib
-    icu sqlite kerberos openldap webkitgtk
+    icu sqlite kerberos openldap webkitgtk glib-networking
   ];
 
   propagatedBuildInputs = [ libsecret nss nspr libical db ];
@@ -36,14 +36,6 @@ stdenv.mkDerivation rec {
     cmakeFlags="-DINCLUDE_INSTALL_DIR=$dev/include $cmakeFlags"
   '';
 
-  preFixup = ''
-    for f in $(find $out/libexec/ -type f -executable); do
-      wrapProgram "$f" \
-        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
-        --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules"
-    done
-  '';
-
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = "evolution-data-server";
diff --git a/pkgs/desktops/gnome-3/core/folks/default.nix b/pkgs/desktops/gnome-3/core/folks/default.nix
index 776f76642222..beb40209bc8c 100644
--- a/pkgs/desktops/gnome-3/core/folks/default.nix
+++ b/pkgs/desktops/gnome-3/core/folks/default.nix
@@ -45,6 +45,6 @@ in stdenv.mkDerivation rec {
     license = stdenv.lib.licenses.lgpl2Plus;
 
     maintainers = gnome3.maintainers;
-    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;  # arbitrary choice
   };
 }
diff --git a/pkgs/desktops/gnome-3/core/gdm/default.nix b/pkgs/desktops/gnome-3/core/gdm/default.nix
index 6b6b23f21b54..247d3566d6f3 100644
--- a/pkgs/desktops/gnome-3/core/gdm/default.nix
+++ b/pkgs/desktops/gnome-3/core/gdm/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchurl, pkgconfig, glib, itstool, libxml2, xorg, dbus
+{ stdenv, fetchurl, substituteAll, pkgconfig, glib, itstool, libxml2, xorg, dbus
 , intltool, accountsservice, libX11, gnome3, systemd, autoreconfHook
 , gtk, libcanberra-gtk3, pam, libtool, gobjectIntrospection, plymouth
-, librsvg, coreutils }:
+, librsvg, coreutils, xwayland }:
 
 stdenv.mkDerivation rec {
   name = "gdm-${version}";
@@ -12,50 +12,56 @@ stdenv.mkDerivation rec {
     sha256 = "1yxjjyrp0ywrc25cp81bsdhp79zn0c0jag48hlp00b5wfnkqy1kp";
   };
 
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "gdm"; attrPath = "gnome3.gdm"; };
-  };
-
   # Only needed to make it build
   preConfigure = ''
     substituteInPlace ./configure --replace "/usr/bin/X" "${xorg.xorgserver.out}/bin/X"
   '';
 
-  postPatch = ''
-    substituteInPlace daemon/gdm-manager.c --replace "/bin/plymouth" "${plymouth}/bin/plymouth"
-    substituteInPlace data/gdm.service.in  --replace "/bin/kill" "${coreutils}/bin/kill"
-  '';
-
-  configureFlags = [ "--sysconfdir=/etc"
-                     "--localstatedir=/var"
-                     "--with-plymouth=yes"
-                     "--with-initial-vt=7"
-                     "--with-systemdsystemunitdir=$(out)/etc/systemd/system" ];
+  configureFlags = [
+    "--sysconfdir=/etc"
+    "--localstatedir=/var"
+    "--with-plymouth=yes"
+    "--with-initial-vt=7"
+    "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
+  ];
 
   nativeBuildInputs = [ pkgconfig libxml2 itstool intltool autoreconfHook libtool gnome3.dconf ];
-  buildInputs = [ glib accountsservice systemd
-                  gobjectIntrospection libX11 gtk
-                  libcanberra-gtk3 pam plymouth librsvg ];
+  buildInputs = [
+    glib accountsservice systemd
+    gobjectIntrospection libX11 gtk
+    libcanberra-gtk3 pam plymouth librsvg
+  ];
 
   enableParallelBuilding = true;
 
   # Disable Access Control because our X does not support FamilyServerInterpreted yet
-  patches = [ ./sessions_dir.patch
-              ./gdm-x-session_extra_args.patch
-              ./gdm-session-worker_xserver-path.patch
-             ];
-
-  postInstall = ''
-    # Prevent “Could not parse desktop file orca-autostart.desktop or it references a not found TryExec binary”
-    rm $out/share/gdm/greeter/autostart/orca-autostart.desktop
-  '';
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit coreutils plymouth xwayland;
+    })
+    ./sessions_dir.patch
+    ./gdm-x-session_extra_args.patch
+    ./gdm-session-worker_xserver-path.patch
+  ];
 
-  installFlags = [ "sysconfdir=$(out)/etc" "dbusconfdir=$(out)/etc/dbus-1/system.d" ];
+  installFlags = [
+    "sysconfdir=$(out)/etc"
+    "dbusconfdir=$(out)/etc/dbus-1/system.d"
+  ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "gdm";
+      attrPath = "gnome3.gdm";
+    };
+  };
 
   meta = with stdenv.lib; {
-    homepage = https://wiki.gnome.org/Projects/GDM;
     description = "A program that manages graphical display servers and handles graphical user logins";
-    platforms = platforms.linux;
+    homepage = https://wiki.gnome.org/Projects/GDM;
+    license = licenses.gpl2Plus;
     maintainers = gnome3.maintainers;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch b/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch
new file mode 100644
index 000000000000..adac2dc913cc
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch
@@ -0,0 +1,60 @@
+--- a/daemon/gdm-local-display-factory.c
++++ b/daemon/gdm-local-display-factory.c
+@@ -450,7 +450,7 @@
+ #ifdef ENABLE_WAYLAND_SUPPORT
+                         gboolean wayland_enabled = FALSE;
+                         if (gdm_settings_direct_get_boolean (GDM_KEY_WAYLAND_ENABLE, &wayland_enabled)) {
+-                                if (wayland_enabled && g_file_test ("/usr/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) ) {
++                                if (wayland_enabled && g_file_test ("@xwayland@/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) ) {
+                                         session_type = "wayland";
+                                 }
+                         }
+--- a/daemon/gdm-manager.c
++++ b/daemon/gdm-manager.c
+@@ -147,7 +147,7 @@
+         GError  *error;
+ 
+         error = NULL;
+-        res = g_spawn_command_line_sync ("/bin/plymouth --ping",
++        res = g_spawn_command_line_sync ("@plymouth@/bin/plymouth --ping",
+                                          NULL, NULL, &status, &error);
+         if (! res) {
+                 g_debug ("Could not ping plymouth: %s", error->message);
+@@ -165,7 +165,7 @@
+         GError  *error;
+ 
+         error = NULL;
+-        res = g_spawn_command_line_sync ("/bin/plymouth deactivate",
++        res = g_spawn_command_line_sync ("@plymouth@/bin/plymouth deactivate",
+                                          NULL, NULL, NULL, &error);
+         if (! res) {
+                 g_warning ("Could not deactivate plymouth: %s", error->message);
+@@ -180,7 +180,7 @@
+         GError  *error;
+ 
+         error = NULL;
+-        res = g_spawn_command_line_async ("/bin/plymouth quit --retain-splash", &error);
++        res = g_spawn_command_line_async ("@plymouth@/bin/plymouth quit --retain-splash", &error);
+         if (! res) {
+                 g_warning ("Could not quit plymouth: %s", error->message);
+                 g_error_free (error);
+@@ -196,7 +196,7 @@
+         GError  *error;
+ 
+         error = NULL;
+-        res = g_spawn_command_line_async ("/bin/plymouth quit", &error);
++        res = g_spawn_command_line_async ("@plymouth@/bin/plymouth quit", &error);
+         if (! res) {
+                 g_warning ("Could not quit plymouth: %s", error->message);
+                 g_error_free (error);
+--- a/data/gdm.service.in
++++ b/data/gdm.service.in
+@@ -28,7 +28,7 @@
+ StandardOutput=syslog
+ StandardError=inherit
+ EnvironmentFile=-@LANG_CONFIG_FILE@
+-ExecReload=/bin/kill -SIGHUP $MAINPID
++ExecReload=@coreutils@/bin/kill -SIGHUP $MAINPID
+ 
+ [Install]
+ Alias=display-manager.service
diff --git a/pkgs/desktops/gnome-3/core/gdm/sessions_dir.patch b/pkgs/desktops/gnome-3/core/gdm/sessions_dir.patch
index bbc803d49c19..7722e2550bdb 100644
--- a/pkgs/desktops/gnome-3/core/gdm/sessions_dir.patch
+++ b/pkgs/desktops/gnome-3/core/gdm/sessions_dir.patch
@@ -1,8 +1,17 @@
-diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
-index ff3a1acb..b8705d8f 100644
+--- a/daemon/gdm-launch-environment.c
++++ b/daemon/gdm-launch-environment.c
+@@ -126,7 +126,7 @@
+                 "LC_COLLATE", "LC_MONETARY", "LC_MESSAGES", "LC_PAPER",
+                 "LC_NAME", "LC_ADDRESS", "LC_TELEPHONE", "LC_MEASUREMENT",
+                 "LC_IDENTIFICATION", "LC_ALL", "WINDOWPATH", "XCURSOR_PATH",
+-                "XDG_CONFIG_DIRS", NULL
++                "XDG_CONFIG_DIRS", "GDM_SESSIONS_DIR", NULL
+         };
+         char *system_data_dirs;
+         int i;
 --- a/daemon/gdm-session.c
 +++ b/daemon/gdm-session.c
-@@ -344,6 +344,7 @@ get_system_session_dirs (GdmSession *self)
+@@ -345,12 +345,17 @@
          char **search_dirs;
  
          static const char *x_search_dirs[] = {
@@ -10,8 +19,7 @@ index ff3a1acb..b8705d8f 100644
                  "/etc/X11/sessions/",
                  DMCONFDIR "/Sessions/",
                  DATADIR "/gdm/BuiltInSessions/",
-@@ -351,6 +352,10 @@ get_system_session_dirs (GdmSession *self)
-                 NULL
+                 DATADIR "/xsessions/",
          };
  
 +        if (getenv("GDM_SESSIONS_DIR") != NULL) {
@@ -21,3 +29,24 @@ index ff3a1acb..b8705d8f 100644
          static const char *wayland_search_dir = DATADIR "/wayland-sessions/";
  
          search_array = g_array_new (TRUE, TRUE, sizeof (char *));
+--- a/libgdm/gdm-sessions.c
++++ b/libgdm/gdm-sessions.c
+@@ -217,6 +217,7 @@
+ {
+         int         i;
+         const char *xorg_search_dirs[] = {
++                "/var/empty/",
+                 "/etc/X11/sessions/",
+                 DMCONFDIR "/Sessions/",
+                 DATADIR "/gdm/BuiltInSessions/",
+@@ -224,6 +225,10 @@
+                 NULL
+         };
+ 
++        if (g_getenv("GDM_SESSIONS_DIR") != NULL) {
++                xorg_search_dirs[0] = g_getenv("GDM_SESSIONS_DIR");
++        };
++
+ #ifdef ENABLE_WAYLAND_SUPPORT
+         const char *wayland_search_dirs[] = {
+                 DATADIR "/wayland-sessions/",
diff --git a/pkgs/desktops/gnome-3/core/gjs/default.nix b/pkgs/desktops/gnome-3/core/gjs/default.nix
index fc352de2acf8..1bf640f713f7 100644
--- a/pkgs/desktops/gnome-3/core/gjs/default.nix
+++ b/pkgs/desktops/gnome-3/core/gjs/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "gjs-${version}";
-  version = "1.52.2";
+  version = "1.52.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gjs/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "00x08ypx61i3k84bmvkhdj37q81g79lzm5sxqm1lz4xzzad9rg98";
+    sha256 = "1z4n15wdz6pbqd2hfzrqc8mmprhv50v4jk43p08v0xv07yldh8ff";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
index c8636cb1dc1f..5799e613d5bc 100644
--- a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
@@ -5,13 +5,13 @@
 , vala, meson, ninja }:
 
 let
-  version = "3.28.1";
+  version = "3.28.2";
 in stdenv.mkDerivation rec {
   name = "gnome-contacts-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-contacts/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "17iinxqf221kk9yppv3yhg0m7jxk5zvwxmdf3hjygf9xgfw7z3zi";
+    sha256 = "1ilgmvgprn1slzmrzbs0zwgbzxp04rn5ycqd9c8zfvyh6zzwwr8w";
   };
 
   propagatedUserEnvPkgs = [ evolution-data-server ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
index 740748631ee2..39108141c93c 100644
--- a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnome-keyring-${version}";
-  version = "3.28.0.2";
+  version = "3.28.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-keyring/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "0a52xz535vgfymjw3cxmryi3xn2ik24vwk6sixyb7q6jgmqi4bw8";
+    sha256 = "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/core/gnome-menus/default.nix b/pkgs/desktops/gnome-3/core/gnome-menus/default.nix
index fdd23d134599..8a316b60f025 100644
--- a/pkgs/desktops/gnome-3/core/gnome-menus/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-menus/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ intltool glib gobjectIntrospection ];
 
   meta = {
-    homepage = http://www.gnome.org;
+    homepage = https://www.gnome.org;
     description = "Gnome menu specification";
 
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
index 7ba3545848f7..a963ea148bad 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnome-shell-extensions-${version}";
-  version = "3.28.0";
+  version = "3.28.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell-extensions/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "00xm5r4q40c0ji80vrsqg2fkrvzb1nm75p3ikv6bsmd3gfvwwp91";
+    sha256 = "0n4h8rdnq3knrvlg6inrl62a73h20dbhfgniwy18572jicrh5ip9";
   };
 
   passthru = {
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     # Fixup adapted from export-zips.sh in the source.
 
     extensiondir=$out/share/gnome-shell/extensions
-    schemadir=$out/share/gsettings-schemas/gnome-shell-extensions-3.28.0/glib-2.0/schemas/
+    schemadir=$out/share/gsettings-schemas/${name}/glib-2.0/schemas/
 
     glib-compile-schemas $schemadir
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
index 70177d0a516e..772df5d24417 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -1,7 +1,7 @@
 { fetchurl, fetchpatch, substituteAll, stdenv, meson, ninja, pkgconfig, gnome3, json-glib, libcroco, gettext, libsecret
 , 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
+, libgweather, libcanberra-gtk3, librsvg, geoclue2, perl, docbook_xml_dtd_42, desktop-file-utils
 , libpulseaudio, libical, nss, gobjectIntrospection, gstreamer, wrapGAppsHook
 , accountsservice, gdk_pixbuf, gdm, upower, ibus, networkmanagerapplet
 , sassc, systemd, gst_all_1 }:
@@ -13,11 +13,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "gnome-shell-${version}";
-  version = "3.28.0";
+  version = "3.28.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "0kmsh305cfr3fg40rhwykqbl466lwcq9djda25kf29ib7h6w1pn7";
+    sha256 = "1b9n89ij2g5nqaqp7a13jnqcd8qa2v9p55rbi71al3xvqk091ri7";
   };
 
   # Needed to find /etc/NetworkManager/VPN
@@ -27,7 +27,7 @@ in stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     meson ninja pkgconfig gettext docbook_xsl docbook_xsl_ns docbook_xml_dtd_42 perl wrapGAppsHook glibcLocales
-    sassc
+    sassc desktop-file-utils
   ];
   buildInputs = with gnome3; [
     systemd caribou
@@ -59,6 +59,7 @@ in stdenv.mkDerivation rec {
     })
     (substituteAll {
       src = ./fix-paths.patch;
+      inherit (gnome3) libgnomekbd;
       inherit unzip;
     })
   ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch
index 7b7ff85a7c81..32a0cc476da0 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch
@@ -9,3 +9,14 @@
                                            null,
                                            GLib.SpawnFlags.SEARCH_PATH | GLib.SpawnFlags.DO_NOT_REAP_CHILD,
                                            null);
+--- a/js/ui/status/keyboard.js
++++ b/js/ui/status/keyboard.js
+@@ -1019,7 +1019,7 @@
+         if (xkbVariant.length > 0)
+             description = description + '\t' + xkbVariant;
+ 
+-        Util.spawn(['gkbd-keyboard-display', '-l', description]);
++        Util.spawn(['@libgnomekbd@/bin/gkbd-keyboard-display', '-l', description]);
+     },
+ 
+     _containerGetPreferredWidth: function(container, for_height, alloc) {
diff --git a/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
index 21a1e1a1c4c7..2d5080841a4a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, substituteAll, pkgconfig, meson, ninja, gettext, gnome3, wrapGAppsHook, packagekit, ostree
-, glib, appstream-glib, libsoup, polkit, isocodes, gspell, libxslt, gobjectIntrospection
+, glib, appstream-glib, libsoup, polkit, isocodes, gspell, libxslt, gobjectIntrospection, flatpak
 , json-glib, libsecret, valgrind-light, docbook_xsl, docbook_xml_dtd_42, gtk-doc, desktop-file-utils }:
 
 stdenv.mkDerivation rec {
@@ -27,11 +27,10 @@ stdenv.mkDerivation rec {
     gnome3.gtk glib packagekit appstream-glib libsoup
     gnome3.gsettings-desktop-schemas gnome3.gnome-desktop
     gspell json-glib libsecret ostree
-    polkit
+    polkit flatpak
   ];
 
   mesonFlags = [
-    "-Denable-flatpak=false"
     "-Denable-rpm=false"
     "-Denable-fwupd=false"
     "-Denable-oauth=false"
diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix
index 623d2b1251e1..20dda08f9800 100644
--- a/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "mutter-${version}";
-  version = "3.28.0";
+  version = "3.28.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/mutter/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "1c46sf10mgvwgym4c6hbjm7wa82dvfv8j8dx4zdbc7zj4n0grzsq";
+    sha256 = "0ighs1zvlssgq16v1h3vg280za7y448snq65gc5m1zmqqawqkymg";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/core/tracker-miners/default.nix b/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
index b612db9ce38b..44b0de37d69c 100644
--- a/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
+++ b/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
@@ -1,47 +1,101 @@
-{ stdenv, intltool, fetchurl, libxml2, upower
-, substituteAll, pkgconfig, gtk3, glib, gexiv2
-, bash, wrapGAppsHook, itstool, vala, sqlite, libxslt
-, gnome3, librsvg, gdk_pixbuf, libnotify
-, evolution-data-server, gst_all_1, poppler
-, icu, taglib, libjpeg, libtiff, giflib, libcue
-, libvorbis, flac, exempi, networkmanager
-, libpng, libexif, libgsf, libuuid, bzip2
-, libsoup, json-glib, libseccomp
-, libiptcdata }:
-
-let
+{ stdenv, fetchurl, substituteAll, intltool, itstool, libxslt, makeWrapper
+, meson, ninja, pkgconfig, vala, wrapGAppsHook, bzip2, dbus, evolution-data-server
+, exempi, flac, giflib, glib, gnome3, gst_all_1, icu, json-glib, libcue, libexif
+, libgsf, libiptcdata, libjpeg, libpng, libseccomp, libsoup, libtiff, libuuid
+, libvorbis, libxml2, poppler, taglib, upower }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
   pname = "tracker-miners";
   version = "2.0.4";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0mp9m2waii583sjgr61m1ni6py6dry11r0rzidgvw1g4cxhn89j6";
   };
 
-  NIX_CFLAGS_COMPILE = "-I${poppler.dev}/include/poppler";
+  # https://github.com/NixOS/nixpkgs/issues/39547
+  LIBRARY_PATH = stdenv.lib.makeLibraryPath [ giflib ];
 
-  enableParallelBuilding = true;
+  nativeBuildInputs = [
+    intltool
+    itstool
+    libxslt
+    makeWrapper
+    meson
+    ninja
+    pkgconfig
+    vala
+    wrapGAppsHook
+  ];
 
-  nativeBuildInputs = [ vala pkgconfig intltool itstool libxslt wrapGAppsHook ];
   # TODO: add libgrss, libenca, libosinfo
   buildInputs = [
-    bzip2 evolution-data-server exempi flac giflib glib gnome3.totem-pl-parser
-    gnome3.tracker gst_all_1.gst-plugins-base gst_all_1.gstreamer icu
-    json-glib libcue libexif libgsf libiptcdata libjpeg libpng libseccomp libsoup
-    libtiff libuuid libvorbis libxml2 poppler taglib upower gexiv2
+    bzip2
+    dbus
+    evolution-data-server
+    exempi
+    flac
+    giflib
+    glib
+    gnome3.gexiv2
+    gnome3.totem-pl-parser
+    gnome3.tracker
+    gst_all_1.gst-plugins-base
+    gst_all_1.gstreamer
+    icu
+    json-glib
+    libcue
+    libexif
+    libgsf
+    libiptcdata
+    libjpeg
+    libpng
+    libseccomp
+    libsoup
+    libtiff
+    libuuid
+    libvorbis
+    libxml2
+    poppler
+    taglib
+    upower
   ];
 
-  LANG = "en_US.UTF-8"; # for running tests
-
-  doCheck = true;
+  mesonFlags = [
+    "-Dminer_rss=false" # needs libgrss
+  ];
 
   patches = [
     (substituteAll {
       src = ./fix-paths.patch;
       inherit (gnome3) tracker;
     })
+    # https://bugzilla.gnome.org/show_bug.cgi?id=795573
+    (fetchurl {
+      url = https://bugzilla.gnome.org/attachment.cgi?id=371422;
+      sha256 = "1rzwzrc7q73k42s1j1iw52chy10w6y3xksfrzg2l42nn9wk7n281";
+    })
+    # https://bugzilla.gnome.org/show_bug.cgi?id=795574
+    (fetchurl {
+      url = https://bugzilla.gnome.org/attachment.cgi?id=371423;
+      sha256 = "0b2ck8z4b2yrgwg4v9jsac5n8h3a91qkp90vv17wxcvr4v50fg48";
+    })
+    # https://bugzilla.gnome.org/show_bug.cgi?id=795575
+    (fetchurl {
+      url = https://bugzilla.gnome.org/attachment.cgi?id=371424;
+      sha256 = "03i29fabxrpraydh7712vdrc571qmiq0l4axj24gbi6h77xn7mxc";
+    })
+    # https://bugzilla.gnome.org/show_bug.cgi?id=795576
+    (fetchurl {
+      url = https://bugzilla.gnome.org/attachment.cgi?id=371427;
+      sha256 = "187flswvzymjfxwfrrhizb1cvs780zm39aa3i2vwa5fbllr7kcpf";
+    })
+    # https://bugzilla.gnome.org/show_bug.cgi?id=795577
+    (fetchurl {
+      url = https://bugzilla.gnome.org/attachment.cgi?id=371425;
+      sha256 = "05m629469jr2lm2cjs54n7xwyim2d5rwwvdjxzcwh5qpfjds5phm";
+    })
   ];
 
   passthru = {
@@ -51,11 +105,26 @@ in stdenv.mkDerivation rec {
     };
   };
 
+  # https://github.com/NixOS/nixpkgs/pull/39534#discussion_r184339131
+  # https://github.com/NixOS/nixpkgs/pull/37693
+  preConfigure = ''
+    mesonFlagsArray+=("-Ddbus_services=$out/share/dbus-1/services")
+  '';
+
+  postInstall = ''
+    ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas
+  '';
+  
+  # https://bugzilla.gnome.org/show_bug.cgi?id=796145
+  postFixup = ''
+    rm $out/share/tracker/miners/org.freedesktop.Tracker1.Miner.RSS.service
+  '';
+
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Projects/Tracker;
     description = "Desktop-neutral user information store, search tool and indexer";
     maintainers = gnome3.maintainers;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix b/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix
index d777ec0baae5..3b580abed12c 100644
--- a/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix
+++ b/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, glib, gtk3, libgee, intltool, gnome3, libintlOrEmpty }:
+{ stdenv, fetchurl, pkgconfig, glib, gtk3, libgee, intltool, gnome3
+, libintl }:
 
 let
   pname = "libgnome-games-support";
@@ -11,10 +12,8 @@ in stdenv.mkDerivation rec {
     sha256 = "1j7lfcnc29lgn8ppn13wkn9w2y1n3lsapagwp91zh3bf0h2h4hv1";
   };
 
-  nativeBuildInputs = [ pkgconfig intltool ] ++ libintlOrEmpty;
-  buildInputs = [ glib gtk3 libgee ];
-
-  NIX_LDFLAGS = if stdenv.isDarwin then "-lintl" else null;
+  nativeBuildInputs = [ pkgconfig intltool ];
+  buildInputs = [ glib gtk3 libgee libintl ];
 
   passthru = {
     updateScript = gnome3.updateScript {
diff --git a/pkgs/desktops/lxde/core/lxtask/default.nix b/pkgs/desktops/lxde/core/lxtask/default.nix
index dbed065190e6..ad4b89165fa1 100644
--- a/pkgs/desktops/lxde/core/lxtask/default.nix
+++ b/pkgs/desktops/lxde/core/lxtask/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk3 }:
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, libintl }:
 
 stdenv.mkDerivation rec {
   name = "lxtask-${version}";
@@ -11,12 +11,10 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig intltool ];
 
-  buildInputs = [ gtk3 ];
+  buildInputs = [ gtk3 libintl ];
 
   configureFlags = [ "--enable-gtk3" ];
 
-  NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
-
   meta = {
     description = "Lightweight and desktop independent task manager";
     longDescription = ''
diff --git a/pkgs/desktops/mate/caja/default.nix b/pkgs/desktops/mate/caja/default.nix
index 9643c9a34164..a04dbb27a88b 100644
--- a/pkgs/desktops/mate/caja/default.nix
+++ b/pkgs/desktops/mate/caja/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "caja-${version}";
-  version = "1.21.0";
+  version = "1.21.1";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "0v8zx5rzqh1zkwizkpdckmwm6004cv9sbjghzgz3049xzcqm371g";
+    sha256 = "013lmngnm0i2746qrkkyhg62kyh4cjdd0i634cz5fm7ah65ylxg4";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/mate-panel/default.nix b/pkgs/desktops/mate/mate-panel/default.nix
index df1c15bddd37..c0c3cd48376e 100644
--- a/pkgs/desktops/mate/mate-panel/default.nix
+++ b/pkgs/desktops/mate/mate-panel/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-panel-${version}";
-  version = "1.20.1";
+  version = "1.21.0";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "1vmvn93apvq6r9m823zyrncbxgsjr4nmigw9k4s4n05z8zd8wy8k";
+    sha256 = "0vn523jscmxhyv80fmrnvk1wmyp4kdzr4g7yypqnsg4kg2gmr7x0";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/maxx/default.nix b/pkgs/desktops/maxx/default.nix
index 69d16c9b20a1..10fa745d9787 100644
--- a/pkgs/desktops/maxx/default.nix
+++ b/pkgs/desktops/maxx/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, makeWrapper, libredirect, gcc-unwrapped, bash, gtk-engine-murrine, gtk_engines, librsvg
+{ stdenv, fetchurl, makeWrapper, autoPatchelfHook
+, libredirect, gcc-unwrapped, bash, gtk-engine-murrine, gtk_engines, librsvg
 
 , libX11, libXext, libXi, libXau, libXrender, libXft, libXmu, libSM, libXcomposite, libXfixes, libXpm
 , libXinerama, libXdamage, libICE, libXtst, libXaw, fontconfig, pango, cairo, glib, libxml2, atk, gtk2
@@ -9,11 +10,6 @@
 let
   version = "Indy-1.1.0";
 
-  deps = [
-    stdenv.cc.cc libX11 libXext libXi libXau libXrender libXft libXmu libSM libXcomposite libXfixes libXpm
-    libXinerama libXdamage libICE libXtst libXaw fontconfig pango cairo glib libxml2 atk gtk2
-    gdk_pixbuf libGL ncurses
-  ];
   runtime_deps = [
     xclock xsettingsd
   ];
@@ -31,7 +27,12 @@ in stdenv.mkDerivation {
     })
   ];
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
+  buildInputs = [
+    stdenv.cc.cc libX11 libXext libXi libXau libXrender libXft libXmu libSM libXcomposite libXfixes libXpm
+    libXinerama libXdamage libICE libXtst libXaw fontconfig pango cairo glib libxml2 atk gtk2
+    gdk_pixbuf libGL ncurses
+  ];
 
   buildPhase = ''
     while IFS= read -r -d ''$'\0' i; do
@@ -58,15 +59,11 @@ in stdenv.mkDerivation {
       --prefix PATH : ${stdenv.lib.makeBinPath runtime_deps}
 
     while IFS= read -r -d ''$'\0' i; do
-      if isELF "$i"; then
-        bin=`patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$i"; echo $?`
-        patchelf --set-rpath "$maxx/lib64:$maxx/OpenMotif-2.1.32/lib64:$maxx/OpenMotif-2.3.1/lib64:${stdenv.lib.makeLibraryPath deps}" "$i"
-        if [ "$bin" -eq 0 ]; then
-          wrapProgram "$i" \
-            --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
-            --set NIX_REDIRECTS /opt/MaXX=$maxx \
-            --prefix PATH : $maxx/sbin
-        fi
+      if isExecutable "$i"; then
+        wrapProgram "$i" \
+          --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
+          --set NIX_REDIRECTS /opt/MaXX=$maxx \
+          --prefix PATH : $maxx/sbin
       fi
     done < <(find "$maxx" -type f -print0)
 
diff --git a/pkgs/desktops/plasma-5/fetch.sh b/pkgs/desktops/plasma-5/fetch.sh
index 117401b0eab1..c73598f03d02 100644
--- a/pkgs/desktops/plasma-5/fetch.sh
+++ b/pkgs/desktops/plasma-5/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/plasma/5.12.4/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/plasma/5.12.5/ -A '*.tar.xz' )
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/default.nix b/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
index 35d90a246bc6..8cfc947d30bd 100644
--- a/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
+++ b/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
@@ -1,21 +1,25 @@
 {
   mkDerivation,
-  extra-cmake-modules,
+  extra-cmake-modules, wrapGAppsHook,
   glib, gtk2, gtk3, karchive, kcmutils, kconfigwidgets, ki18n, kiconthemes, kio,
   knewstuff, gsettings-desktop-schemas
 }:
 
 mkDerivation {
   name = "kde-gtk-config";
-  nativeBuildInputs = [ extra-cmake-modules ];
+  nativeBuildInputs = [ extra-cmake-modules wrapGAppsHook ];
+  dontWrapGApps = true;  # There is nothing to wrap
   buildInputs = [
     ki18n kio glib gtk2 gtk3 karchive kcmutils kconfigwidgets kiconthemes
     knewstuff gsettings-desktop-schemas
   ];
-  patches = [ ./0001-follow-symlinks.patch ];
+  patches = [ ./patches/follow-symlinks.patch ./patches/gsettings.patch ];
   cmakeFlags = [
     "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
     "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include"
     "-DGLIB_SCHEMAS_DIR=${gsettings-desktop-schemas.out}/"
   ];
+  preConfigure = ''
+    NIX_CFLAGS_COMPILE+=" -DGSETTINGS_SCHEMAS_PATH=\"$GSETTINGS_SCHEMAS_PATH\""
+  '';
 }
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/0001-follow-symlinks.patch b/pkgs/desktops/plasma-5/kde-gtk-config/patches/follow-symlinks.patch
index d610d19eedd2..f30a0a4588fa 100644
--- a/pkgs/desktops/plasma-5/kde-gtk-config/0001-follow-symlinks.patch
+++ b/pkgs/desktops/plasma-5/kde-gtk-config/patches/follow-symlinks.patch
@@ -8,11 +8,11 @@ Subject: [PATCH] follow symlinks
  src/iconthemesmodel.cpp | 2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/src/appearancegtk2.cpp b/src/appearancegtk2.cpp
-index b1e0b52..095cddc 100644
---- a/src/appearancegtk2.cpp
-+++ b/src/appearancegtk2.cpp
-@@ -73,7 +73,7 @@ QString AppearanceGTK2::themesGtkrcFile(const QString& themeName) const
+Index: kde-gtk-config-5.12.4/src/appearancegtk2.cpp
+===================================================================
+--- kde-gtk-config-5.12.4.orig/src/appearancegtk2.cpp
++++ kde-gtk-config-5.12.4/src/appearancegtk2.cpp
+@@ -69,7 +69,7 @@ QString AppearanceGTK2::themesGtkrcFile(
      QStringList themes=installedThemes();
      themes=themes.filter(QRegExp("/"+themeName+"/?$"));
      if(themes.size()==1) {
@@ -21,12 +21,12 @@ index b1e0b52..095cddc 100644
          while(it.hasNext()) {
              it.next();
              if(it.fileName()=="gtkrc") {
-diff --git a/src/iconthemesmodel.cpp b/src/iconthemesmodel.cpp
-index 07c7ad7..b04d978 100644
---- a/src/iconthemesmodel.cpp
-+++ b/src/iconthemesmodel.cpp
-@@ -46,7 +46,7 @@ QList<QDir> IconThemesModel::installedThemesPaths()
-     
+Index: kde-gtk-config-5.12.4/src/iconthemesmodel.cpp
+===================================================================
+--- kde-gtk-config-5.12.4.orig/src/iconthemesmodel.cpp
++++ kde-gtk-config-5.12.4/src/iconthemesmodel.cpp
+@@ -47,7 +47,7 @@ QList<QDir> IconThemesModel::installedTh
+ 
      foreach(const QString& dir, dirs) {
          QDir userIconsDir(dir);
 -        QDirIterator it(userIconsDir.path(), QDir::NoDotAndDotDot|QDir::AllDirs|QDir::NoSymLinks);
@@ -34,14 +34,11 @@ index 07c7ad7..b04d978 100644
          while(it.hasNext()) {
              QString currentPath = it.next();
              QDir dir(currentPath);
--- 
-2.6.2
-
-diff --git a/src/cursorthemesmodel.cpp b/src/cursorthemesmodel.cpp
-index 926a666..85b10f8 100644
---- a/src/cursorthemesmodel.cpp
-+++ b/src/cursorthemesmodel.cpp
-@@ -47,7 +47,7 @@ QList<QDir> CursorThemesModel::installedThemesPaths()
+Index: kde-gtk-config-5.12.4/src/cursorthemesmodel.cpp
+===================================================================
+--- kde-gtk-config-5.12.4.orig/src/cursorthemesmodel.cpp
++++ kde-gtk-config-5.12.4/src/cursorthemesmodel.cpp
+@@ -47,7 +47,7 @@ QList<QDir> CursorThemesModel::installed
  
      foreach(const QString& dir, dirs) {
          QDir userIconsDir(dir);
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/patches/gsettings.patch b/pkgs/desktops/plasma-5/kde-gtk-config/patches/gsettings.patch
new file mode 100644
index 000000000000..b4bc89d59e9e
--- /dev/null
+++ b/pkgs/desktops/plasma-5/kde-gtk-config/patches/gsettings.patch
@@ -0,0 +1,21 @@
+Index: kde-gtk-config-5.12.4/src/gtkconfigkcmodule.cpp
+===================================================================
+--- kde-gtk-config-5.12.4.orig/src/gtkconfigkcmodule.cpp
++++ kde-gtk-config-5.12.4/src/gtkconfigkcmodule.cpp
+@@ -78,6 +78,16 @@ GTKConfigKCModule::GTKConfigKCModule(QWi
+     m_iconsModel = new IconThemesModel(false, this);
+     ui->cb_icon->setModel(m_iconsModel);
+     ui->cb_icon_fallback->setModel(m_iconsModel);
++
++    // Add GSETTINGS_SCHEMAS_PATH to the front of XDG_DATA_DIRS.
++    // Normally this would be done by wrapGAppsHook, but this plugin
++    // (shared object) cannot be wrapped.
++    QByteArray xdgdata = qgetenv("XDG_DATA_DIRS");
++    if (!xdgdata.isEmpty()) {
++        xdgdata.push_front(":");
++    }
++    xdgdata.push_front(QByteArray(GSETTINGS_SCHEMAS_PATH));
++    qputenv("XDG_DATA_DIRS", xdgdata);
+     
+     m_tempGtk2Preview = QStandardPaths::writableLocation(QStandardPaths::TempLocation)+ "/gtkrc-2.0";
+     m_tempGtk3Preview = QStandardPaths::writableLocation(QStandardPaths::TempLocation)+ "/.config/gtk-3.0/settings.ini";
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/patches/series b/pkgs/desktops/plasma-5/kde-gtk-config/patches/series
new file mode 100644
index 000000000000..7aad1acf6ac4
--- /dev/null
+++ b/pkgs/desktops/plasma-5/kde-gtk-config/patches/series
@@ -0,0 +1,2 @@
+follow-symlinks.patch
+gsettings.patch
diff --git a/pkgs/desktops/plasma-5/srcs.nix b/pkgs/desktops/plasma-5/srcs.nix
index df031ba06275..cc1fdb889207 100644
--- a/pkgs/desktops/plasma-5/srcs.nix
+++ b/pkgs/desktops/plasma-5/srcs.nix
@@ -3,355 +3,355 @@
 
 {
   bluedevil = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/bluedevil-5.12.4.tar.xz";
-      sha256 = "1gr7zrs2h3xk6rc16wqh2fx40q6q2vm5nwk2fy9r6z639wyxhk2x";
-      name = "bluedevil-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/bluedevil-5.12.5.tar.xz";
+      sha256 = "0rjxvvg64g4panri4f09fgm571igdijfh92jp616pcqw8v1xqp2a";
+      name = "bluedevil-5.12.5.tar.xz";
     };
   };
   breeze = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/breeze-5.12.4.tar.xz";
-      sha256 = "12baji960mfkb9ynkhz6c2a76m8fwx4kvzwifwn40sxqv5m857w7";
-      name = "breeze-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/breeze-5.12.5.tar.xz";
+      sha256 = "1xxgyq3lhliv6p54akgpclficbcs2xdv15a92jkl8a2s9wbisk3n";
+      name = "breeze-5.12.5.tar.xz";
     };
   };
   breeze-grub = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/breeze-grub-5.12.4.tar.xz";
-      sha256 = "0jnpwznhfml9mshx9zl9wsi8s6ygfplfw4bycq1r9gyxzlcm9zvs";
-      name = "breeze-grub-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/breeze-grub-5.12.5.tar.xz";
+      sha256 = "1w9f2xm4abqcqk2pdb7hi7d4hd1krkhrs9j3zlncxahfvf67ljad";
+      name = "breeze-grub-5.12.5.tar.xz";
     };
   };
   breeze-gtk = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/breeze-gtk-5.12.4.tar.xz";
-      sha256 = "183pj18ldhql845xd2lvd4klp6m2xiiaszprw83n7048s9b0bk4c";
-      name = "breeze-gtk-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/breeze-gtk-5.12.5.tar.xz";
+      sha256 = "0040z43r69kk8l90mvkk8xxzhaw35xm7z2w097sp8xd053y3pdqd";
+      name = "breeze-gtk-5.12.5.tar.xz";
     };
   };
   breeze-plymouth = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/breeze-plymouth-5.12.4.tar.xz";
-      sha256 = "1apv2jqcjmsfvj4xi736vqsly57wwzxv088hsqcryv3l4v4qkyfr";
-      name = "breeze-plymouth-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/breeze-plymouth-5.12.5.tar.xz";
+      sha256 = "15204zqk81rwmdq07jzaiv2aninbbgqmg76dhzcz43lckjfhczq9";
+      name = "breeze-plymouth-5.12.5.tar.xz";
     };
   };
   discover = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/discover-5.12.4.tar.xz";
-      sha256 = "1gyddpafis1yfhh1dz0zvjca8pxnq5z0xvwfbmyh062xmhfy66wq";
-      name = "discover-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/discover-5.12.5.tar.xz";
+      sha256 = "02fjs016825l35gc173mblii2x9ys5cisqw8niyyvllsls4rp27m";
+      name = "discover-5.12.5.tar.xz";
     };
   };
   drkonqi = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/drkonqi-5.12.4.tar.xz";
-      sha256 = "0ijrhd689w6pg4biikfv7w6h5hwfjmsp7wcbpd2dq0xwjp3vnyb6";
-      name = "drkonqi-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/drkonqi-5.12.5.tar.xz";
+      sha256 = "0av0rqgc5a9c8lvpdphp3ifw56qc10qkbjhajlslagxswys73cfq";
+      name = "drkonqi-5.12.5.tar.xz";
     };
   };
   kactivitymanagerd = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/kactivitymanagerd-5.12.4.tar.xz";
-      sha256 = "1llni6dz8014r8gaihnaxg0nn6ihjvqy7bfyigfda6iz5gwfbpcg";
-      name = "kactivitymanagerd-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/kactivitymanagerd-5.12.5.tar.xz";
+      sha256 = "1mpldy47fklm9d91wjj734yw3j3pkfrj377b9c5d8l07agwnk2j1";
+      name = "kactivitymanagerd-5.12.5.tar.xz";
     };
   };
   kde-cli-tools = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/kde-cli-tools-5.12.4.tar.xz";
-      sha256 = "0w6iz9rqi9b6vy18jxksah5lr44211dhfgaxccm0gmggqpiqm5wb";
-      name = "kde-cli-tools-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/kde-cli-tools-5.12.5.tar.xz";
+      sha256 = "0gs0d9p2x3q6pvjj6l7f9xq741rfqgzhbxwvz1s3cx385b85lplh";
+      name = "kde-cli-tools-5.12.5.tar.xz";
     };
   };
   kdecoration = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/kdecoration-5.12.4.tar.xz";
-      sha256 = "0njs3b05hvm5s04cfn56dc98yc8sw52hwlclx0qf1hqcsjmm8bnj";
-      name = "kdecoration-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/kdecoration-5.12.5.tar.xz";
+      sha256 = "0qd5pqm3s1wcmy49mry2plzivg6dhmdp521yahx0mmlk2bssxc3d";
+      name = "kdecoration-5.12.5.tar.xz";
     };
   };
   kde-gtk-config = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/kde-gtk-config-5.12.4.tar.xz";
-      sha256 = "00j2279z4b9qknip4rpaliwpwv25g3d6j9s0ajs151x94cl18wd6";
-      name = "kde-gtk-config-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/kde-gtk-config-5.12.5.tar.xz";
+      sha256 = "1p5vpk85v50dkm787ljf77xa7f25lamxf5jn2qc31r8dnlc25dnh";
+      name = "kde-gtk-config-5.12.5.tar.xz";
     };
   };
   kdeplasma-addons = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/kdeplasma-addons-5.12.4.tar.xz";
-      sha256 = "0ggvxmsj4r25sjaap377i6ap2qkdhjqwslcjym9bcyys1lldbcg5";
-      name = "kdeplasma-addons-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/kdeplasma-addons-5.12.5.tar.xz";
+      sha256 = "1339sapqi0b6pzbsdyhpfssrvfg9sfc3amlfijxsn63swkjvbw2s";
+      name = "kdeplasma-addons-5.12.5.tar.xz";
     };
   };
   kgamma5 = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/kgamma5-5.12.4.tar.xz";
-      sha256 = "1v19ay77vv8y37pxqainkrlh0lpajwxgx4xxra84gzd8g7l4zs0h";
-      name = "kgamma5-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/kgamma5-5.12.5.tar.xz";
+      sha256 = "0p4x8vzjngw7xxnnviiqw89lzs23nrq007211dprnfzgay9c571c";
+      name = "kgamma5-5.12.5.tar.xz";
     };
   };
   khotkeys = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/khotkeys-5.12.4.tar.xz";
-      sha256 = "1lj8axpimh34vbpgwnfhkh3f7njmqy7jihqk51vkq7ngcy1bmd6f";
-      name = "khotkeys-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/khotkeys-5.12.5.tar.xz";
+      sha256 = "1yivh10g66h9dmnabnxx1i26rpg8wf9ibpmc7jcmh7j4h5q0lkzg";
+      name = "khotkeys-5.12.5.tar.xz";
     };
   };
   kinfocenter = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/kinfocenter-5.12.4.tar.xz";
-      sha256 = "0dgybc8xa5lxgmw3nxfh5y085921qm5x6aw0233mwx3zj4v6nsj3";
-      name = "kinfocenter-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/kinfocenter-5.12.5.tar.xz";
+      sha256 = "1g42hk49fjg4rvgvy5phshk8mna3idh55gn4cy1w0q2rl8f0y6b5";
+      name = "kinfocenter-5.12.5.tar.xz";
     };
   };
   kmenuedit = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/kmenuedit-5.12.4.tar.xz";
-      sha256 = "063509xbvpk2n86anpl2kcsb1v4zvx6ycwl1ppyjhgg4jim9p099";
-      name = "kmenuedit-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/kmenuedit-5.12.5.tar.xz";
+      sha256 = "0vbq2s1ibqna19njw421ai4qwq4apww74qcfgk7gwd6p75k37lkw";
+      name = "kmenuedit-5.12.5.tar.xz";
     };
   };
   kscreen = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/kscreen-5.12.4.tar.xz";
-      sha256 = "1pix8gfvgig5phvcqjc7yqvn1pgmdn6l8g56n06pijicrpksq315";
-      name = "kscreen-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/kscreen-5.12.5.tar.xz";
+      sha256 = "1cscy7vimznwy29qr0x11wqxlxcwxvybdhw703mj44bq1szw8s0l";
+      name = "kscreen-5.12.5.tar.xz";
     };
   };
   kscreenlocker = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/kscreenlocker-5.12.4.tar.xz";
-      sha256 = "187c6azmbcfs5w18f450f75hikpvh3lhz7qn8zb93kfm65yvjz1m";
-      name = "kscreenlocker-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/kscreenlocker-5.12.5.tar.xz";
+      sha256 = "08l8knfvhrd3h8z70xq1jiq02bg56jdddxx0ml6jbd8ja9r1svdq";
+      name = "kscreenlocker-5.12.5.tar.xz";
     };
   };
   ksshaskpass = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/ksshaskpass-5.12.4.tar.xz";
-      sha256 = "0k405qp8ji84gd7h3lsyfhsya7z55kw2klj9a0ld9z5r7jpr95z5";
-      name = "ksshaskpass-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/ksshaskpass-5.12.5.tar.xz";
+      sha256 = "0vgqp09cfdlf22xxi0pdzdv0i4hrgvbfj3yrxrfqhfh9zlc3q6y4";
+      name = "ksshaskpass-5.12.5.tar.xz";
     };
   };
   ksysguard = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/ksysguard-5.12.4.tar.xz";
-      sha256 = "0svk5ggdbjqq9lg4ggwijy7nbwmn3mdkmvm1jqbd174myyd6hmwk";
-      name = "ksysguard-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/ksysguard-5.12.5.tar.xz";
+      sha256 = "11wh4skx3vjjrdfaa85a8ijdvsw3fnk02s1n9g6yv0c8h74q2nqv";
+      name = "ksysguard-5.12.5.tar.xz";
     };
   };
   kwallet-pam = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/kwallet-pam-5.12.4.tar.xz";
-      sha256 = "058xxqkyyiwn34iwbmapk6bk6fi3l1g4vwbf125vc9pcbx6nqn2q";
-      name = "kwallet-pam-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/kwallet-pam-5.12.5.tar.xz";
+      sha256 = "18pbsmc44pqbdylczqsx6cargzkkp4vcd44yk7mwjhniw8pi6x33";
+      name = "kwallet-pam-5.12.5.tar.xz";
     };
   };
   kwayland-integration = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/kwayland-integration-5.12.4.tar.xz";
-      sha256 = "1lcz12iqisls2icv4jmgjndlamz2zlfyd9lbn6j2hizz7riybsla";
-      name = "kwayland-integration-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/kwayland-integration-5.12.5.tar.xz";
+      sha256 = "05qcsqyw2n1hpdsiqjvg98i77kwgcdpsr0096nqr62pzf36bsqz3";
+      name = "kwayland-integration-5.12.5.tar.xz";
     };
   };
   kwin = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/kwin-5.12.4.tar.xz";
-      sha256 = "0br27craalz6vqcv2g7jkskk0ia91hrir1wf1phm2lrnn4yadgf8";
-      name = "kwin-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/kwin-5.12.5.tar.xz";
+      sha256 = "1mkmh90pl4pz1bb3n9zl6x6lxvr8xkj7r795qj70s9jxavl40fj3";
+      name = "kwin-5.12.5.tar.xz";
     };
   };
   kwrited = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/kwrited-5.12.4.tar.xz";
-      sha256 = "0m2snmvyxfnmlhfpvghp3w6apmba7rna9xsp5szdzrxgrd92ibgy";
-      name = "kwrited-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/kwrited-5.12.5.tar.xz";
+      sha256 = "0vvlkr4w4vwgkl9sili63cwlp0lsxlnzwfwmhpa5nrwcjgbyfbmz";
+      name = "kwrited-5.12.5.tar.xz";
     };
   };
   libkscreen = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/libkscreen-5.12.4.tar.xz";
-      sha256 = "1dq5mbz7vqz4dzgnpsxgmygnz00d7ziqs98qcdgfcbvkh0j4sqsr";
-      name = "libkscreen-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/libkscreen-5.12.5.tar.xz";
+      sha256 = "0hzdchkxlv5l3zx7lxzj0x44kn3086gxnhmas9w1n9b6qrf0sjb4";
+      name = "libkscreen-5.12.5.tar.xz";
     };
   };
   libksysguard = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/libksysguard-5.12.4.tar.xz";
-      sha256 = "09mqfr4dxiq4xs4ihrxvsa9wf8azmilpnl5jbi06pfw5bd1q6fpd";
-      name = "libksysguard-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/libksysguard-5.12.5.tar.xz";
+      sha256 = "0dbf3xx52xqyzaxvybmjra0z1lc3qcbb0aqmsga8rjj77bmj3kx9";
+      name = "libksysguard-5.12.5.tar.xz";
     };
   };
   milou = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/milou-5.12.4.tar.xz";
-      sha256 = "0v0m4a0idah99dvsmgng6kmlcqwpwh1rbd2j9ih7ka1xmlshdml7";
-      name = "milou-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/milou-5.12.5.tar.xz";
+      sha256 = "0v0zkwmh7rzqbgw1ypqz18bd3gn3x8iag0q9lrk6zzpd66j2r1fc";
+      name = "milou-5.12.5.tar.xz";
     };
   };
   oxygen = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/oxygen-5.12.4.tar.xz";
-      sha256 = "1k9kls7xzwb49gwjlhyxhg2jn9zh034csbdlz0pnq9h1yzwph4wa";
-      name = "oxygen-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/oxygen-5.12.5.tar.xz";
+      sha256 = "0336bkvn8mqrbswnhg87ah7k3w7i99c8rfpfvhw5qq3mm6jvbi4l";
+      name = "oxygen-5.12.5.tar.xz";
     };
   };
   plasma-desktop = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/plasma-desktop-5.12.4.tar.xz";
-      sha256 = "16g2vnbfd7nl61hfx7i6b3m0hms2aw4v85nbj8mf2i6csc1vzhmy";
-      name = "plasma-desktop-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/plasma-desktop-5.12.5.tar.xz";
+      sha256 = "0rm7j8n3yflzl6wpivmjsgrhc5arrnmzfg81arfs06gjdnvwnmd6";
+      name = "plasma-desktop-5.12.5.tar.xz";
     };
   };
   plasma-integration = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/plasma-integration-5.12.4.tar.xz";
-      sha256 = "0qdyckmm52d0bf0062v103hy5szqqgfbh4z6h9bbjcz5l372aklb";
-      name = "plasma-integration-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/plasma-integration-5.12.5.tar.xz";
+      sha256 = "14iciz6zjxrvig58hpqa51cj5r949xq9xgqvs8glzldzg34928sm";
+      name = "plasma-integration-5.12.5.tar.xz";
     };
   };
   plasma-nm = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/plasma-nm-5.12.4.tar.xz";
-      sha256 = "1mvj41hxd42wk8ja186vxv080igrdza6sqbgcajk48r2klybpfzj";
-      name = "plasma-nm-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/plasma-nm-5.12.5.tar.xz";
+      sha256 = "1awnd9gdciwrwyl2xs9h778fizhnbw8wm8ddbqr8050v7fkc7fs6";
+      name = "plasma-nm-5.12.5.tar.xz";
     };
   };
   plasma-pa = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/plasma-pa-5.12.4.tar.xz";
-      sha256 = "1mngqa9957m45ij73xp3lzp19hmwwq9h40ig39mwh20gm5jrdw56";
-      name = "plasma-pa-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/plasma-pa-5.12.5.tar.xz";
+      sha256 = "13z9shlnprbjgqy1w8lf3brjcvmh76fpl0xv3q2r7kvcgm1ndjdd";
+      name = "plasma-pa-5.12.5.tar.xz";
     };
   };
   plasma-sdk = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/plasma-sdk-5.12.4.tar.xz";
-      sha256 = "1mw477p1z396gsbdx3m9cp0b2ljhqjw39grklg7l4cgrhiwrnjk2";
-      name = "plasma-sdk-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/plasma-sdk-5.12.5.tar.xz";
+      sha256 = "0rrwis63khq1b6shxrp5cj6dgz9lhrccs7752f7j73pi5fpmbz0g";
+      name = "plasma-sdk-5.12.5.tar.xz";
     };
   };
   plasma-tests = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/plasma-tests-5.12.4.tar.xz";
-      sha256 = "13gq7mfimh4xd4f2vqaqri3f1v8nh7yixqppjip8s9mq3amf6xd9";
-      name = "plasma-tests-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/plasma-tests-5.12.5.tar.xz";
+      sha256 = "1rq8li7y3qf1ipyhy869lw3znmssf5grbh522qla4sn08d1lhxij";
+      name = "plasma-tests-5.12.5.tar.xz";
     };
   };
   plasma-vault = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/plasma-vault-5.12.4.tar.xz";
-      sha256 = "022vqjra25v9bw9j14j0a5jl9r08iqvzd5zn0dhz6l4bj0amcd8n";
-      name = "plasma-vault-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/plasma-vault-5.12.5.tar.xz";
+      sha256 = "0zrwsqcpkssrfhy2xgg4y2k2w6l7vyn7mqani9lw18i13vp2fh1d";
+      name = "plasma-vault-5.12.5.tar.xz";
     };
   };
   plasma-workspace = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/plasma-workspace-5.12.4.tar.xz";
-      sha256 = "00n2i6hj0fqss69gmmdhf32sfybak3l1iw379ljc3l4k6b3kzmh7";
-      name = "plasma-workspace-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/plasma-workspace-5.12.5.tar.xz";
+      sha256 = "1vy5p22y6jckhm09171pjacdrndl7vak6grwvzg8bmhqk1ahzdwk";
+      name = "plasma-workspace-5.12.5.tar.xz";
     };
   };
   plasma-workspace-wallpapers = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/plasma-workspace-wallpapers-5.12.4.tar.xz";
-      sha256 = "1y2mqkql2nadq3npxjp5hr2vzq3i45b4xp7gzcjl9bb2wppmhv4j";
-      name = "plasma-workspace-wallpapers-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/plasma-workspace-wallpapers-5.12.5.tar.xz";
+      sha256 = "1p6kcakdw020pjwdfdhh1v8bha8r6j9934nid7vv7ldp388mq6a7";
+      name = "plasma-workspace-wallpapers-5.12.5.tar.xz";
     };
   };
   plymouth-kcm = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/plymouth-kcm-5.12.4.tar.xz";
-      sha256 = "1aakf2qrbnnv2n2rp57jql6nvl9i5mxpy0f4f5bjlqjxhzjlwwkn";
-      name = "plymouth-kcm-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/plymouth-kcm-5.12.5.tar.xz";
+      sha256 = "1fv2b792d7bg5vdix823fks8capgbnda94fc8z91nsffa894p0i9";
+      name = "plymouth-kcm-5.12.5.tar.xz";
     };
   };
   polkit-kde-agent = {
-    version = "1-5.12.4";
+    version = "1-5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/polkit-kde-agent-1-5.12.4.tar.xz";
-      sha256 = "0wwk1cr4mh2csjv0xrahzwyxyg8znd839zz518hfxdcv9a1rba2q";
-      name = "polkit-kde-agent-1-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/polkit-kde-agent-1-5.12.5.tar.xz";
+      sha256 = "01plpzhj2fc2i3hjqb75skmyiy9dg3mw2h1sxsl7hxmbvm9fv9if";
+      name = "polkit-kde-agent-1-5.12.5.tar.xz";
     };
   };
   powerdevil = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/powerdevil-5.12.4.tar.xz";
-      sha256 = "043k0zhab6nqa1kc09d9d8jg7j1sd7jy0zhrwb66lf29yc6iyahx";
-      name = "powerdevil-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/powerdevil-5.12.5.tar.xz";
+      sha256 = "07f3kqvfqgqpz50fk8dwyr5z1hylli0k4ndlcp5mkybiraz1rdjk";
+      name = "powerdevil-5.12.5.tar.xz";
     };
   };
   sddm-kcm = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/sddm-kcm-5.12.4.tar.xz";
-      sha256 = "0bm8h5r4nin0hx1nfqya1lxcp93745shk6ifqrizgzw1ldqqyah7";
-      name = "sddm-kcm-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/sddm-kcm-5.12.5.tar.xz";
+      sha256 = "13qqyvq7rk7h65krjaqgil2rxjj7073arxp4bij5g534ckpwkz3h";
+      name = "sddm-kcm-5.12.5.tar.xz";
     };
   };
   systemsettings = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/systemsettings-5.12.4.tar.xz";
-      sha256 = "0af2vqnlwxa7ldra78y0gwq1cra227q49ww7w1cnvgq0il7cav4a";
-      name = "systemsettings-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/systemsettings-5.12.5.tar.xz";
+      sha256 = "0ackzdyfmssq6lh9dranc8nv6bhk633zq1mixibqhswl3pz8n4h8";
+      name = "systemsettings-5.12.5.tar.xz";
     };
   };
   user-manager = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/user-manager-5.12.4.tar.xz";
-      sha256 = "1y144lw1a4q4pp9hw31lr806fpm1p397ibpbagcdr3xaka2z36lm";
-      name = "user-manager-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/user-manager-5.12.5.tar.xz";
+      sha256 = "1566scbw6f02gskwdc2kk6xcbbf7hq6jkz3ka1avkwmyi3xhh010";
+      name = "user-manager-5.12.5.tar.xz";
     };
   };
   xdg-desktop-portal-kde = {
-    version = "5.12.4";
+    version = "5.12.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.12.4/xdg-desktop-portal-kde-5.12.4.tar.xz";
-      sha256 = "18b97mbyfqvf2ygwrggi5zvkv8a9givqjlyaqi184h8mgndn044c";
-      name = "xdg-desktop-portal-kde-5.12.4.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.5/xdg-desktop-portal-kde-5.12.5.tar.xz";
+      sha256 = "1rmjwjx7x481607vp0pjxsabbjhm7qfqa0ax4ciqqlv676hcr5cv";
+      name = "xdg-desktop-portal-kde-5.12.5.tar.xz";
     };
   };
 }
diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix
index d83e51a676cd..67580c530726 100644
--- a/pkgs/desktops/xfce/default.nix
+++ b/pkgs/desktops/xfce/default.nix
@@ -97,6 +97,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   #### PANEL PLUGINS
 
+  xfce4-vala-panel-appmenu-plugin = callPackage ./panel-plugins/xfce4-vala-panel-appmenu-plugin { };
+
   xfce4-battery-plugin = callPackage ./panel-plugins/xfce4-battery-plugin.nix { };
 
   xfce4-clipman-plugin = callPackage ./panel-plugins/xfce4-clipman-plugin.nix { };
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/appmenu-gtk-module.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/appmenu-gtk-module.nix
new file mode 100644
index 000000000000..4db9e03ae721
--- /dev/null
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/appmenu-gtk-module.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, substituteAll, cmake, vala, glib, gtk2, gtk3 }:
+stdenv.mkDerivation rec {
+  name = "vala-panel-appmenu-xfce-${version}";
+  version = "0.6.94";
+
+  src = "${fetchFromGitHub {
+    owner = "rilian-la-te";
+    repo = "vala-panel-appmenu";
+    rev = version;
+    fetchSubmodules = true;
+
+    sha256 = "0xxn3zs60a9nfix8wrdp056wviq281cm1031hznzf1l38lp3wr5p";
+  }}/subprojects/appmenu-gtk-module";
+
+  nativeBuildInputs = [ cmake vala ];
+  buildInputs = [ glib gtk2 gtk3 ];
+
+  configurePhase = ''
+    cmake . -DGTK3_INCLUDE_GDK=
+  '';
+  installPhase = ''
+    make DESTDIR=output install
+    cp -r output/var/empty/* "$out"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Port of the Unity GTK+ Module";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ jD91mZM2 ];
+  };
+}
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
new file mode 100644
index 000000000000..e1825d21ca7e
--- /dev/null
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, substituteAll, callPackage, pkgconfig, cmake, vala, libxml2,
+  glib, pcre, gtk2, gtk3, xorg, libxkbcommon, epoxy, at-spi2-core, dbus-glib, bamf,
+  xfce, libwnck3, libdbusmenu-glib, gobjectIntrospection }:
+
+stdenv.mkDerivation rec {
+  name = "xfce4-vala-panel-appmenu-plugin-${version}";
+  version = "0.6.94";
+
+  src = fetchFromGitHub {
+    owner = "rilian-la-te";
+    repo = "vala-panel-appmenu";
+    rev = version;
+    fetchSubmodules = true;
+
+    sha256 = "0xxn3zs60a9nfix8wrdp056wviq281cm1031hznzf1l38lp3wr5p";
+  };
+
+  nativeBuildInputs = [ pkgconfig cmake vala libxml2.bin ];
+  buildInputs = [ (callPackage ./appmenu-gtk-module.nix {})
+                  glib pcre gtk2 gtk3 xorg.libpthreadstubs xorg.libXdmcp libxkbcommon epoxy
+                  at-spi2-core dbus-glib bamf xfce.xfce4panel_gtk3 xfce.libxfce4util xfce.xfconf
+                  libwnck3 libdbusmenu-glib gobjectIntrospection ];
+
+  patches = [
+    (substituteAll {
+      src = ./fix-bamf-dependency.patch;
+      bamf = bamf;
+    })
+  ];
+
+  cmakeFlags = [
+      "-DENABLE_XFCE=ON"
+      "-DENABLE_BUDGIE=OFF"
+      "-DENABLE_VALAPANEL=OFF"
+      "-DENABLE_MATE=OFF"
+      "-DENABLE_JAYATANA=OFF"
+      "-DENABLE_APPMENU_GTK_MODULE=OFF"
+  ];
+
+  preConfigure = ''
+    mv cmake/FallbackVersion.cmake.in cmake/FallbackVersion.cmake
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Global Menu applet for XFCE4";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ jD91mZM2 ];
+  };
+}
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/fix-bamf-dependency.patch b/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/fix-bamf-dependency.patch
new file mode 100644
index 000000000000..1ed86a67f727
--- /dev/null
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/fix-bamf-dependency.patch
@@ -0,0 +1,12 @@
++++ source/cmake/FindBAMF.cmake	2018-05-11 17:03:44.385917811 +0200
+@@ -80,9 +80,7 @@
+ 
+ find_program(BAMF_DAEMON_EXECUTABLE
+ 	bamfdaemon
+-	HINTS ${CMAKE_INSTALL_FULL_LIBDIR}
+-		  ${CMAKE_INSTALL_FULL_LIBEXECDIR}
+-		  ${BAMF_LIBDIR}
++	HINTS "@bamf@/libexec/bamf/"
+ 	PATH_SUFFIXES bamf
+ )
+