summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorPascal Wittmann <mail@pascal-wittmann.de>2018-08-11 09:36:34 +0200
committerPascal Wittmann <mail@pascal-wittmann.de>2018-08-11 09:36:34 +0200
commita34579e01ef2aca4b33381a5c189746a1b52e2f0 (patch)
tree70410891f5c55611a2d17d2d723f270ad022c391 /pkgs
parentaf8cd3c74e80ff532b17568039ecc4f143992813 (diff)
parent40dea2488fec71f6224944c1b9dae280c2fcc2dc (diff)
downloadnixpkgs-a34579e01ef2aca4b33381a5c189746a1b52e2f0.tar
nixpkgs-a34579e01ef2aca4b33381a5c189746a1b52e2f0.tar.gz
nixpkgs-a34579e01ef2aca4b33381a5c189746a1b52e2f0.tar.bz2
nixpkgs-a34579e01ef2aca4b33381a5c189746a1b52e2f0.tar.lz
nixpkgs-a34579e01ef2aca4b33381a5c189746a1b52e2f0.tar.xz
nixpkgs-a34579e01ef2aca4b33381a5c189746a1b52e2f0.tar.zst
nixpkgs-a34579e01ef2aca4b33381a5c189746a1b52e2f0.zip
Merge branch 'master' into add-missing-licenses
 Conflicts:
	pkgs/tools/networking/network-manager/fortisslvpn.nix
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/altcoins/namecoin.nix5
-rw-r--r--pkgs/applications/audio/MMA/default.nix6
-rw-r--r--pkgs/applications/audio/mopidy/iris.nix4
-rw-r--r--pkgs/applications/editors/jetbrains/default.nix40
-rw-r--r--pkgs/applications/editors/vim/configurable.nix4
-rw-r--r--pkgs/applications/misc/gutenberg/default.nix6
-rw-r--r--pkgs/applications/misc/img2pdf/default.nix27
-rw-r--r--pkgs/applications/misc/keepass-plugins/keeagent/default.nix8
-rw-r--r--pkgs/applications/misc/latte-dock/default.nix29
-rw-r--r--pkgs/applications/misc/masterpdfeditor/default.nix24
-rw-r--r--pkgs/applications/misc/mdp/default.nix4
-rw-r--r--pkgs/applications/misc/memo/default.nix6
-rw-r--r--pkgs/applications/misc/mysql-workbench/default.nix159
-rw-r--r--pkgs/applications/misc/mysql-workbench/fix-gdal-includes.patch47
-rw-r--r--pkgs/applications/misc/mysql-workbench/hardcode-paths.patch187
-rw-r--r--pkgs/applications/misc/polybar/default.nix21
-rw-r--r--pkgs/applications/networking/mailreaders/nylas-mail-bin/default.nix2
-rw-r--r--pkgs/applications/networking/newsreaders/liferea/default.nix4
-rw-r--r--pkgs/applications/networking/remote/putty/default.nix23
-rw-r--r--pkgs/applications/science/logic/sad/default.nix9
-rw-r--r--pkgs/applications/science/logic/sad/monoid.patch51
-rw-r--r--pkgs/applications/science/math/palp/default.nix6
-rw-r--r--pkgs/applications/virtualization/virt-viewer/default.nix4
-rw-r--r--pkgs/applications/window-managers/xmonad/log-applet/default.nix43
-rw-r--r--pkgs/applications/window-managers/xmonad/log-applet/fix-paths.patch57
-rw-r--r--pkgs/build-support/fetchdocker/credentials.nix2
-rw-r--r--pkgs/desktops/gnome-2/default.nix29
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-control-center/default.nix22
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-desktop/default.nix16
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix17
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-menus/default.nix13
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix26
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix19
-rw-r--r--pkgs/desktops/gnome-2/desktop/libgnomekbd/default.nix13
-rw-r--r--pkgs/desktops/gnome-2/desktop/libgweather/default.nix14
-rw-r--r--pkgs/desktops/gnome-2/desktop/mail-notification/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/desktop/metacity/default.nix18
-rw-r--r--pkgs/desktops/gnome-2/desktop/zenity/default.nix18
-rw-r--r--pkgs/desktops/gnome-2/platform/at-spi/default.nix17
-rw-r--r--pkgs/desktops/gnome-2/platform/gnome-vfs-monikers/default.nix11
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-desktop/default.nix26
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-terminal/default.nix36
-rw-r--r--pkgs/desktops/gnome-3/core/gucharmap/default.nix27
-rw-r--r--pkgs/desktops/gnome-3/core/vte/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-applets/default.nix110
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix92
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-flashback/fix-paths.patch30
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-panel/default.nix92
-rw-r--r--pkgs/desktops/gnome-3/misc/metacity/default.nix70
-rw-r--r--pkgs/desktops/gnome-3/misc/metacity/fix-paths.patch11
-rw-r--r--pkgs/desktops/plasma-5/fetch.sh2
-rw-r--r--pkgs/desktops/plasma-5/plasma-workspace/plasma-workspace.patch8
-rw-r--r--pkgs/desktops/plasma-5/srcs.nix360
-rw-r--r--pkgs/development/compilers/mosml/default.nix29
-rw-r--r--pkgs/development/compilers/mruby/0001-Disables-IO-isatty-test-for-sandboxed-builds.patch36
-rw-r--r--pkgs/development/compilers/mruby/default.nix38
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix5
-rw-r--r--pkgs/development/libraries/c-ares/default.nix9
-rw-r--r--pkgs/development/libraries/c-blosc/default.nix4
-rw-r--r--pkgs/development/libraries/gdal/default.nix7
-rw-r--r--pkgs/development/libraries/geos/default.nix4
-rw-r--r--pkgs/development/libraries/libinotify-kqueue/default.nix24
-rw-r--r--pkgs/development/libraries/librealsense/default.nix6
-rw-r--r--pkgs/development/libraries/libsixel/default.nix4
-rw-r--r--pkgs/development/libraries/libssh/default.nix12
-rw-r--r--pkgs/development/libraries/pcre/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/lcalc/default.nix10
-rw-r--r--pkgs/development/libraries/spice-gtk/default.nix9
-rw-r--r--pkgs/development/misc/stm32/betaflight/default.nix25
-rw-r--r--pkgs/development/misc/stm32/inav/default.nix56
-rw-r--r--pkgs/development/python-modules/pyls-black/default.nix32
-rw-r--r--pkgs/development/python-modules/pyls-isort/default.nix4
-rw-r--r--pkgs/development/python-modules/pyls-mypy/default.nix18
-rw-r--r--pkgs/development/python-modules/thespian/default.nix4
-rw-r--r--pkgs/development/python-modules/zeep/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/remake/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/remake/glibc-2.27-glob.patch34
-rw-r--r--pkgs/development/tools/build-managers/waf/default.nix16
-rw-r--r--pkgs/development/tools/goa/default.nix22
-rw-r--r--pkgs/development/tools/hcloud/default.nix4
-rw-r--r--pkgs/development/tools/parsing/antlr/4.7.nix108
-rw-r--r--pkgs/development/tools/wp-cli/default.nix8
-rw-r--r--pkgs/development/web/insomnia/default.nix4
-rw-r--r--pkgs/misc/brightnessctl/default.nix5
-rw-r--r--pkgs/os-specific/linux/hwdata/default.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.17.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/syscall_limiter/default.nix8
-rw-r--r--pkgs/os-specific/linux/sysdig/default.nix10
-rw-r--r--pkgs/os-specific/linux/sysvinit/default.nix2
-rw-r--r--pkgs/os-specific/linux/trinity/default.nix16
-rw-r--r--pkgs/os-specific/windows/default.nix29
-rw-r--r--pkgs/os-specific/windows/jom/default.nix2
-rw-r--r--pkgs/os-specific/windows/libgnurx/default.nix4
-rw-r--r--pkgs/os-specific/windows/mingw-headers/default.nix13
-rw-r--r--pkgs/os-specific/windows/mingw-w64/common.nix16
-rw-r--r--pkgs/os-specific/windows/mingw-w64/default.nix24
-rw-r--r--pkgs/os-specific/windows/mingw-w64/headers.nix12
-rw-r--r--pkgs/os-specific/windows/mingw-w64/osvi.patch14
-rw-r--r--pkgs/os-specific/windows/mingw-w64/pthreads.nix11
-rw-r--r--pkgs/os-specific/windows/mingwrt/common.nix12
-rw-r--r--pkgs/os-specific/windows/mingwrt/default.nix16
-rw-r--r--pkgs/os-specific/windows/mingwrt/headers.nix17
-rw-r--r--pkgs/os-specific/windows/pthread-w32/default.nix4
-rw-r--r--pkgs/os-specific/windows/w32api/common.nix14
-rw-r--r--pkgs/os-specific/windows/w32api/default.nix16
-rw-r--r--pkgs/os-specific/windows/w32api/headers.nix17
-rw-r--r--pkgs/os-specific/windows/wxMSW-2.8/default.nix6
-rw-r--r--pkgs/servers/jetbrains/youtrack.nix17
-rw-r--r--pkgs/servers/monitoring/prometheus/node-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/uchiwa/default.nix1
-rw-r--r--pkgs/servers/sql/mysql/5.7.x.nix4
-rw-r--r--pkgs/tools/misc/alarm-clock-applet/default.nix28
-rw-r--r--pkgs/tools/misc/appdata-tools/default.nix26
-rw-r--r--pkgs/tools/misc/opentimestamps-client/default.nix12
-rw-r--r--pkgs/tools/misc/uudeview/default.nix3
-rw-r--r--pkgs/tools/misc/uudeview/matherr.patch19
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/networking/network-manager/applet.nix15
-rw-r--r--pkgs/tools/networking/network-manager/fortisslvpn.nix44
-rw-r--r--pkgs/tools/networking/network-manager/fortisslvpn/default.nix45
-rw-r--r--pkgs/tools/networking/network-manager/fortisslvpn/fix-paths.patch11
-rw-r--r--pkgs/tools/networking/network-manager/iodine.nix46
-rw-r--r--pkgs/tools/networking/network-manager/iodine/default.nix47
-rw-r--r--pkgs/tools/networking/network-manager/iodine/fix-paths.patch11
-rw-r--r--pkgs/tools/networking/network-manager/l2tp.nix52
-rw-r--r--pkgs/tools/networking/network-manager/l2tp/default.nix48
-rw-r--r--pkgs/tools/networking/network-manager/l2tp/fix-paths.patch20
-rw-r--r--pkgs/tools/networking/network-manager/libnm-gtk-mbpi.patch33
-rw-r--r--pkgs/tools/networking/network-manager/openconnect/default.nix (renamed from pkgs/tools/networking/network-manager/openconnect.nix)29
-rw-r--r--pkgs/tools/networking/network-manager/openconnect/fix-paths.patch20
-rw-r--r--pkgs/tools/networking/network-manager/openvpn/default.nix17
-rw-r--r--pkgs/tools/networking/network-manager/strongswan.nix35
-rw-r--r--pkgs/tools/networking/network-manager/vpnc.nix45
-rw-r--r--pkgs/tools/networking/network-manager/vpnc/default.nix42
-rw-r--r--pkgs/tools/networking/network-manager/vpnc/fix-paths.patch31
-rw-r--r--pkgs/tools/package-management/nix-repl/default.nix36
-rw-r--r--pkgs/tools/security/pass/default.nix4
-rw-r--r--pkgs/tools/security/pass/set-correct-program-name-for-sleep.patch36
-rw-r--r--pkgs/top-level/all-packages.nix107
-rw-r--r--pkgs/top-level/python-packages.nix4
144 files changed, 2266 insertions, 1368 deletions
diff --git a/pkgs/applications/altcoins/namecoin.nix b/pkgs/applications/altcoins/namecoin.nix
index 9af37ff0bca..93f9faf833a 100644
--- a/pkgs/applications/altcoins/namecoin.nix
+++ b/pkgs/applications/altcoins/namecoin.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, openssl, boost, libevent, autoreconfHook, db4, miniupnpc, eject, pkgconfig, qt4, protobuf, libqrencode
+{ stdenv, fetchFromGitHub, openssl, boost, libevent, autoreconfHook, db4, miniupnpc, eject, pkgconfig, qt4, protobuf, libqrencode, hexdump
 , withGui }:
 
 with stdenv.lib;
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     autoreconfHook
     pkgconfig
+    hexdump
   ];
 
   buildInputs = [
@@ -31,6 +32,8 @@ stdenv.mkDerivation rec {
     libqrencode
   ];
 
+  enableParallelBuilding = true;
+
   configureFlags = [
     "--with-boost-libdir=${boost.out}/lib"
   ];
diff --git a/pkgs/applications/audio/MMA/default.nix b/pkgs/applications/audio/MMA/default.nix
index d21c3fd5efb..ed7a8481f69 100644
--- a/pkgs/applications/audio/MMA/default.nix
+++ b/pkgs/applications/audio/MMA/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeWrapper, python, alsaUtils, timidity }:
+{ stdenv, fetchurl, makeWrapper, python3, alsaUtils, timidity }:
 
   stdenv.mkDerivation rec {
   version = "16.06";
@@ -9,7 +9,7 @@
     sha256 = "1g4gvc0nr0qjc0fyqrnx037zpaasgymgmrm5s7cdxqnld9wqw8ww";
   };
 
-  buildInputs = [ makeWrapper python alsaUtils timidity ];
+  buildInputs = [ makeWrapper python3 alsaUtils timidity ];
 
   patchPhase = ''
     sed -i 's@/usr/bin/aplaymidi@/${alsaUtils}/bin/aplaymidi@g' mma-splitrec
@@ -18,7 +18,7 @@
     sed -i 's@/usr/bin/arecord@/${alsaUtils}/bin/arecord@g' util/mma-splitrec.py
     sed -i 's@/usr/bin/timidity@/${timidity}/bin/timidity@g' mma-splitrec
     sed -i 's@/usr/bin/timidity@/${timidity}/bin/timidity@g' util/mma-splitrec.py
-    find . -type f | xargs sed -i 's@/usr/bin/env python@${python}/bin/python@g'
+    find . -type f | xargs sed -i 's@/usr/bin/env python@${python3.interpreter}@g'
   '';
 
   installPhase = ''
diff --git a/pkgs/applications/audio/mopidy/iris.nix b/pkgs/applications/audio/mopidy/iris.nix
index 40ae38fda5c..01d7befddd6 100644
--- a/pkgs/applications/audio/mopidy/iris.nix
+++ b/pkgs/applications/audio/mopidy/iris.nix
@@ -2,11 +2,11 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "Mopidy-Iris";
-  version = "3.23.0";
+  version = "3.23.2";
 
   src = pythonPackages.fetchPypi {
     inherit pname version;
-    sha256 = "1zhd82mzbzc9jx7xhglgq0giyy214ypq1rw5kmhp5zswv71hf2j0";
+    sha256 = "1zf4ck19z3nh1x9a847ay1qnkyvi6s6866kp6q6dh1xpn7i9rmx7";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index d77f8f2e7a6..676514a614a 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -249,12 +249,12 @@ in
 
   clion = buildClion rec {
     name = "clion-${version}";
-    version = "2018.2"; /* updated by script */
+    version = "2018.2.1"; /* updated by script */
     description  = "C/C++ IDE. New. Intelligent. Cross-platform";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
-      sha256 = "08kjlmldnd6rnk8m12klfp9vbkbvcsgaknpi55r248nzglnbx9gz"; /* updated by script */
+      sha256 = "16fr5760nkzgx8785x6hh7s96x097y6vdx7w1f9ipg71vv25cscq"; /* updated by script */
     };
     wmClass = "jetbrains-clion";
     update-channel = "CLion Release"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@@ -262,12 +262,12 @@ in
 
   datagrip = buildDataGrip rec {
     name = "datagrip-${version}";
-    version = "2018.2"; /* updated by script */
+    version = "2018.2.1"; /* updated by script */
     description = "Your Swiss Army Knife for Databases and SQL";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
-      sha256 = "1byf46vni8s6qf3wlsnscxipgndl6ic48nizwiaqasnhhszqssxs"; /* updated by script */
+      sha256 = "1jfkxr790wr8ffn7ph694hfzahs2akjcfk4rfsvjv1dccqb0167k"; /* updated by script */
     };
     wmClass = "jetbrains-datagrip";
     update-channel = "DataGrip 2018.2";
@@ -275,12 +275,12 @@ in
 
   goland = buildGoland rec {
     name = "goland-${version}";
-    version = "2018.2"; /* updated by script */
+    version = "2018.2.1"; /* updated by script */
     description = "Up and Coming Go IDE";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/go/${name}.tar.gz";
-      sha256 = "0z7a06892c3hcq5zxvkfnyf0ablwq51710x1f12v6r297l4mfra0"; /* updated by script */
+      sha256 = "0k96v00cbxkgxs9xby5m4dxl4w2kkm2lii54z1hqjwqmc9kxa2ia"; /* updated by script */
     };
     wmClass = "jetbrains-goland";
     update-channel = "GoLand Release";
@@ -288,12 +288,12 @@ in
 
   idea-community = buildIdea rec {
     name = "idea-community-${version}";
-    version = "2018.2"; /* updated by script */
+    version = "2018.2.1"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
     license = stdenv.lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
-      sha256 = "0r5fsai77w74vhfs449yff56pi4vynl8w25amn23k6hddlqxph2s"; /* updated by script */
+      sha256 = "04dqyzkkrwvcdy1raard77v2315d44h29cpc9p98bjidvjd6bhsx"; /* updated by script */
     };
     wmClass = "jetbrains-idea-ce";
     update-channel = "IntelliJ IDEA Release";
@@ -301,12 +301,12 @@ in
 
   idea-ultimate = buildIdea rec {
     name = "idea-ultimate-${version}";
-    version = "2018.2"; /* updated by script */
+    version = "2018.2.1"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jdk.tar.gz";
-      sha256 = "1xq97dcf7xcs8fsrjsqqrzxf2gnrll8bbqkzrpg85bqxap0hvb45"; /* updated by script */
+      sha256 = "0ydidg9pk8bqf5jb1z0fw2m88v6mi38b4ddgmh5c9d9p44g6mddv"; /* updated by script */
     };
     wmClass = "jetbrains-idea";
     update-channel = "IntelliJ IDEA Release";
@@ -314,12 +314,12 @@ in
 
   phpstorm = buildPhpStorm rec {
     name = "phpstorm-${version}";
-    version = "2018.2"; /* updated by script */
+    version = "2018.2.1"; /* updated by script */
     description = "Professional IDE for Web and PHP developers";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
-      sha256 = "15czwk15c1gnf7xrgm423xafsw55083dd6g15g69zs0l9psrss31"; /* updated by script */
+      sha256 = "042qhdkl4v5q4cdbqfbiwj6s3acivdb5kmbyn4jix8pg8r37yfnm"; /* updated by script */
     };
     wmClass = "jetbrains-phpstorm";
     update-channel = "PhpStorm 2018.2";
@@ -327,12 +327,12 @@ in
 
   pycharm-community = buildPycharm rec {
     name = "pycharm-community-${version}";
-    version = "2018.2"; /* updated by script */
+    version = "2018.2.1"; /* updated by script */
     description = "PyCharm Community Edition";
     license = stdenv.lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "0a5dsr2piw0vgm9lvc2k18sdnvii55xdyi90z95hzg5syhsm1a94"; /* updated by script */
+      sha256 = "14vnwqk0x0anvzmdv2ddc3qc9g5fll2ql02mi12k425j30fl2z2q"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm-ce";
     update-channel = "PyCharm Release";
@@ -340,12 +340,12 @@ in
 
   pycharm-professional = buildPycharm rec {
     name = "pycharm-professional-${version}";
-    version = "2018.2"; /* updated by script */
+    version = "2018.2.1"; /* updated by script */
     description = "PyCharm Professional Edition";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "0azjrbxpwank09i7riflbkgrgm23f0q6hgisca6d14ldcbr933aj"; /* updated by script */
+      sha256 = "1h4f9l577w2ps0y79x79yhpbrsv3j5nwr1lr1890phmp6zri6wyf"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm";
     update-channel = "PyCharm Release";
@@ -366,12 +366,12 @@ in
 
   ruby-mine = buildRubyMine rec {
     name = "ruby-mine-${version}";
-    version = "2018.2"; /* updated by script */
+    version = "2018.2.1"; /* updated by script */
     description = "The Most Intelligent Ruby and Rails IDE";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
-      sha256 = "0la83cqf3aknrc62ddpij0gg50rws5l2g4iasyrvfhn4wnmj6n4q"; /* updated by script */
+      sha256 = "1gwcadjgs4cw5i3h1xn92ng415vzr5cxyrpgckr1qy37d5f4bhqg"; /* updated by script */
     };
     wmClass = "jetbrains-rubymine";
     update-channel = "RubyMine 2018.2";
@@ -379,12 +379,12 @@ in
 
   webstorm = buildWebStorm rec {
     name = "webstorm-${version}";
-    version = "2018.2"; /* updated by script */
+    version = "2018.2.1"; /* updated by script */
     description = "Professional IDE for Web and JavaScript development";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
-      sha256 = "024schngx26ik8cvmkijfzzmpkajckl2dbyz31ajnmixpn07pwi6"; /* updated by script */
+      sha256 = "1jbzkp13qn4n58kbcsszm2gfnywjma2yvn48g0vi14v7x6zihhxd"; /* updated by script */
     };
     wmClass = "jetbrains-webstorm";
     update-channel = "WebStorm Release";
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index 81b5be7dd2b..3711b3cdcee 100644
--- a/pkgs/applications/editors/vim/configurable.nix
+++ b/pkgs/applications/editors/vim/configurable.nix
@@ -154,6 +154,10 @@ in stdenv.mkDerivation rec {
     ln -sfn '${nixosRuntimepath}' "$out"/share/vim/vimrc
   '' + stdenv.lib.optionalString wrapPythonDrv ''
     wrapProgram "$out/bin/vim" --prefix PATH : "${python}/bin"
+  '' + stdenv.lib.optionalString (guiSupport == "gtk3") ''
+    rm "$out/bin/gvim"
+    echo -e '#!${stdenv.shell}\n"'"$out/bin/vim"'" -g "$@"' > "$out/bin/gvim"
+    chmod a+x "$out/bin/gvim"
   '';
 
   preInstall = ''
diff --git a/pkgs/applications/misc/gutenberg/default.nix b/pkgs/applications/misc/gutenberg/default.nix
index 186475e2cd5..c5982f68201 100644
--- a/pkgs/applications/misc/gutenberg/default.nix
+++ b/pkgs/applications/misc/gutenberg/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   name = "gutenberg-${version}";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "Keats";
     repo = "gutenberg";
     rev = "v${version}";
-    sha256 = "1i2jcyq6afswxyjifhl5irv84licsad7c83yiy17454mplvrmyg2";
+    sha256 = "0is7156aim2ad8xg2f5068crc4gfvm89x8gxa25vc25p0yr1bpla";
   };
 
-  cargoSha256 = "0hzxwvb5m8mvpfxys4ikkaag6khflh5bfglmay11wf6ayighv834";
+  cargoSha256 = "146vlr85n9d06am5ki76fh1vb5r8a4lzx5b7dmgi292kc3dsn41z";
 
   nativeBuildInputs = [ cmake pkgconfig openssl ];
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreServices cf-private ];
diff --git a/pkgs/applications/misc/img2pdf/default.nix b/pkgs/applications/misc/img2pdf/default.nix
new file mode 100644
index 00000000000..9b6ac086efd
--- /dev/null
+++ b/pkgs/applications/misc/img2pdf/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, python3Packages }:
+
+with python3Packages;
+
+buildPythonApplication rec {
+  pname = "img2pdf";
+  version = "0.3.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "071s3gf28nb8ifxkix7dzjny6vib7791mnp0v3f4zagcjcic22a4";
+  };
+
+  doCheck = false; # needs pdfrw
+
+  propagatedBuildInputs = [
+    pillow
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Convert images to PDF via direct JPEG inclusion";
+    homepage = https://gitlab.mister-muffin.de/josch/img2pdf;
+    license = licenses.lgpl2;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.veprbl ];
+  };
+}
diff --git a/pkgs/applications/misc/keepass-plugins/keeagent/default.nix b/pkgs/applications/misc/keepass-plugins/keeagent/default.nix
index cd83d2a44e1..80bf5deceb1 100644
--- a/pkgs/applications/misc/keepass-plugins/keeagent/default.nix
+++ b/pkgs/applications/misc/keepass-plugins/keeagent/default.nix
@@ -1,19 +1,19 @@
 { stdenv, buildEnv, fetchzip, mono }:
 
 let
-  version = "0.8.1";
+  version = "0.10.1";
   drv = stdenv.mkDerivation {
     name = "keeagent-${version}";
 
     src = fetchzip {
-      url = http://lechnology.com/wp-content/uploads/2016/07/KeeAgent_v0.8.1.zip;
-      sha256 = "16x1qrnzg0xkvi7w29wj3z0ldmql2vcbwxksbsmnidzmygwg98hk";
+      url = "https://lechnology.com/wp-content/uploads/2018/04/KeeAgent_v0.10.1.zip";
+      sha256 = "0j7az6l9wcr8z66mfplkxwydd4bgz2p2vd69xncf0nxlfb0lshh7";
       stripRoot = false;
     };
 
     meta = {
       description = "KeePass plugin to allow other programs to access SSH keys stored in a KeePass database for authentication";
-      homepage    = http://lechnology.com/software/keeagent;
+      homepage    = "http://lechnology.com/software/keeagent";
       platforms   = with stdenv.lib.platforms; linux;
       license     = stdenv.lib.licenses.gpl2;
       maintainers = [ ];
diff --git a/pkgs/applications/misc/latte-dock/default.nix b/pkgs/applications/misc/latte-dock/default.nix
index eafe0b9b5c6..c22c014bf5f 100644
--- a/pkgs/applications/misc/latte-dock/default.nix
+++ b/pkgs/applications/misc/latte-dock/default.nix
@@ -1,28 +1,31 @@
-{ mkDerivation, lib, cmake, xorg, plasma-framework, fetchFromGitHub
-, extra-cmake-modules, karchive, kwindowsystem, qtx11extras, kcrash }:
+{ mkDerivation, lib, cmake, xorg, plasma-framework, fetchurl
+, extra-cmake-modules, karchive, kwindowsystem, qtx11extras, kcrash, knewstuff }:
 
-let version = "0.7.5"; in
+mkDerivation rec {
+  pname = "latte-dock";
+  version = "0.8.0";
+  name = "${pname}-${version}";
 
-mkDerivation {
-  name = "latte-dock-${version}";
-
-  src = fetchFromGitHub {
-    owner = "psifidotos";
-    repo = "Latte-Dock";
-    rev = "v${version}";
-    sha256 = "0fblbx6qk4miag1mhiyns7idsw03p9pj3xc3xxxnb5rpj1fy0ifv";
+  src = fetchurl {
+    url = "https://download.kde.org/stable/${pname}/${name}.tar.xz";
+    sha256 = "1zg9r162r66vcvj5rzgy61mda89sk5yfy96g5p1aahbim0rgbdbs";
+    name = "${name}.tar.xz";
   };
 
   buildInputs = [ plasma-framework xorg.libpthreadstubs xorg.libXdmcp xorg.libSM ];
 
   nativeBuildInputs = [ extra-cmake-modules cmake karchive kwindowsystem
-    qtx11extras kcrash ];
+    qtx11extras kcrash knewstuff ];
+
+
 
   meta = with lib; {
     description = "Dock-style app launcher based on Plasma frameworks";
     homepage = https://github.com/psifidotos/Latte-Dock;
     license = licenses.gpl2;
     platforms = platforms.unix;
-    maintainers = [ maintainers.benley ];
+    maintainers = [ maintainers.benley maintainers.ysndr ];
   };
+
+
 }
diff --git a/pkgs/applications/misc/masterpdfeditor/default.nix b/pkgs/applications/misc/masterpdfeditor/default.nix
index 943f36a57ac..ac6cf2b91c6 100644
--- a/pkgs/applications/misc/masterpdfeditor/default.nix
+++ b/pkgs/applications/misc/masterpdfeditor/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl, sane-backends, qtbase, qtsvg, autoPatchelfHook }:
+{ stdenv, fetchurl, sane-backends, qtbase, qtsvg, nss, autoPatchelfHook }:
 let
-  version = "4.3.89";
+  version = "5.1.00";
 in stdenv.mkDerivation {
   name = "masterpdfeditor-${version}";
   src = fetchurl {
     url = "https://code-industry.net/public/master-pdf-editor-${version}_qt5.amd64.tar.gz";
-    sha256 = "0k5bzlhqglskiiq86nmy18mnh5bf2w3mr9cq3pibrwn5pisxnxxc";
+    sha256 = "1s2zhx9xr1ny5s8hmlb99v3z1v26vmx87iixk8cdgndz046p9bg9";
   };
 
   nativeBuildInputs = [ autoPatchelfHook ];
 
-  buildInputs = [ sane-backends qtbase qtsvg ];
+  buildInputs = [ nss qtbase qtsvg sane-backends stdenv.cc.cc ];
 
   dontStrip = true;
 
@@ -18,15 +18,15 @@ in stdenv.mkDerivation {
    p=$out/opt/masterpdfeditor
    mkdir -p $out/bin $p $out/share/applications $out/share/pixmaps
 
-   substituteInPlace masterpdfeditor4.desktop \
-     --replace 'Exec=/opt/master-pdf-editor-4' "Exec=$out/bin" \
-     --replace 'Path=/opt/master-pdf-editor-4' "Path=$out/bin" \
-     --replace 'Icon=/opt/master-pdf-editor-4' "Icon=$out/share/pixmaps"
-   cp -v masterpdfeditor4.png $out/share/pixmaps/
-   cp -v masterpdfeditor4.desktop $out/share/applications
+   substituteInPlace masterpdfeditor5.desktop \
+     --replace 'Exec=/opt/master-pdf-editor-5' "Exec=$out/bin" \
+     --replace 'Path=/opt/master-pdf-editor-5' "Path=$out/bin" \
+     --replace 'Icon=/opt/master-pdf-editor-5' "Icon=$out/share/pixmaps"
+   cp -v masterpdfeditor5.png $out/share/pixmaps/
+   cp -v masterpdfeditor5.desktop $out/share/applications
 
-   cp -v masterpdfeditor4 $p/
-   ln -s $p/masterpdfeditor4 $out/bin/masterpdfeditor4
+   cp -v masterpdfeditor5 $p/
+   ln -s $p/masterpdfeditor5 $out/bin/masterpdfeditor5
    cp -v -r stamps templates lang fonts $p
 
    install -D license.txt $out/share/$name/LICENSE
diff --git a/pkgs/applications/misc/mdp/default.nix b/pkgs/applications/misc/mdp/default.nix
index fd0a8ea1fe4..5af524a456b 100644
--- a/pkgs/applications/misc/mdp/default.nix
+++ b/pkgs/applications/misc/mdp/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, ncurses }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.12";
+  version = "1.0.13";
   name = "mdp-${version}";
 
   src = fetchFromGitHub {
     owner = "visit1985";
     repo = "mdp";
     rev = version;
-    sha256 = "04izj9i9rxmgswjh2iawqs6qglfv44zfv042smmcvfh1pm43361i";
+    sha256 = "0snmglsmgfavgv6cnlb0j54sr0paf570ajpwk1b3g81v078hz2aq";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/applications/misc/memo/default.nix b/pkgs/applications/misc/memo/default.nix
index 072ea7e42dc..c112cf0c928 100644
--- a/pkgs/applications/misc/memo/default.nix
+++ b/pkgs/applications/misc/memo/default.nix
@@ -1,4 +1,5 @@
 { fetchFromGitHub, silver-searcher, tree, man, stdenv,
+  git,
   pandocSupport ? true, pandoc ? null
   , ... }:
 
@@ -8,13 +9,13 @@ stdenv.mkDerivation rec {
 
   name = "memo-${version}";
 
-  version = "0.5";
+  version = "0.6";
 
   src = fetchFromGitHub {
     owner  = "mrVanDalo";
     repo   = "memo";
     rev    = "${version}";
-    sha256 = "1kq8hmq4lgvkk717nhmdryr90g61xm0jm7y8dzya8jsxsn531gm8";
+    sha256 = "1cvjs36f6vxzfz5d63yhyw8j7gdw5hn6cfzccf7ag08lamjhfhbr";
   };
 
   installPhase = let
@@ -28,6 +29,7 @@ stdenv.mkDerivation rec {
       --replace "ack_cmd=ack"       "ack_cmd=${silver-searcher}/bin/ag" \
       --replace "tree_cmd=tree"     "tree_cmd=${tree}/bin/tree" \
       --replace "man_cmd=man"       "man_cmd=${man}/bin/man" \
+      --replace "git_cmd=git"       "git_cmd=${git}/bin/git" \
       --replace "pandoc_cmd=pandoc" "${pandocReplacement}"
     mv memo $out/bin/
     mv doc/memo.1 $out/share/man/man1/memo.1
diff --git a/pkgs/applications/misc/mysql-workbench/default.nix b/pkgs/applications/misc/mysql-workbench/default.nix
index 76517f87464..7068d8aedd3 100644
--- a/pkgs/applications/misc/mysql-workbench/default.nix
+++ b/pkgs/applications/misc/mysql-workbench/default.nix
@@ -1,118 +1,95 @@
-{ stdenv, fetchurl, makeWrapper, cmake, pkgconfig
-, glibc, gnome-keyring, gtk, gtkmm, pcre, swig, sudo
-, mysql, libxml2, libctemplate, libmysqlconnectorcpp
-, vsqlite, tinyxml, gdal, libiodbc, libpthreadstubs
-, libXdmcp, libuuid, libzip, libgnome-keyring, file
-, pythonPackages, jre, autoconf, automake, libtool
-, boost, glibmm, libsigcxx, pangomm, libX11, openssl
-, proj, cairo, libglade
+{ stdenv, fetchurl, substituteAll, cmake, ninja, pkgconfig
+, glibc, gtk3, gtkmm3, pcre, swig, antlr4_7, sudo
+, mysql, libxml2, libmysqlconnectorcpp
+, vsqlite, gdal, libiodbc, libpthreadstubs
+, libXdmcp, libuuid, libzip, libsecret, libssh
+, python2, jre
+, boost, libsigcxx, libX11, openssl
+, proj, cairo, libxkbcommon, epoxy, wrapGAppsHook
+, at-spi2-core, dbus, bash, coreutils
 }:
 
 let
-  inherit (pythonPackages) pexpect pycrypto python paramiko;
+  inherit (python2.pkgs) paramiko pycairo pyodbc;
 in stdenv.mkDerivation rec {
   pname = "mysql-workbench";
-  version = "6.3.8";
+  version = "8.0.12";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-${version}-src.tar.gz";
-    sha256 = "1bxd828nrawmym6d8awh1vrni8dsbwh1k5am1lrq5ihp5c3kw9ka";
+    sha256 = "0d6k1kw0bi3q5dlilzlgds1gcrlf7pis4asm3d6pssh2jmn5hh82";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ cmake gnome-keyring gtk gtk.dev gtkmm pcre swig python sudo
-    paramiko mysql libxml2 libctemplate libmysqlconnectorcpp vsqlite tinyxml gdal libiodbc file
-    libpthreadstubs libXdmcp libuuid libzip libgnome-keyring libgnome-keyring.dev jre autoconf
-    automake libtool boost glibmm glibmm.dev libsigcxx pangomm libX11 pexpect pycrypto openssl
-    proj cairo cairo.dev makeWrapper libglade ] ;
-
-  prePatch = ''
-    for f in backend/wbpublic/{grt/spatial_handler.h,grtui/geom_draw_box.h,objimpl/db.query/db_query_Resultset.cpp} ;
-    do
-      sed -i 's@#include <gdal/@#include <@' $f ;
-    done
+  patches = [
+    ./fix-gdal-includes.patch
+    (substituteAll {
+      src = ./hardcode-paths.patch;
+      catchsegv = "${glibc.bin}/bin/catchsegv";
+      bash = "${bash}/bin/bash";
+      cp = "${coreutils}/bin/cp";
+      dd = "${coreutils}/bin/dd";
+      ls = "${coreutils}/bin/ls";
+      mkdir = "${coreutils}/bin/mkdir";
+      nohup = "${coreutils}/bin/nohup";
+      rm = "${coreutils}/bin/rm";
+      rmdir = "${coreutils}/bin/rmdir";
+      sudo = "${sudo}/bin/sudo";
+    })
+  ];
 
-    sed -i '32s@mysqlparser@mysqlparser sqlparser@' library/mysql.parser/CMakeLists.txt
+  nativeBuildInputs = [
+    cmake ninja pkgconfig jre swig wrapGAppsHook
+  ];
 
-    cat <<EOF > ext/antlr-runtime/fix-configure
-    #!${stdenv.shell}
-    echo "fixing bundled antlr3c configure" ;
-    sed -i 's@/usr/bin/file@${file}/bin/file@' configure
-    sed -i '12121d' configure
-    EOF
-    chmod +x ext/antlr-runtime/fix-configure
-    sed -i '236s@&&@& ''${PROJECT_SOURCE_DIR}/ext/antlr-runtime/fix-configure &@' CMakeLists.txt
+  buildInputs = [
+    gtk3 gtkmm3 libX11 antlr4_7.runtime.cpp python2 mysql libxml2
+    libmysqlconnectorcpp vsqlite gdal boost libssh openssl
+    libiodbc pcre cairo libuuid libzip libsecret
+    libsigcxx proj
+    # python dependencies:
+    paramiko pycairo pyodbc # sqlanydb
+    # transitive dependencies:
+    libpthreadstubs libXdmcp libxkbcommon epoxy at-spi2-core dbus
+  ];
 
-    substituteInPlace $(pwd)/frontend/linux/workbench/mysql-workbench.in --replace "catchsegv" "${glibc.bin}/bin/catchsegv"
-    substituteInPlace $(pwd)/frontend/linux/workbench/mysql-workbench.in --replace "/usr/lib/x86_64-linux-gnu" "${proj}/lib"
-    patchShebangs $(pwd)/library/mysql.parser/grammar/build-parser
-    patchShebangs $(pwd)/tools/get_wb_version.sh
+  postPatch = ''
+    patchShebangs tools/get_wb_version.sh
   '';
 
   NIX_CFLAGS_COMPILE = [
-    "-I${libsigcxx}/lib/sigc++-2.0/include"
-    "-I${pangomm}/lib/pangomm-1.4/include"
-    "-I${glibmm}/lib/giomm-2.4/include"
+    # error: 'OGRErr OGRSpatialReference::importFromWkt(char**)' is deprecated
+    "-Wno-error=deprecated-declarations"
   ];
 
   cmakeFlags = [
-    "-DCMAKE_CXX_FLAGS=-std=c++11"
     "-DMySQL_CONFIG_PATH=${mysql}/bin/mysql_config"
-    "-DCTemplate_INCLUDE_DIR=${libctemplate}/include"
-    "-DCAIRO_INCLUDE_DIRS=${cairo.dev}/include"
-    "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk}/lib/gtk-2.0/include"
-    "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${gtk.dev}/include"
-    "-DGTK2_GTKMMCONFIG_INCLUDE_DIR=${gtkmm}/lib/gtkmm-2.4/include"
-    "-DGTK2_GDKMMCONFIG_INCLUDE_DIR=${gtkmm}/lib/gdkmm-2.4/include"
-    "-DGTK2_GLIBMMCONFIG_INCLUDE_DIR=${glibmm}/lib/glibmm-2.4/include"
+    "-DIODBC_CONFIG_PATH=${libiodbc}/bin/iodbc-config"
+    "-DWITH_ANTLR_JAR=${antlr4_7.jarLocation}"
   ];
 
-  postInstall = ''
-    patchShebangs $out/share/mysql-workbench/extras/build_freetds.sh
-
-    for i in $out/lib/mysql-workbench/modules/wb_utils_grt.py \
-             $out/lib/mysql-workbench/modules/wb_server_management.py \
-             $out/lib/mysql-workbench/modules/wb_admin_grt.py; do
-      substituteInPlace $i \
-        --replace "/bin/bash" ${stdenv.shell} \
-        --replace "/usr/bin/sudo" ${sudo}/bin/sudo
-    done
+  # There is already an executable and a wrapper in bindir
+  # No need to wrap both
+  dontWrapGApps = true;
 
-    wrapProgram "$out/bin/mysql-workbench" \
-      --prefix LD_LIBRARY_PATH : "${python}/lib" \
-      --prefix LD_LIBRARY_PATH : "$(cat ${stdenv.cc}/nix-support/orig-cc)/lib64" \
-      --prefix PATH : "${gnome-keyring}/bin" \
-      --prefix PATH : "${python}/bin" \
-      --set PYTHONPATH $PYTHONPATH \
-      --run '
-# The gnome-keyring-daemon must be running.  To allow for environments like
-# kde, xfce where this is not so, we start it first.
-# It is cleaned up using a supervisor subshell which detects that
-# the parent has finished via the closed pipe as terminate signal idiom,
-# used because we cannot clean up after ourselves due to the exec call.
-
-# Start gnome-keyring-daemon, export the environment variables it asks us to set.
-for expr in $( gnome-keyring-daemon --start ) ; do eval "export "$expr ; done
-
-# Prepare fifo pipe.
-FIFOCTL="/tmp/gnome-keyring-daemon-ctl.$$.fifo"
-[ -p $FIFOCTL ] && rm $FIFOCTL
-mkfifo $FIFOCTL
-
-# Supervisor subshell waits reading from pipe, will receive EOF when parent
-# closes pipe on termination.  Negate read with ! operator to avoid subshell
-# quitting when read EOF returns 1 due to -e option being set.
-(
-    exec 19< $FIFOCTL
-    ! read -u 19
-
-    kill $GNOME_KEYRING_PID
-    rm $FIFOCTL
-) &
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix PATH : "${python2}/bin"
+      --prefix PROJSO : "${proj}/lib/libproj.so"
+      --set PYTHONPATH $PYTHONPATH
+    )
+  '';
 
-exec 19> $FIFOCTL
-            '
+  # Let’s wrap the programs not ending with bin
+  # until https://bugs.mysql.com/bug.php?id=91948 is fixed
+  postFixup = ''
+    find -L "$out/bin" -type f -executable -print0 \
+      | while IFS= read -r -d ''' file; do
+      if [[ "''${file}" != *-bin ]]; then
+        echo "Wrapping program ''${file}"
+        wrapProgram "''${file}" "''${gappsWrapperArgs[@]}"
+      fi
+    done
   '';
 
   meta = with stdenv.lib; {
@@ -127,6 +104,6 @@ exec 19> $FIFOCTL
     homepage = http://wb.mysql.com/;
     license = licenses.gpl2;
     maintainers = [ maintainers.kkallio ];
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/mysql-workbench/fix-gdal-includes.patch b/pkgs/applications/misc/mysql-workbench/fix-gdal-includes.patch
new file mode 100644
index 00000000000..0a5c31fd40a
--- /dev/null
+++ b/pkgs/applications/misc/mysql-workbench/fix-gdal-includes.patch
@@ -0,0 +1,47 @@
+--- a/backend/wbpublic/grt/spatial_handler.h
++++ b/backend/wbpublic/grt/spatial_handler.h
+@@ -24,12 +24,12 @@
+ #ifndef SPATIAL_HANDLER_H_
+ #define SPATIAL_HANDLER_H_
+ 
+-#include <gdal/ogrsf_frmts.h>
+-#include <gdal/ogr_api.h>
+-#include <gdal/gdal_pam.h>
+-#include <gdal/memdataset.h>
+-#include <gdal/gdal_alg.h>
+-#include <gdal/gdal.h>
++#include <ogrsf_frmts.h>
++#include <ogr_api.h>
++#include <gdal_pam.h>
++#include <memdataset.h>
++#include <gdal_alg.h>
++#include <gdal.h>
+ #include <deque>
+ #include "base/geometry.h"
+ #include "wbpublic_public_interface.h"
+--- a/backend/wbpublic/grtui/geom_draw_box.h
++++ b/backend/wbpublic/grtui/geom_draw_box.h
+@@ -25,7 +25,7 @@
+ #define _GEOM_DRAW_BOX_H_
+ 
+ #include <mforms/drawbox.h>
+-#include <gdal/ogr_geometry.h>
++#include <ogr_geometry.h>
+ #include "wbpublic_public_interface.h"
+ 
+ class WBPUBLICBACKEND_PUBLIC_FUNC GeomDrawBox : public mforms::DrawBox {
+--- a/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp
++++ b/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp
+@@ -21,9 +21,9 @@
+  * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 
+  */
+ 
+-#include <gdal/ogrsf_frmts.h>
+-#include <gdal/ogr_api.h>
+-#include <gdal/gdal.h>
++#include <ogrsf_frmts.h>
++#include <ogr_api.h>
++#include <gdal.h>
+ 
+ #include <grts/structs.db.query.h>
+ #include <grtpp_util.h>
diff --git a/pkgs/applications/misc/mysql-workbench/hardcode-paths.patch b/pkgs/applications/misc/mysql-workbench/hardcode-paths.patch
new file mode 100644
index 00000000000..dddf992e4c1
--- /dev/null
+++ b/pkgs/applications/misc/mysql-workbench/hardcode-paths.patch
@@ -0,0 +1,187 @@
+--- a/frontend/linux/workbench/mysql-workbench.in
++++ b/frontend/linux/workbench/mysql-workbench.in
+@@ -99,8 +99,8 @@
+ if test "$WB_DEBUG" != ""; then
+   $WB_DEBUG $MWB_BINARIES_DIR/mysql-workbench-bin "$@"
+ else
+-  if type -p catchsegv > /dev/null; then
+-  catchsegv $MWB_BINARIES_DIR/mysql-workbench-bin "$@"
++  if type -p @catchsegv@ > /dev/null; then
++  @catchsegv@ $MWB_BINARIES_DIR/mysql-workbench-bin "$@"
+   else
+   $MWB_BINARIES_DIR/mysql-workbench-bin "$@"
+   fi
+--- a/plugins/migration/frontend/migration_bulk_copy_data.py
++++ b/plugins/migration/frontend/migration_bulk_copy_data.py
+@@ -110,7 +110,7 @@
+         return 'sh'
+ 
+     def generate_import_script(self, connection_args, path_to_file, schema_name):
+-        output = ['#!/bin/bash']
++        output = ['#!/usr/bin/env bash']
+         output.append('MYPATH=\`pwd\`')
+         
+         output.append('if [ -f \$MYPATH/%s ] ; then' % self.error_log_name)
+@@ -164,7 +164,7 @@
+         return 'sh'
+ 
+     def generate_import_script(self, connection_args, path_to_file, schema_name):
+-        output = ['#!/bin/bash']
++        output = ['#!/usr/bin/env bash']
+         output.append('MYPATH=\`pwd\`')
+         
+         output.append('if [ -f \$MYPATH/%s ] ; then' % self.error_log_name)
+@@ -417,7 +417,7 @@
+     
+         with open(script_path, 'w+') as f:
+             os.chmod(script_path, 0700)
+-            f.write('#!/bin/bash\n\n')
++            f.write('#!/usr/bin/env bash\n\n')
+             f.write('MYPATH=`pwd`\n')
+             
+             f.write("arg_source_password=\"<put source password here>\"\n")
+@@ -521,7 +521,7 @@
+     
+         with open(script_path, 'w+') as f:
+             os.chmod(script_path, 0700)
+-            f.write('#!/bin/bash\n\n')
++            f.write('#!/usr/bin/env bash\n\n')
+             f.write('MYPATH=`pwd`\n')
+             
+             f.write("arg_source_password=\"<put source password here>\"\n")
+--- a/plugins/wb.admin/backend/wb_server_control.py
++++ b/plugins/wb.admin/backend/wb_server_control.py
+@@ -39,7 +39,7 @@
+ 
+ UnixVariant = {
+     "" : {
+-        'sudo_command' : "/usr/bin/sudo -k -S -p EnterPasswordHere ",
++        'sudo_command' : "@sudo@ -k -S -p EnterPasswordHere ",
+     }
+ }
+ 
+--- a/plugins/wb.admin/backend/wb_server_management.py
++++ b/plugins/wb.admin/backend/wb_server_management.py
+@@ -40,7 +40,7 @@
+ 
+ def reset_sudo_prefix():
+     global default_sudo_prefix
+-    default_sudo_prefix       = '/usr/bin/sudo -k -S -p EnterPasswordHere'
++    default_sudo_prefix       = '@sudo@ -k -S -p EnterPasswordHere'
+ 
+ reset_sudo_prefix()
+ 
+@@ -100,7 +100,7 @@
+ 
+     if to_spawn:
+         command += ' &'
+-        sudo_prefix += ' /usr/bin/nohup'
++        sudo_prefix += ' @nohup@'
+       
+     # If as_user is the CURRENT then there's no need to sudo
+     if as_user != Users.CURRENT:
+@@ -111,7 +111,7 @@
+         if '/bin/sh' in sudo_prefix or '/bin/bash' in sudo_prefix:
+             command = "LANG=C " + sudo_prefix + " \"" + command.replace('\\', '\\\\').replace('"', r'\"').replace('$','\\$') + "\""
+         else:
+-            command = "LANG=C " + sudo_prefix + " /bin/bash -c \"" + command.replace('\\', '\\\\').replace('"', r'\"').replace('$','\\$') + "\""
++            command = "LANG=C " + sudo_prefix + " @bash@ -c \"" + command.replace('\\', '\\\\').replace('"', r'\"').replace('$','\\$') + "\""
+ 
+     return command
+ 
+@@ -896,9 +896,9 @@
+             if as_user == Users.CURRENT:
+                 raise PermissionDeniedError("Cannot set owner of directory %s" % path)        
+             else:
+-                command = "/bin/mkdir %s && chown %s %s" % (quote_path(path), with_owner, quote_path(path))
++                command = "@mkdir@ %s && chown %s %s" % (quote_path(path), with_owner, quote_path(path))
+         else:
+-            command = "/bin/mkdir %s" % (quote_path(path))
++            command = "@mkdir@ %s" % (quote_path(path))
+             
+         res = self.process_ops.exec_cmd(command,
+                                         as_user   = as_user,
+@@ -927,7 +927,7 @@
+     @useAbsPath("path")
+     def remove_directory(self, path, as_user = Users.CURRENT, user_password = None):
+         output = StringIO.StringIO()
+-        res = self.process_ops.exec_cmd('/bin/rmdir ' + quote_path(path),
++        res = self.process_ops.exec_cmd('@rmdir@ ' + quote_path(path),
+                                         as_user   = as_user,
+                                         user_password = user_password,
+                                         output_handler = output.write,
+@@ -940,7 +940,7 @@
+     @useAbsPath("path")
+     def remove_directory_recursive(self, path, as_user = Users.CURRENT, user_password = None):
+         output = StringIO.StringIO()
+-        res = self.process_ops.exec_cmd('/bin/rm -R ' + quote_path(path),
++        res = self.process_ops.exec_cmd('@rm@ -R ' + quote_path(path),
+                                         as_user   = as_user,
+                                         user_password = user_password,
+                                         output_handler = output.write,
+@@ -953,7 +953,7 @@
+     @useAbsPath("path")
+     def delete_file(self, path, as_user = Users.CURRENT, user_password = None):
+         output = StringIO.StringIO()
+-        res = self.process_ops.exec_cmd("/bin/rm " + quote_path(path),
++        res = self.process_ops.exec_cmd("@rm@ " + quote_path(path),
+                                         as_user   = as_user,
+                                         user_password = user_password,
+                                         output_handler = output.write,
+@@ -1001,7 +1001,7 @@
+     def _copy_file(self, source, dest, as_user = Users.CURRENT, user_password = None):
+         output = StringIO.StringIO()
+         
+-        res = self.process_ops.exec_cmd("LC_ALL=C /bin/cp " + quote_path(source) + " " + quote_path(dest),
++        res = self.process_ops.exec_cmd("LC_ALL=C @cp@ " + quote_path(source) + " " + quote_path(dest),
+                       as_user   = as_user,
+                       user_password = user_password,
+                       output_handler = output.write,
+@@ -1077,9 +1077,9 @@
+             # for ls -l, the output format changes depending on stdout being a terminal or not
+             # since both cases are possible, we need to handle both at the same time (1st line being total <nnnn> or not)
+             # the good news is that if the line is there, then it will always start with total, regardless of the locale
+-            command = 'LC_ALL=C /bin/ls -l -p %s' % quote_path(path)
++            command = 'LC_ALL=C @ls@ -l -p %s' % quote_path(path)
+         else:
+-            command = 'LC_ALL=C /bin/ls -1 -p %s' % quote_path(path)
++            command = 'LC_ALL=C @ls@ -1 -p %s' % quote_path(path)
+             
+         output = StringIO.StringIO()
+         res = self.process_ops.exec_cmd(command,
+@@ -2160,9 +2160,9 @@
+     def get_range(self, start, end):
+         f = StringIO.StringIO()
+         if not self._need_sudo:
+-            ret = self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.CURRENT, user_password=None, output_handler=f.write)
++            ret = self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.CURRENT, user_password=None, output_handler=f.write)
+         else:
+-            ret = self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.ADMIN, user_password=self.get_password, output_handler=f.write)
++            ret = self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.ADMIN, user_password=self.get_password, output_handler=f.write)
+ 
+         if ret != 0:
+             raise RuntimeError("Could not get data from file %s" % self.path)
+@@ -2170,9 +2170,9 @@
+ 
+     def read_task(self, offset, file):
+         if not self._need_sudo:
+-            self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=file.write)
++            self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=file.write)
+         else:
+-            self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self.get_password, output_handler=file.write)
++            self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self.get_password, output_handler=file.write)
+         # this will signal the reader end that there's no more data
+         file.close()
+ 
+@@ -2198,9 +2198,9 @@
+         self._pos = offset
+         f = StringIO.StringIO()
+         if not self._need_sudo:
+-            self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=f.write)
++            self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=f.write)
+         else:
+-            self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self._password, output_handler=f.write)
++            self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self._password, output_handler=f.write)
+         self.data = f
+         self.data.seek(0)
+         if self.skip_first_newline:
diff --git a/pkgs/applications/misc/polybar/default.nix b/pkgs/applications/misc/polybar/default.nix
index 347b77c7ab4..0c358e4221a 100644
--- a/pkgs/applications/misc/polybar/default.nix
+++ b/pkgs/applications/misc/polybar/default.nix
@@ -1,33 +1,36 @@
 { cairo, cmake, fetchgit, libXdmcp, libpthreadstubs, libxcb, pcre, pkgconfig
-, python2 , stdenv, xcbproto, xcbutil, xcbutilimage, xcbutilrenderutil
-, xcbutilwm, xcbutilxrm, makeWrapper
+, python2, stdenv, xcbproto, xcbutil, xcbutilcursor, xcbutilimage
+, xcbutilrenderutil, xcbutilwm, xcbutilxrm, makeWrapper
 
 # optional packages-- override the variables ending in 'Support' to enable or
 # disable modules
 , alsaSupport   ? true,  alsaLib       ? null
-, iwSupport     ? true,  wirelesstools ? null
 , githubSupport ? false, curl          ? null
 , mpdSupport    ? false, mpd_clientlib ? null
 , pulseSupport  ? false, libpulseaudio ? null
+, iwSupport     ? false, wirelesstools ? null
+, nlSupport     ? true,  libnl         ? null
 , i3Support ? false, i3GapsSupport ? false, i3 ? null, i3-gaps ? null, jsoncpp ? null
 }:
 
 assert alsaSupport   -> alsaLib       != null;
 assert githubSupport -> curl          != null;
-assert iwSupport     -> wirelesstools != null;
 assert mpdSupport    -> mpd_clientlib != null;
 assert pulseSupport  -> libpulseaudio != null;
 
+assert iwSupport     -> ! nlSupport && wirelesstools != null;
+assert nlSupport     -> ! iwSupport && libnl         != null;
+
 assert i3Support     -> ! i3GapsSupport && jsoncpp != null && i3      != null;
 assert i3GapsSupport -> ! i3Support     && jsoncpp != null && i3-gaps != null;
 
 stdenv.mkDerivation rec {
     name = "polybar-${version}";
-    version = "3.2.0";
+    version = "3.2.1";
     src = fetchgit {
       url = "https://github.com/jaagr/polybar";
       rev = version;
-      sha256 = "0p94brndysvmmbidhl4ds4w3qvddb752s4vryp0qckb0hz3knqk8";
+      sha256 = "1z45swj2l0h8x8li7prl963cgl6zm3birsswpij8qwcmjaj5l8vz";
     };
 
     meta = with stdenv.lib; {
@@ -44,14 +47,16 @@ stdenv.mkDerivation rec {
 
     buildInputs = [
       cairo libXdmcp libpthreadstubs libxcb pcre python2 xcbproto xcbutil
-      xcbutilimage xcbutilrenderutil xcbutilwm xcbutilxrm
+      xcbutilcursor xcbutilimage xcbutilrenderutil xcbutilwm xcbutilxrm
 
       (if alsaSupport   then alsaLib       else null)
       (if githubSupport then curl          else null)
-      (if iwSupport     then wirelesstools else null)
       (if mpdSupport    then mpd_clientlib else null)
       (if pulseSupport  then libpulseaudio else null)
 
+      (if iwSupport     then wirelesstools else null)
+      (if nlSupport     then libnl         else null)
+
       (if i3Support || i3GapsSupport then jsoncpp else null)
       (if i3Support then i3 else null)
       (if i3GapsSupport then i3-gaps else null)
diff --git a/pkgs/applications/networking/mailreaders/nylas-mail-bin/default.nix b/pkgs/applications/networking/mailreaders/nylas-mail-bin/default.nix
index e7e199155d7..3376eebe5dc 100644
--- a/pkgs/applications/networking/mailreaders/nylas-mail-bin/default.nix
+++ b/pkgs/applications/networking/mailreaders/nylas-mail-bin/default.nix
@@ -81,8 +81,6 @@ stdenv.mkDerivation rec {
   ];
 
 
-  buildInputs = [ gnome2.gnome-keyring ];
-
   nativeBuildInputs = [ makeWrapper ];
 
   buildCommand = ''
diff --git a/pkgs/applications/networking/newsreaders/liferea/default.nix b/pkgs/applications/networking/newsreaders/liferea/default.nix
index a82891a8f35..6e87735a9f6 100644
--- a/pkgs/applications/networking/newsreaders/liferea/default.nix
+++ b/pkgs/applications/networking/newsreaders/liferea/default.nix
@@ -6,13 +6,13 @@
 
 let
   pname = "liferea";
-  version = "1.12.3";
+  version = "1.12.4";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.bz2";
-    sha256 = "0wm2c8qrgnadq63fivai53xm7vl05wgxc0nk39jcriscdikzqpcg";
+    sha256 = "12852qp174nsg770cry7y257vfzl53hpy46h5agaimrfsc41mgln";
   };
 
   nativeBuildInputs = [ wrapGAppsHook python3Packages.wrapPython intltool pkgconfig ];
diff --git a/pkgs/applications/networking/remote/putty/default.nix b/pkgs/applications/networking/remote/putty/default.nix
index 4c1ddcef5cc..e07bf7958f3 100644
--- a/pkgs/applications/networking/remote/putty/default.nix
+++ b/pkgs/applications/networking/remote/putty/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, autoconf, automake, pkgconfig, libtool
-, gtk2, halibut, ncurses, perl }:
+, gtk2, halibut, ncurses, perl
+, hostPlatform, lib }:
 
 stdenv.mkDerivation rec {
   version = "0.70";
@@ -13,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "1gmhwwj1y7b5hgkrkxpf4jddjpk9l5832zq5ibhsiicndsfs92mv";
   };
 
-  preConfigure = ''
+  preConfigure = lib.optionalString hostPlatform.isUnix ''
     perl mkfiles.pl
     ( cd doc ; make );
     sed -e '/AM_PATH_GTK(/d' \
@@ -21,13 +22,25 @@ stdenv.mkDerivation rec {
         -e '/AC_OUTPUT/iAM_PROG_AR' -i configure.ac
     ./mkauto.sh
     cd unix
+  '' + lib.optionalString hostPlatform.isWindows ''
+    cd windows
   '';
 
+  TOOLPATH = stdenv.cc.targetPrefix;
+  makefile = if hostPlatform.isWindows then "Makefile.mgw" else null;
+
+  installPhase = if hostPlatform.isWindows then ''
+    for exe in *.exe; do
+       install -D $exe $out/bin/$exe
+    done
+  '' else null;
+
   nativeBuildInputs = [ autoconf automake halibut libtool perl pkgconfig ];
-  buildInputs = [ gtk2 ncurses ];
+  buildInputs = []
+              ++ lib.optionals hostPlatform.isUnix [ gtk2 ncurses ];
   enableParallelBuilding = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Free Telnet/SSH Client";
     longDescription = ''
       PuTTY is a free implementation of Telnet and SSH for Windows and Unix
@@ -36,6 +49,6 @@ stdenv.mkDerivation rec {
     '';
     homepage = https://www.chiark.greenend.org.uk/~sgtatham/putty/;
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.unix ++ platforms.windows;
   };
 }
diff --git a/pkgs/applications/science/logic/sad/default.nix b/pkgs/applications/science/logic/sad/default.nix
index 51ea9b9c0e7..426f1928938 100644
--- a/pkgs/applications/science/logic/sad/default.nix
+++ b/pkgs/applications/science/logic/sad/default.nix
@@ -7,7 +7,12 @@ stdenv.mkDerivation {
     sha256 = "10jd93xgarik7xwys5lq7fx4vqp7c0yg1gfin9cqfch1k1v8ap4b";
   };
   buildInputs = [ ghc spass ];
-  patches = [ ./patch ];
+  patches = [
+    ./patch
+    # Since the LTS 12.0 update, <> is an operator in Prelude, colliding with
+    # the <> operator with a different meaning defined by this package
+    ./monoid.patch
+  ];
   postPatch = ''
     substituteInPlace Alice/Main.hs --replace init.opt $out/init.opt
     '';
@@ -23,7 +28,7 @@ stdenv.mkDerivation {
   meta = {
     description = "A program for automated proving of mathematical texts";
     longDescription = ''
-      The system for automated deduction is intended for automated processing of formal mathematical texts 
+      The system for automated deduction is intended for automated processing of formal mathematical texts
       written in a special language called ForTheL (FORmal THEory Language) or in a traditional first-order language
       '';
     license = stdenv.lib.licenses.gpl3Plus;
diff --git a/pkgs/applications/science/logic/sad/monoid.patch b/pkgs/applications/science/logic/sad/monoid.patch
new file mode 100644
index 00000000000..da9c21bcae9
--- /dev/null
+++ b/pkgs/applications/science/logic/sad/monoid.patch
@@ -0,0 +1,51 @@
+diff --git a/Alice/Core/Check.hs b/Alice/Core/Check.hs
+index 0700fa0388f..69815864710 100644
+--- a/Alice/Core/Check.hs
++++ b/Alice/Core/Check.hs
+@@ -18,8 +18,12 @@
+  -  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+  -}
+ 
++{-# LANGUAGE NoImplicitPrelude #-}
++
+ module Alice.Core.Check (fillDef) where
+ 
++import Prelude hiding ((<>))
++
+ import Control.Monad
+ import Data.Maybe
+ 
+diff --git a/Alice/Core/Reason.hs b/Alice/Core/Reason.hs
+index c361bcf220d..4e493d8c91b 100644
+--- a/Alice/Core/Reason.hs
++++ b/Alice/Core/Reason.hs
+@@ -17,9 +17,12 @@
+  -  You should have received a copy of the GNU General Public License
+  -  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+  -}
++{-# LANGUAGE NoImplicitPrelude #-}
+ 
+ module Alice.Core.Reason where
+ 
++import Prelude hiding ((<>))
++
+ import Control.Monad
+ 
+ import Alice.Core.Base
+diff --git a/Alice/Core/Verify.hs b/Alice/Core/Verify.hs
+index 4f8550bdf11..0f59d135b16 100644
+--- a/Alice/Core/Verify.hs
++++ b/Alice/Core/Verify.hs
+@@ -18,8 +18,12 @@
+  -  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+  -}
+ 
++{-# LANGUAGE NoImplicitPrelude #-}
++
+ module Alice.Core.Verify (verify) where
+ 
++import Prelude hiding ((<>))
++
+ import Control.Monad
+ import Data.IORef
+ import Data.Maybe
diff --git a/pkgs/applications/science/math/palp/default.nix b/pkgs/applications/science/math/palp/default.nix
index 4c7df4412e4..e9fd21b46d8 100644
--- a/pkgs/applications/science/math/palp/default.nix
+++ b/pkgs/applications/science/math/palp/default.nix
@@ -19,6 +19,10 @@ stdenv.mkDerivation rec {
     "strictoverflow" # causes runtime failure (tested in checkPhase)
   ];
 
+  patchPhase = stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace GNUmakefile --replace gcc cc
+  '';
+
   preBuild = ''
       echo Building PALP optimized for ${dim} dimensions
       sed -i "s/^#define[^a-zA-Z]*POLY_Dmax.*/#define POLY_Dmax ${dim}/" Global.h
@@ -77,6 +81,6 @@ stdenv.mkDerivation rec {
     # the right license.
     license = licenses.gpl2;
     maintainers = with maintainers; [ timokau ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/virtualization/virt-viewer/default.nix b/pkgs/applications/virtualization/virt-viewer/default.nix
index 33e12d10985..beecf72fd0b 100644
--- a/pkgs/applications/virtualization/virt-viewer/default.nix
+++ b/pkgs/applications/virtualization/virt-viewer/default.nix
@@ -13,12 +13,12 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   baseName = "virt-viewer";
-  version = "6.0";
+  version = "7.0";
   name = "${baseName}-${version}";
 
   src = fetchurl {
     url = "http://virt-manager.org/download/sources/${baseName}/${name}.tar.gz";
-    sha256 = "1chqrf658niivzfh85cbwkbv9vyg8sv1mv3i31vawkfsfdvvsdwh";
+    sha256 = "00y9vi69sja4pkrfnvrkwsscm41bqrjzvp8aijb20pvg6ymczhj7";
   };
 
   nativeBuildInputs = [ pkgconfig intltool ];
diff --git a/pkgs/applications/window-managers/xmonad/log-applet/default.nix b/pkgs/applications/window-managers/xmonad/log-applet/default.nix
index f2acf03958b..96f742df310 100644
--- a/pkgs/applications/window-managers/xmonad/log-applet/default.nix
+++ b/pkgs/applications/window-managers/xmonad/log-applet/default.nix
@@ -1,45 +1,46 @@
 { stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, glib, dbus-glib
-, desktopSupport
-, gtk2, gnome2_panel, GConf2
+, desktopSupport, xlibs
+, gtk2
+, gtk3, gnome3, mate
 , libxfce4util, xfce4-panel
 }:
 
-assert desktopSupport == "gnome2" || desktopSupport == "gnome3" || desktopSupport == "xfce4";
+assert desktopSupport == "gnomeflashback" || desktopSupport == "mate"  || desktopSupport == "xfce4";
 
 stdenv.mkDerivation rec {
-  version = "2.1.0";
+  version = "unstable-2017-09-15";
   pname = "xmonad-log-applet";
-  name = "${pname}-${version}-${desktopSupport}";
+  name = "${pname}-${desktopSupport}-${version}";
 
   src = fetchFromGitHub {
-    owner = "alexkay";
+    owner = "kalj";
     repo = pname;
-    rev = "${version}";
-    sha256 = "1g1fisyaw83v72b25fxfjln8f4wlw3rm6nyk27mrqlhsc1spnb5p";
+    rev = "a1b294cad2f266e4f18d9de34167fa96a0ffdba8";
+    sha256 = "042307grf4zvn61gnflhsj5xsjykrk9sjjsprprm4iij0qpybxcw";
   };
 
-  buildInputs =  with stdenv.lib;
-                 [ glib dbus-glib ]
-              ++ optionals (desktopSupport == "gnome2") [ gtk2 gnome2_panel GConf2 ]
-              # TODO: no idea where to find libpanelapplet-4.0
-              ++ optionals (desktopSupport == "gnome3") [ ]
-              ++ optionals (desktopSupport == "xfce4") [ gtk2 libxfce4util xfce4-panel ]
-              ;
-  
+  buildInputs = [ glib dbus-glib xlibs.xcbutilwm ]
+    ++ stdenv.lib.optionals (desktopSupport == "gnomeflashback") [ gtk3 gnome3.gnome-panel ]
+    ++ stdenv.lib.optionals (desktopSupport == "mate") [ gtk3 mate.mate-panel ]
+    ++ stdenv.lib.optionals (desktopSupport == "xfce4") [ gtk2 libxfce4util xfce4-panel ]
+  ;
+
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  
+
   configureFlags =  [ "--with-panel=${desktopSupport}" ];
-  
+
   patches = [ ./fix-paths.patch ];
 
+  # Setup hook replaces ${prefix} in pc files so we cannot use
+  # --define-variable=prefix=$prefix
+  PKG_CONFIG_LIBXFCE4PANEL_1_0_LIBDIR = "$(out)/lib";
+
   meta = with stdenv.lib; {
-    homepage = https://github.com/alexkay/xmonad-log-applet;
+    homepage = https://github.com/kalj/xmonad-log-applet;
     license = licenses.bsd3;
     description = "An applet that will display XMonad log information (${desktopSupport} version)";
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
-
-    broken = desktopSupport == "gnome3";
   };
 }
 
diff --git a/pkgs/applications/window-managers/xmonad/log-applet/fix-paths.patch b/pkgs/applications/window-managers/xmonad/log-applet/fix-paths.patch
index 031843afb17..5e1fc7114dc 100644
--- a/pkgs/applications/window-managers/xmonad/log-applet/fix-paths.patch
+++ b/pkgs/applications/window-managers/xmonad/log-applet/fix-paths.patch
@@ -1,50 +1,57 @@
-diff --git a/Makefile.am b/Makefile.am
-index 619012d..dcc6d3c 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,4 +1,5 @@
- plugindir = $(PLUGIN_DIR)
-+SESSION_BUS_SERVICES_DIR = $(prefix)/share/dbus-1/services
- plugin_PROGRAMS = xmonad-log-applet
- 
- xmonad_log_applet_SOURCES = main.c
-diff --git a/configure.ac b/configure.ac
-index ad4cffb..110c953 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -27,28 +27,28 @@ AC_ARG_WITH(
+@@ -20,7 +20,7 @@
+ PKG_CHECK_MODULES(XCB, xcb xcb-ewmh)
+ 
+ PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1 >= 0.80)
+-SESSION_BUS_SERVICES_DIR=`$PKG_CONFIG --variable=session_bus_services_dir dbus-1`
++SESSION_BUS_SERVICES_DIR=$prefix/share/dbus-1/services
+ AC_SUBST([SESSION_BUS_SERVICES_DIR])
+ 
+ AC_ARG_WITH(
+@@ -32,35 +32,35 @@
  AS_IF(
      [test "x$panel" = xgnome2],
          [PKG_CHECK_MODULES(LIBPANEL, libpanelapplet-3.0 >= 2.32.0)]
 -        LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=prefix libpanelapplet-3.0`/share/gnome-panel/applets
 -        PLUGIN_DIR=`$PKG_CONFIG --variable=prefix libpanelapplet-3.0`/libexec
-+        LIBPANEL_APPLET_DIR=${prefix}/share/gnome-panel/applets
-+        PLUGIN_DIR=${prefix}/libexec
++        LIBPANEL_APPLET_DIR=$prefix/share/gnome-panel/applets
++        PLUGIN_DIR=$prefix/libexec
          [AC_DEFINE(PANEL_GNOME, 1, [panel type])]
          [AC_DEFINE(PANEL_GNOME2, 1, [panel type])]
          ,
      [test "x$panel" = xgnome3],
          [PKG_CHECK_MODULES(LIBPANEL, libpanelapplet-4.0 >= 3.0.0)]
-         LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=libpanel_applet_dir libpanelapplet-4.0`
+-        LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=libpanel_applet_dir libpanelapplet-4.0`
 -        PLUGIN_DIR=`$PKG_CONFIG --variable=prefix libpanelapplet-4.0`/libexec
-+        PLUGIN_DIR=${prefix}/libexec
++        LIBPANEL_APPLET_DIR=`$PKG_CONFIG --define-variable=prefix=$prefix --variable=libpanel_applet_dir libpanelapplet-4.0`
++        PLUGIN_DIR=$prefix/libexec
          [AC_DEFINE(PANEL_GNOME, 1, [panel type])]
          [AC_DEFINE(PANEL_GNOME3, 1, [panel type])]
          ,
+     [test "x$panel" = xgnomeflashback],
+         [PKG_CHECK_MODULES(LIBPANEL, libpanel-applet >= 3.0.0)]
+-        LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=libpanel_applet_dir libpanel-applet`
+-        PLUGIN_DIR=`$PKG_CONFIG --variable=prefix libpanel-applet`/libexec
++        LIBPANEL_APPLET_DIR=`$PKG_CONFIG --define-variable=prefix=$prefix --variable=libpanel_applet_dir libpanel-applet`
++        PLUGIN_DIR=$prefix/libexec
+         [AC_DEFINE(PANEL_GNOME, 1, [panel type])]
+         [AC_DEFINE(PANEL_GNOMEFLASHBACK, 1, [panel type])]
+         ,
      [test "x$panel" = xmate],
-         [PKG_CHECK_MODULES(LIBPANEL, libmatepanelapplet-3.0 >= 1.4.0)]
--        LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=prefix libmatepanelapplet-3.0`/share/mate-panel/applets
--        PLUGIN_DIR=`$PKG_CONFIG --variable=prefix libmatepanelapplet-3.0`/libexec
-+        LIBPANEL_APPLET_DIR=${prefix}/share/mate-panel/applets
-+        PLUGIN_DIR=${prefix}/libexec
+         [PKG_CHECK_MODULES(LIBPANEL, libmatepanelapplet-4.0 >= 1.4.0)]
+-        LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=prefix libmatepanelapplet-4.0`/share/mate-panel/applets
+-        PLUGIN_DIR=`$PKG_CONFIG --variable=prefix libmatepanelapplet-4.0`/libexec
++        LIBPANEL_APPLET_DIR=$prefix/share/mate-panel/applets
++        PLUGIN_DIR=$prefix/libexec
          [AC_DEFINE(PANEL_MATE, 1, [panel type])]
          ,
      [test "x$panel" = xxfce4],
          [PKG_CHECK_MODULES(LIBPANEL, libxfce4panel-1.0 >= 4.6.0)]
 -        LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=prefix libxfce4panel-1.0`/share/xfce4/panel-plugins
 -        PLUGIN_DIR=`$PKG_CONFIG --variable=libdir libxfce4panel-1.0`/xfce4/panel/plugins
-+        LIBPANEL_APPLET_DIR=${prefix}/share/xfce4/panel-plugins
-+        PLUGIN_DIR=${prefix}/lib/xfce4/panel/plugins
++        LIBPANEL_APPLET_DIR=$prefix/share/xfce4/panel-plugins
++        PLUGIN_DIR=`$PKG_CONFIG --define-variable=prefix=$prefix --variable=libdir libxfce4panel-1.0`/xfce4/panel/plugins
          [AC_DEFINE(PANEL_XFCE4, 1, [panel type])]
          ,
-     [AC_MSG_ERROR([Unknown panel type, use gnome2, gnome3, mate or xfce4])]
+     [AC_MSG_ERROR([Unknown panel type, use gnome2, gnome3, gnomeflashback, mate or xfce4])]
diff --git a/pkgs/build-support/fetchdocker/credentials.nix b/pkgs/build-support/fetchdocker/credentials.nix
index 001693501cc..6d084d3c77e 100644
--- a/pkgs/build-support/fetchdocker/credentials.nix
+++ b/pkgs/build-support/fetchdocker/credentials.nix
@@ -32,7 +32,7 @@
 let
   pathParts =
    (builtins.filter
-    ({prefix}: "DOCKER_CREDENTIALS" == prefix)
+    ({prefix, path}: "DOCKER_CREDENTIALS" == prefix)
     builtins.nixPath);
 in
   if (pathParts != []) then (builtins.head pathParts).path else ""
diff --git a/pkgs/desktops/gnome-2/default.nix b/pkgs/desktops/gnome-2/default.nix
index 80f2c9ce70d..c41183f4b24 100644
--- a/pkgs/desktops/gnome-2/default.nix
+++ b/pkgs/desktops/gnome-2/default.nix
@@ -8,12 +8,7 @@ let overridden = set // overrides; set = with overridden; {
   startupnotification = libstartup_notification;
   gnomedocutils = self.gnome-doc-utils;
   gnomeicontheme = self.gnome_icon_theme;
-  gnomepanel = self.gnome_panel;
   gnome_common = gnome-common;
-  gnome_keyring = gnome-keyring;
-  gnome_desktop = gnome-desktop;
-  gnome_settings_daemon = gnome-settings-daemon;
-  gnome_control_center = gnome-control-center;
   inherit rarian;
 
 #### PLATFORM
@@ -58,8 +53,6 @@ let overridden = set // overrides; set = with overridden; {
 
   gnome_vfs = callPackage ./platform/gnome-vfs { };
 
-  gnome_vfs_monikers = callPackage ./platform/gnome-vfs-monikers { };
-
   libgnome = callPackage ./platform/libgnome { };
 
   libgnomeui = callPackage ./platform/libgnomeui { };
@@ -68,8 +61,6 @@ let overridden = set // overrides; set = with overridden; {
 
   libbonoboui = callPackage ./platform/libbonoboui { };
 
-  at_spi = callPackage ./platform/at-spi { };
-
   gtkhtml = callPackage ./platform/gtkhtml { };
 
   gtkhtml4 = callPackage ./platform/gtkhtml/4.x.nix { };
@@ -83,31 +74,11 @@ let overridden = set // overrides; set = with overridden; {
 
 #### DESKTOP
 
-  gnome-keyring = callPackage ./desktop/gnome-keyring { };
-
-  libgweather = callPackage ./desktop/libgweather { };
-
   gvfs = gvfs.override { gnome = self; };
 
-  libgnomekbd = callPackage ./desktop/libgnomekbd { };
-
   # Removed from recent GNOME releases, but still required
   scrollkeeper = callPackage ./desktop/scrollkeeper { };
 
-  zenity = callPackage ./desktop/zenity { };
-
-  metacity = callPackage ./desktop/metacity { };
-
-  gnome_menus = callPackage ./desktop/gnome-menus { };
-
-  gnome-desktop = callPackage ./desktop/gnome-desktop { };
-
-  gnome_panel = callPackage ./desktop/gnome-panel { };
-
-  gnome-settings-daemon = callPackage ./desktop/gnome-settings-daemon { };
-
-  gnome-control-center = callPackage ./desktop/gnome-control-center { };
-
   gtksourceview = callPackage ./desktop/gtksourceview { };
 
   gnome_icon_theme = callPackage ./desktop/gnome-icon-theme { };
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-control-center/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-control-center/default.nix
deleted file mode 100644
index c4f6ad8207c..00000000000
--- a/pkgs/desktops/gnome-2/desktop/gnome-control-center/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, dbus-glib, libxml2Python, libxslt, libxklavier, popt, which, python
-, shared-mime-info, desktop-file-utils, libunique, libtool, bzip2
-, gtk, gnome-doc-utils, intltool, GConf, libglade, libgnomeui, libgnomekbd
-, librsvg, gnome_menus, gnome-desktop, gnome_panel, metacity, gnome-settings-daemon
-, libSM, docbook_xml_dtd_412 }:
-
-stdenv.mkDerivation {
-  name = "gnome-control-center-2.32.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-control-center/2.32/gnome-control-center-2.32.1.tar.bz2;
-    sha256 = "0rkyg6naidql0nv74608mlsr2lzjgnndnxnxv3s0hp4f6mbqnmkw";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ dbus-glib libxml2Python libxslt libxklavier popt which python shared-mime-info desktop-file-utils
-                  gtk gnome-doc-utils intltool GConf libglade libgnomekbd libunique libtool bzip2
-                  libgnomeui librsvg gnome_menus gnome-desktop gnome_panel metacity gnome-settings-daemon
-                  libSM docbook_xml_dtd_412
-  ];
-  configureFlags = "--disable-scrollkeeper";
-}
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-desktop/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-desktop/default.nix
deleted file mode 100644
index b99f23555d3..00000000000
--- a/pkgs/desktops/gnome-2/desktop/gnome-desktop/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, python, libxml2Python, libxslt, which, libX11, gtk
-, intltool, GConf, gnome-doc-utils}:
-
-stdenv.mkDerivation {
-  name = "gnome-desktop-2.32.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-desktop/2.32/gnome-desktop-2.32.1.tar.bz2;
-    sha256 = "17bkng6ay37n3492lr9wpb49kms6gh554rn9gbjs27zygvvfrjsm";
-  };
-
-  configureFlags = "--disable-scrollkeeper";
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ python libxml2Python libxslt which libX11 gtk
-                  intltool GConf gnome-doc-utils ];
-}
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix
deleted file mode 100644
index 26f3f624a04..00000000000
--- a/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{stdenv, fetchurl, pkgconfig, dbus, libgcrypt, libtasn1, pam, python, glib,
-gtk, intltool, GConf, libgnome-keyring }:
-
-stdenv.mkDerivation {
-  name = "gnome-keyring-2.30.3";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-keyring/2.30/gnome-keyring-2.30.3.tar.bz2;
-    sha256 = "02r9gv3a4a705jf3h7c0bizn33c73wz0iw2500m7z291nrnmqkmj";
-  };
-  
-  buildInputs = [ dbus libgcrypt pam python gtk GConf libgnome-keyring ];
-
-  propagatedBuildInputs = [ glib libtasn1 ];
-
-  nativeBuildInputs = [ pkgconfig intltool ];
-}
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-menus/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-menus/default.nix
deleted file mode 100644
index 0dcb409e0aa..00000000000
--- a/pkgs/desktops/gnome-2/desktop/gnome-menus/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{stdenv, fetchurl, pkgconfig, python, glib, intltool}:
-
-stdenv.mkDerivation {
-  name = "gnome-menus-2.30.5";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-menus/2.30/gnome-menus-2.30.5.tar.bz2;
-    sha256 = "1ajckii51spmkgfc0168c56x0syz5vwb2fp8b81c5s6n0r85dk3d";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ python glib intltool ];
-}
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix
deleted file mode 100644
index 3bef218740c..00000000000
--- a/pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, dbus-glib, popt, which, libxml2Python, libxslt, bzip2, python
-, gtk, libXau, libcanberra-gtk2
-, intltool, ORBit2, libglade, libgnome, libgnomeui, libbonobo, libbonoboui, GConf, gnome_menus, gnome-desktop
-, libwnck, librsvg, libgweather, gnome-doc-utils, libtasn1, libtool, xorg }:
-
-stdenv.mkDerivation {
-  name = "gnome-panel-2.32.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-panel/2.32/gnome-panel-2.32.1.tar.bz2;
-    sha256 = "0pyakxyixmcp1yhi8r1q6adhamh2waj48y397fkigj11gbmjhy4g";
-  };
-
-  buildInputs =
-    [ gtk dbus-glib popt libxml2Python libxslt bzip2 python libXau intltool
-      ORBit2 libglade libgnome libgnomeui libbonobo libbonoboui GConf
-      gnome_menus gnome-desktop libwnck librsvg libgweather gnome-doc-utils
-      libtasn1 libtool libcanberra-gtk2 xorg.libICE xorg.libSM
-    ];
-
-  nativeBuildInputs = [ pkgconfig intltool which ];
-
-  configureFlags = [ "--disable-scrollkeeper" "--disable-introspection"/*not useful AFAIK*/ ];
-
-  NIX_CFLAGS_COMPILE="-I${GConf.dev}/include/gconf/2";
-}
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix
deleted file mode 100644
index 9712ce64841..00000000000
--- a/pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, dbus-glib, libxklavier, gtk
-, intltool, GConf, gnome-desktop, libglade, libgnomekbd, polkit, libpulseaudio
-, libSM }:
-
-stdenv.mkDerivation {
-  name = "gnome-settings-daemon-2.32.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-settings-daemon/2.32/gnome-settings-daemon-2.32.1.tar.bz2;
-    sha256 = "11jyn10w2p2a76pjrkd0pjl1w406df821p053awklvmdqgzb6x00";
-  };
-
-  buildInputs =
-    [ dbus-glib libxklavier gtk GConf gnome-desktop libglade libgnomekbd polkit
-      libpulseaudio libSM
-    ];
-
-  nativeBuildInputs = [ pkgconfig intltool ];
-}
diff --git a/pkgs/desktops/gnome-2/desktop/libgnomekbd/default.nix b/pkgs/desktops/gnome-2/desktop/libgnomekbd/default.nix
deleted file mode 100644
index b846ef888c4..00000000000
--- a/pkgs/desktops/gnome-2/desktop/libgnomekbd/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{stdenv, fetchurl, pkgconfig, dbus-glib, libxklavier, glib, gtk, intltool, GConf, libglade}:
-
-stdenv.mkDerivation {
-  name = "libgnomekbd-2.32.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/libgnomekbd/2.32/libgnomekbd-2.32.0.tar.bz2;
-    sha256 = "0mnjhdryx94c106fghzz01dyc1vlp16wn6sajvpxffnqqx62rmfx";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ dbus-glib libxklavier glib gtk intltool GConf libglade ];
-}
diff --git a/pkgs/desktops/gnome-2/desktop/libgweather/default.nix b/pkgs/desktops/gnome-2/desktop/libgweather/default.nix
deleted file mode 100644
index 47f2b8c90fb..00000000000
--- a/pkgs/desktops/gnome-2/desktop/libgweather/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, gtk, intltool, GConf, libsoup, libtasn1, nettle, gmp }:
-
-assert stdenv ? glibc;
-
-stdenv.mkDerivation rec {
-  name = "libgweather-2.30.3";
-  src = fetchurl {
-    url = "mirror://gnome/sources/libgweather/2.30/${name}.tar.bz2";
-    sha256 = "0k16lpdyy8as8wgc5dqpy5b8i9i4mrl77qx8db23fgs2c533fddq";
-  };
-  configureFlags = "--with-zoneinfo-dir=${stdenv.glibc}/share/zoneinfo";
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libxml2 gtk intltool GConf libsoup libtasn1 nettle gmp ];
-}
diff --git a/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix b/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix
index c14ee25981c..1547c364b51 100644
--- a/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-   buildInputs = [ glib dbus-glib gmime libnotify libgnome-keyring openssl cyrus_sasl gnonlin sylpheed gob2 gettext intltool gnome2.GConf gnome2.libgnomeui dbus-glib gmime libnotify gnome2.gnome-keyring gnome2.scrollkeeper libxml2 gnome2.gnome_icon_theme hicolor-icon-theme tango-icon-theme ];
+   buildInputs = [ glib dbus-glib gmime libnotify libgnome-keyring openssl cyrus_sasl gnonlin sylpheed gob2 gettext intltool gnome2.GConf gnome2.libgnomeui dbus-glib gmime libnotify gnome2.scrollkeeper libxml2 gnome2.gnome_icon_theme hicolor-icon-theme tango-icon-theme ];
 
   prePatch = ''
     sed -i  -e '/jb_rule_set_install_message/d' -e '/jb_rule_add_install_command/d' jbsrc/jb.c
diff --git a/pkgs/desktops/gnome-2/desktop/metacity/default.nix b/pkgs/desktops/gnome-2/desktop/metacity/default.nix
deleted file mode 100644
index 95dd97568f4..00000000000
--- a/pkgs/desktops/gnome-2/desktop/metacity/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, gtk, libXcomposite, libXcursor, libXdamage
-, libcanberra-gtk2, intltool, GConf, startup_notification, zenity, gnome-doc-utils
-, gsettings-desktop-schemas }:
-
-stdenv.mkDerivation {
-  name = "metacity-2.30.3";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/metacity/2.30/metacity-2.30.3.tar.bz2;
-    sha256 = "1p8qzj967mmlwdl6gv9vb2vzs19czvivl0sd337lgr55iw0qgy08";
-  };
-
-  buildInputs =
-    [ pkgconfig glib gtk libXcomposite libXcursor libXdamage libcanberra-gtk2
-      intltool GConf startup_notification zenity gnome-doc-utils
-      gsettings-desktop-schemas
-    ];
-}
diff --git a/pkgs/desktops/gnome-2/desktop/zenity/default.nix b/pkgs/desktops/gnome-2/desktop/zenity/default.nix
deleted file mode 100644
index 0233f6340f5..00000000000
--- a/pkgs/desktops/gnome-2/desktop/zenity/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, libxslt, gtk
-, gnome-doc-utils, intltool, libglade, libX11, which, docbook_xml_dtd_412 }:
-
-stdenv.mkDerivation {
-  name = "zenity-2.32.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/zenity/2.32/zenity-2.32.1.tar.bz2;
-    sha256 = "1b0qxb07wif0ds1pl8xk3fq9p874j89rf718lii4ndh7382bwf48";
-  };
-
-  configureFlags = "--disable-scrollkeeper";
-  buildInputs = [ gtk libglade libxml2 libxslt libX11 docbook_xml_dtd_412 ];
-
-  nativeBuildInputs = [ pkgconfig intltool gnome-doc-utils which ];
-
-  doCheck = false; # fails, tries to access the net
-}
diff --git a/pkgs/desktops/gnome-2/platform/at-spi/default.nix b/pkgs/desktops/gnome-2/platform/at-spi/default.nix
deleted file mode 100644
index 9bcc9ab6cab..00000000000
--- a/pkgs/desktops/gnome-2/platform/at-spi/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, fetchurl, python, pkgconfig, popt, atk, gtk, libX11, libICE, libXtst, libXi
-, intltool, libbonobo, ORBit2, GConf, dbus-glib }:
-
-stdenv.mkDerivation {
-  name = "at-spi-1.32.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/at-spi/1.32/at-spi-1.32.0.tar.bz2;
-    sha256 = "0fbh0afzw1gm4r2w68b8l0vhnia1qyzdl407vyxfw4v4fkm1v16c";
-  };
-
-  hardeningDisable = [ "format" ];
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ python popt atk gtk libX11 libICE libXtst libXi
-                  intltool libbonobo ORBit2 GConf dbus-glib ];
-}
diff --git a/pkgs/desktops/gnome-2/platform/gnome-vfs-monikers/default.nix b/pkgs/desktops/gnome-2/platform/gnome-vfs-monikers/default.nix
deleted file mode 100644
index 5ae126df331..00000000000
--- a/pkgs/desktops/gnome-2/platform/gnome-vfs-monikers/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{stdenv, fetchurl, pkgconfig, glib, intltool, gnome_vfs, libbonobo}:
-
-stdenv.mkDerivation {
-  name = "gnome-vfs-monikers-2.15.3";
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-vfs-monikers/2.15/gnome-vfs-monikers-2.15.3.tar.bz2;
-    sha256 = "0gpgk5vwhgqfhrd8pf1314kh7sv3jfqll2xbdbrs5s5sxy3v7b15";
-  };
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ glib intltool gnome_vfs libbonobo ];
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
index 13f4b1ef638..e909a356866 100644
--- a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
@@ -1,27 +1,26 @@
 { stdenv, fetchurl, pkgconfig, libxslt, which, libX11, gnome3, gtk3, glib
-, intltool, gnome-doc-utils, xkeyboard_config, isocodes, itstool, wayland
-, libseccomp, bubblewrap, gobjectIntrospection }:
+, intltool, libxml2, xkeyboard_config, isocodes, itstool, wayland
+, libseccomp, bubblewrap, gobjectIntrospection, gtk-doc, docbook_xsl }:
 
 stdenv.mkDerivation rec {
   name = "gnome-desktop-${version}";
   version = "3.28.2";
 
+  outputs = [ "out" "dev" "devdoc" ];
+
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-desktop/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0c439hhpfd9axmv4af6fzhibksh69pnn2nnbghbbqqbwy6zqfl30";
   };
 
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-desktop"; attrPath = "gnome3.gnome-desktop"; };
-  };
-
-  # this should probably be setuphook for glib
+  # TODO: remove with 3.30
   NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
   enableParallelBuilding = true;
 
   nativeBuildInputs = [
-    pkgconfig which itstool intltool libxslt gnome-doc-utils gobjectIntrospection
+    pkgconfig which itstool intltool libxslt libxml2 gobjectIntrospection
+    gtk-doc docbook_xsl
   ];
   buildInputs = [
     libX11 bubblewrap xkeyboard_config isocodes wayland
@@ -34,11 +33,22 @@ stdenv.mkDerivation rec {
     ./bubblewrap-paths.patch
   ];
 
+  configureFlags = [
+    "--enable-gtk-doc"
+  ];
+
   postPatch = ''
     substituteInPlace libgnome-desktop/gnome-desktop-thumbnail-script.c --subst-var-by \
       BUBBLEWRAP_BIN "${bubblewrap}/bin/bwrap"
   '';
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "gnome-desktop";
+      attrPath = "gnome3.gnome-desktop";
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Library with common API for various GNOME modules";
     license = with licenses; [ gpl2 lgpl2 ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
index d224f056170..a0318514c9b 100644
--- a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, gnome3
-, gnome-doc-utils, intltool, which, libuuid, vala
-, desktop-file-utils, itstool, wrapGAppsHook, appdata-tools }:
+{ stdenv, fetchurl, pkgconfig, libxml2, gnome3, dconf, nautilus
+, gtk, gsettings-desktop-schemas, vte, intltool, which, libuuid, vala
+, desktop-file-utils, itstool, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   name = "gnome-terminal-${version}";
@@ -11,15 +11,16 @@ stdenv.mkDerivation rec {
     sha256 = "0ybjansg6lr279191w8z8r45gy4rxwzw1ajm98cgkv0fk2jdr0x2";
   };
 
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-terminal"; attrPath = "gnome3.gnome-terminal"; };
-  };
-
-  buildInputs = [ gnome3.gtk gnome3.gsettings-desktop-schemas gnome3.vte appdata-tools
-                  gnome3.dconf itstool gnome3.nautilus ];
+  buildInputs = [
+    gtk gsettings-desktop-schemas vte libuuid dconf
+    # For extension
+    nautilus
+  ];
 
-  nativeBuildInputs = [ pkgconfig intltool gnome-doc-utils which libuuid libxml2
-                        vala desktop-file-utils wrapGAppsHook ];
+  nativeBuildInputs = [
+    pkgconfig intltool itstool which libxml2
+    vala desktop-file-utils wrapGAppsHook
+  ];
 
   # Silly ./configure, it looks for dbus file from gnome-shell in the
   # installation tree of the package it is configuring.
@@ -28,15 +29,22 @@ stdenv.mkDerivation rec {
     substituteInPlace src/Makefile.in --replace '$(dbusinterfacedir)/org.gnome.ShellSearchProvider2.xml' "${gnome3.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml"
   '';
 
-  # FIXME: enable for gnome3
-  configureFlags = [ "--disable-migration" ];
+  configureFlags = [ "--disable-migration" ]; # TODO: remove this with 3.30
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "gnome-terminal";
+      attrPath = "gnome3.gnome-terminal";
+    };
+  };
 
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
     description = "The GNOME Terminal Emulator";
-    homepage = https://wiki.gnome.org/Apps/Terminal/;
+    homepage = https://wiki.gnome.org/Apps/Terminal;
     platforms = platforms.linux;
+    license = licenses.gpl3Plus;
     maintainers = gnome3.maintainers;
   };
 }
diff --git a/pkgs/desktops/gnome-3/core/gucharmap/default.nix b/pkgs/desktops/gnome-3/core/gucharmap/default.nix
index 861702a3986..797eb00bd3f 100644
--- a/pkgs/desktops/gnome-3/core/gucharmap/default.nix
+++ b/pkgs/desktops/gnome-3/core/gucharmap/default.nix
@@ -1,6 +1,7 @@
-{ stdenv, intltool, fetchFromGitLab, pkgconfig, gtk3, defaultIconTheme
-, glib, desktop-file-utils, appdata-tools, gtk-doc, autoconf, automake, libtool
-, wrapGAppsHook, gnome3, itstool, libxml2
+{ stdenv, intltool, fetchFromGitLab, fetchpatch, pkgconfig, gtk3, defaultIconTheme
+, glib, desktop-file-utils, gtk-doc, autoconf, automake, libtool
+, wrapGAppsHook, gnome3, itstool, libxml2, yelp-tools
+, docbook_xsl, docbook_xml_dtd_412, gsettings-desktop-schemas
 , callPackage, unzip, gobjectIntrospection }:
 
 let
@@ -9,6 +10,8 @@ in stdenv.mkDerivation rec {
   name = "gucharmap-${version}";
   version = "11.0.1";
 
+  outputs = [ "out" "lib" "dev" "devdoc" ];
+
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
@@ -17,16 +20,26 @@ in stdenv.mkDerivation rec {
     sha256 = "13iw4fa6mv8vi8bkwk0bbhamnzbaih0c93p4rh07khq6mxa6hnpi";
   };
 
+  patches = [
+    # Fix locale path to allow split outputs
+    # https://gitlab.gnome.org/GNOME/gucharmap/issues/10
+    (fetchpatch {
+      url = https://gitlab.gnome.org/GNOME/gucharmap/commit/b2b03f16aa869ac0ec1a05c55c4d4e4c4b513576.patch;
+      sha256 = "1543mcyz96x23m9pzx04ny15m4a2pqmiksl1y5r51k3sw4fyisci";
+    })
+  ];
+
   nativeBuildInputs = [
-    pkgconfig wrapGAppsHook unzip intltool itstool appdata-tools
-    autoconf automake libtool gtk-doc
-    gnome3.yelp-tools libxml2 desktop-file-utils gobjectIntrospection
+    pkgconfig wrapGAppsHook unzip intltool itstool
+    autoconf automake libtool gtk-doc docbook_xsl docbook_xml_dtd_412
+    yelp-tools libxml2 desktop-file-utils gobjectIntrospection
   ];
 
-  buildInputs = [ gtk3 glib gnome3.gsettings-desktop-schemas defaultIconTheme ];
+  buildInputs = [ gtk3 glib gsettings-desktop-schemas defaultIconTheme ];
 
   configureFlags = [
     "--with-unicode-data=${unicode-data}"
+    "--enable-gtk-doc"
   ];
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/core/vte/default.nix b/pkgs/desktops/gnome-3/core/vte/default.nix
index 17385ab7202..47a2c2f19d3 100644
--- a/pkgs/desktops/gnome-3/core/vte/default.nix
+++ b/pkgs/desktops/gnome-3/core/vte/default.nix
@@ -19,7 +19,12 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ gobjectIntrospection intltool pkgconfig vala gperf libxml2 ];
   buildInputs = [ gnome3.glib gnome3.gtk3 ncurses ];
 
-  propagatedBuildInputs = [ gnutls pcre2 ];
+  propagatedBuildInputs = [
+    # Required by vte-2.91.pc.
+    gnome3.gtk3
+    gnutls
+    pcre2
+  ];
 
   preConfigure = "patchShebangs .";
 
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index ce542e7f88b..478dfc5d9f4 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -187,31 +187,31 @@ lib.makeScope pkgs.newScope (self: with self; {
   nautilus = callPackage ./core/nautilus { };
 
   networkmanager-openvpn = pkgs.networkmanager-openvpn.override {
-    inherit gnome3;
+    withGnome = true;
   };
 
   networkmanager-vpnc = pkgs.networkmanager-vpnc.override {
-    inherit gnome3;
+    withGnome = true;
   };
 
   networkmanager-openconnect = pkgs.networkmanager-openconnect.override {
-    inherit gnome3;
+    withGnome = true;
   };
 
   networkmanager-fortisslvpn = pkgs.networkmanager-fortisslvpn.override {
-    inherit gnome3;
+    withGnome = true;
   };
 
   networkmanager-l2tp = pkgs.networkmanager-l2tp.override {
-    inherit gnome3;
+    withGnome = true;
   };
 
   networkmanager-iodine = pkgs.networkmanager-iodine.override {
-    inherit gnome3;
+    withGnome = true;
   };
 
   networkmanagerapplet = pkgs.networkmanagerapplet.override {
-    inherit gnome3 gsettings-desktop-schemas glib-networking;
+    withGnome = true;
   };
 
   rest = callPackage ./core/rest { };
@@ -373,10 +373,18 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   gexiv2 = callPackage ./misc/gexiv2 { };
 
+  gnome-applets = callPackage ./misc/gnome-applets { };
+
+  gnome-flashback = callPackage ./misc/gnome-flashback { };
+
+  gnome-panel = callPackage ./misc/gnome-panel { };
+
   gnome-tweaks = callPackage ./misc/gnome-tweaks { };
 
   gpaste = callPackage ./misc/gpaste { };
 
+  metacity = callPackage ./misc/metacity { };
+
   pidgin-im-gnome-shell-extension = callPackage ./misc/pidgin { };
 
   gtkhtml = callPackage ./misc/gtkhtml { };
diff --git a/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix b/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
new file mode 100644
index 00000000000..cbf8bc9707b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
@@ -0,0 +1,110 @@
+{ stdenv
+, fetchurl
+, fetchpatch
+, autoreconfHook
+, intltool
+, itstool
+, libxml2
+, libxslt
+, pkgconfig
+, gnome-panel
+, gtk3
+, glib
+, libwnck3
+, libgtop
+, libnotify
+, upower
+, dbus-glib
+, wirelesstools
+, linuxPackages
+, adwaita-icon-theme
+, libgweather
+, gucharmap
+, gnome-settings-daemon
+, tracker
+, polkit
+, gnome3
+}:
+
+let
+  pname = "gnome-applets";
+  version = "3.28.0";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "0wd6pirv57rcxm5d32r1s3ni7sp26gnqd4qhjciw0pn5ak627y5h";
+  };
+
+  patches = [
+    # https://github.com/NixOS/nixpkgs/issues/36468
+    # https://gitlab.gnome.org/GNOME/gnome-applets/issues/3
+    (fetchpatch {
+      url = https://gitlab.gnome.org/GNOME/gnome-applets/commit/1ee719581c33d7d640ae9f656e4e9b192bafef78.patch;
+      sha256 = "05wim7d2ii3pxph3n3am76cvnxmkfpggk0cpy8p5xgm3hcibwfrf";
+    })
+    (fetchpatch {
+      url = https://gitlab.gnome.org/GNOME/gnome-applets/commit/1fa778b01f0e6b70678b0e5755ca0ed7a093fa75.patch;
+      sha256 = "0kppqywn0ab18p64ixz0b58cn5bpqf0xy71bycldlc5ybpdx5mq0";
+    })
+
+    # https://gitlab.gnome.org/GNOME/gnome-applets/issues/4
+    (fetchpatch {
+      url = https://gitlab.gnome.org/GNOME/gnome-applets/commit/e14482a90e6113f211e9328d8c39a69bdf5111d8.patch;
+      sha256 = "10ac0kk38hxqh8yvdlriyyv809qrxbpy9ihp01gizhiw7qpz97ff";
+    })
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    intltool
+    itstool
+    pkgconfig
+    libxml2
+    libxslt
+  ];
+
+  buildInputs = [
+    gnome-panel
+    gtk3
+    glib
+    libxml2
+    libwnck3
+    libgtop
+    libnotify
+    upower
+    dbus-glib
+    adwaita-icon-theme
+    libgweather
+    gucharmap
+    gnome-settings-daemon
+    tracker
+    polkit
+    wirelesstools
+    linuxPackages.cpupower
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
+  configureFlags = [
+    "--with-libpanel-applet-dir=$(out)/share/gnome-panel/applets"
+  ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "Applets for use with the GNOME panel";
+    homepage = https://wiki.gnome.org/Projects/GnomeApplets;
+    license = licenses.gpl2Plus;
+    maintainers = gnome3.maintainers;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix b/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
new file mode 100644
index 00000000000..f3f2cf99257
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
@@ -0,0 +1,92 @@
+{ stdenv
+, autoreconfHook
+, fetchurl
+, fetchpatch
+, gettext
+, glib
+, gnome-bluetooth
+, gnome-desktop
+, gnome-session
+, gnome3
+, gsettings-desktop-schemas
+, gtk
+, ibus
+, intltool
+, libcanberra-gtk3
+, libpulseaudio
+, libxkbfile
+, libxml2
+, metacity
+, pkgconfig
+, polkit
+, substituteAll
+, upower
+, xkeyboard_config }:
+
+let
+  pname = "gnome-flashback";
+  version = "3.28.0";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "1ra8bfwgwqw47zx2h1q999g7l4dnqh7sv02if3zk8pkw3sm769hg";
+  };
+
+  patches =[
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit metacity;
+      gnomeSession = gnome-session;
+    })
+
+    # https://github.com/NixOS/nixpkgs/issues/36468
+    # https://gitlab.gnome.org/GNOME/gnome-flashback/issues/3
+    (fetchpatch {
+      url = https://gitlab.gnome.org/GNOME/gnome-flashback/commit/eabd34f64adc43b8783920bd7a2177ce21f83fbc.patch;
+      sha256 = "116c5zy8cp7d06mrsn943q7vj166086jzrfzfqg7yli14pmf9w1a";
+    })
+  ];
+
+  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}";
+    };
+  };
+
+  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;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/misc/gnome-flashback/fix-paths.patch b/pkgs/desktops/gnome-3/misc/gnome-flashback/fix-paths.patch
new file mode 100644
index 00000000000..9d5add233d6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/gnome-flashback/fix-paths.patch
@@ -0,0 +1,30 @@
+--- 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/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix b/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
new file mode 100644
index 00000000000..5c40b4c8f44
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
@@ -0,0 +1,92 @@
+{ stdenv
+, fetchurl
+, autoreconfHook
+, fetchpatch
+, dconf
+, evolution-data-server
+, gdm
+, gettext
+, glib
+, gnome-desktop
+, gnome-menus
+, gnome3
+, gtk
+, itstool
+, libgweather
+, libsoup
+, libwnck3
+, libxml2
+, pkgconfig
+, polkit
+, systemd
+, wrapGAppsHook }:
+
+let
+  pname = "gnome-panel";
+  version = "3.28.0";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  outputs = [ "out" "dev" "man" ];
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "1004cp9cxqpic9lsraqn5c1739acn4sn4ql3c1fja99hv22h1ziv";
+  };
+
+  patches = [
+    # https://github.com/NixOS/nixpkgs/issues/36468
+    # https://gitlab.gnome.org/GNOME/gnome-panel/issues/6
+    (fetchpatch {
+      url = https://gitlab.gnome.org/GNOME/gnome-panel/commit/be26e170a10c297949a6d9f3cbc70b6caaf04b56.patch;
+      sha256 = "10gxl9fwbv5j0s1lz7gkz6wqpda5wfzs49r5khbk1h05lv0hk4l4";
+    })
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    gettext
+    itstool
+    libxml2
+    pkgconfig
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    dconf
+    evolution-data-server
+    gdm
+    glib
+    gnome-desktop
+    gnome-menus
+    gtk
+    libgweather
+    libsoup
+    libwnck3
+    polkit
+    systemd
+  ];
+
+  configureFlags = [
+    "--enable-eds"
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "Component of Gnome Flashback that provides panels and default applets for the desktop";
+    homepage = https://wiki.gnome.org/Projects/GnomePanel;
+    license = licenses.gpl2Plus;
+    maintainers = gnome3.maintainers;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/misc/metacity/default.nix b/pkgs/desktops/gnome-3/misc/metacity/default.nix
new file mode 100644
index 00000000000..46ff2c11813
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/metacity/default.nix
@@ -0,0 +1,70 @@
+{ stdenv
+, fetchurl
+, gettext
+, glib
+, gnome3
+, gsettings-desktop-schemas
+, gtk
+, libcanberra-gtk3
+, libgtop
+, libstartup_notification
+, libxml2
+, pkgconfig
+, substituteAll
+, wrapGAppsHook
+, zenity }:
+
+let
+  pname = "metacity";
+  version = "3.28.0";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "0kzap0lzlkcgkna3h426xgwrn2zpipy8cfsxpfynnaf74vyas3aw";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit zenity;
+    })
+  ];
+
+  nativeBuildInputs = [
+    gettext
+    libxml2
+    pkgconfig
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    gsettings-desktop-schemas
+    gtk
+    libcanberra-gtk3
+    libgtop
+    libstartup_notification
+    zenity
+  ];
+
+  enableParallelBuilding = true;
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    description = "Window manager used in Gnome Flashback";
+    homepage = https://wiki.gnome.org/Projects/Metacity;
+    license = licenses.gpl2;
+    maintainers = gnome3.maintainers;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/misc/metacity/fix-paths.patch b/pkgs/desktops/gnome-3/misc/metacity/fix-paths.patch
new file mode 100644
index 00000000000..ff3a244e67d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/metacity/fix-paths.patch
@@ -0,0 +1,11 @@
+--- a/src/core/util.c
++++ b/src/core/util.c
+@@ -424,7 +424,7 @@
+                                  g_slist_length (columns)*2 +
+                                  g_slist_length (entries)));
+ 
+-  argvl[i++] = "zenity";
++  argvl[i++] = "@zenity@/bin/zenity";
+   argvl[i++] = type;
+   argvl[i++] = "--display";
+   argvl[i++] = display;
diff --git a/pkgs/desktops/plasma-5/fetch.sh b/pkgs/desktops/plasma-5/fetch.sh
index 9e5faf96de2..acf769f02e3 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.13.2/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/plasma/5.13.4/ -A '*.tar.xz' )
diff --git a/pkgs/desktops/plasma-5/plasma-workspace/plasma-workspace.patch b/pkgs/desktops/plasma-5/plasma-workspace/plasma-workspace.patch
index 7f45d51d160..9027f6ad8a4 100644
--- a/pkgs/desktops/plasma-5/plasma-workspace/plasma-workspace.patch
+++ b/pkgs/desktops/plasma-5/plasma-workspace/plasma-workspace.patch
@@ -526,7 +526,7 @@ index f9e2e429..0a4267a9 100644
  
  echo 'startkde: Done.'  1>&2
 diff --git a/startkde/startplasma.cmake b/startkde/startplasma.cmake
-index a5d09fa7..d42c284b 100644
+index f7330ab3..5eedbb11 100644
 --- a/startkde/startplasma.cmake
 +++ b/startkde/startplasma.cmake
 @@ -1,6 +1,6 @@
@@ -663,8 +663,8 @@ index a5d09fa7..d42c284b 100644
    exit 1
  fi
  
--qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage kinit
-+@NIXPKGS_QDBUS@ org.kde.KSplash /KSplash org.kde.KSplash.setStage kinit
+-qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage kinit &
++@NIXPKGS_QDBUS@ org.kde.KSplash /KSplash org.kde.KSplash.setStage kinit &
  
  # finally, give the session control to the session manager
  # see kdebase/ksmserver for the description of the rest of the startup sequence
@@ -718,7 +718,7 @@ index a5d09fa7..d42c284b 100644
  
  echo 'startplasma: Done.'  1>&2
 diff --git a/startkde/startplasmacompositor.cmake b/startkde/startplasmacompositor.cmake
-index dd9e304d..49d456e9 100644
+index dd9e304d..12132f9e 100644
 --- a/startkde/startplasmacompositor.cmake
 +++ b/startkde/startplasmacompositor.cmake
 @@ -1,118 +1,165 @@
diff --git a/pkgs/desktops/plasma-5/srcs.nix b/pkgs/desktops/plasma-5/srcs.nix
index 966237b73a8..752493b1a70 100644
--- a/pkgs/desktops/plasma-5/srcs.nix
+++ b/pkgs/desktops/plasma-5/srcs.nix
@@ -3,363 +3,363 @@
 
 {
   bluedevil = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/bluedevil-5.13.2.tar.xz";
-      sha256 = "16ip2myq0s5d1yjipr0k0cvbq22mc668pms33qhs2836mqxq4c87";
-      name = "bluedevil-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/bluedevil-5.13.4.tar.xz";
+      sha256 = "1f7bjj3p5n8pvmqqgqz5xgjjhq1mjwknd36hrr5jn3klhbyahqkk";
+      name = "bluedevil-5.13.4.tar.xz";
     };
   };
   breeze = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/breeze-5.13.2.tar.xz";
-      sha256 = "1yl41rjh2qmplny6x9hm885mwsfn6w5asw8dkp7rk0qpyb607jkq";
-      name = "breeze-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/breeze-5.13.4.tar.xz";
+      sha256 = "1kxcd8zkk79mjh1j0lzw2nf0v0w2qc4zzb68nw61k1ca8v9mgq84";
+      name = "breeze-5.13.4.tar.xz";
     };
   };
   breeze-grub = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/breeze-grub-5.13.2.tar.xz";
-      sha256 = "1j2lh8prbdivy7vlv3iyizgkmsc2qwpjkivyn9b9r6gpp0ii0dwk";
-      name = "breeze-grub-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/breeze-grub-5.13.4.tar.xz";
+      sha256 = "1vxy24b2ndjkljw5ipwl8nl8nqckxr64sq6v4p690wib9j1nly09";
+      name = "breeze-grub-5.13.4.tar.xz";
     };
   };
   breeze-gtk = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/breeze-gtk-5.13.2.tar.xz";
-      sha256 = "12hs3nqjf20kcn18ab64qdwc8aq33l220giqfffdb7rh8n7wyknx";
-      name = "breeze-gtk-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/breeze-gtk-5.13.4.tar.xz";
+      sha256 = "0sa0v9irimqhh17c1nykzkbhr6n3agam8y0idfr26xg7jblch3s0";
+      name = "breeze-gtk-5.13.4.tar.xz";
     };
   };
   breeze-plymouth = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/breeze-plymouth-5.13.2.tar.xz";
-      sha256 = "18020rppw59iwqdrmm0xsmq2cl98z6m5na8walvvzvlqsskc7hh6";
-      name = "breeze-plymouth-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/breeze-plymouth-5.13.4.tar.xz";
+      sha256 = "1v02bh3xwcx5vixcp21a4wq04nn3wsgip5ycrgsb2bn013mspv20";
+      name = "breeze-plymouth-5.13.4.tar.xz";
     };
   };
   discover = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/discover-5.13.2.tar.xz";
-      sha256 = "0jh2d9gk72fm2csf8i41hq4i0dd467m3cw5y81wbrz3k9qd3llrb";
-      name = "discover-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/discover-5.13.4.tar.xz";
+      sha256 = "1n7wd9w1r9a5ncgqc2s0aywivzqc3115wr93hrf1lqxpk0qskkyc";
+      name = "discover-5.13.4.tar.xz";
     };
   };
   drkonqi = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/drkonqi-5.13.2.tar.xz";
-      sha256 = "1zfd4pbrqp67zqmhydimqdbq49bc5b20d9z8px27l1rgj951ms2j";
-      name = "drkonqi-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/drkonqi-5.13.4.tar.xz";
+      sha256 = "1ddqisah98qd0hqg6pz5jk1pmisji2c6mj3i5w7df57zi7kpj4wz";
+      name = "drkonqi-5.13.4.tar.xz";
     };
   };
   kactivitymanagerd = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/kactivitymanagerd-5.13.2.tar.xz";
-      sha256 = "1z6nncnlzmk0l1k4vsg9g2z18k1z4k73j2gv7bbhyx9xmb0aypdf";
-      name = "kactivitymanagerd-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/kactivitymanagerd-5.13.4.tar.xz";
+      sha256 = "0iq5bxnszdndbvrqi8xm80d7i67xw0z45yq3qdsdlx80zzgb9g9d";
+      name = "kactivitymanagerd-5.13.4.tar.xz";
     };
   };
   kde-cli-tools = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/kde-cli-tools-5.13.2.tar.xz";
-      sha256 = "04hyhbr288girwsp5h8rbxkp8m56wm69h9vhbb7g4lr5b3jrr1ps";
-      name = "kde-cli-tools-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/kde-cli-tools-5.13.4.tar.xz";
+      sha256 = "1dznj0jni4bm5z0hy644pcf7iavfd9yp8hfx87af3xhxxrifws37";
+      name = "kde-cli-tools-5.13.4.tar.xz";
     };
   };
   kdecoration = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/kdecoration-5.13.2.tar.xz";
-      sha256 = "1gjp1ma0d0kxkky13kx16gwmwwjllz2w9h4ffa9hnw93sk0z1rb0";
-      name = "kdecoration-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/kdecoration-5.13.4.tar.xz";
+      sha256 = "1clf939g7qpnxxxw8iv3i4l9330dayzhg0cfrx6mffm2ywny67wd";
+      name = "kdecoration-5.13.4.tar.xz";
     };
   };
   kde-gtk-config = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/kde-gtk-config-5.13.2.tar.xz";
-      sha256 = "0np7r02ihgii1894fysr8ik9jxs3b6bdb5blkdnh51j44dr7c5a4";
-      name = "kde-gtk-config-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/kde-gtk-config-5.13.4.tar.xz";
+      sha256 = "03x5yvgk6kjy12qh3xblv90rsf8g5nsrc9573zd3rzz74pjql605";
+      name = "kde-gtk-config-5.13.4.tar.xz";
     };
   };
   kdeplasma-addons = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/kdeplasma-addons-5.13.2.tar.xz";
-      sha256 = "03a0w3gimiak32zhhqwi4y35lpdq7fblbjg8xfgsdzrps7zh1n7x";
-      name = "kdeplasma-addons-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/kdeplasma-addons-5.13.4.tar.xz";
+      sha256 = "1kgnmkykma14vinabal747hpvnrahccksgb68pxb4lxgylbcvy04";
+      name = "kdeplasma-addons-5.13.4.tar.xz";
     };
   };
   kgamma5 = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/kgamma5-5.13.2.tar.xz";
-      sha256 = "0d3yhwgyag5yzny9adsxvdd1dmfq0k6aslz9cgi5fn7k9jppvn6j";
-      name = "kgamma5-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/kgamma5-5.13.4.tar.xz";
+      sha256 = "0hcnflk7zzpx00w6ifidrwxjmr99xrisfz2206fggal5j7y5w6yw";
+      name = "kgamma5-5.13.4.tar.xz";
     };
   };
   khotkeys = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/khotkeys-5.13.2.tar.xz";
-      sha256 = "13fffa73mddm4wb436kw6m7i2p1mv8c3z8dj6gr7ccbcsmzhlj88";
-      name = "khotkeys-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/khotkeys-5.13.4.tar.xz";
+      sha256 = "1nq2afb06y3383gh3n5b1b4sbry5nicy3znid6p7b0jch1a0v73x";
+      name = "khotkeys-5.13.4.tar.xz";
     };
   };
   kinfocenter = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/kinfocenter-5.13.2.tar.xz";
-      sha256 = "00cvc3idbghl74nbrbii9xp969vngr0jbdsjh1rriv1is8vfldfn";
-      name = "kinfocenter-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/kinfocenter-5.13.4.tar.xz";
+      sha256 = "1vnch4ic1ppsrnp1w6rjcmn3c9ni91b3dgk0z91aw2x8c77cvji9";
+      name = "kinfocenter-5.13.4.tar.xz";
     };
   };
   kmenuedit = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/kmenuedit-5.13.2.tar.xz";
-      sha256 = "0ss2dwnaqsfir0s95iyp1sjmh1kx19jihj1nbnix5hdlwgbp5qvd";
-      name = "kmenuedit-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/kmenuedit-5.13.4.tar.xz";
+      sha256 = "0jyb4dc42dnpb6v4hkfb9m97yim767z0dc0i0hxqvznd87n5nk98";
+      name = "kmenuedit-5.13.4.tar.xz";
     };
   };
   kscreen = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/kscreen-5.13.2.tar.xz";
-      sha256 = "080m1kii0xxd2r1b2gvz40qj7ixkammgb3ki3sbxa74avwxd1p10";
-      name = "kscreen-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/kscreen-5.13.4.tar.xz";
+      sha256 = "0labhlwdar6iibixal48bkk777hpyaibszv9mshlmhd7riaqrxs3";
+      name = "kscreen-5.13.4.tar.xz";
     };
   };
   kscreenlocker = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/kscreenlocker-5.13.2.tar.xz";
-      sha256 = "0hczdgx03i2r6y8qfrpj7pk4n5l1maigsip77qbgsli3d3fapri9";
-      name = "kscreenlocker-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/kscreenlocker-5.13.4.tar.xz";
+      sha256 = "01b6y0wwclhni6ansg3avkml4qsq93rrg254ihy18bd1h05jxg4r";
+      name = "kscreenlocker-5.13.4.tar.xz";
     };
   };
   ksshaskpass = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/ksshaskpass-5.13.2.tar.xz";
-      sha256 = "1f4b12vqzg351m4ps316w0spbywm7mv21p95sd17zz17fm39pzzn";
-      name = "ksshaskpass-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/ksshaskpass-5.13.4.tar.xz";
+      sha256 = "1f1567ac8qlgjgbqbksxqm969shydw3nizhn3ixvzr0n81lvab36";
+      name = "ksshaskpass-5.13.4.tar.xz";
     };
   };
   ksysguard = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/ksysguard-5.13.2.tar.xz";
-      sha256 = "0b4achg5dvb97mf25bd9s08nanj4ag6y4bwdbpr3zgbp1dp790n7";
-      name = "ksysguard-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/ksysguard-5.13.4.tar.xz";
+      sha256 = "1pg5687mlf5h4wb65my0v6scrj1zkxm5755wlq1jdasqr6zffdw0";
+      name = "ksysguard-5.13.4.tar.xz";
     };
   };
   kwallet-pam = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/kwallet-pam-5.13.2.tar.xz";
-      sha256 = "1dpd7lgycfjrd9lgv1na4gb3wf22dvprigsxsqiq3zw9xqkc9778";
-      name = "kwallet-pam-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/kwallet-pam-5.13.4.tar.xz";
+      sha256 = "0f9pg73710adr8p7m9qmync2lc86yl6hxmvr854lqzrp9mm2an0p";
+      name = "kwallet-pam-5.13.4.tar.xz";
     };
   };
   kwayland-integration = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/kwayland-integration-5.13.2.tar.xz";
-      sha256 = "0bhx5678f21mxmrdlh6r8cxjj6dh45minkgarh6j2zdvzfxxif1s";
-      name = "kwayland-integration-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/kwayland-integration-5.13.4.tar.xz";
+      sha256 = "0mhsidzpv5wg59d3v5z3a4n27fgfpdcr6y33zvib9k67isgx39h1";
+      name = "kwayland-integration-5.13.4.tar.xz";
     };
   };
   kwin = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/kwin-5.13.2.tar.xz";
-      sha256 = "03fhjl3zyk725xp6bj6ljgfmniw5zgwpacarfl7ifnnwzgfbni6f";
-      name = "kwin-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/kwin-5.13.4.tar.xz";
+      sha256 = "1inh20xh80nv1vn0154jqsn6cn1xqfgjvvdvng6k2v330sd15dc6";
+      name = "kwin-5.13.4.tar.xz";
     };
   };
   kwrited = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/kwrited-5.13.2.tar.xz";
-      sha256 = "0m6ks0l9nyfpdl5lvfzlip9qk7z5cfnx3jvh4v20vm4cvr9rb1yr";
-      name = "kwrited-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/kwrited-5.13.4.tar.xz";
+      sha256 = "1j9gl6d3j5mzydb4r9xmzxs313f2pj5phnh2n74nia672fn5kpqb";
+      name = "kwrited-5.13.4.tar.xz";
     };
   };
   libkscreen = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/libkscreen-5.13.2.tar.xz";
-      sha256 = "05r56xynavq3zd3bvchy1yx3z0h8si12w8fcf8pqgdvr38vrqqm5";
-      name = "libkscreen-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/libkscreen-5.13.4.tar.xz";
+      sha256 = "1azcpc3jm006s8zswv1w22gcajyvs800xc77l6das5jrl4ddk309";
+      name = "libkscreen-5.13.4.tar.xz";
     };
   };
   libksysguard = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/libksysguard-5.13.2.tar.xz";
-      sha256 = "1xbjb4lm7bn41zpy9plsg4qdqg3i4m9gzvpaqd1rvd9v24qzy7pi";
-      name = "libksysguard-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/libksysguard-5.13.4.tar.xz";
+      sha256 = "0k8q5bxk9zyv7c3nny1c399v8acqs618nw39q20pj2qdijl9ibvh";
+      name = "libksysguard-5.13.4.tar.xz";
     };
   };
   milou = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/milou-5.13.2.tar.xz";
-      sha256 = "1mzhgj6q4siaiy9kccrdr4dpjij5gkd1l60kmw0lk80sn92cc5pd";
-      name = "milou-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/milou-5.13.4.tar.xz";
+      sha256 = "0rqwjb91a5x7piwdfh4xy8f2nhkfzdaja0ifpm7hrkysq6d9yzad";
+      name = "milou-5.13.4.tar.xz";
     };
   };
   oxygen = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/oxygen-5.13.2.tar.xz";
-      sha256 = "09dxn73fx78j7d0qfvv7hw7h0pv0yaz1f7s2m9f5f9d666v8fja5";
-      name = "oxygen-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/oxygen-5.13.4.tar.xz";
+      sha256 = "0035z94v4fbdl5jcaggv1vqjxk9z1marf4vs8zm7fkz6hhcn4vj2";
+      name = "oxygen-5.13.4.tar.xz";
     };
   };
   plasma-browser-integration = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/plasma-browser-integration-5.13.2.tar.xz";
-      sha256 = "08gdm4qyi89zffrk630cj8k6h0qimmv3va99s85bqwvjzslsf9i6";
-      name = "plasma-browser-integration-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/plasma-browser-integration-5.13.4.tar.xz";
+      sha256 = "19vqn3wbkfzsbf5rl61zaqgp10q83zxjmvvbn9325rp3dsv3i0jb";
+      name = "plasma-browser-integration-5.13.4.tar.xz";
     };
   };
   plasma-desktop = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/plasma-desktop-5.13.2.tar.xz";
-      sha256 = "17xcvjbr5j75m8j54g9i7ny9qsiqvv930fgwdxzdwhvskca9lshi";
-      name = "plasma-desktop-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/plasma-desktop-5.13.4.tar.xz";
+      sha256 = "1wmyms3bjka9kgjc6zp17j8w707lnmr2kxqzqznm78c16h34lfdx";
+      name = "plasma-desktop-5.13.4.tar.xz";
     };
   };
   plasma-integration = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/plasma-integration-5.13.2.tar.xz";
-      sha256 = "0273510djc7kbcvxw13dlhj3cislfrbryg8im8c4dasabafxfhmx";
-      name = "plasma-integration-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/plasma-integration-5.13.4.tar.xz";
+      sha256 = "0p5wqj0jdvwq7blj7j1va00jlkqkwcxfkcj7gpnjmnsggp25mpsq";
+      name = "plasma-integration-5.13.4.tar.xz";
     };
   };
   plasma-nm = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/plasma-nm-5.13.2.tar.xz";
-      sha256 = "1shbgdm4019crijpg4xbs9lsan6h63gijqckh4acvjfplbmk39q0";
-      name = "plasma-nm-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/plasma-nm-5.13.4.tar.xz";
+      sha256 = "0qadmxzmw8a4r43ri2xxj4i884vraxlyxmwqkkn540x0aysyj4rq";
+      name = "plasma-nm-5.13.4.tar.xz";
     };
   };
   plasma-pa = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/plasma-pa-5.13.2.tar.xz";
-      sha256 = "0sn59f3w3bz7xm41x6i03s9vd9p6vwynnj9xcnyc2797l0bf9vq9";
-      name = "plasma-pa-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/plasma-pa-5.13.4.tar.xz";
+      sha256 = "1xqmp19dkggfzapns94jr0jz03aphdlz31iw888w2qj730zdx97k";
+      name = "plasma-pa-5.13.4.tar.xz";
     };
   };
   plasma-sdk = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/plasma-sdk-5.13.2.tar.xz";
-      sha256 = "1z1p8n327v1pgkdqj125nwdhip482lny1ryi7c2cdvivhppjdhv3";
-      name = "plasma-sdk-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/plasma-sdk-5.13.4.tar.xz";
+      sha256 = "13ddin88ila3imkhn9bgaf1i0bbbmcb4xigk2cps74s8vl98jpfa";
+      name = "plasma-sdk-5.13.4.tar.xz";
     };
   };
   plasma-tests = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/plasma-tests-5.13.2.tar.xz";
-      sha256 = "0p7j3nhqvlywg32j627ci58ifn5zq9rgyiw0mv8gn79kghzkfc39";
-      name = "plasma-tests-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/plasma-tests-5.13.4.tar.xz";
+      sha256 = "0fzqw3ix9sa3m492xjz46wsaqs7cgfpcprdx3z05ww4217k5d4sf";
+      name = "plasma-tests-5.13.4.tar.xz";
     };
   };
   plasma-vault = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/plasma-vault-5.13.2.tar.xz";
-      sha256 = "15w2qyjb4iab302v5n0a8xfiwj9hb62js82v17sln49axcs95xfb";
-      name = "plasma-vault-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/plasma-vault-5.13.4.tar.xz";
+      sha256 = "1acpn49vb645a30xnxxf0rylihb7n838l0ky5169n6dq96swam4j";
+      name = "plasma-vault-5.13.4.tar.xz";
     };
   };
   plasma-workspace = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/plasma-workspace-5.13.2.tar.xz";
-      sha256 = "1rjdh6ikiri6nikl5idhczlk17bzcn29m3g1c7gd67s2fglvak0p";
-      name = "plasma-workspace-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/plasma-workspace-5.13.4.tar.xz";
+      sha256 = "1kvl6pbhqw7llv8llq020qvbk7glynix8c4dsh3dfp170xpg3qnh";
+      name = "plasma-workspace-5.13.4.tar.xz";
     };
   };
   plasma-workspace-wallpapers = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/plasma-workspace-wallpapers-5.13.2.tar.xz";
-      sha256 = "0bx7r1xz8k1imi0h9l2rbrk68dbr9zyydj5khvpdbl81c7mmfw8r";
-      name = "plasma-workspace-wallpapers-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/plasma-workspace-wallpapers-5.13.4.tar.xz";
+      sha256 = "11z8isy01vbgzb5jkbslin30himy5072wwrb010jw9ls9j5dz1cm";
+      name = "plasma-workspace-wallpapers-5.13.4.tar.xz";
     };
   };
   plymouth-kcm = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/plymouth-kcm-5.13.2.tar.xz";
-      sha256 = "14n8b1ajrw8sx6b1bmlc2krsf3f6f2hwmp6rxay1bn3m3z1blndy";
-      name = "plymouth-kcm-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/plymouth-kcm-5.13.4.tar.xz";
+      sha256 = "1f18ys2b80smd975a18qkhxb3ipr31wx8g0pmbfscqclc6kma506";
+      name = "plymouth-kcm-5.13.4.tar.xz";
     };
   };
   polkit-kde-agent = {
-    version = "1-5.13.2";
+    version = "1-5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/polkit-kde-agent-1-5.13.2.tar.xz";
-      sha256 = "1z455nh28hhh4f1wxwd6zrxcg4cfpiz02jrbbgqi7x3bflmswc2a";
-      name = "polkit-kde-agent-1-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/polkit-kde-agent-1-5.13.4.tar.xz";
+      sha256 = "0wgj9pawwcgznqg7shp3zh65ag9cscnmamgr29x2lq9wwxqw2836";
+      name = "polkit-kde-agent-1-5.13.4.tar.xz";
     };
   };
   powerdevil = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/powerdevil-5.13.2.tar.xz";
-      sha256 = "0g9ag9y9pip4q5agvbmp642vjcvj9355gc1j25wh3innml6z7jp0";
-      name = "powerdevil-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/powerdevil-5.13.4.tar.xz";
+      sha256 = "10zhm5z0hwh75fmcp7cz5c35zcywm7an73x2dh4fyl42cczfb0zl";
+      name = "powerdevil-5.13.4.tar.xz";
     };
   };
   sddm-kcm = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/sddm-kcm-5.13.2.tar.xz";
-      sha256 = "0ya9l65i3lhk9zcnscsy1ps334k2nk7j3ixrv1xbfgr2w1plhkqx";
-      name = "sddm-kcm-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/sddm-kcm-5.13.4.tar.xz";
+      sha256 = "0g6alnlg8waxgf3cbzx838062qsdcfisxsw67zxykyp77spq00f0";
+      name = "sddm-kcm-5.13.4.tar.xz";
     };
   };
   systemsettings = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/systemsettings-5.13.2.tar.xz";
-      sha256 = "0gzdh4cgvmbr99c96p6pw4a5l181rkpwpwfa79xm8pmr6lmcy254";
-      name = "systemsettings-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/systemsettings-5.13.4.tar.xz";
+      sha256 = "1z6c6kaz0ib76qsiq5cj6ya4mrdgmv3xa71hnwd2fbmv45agk8q4";
+      name = "systemsettings-5.13.4.tar.xz";
     };
   };
   user-manager = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/user-manager-5.13.2.tar.xz";
-      sha256 = "1k3xkyfxs9xbgggs4ymyx1cx7fphxcnh0cfmwqdjbsa6fqjbh7jh";
-      name = "user-manager-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/user-manager-5.13.4.tar.xz";
+      sha256 = "1s968hf7p9rrv3b0bq47s1387cbl6iq5313m34xfv5h7rqr2cw3m";
+      name = "user-manager-5.13.4.tar.xz";
     };
   };
   xdg-desktop-portal-kde = {
-    version = "5.13.2";
+    version = "5.13.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.13.2/xdg-desktop-portal-kde-5.13.2.tar.xz";
-      sha256 = "1vydh7vqycd9fgkiysnz3kf4xqqkvmzr2pmhbng4yz7vy4pci981";
-      name = "xdg-desktop-portal-kde-5.13.2.tar.xz";
+      url = "${mirror}/stable/plasma/5.13.4/xdg-desktop-portal-kde-5.13.4.tar.xz";
+      sha256 = "02fv1v778rh512wcm2zqgn6q61459bjbcjj2xz63lp3iycl7avqi";
+      name = "xdg-desktop-portal-kde-5.13.4.tar.xz";
     };
   };
 }
diff --git a/pkgs/development/compilers/mosml/default.nix b/pkgs/development/compilers/mosml/default.nix
new file mode 100644
index 00000000000..5ea3f63ccd1
--- /dev/null
+++ b/pkgs/development/compilers/mosml/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, gmp, perl }:
+
+stdenv.mkDerivation rec {
+  name = "mosml-${version}";
+  version = "2.10.1";
+
+  buildInputs = [ gmp perl ];
+
+  makeFlags = "PREFIX=$(out)";
+
+  src = fetchurl {
+    url = "https://github.com/kfl/mosml/archive/ver-${version}.tar.gz";
+    sha256 = "13x7wj94p0inn84pzpj52dch5s9lznqrj287bd3nk3dqd0v3kmgy";
+  };
+
+  setSourceRoot = ''export sourceRoot="$(echo */src)"'';
+
+  meta = with stdenv.lib; {
+    description = "A light-weight implementation of Standard ML";
+    longDescription = ''
+      Moscow ML is a light-weight implementation of Standard ML (SML), a strict
+      functional language used in teaching and research.
+    '';
+    homepage = http://mosml.org/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ vaibhavsagar ];
+  };
+}
diff --git a/pkgs/development/compilers/mruby/0001-Disables-IO-isatty-test-for-sandboxed-builds.patch b/pkgs/development/compilers/mruby/0001-Disables-IO-isatty-test-for-sandboxed-builds.patch
new file mode 100644
index 00000000000..779391fc62a
--- /dev/null
+++ b/pkgs/development/compilers/mruby/0001-Disables-IO-isatty-test-for-sandboxed-builds.patch
@@ -0,0 +1,36 @@
+From f3db284516105fd30b5513a5528104574a7b8545 Mon Sep 17 00:00:00 2001
+From: Samuel Dionne-Riel <samuel@dionne-riel.com>
+Date: Thu, 9 Aug 2018 19:07:45 -0400
+Subject: [PATCH] Disables `IO#isatty` test for sandboxed builds.
+
+---
+ mrbgems/mruby-io/test/io.rb | 13 -------------
+ 1 file changed, 13 deletions(-)
+
+diff --git a/mrbgems/mruby-io/test/io.rb b/mrbgems/mruby-io/test/io.rb
+index e06b1499..e8a54736 100644
+--- a/mrbgems/mruby-io/test/io.rb
++++ b/mrbgems/mruby-io/test/io.rb
+@@ -342,19 +342,6 @@ assert('IO#_read_buf') do
+   io.closed?
+ end
+ 
+-assert('IO#isatty') do
+-  skip "isatty is not supported on this platform" if MRubyIOTestUtil.win?
+-  f1 = File.open("/dev/tty")
+-  f2 = File.open($mrbtest_io_rfname)
+-
+-  assert_true  f1.isatty
+-  assert_false f2.isatty
+-
+-  f1.close
+-  f2.close
+-  true
+-end
+-
+ assert('IO#pos=, IO#seek') do
+   fd = IO.sysopen $mrbtest_io_rfname
+   io = IO.new fd
+-- 
+2.16.4
+
diff --git a/pkgs/development/compilers/mruby/default.nix b/pkgs/development/compilers/mruby/default.nix
new file mode 100644
index 00000000000..3ab553678b6
--- /dev/null
+++ b/pkgs/development/compilers/mruby/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, ruby, bison, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "mruby-${version}";
+  version = "1.4.1";
+
+  src = fetchFromGitHub {
+    owner   = "mruby";
+    repo    = "mruby";
+    rev     = version;
+    sha256  = "0pw72acbqgs4n1qa297nnja23v9hxz9g7190yfx9kwm7mgbllmww";
+  };
+
+  patches = [
+    ./0001-Disables-IO-isatty-test-for-sandboxed-builds.patch
+  ];
+
+  nativeBuildInputs = [ ruby bison ];
+
+  # Necessary so it uses `gcc` instead of `ld` for linking.
+  # https://github.com/mruby/mruby/blob/35be8b252495d92ca811d76996f03c470ee33380/tasks/toolchains/gcc.rake#L25
+  preBuild = if stdenv.isLinux then "unset LD" else null;
+
+  installPhase = ''
+    mkdir $out
+    cp -R build/host/{bin,lib} $out
+  '';
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    description = "An embeddable implementation of the Ruby language";
+    homepage = https://mruby.org;
+    maintainers = [ maintainers.nicknovitski ];
+    license = licenses.mit;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 5adef91f420..f29b83c8ff9 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -1114,10 +1114,13 @@ self: super: {
   # needed because of testing-feat >=0.4.0.2 && <1.1
   language-ecmascript = doJailbreak super.language-ecmascript;
 
-  # sexpr is old, broken and has no issue-tracker. Let's fix it the best we can. 
+  # sexpr is old, broken and has no issue-tracker. Let's fix it the best we can.
   sexpr =
     appendPatch (overrideCabal super.sexpr (drv: {
       isExecutable = false;
       libraryHaskellDepends = drv.libraryHaskellDepends ++ [self.QuickCheck];
     })) ./patches/sexpr-0.2.1.patch;
+
+  # Can be removed once yi-language >= 0.18 is in the LTS
+  yi-core = super.yi-core.override { yi-language = self.yi-language_0_18_0; };
 }
diff --git a/pkgs/development/libraries/c-ares/default.nix b/pkgs/development/libraries/c-ares/default.nix
index 6f9b94fc872..a22437d3993 100644
--- a/pkgs/development/libraries/c-ares/default.nix
+++ b/pkgs/development/libraries/c-ares/default.nix
@@ -9,6 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "0vnwmbvymw677k780kpb6sb8i3szdp89rzy8mz1fwg1657yw3ls5";
   };
 
+  # ares_android.h header is missing
+  # see issue https://github.com/c-ares/c-ares/issues/216
+  postPatch = if stdenv.hostPlatform.isAndroid then ''
+    cp ${fetchurl {
+      url = "https://raw.githubusercontent.com/c-ares/c-ares/cares-1_14_0/ares_android.h";
+      sha256 = "1aw8y6r5c8zq6grjwf4mcm2jj35r5kgdklrp296214s1f1827ps8";
+    }} ares_android.h
+  '' else null;
+
   meta = with stdenv.lib; {
     description = "A C library for asynchronous DNS requests";
     homepage = https://c-ares.haxx.se;
diff --git a/pkgs/development/libraries/c-blosc/default.nix b/pkgs/development/libraries/c-blosc/default.nix
index 3793b70de4b..c52d7c2756d 100644
--- a/pkgs/development/libraries/c-blosc/default.nix
+++ b/pkgs/development/libraries/c-blosc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "c-blosc-${version}";
-  version = "1.14.3";
+  version = "1.14.4";
 
   src = fetchFromGitHub {
     owner = "Blosc";
     repo = "c-blosc";
     rev = "v${version}";
-    sha256 = "051x2hh0yq1zhiyjmiarvc2radi59v03vzs2sa4hmgfhfaxcklld";
+    sha256 = "195w96gl75mkxxqq6qjsmb2s1lq8z95qlc71fr5a7sckslcwglh0";
   };
 
   buildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/gdal/default.nix b/pkgs/development/libraries/gdal/default.nix
index 434e13dda89..f6d8cd6fa4c 100644
--- a/pkgs/development/libraries/gdal/default.nix
+++ b/pkgs/development/libraries/gdal/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchurl, fetchpatch, unzip, libjpeg, libtiff, zlib
 , postgresql, mysql, libgeotiff, pythonPackages, proj, geos, openssl
-, libpng, sqlite, libspatialite, poppler, hdf4, qhull, giflib
+, libpng, sqlite, libspatialite, poppler, hdf4, qhull, giflib, expat
 , libiconv
-, netcdfSupport ? true, netcdf, hdf5 , curl
+, netcdfSupport ? true, netcdf, hdf5, curl
 }:
 
 with stdenv.lib;
@@ -17,12 +17,13 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ unzip libjpeg libtiff libpng proj openssl sqlite
-    libspatialite poppler hdf4 qhull giflib ]
+    libspatialite poppler hdf4 qhull giflib expat ]
   ++ (with pythonPackages; [ python numpy wrapPython ])
   ++ stdenv.lib.optional stdenv.isDarwin libiconv
   ++ stdenv.lib.optionals netcdfSupport [ netcdf hdf5 curl ];
 
   configureFlags = [
+    "--with-expat=${expat.dev}"
     "--with-jpeg=${libjpeg.dev}"
     "--with-libtiff=${libtiff.dev}" # optional (without largetiff support)
     "--with-png=${libpng.dev}"      # optional
diff --git a/pkgs/development/libraries/geos/default.nix b/pkgs/development/libraries/geos/default.nix
index 83030a7a014..c1b4c88aa47 100644
--- a/pkgs/development/libraries/geos/default.nix
+++ b/pkgs/development/libraries/geos/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, python }:
 
 stdenv.mkDerivation rec {
-  name = "geos-3.6.2";
+  name = "geos-3.6.3";
 
   src = fetchurl {
     url = "https://download.osgeo.org/geos/${name}.tar.bz2";
-    sha256 = "0ak5szby29l9l0vy43dm5z2g92xzdky20q1gc1kah1fnhkgi6nh4";
+    sha256 = "0jrypv61rbyp7vi9qpnnaiigjj8cgdqvyk8ymik8h1ppcw5am7mb";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/libinotify-kqueue/default.nix b/pkgs/development/libraries/libinotify-kqueue/default.nix
new file mode 100644
index 00000000000..6fc507daf64
--- /dev/null
+++ b/pkgs/development/libraries/libinotify-kqueue/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchzip, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  name = "libinotify-kqueue-${version}";
+  version = "20180201";
+
+  src = fetchzip {
+    url = "https://github.com/libinotify-kqueue/libinotify-kqueue/archive/${version}.tar.gz";
+    sha256 = "0dkh6n0ghhcl7cjkjmpin118h7al6i4vlkmw57vip5f6ngr6q3pl";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  doCheck = true;
+  checkFlags = [ "test" ];
+
+  meta = with stdenv.lib; {
+    description = "Inotify shim for macOS and BSD";
+    homepage = https://github.com/libinotify-kqueue/libinotify-kqueue;
+    license = licenses.mit;
+    maintainers = with maintainers; [ yegortimoshenko ];
+    platforms = with platforms; darwin ++ freebsd ++ netbsd ++ openbsd;
+  };
+}
diff --git a/pkgs/development/libraries/librealsense/default.nix b/pkgs/development/libraries/librealsense/default.nix
index 464e702acab..84fb600d88e 100644
--- a/pkgs/development/libraries/librealsense/default.nix
+++ b/pkgs/development/libraries/librealsense/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "librealsense-${version}";
-  version = "2.13.0";
+  version = "2.14.1";
 
   src = fetchFromGitHub {
     owner = "IntelRealSense";
     repo = "librealsense";
     rev = "v${version}";
-    sha256 = "0rs7ic95kix173kl1ijb1riigjxnp7yqvps35hfxbhjqbjc2wfgn";
+    sha256 = "1gxfnc1c87a3xfp0dpcp32jjjmxz7f9aw6jcda87lr2xvhpvq0n5";
   };
 
   buildInputs = [
@@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
     homepage = https://github.com/IntelRealSense/librealsense;
     license = licenses.asl20;
     maintainers = with maintainers; [ brian-dawn ];
-    platforms = platforms.unix;
+    platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
   };
 }
diff --git a/pkgs/development/libraries/libsixel/default.nix b/pkgs/development/libraries/libsixel/default.nix
index bad5e7c5962..34d959423a3 100644
--- a/pkgs/development/libraries/libsixel/default.nix
+++ b/pkgs/development/libraries/libsixel/default.nix
@@ -1,13 +1,13 @@
 {stdenv, fetchFromGitHub}:
 stdenv.mkDerivation rec {
-  version = "1.8.1";
+  version = "1.8.2";
   name = "libsixel-${version}";
 
   src = fetchFromGitHub {
     repo = "libsixel";
     rev = "v${version}";
     owner = "saitoha";
-    sha256 = "0cbhvd1yk0q08nxva5bga7bpp8yxjfdfnqicvip4l6k28mzz7pmf";
+    sha256 = "1jn5z2ylccjkp9i12n5x53x2zzhhsgmgs6xxi7aja6qimfw90h1n";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libssh/default.nix b/pkgs/development/libraries/libssh/default.nix
index 408436ca618..9b5c3d530eb 100644
--- a/pkgs/development/libraries/libssh/default.nix
+++ b/pkgs/development/libraries/libssh/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, cmake, zlib, openssl, libsodium }:
+{ stdenv, fetchurl, fetchpatch, pkgconfig, cmake, zlib, openssl, libsodium }:
 
 stdenv.mkDerivation rec {
   name = "libssh-0.7.5";
@@ -8,6 +8,16 @@ stdenv.mkDerivation rec {
     sha256 = "15bh6dm9c50ndddzh3gqcgw7axp3ghrspjpkb1z3dr90vkanvs2l";
   };
 
+  patches = [
+    # Fix mysql-workbench compilation
+    # https://bugs.mysql.com/bug.php?id=91923
+    (fetchpatch {
+      name = "include-fix-segfault-in-getissuebanner-add-missing-wrappers-in-libsshpp.patch";
+      url = https://git.libssh.org/projects/libssh.git/patch/?id=5ea81166bf885d0fd5d4bb232fc22633f5aaf3c4;
+      sha256 = "12q818l3nasqrfrsghxdvjcyya1bfcg0idvsf8xwm5zj7criln0a";
+    })
+  ];
+
   postPatch = ''
     # Fix headers to use libsodium instead of NaCl
     sed -i 's,nacl/,sodium/,g' ./include/libssh/curve25519.h src/curve25519.c
diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix
index e8bfb51cf9e..04104346748 100644
--- a/pkgs/development/libraries/pcre/default.nix
+++ b/pkgs/development/libraries/pcre/default.nix
@@ -18,7 +18,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${version}.tar.bz2";
+    url = "https://ftp.pcre.org/pub/pcre/pcre-${version}.tar.bz2";
     sha256 = "00ckpzlgyr16bnqx8fawa3afjgqxw5yxgs2l081vw23qi1y4pl1c";
   };
 
diff --git a/pkgs/development/libraries/science/math/lcalc/default.nix b/pkgs/development/libraries/science/math/lcalc/default.nix
index e55244b2a59..51fbd9f14cb 100644
--- a/pkgs/development/libraries/science/math/lcalc/default.nix
+++ b/pkgs/development/libraries/science/math/lcalc/default.nix
@@ -69,7 +69,15 @@ stdenv.mkDerivation rec {
       url = "https://git.archlinux.org/svntogit/community.git/plain/trunk/lcalc-c++11.patch?h=packages/lcalc&id=3607b97df5a8c231191115b0cb5c62426b339e71";
       sha256 = "1ccrl61lv2vvx8ggldq54m5d0n1iy6mym7qz0i8nj6yj0dshnpk3";
     })
-  ];
+  ] ++ stdenv.lib.optional stdenv.isDarwin
+  (fetchpatch {
+    url = "https://git.sagemath.org/sage.git/plain/build/pkgs/lcalc/patches/clang.patch";
+    sha256 = "0bb7656z6cp6i4p2qj745cmq0lhh52v2akl9whi760dynfdxbl18";
+  });
+
+  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace src/Makefile --replace g++ c++
+  '';
 
   installFlags = [
     "DESTDIR=$(out)"
diff --git a/pkgs/development/libraries/spice-gtk/default.nix b/pkgs/development/libraries/spice-gtk/default.nix
index aeab43c889d..f4f10978ec1 100644
--- a/pkgs/development/libraries/spice-gtk/default.nix
+++ b/pkgs/development/libraries/spice-gtk/default.nix
@@ -2,7 +2,7 @@
 , openssl, libpulseaudio, pixman, gobjectIntrospection, libjpeg_turbo, zlib
 , cyrus_sasl, python2Packages, autoreconfHook, usbredir, libsoup
 , withPolkit ? true, polkit, acl, usbutils
-, vala, gtk3, epoxy, libdrm, gst_all_1, phodav }:
+, vala, gtk3, epoxy, libdrm, gst_all_1, phodav, opusfile }:
 
 # If this package is built with polkit support (withPolkit=true),
 # usb redirection reqires spice-client-glib-usb-acl-helper to run setuid root.
@@ -30,13 +30,13 @@ with stdenv.lib;
 let
   inherit (python2Packages) python pygtk;
 in stdenv.mkDerivation rec {
-  name = "spice-gtk-0.34";
+  name = "spice-gtk-0.35";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://www.spice-space.org/download/gtk/${name}.tar.bz2";
-    sha256 = "1vknp72pl6v6nf3dphhwp29hk6gv787db2pmyg4m312z2q0hwwp9";
+    sha256 = "11lymg467gvj5ys8k22ihnfbxjn4x34ygyzirpg2nphjwlyhgrml";
   };
 
   postPatch = ''
@@ -47,7 +47,7 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [
     spice-protocol celt_0_5_1 openssl libpulseaudio gst_all_1.gst-plugins-base pixman
-    libjpeg_turbo zlib cyrus_sasl python pygtk usbredir gtk3 epoxy libdrm phodav
+    libjpeg_turbo zlib cyrus_sasl python pygtk usbredir gtk3 epoxy libdrm phodav opusfile
   ] ++ optionals withPolkit [ polkit acl usbutils ] ;
 
   nativeBuildInputs = [ pkgconfig gettext libsoup autoreconfHook vala gobjectIntrospection ];
@@ -58,6 +58,7 @@ in stdenv.mkDerivation rec {
     "--with-gtk3"
     "--enable-introspection"
     "--enable-vala"
+    "--enable-celt051"
   ];
 
   dontDisableStatic = true; # Needed by the coroutine test
diff --git a/pkgs/development/misc/stm32/betaflight/default.nix b/pkgs/development/misc/stm32/betaflight/default.nix
index 8d4d0d7f4a2..0c601c7773c 100644
--- a/pkgs/development/misc/stm32/betaflight/default.nix
+++ b/pkgs/development/misc/stm32/betaflight/default.nix
@@ -1,18 +1,17 @@
 { stdenv, fetchFromGitHub
 , gcc-arm-embedded, python2
 , skipTargets ? [
-  # These targets do not build for various unexplored reasons
-  # TODO ... fix them
-  "AFROMINI"
-  "ALIENWHOOP"
-  "BEEBRAIN"
-  "CJMCU"
-  "FRSKYF3"
+  # These targets do not build, for the reasons listed, along with the last version checked.
+  # Probably all of the issues with these targets need to be addressed upstream.
+  "AG3X"       # 3.4.0-rc4: has not specified a valid STM group, must be one of F1, F3, F405, F411 or F7x5. Have you prepared a valid target.mk?
+  "ALIENWHOOP" # 3.4.0-rc4: has not specified a valid STM group, must be one of F1, F3, F405, F411 or F7x5. Have you prepared a valid target.mk?
+  "FURYF3"     # 3.4.0-rc4: flash region overflow
+  "OMNINXT"    # 3.4.0-rc4: has not specified a valid STM group, must be one of F1, F3, F405, F411 or F7x5. Have you prepared a valid target.mk?
 ]}:
 
 let
 
-  version = "3.2.3";
+  version = "3.4.0-rc4";
 
 in stdenv.mkDerivation rec {
 
@@ -21,8 +20,8 @@ in stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "betaflight";
     repo = "betaflight";
-    rev = "v${version}";
-    sha256 = "0vbjyxfjxgpaiiwvj5bscrlfikzp3wnxpmc4sxcz5yw5mwb9g428";
+    rev = "8e9e7574481b1abba9354b24f41eb31054943785"; # Always use a commit id here!
+    sha256 = "1wyp23p876xbfi9z6gm4xn1nwss3myvrjjjq9pd3s0vf5gkclkg5";
   };
 
   buildInputs = [
@@ -31,7 +30,7 @@ in stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    sed -ri "s/REVISION.*=.*git log.*/REVISION = ${builtins.substring 0 9 src.rev}/" Makefile # Let's not require git in shell
+    sed -ri "s/REVISION.*=.*git log.*/REVISION = ${builtins.substring 0 10 src.rev}/" Makefile # Simulate abbrev'd rev.
     sed -ri "s/binary hex/hex/" Makefile # No need for anything besides .hex
   '';
 
@@ -39,7 +38,7 @@ in stdenv.mkDerivation rec {
 
   preBuild = ''
     buildFlagsArray=(
-      "SKIP_TARGETS=${toString skipTargets}"
+      "NOBUILD_TARGETS=${toString skipTargets}"
       "GCC_REQUIRED_VERSION=$(arm-none-eabi-gcc -dumpversion)"
       all
     )
@@ -59,7 +58,7 @@ in stdenv.mkDerivation rec {
     homepage = https://github.com/betaflight/betaflight;
     license = licenses.gpl3;
     maintainers = with maintainers; [ elitak ];
-    platforms = platforms.linux;
+    platforms = [ "i686-linux" "x86_64-linux" ];
   };
 
 }
diff --git a/pkgs/development/misc/stm32/inav/default.nix b/pkgs/development/misc/stm32/inav/default.nix
new file mode 100644
index 00000000000..cb9cc80d325
--- /dev/null
+++ b/pkgs/development/misc/stm32/inav/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchFromGitHub
+, gcc-arm-embedded, ruby
+}:
+
+let
+
+  version = "2.0.0-rc2";
+
+in stdenv.mkDerivation rec {
+
+  name = "inav-${version}";
+
+  src = fetchFromGitHub {
+    owner = "iNavFlight";
+    repo = "inav";
+    rev = "a8415e89c2956d133d8175827c079bcf3bc3766c"; # Always use a commit id here!
+    sha256 = "15zai8qf43b06fmws1sbkmdgip51zp7gkfj7pp9b6gi8giarzq3y";
+  };
+
+  buildInputs = [
+    gcc-arm-embedded
+    ruby
+  ];
+
+  postPatch = ''
+    sed -ri "s/REVISION.*=.*shell git.*/REVISION = ${builtins.substring 0 10 src.rev}/" Makefile # Simulate abbrev'd rev.
+    sed -ri "s/-j *[0-9]+//" Makefile # Eliminate parallel build args in submakes
+    sed -ri "s/binary hex/hex/" Makefile # No need for anything besides .hex
+  '';
+
+  enableParallelBuilding = true;
+
+  preBuild = ''
+    buildFlagsArray=(
+      all
+    )
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    cp obj/*.hex $out
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Navigation-enabled flight control software";
+    homepage = https://inavflight.github.io;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ elitak ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyls-black/default.nix b/pkgs/development/python-modules/pyls-black/default.nix
new file mode 100644
index 00000000000..b19fad1a1f1
--- /dev/null
+++ b/pkgs/development/python-modules/pyls-black/default.nix
@@ -0,0 +1,32 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, black, toml, pytest, python-language-server, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pyls-black";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "rupert";
+    repo = "pyls-black";
+    rev = "v${version}";
+    sha256 = "0xa3iv8nhnj0lw0dh41qb0dqp55sb6rdxalbk60v8jll6qyc0si8";
+  };
+
+  disabled = !isPy3k;
+
+  checkPhase = ''
+    pytest
+  '';
+
+  checkInputs = [ pytest ];
+
+  propagatedBuildInputs = [ black toml python-language-server ];
+
+  meta = with lib; {
+    homepage = https://github.com/rupert/pyls-black;
+    description = "Black plugin for the Python Language Server";
+    license = licenses.mit;
+    maintainers = [ maintainers.mic92 ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyls-isort/default.nix b/pkgs/development/python-modules/pyls-isort/default.nix
index fce7999a756..fa94441e200 100644
--- a/pkgs/development/python-modules/pyls-isort/default.nix
+++ b/pkgs/development/python-modules/pyls-isort/default.nix
@@ -21,8 +21,8 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    homepage = https://github.com/palantir/python-language-server;
-    description = "An implementation of the Language Server Protocol for Python";
+    homepage = https://github.com/paradoxxxzero/pyls-isort;
+    description = "Isort plugin for python-language-server";
     license = licenses.mit;
     maintainers = [ maintainers.mic92 ];
   };
diff --git a/pkgs/development/python-modules/pyls-mypy/default.nix b/pkgs/development/python-modules/pyls-mypy/default.nix
index 985d1937d3f..dfba421ae58 100644
--- a/pkgs/development/python-modules/pyls-mypy/default.nix
+++ b/pkgs/development/python-modules/pyls-mypy/default.nix
@@ -1,29 +1,21 @@
-{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch
+{ lib, buildPythonPackage, fetchFromGitHub
 , future, python-language-server, mypy, configparser
 , pytest, mock, isPy3k, pytestcov, coverage
 }:
 
 buildPythonPackage rec {
   pname = "pyls-mypy";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "tomv564";
     repo = "pyls-mypy";
     rev = version;
-    sha256 = "0wa038a8a8yj3wmrc7q909nj4b5d3lq70ysbw7rpsnyb0x06m826";
+    sha256 = "0v7ghcd1715lxlfq304b7xhchp31ahdd89lf6za4n0l59dz74swh";
   };
 
   disabled = !isPy3k;
 
-  patches = [
-    # also part of https://github.com/tomv564/pyls-mypy/pull/10
-    (fetchpatch {
-      url = "https://github.com/Mic92/pyls-mypy/commit/4c727120d2cbd8bf2825e1491cd55175f03266d2.patch";
-      sha256 = "1dgn5z742swpxwknmgvm65jpxq9zwzhggw4nl6ys7yw8r49kqgrl";
-    })
-  ];
-
   checkPhase = ''
     HOME=$TEMPDIR pytest
   '';
@@ -35,8 +27,8 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    homepage = https://github.com/palantir/python-language-server;
-    description = "An implementation of the Language Server Protocol for Python";
+    homepage = https://github.com/tomv564/pyls-mypy;
+    description = "Mypy plugin for the Python Language Server";
     license = licenses.mit;
     maintainers = [ maintainers.mic92 ];
   };
diff --git a/pkgs/development/python-modules/thespian/default.nix b/pkgs/development/python-modules/thespian/default.nix
index 0ced52c7ba1..c964a4ed2f1 100644
--- a/pkgs/development/python-modules/thespian/default.nix
+++ b/pkgs/development/python-modules/thespian/default.nix
@@ -1,13 +1,13 @@
 { fetchPypi, buildPythonPackage, lib }:
 
 buildPythonPackage rec {
-  version = "3.9.2";
+  version = "3.9.4";
   pname = "thespian";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "aec9793fecf45bb91fe919dc61b5c48a4aadfb9f94b06cd92883df7952eacf95";
+    sha256 = "98766eb304ef922133baca12a75eedd8d9b709c58bd9af50bfa5593dc3ffe0e1";
   };
 
   # Do not run the test suite: it takes a long time and uses
diff --git a/pkgs/development/python-modules/zeep/default.nix b/pkgs/development/python-modules/zeep/default.nix
index f283479c8de..b14e0226d73 100644
--- a/pkgs/development/python-modules/zeep/default.nix
+++ b/pkgs/development/python-modules/zeep/default.nix
@@ -20,6 +20,7 @@
 , pytestcov
 , requests-mock
 , tornado
+, attrs
 }:
 
 buildPythonPackage rec {
@@ -32,6 +33,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
+    attrs
     appdirs
     cached-property
     defusedxml
diff --git a/pkgs/development/tools/build-managers/remake/default.nix b/pkgs/development/tools/build-managers/remake/default.nix
index 926cc83cd97..3eca6f02e45 100644
--- a/pkgs/development/tools/build-managers/remake/default.nix
+++ b/pkgs/development/tools/build-managers/remake/default.nix
@@ -11,6 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "1zi16pl7sqn1aa8b7zqm9qnd9vjqyfywqm8s6iap4clf86l7kss2";
   };
 
+  patches = [
+    ./glibc-2.27-glob.patch
+  ];
+
   buildInputs = [ readline ];
 
   meta = {
diff --git a/pkgs/development/tools/build-managers/remake/glibc-2.27-glob.patch b/pkgs/development/tools/build-managers/remake/glibc-2.27-glob.patch
new file mode 100644
index 00000000000..ef876e2fb23
--- /dev/null
+++ b/pkgs/development/tools/build-managers/remake/glibc-2.27-glob.patch
@@ -0,0 +1,34 @@
+diff --git a/glob/glob.c b/glob/glob.c
+index f3911bcd861..6cb76e8e162 100644
+--- a/glob/glob.c
++++ b/glob/glob.c
+@@ -208,29 +208,8 @@ my_realloc (p, n)
+ #endif /* __GNU_LIBRARY__ || __DJGPP__ */
+ 
+ 
+-#if !defined __alloca && !defined __GNU_LIBRARY__
+-
+-# ifdef	__GNUC__
+-#  undef alloca
+-#  define alloca(n)	__builtin_alloca (n)
+-# else	/* Not GCC.  */
+-#  ifdef HAVE_ALLOCA_H
+-#   include <alloca.h>
+-#  else	/* Not HAVE_ALLOCA_H.  */
+-#   ifndef _AIX
+-#    ifdef WINDOWS32
+-#     include <malloc.h>
+-#    else
+-extern char *alloca ();
+-#    endif /* WINDOWS32 */
+-#   endif /* Not _AIX.  */
+-#  endif /* sparc or HAVE_ALLOCA_H.  */
+-# endif	/* GCC.  */
+-
+ # define __alloca	alloca
+ 
+-#endif
+-
+ #ifndef __GNU_LIBRARY__
+ # define __stat stat
+ # ifdef STAT_MACROS_BROKEN
diff --git a/pkgs/development/tools/build-managers/waf/default.nix b/pkgs/development/tools/build-managers/waf/default.nix
index e86d61cf6c9..5c6283b00a1 100644
--- a/pkgs/development/tools/build-managers/waf/default.nix
+++ b/pkgs/development/tools/build-managers/waf/default.nix
@@ -1,15 +1,17 @@
-{ stdenv, fetchurl, python2 }:
+{ stdenv, fetchFromGitLab, python, ensureNewerSourcesForZipFilesHook }:
 
 stdenv.mkDerivation rec {
   name = "waf-${version}";
-  version = "2.0.6";
+  version = "2.0.10";
 
-  src = fetchurl {
-    url = "https://waf.io/waf-${version}.tar.bz2";
-    sha256 = "1wyl0jl10i0p2rj49sig5riyppgkqlkqmbvv35d5bqxri3y4r38q";
+  src = fetchFromGitLab {
+    owner = "ita1024";
+    repo = "waf";
+    rev = name;
+    sha256 = "12p5myq72r5qg7wp2gwbnyvh6lzzcrwp9h3dw194x38g52m0prc7";
   };
 
-  buildInputs = [ python2 ];
+  buildInputs = [ python ensureNewerSourcesForZipFilesHook ];
 
   configurePhase = ''
     python waf-light configure
@@ -23,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Meta build system";
-    homepage    = "https://waf.io/";
+    homepage    = https://waf.io;
     license     = licenses.bsd3;
     platforms   = platforms.all;
     maintainers = with maintainers; [ vrthra ];
diff --git a/pkgs/development/tools/goa/default.nix b/pkgs/development/tools/goa/default.nix
index 04c35f7b8bb..dfb603d101f 100644
--- a/pkgs/development/tools/goa/default.nix
+++ b/pkgs/development/tools/goa/default.nix
@@ -8,32 +8,12 @@ buildGoPackage rec {
   subPackages = [ "goagen" ];
 
   src = fetchFromGitHub {
-    rev = "v${version}";
     owner = "goadesign";
     repo = "goa";
+    rev = "v${version}";
     sha256 = "13401jf907z3qh11h9clb3z0i0fshwkmhx11fq9z6vx01x8x2in1";
   };
 
-  buildInputs = [ makeWrapper ];
-
-  allowGoReference = true;
-
-  outputs = [ "out" ];
-
-  preInstall = ''
-    export bin=$out
-  '';
-
-  postInstall = ''
-    # goagen needs GOPATH to be set
-    wrapProgram $out/bin/goagen \
-      --prefix GOPATH ":" $out/share/go
-
-    # and it needs access to all its dependancies
-    mkdir -p $out/share/go
-    cp -Rv $NIX_BUILD_TOP/go/{pkg,src} $out/share/go/
-  '';
-
   goDeps = ./deps.nix;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/hcloud/default.nix b/pkgs/development/tools/hcloud/default.nix
index daa3713a8d1..2ef6b4a1d54 100644
--- a/pkgs/development/tools/hcloud/default.nix
+++ b/pkgs/development/tools/hcloud/default.nix
@@ -2,14 +2,14 @@
 
 buildGoPackage rec {
   name = "hcloud-${version}";
-  version = "1.5.0";
+  version = "1.6.0";
   goPackagePath = "github.com/hetznercloud/cli";
 
   src = fetchFromGitHub {
     owner = "hetznercloud";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "1pbfa977ihqn7j3ynyqghxjw0wmq0vgha4lsshdpf5xr2n3w0r8l";
+    sha256 = "0iswy8xjqvshwk9w2vz3miph953qdh21xga9hl6aili84x25xzbx";
   };
 
   buildFlagsArray = [ "-ldflags=" "-w -X github.com/hetznercloud/cli/cli.Version=${version}" ];
diff --git a/pkgs/development/tools/parsing/antlr/4.7.nix b/pkgs/development/tools/parsing/antlr/4.7.nix
index e097b5b3d5a..463ea3199b2 100644
--- a/pkgs/development/tools/parsing/antlr/4.7.nix
+++ b/pkgs/development/tools/parsing/antlr/4.7.nix
@@ -1,41 +1,79 @@
-{stdenv, fetchurl, jre}:
+{ stdenv, fetchurl, jre
+, fetchFromGitHub, cmake, ninja, pkgconfig, libuuid, darwin }:
 
-stdenv.mkDerivation rec {
-  name = "antlr-${version}";
+let
   version = "4.7.1";
-  src = fetchurl {
-    url ="https://www.antlr.org/download/antlr-${version}-complete.jar";
-    sha256 = "1236gwnzchama92apb2swmklnypj01m7bdwwfvwvl8ym85scw7gl";
+  source = fetchFromGitHub {
+    owner = "antlr";
+    repo = "antlr4";
+    rev = version;
+    sha256 = "1xb4d9bd4hw406v85s64gg8gwcrrsrw171vhga1gz4xj6pzfwxz7";
   };
 
-  unpackPhase = "true";
- 
-  installPhase = ''
-    mkdir -p "$out"/{share/java,bin}
-    cp "$src" "$out/share/java/antlr-${version}-complete.jar"
-
-    echo "#! ${stdenv.shell}" >> "$out/bin/antlr"
-    echo "'${jre}/bin/java' -cp '$out/share/java/antlr-${version}-complete.jar:$CLASSPATH' -Xmx500M org.antlr.v4.Tool \"\$@\"" >> "$out/bin/antlr"
-    
-    echo "#! ${stdenv.shell}" >> "$out/bin/grun"
-    echo "'${jre}/bin/java' -cp '$out/share/java/antlr-${version}-complete.jar:$CLASSPATH' org.antlr.v4.gui.TestRig \"\$@\"" >> "$out/bin/grun"
-
-    chmod a+x "$out/bin/antlr" "$out/bin/grun"
-    ln -s "$out/bin/antlr"{,4}
-  '';
-
-  inherit jre;
-
-  meta = with stdenv.lib; {
-    description = "Powerful parser generator";
-    longDescription = ''
-      ANTLR (ANother Tool for Language Recognition) is a powerful parser
-      generator for reading, processing, executing, or translating structured
-      text or binary files. It's widely used to build languages, tools, and
-      frameworks. From a grammar, ANTLR generates a parser that can build and
-      walk parse trees.
+  runtime = {
+    cpp = stdenv.mkDerivation {
+      name = "antlr-runtime-cpp-${version}";
+      src = source;
+
+      outputs = [ "out" "dev" "doc" ];
+
+      nativeBuildInputs = [ cmake ninja pkgconfig ];
+      buildInputs = stdenv.lib.optional stdenv.isLinux libuuid
+        ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.CoreFoundation;
+
+      postUnpack = ''
+        export sourceRoot=$sourceRoot/runtime/Cpp
+      '';
+
+      meta = with stdenv.lib; {
+        description = "C++ target for ANTLR 4";
+        homepage = http://www.antlr.org/;
+        platforms = platforms.unix;
+      };
+    };
+  };
+
+  antlr = stdenv.mkDerivation {
+    name = "antlr-${version}";
+    src = fetchurl {
+      url ="https://www.antlr.org/download/antlr-${version}-complete.jar";
+      sha256 = "1236gwnzchama92apb2swmklnypj01m7bdwwfvwvl8ym85scw7gl";
+    };
+
+    unpackPhase = "true";
+
+    installPhase = ''
+      mkdir -p "$out"/{share/java,bin}
+      cp "$src" "$out/share/java/antlr-${version}-complete.jar"
+
+      echo "#! ${stdenv.shell}" >> "$out/bin/antlr"
+      echo "'${jre}/bin/java' -cp '$out/share/java/antlr-${version}-complete.jar:$CLASSPATH' -Xmx500M org.antlr.v4.Tool \"\$@\"" >> "$out/bin/antlr"
+
+      echo "#! ${stdenv.shell}" >> "$out/bin/grun"
+      echo "'${jre}/bin/java' -cp '$out/share/java/antlr-${version}-complete.jar:$CLASSPATH' org.antlr.v4.gui.TestRig \"\$@\"" >> "$out/bin/grun"
+
+      chmod a+x "$out/bin/antlr" "$out/bin/grun"
+      ln -s "$out/bin/antlr"{,4}
     '';
-    homepage = http://www.antlr.org/;
-    platforms = platforms.unix;
+
+    inherit jre;
+
+    passthru = {
+      inherit runtime;
+      jarLocation = "${antlr}/share/java/antlr-${version}-complete.jar";
+    };
+
+    meta = with stdenv.lib; {
+      description = "Powerful parser generator";
+      longDescription = ''
+        ANTLR (ANother Tool for Language Recognition) is a powerful parser
+        generator for reading, processing, executing, or translating structured
+        text or binary files. It's widely used to build languages, tools, and
+        frameworks. From a grammar, ANTLR generates a parser that can build and
+        walk parse trees.
+      '';
+      homepage = http://www.antlr.org/;
+      platforms = platforms.unix;
+    };
   };
-}
+in antlr
diff --git a/pkgs/development/tools/wp-cli/default.nix b/pkgs/development/tools/wp-cli/default.nix
index 9dbdcfaa8aa..2f555294571 100644
--- a/pkgs/development/tools/wp-cli/default.nix
+++ b/pkgs/development/tools/wp-cli/default.nix
@@ -2,11 +2,11 @@
 
 let
   name = "wp-cli-${version}";
-  version = "1.5.1";
+  version = "2.0.0";
 
   src = fetchurl {
     url    = "https://github.com/wp-cli/wp-cli/releases/download/v${version}/${name}.phar";
-    sha256 = "1lnjbl6rcv32g6akj4552ncyqmbsawmx1dnbmxr0rjj7wr8484f1";
+    sha256 = "1s8pv8vdjwiwknpwsxc59l1zxc2np7nrp6bjd0s8jwsrv5fgjzsp";
   };
 
   completion = fetchurl {
@@ -36,9 +36,7 @@ in stdenv.mkDerivation rec {
   inherit name version;
 
   buildCommand = ''
-    mkdir -p $out/{bin,share/bash-completion/completions}
-
-    ln      -s     ${bin}        $out/bin/wp
+    install -Dm755 ${bin}        $out/bin/wp
     install -Dm644 ${completion} $out/share/bash-completion/completions/wp
 
     # this is a very basic run test
diff --git a/pkgs/development/web/insomnia/default.nix b/pkgs/development/web/insomnia/default.nix
index 1487ed4e1dd..4fcaac90fd6 100644
--- a/pkgs/development/web/insomnia/default.nix
+++ b/pkgs/development/web/insomnia/default.nix
@@ -15,11 +15,11 @@ let
   runtimeLibs = lib.makeLibraryPath [ libudev0-shim glibc curl openssl nghttp2 ];
 in stdenv.mkDerivation rec {
   name = "insomnia-${version}";
-  version = "5.16.6";
+  version = "6.0.2";
 
   src = fetchurl {
     url = "https://github.com/getinsomnia/insomnia/releases/download/v${version}/insomnia_${version}_amd64.deb";
-    sha256 = "1acad6gjrldd87nnv2hw558lzwy4c4ijh9jwjxnhz61jmdqvbmxw";
+    sha256 = "18xspbaal945bmrwjnsz1sjba53040wxrzvig40nnclwj8h671ms";
   };
 
   nativeBuildInputs = [ makeWrapper dpkg ];
diff --git a/pkgs/misc/brightnessctl/default.nix b/pkgs/misc/brightnessctl/default.nix
index 69fa10d74fe..b8821d335b2 100644
--- a/pkgs/misc/brightnessctl/default.nix
+++ b/pkgs/misc/brightnessctl/default.nix
@@ -11,9 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "0amxhcikcgj04z81272kz35m5h5q4jx9x7v71h8yl1rv4b2lzh7z";
   };
 
-  makeFlags = "MODE=0755 PREFIX=/ DESTDIR=$(out)";
+  makeFlags = [ "MODE=0755" "PREFIX=" "DESTDIR=$(out)" ];
+  installTargets = [ "install" "install_udev_rules" ];
 
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace 90-brightnessctl.rules --replace /bin/ ${coreutils}/bin/
     substituteInPlace 90-brightnessctl.rules --replace %k '*'
   '';
diff --git a/pkgs/os-specific/linux/hwdata/default.nix b/pkgs/os-specific/linux/hwdata/default.nix
index d249bc9b1c6..fae928dca4c 100644
--- a/pkgs/os-specific/linux/hwdata/default.nix
+++ b/pkgs/os-specific/linux/hwdata/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "hwdata-${version}";
-  version = "0.313";
+  version = "0.314";
 
   src = fetchFromGitHub {
     owner = "vcrhonek";
     repo = "hwdata";
     rev = "v${version}";
-    sha256 = "1mmqiy4ams14mdiakz60dm07wfan343hisiiz0dwvh685mjxap8h";
+    sha256 = "12k466ndg152fqld1w5v1zfdyv000yypazcwy75ywlxvlknv4y90";
   };
 
   preConfigure = "patchShebangs ./configure";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
-  outputHash = "0lz8pykpfw6aqkpdaqdc3jnny1iqgsqnc0wm61784xxml7zqfdvx";
+  outputHash = "1w00y5kj8rd8slzydw1gw8cablxlkham4vq786kdd8zga286zabb";
 
   meta = {
     homepage = https://github.com/vcrhonek/hwdata;
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 9c9957d2193..400574a3144 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.14.61";
+  version = "4.14.62";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1s3h3js073h4ww2dryip91d2lvmgv439ly2vya9x7rvilwhwa3hd";
+    sha256 = "1ar29ikway5im17iw9ag1fxivr7sbj8nhxxw347xqmp1irz4vjji";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.17.nix b/pkgs/os-specific/linux/kernel/linux-4.17.nix
index b98cf98904e..fda3b77c0a8 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.17.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.17.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.17.13";
+  version = "4.17.14";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0x1zas3jwvhjkifh20cwpd2g0glgr8m7h8lqng7awrd116xkw2w2";
+    sha256 = "1bxsiishhw6ichifqglkbcmgc0518ih396yi23clvrsfyj6h6in8";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix
index 60a4d5a76ed..60113959665 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, hostPlatform, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.4.146";
+  version = "4.4.147";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1xbxw6yvbjam0xj8j44h730dpf5v94pcf9j7iivcmasgjp61120z";
+    sha256 = "06mcilxd5qi8snycb5bhy52icbbwfl056xwmra66yknmpycyad67";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index 1863aadf8f1..d29855a093e 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, hostPlatform, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.118";
+  version = "4.9.119";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0myx79rmxgjbr87r815vybmbg6iqgd3nycildrpwsh301kj8kxvx";
+    sha256 = "0d8bwsma9j7dhgymcfbchr8k3503w5vp3p18mfqv81x6l40pzqa9";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/syscall_limiter/default.nix b/pkgs/os-specific/linux/syscall_limiter/default.nix
index a5c69e1d876..c7543aee933 100644
--- a/pkgs/os-specific/linux/syscall_limiter/default.nix
+++ b/pkgs/os-specific/linux/syscall_limiter/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   name    = "syscall_limiter-${version}";
-  version = "20170123";
+  version = "2017-01-23";
 
   src = fetchFromGitHub {
     owner  = "vi";
@@ -16,11 +16,7 @@ stdenv.mkDerivation rec {
     sha256 = "0z5arj1kq1xczgrbw1b8m9kicbv3vs9bd32wvgfr4r6ndingsp5m";
   };
 
-  configurePhase = "";
-
-  buildPhase = ''
-    make CC="gcc -I${libseccomp}/include -L${libseccomp}/lib"
-  '';
+  buildInputs = [ libseccomp ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix
index cdb1910d9c0..9b0f3ff767c 100644
--- a/pkgs/os-specific/linux/sysdig/default.nix
+++ b/pkgs/os-specific/linux/sysdig/default.nix
@@ -1,19 +1,19 @@
-{stdenv, fetchFromGitHub, cmake, luajit, kernel, zlib, ncurses, perl, jsoncpp, libb64, openssl, curl, jq, gcc}:
+{stdenv, fetchFromGitHub, cmake, luajit, kernel, zlib, ncurses, perl, jsoncpp, libb64, openssl, curl, jq, gcc, elfutils}:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "sysdig-${version}";
-  version = "0.21.0";
+  version = "0.22.1";
 
   src = fetchFromGitHub {
     owner = "draios";
     repo = "sysdig";
     rev = version;
-    sha256 = "0dakxv2pkbsivavz09fwvav4dla7qzklnv45zb7x306gankkjgi1";
+    sha256 = "1wbvpsalm2ccwh8xz6fa4gqviilvjd8lnwvdryixhsdsf7j8w0j0";
   };
 
   buildInputs = [
-    cmake zlib luajit ncurses perl jsoncpp libb64 openssl curl jq gcc
+    cmake zlib luajit ncurses perl jsoncpp libb64 openssl curl jq gcc elfutils
   ] ++ optional (kernel != null) kernel.moduleBuildDependencies;
 
   hardeningDisable = [ "pic" ];
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     description = "A tracepoint-based system tracing tool for Linux (with clients for other OSes)";
     license = licenses.gpl2;
     maintainers = [maintainers.raskin];
-    platforms = platforms.linux ++ platforms.darwin;
+    platforms = ["x86_64-linux"] ++ platforms.darwin;
     downloadPage = "https://github.com/draios/sysdig/releases";
   };
 }
diff --git a/pkgs/os-specific/linux/sysvinit/default.nix b/pkgs/os-specific/linux/sysvinit/default.nix
index 0ccf318dfb2..2e8cf0125e5 100644
--- a/pkgs/os-specific/linux/sysvinit/default.nix
+++ b/pkgs/os-specific/linux/sysvinit/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
       rm -rf $out/include
       rm -rf $out/share/man/man5
       rm $(for i in $out/share/man/man8/*; do echo $i; done | grep -v 'pidof\|killall5')
-      rm $out/bin/{mountpoint,wall} $out/share/man/man1/{mountpoint.1,wall.1}
+      rm $out/bin/wall $out/share/man/man1/wall.1
     '';
 
   meta = {
diff --git a/pkgs/os-specific/linux/trinity/default.nix b/pkgs/os-specific/linux/trinity/default.nix
index 46b09dce437..54d9a9bafe9 100644
--- a/pkgs/os-specific/linux/trinity/default.nix
+++ b/pkgs/os-specific/linux/trinity/default.nix
@@ -2,17 +2,21 @@
 
 stdenv.mkDerivation rec {
   name = "trinity-${version}";
-  version = "1.8-git-2017-02-13";
+  version = "1.8-git-2018-06-08";
 
   src = fetchFromGitHub {
     owner = "kernelslacker";
     repo = "trinity";
-    rev = "2989c11ce77bc7bec23da62987e2c3a0dd8a83c9";
-    sha256 = "19asyrypjhx2cgjdmwfvmgc0hk3xg00zvgkl89vwxngdb40bkwfq";
+    rev = "1b2d43cb383cef86a05acb2df046ce5e9b17a7fe";
+    sha256 = "0dsq10vmd6ii1dnpaqhizk9p8mbd6mwgpmi13b11dxwxpcvbhlar";
   };
 
   # Fails on 32-bit otherwise
-  NIX_CFLAGS_COMPILE = "-Wno-error";
+  NIX_CFLAGS_COMPILE = [
+    "-Wno-error=int-to-pointer-cast"
+    "-Wno-error=pointer-to-int-cast"
+    "-Wno-error=incompatible-pointer-types"
+  ];
 
   postPatch = ''
     patchShebangs ./configure
@@ -21,11 +25,11 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  installPhase = "make DESTDIR=$out install";
+  makeFlags = [ "DESTDIR=$(out)" ];
 
   meta = with stdenv.lib; {
     description = "A Linux System call fuzz tester";
-    homepage = http://codemonkey.org.uk/projects/trinity/;
+    homepage = https://codemonkey.org.uk/projects/trinity/;
     license = licenses.gpl2;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/windows/default.nix b/pkgs/os-specific/windows/default.nix
new file mode 100644
index 00000000000..4621c2da10f
--- /dev/null
+++ b/pkgs/os-specific/windows/default.nix
@@ -0,0 +1,29 @@
+{ newScope, crossLibcStdenv }: let
+
+  callPackage = newScope self;
+
+  self = {
+    cygwinSetup = callPackage ./cygwin-setup { };
+
+    jom = callPackage ./jom { };
+
+    w32api = callPackage ./w32api { };
+
+    mingwrt = callPackage ./mingwrt { };
+    mingw_runtime = self.mingwrt;
+
+    mingw_w64 = callPackage ./mingw-w64 {
+      stdenv = crossLibcStdenv;
+    };
+
+    mingw_w64_headers = callPackage ./mingw-w64/headers.nix { };
+
+    mingw_w64_pthreads = callPackage ./mingw-w64/pthreads.nix { };
+
+    pthreads = callPackage ./pthread-w32 { };
+
+    wxMSW = callPackage ./wxMSW-2.8 { };
+
+    libgnurx = callPackage ./libgnurx { };
+  };
+in self
diff --git a/pkgs/os-specific/windows/jom/default.nix b/pkgs/os-specific/windows/jom/default.nix
index 1b64ad74599..ee8f0079075 100644
--- a/pkgs/os-specific/windows/jom/default.nix
+++ b/pkgs/os-specific/windows/jom/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ flex qmake4Hook ];
 
   QTDIR = qt48;
-  
+
   # cmakeFlags = "-DWIN32=1 -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_RC_COMPILER=${stdenv.cc.targetPrefix}windres";
 
   preBuild = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
diff --git a/pkgs/os-specific/windows/libgnurx/default.nix b/pkgs/os-specific/windows/libgnurx/default.nix
index f50a0d9f503..88af53dd046 100644
--- a/pkgs/os-specific/windows/libgnurx/default.nix
+++ b/pkgs/os-specific/windows/libgnurx/default.nix
@@ -8,4 +8,8 @@ in stdenv.mkDerivation rec {
     url = "mirror://sourceforge/mingw/Other/UserContributed/regex/mingw-regex-${version}/mingw-${name}-src.tar.gz";
     sha256 = "0xjxcxgws3bblybw5zsp9a4naz2v5bs1k3mk8dw00ggc0vwbfivi";
   };
+
+  meta = {
+    platforms = stdenv.lib.platforms.windows;
+  };
 }
diff --git a/pkgs/os-specific/windows/mingw-headers/default.nix b/pkgs/os-specific/windows/mingw-headers/default.nix
deleted file mode 100644
index c6941ef01f0..00000000000
--- a/pkgs/os-specific/windows/mingw-headers/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{stdenv, mingw_runtime_headers, w32api_headers}:
-
-stdenv.mkDerivation {
-  name = "mingw-headers";
-
-  phases = [ "installPhase" ];
-
-  installPhase = ''
-    mkdir -p $out/include
-    cp -R ${mingw_runtime_headers}/include/* $out/include
-    cp -R ${w32api_headers}/include/* $out/include
-  '';
-}
diff --git a/pkgs/os-specific/windows/mingw-w64/common.nix b/pkgs/os-specific/windows/mingw-w64/common.nix
deleted file mode 100644
index 102d9489fe9..00000000000
--- a/pkgs/os-specific/windows/mingw-w64/common.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ fetchurl }:
-
-rec {
-  version = "5.0.3";
-  name = "mingw-w64-${version}";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/mingw-w64/mingw-w64-v${version}.tar.bz2";
-    sha256 = "1d4wrjfdlq5xqpv9zg6ssw4lm8jnv6522xf7d6zbjygmkswisq1a";
-  };
-
-  configureFlags = [
-    "--enable-idl"
-    "--enable-secure-api"
-  ];
-}
diff --git a/pkgs/os-specific/windows/mingw-w64/default.nix b/pkgs/os-specific/windows/mingw-w64/default.nix
index 53050435256..a7d4f09b90e 100644
--- a/pkgs/os-specific/windows/mingw-w64/default.nix
+++ b/pkgs/os-specific/windows/mingw-w64/default.nix
@@ -1,8 +1,26 @@
-{ stdenv, callPackage, windows }:
+{ stdenv, windows, fetchurl }:
+
+let
+  version = "5.0.4";
+in stdenv.mkDerivation {
+  name = "mingw-w64-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/mingw-w64/mingw-w64-v${version}.tar.bz2";
+    sha256 = "00zq3z1hbzd5yzmskskjg79xrzwsqx7ihyprfaxy4hb897vf29sm";
+  };
+
+  configureFlags = [
+    "--enable-idl"
+    "--enable-secure-api"
+  ];
 
-stdenv.mkDerivation {
-  inherit (callPackage ./common.nix {}) name src;
   buildInputs = [ windows.mingw_w64_headers ];
   dontStrip = true;
   hardeningDisable = [ "stackprotector" "fortify" ];
+  patches = [ ./osvi.patch ];
+
+  meta = {
+    platforms = stdenv.lib.platforms.windows;
+  };
 }
diff --git a/pkgs/os-specific/windows/mingw-w64/headers.nix b/pkgs/os-specific/windows/mingw-w64/headers.nix
index 03dbf712e2e..6a93cea6708 100644
--- a/pkgs/os-specific/windows/mingw-w64/headers.nix
+++ b/pkgs/os-specific/windows/mingw-w64/headers.nix
@@ -1,13 +1,13 @@
-{ stdenvNoCC, callPackage }:
+{ stdenvNoCC, mingw_w64 }:
 
-let
-  inherit (callPackage ./common.nix {}) name src;
+stdenvNoCC.mkDerivation {
+  name = "${mingw_w64.name}-headers";
+  inherit (mingw_w64) src meta;
 
-in stdenvNoCC.mkDerivation {
-  name = name + "-headers";
-  inherit src;
+  patches = [ ./osvi.patch ];
 
   preConfigure = ''
     cd mingw-w64-headers
   '';
+
 }
diff --git a/pkgs/os-specific/windows/mingw-w64/osvi.patch b/pkgs/os-specific/windows/mingw-w64/osvi.patch
new file mode 100644
index 00000000000..c51ff4bd5df
--- /dev/null
+++ b/pkgs/os-specific/windows/mingw-w64/osvi.patch
@@ -0,0 +1,14 @@
+Fix `error:  osvi  undeclared (first use in this function)' issue.
+
+See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863064
+--- a/mingw-w64-headers/include/multimon.h
++++ b/mingw-w64-headers/include/multimon.h
+@@ -127,7 +127,7 @@
+   WINBOOL IsPlatformNT() {
+     OSVERSIONINFOA oi = { 0 };
+ 
+-    oi.dwOSVersionInfoSize = sizeof (osvi);
++    oi.dwOSVersionInfoSize = sizeof (oi);
+     GetVersionExA ((OSVERSIONINFOA *) &oi);
+     return (oi.dwPlatformId == VER_PLATFORM_WIN32_NT);
+   }
\ No newline at end of file
diff --git a/pkgs/os-specific/windows/mingw-w64/pthreads.nix b/pkgs/os-specific/windows/mingw-w64/pthreads.nix
index 1a33e8db07e..bbcb028d3cb 100644
--- a/pkgs/os-specific/windows/mingw-w64/pthreads.nix
+++ b/pkgs/os-specific/windows/mingw-w64/pthreads.nix
@@ -1,11 +1,8 @@
-{ stdenv, callPackage }:
+{ stdenv, mingw_w64 }:
 
-let
-  inherit (callPackage ./common.nix {}) name src;
-
-in stdenv.mkDerivation {
-  name = name + "-pthreads";
-  inherit src;
+stdenv.mkDerivation {
+  name = "${mingw_w64.name}-pthreads";
+  inherit (mingw_w64) src meta;
 
   preConfigure = ''
     cd mingw-w64-libraries/winpthreads
diff --git a/pkgs/os-specific/windows/mingwrt/common.nix b/pkgs/os-specific/windows/mingwrt/common.nix
deleted file mode 100644
index 7dc2ae56aa8..00000000000
--- a/pkgs/os-specific/windows/mingwrt/common.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ lib, fetchurl }:
-
-rec {
-  name = "mingwrt-3.20";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/mingw/MinGW/Base/mingw-rt/${name}-mingw32-src.tar.gz";
-    sha256 = "02pydg1m8y35nxb4k34nlb5c341y2waq76z42mgdzlcf661r91pi";
-  };
-
-  meta.platforms = [ lib.systems.inspect.isMinGW ];
-}
diff --git a/pkgs/os-specific/windows/mingwrt/default.nix b/pkgs/os-specific/windows/mingwrt/default.nix
index 3429f7564ad..416ae7624c3 100644
--- a/pkgs/os-specific/windows/mingwrt/default.nix
+++ b/pkgs/os-specific/windows/mingwrt/default.nix
@@ -1,7 +1,17 @@
-{ stdenv, callPackage }:
+{ stdenv, lib, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "mingwrt-5.0.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/mingw/MinGW/Base/mingw-rt/${name}-mingw32-src.tar.gz";
+    sha256 = "02pydg1m8y35nxb4k34nlb5c341y2waq76z42mgdzlcf661r91p0";
+  };
+
+  meta = {
+    platforms = lib.platforms.windows;
+  };
 
-stdenv.mkDerivation {
-  inherit (callPackage ./common.nix {}) name src meta;
   dontStrip = true;
   hardeningDisable = [ "stackprotector" "fortify" ];
 }
diff --git a/pkgs/os-specific/windows/mingwrt/headers.nix b/pkgs/os-specific/windows/mingwrt/headers.nix
deleted file mode 100644
index 51180af0fc7..00000000000
--- a/pkgs/os-specific/windows/mingwrt/headers.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenvNoCC, callPackage }:
-
-let
-  inherit (callPackage ./common.nix {}) name src meta;
-
-in stdenvNoCC.mkDerivation {
-  name = name + "-headers";
-
-  inherit src meta;
-
-  phases = [ "unpackPhase" "installPhase" ];
-
-  installPhase = ''
-    mkdir -p $out
-    cp -R include $out
-  '';
-}
diff --git a/pkgs/os-specific/windows/pthread-w32/default.nix b/pkgs/os-specific/windows/pthread-w32/default.nix
index 7cd414a97b0..e84270270f8 100644
--- a/pkgs/os-specific/windows/pthread-w32/default.nix
+++ b/pkgs/os-specific/windows/pthread-w32/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, hostPlatform, buildPlatform }:
+{ fetchurl, stdenv, hostPlatform, buildPlatform, mingwrt }:
 
 # This file is tweaked for cross-compilation only.
 assert hostPlatform != buildPlatform;
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
                s/dlltool/i686-pc-mingw32-dlltool/g'
     '';
 
-  buildInputs = [ mingw_headers ];
+  buildInputs = [ mingwrt ];
 
   buildPhase = "make GC";        # to build the GNU C dll with C cleanup code
 
diff --git a/pkgs/os-specific/windows/w32api/common.nix b/pkgs/os-specific/windows/w32api/common.nix
deleted file mode 100644
index 273ae2c8df4..00000000000
--- a/pkgs/os-specific/windows/w32api/common.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ fetchurl, xz }:
-
-rec {
-  name = "w32api-3.17-2";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/mingw/MinGW/Base/w32api/w32api-3.17/${name}-mingw32-src.tar.lzma";
-    sha256 = "09rhnl6zikmdyb960im55jck0rdy5z9nlg3akx68ixn7khf3j8wb";
-  };
-
-  nativeBuildInputs = [ xz ];
-
-  meta.platforms = [ lib.systems.inspect.isMinGW ];
-}
diff --git a/pkgs/os-specific/windows/w32api/default.nix b/pkgs/os-specific/windows/w32api/default.nix
index 51b88201998..2fe989bb2f4 100644
--- a/pkgs/os-specific/windows/w32api/default.nix
+++ b/pkgs/os-specific/windows/w32api/default.nix
@@ -1,6 +1,16 @@
-{ stdenv, callPackage }:
+{ stdenv, fetchurl, xz, lib }:
+
+stdenv.mkDerivation rec {
+  name = "w32api-3.17-2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/mingw/MinGW/Base/w32api/w32api-3.17/${name}-mingw32-src.tar.lzma";
+    sha256 = "09rhnl6zikmdyb960im55jck0rdy5z9nlg3akx68ixn7khf3j8wb";
+  };
+
+  meta = {
+    platforms = lib.platforms.windows;
+  };
 
-stdenv.mkDerivation {
-  inherit (callPackage ./common.nix {}) name src nativeBuildInputs meta;
   dontStrip = true;
 }
diff --git a/pkgs/os-specific/windows/w32api/headers.nix b/pkgs/os-specific/windows/w32api/headers.nix
deleted file mode 100644
index 3083118bb36..00000000000
--- a/pkgs/os-specific/windows/w32api/headers.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenvNoCC, callPackage }:
-
-let
-  inherit (callPackage ./common.nix {}) name src meta;
-
-in stdenvNoCC.mkDerivation {
-  name = name + "-headers";
-
-  inherit src nativeBuildInputs meta;
-
-  phases = [ "unpackPhase" "installPhase" ];
-
-  installPhase = ''
-    mkdir -p $out
-    cp -R include $out
-  '';
-}
diff --git a/pkgs/os-specific/windows/wxMSW-2.8/default.nix b/pkgs/os-specific/windows/wxMSW-2.8/default.nix
index 8770140cc63..748bf39a1f2 100644
--- a/pkgs/os-specific/windows/wxMSW-2.8/default.nix
+++ b/pkgs/os-specific/windows/wxMSW-2.8/default.nix
@@ -2,8 +2,6 @@
 , hostPlatform
 }:
 
-assert hostPlatform.isWindows;
-
 stdenv.mkDerivation {
   name = "wxMSW-2.8.11";
 
@@ -32,4 +30,8 @@ stdenv.mkDerivation {
   ";
 
   passthru = {inherit compat24 compat26 unicode;};
+
+  meta = {
+    platforms = stdenv.lib.platforms.windows;
+  };
 }
diff --git a/pkgs/servers/jetbrains/youtrack.nix b/pkgs/servers/jetbrains/youtrack.nix
index 7e368bf295b..0518a78f9d6 100644
--- a/pkgs/servers/jetbrains/youtrack.nix
+++ b/pkgs/servers/jetbrains/youtrack.nix
@@ -1,28 +1,29 @@
-{ stdenv, fetchurl, makeWrapper, jre }:
+{ stdenv, fetchurl, makeWrapper, jre, gawk }:
 
 stdenv.mkDerivation rec {
   name = "youtrack-${version}";
-  version = "2018.1.41051";
+  version = "2018.2.44329";
 
   jar = fetchurl {
     url = "https://download.jetbrains.com/charisma/${name}.jar";
-    sha256 = "1sznay3lbyb2i977103hzh61rw1bpkdv0raffbir68apmvv1r0rb";
+    sha256 = "1fnnpyikr1x443vxy6f7vlv550sbahpps8awyn13jpg7kpgfm7lk";
   };
 
   buildInputs = [ makeWrapper ];
 
-  unpackPhase = "true";
+  unpackPhase = ":";
 
   installPhase = ''
     runHook preInstall
-    makeWrapper ${jre}/bin/java $out/bin/youtrack --add-flags "\$YOUTRACK_JVM_OPTS -jar $jar"
+    makeWrapper ${jre}/bin/java $out/bin/youtrack \
+      --add-flags "\$YOUTRACK_JVM_OPTS -jar $jar" \
+      --prefix PATH : "${stdenv.lib.makeBinPath [ gawk ]}" \
+      --set JRE_HOME ${jre}
     runHook postInstall
   '';
 
   meta = with stdenv.lib; {
-    description = ''
-      Issue Tracking and Project Management Tool for Developers
-    '';
+    description = "Issue tracking and project management tool for developers";
     maintainers = with maintainers; [ yorickvp ];
     # https://www.jetbrains.com/youtrack/buy/license.html
     license = licenses.unfree;
diff --git a/pkgs/servers/monitoring/prometheus/node-exporter.nix b/pkgs/servers/monitoring/prometheus/node-exporter.nix
index 02a6197d384..bb86e59e4c3 100644
--- a/pkgs/servers/monitoring/prometheus/node-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/node-exporter.nix
@@ -1,6 +1,8 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGo19Package, fetchFromGitHub }:
 
-buildGoPackage rec {
+# Go 1.10 causes segfaults:
+# https://github.com/prometheus/node_exporter/issues/870
+buildGo19Package rec {
   name = "node_exporter-${version}";
   version = "0.16.0";
   rev = "v${version}";
diff --git a/pkgs/servers/monitoring/uchiwa/default.nix b/pkgs/servers/monitoring/uchiwa/default.nix
index e7cf3e8f70e..1de1edfa8e1 100644
--- a/pkgs/servers/monitoring/uchiwa/default.nix
+++ b/pkgs/servers/monitoring/uchiwa/default.nix
@@ -15,6 +15,7 @@ let
     goPackagePath = "github.com/${owner}/${repo}";
     inherit src;
     postInstall = ''
+      mkdir $out
       cp go/src/github.com/sensu/uchiwa/public/index.html $out/
     '';
   };
diff --git a/pkgs/servers/sql/mysql/5.7.x.nix b/pkgs/servers/sql/mysql/5.7.x.nix
index 146d9d23198..723b4e4d8d3 100644
--- a/pkgs/servers/sql/mysql/5.7.x.nix
+++ b/pkgs/servers/sql/mysql/5.7.x.nix
@@ -7,11 +7,11 @@
 let
 self = stdenv.mkDerivation rec {
   name = "mysql-${version}";
-  version = "5.7.22";
+  version = "5.7.23";
 
   src = fetchurl {
     url = "mirror://mysql/MySQL-5.7/${name}.tar.gz";
-    sha256 = "1wng15j5caz6fsv28avlcxjgq3c5n90ifk79xa0h7jws19dl1f2f";
+    sha256 = "0rbc3xsc11lq2dm0ip6gxa16c06hi74scb97x5cw7yhbabaz4c07";
   };
 
   preConfigure = stdenv.lib.optional stdenv.isDarwin ''
diff --git a/pkgs/tools/misc/alarm-clock-applet/default.nix b/pkgs/tools/misc/alarm-clock-applet/default.nix
index b089240bcc6..8ee363ed91d 100644
--- a/pkgs/tools/misc/alarm-clock-applet/default.nix
+++ b/pkgs/tools/misc/alarm-clock-applet/default.nix
@@ -1,4 +1,9 @@
-{ stdenv, fetchurl, makeWrapper, pkgconfig
+{ stdenv, fetchFromGitHub
+, pkgconfig
+, autoconf
+, automake111x
+, libtool
+
 , glib
 , gtk2
 , gst_all_1
@@ -15,16 +20,27 @@ stdenv.mkDerivation rec {
   version = "0.3.4";
   name = "alarm-clock-applet-${version}";
 
-  src = fetchurl {
-    url = "http://launchpad.net/alarm-clock/trunk/${version}/+download/${name}.tar.gz";
-    sha256 = "1mrrw5cgv0izdmhdg83vprvbj6062yzk77b2nr1nx6hhmk00946r";
+  src = fetchFromGitHub {
+    owner = "joh";
+    repo = "alarm-clock";
+    rev = version;
+    sha256 = "18blvgy8hmw3jidz7xrv9yiiilnzcj65m6wxhw58nrnbcqbpydwn";
   };
 
   nativeBuildInputs = [
-    makeWrapper
     pkgconfig
+    intltool
+    automake111x
+    autoconf
+    libtool
+
+    gnome2.gnome-common
+
+    wrapGAppsHook
   ];
 
+  preConfigure = "./autogen.sh";
+
   buildInputs = [
     glib
     gtk2
@@ -34,8 +50,6 @@ stdenv.mkDerivation rec {
     libnotify
     libxml2
     libunique
-    intltool
-    wrapGAppsHook
   ] ++ gst_plugins;
 
   propagatedUserEnvPkgs = [ gnome2.GConf.out ];
diff --git a/pkgs/tools/misc/appdata-tools/default.nix b/pkgs/tools/misc/appdata-tools/default.nix
deleted file mode 100644
index 7ceafe12793..00000000000
--- a/pkgs/tools/misc/appdata-tools/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, autoconf, automake, m4
-, intltool, glib, libsoup, gdk_pixbuf }:
-
-stdenv.mkDerivation rec {
-  version = "0_1_7";
-  name = "appdata_tools-${version}";
-
-  src = fetchurl {
-    url = "https://github.com/hughsie/appdata-tools/archive/appdata_tools_${version}.tar.gz";
-    sha256 = "1bzqg4gy8gqhbk2qjizsm0b78li9mv84fb3d8qwfpxh7c7p360x8";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ autoconf automake m4 intltool glib
-                  libsoup gdk_pixbuf ];
-
-  configureScript = "./autogen.sh";
-
-  meta = with stdenv.lib; {
-    homepage = https://people.freedesktop.org/~hughsient/appdata;
-    description = "CLI designed to validate AppData descriptions for standards compliance and to the style guide";
-    platforms = platforms.linux;
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ lethalman ];
-  };
-}
diff --git a/pkgs/tools/misc/opentimestamps-client/default.nix b/pkgs/tools/misc/opentimestamps-client/default.nix
index 3fbd874503d..94984c57e49 100644
--- a/pkgs/tools/misc/opentimestamps-client/default.nix
+++ b/pkgs/tools/misc/opentimestamps-client/default.nix
@@ -1,5 +1,6 @@
 { lib, buildPythonApplication, fetchFromGitHub, isPy3k
-, opentimestamps, appdirs, GitPython, pysocks }:
+, opentimestamps, appdirs, GitPython, pysocks, fetchpatch, git
+}:
 
 buildPythonApplication rec {
   pname = "opentimestamps-client";
@@ -15,6 +16,15 @@ buildPythonApplication rec {
     sha256 = "05m8nllqad3k69mvby5q08y22i0wrj84gqifdgcldimrrn1i00xp";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/opentimestamps/opentimestamps-client/commit/1b328269ceee66916e9a639e8d5d7d13cd70d5d8.patch";
+      sha256 = "0bd3yalyvk5n4sflw9zilpay5k653ybdgkkfppyrk7c8z3i81hbl";
+    })
+  ];
+
+  checkInputs = [ git ];
+
   propagatedBuildInputs = [ opentimestamps appdirs GitPython pysocks ];
 
   meta = {
diff --git a/pkgs/tools/misc/uudeview/default.nix b/pkgs/tools/misc/uudeview/default.nix
index e66580f25ff..3e8b7d494de 100644
--- a/pkgs/tools/misc/uudeview/default.nix
+++ b/pkgs/tools/misc/uudeview/default.nix
@@ -10,6 +10,9 @@ stdenv.mkDerivation rec {
   buildInputs = [ tcl tk ];
   hardeningDisable = [ "format" ];
   configureFlags = [ "--enable-tk=${tk.dev}" "--enable-tcl=${tcl}" ];
+
+  # https://wiki.tcl.tk/3577
+  patches = [ ./matherr.patch ];
   postPatch = ''
     substituteInPlace tcl/xdeview --replace "exec uuwish" "exec $out/bin/uuwish"
   '';
diff --git a/pkgs/tools/misc/uudeview/matherr.patch b/pkgs/tools/misc/uudeview/matherr.patch
new file mode 100644
index 00000000000..a93db7d7858
--- /dev/null
+++ b/pkgs/tools/misc/uudeview/matherr.patch
@@ -0,0 +1,19 @@
+diff --git a/tcl/uutcl.c b/tcl/uutcl.c
+index f101f2ce52b..71c24688dc4 100644
+--- a/tcl/uutcl.c
++++ b/tcl/uutcl.c
+@@ -48,14 +48,6 @@
+ #include <tcl.h>
+ #endif
+
+-/*
+- * The following variable is a special hack that is needed in order for
+- * Sun shared libraries to be used for Tcl.
+- */
+-
+-extern int matherr();
+-int *tclDummyMathPtr = (int *) matherr;
+-
+ #include <uudeview.h>
+ #include <uuint.h>
+ #include <fptools.h>
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index be6bacd3b21..ebdd08b23a8 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -15,11 +15,11 @@
 buildPythonPackage rec {
 
   pname = "youtube-dl";
-  version = "2018.07.10";
+  version = "2018.08.04";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1rigah941k2drzx5qz937lk68gw9jrizj5lgd9f9znp0bgi2d0xd";
+    sha256 = "1hcx99qbbyigc8k98c8bcc6a2wnhq6493fmrkl7rysc8krlxr0pm";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/networking/network-manager/applet.nix b/pkgs/tools/networking/network-manager/applet.nix
index 52e350c6319..0b6a7e622a8 100644
--- a/pkgs/tools/networking/network-manager/applet.nix
+++ b/pkgs/tools/networking/network-manager/applet.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, meson, ninja, intltool, gtk-doc, pkgconfig, networkmanager, gnome3
 , libnotify, libsecret, polkit, isocodes, modemmanager, libxml2, docbook_xsl
 , mobile-broadband-provider-info, glib-networking, gsettings-desktop-schemas
-, libgudev, hicolor-icon-theme, jansson, wrapGAppsHook, webkitgtk, gobjectIntrospection
+, libgudev, jansson, wrapGAppsHook, gobjectIntrospection
 , libappindicator-gtk3, withGnome ? false }:
 
 let
@@ -15,27 +15,28 @@ in stdenv.mkDerivation rec {
     sha256 = "0lmlkh4yyl9smvkgrzshn127zqfbp9f41f448ks8dlhhm38s38v2";
   };
 
+  patches = [
+    # https://gitlab.gnome.org/GNOME/network-manager-applet/merge_requests/19
+    ./libnm-gtk-mbpi.patch
+  ];
+
   mesonFlags = [
     "-Dselinux=false"
     "-Dappindicator=yes"
     "-Dgcr=${if withGnome then "true" else "false"}"
   ];
 
-  outputs = [ "out" "dev" "devdoc" ];
+  outputs = [ "out" "lib" "dev" "devdoc" "man" ];
 
   buildInputs = [
     gnome3.gtk networkmanager libnotify libsecret gsettings-desktop-schemas
     polkit isocodes mobile-broadband-provider-info libgudev
     modemmanager jansson glib-networking
     libappindicator-gtk3
-  ] ++ stdenv.lib.optionals withGnome [ gnome3.gcr webkitgtk ];
+  ] ++ stdenv.lib.optionals withGnome [ gnome3.gcr ]; # advanced certificate chooser
 
   nativeBuildInputs = [ meson ninja intltool pkgconfig wrapGAppsHook gobjectIntrospection gtk-doc docbook_xsl libxml2 ];
 
-  propagatedUserEnvPkgs = [
-    hicolor-icon-theme
-  ];
-
   postPatch = ''
     chmod +x meson_post_install.py # patchShebangs requires executable file
     patchShebangs meson_post_install.py
diff --git a/pkgs/tools/networking/network-manager/fortisslvpn.nix b/pkgs/tools/networking/network-manager/fortisslvpn.nix
deleted file mode 100644
index efdd6120005..00000000000
--- a/pkgs/tools/networking/network-manager/fortisslvpn.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv, fetchurl, openfortivpn, automake, autoconf, libtool, intltool, pkgconfig,
-networkmanager, ppp, libsecret, withGnome ? true, gnome3 }:
-
-let
-  pname   = "NetworkManager-fortisslvpn";
-  version = "1.2.8";
-in stdenv.mkDerivation rec {
-  name    = "${pname}${if withGnome then "-gnome" else ""}-${version}";
-
-  src = fetchurl {
-    url    = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "01gvdv9dknvzx05plq863jh1xz1v8vgj5w7v9fmw5v601ggybf4w";
-  };
-
-  buildInputs = [ openfortivpn networkmanager ppp libtool libsecret ]
-    ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome-keyring gnome3.networkmanagerapplet ];
-
-  nativeBuildInputs = [ automake autoconf intltool pkgconfig ];
-
-  configureFlags = [
-    "${if withGnome then "--with-gnome" else "--without-gnome"}"
-    "--disable-static"
-    "--localstatedir=/tmp"
-  ];
-
-  preConfigure = ''
-     substituteInPlace "src/nm-fortisslvpn-service.c" \
-       --replace "/bin/openfortivpn" "${openfortivpn}/bin/openfortivpn"
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "networkmanager-fortisslvpn";
-    };
-  };
-
-  meta = {
-    description = "NetworkManager's FortiSSL plugin";
-    inherit (networkmanager.meta) maintainers platforms;
-    license = stdenv.lib.licenses.gpl2Plus;
-  };
-}
-
diff --git a/pkgs/tools/networking/network-manager/fortisslvpn/default.nix b/pkgs/tools/networking/network-manager/fortisslvpn/default.nix
new file mode 100644
index 00000000000..11b29081f9b
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/fortisslvpn/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, substituteAll, openfortivpn, intltool, pkgconfig,
+networkmanager, ppp, libsecret, withGnome ? true, gnome3 }:
+
+let
+  pname = "NetworkManager-fortisslvpn";
+  version = "1.2.8";
+in stdenv.mkDerivation rec {
+  name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "01gvdv9dknvzx05plq863jh1xz1v8vgj5w7v9fmw5v601ggybf4w";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit openfortivpn;
+    })
+  ];
+
+  buildInputs = [ openfortivpn networkmanager ppp ]
+    ++ stdenv.lib.optionals withGnome [ gnome3.gtk libsecret gnome3.networkmanagerapplet ];
+
+  nativeBuildInputs = [ intltool pkgconfig ];
+
+  configureFlags = [
+    "--with-gnome=${if withGnome then "yes" else "no"}"
+    "--localstatedir=/tmp"
+  ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "networkmanager-fortisslvpn";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "NetworkManager's FortiSSL plugin";
+    inherit (networkmanager.meta) maintainers platforms;
+    license = licenses.gpl2;
+  };
+}
+
diff --git a/pkgs/tools/networking/network-manager/fortisslvpn/fix-paths.patch b/pkgs/tools/networking/network-manager/fortisslvpn/fix-paths.patch
new file mode 100644
index 00000000000..a1241b6738c
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/fortisslvpn/fix-paths.patch
@@ -0,0 +1,11 @@
+--- a/src/nm-fortisslvpn-service.c
++++ b/src/nm-fortisslvpn-service.c
+@@ -387,7 +387,7 @@
+ {
+ 	static const char *openfortivpn_binary_paths[] =
+ 		{
+-			"/bin/openfortivpn",
++			"@openfortivpn@/bin/openfortivpn",
+ 			"/usr/bin/openfortivpn",
+ 			"/usr/local/bin/openfortivpn",
+ 			NULL
diff --git a/pkgs/tools/networking/network-manager/iodine.nix b/pkgs/tools/networking/network-manager/iodine.nix
deleted file mode 100644
index cbc0e6e6d2d..00000000000
--- a/pkgs/tools/networking/network-manager/iodine.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ stdenv, fetchurl, iodine, intltool, pkgconfig, networkmanager, libsecret
-, withGnome ? true, gnome3 }:
-
-let
-  pname   = "NetworkManager-iodine";
-  version = "1.2.0";
-in stdenv.mkDerivation rec {
-  name    = "${pname}${if withGnome then "-gnome" else ""}-${version}";
-
-  src = fetchurl {
-    url    = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0njdigakidji6mfmbsp8lfi8wl88z1dk8cljbva2w0xazyddbwyh";
-  };
-
-  buildInputs = [ iodine networkmanager libsecret ]
-    ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome-keyring
-                                        gnome3.networkmanagerapplet ];
-
-  nativeBuildInputs = [ intltool pkgconfig ];
-
-  # Fixes deprecation errors with networkmanager 1.10.2
-  NIX_CFLAGS_COMPILE = "-Wno-deprecated-declarations";
-
-  configureFlags = [
-    "${if withGnome then "--with-gnome" else "--without-gnome"}"
-    "--disable-static"
-    "--localstatedir=/" # needed for the management socket under /run/NetworkManager
-  ];
-
-  preConfigure = ''
-     substituteInPlace "src/nm-iodine-service.c" \
-       --replace "/usr/bin/iodine" "${iodine}/bin/iodine"
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "networkmanager-iodine";
-    };
-  };
-
-  meta = {
-    description = "NetworkManager's iodine plugin";
-    inherit (networkmanager.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/tools/networking/network-manager/iodine/default.nix b/pkgs/tools/networking/network-manager/iodine/default.nix
new file mode 100644
index 00000000000..a3dbeaf8265
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/iodine/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, substituteAll, iodine, intltool, pkgconfig, networkmanager, libsecret
+, withGnome ? true, gnome3 }:
+
+let
+  pname = "NetworkManager-iodine";
+  version = "1.2.0";
+in stdenv.mkDerivation rec {
+  name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0njdigakidji6mfmbsp8lfi8wl88z1dk8cljbva2w0xazyddbwyh";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit iodine;
+    })
+  ];
+
+  buildInputs = [ iodine networkmanager ]
+    ++ stdenv.lib.optionals withGnome [ gnome3.gtk libsecret gnome3.networkmanagerapplet ];
+
+  nativeBuildInputs = [ intltool pkgconfig ];
+
+  # Fixes deprecation errors with networkmanager 1.10.2
+  NIX_CFLAGS_COMPILE = "-Wno-deprecated-declarations";
+
+  configureFlags = [
+    "--with-gnome=${if withGnome then "yes" else "no"}"
+    "--localstatedir=/" # needed for the management socket under /run/NetworkManager
+  ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "networkmanager-iodine";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "NetworkManager's iodine plugin";
+    inherit (networkmanager.meta) maintainers platforms;
+    license = licenses.gpl2Plus;
+  };
+}
diff --git a/pkgs/tools/networking/network-manager/iodine/fix-paths.patch b/pkgs/tools/networking/network-manager/iodine/fix-paths.patch
new file mode 100644
index 00000000000..d32dbfadbaf
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/iodine/fix-paths.patch
@@ -0,0 +1,11 @@
+--- a/src/nm-iodine-service.c
++++ b/src/nm-iodine-service.c
+@@ -62,7 +62,7 @@
+ 
+ static const char *iodine_binary_paths[] =
+ {
+-	"/usr/bin/iodine",
++	"@iodine@/bin/iodine",
+ 	"/usr/sbin/iodine",
+ 	"/usr/local/bin/iodine",
+ 	"/usr/local/sbin/iodine",
diff --git a/pkgs/tools/networking/network-manager/l2tp.nix b/pkgs/tools/networking/network-manager/l2tp.nix
deleted file mode 100644
index 54670ff1bce..00000000000
--- a/pkgs/tools/networking/network-manager/l2tp.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, libtool, intltool, pkgconfig
-, networkmanager, ppp, xl2tpd, strongswan, libsecret
-, withGnome ? true, gnome3, networkmanagerapplet }:
-
-stdenv.mkDerivation rec {
-  name    = "${pname}${if withGnome then "-gnome" else ""}-${version}";
-  pname   = "NetworkManager-l2tp";
-  version = "1.2.8";
-
-  src = fetchFromGitHub {
-    owner  = "nm-l2tp";
-    repo   = "network-manager-l2tp";
-    rev    = "${version}";
-    sha256 = "110157dpamgr7r5kb8aidi0a2ap9z2m52bff94fb4nhxacz69yv8";
-  };
-
-  buildInputs = [ networkmanager ppp libsecret ]
-    ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome-keyring networkmanagerapplet ];
-
-  nativeBuildInputs = [ autoreconfHook libtool intltool pkgconfig ];
-
-  postPatch = ''
-    sed -i -e 's%"\(/usr/sbin\|/usr/pkg/sbin\|/usr/local/sbin\)/[^"]*",%%g' ./src/nm-l2tp-service.c
-
-    substituteInPlace ./Makefile.am \
-      --replace '$(sysconfdir)/dbus-1/system.d' "$out/etc/dbus-1/system.d"
-
-    substituteInPlace ./src/nm-l2tp-service.c \
-      --replace /sbin/ipsec  ${strongswan}/bin/ipsec \
-      --replace /sbin/xl2tpd ${xl2tpd}/bin/xl2tpd
-  '';
-
-  preConfigure = ''
-    intltoolize -f
-  '';
-
-  configureFlags = [
-    "--with-gnome=${if withGnome then "yes" else "no"}"
-    "--localstatedir=/var"
-    "--sysconfdir=$(out)/etc"
-  ];
-
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
-    description = "L2TP plugin for NetworkManager";
-    inherit (networkmanager.meta) platforms;
-    homepage = https://github.com/nm-l2tp/network-manager-l2tp;
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ abbradar obadz ];
-  };
-}
diff --git a/pkgs/tools/networking/network-manager/l2tp/default.nix b/pkgs/tools/networking/network-manager/l2tp/default.nix
new file mode 100644
index 00000000000..d48d2e910f5
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/l2tp/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, substituteAll, fetchFromGitHub, autoreconfHook, libtool, intltool, pkgconfig
+, networkmanager, ppp, xl2tpd, strongswan, libsecret
+, withGnome ? true, gnome3, networkmanagerapplet }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
+  pname = "NetworkManager-l2tp";
+  version = "1.2.10";
+
+  src = fetchFromGitHub {
+    owner = "nm-l2tp";
+    repo = "network-manager-l2tp";
+    rev = "${version}";
+    sha256 = "1vm004nj2n5abpywr7ji6r28scf7xs45zw4rqrm8jn7mysf96h0x";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit strongswan xl2tpd;
+    })
+  ];
+
+  buildInputs = [ networkmanager ppp ]
+    ++ stdenv.lib.optionals withGnome [ gnome3.gtk libsecret networkmanagerapplet ];
+
+  nativeBuildInputs = [ autoreconfHook libtool intltool pkgconfig ];
+
+  preConfigure = ''
+    intltoolize -f
+  '';
+
+  configureFlags = [
+    "--with-gnome=${if withGnome then "yes" else "no"}"
+    "--localstatedir=/var"
+    "--sysconfdir=$(out)/etc"
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "L2TP plugin for NetworkManager";
+    inherit (networkmanager.meta) platforms;
+    homepage = https://github.com/nm-l2tp/network-manager-l2tp;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ abbradar obadz ];
+  };
+}
diff --git a/pkgs/tools/networking/network-manager/l2tp/fix-paths.patch b/pkgs/tools/networking/network-manager/l2tp/fix-paths.patch
new file mode 100644
index 00000000000..0a068ee800c
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/l2tp/fix-paths.patch
@@ -0,0 +1,20 @@
+--- a/src/nm-l2tp-service.c
++++ b/src/nm-l2tp-service.c
+@@ -480,7 +480,7 @@
+ {
+ 	static const char *ipsec_binary_paths[] =
+ 		{
+-			"/sbin/ipsec",
++			"@strongswan@/bin/ipsec",
+ 			"/usr/sbin/ipsec",
+ 			"/usr/local/sbin/ipsec",
+ 			"/sbin/strongswan",
+@@ -505,7 +505,7 @@
+ {
+ 	static const char *l2tp_binary_paths[] =
+ 		{
+-			"/sbin/xl2tpd",
++			"@xl2tpd@/bin/xl2tpd",
+ 			"/usr/sbin/xl2tpd",
+ 			"/usr/local/sbin/xl2tpd",
+ 			NULL
diff --git a/pkgs/tools/networking/network-manager/libnm-gtk-mbpi.patch b/pkgs/tools/networking/network-manager/libnm-gtk-mbpi.patch
new file mode 100644
index 00000000000..d7eef5749db
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/libnm-gtk-mbpi.patch
@@ -0,0 +1,33 @@
+--- a/meson.build
++++ b/meson.build
+@@ -137,7 +137,7 @@
+   mobile_broadband_provider_info_dep = dependency('mobile-broadband-provider-info')
+   config_h.set_quoted('MOBILE_BROADBAND_PROVIDER_INFO_DATABASE', mobile_broadband_provider_info_dep.get_pkgconfig_variable('database'))
+ else
+-  config_h.set_quoted('MOBILE_BROADBAND_PROVIDER_INFO_DATABASE', join_paths(nma_prefix, 'share', 'mobile-broadband-provider-info', 'serviceproviders.xml'))
++  config_h.set_quoted('MOBILE_BROADBAND_PROVIDER_INFO_DATABASE', join_paths(nma_datadir, 'mobile-broadband-provider-info', 'serviceproviders.xml'))
+ endif
+ 
+ gio_dep = dependency('gio-2.0', version: '>= 2.38')
+--- a/src/libnm-gtk/nm-mobile-providers.c
++++ b/src/libnm-gtk/nm-mobile-providers.c
+@@ -30,10 +30,6 @@
+ 
+ #include "nm-mobile-providers.h"
+ 
+-#ifndef MOBILE_BROADBAND_PROVIDER_INFO
+-#define MOBILE_BROADBAND_PROVIDER_INFO DATADIR"/mobile-broadband-provider-info/serviceproviders.xml"
+-#endif
+-
+ #define ISO_3166_COUNTRY_CODES ISO_CODES_PREFIX"/share/xml/iso-codes/iso_3166.xml"
+ #define ISO_CODES_LOCALESDIR ISO_CODES_PREFIX"/share/locale"
+ 
+@@ -990,7 +986,7 @@
+ 	if (!country_codes)
+ 		country_codes = ISO_3166_COUNTRY_CODES;
+ 	if (!service_providers)
+-		service_providers = MOBILE_BROADBAND_PROVIDER_INFO;
++		service_providers = MOBILE_BROADBAND_PROVIDER_INFO_DATABASE;
+ 
+ 	countries = read_country_codes (country_codes,
+ 	                                cancellable,
diff --git a/pkgs/tools/networking/network-manager/openconnect.nix b/pkgs/tools/networking/network-manager/openconnect/default.nix
index ad15723dd33..23d4c816a20 100644
--- a/pkgs/tools/networking/network-manager/openconnect.nix
+++ b/pkgs/tools/networking/network-manager/openconnect/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, openconnect, intltool, pkgconfig, networkmanager, libsecret
-, withGnome ? true, gnome3, sysctl, kmod }:
+{ stdenv, fetchurl, substituteAll, openconnect, intltool, pkgconfig, networkmanager, libsecret
+, withGnome ? true, gnome3, kmod }:
 
 let
   pname   = "NetworkManager-openconnect";
@@ -12,24 +12,22 @@ in stdenv.mkDerivation rec {
     sha256 = "15j98wwspv6mcmy91w30as5qc1bzsnhlk060xhjy4qrvd37y0xx1";
   };
 
-  buildInputs = [ openconnect networkmanager libsecret ]
-    ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome-keyring ];
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit kmod openconnect;
+    })
+  ];
+
+  buildInputs = [ openconnect networkmanager ]
+    ++ stdenv.lib.optionals withGnome [ gnome3.gtk libsecret ];
 
   nativeBuildInputs = [ intltool pkgconfig ];
 
   configureFlags = [
-    "${if withGnome then "--with-gnome --with-gtkver=3" else "--without-gnome"}"
-    "--disable-static"
+    "--with-gnome=${if withGnome then "yes" else "no"}"
   ];
 
-  preConfigure = ''
-     substituteInPlace "configure" \
-       --replace "/sbin/sysctl" "${sysctl}/bin/sysctl"
-     substituteInPlace "src/nm-openconnect-service.c" \
-       --replace "/usr/sbin/openconnect" "${openconnect}/bin/openconnect" \
-       --replace "/sbin/modprobe" "${kmod}/bin/modprobe"
-  '';
-
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = pname;
@@ -37,8 +35,9 @@ in stdenv.mkDerivation rec {
     };
   };
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "NetworkManager's OpenConnect plugin";
     inherit (networkmanager.meta) maintainers platforms;
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/tools/networking/network-manager/openconnect/fix-paths.patch b/pkgs/tools/networking/network-manager/openconnect/fix-paths.patch
new file mode 100644
index 00000000000..9b342f5bd08
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/openconnect/fix-paths.patch
@@ -0,0 +1,20 @@
+--- a/src/nm-openconnect-service.c
++++ b/src/nm-openconnect-service.c
+@@ -60,7 +60,7 @@
+ 
+ static const char *openconnect_binary_paths[] =
+ {
+-	"/usr/bin/openconnect",
++	"@openconnect@/bin/openconnect",
+ 	"/usr/sbin/openconnect",
+ 	"/usr/local/bin/openconnect",
+ 	"/usr/local/sbin/openconnect",
+@@ -734,7 +734,7 @@
+ 
+ 	_LOGD ("nm-openconnect-service (version " DIST_VERSION ") starting...");
+ 
+-	if (system ("/sbin/modprobe tun") == -1)
++	if (system ("@kmod@/bin/modprobe tun") == -1)
+ 		exit (EXIT_FAILURE);
+ 
+ 	if (bus_name)
diff --git a/pkgs/tools/networking/network-manager/openvpn/default.nix b/pkgs/tools/networking/network-manager/openvpn/default.nix
index 28b7c873d36..8d3bd874718 100644
--- a/pkgs/tools/networking/network-manager/openvpn/default.nix
+++ b/pkgs/tools/networking/network-manager/openvpn/default.nix
@@ -2,13 +2,13 @@
 , withGnome ? true, gnome3, kmod }:
 
 let
-  pname   = "NetworkManager-openvpn";
+  pname = "NetworkManager-openvpn";
   version = "1.8.4";
 in stdenv.mkDerivation rec {
-  name    = "${pname}${if withGnome then "-gnome" else ""}-${version}";
+  name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
 
   src = fetchurl {
-    url    = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "0gyrv46h9k17qym48qacq4zpxbap6hi17shn921824zm98m2bdvr";
   };
 
@@ -19,15 +19,13 @@ in stdenv.mkDerivation rec {
     })
   ];
 
-  buildInputs = [ openvpn networkmanager libsecret ]
-    ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome-keyring
-                                        gnome3.networkmanagerapplet ];
+  buildInputs = [ openvpn networkmanager ]
+    ++ stdenv.lib.optionals withGnome [ gnome3.gtk libsecret gnome3.networkmanagerapplet ];
 
   nativeBuildInputs = [ intltool pkgconfig libxml2 ];
 
   configureFlags = [
-    "${if withGnome then "--with-gnome --with-gtkver=3" else "--without-gnome"}"
-    "--disable-static"
+    "--with-gnome=${if withGnome then "yes" else "no"}"
     "--localstatedir=/" # needed for the management socket under /run/NetworkManager
   ];
 
@@ -38,8 +36,9 @@ in stdenv.mkDerivation rec {
     };
   };
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "NetworkManager's OpenVPN plugin";
     inherit (networkmanager.meta) maintainers platforms;
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/tools/networking/network-manager/strongswan.nix b/pkgs/tools/networking/network-manager/strongswan.nix
index fb3ba2bbdf5..fc10fc6364c 100644
--- a/pkgs/tools/networking/network-manager/strongswan.nix
+++ b/pkgs/tools/networking/network-manager/strongswan.nix
@@ -1,38 +1,35 @@
-{ stdenv, fetchurl, intltool, pkgconfig, networkmanager, strongswanNM, sysctl
-, gnome3, libgnome-keyring, libsecret }:
+{ stdenv, fetchurl, intltool, pkgconfig, networkmanager, strongswanNM
+, gnome3, libsecret }:
 
 stdenv.mkDerivation rec {
-  name    = "${pname}-${version}";
-  pname   = "NetworkManager-strongswan";
-  version = "1.4.3";
+  name = "${pname}-${version}";
+  pname = "NetworkManager-strongswan";
+  version = "1.4.4";
 
   src = fetchurl {
-    url    = "https://download.strongswan.org/NetworkManager/${name}.tar.bz2";
-    sha256 = "0jzl52wmh2q2djb1s546kxliy7s6akhi5bx6rp2ppjfk3wbi2a2l";
+    url = "https://download.strongswan.org/NetworkManager/${name}.tar.bz2";
+    sha256 = "1xhj5cipwbihf0cna8lpicpz7cd8fgkagpmg0xvj6pshymm5jbcd";
   };
 
-  postPatch = ''
-    sed -i "s,nm_plugindir=.*,nm_plugindir=$out/lib/NetworkManager," "configure"
-    sed -i "s,nm_libexecdir=.*,nm_libexecdir=$out/libexec," "configure"
-  '';
-
   buildInputs = [ networkmanager strongswanNM libsecret ]
-      ++ (with gnome3; [ gtk libgnome-keyring networkmanagerapplet ]);
+    ++ (with gnome3; [ gtk networkmanagerapplet ]);
 
   nativeBuildInputs = [ intltool pkgconfig ];
 
   # Fixes deprecation errors with networkmanager 1.10.2
   NIX_CFLAGS_COMPILE = "-Wno-deprecated-declarations";
 
-  preConfigure = ''
-     substituteInPlace "configure" \
-       --replace "/sbin/sysctl" "${sysctl}/bin/sysctl"
-  '';
+  configureFlags = [
+    "--with-charon=${strongswanNM}/libexec/ipsec/charon-nm"
+    "--with-nm-libexecdir=$(out)/libexec"
+    "--with-nm-plugindir=$(out)/lib/NetworkManager"
+  ];
 
-  configureFlags = [ "--with-charon=${strongswanNM}/libexec/ipsec/charon-nm" ];
+  PKG_CONFIG_LIBNM_VPNSERVICEDIR = "$(out)/lib/NetworkManager/VPN";
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "NetworkManager's strongswan plugin";
     inherit (networkmanager.meta) platforms;
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/tools/networking/network-manager/vpnc.nix b/pkgs/tools/networking/network-manager/vpnc.nix
deleted file mode 100644
index 577e04f6648..00000000000
--- a/pkgs/tools/networking/network-manager/vpnc.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ stdenv, fetchurl, vpnc, intltool, pkgconfig, networkmanager, libsecret
-, withGnome ? true, gnome3, procps, kmod, file }:
-let
-  pname   = "NetworkManager-vpnc";
-  version = "1.2.6";
-in stdenv.mkDerivation rec {
-  name    = "${pname}${if withGnome then "-gnome" else ""}-${version}";
-
-  src = fetchurl {
-    url    = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy";
-  };
-
-  buildInputs = [ vpnc networkmanager libsecret ]
-    ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome-keyring
-                                        gnome3.networkmanagerapplet ];
-
-  nativeBuildInputs = [ intltool pkgconfig file ];
-
-  configureFlags = [
-    "${if withGnome then "--with-gnome --with-gtkver=3" else "--without-gnome"}"
-    "--disable-static"
-  ];
-
-  preConfigure = ''
-     substituteInPlace "configure" \
-       --replace "/sbin/sysctl" "${procps}/bin/sysctl"
-     substituteInPlace "src/nm-vpnc-service.c" \
-       --replace "/sbin/vpnc" "${vpnc}/bin/vpnc" \
-       --replace "/sbin/modprobe" "${kmod}/bin/modprobe"
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "networkmanager-vpnc";
-    };
-  };
-
-  meta = {
-    description = "NetworkManager's VPNC plugin";
-    inherit (networkmanager.meta) maintainers platforms;
-  };
-}
-
diff --git a/pkgs/tools/networking/network-manager/vpnc/default.nix b/pkgs/tools/networking/network-manager/vpnc/default.nix
new file mode 100644
index 00000000000..d2b3a345d49
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/vpnc/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, substituteAll, vpnc, intltool, pkgconfig, networkmanager, libsecret
+, withGnome ? true, gnome3, kmod, file }:
+let
+  pname = "NetworkManager-vpnc";
+  version = "1.2.6";
+in stdenv.mkDerivation rec {
+  name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit vpnc kmod;
+    })
+  ];
+
+  buildInputs = [ vpnc networkmanager ]
+    ++ stdenv.lib.optionals withGnome [ gnome3.gtk libsecret gnome3.networkmanagerapplet ];
+
+  nativeBuildInputs = [ intltool pkgconfig file ];
+
+  configureFlags = [
+    "--with-gnome=${if withGnome then "yes" else "no"}"
+  ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "networkmanager-vpnc";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "NetworkManager's VPNC plugin";
+    inherit (networkmanager.meta) maintainers platforms;
+    license = licenses.gpl2Plus;
+  };
+}
diff --git a/pkgs/tools/networking/network-manager/vpnc/fix-paths.patch b/pkgs/tools/networking/network-manager/vpnc/fix-paths.patch
new file mode 100644
index 00000000000..98238ac01f7
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/vpnc/fix-paths.patch
@@ -0,0 +1,31 @@
+--- a/properties/nm-vpnc-editor-plugin.c
++++ b/properties/nm-vpnc-editor-plugin.c
+@@ -161,7 +161,7 @@
+ 	GError *error = NULL;
+ 
+ 	const char *decrypt_possible_paths[] = {
+-		"/usr/lib/vpnc/cisco-decrypt",
++		"@vpnc@/bin/cisco-decrypt",
+ 		"/usr/bin/cisco-decrypt",
+ 		NULL
+ 	};
+--- a/src/nm-vpnc-service.c
++++ b/src/nm-vpnc-service.c
+@@ -610,7 +610,7 @@
+ find_vpnc (void)
+ {
+ 	static const char *vpnc_paths[] = {
+-		"/usr/sbin/vpnc",
++		"@vpnc@/bin/vpnc",
+ 		"/sbin/vpnc",
+ 		"/usr/local/sbin/vpnc",
+ 		NULL
+@@ -1308,7 +1308,7 @@
+ 	_LOGD ("   vpnc interactive mode is %s", interactive_available ? "enabled" : "disabled");
+ 	_LOGD ("   uses%s --bus-name \"%s\"", bus_name_free ? "" : " default", bus_name);
+ 
+-	if (system ("/sbin/modprobe tun") == -1)
++	if (system ("@kmod@/bin/modprobe tun") == -1)
+ 		exit (EXIT_FAILURE);
+ 
+ 	plugin = nm_vpnc_plugin_new (bus_name);
diff --git a/pkgs/tools/package-management/nix-repl/default.nix b/pkgs/tools/package-management/nix-repl/default.nix
deleted file mode 100644
index 9fe6ec6e291..00000000000
--- a/pkgs/tools/package-management/nix-repl/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, nix, readline }:
-
-let rev = "a1ea85e92b067a0a42354a28355c633eac7be65c"; in
-
-stdenv.mkDerivation {
-  name = "nix-repl-${lib.getVersion nix}-2016-02-28";
-
-  src = fetchFromGitHub {
-    owner = "edolstra";
-    repo = "nix-repl";
-    inherit rev;
-    sha256 = "0rf9711day64lgg6g6yqc5709x4sgj137zpqyn019k764i7m2xs8";
-  };
-
-  buildInputs = [ nix readline ];
-
-  dontBuild = true;
-
-  # FIXME: unfortunate cut&paste.
-  installPhase = ''
-    mkdir -p $out/bin
-    $CXX -O3 -Wall -std=c++0x \
-      -o $out/bin/nix-repl nix-repl.cc \
-      -I${nix.dev}/include/nix \
-      -lnixformat -lnixutil -lnixstore -lnixexpr -lnixmain -lreadline -lgc \
-      -DNIX_VERSION=\"${(builtins.parseDrvName nix.name).version}\"
-  '';
-
-  meta = {
-    homepage = https://github.com/edolstra/nix-repl;
-    description = "An interactive environment for evaluating and building Nix expressions";
-    maintainers = [ lib.maintainers.eelco ];
-    license = lib.licenses.gpl3;
-    platforms = nix.meta.platforms;
-  };
-}
diff --git a/pkgs/tools/security/pass/default.nix b/pkgs/tools/security/pass/default.nix
index 007414d68a5..6c0a59bcce7 100644
--- a/pkgs/tools/security/pass/default.nix
+++ b/pkgs/tools/security/pass/default.nix
@@ -29,12 +29,12 @@ let
     };
 
   generic = extensionsEnv: extraPassthru: stdenv.mkDerivation rec {
-    version = "1.7.2";
+    version = "1.7.3";
     name    = "password-store-${version}";
 
     src = fetchurl {
       url    = "https://git.zx2c4.com/password-store/snapshot/${name}.tar.xz";
-      sha256 = "1sl0d7nc85c6c2bmmmyb8rpmn47vhkj831l153mjlkawjvhwas27";
+      sha256 = "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b";
     };
 
     patches = [ ./set-correct-program-name-for-sleep.patch
diff --git a/pkgs/tools/security/pass/set-correct-program-name-for-sleep.patch b/pkgs/tools/security/pass/set-correct-program-name-for-sleep.patch
index 782e06e20fd..f3a844ad2d6 100644
--- a/pkgs/tools/security/pass/set-correct-program-name-for-sleep.patch
+++ b/pkgs/tools/security/pass/set-correct-program-name-for-sleep.patch
@@ -1,6 +1,6 @@
-From 25b44e00ed5df8ffe2782d38ad5cd9f514379599 Mon Sep 17 00:00:00 2001
-From: "Andrew R. M" <andrewmiller237@gmail.com>
-Date: Sat, 8 Apr 2017 13:50:01 -0400
+From d11261c2ad184daf6e9edd777bc8a3372c277b4b Mon Sep 17 00:00:00 2001
+From: Johannes Frankenau <johannes@frankenau.net>
+Date: Fri, 10 Aug 2018 09:49:57 +0200
 Subject: [PATCH] Patch the clip() function to work even when using
  single-binary coreutils
 
@@ -11,7 +11,7 @@ Subject: [PATCH] Patch the clip() function to work even when using
  3 files changed, 6 insertions(+), 6 deletions(-)
 
 diff --git a/src/password-store.sh b/src/password-store.sh
-index 6a4172d..4dbd6b8 100755
+index 7264ffc..68551a4 100755
 --- a/src/password-store.sh
 +++ b/src/password-store.sh
 @@ -155,11 +155,11 @@ clip() {
@@ -20,16 +20,16 @@ index 6a4172d..4dbd6b8 100755
  	local sleep_argv0="password store sleep on display $DISPLAY"
 -	pkill -f "^$sleep_argv0" 2>/dev/null && sleep 0.5
 +	pkill -P $(pgrep -f "^$sleep_argv0") 2>/dev/null && sleep 0.5
- 	local before="$(xclip -o -selection "$X_SELECTION" 2>/dev/null | base64)"
+ 	local before="$(xclip -o -selection "$X_SELECTION" 2>/dev/null | $BASE64)"
  	echo -n "$1" | xclip -selection "$X_SELECTION" || die "Error: Could not copy data to the clipboard"
  	(
 -		( exec -a "$sleep_argv0" bash <<<"trap 'kill %1' TERM; sleep '$CLIP_TIME' & wait" )
 +		( exec -a "$sleep_argv0" bash <(echo trap 'kill %1' TERM\; sleep "$CLIP_TIME & wait") )
- 		local now="$(xclip -o -selection "$X_SELECTION" | base64)"
- 		[[ $now != $(echo -n "$1" | base64) ]] && before="$now"
+ 		local now="$(xclip -o -selection "$X_SELECTION" | $BASE64)"
+ 		[[ $now != $(echo -n "$1" | $BASE64) ]] && before="$now"
  
 diff --git a/src/platform/cygwin.sh b/src/platform/cygwin.sh
-index 6e5dd86..f3574c4 100644
+index 5a8d5ea..423e0ce 100644
 --- a/src/platform/cygwin.sh
 +++ b/src/platform/cygwin.sh
 @@ -3,11 +3,11 @@
@@ -38,16 +38,16 @@ index 6e5dd86..f3574c4 100644
  	local sleep_argv0="password store sleep on display $DISPLAY"
 -	pkill -f "^$sleep_argv0" 2>/dev/null && sleep 0.5
 +	pkill -P $(pgrep -f "^$sleep_argv0") 2>/dev/null && sleep 0.5
- 	local before="$(base64 < /dev/clipboard)"
+ 	local before="$($BASE64 < /dev/clipboard)"
  	echo -n "$1" > /dev/clipboard
  	(
 -		( exec -a "$sleep_argv0" sleep "$CLIP_TIME" )
 +		( exec -a "$sleep_argv0" bash <(echo sleep "$CLIP_TIME") )
- 		local now="$(base64 < /dev/clipboard)"
- 		[[ $now != $(echo -n "$1" | base64) ]] && before="$now"
- 		echo "$before" | base64 -d > /dev/clipboard
+ 		local now="$($BASE64 < /dev/clipboard)"
+ 		[[ $now != $(echo -n "$1" | $BASE64) ]] && before="$now"
+ 		echo "$before" | $BASE64 -d > /dev/clipboard
 diff --git a/src/platform/darwin.sh b/src/platform/darwin.sh
-index 86eb325..deb04c4 100644
+index 342ecce..9e12837 100644
 --- a/src/platform/darwin.sh
 +++ b/src/platform/darwin.sh
 @@ -3,11 +3,11 @@
@@ -56,14 +56,14 @@ index 86eb325..deb04c4 100644
  	local sleep_argv0="password store sleep for user $(id -u)"
 -	pkill -f "^$sleep_argv0" 2>/dev/null && sleep 0.5
 +	pkill -P $(pgrep -f "^$sleep_argv0") 2>/dev/null && sleep 0.5
- 	local before="$(pbpaste | openssl base64)"
+ 	local before="$(pbpaste | $BASE64)"
  	echo -n "$1" | pbcopy
  	(
 -		( exec -a "$sleep_argv0" sleep "$CLIP_TIME" )
 +		( exec -a "$sleep_argv0" bash <(echo sleep "$CLIP_TIME") )
- 		local now="$(pbpaste | openssl base64)"
- 		[[ $now != $(echo -n "$1" | openssl base64) ]] && before="$now"
- 		echo "$before" | openssl base64 -d | pbcopy
+ 		local now="$(pbpaste | $BASE64)"
+ 		[[ $now != $(echo -n "$1" | $BASE64) ]] && before="$now"
+ 		echo "$before" | $BASE64 -d | pbcopy
 -- 
-2.12.2
+2.16.4
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 35f10c345f3..98946ba44e2 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1547,8 +1547,6 @@ with pkgs;
 
   apparix = callPackage ../tools/misc/apparix { };
 
-  appdata-tools = callPackage ../tools/misc/appdata-tools { };
-
   appleseed = callPackage ../tools/graphics/appleseed { };
 
   arping = callPackage ../tools/networking/arping { };
@@ -4128,21 +4126,21 @@ with pkgs;
 
   networkmanager = callPackage ../tools/networking/network-manager { };
 
-  networkmanager-iodine = callPackage ../tools/networking/network-manager/iodine.nix { };
+  networkmanager-iodine = callPackage ../tools/networking/network-manager/iodine { };
 
   networkmanager-openvpn = callPackage ../tools/networking/network-manager/openvpn { };
 
-  networkmanager-l2tp = callPackage ../tools/networking/network-manager/l2tp.nix { };
+  networkmanager-l2tp = callPackage ../tools/networking/network-manager/l2tp { };
 
-  networkmanager-vpnc = callPackage ../tools/networking/network-manager/vpnc.nix { };
+  networkmanager-vpnc = callPackage ../tools/networking/network-manager/vpnc { };
 
-  networkmanager-openconnect = callPackage ../tools/networking/network-manager/openconnect.nix { };
+  networkmanager-openconnect = callPackage ../tools/networking/network-manager/openconnect { };
 
-  networkmanager-fortisslvpn = callPackage ../tools/networking/network-manager/fortisslvpn.nix { };
+  networkmanager-fortisslvpn = callPackage ../tools/networking/network-manager/fortisslvpn { };
 
   networkmanager_strongswan = callPackage ../tools/networking/network-manager/strongswan.nix { };
 
-  networkmanagerapplet = newScope gnome2 ../tools/networking/network-manager/applet.nix { };
+  networkmanagerapplet = callPackage ../tools/networking/network-manager/applet.nix { };
 
   networkmanager_dmenu = callPackage ../tools/networking/network-manager/dmenu.nix  { };
 
@@ -5029,7 +5027,7 @@ with pkgs;
 
   sasview = callPackage ../applications/science/misc/sasview {};
 
-  scallion = callPackage ../tools/security/scallion { mono = mono4; };
+  scallion = callPackage ../tools/security/scallion { };
 
   scanbd = callPackage ../tools/graphics/scanbd { };
 
@@ -5939,7 +5937,7 @@ with pkgs;
 
   volumeicon = callPackage ../tools/audio/volumeicon { };
 
-  waf = callPackage ../development/tools/build-managers/waf { };
+  waf = callPackage ../development/tools/build-managers/waf { python = python3; };
 
   wakelan = callPackage ../tools/networking/wakelan { };
 
@@ -6444,14 +6442,6 @@ with pkgs;
       libc = libcCross1;
   };
 
-  # Only needed for mingw builds
-  gccCrossMingw2 = assert targetPlatform != buildPlatform; wrapCCWith {
-    name = "gcc-cross-wrapper";
-    cc = gccCrossStageStatic.gcc;
-    libc = windows.mingw_headers2;
-    inherit binutils;
-  };
-
   gcc48 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/4.8 {
     inherit noSysDirs;
 
@@ -7016,6 +7006,8 @@ with pkgs;
 
   monoDLLFixer = callPackage ../build-support/mono-dll-fixer { };
 
+  mosml = callPackage ../development/compilers/mosml { };
+
   mozart-binary = callPackage ../development/compilers/mozart/binary.nix { };
   mozart = mozart-binary;
 
@@ -7640,6 +7632,8 @@ with pkgs;
 
   ruby = ruby_2_4;
 
+  mruby = callPackage ../development/compilers/mruby { };
+
   scsh = callPackage ../development/interpreters/scsh { };
 
   scheme48 = callPackage ../development/interpreters/scheme48 { };
@@ -7752,6 +7746,8 @@ with pkgs;
     guile = guile_2_0;
   };
 
+  inav = callPackage ../development/misc/stm32/inav { };
+
   pharo-vms = callPackage ../development/pharo/vm { };
   pharo = pharo-vms.multi-vm-wrapper;
   pharo-cog32 = pharo-vms.cog32;
@@ -10371,6 +10367,8 @@ with pkgs;
   libindicator-gtk3 = libindicator.override { gtkVersion = "3"; };
   libindicator = callPackage ../development/libraries/libindicator { };
 
+  libinotify-kqueue = callPackage ../development/libraries/libinotify-kqueue { };
+
   libiodbc = callPackage ../development/libraries/libiodbc {
     useGTK = config.libiodbc.gtk or false;
   };
@@ -14569,50 +14567,7 @@ with pkgs;
 
   vndr = callPackage ../development/tools/vndr { };
 
-  windows = rec {
-    cygwinSetup = callPackage ../os-specific/windows/cygwin-setup { };
-
-    jom = callPackage ../os-specific/windows/jom { };
-
-    w32api = callPackage ../os-specific/windows/w32api { };
-
-    w32api_headers = callPackage ../os-specific/windows/w32api/headers { };
-
-    mingw_runtime = callPackage ../os-specific/windows/mingwrt { };
-
-    mingw_runtime_headers = callPackage ../os-specific/windows/mingwrt/headers.nix { };
-
-    mingw_headers1 = buildEnv {
-      name = "mingw-headers-1";
-      paths = [ w32api_headers mingw_runtime_headers ];
-    };
-
-    mingw_headers2 = buildEnv {
-      name = "mingw-headers-2";
-      paths = [ w32api mingw_runtime_headers ];
-    };
-
-    mingw_headers3 = buildEnv {
-      name = "mingw-headers-3";
-      paths = [ w32api mingw_runtime ];
-    };
-
-    mingw_w64 = callPackage ../os-specific/windows/mingw-w64 {
-      stdenv = crossLibcStdenv;
-    };
-
-    mingw_w64_headers = callPackage ../os-specific/windows/mingw-w64/headers.nix { };
-
-    mingw_w64_pthreads = callPackage ../os-specific/windows/mingw-w64/pthreads.nix { };
-
-    pthreads = callPackage ../os-specific/windows/pthread-w32 {
-      mingw_headers = mingw_headers3;
-    };
-
-    wxMSW = callPackage ../os-specific/windows/wxMSW-2.8 { };
-
-    libgnurx = callPackage ../os-specific/windows/libgnurx { };
-  };
+  windows = callPackages ../os-specific/windows {};
 
   wirelesstools = callPackage ../os-specific/linux/wireless-tools { };
 
@@ -15423,10 +15378,10 @@ with pkgs;
     (callPackage ../applications/science/electronics/bitscope/packages.nix { });
 
   bitwig-studio1 =  callPackage ../applications/audio/bitwig-studio/bitwig-studio1.nix {
-    inherit (gnome2) zenity;
+    inherit (gnome3) zenity;
   };
   bitwig-studio2 =  callPackage ../applications/audio/bitwig-studio/bitwig-studio2.nix {
-    inherit (gnome2) zenity;
+    inherit (gnome3) zenity;
     inherit (self) bitwig-studio1;
   };
   bitwig-studio = bitwig-studio2;
@@ -16858,6 +16813,8 @@ with pkgs;
 
   inherit (nodePackages) imapnotify;
 
+  img2pdf = callPackage ../applications/misc/img2pdf { };
+
   # Impressive, formerly known as "KeyJNote".
   impressive = callPackage ../applications/office/impressive { };
 
@@ -18498,7 +18455,7 @@ with pkgs;
     })
     subversion18 subversion19 subversion_1_10;
 
-  subversion = pkgs.subversion19;
+  subversion = subversion_1_10;
 
   subversionClient = appendToName "client" (pkgs.subversion.override {
     bdbSupport = false;
@@ -19285,25 +19242,19 @@ with pkgs;
     packages = self: [];
   };
 
-  xmonad_log_applet_gnome2 = xmonad_log_applet.override {
-    desktopSupport = "gnome2";
+  xmonad_log_applet = callPackage ../applications/window-managers/xmonad/log-applet {
+    desktopSupport = "gnomeflashback";
     inherit (xfce) libxfce4util xfce4-panel;
-    gnome2_panel = gnome2.gnome_panel;
-    GConf2 = gnome2.GConf;
   };
 
-  xmonad_log_applet = callPackage ../applications/window-managers/xmonad/log-applet {
-    desktopSupport = "gnome3";
+  xmonad_log_applet_mate = xmonad_log_applet.override {
+    desktopSupport = "mate";
     inherit (xfce) libxfce4util xfce4-panel;
-    gnome2_panel = gnome2.gnome_panel;
-    GConf2 = gnome2.GConf;
   };
 
   xmonad_log_applet_xfce = xmonad_log_applet.override {
     desktopSupport = "xfce4";
     inherit (xfce) libxfce4util xfce4-panel;
-    gnome2_panel = gnome2.gnome_panel;
-    GConf2 = gnome2.GConf;
   };
 
   xmpp-client = callPackage ../applications/networking/instant-messengers/xmpp-client { };
@@ -21470,8 +21421,6 @@ with pkgs;
 
   nix-top = callPackage ../tools/package-management/nix-top { };
 
-  nix-repl = callPackage ../tools/package-management/nix-repl { nix = nix1; };
-
   nix-review = callPackage ../tools/package-management/nix-review { };
 
   nix-serve = callPackage ../tools/package-management/nix-serve { };
@@ -21511,7 +21460,7 @@ with pkgs;
 
   mnemonicode = callPackage ../misc/mnemonicode { };
 
-  mysql-workbench = newScope gnome2 ../applications/misc/mysql-workbench (let mysql = mysql57; in {
+  mysql-workbench = callPackage ../applications/misc/mysql-workbench (let mysql = mysql57; in {
     gdal = gdal.override {mysql = mysql // {lib = {dev = mysql;};};};
     mysql = mysql;
     pcre = pcre-cpp;
@@ -21842,7 +21791,7 @@ with pkgs;
   });
 
   winetricks = callPackage ../misc/emulators/wine/winetricks.nix {
-    inherit (gnome2) zenity;
+    inherit (gnome3) zenity;
   };
 
   with-shell = callPackage ../applications/misc/with-shell { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 6fc3a140eb8..26c1215ae01 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -11003,10 +11003,12 @@ in {
 
   python-language-server = callPackage ../development/python-modules/python-language-server {};
 
-  pyls-mypy = callPackage ../development/python-modules/pyls-mypy {};
+  pyls-black = callPackage ../development/python-modules/pyls-black {};
 
   pyls-isort = callPackage ../development/python-modules/pyls-isort {};
 
+  pyls-mypy = callPackage ../development/python-modules/pyls-mypy {};
+
   pyudev = callPackage ../development/python-modules/pyudev {
     inherit (pkgs) systemd;
   };