summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2019-04-07 08:33:41 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2019-04-07 08:33:41 +0200
commit4a125f6b202516b1ae8dee79202ad9fff1c7693a (patch)
tree4011f0088b7a5da2ef88ab90f3654efdc18b68d7 /pkgs
parentf5d4adc0d185278936ccb1b0518f6605eb2f1b53 (diff)
parent09286ef240647f7fefe75ac7a785afa5d2cd0b97 (diff)
downloadnixpkgs-4a125f6b202516b1ae8dee79202ad9fff1c7693a.tar
nixpkgs-4a125f6b202516b1ae8dee79202ad9fff1c7693a.tar.gz
nixpkgs-4a125f6b202516b1ae8dee79202ad9fff1c7693a.tar.bz2
nixpkgs-4a125f6b202516b1ae8dee79202ad9fff1c7693a.tar.lz
nixpkgs-4a125f6b202516b1ae8dee79202ad9fff1c7693a.tar.xz
nixpkgs-4a125f6b202516b1ae8dee79202ad9fff1c7693a.tar.zst
nixpkgs-4a125f6b202516b1ae8dee79202ad9fff1c7693a.zip
Merge master into staging-next
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/curseradio/default.nix36
-rw-r--r--pkgs/applications/audio/curseradio/mpv.patch11
-rw-r--r--pkgs/applications/audio/spotify/default.nix6
-rwxr-xr-xpkgs/applications/audio/spotify/update.sh40
-rw-r--r--pkgs/applications/editors/android-studio/default.nix6
-rw-r--r--pkgs/applications/editors/vscode/default.nix8
-rw-r--r--pkgs/applications/graphics/avocode/default.nix4
-rw-r--r--pkgs/applications/graphics/goxel/default.nix4
-rw-r--r--pkgs/applications/graphics/wings/default.nix4
-rw-r--r--pkgs/applications/misc/cura/default.nix14
-rw-r--r--pkgs/applications/misc/curaengine/default.nix4
-rw-r--r--pkgs/applications/misc/gramps/default.nix4
-rw-r--r--pkgs/applications/misc/qlcplus/default.nix6
-rw-r--r--pkgs/applications/misc/workrave/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.nix18
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/default.nix4
-rwxr-xr-xpkgs/applications/networking/browsers/vivaldi/update.sh10
-rwxr-xr-xpkgs/applications/networking/instant-messengers/zoom-us/update.sh12
-rw-r--r--pkgs/applications/office/qownnotes/default.nix4
-rw-r--r--pkgs/applications/office/zim/default.nix17
-rw-r--r--pkgs/applications/science/biology/migrate/default.nix24
-rw-r--r--pkgs/applications/science/logic/hol_light/default.nix6
-rw-r--r--pkgs/applications/science/math/nauty/default.nix23
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix7
-rw-r--r--pkgs/applications/version-management/git-and-tools/subgit/default.nix4
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix4
-rw-r--r--pkgs/applications/video/xawtv/default.nix4
-rw-r--r--pkgs/applications/virtualization/open-vm-tools/default.nix4
-rw-r--r--pkgs/applications/virtualization/podman/conmon.nix6
-rw-r--r--pkgs/applications/virtualization/podman/default.nix4
-rw-r--r--pkgs/build-support/docker/default.nix2
-rwxr-xr-xpkgs/build-support/docker/nix-prefetch-docker173
-rw-r--r--pkgs/build-support/docker/nix-prefetch-docker.nix26
-rwxr-xr-xpkgs/build-support/docker/store-path-to-layer.sh2
-rwxr-xr-xpkgs/common-updater/scripts/update-source-version13
-rw-r--r--pkgs/data/fonts/inter-ui/default.nix12
-rw-r--r--pkgs/data/fonts/inter/default.nix25
-rw-r--r--pkgs/desktops/gnome-3/extensions/tilingnome/default.nix35
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix6
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-greeter/gsd.patch2
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-theme.patch15
-rw-r--r--pkgs/development/compilers/gcc-arm-embedded/6/default.nix19
-rw-r--r--pkgs/development/compilers/gcc-arm-embedded/7/default.nix15
-rw-r--r--pkgs/development/compilers/gcc-arm-embedded/8/default.nix15
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix34
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml1
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix1
-rw-r--r--pkgs/development/interpreters/php/default.nix12
-rw-r--r--pkgs/development/libraries/libmediainfo/default.nix4
-rw-r--r--pkgs/development/libraries/physics/herwig/default.nix6
-rw-r--r--pkgs/development/libraries/physics/thepeg/default.nix4
-rw-r--r--pkgs/development/libraries/vapoursynth-mvtools/default.nix4
-rw-r--r--pkgs/development/libraries/wolfssl/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/reactivedata/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/uutf/default.nix4
-rw-r--r--pkgs/development/python-modules/aioesphomeapi/default.nix12
-rw-r--r--pkgs/development/python-modules/cmd2/default.nix4
-rw-r--r--pkgs/development/python-modules/cypari2/default.nix4
-rw-r--r--pkgs/development/python-modules/ldap/default.nix10
-rw-r--r--pkgs/development/python-modules/ldappool/default.nix9
-rw-r--r--pkgs/development/python-modules/libarcus/default.nix4
-rw-r--r--pkgs/development/python-modules/libsavitar/default.nix4
-rw-r--r--pkgs/development/python-modules/netdisco/default.nix4
-rw-r--r--pkgs/development/python-modules/pylast/default.nix4
-rw-r--r--pkgs/development/python-modules/pyscard/default.nix15
-rw-r--r--pkgs/development/python-modules/uranium/default.nix4
-rw-r--r--pkgs/development/tools/buildah/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rwxr-xr-xpkgs/development/tools/continuous-integration/jenkins/update.sh13
-rw-r--r--pkgs/development/tools/godot/default.nix8
-rw-r--r--pkgs/development/tools/godot/dont_clobber_environment.patch9
-rw-r--r--pkgs/development/tools/godot/pkg_config_additions.patch23
-rw-r--r--pkgs/development/tools/misc/sysbench/default.nix6
-rw-r--r--pkgs/development/tools/ocaml/camlp5/META94
-rw-r--r--pkgs/development/tools/ocaml/camlp5/default.nix29
-rw-r--r--pkgs/games/eduke32/default.nix98
-rw-r--r--pkgs/games/leela-zero/default.nix6
-rw-r--r--pkgs/games/steam/steamcmd.nix4
-rw-r--r--pkgs/games/steam/steamcmd.sh3
-rw-r--r--pkgs/games/wesnoth/default.nix4
-rw-r--r--pkgs/misc/emulators/cdemu/analyzer.nix15
-rw-r--r--pkgs/misc/emulators/cdemu/client.nix8
-rw-r--r--pkgs/misc/emulators/cdemu/daemon.nix8
-rw-r--r--pkgs/misc/emulators/cdemu/gui.nix10
-rw-r--r--pkgs/misc/emulators/cdemu/libmirage.nix15
-rw-r--r--pkgs/misc/emulators/cdemu/vhba.nix4
-rw-r--r--pkgs/misc/vim-plugins/generated.nix144
-rw-r--r--pkgs/misc/vscode-extensions/default.nix4
-rw-r--r--pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix10
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix5
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix5
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.0.nix5
-rwxr-xr-xpkgs/os-specific/linux/kernel/update.sh2
-rw-r--r--pkgs/servers/ftp/pure-ftpd/default.nix4
-rw-r--r--pkgs/servers/home-assistant/appdaemon.nix8
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix1719
-rw-r--r--pkgs/servers/home-assistant/default.nix10
-rw-r--r--pkgs/servers/home-assistant/frontend.nix4
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix6
-rw-r--r--pkgs/servers/traefik/default.nix4
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix8
-rwxr-xr-xpkgs/shells/zsh/oh-my-zsh/update.sh20
-rw-r--r--pkgs/shells/zsh/zsh-autosuggestions/default.nix4
-rw-r--r--pkgs/tools/admin/lxd/default.nix13
-rw-r--r--pkgs/tools/archivers/unrar/default.nix4
-rw-r--r--pkgs/tools/audio/playerctl/default.nix4
-rw-r--r--pkgs/tools/misc/broot/default.nix4
-rw-r--r--pkgs/tools/misc/pspg/default.nix4
-rw-r--r--pkgs/tools/misc/tlp/default.nix48
-rw-r--r--pkgs/tools/misc/vdirsyncer/default.nix10
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/networking/dnscrypt-proxy/2.x/default.nix6
-rw-r--r--pkgs/tools/networking/i2p/default.nix4
-rw-r--r--pkgs/tools/security/proxmark3/default.nix37
-rw-r--r--pkgs/tools/system/rsyslog/default.nix4
-rw-r--r--pkgs/tools/typesetting/tex/latexrun/default.nix29
-rw-r--r--pkgs/top-level/all-packages.nix22
-rw-r--r--pkgs/top-level/dotnet-packages.nix7
-rw-r--r--pkgs/top-level/ocaml-packages.nix4
120 files changed, 2168 insertions, 1187 deletions
diff --git a/pkgs/applications/audio/curseradio/default.nix b/pkgs/applications/audio/curseradio/default.nix
new file mode 100644
index 00000000000..1dd5f9ee5eb
--- /dev/null
+++ b/pkgs/applications/audio/curseradio/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, substituteAll, python3Packages, mpv }:
+
+python3Packages.buildPythonApplication rec {
+  version = "0.2";
+  pname = "curseradio";
+
+  src = fetchFromGitHub {
+    owner = "chronitis";
+    repo = pname;
+    rev = "1bd4bd0faeec675e0647bac9a100b526cba19f8d";
+    sha256 = "11bf0jnj8h2fxhpdp498189r4s6b47vy4wripv0z4nx7lxajl88i";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    requests
+    lxml
+    pyxdg
+  ];
+
+  patches = [
+    (substituteAll {
+      src = ./mpv.patch;
+      inherit mpv;
+    })
+  ];
+
+  # No tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Command line radio player";
+    homepage = "https://github.com/chronitis/curseradio";
+    license = licenses.mit;
+    maintainers = [ maintainers.eyjhb ];
+  };
+}
diff --git a/pkgs/applications/audio/curseradio/mpv.patch b/pkgs/applications/audio/curseradio/mpv.patch
new file mode 100644
index 00000000000..d085dc79109
--- /dev/null
+++ b/pkgs/applications/audio/curseradio/mpv.patch
@@ -0,0 +1,11 @@
+--- a/curseradio/curseradio.py
++++ b/curseradio/curseradio.py
+@@ -30,7 +30,7 @@ import re
+ 
+ CONFIG_DEFAULT = {
+     'opml': {'root': "http://opml.radiotime.com/"},
+-    'playback': {'command': '/usr/bin/mpv'},
++    'playback': {'command': '@mpv@/bin/mpv'},
+     'interface': {'keymap': 'default'},
+     'keymap.default': {
+         'up': 'KEY_UP',
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index 060c1dc5d4d..df6f9714819 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -10,14 +10,14 @@ let
   # If an update breaks things, one of those might have valuable info:
   # https://aur.archlinux.org/packages/spotify/
   # https://community.spotify.com/t5/Desktop-Linux
-  version = "1.0.96.181.gf6bc1b6b-12";
+  version = "1.1.0.237.g378f6f25-11";
   # To get the latest stable revision:
   # curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
   # To get general information:
   # curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
   # More examples of api usage:
   # https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
-  rev = "30";
+  rev = "34";
 
 
   deps = [
@@ -71,7 +71,7 @@ stdenv.mkDerivation {
   # https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
   src = fetchurl {
     url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
-    sha512 = "859730fbc80067f0828f7e13eee9a21b13b749f897a50e17c2da4ee672785cfd79e1af6336e609529d105e040dc40f61b6189524783ac93d49f991c4ea8b3c56";
+    sha512 = "beddfa8f5de9998e8d1dca32295d03bdf41ec2c23eca82fcf56e5bae7b8fb84c036627b02ea458623a72a01ba09ef83cc50acdd06f2810bd444aae450d4861e6";
   };
 
   buildInputs = [ squashfsTools makeWrapper ];
diff --git a/pkgs/applications/audio/spotify/update.sh b/pkgs/applications/audio/spotify/update.sh
index 0e19ca1920b..a8836214f2f 100755
--- a/pkgs/applications/audio/spotify/update.sh
+++ b/pkgs/applications/audio/spotify/update.sh
@@ -29,10 +29,10 @@ spotify_nix="$nixpkgs/pkgs/applications/audio/spotify/default.nix"
 
 # create bash array from snap info
 snap_info=($(
-	curl -H 'X-Ubuntu-Series: 16' \
-		"https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=$channel" \
-	| jq --raw-output \
-		'.revision,.download_sha512,.version,.last_updated'
+  curl -s -H 'X-Ubuntu-Series: 16' \
+    "https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=$channel" \
+  | jq --raw-output \
+    '.revision,.download_sha512,.version,.last_updated'
 ))
 
 # "revision" is the actual version identifier on snapcraft, the "version" is
@@ -50,8 +50,8 @@ echo "Latest $channel release is $upstream_version from $last_updated."
 #
 
 current_nix_version=$(
-	grep 'version\s*=' "$spotify_nix" \
-	| sed -Ene 's/.*"(.*)".*/\1/p'
+  grep 'version\s*=' "$spotify_nix" \
+  | sed -Ene 's/.*"(.*)".*/\1/p'
 )
 
 echo "Current nix version: $current_nix_version"
@@ -61,36 +61,28 @@ echo "Current nix version: $current_nix_version"
 #
 
 if [[ "$current_nix_version" = "$upstream_version" ]]; then
-	echo "Spotify is already up ot date"
-	exit 0
+  echo "Spotify is already up-to-date"
+  exit 0
 fi
 
 echo "Updating from ${current_nix_version} to ${upstream_version}, released on ${last_updated}"
 
 # search-and-replace revision, hash and version
 sed --regexp-extended \
-	-e 's/rev\s*=\s*"[0-9]+"\s*;/rev = "'"${revision}"'";/' \
-	-e 's/sha512\s*=\s*"[^"]*"\s*;/sha512 = "'"${sha512}"'";/' \
-	-e 's/version\s*=\s*".*"\s*;/version = "'"${upstream_version}"'";/' \
-	-i "$spotify_nix" 
+  -e 's/rev\s*=\s*"[0-9]+"\s*;/rev = "'"${revision}"'";/' \
+  -e 's/sha512\s*=\s*"[^"]*"\s*;/sha512 = "'"${sha512}"'";/' \
+  -e 's/version\s*=\s*".*"\s*;/version = "'"${upstream_version}"'";/' \
+  -i "$spotify_nix"
 
 #
 # try to build the updated version
 #
 
 if ! nix-build -A spotify "$nixpkgs"; then
-	echo "The updated spotify failed to build."
-	exit 1
+  echo "The updated spotify failed to build."
+  exit 1
 fi
 
-#
-# give instructions for upstreaming
-#
-
+# Commit changes
 git add "$spotify_nix"
-# show changes for review
-git status
-echo 'Please review and test the changes (./result/bin/spotify).'
-echo 'Then stage the changes with `git add` and commit with:'
-# prepare commit message
-echo "git commit -m 'spotify: $current_nix_version -> $upstream_version'"
+git commit -m "spotify: ${current_nix_version} -> ${upstream_version}"
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index ebce09d52ce..e5e5e179b89 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -18,9 +18,9 @@ let
     sha256Hash = "1v4apc73jdhavhzj8j46mzh15rw08w1hd9y9ykarj3b5q7i2vyq1";
   };
   latestVersion = { # canary & dev
-    version = "3.5.0.8"; # "Android Studio 3.5 Canary 9"
-    build = "191.5409101";
-    sha256Hash = "06fc5l40nxm0hyn8c34wsckxxyh1i2q5a53zd4nbhwxi8wsrda7i";
+    version = "3.5.0.9"; # "Android Studio 3.5 Canary 10"
+    build = "191.5416148";
+    sha256Hash = "03d2x6bqasw417dxc7b8y65rral73xm2ci512gprmsvwy42k3mqi";
   };
 in rec {
   # Old alias (TODO @primeos: Remove after 19.03 is branched off):
diff --git a/pkgs/applications/editors/vscode/default.nix b/pkgs/applications/editors/vscode/default.nix
index 07333a4b803..ace5bd968ce 100644
--- a/pkgs/applications/editors/vscode/default.nix
+++ b/pkgs/applications/editors/vscode/default.nix
@@ -18,16 +18,16 @@ let
   }.${system};
 
   sha256 = {
-    "i686-linux" = "1qll0hyqyn3vb0v35h9y8rk4l3r6zzc5bkra6pb23bnr4bna4y80";
-    "x86_64-linux" = "1sfvv4g7kmvabqxasil41gasr7hsmgf8wwc4dl1940pb7x19fllq";
-    "x86_64-darwin" = "0gjdppr59pyb2wawvf7yyk7357a5naxga74zf9gc7d9s1fz78hls";
+    "i686-linux" = "0yfnsmixw3kh7lhb8npqhyihy146a31c1k90smn4kqvmlvm06jir";
+    "x86_64-linux" = "002bbwj4hxr58lbhjc05s3l9aw37ak06kp98hs8fpmznjsa5x14y";
+    "x86_64-darwin" = "1f9hkydlyjh2z5d99pwpsqg9yf05pgi5y0mbprgbxacayqcrq2nr";
   }.${system};
 
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 in
   stdenv.mkDerivation rec {
     name = "vscode-${version}";
-    version = "1.32.3";
+    version = "1.33.0";
 
     src = fetchurl {
       name = "VSCode_${version}_${plat}.${archive_fmt}";
diff --git a/pkgs/applications/graphics/avocode/default.nix b/pkgs/applications/graphics/avocode/default.nix
index 2c7833acb5f..83070e04b16 100644
--- a/pkgs/applications/graphics/avocode/default.nix
+++ b/pkgs/applications/graphics/avocode/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "avocode-${version}";
-  version = "3.6.12";
+  version = "3.7.0";
 
   src = fetchurl {
     url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
-    sha256 = "1qsxwqnkqfp4b9sgmhlv6wjl4mirhnx4bjj2vaq8iyz94pz637c8";
+    sha256 = "165g63w605fnirwrgqsldmq2gpb1v65dmfx6niy5and7h9j260gp";
   };
 
   libPath = stdenv.lib.makeLibraryPath (with xorg; [
diff --git a/pkgs/applications/graphics/goxel/default.nix b/pkgs/applications/graphics/goxel/default.nix
index 71ee715b535..371abafbe72 100644
--- a/pkgs/applications/graphics/goxel/default.nix
+++ b/pkgs/applications/graphics/goxel/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "goxel-${version}";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "guillaumechereau";
     repo = "goxel";
     rev = "v${version}";
-    sha256 = "14rycn6sd3wp90c9ghpif1al3rv1fdgvhmpldmwap0pk790kfxs1";
+    sha256 = "03hyy0i65zdplggaxlndgyvffvnb9g5kvxq2qbicirvz5zcsghk2";
   };
 
   patches = [ ./disable-imgui_ini.patch ];
diff --git a/pkgs/applications/graphics/wings/default.nix b/pkgs/applications/graphics/wings/default.nix
index 891f3586fa5..0a4e9ada078 100644
--- a/pkgs/applications/graphics/wings/default.nix
+++ b/pkgs/applications/graphics/wings/default.nix
@@ -1,10 +1,10 @@
 { fetchurl, stdenv, erlang, cl, libGL, libGLU, runtimeShell }:
 
 stdenv.mkDerivation rec {
-  name = "wings-2.2.1";
+  name = "wings-2.2.3";
   src = fetchurl {
     url = "mirror://sourceforge/wings/${name}.tar.bz2";
-    sha256 = "1adlq3wd9bz0hjznpzsgilxgsbhr0kk01f06872mq37v4cbw76bh";
+    sha256 = "1b9xdmh0186xxs92i831vm9yq0il1hngi8bl9a1q7fs26wb8js1g";
   };
 
   ERL_LIBS = "${cl}/lib/erlang/lib";
diff --git a/pkgs/applications/misc/cura/default.nix b/pkgs/applications/misc/cura/default.nix
index f7907746d10..d570a2570d1 100644
--- a/pkgs/applications/misc/cura/default.nix
+++ b/pkgs/applications/misc/cura/default.nix
@@ -1,14 +1,14 @@
-{ mkDerivation, lib, fetchFromGitHub, cmake, python3, qtbase, qtquickcontrols2, curaengine }:
+{ mkDerivation, lib, fetchFromGitHub, cmake, python3, qtbase, qtquickcontrols2, qtgraphicaleffects, curaengine }:
 
 mkDerivation rec {
   name = "cura-${version}";
-  version = "3.6.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "Cura";
     rev = version;
-    sha256 = "0wzkbqdd1670smw1vnq634rkpcjwnhwcvimhvjq904gy2fylgr90";
+    sha256 = "18pxlmrw8m2mir177f0j9bma7rk29vam91gd86c0d458nw21q2qf";
   };
 
   materials = fetchFromGitHub {
@@ -18,7 +18,7 @@ mkDerivation rec {
     sha256 = "0g2dkph0ll7d9109n17vmfwb4fpc8lhyb1z1q68j8vblyvg08d12";
   };
 
-  buildInputs = [ qtbase qtquickcontrols2 ];
+  buildInputs = [ qtbase qtquickcontrols2 qtgraphicaleffects ];
   propagatedBuildInputs = with python3.pkgs; [
     libsavitar numpy-stl pyserial requests uranium zeroconf
   ];
@@ -27,6 +27,12 @@ mkDerivation rec {
   cmakeFlags = [
     "-DURANIUM_DIR=${python3.pkgs.uranium.src}"
     "-DCURA_VERSION=${version}"
+
+    # see https://github.com/Ultimaker/Cura/issues/5142
+    "-DCURA_SDK_VERSION=6.0.0"
+
+    # remove after 4.0.0, see https://github.com/void-linux/void-packages/pull/9880#issuecomment-475453025
+    "-DCURA_CLOUD_API_VERSION=1"
   ];
 
   postPatch = ''
diff --git a/pkgs/applications/misc/curaengine/default.nix b/pkgs/applications/misc/curaengine/default.nix
index ac0f9d542dd..9188e461e51 100644
--- a/pkgs/applications/misc/curaengine/default.nix
+++ b/pkgs/applications/misc/curaengine/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "curaengine-${version}";
-  version = "3.6.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "CuraEngine";
     rev = version;
-    sha256 = "1iwmblvs3qw57698i8bbazyxha18bj9irnkcscdb0596g8q93fcm";
+    sha256 = "0p4zcckrlrpyp5xdqgvp0phmawyh4cy8vipim9fvgsfcin4vhrv7";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/gramps/default.nix b/pkgs/applications/misc/gramps/default.nix
index db18ff73412..e9026ded470 100644
--- a/pkgs/applications/misc/gramps/default.nix
+++ b/pkgs/applications/misc/gramps/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, gtk3, pythonPackages, intltool, gnome3,
-  pango, gobject-introspection, wrapGAppsHook,
+  pango, gobject-introspection, wrapGAppsHook, gettext,
 # Optional packages:
  enableOSM ? true, osm-gps-map,
  enableGraphviz ? true, graphviz,
@@ -12,7 +12,7 @@ in buildPythonApplication rec {
   version = "5.0.1";
   name = "gramps-${version}";
 
-  nativeBuildInputs = [ wrapGAppsHook ];
+  nativeBuildInputs = [ wrapGAppsHook gettext ];
   buildInputs = [ intltool gtk3 gobject-introspection pango gnome3.gexiv2 ] 
     # Map support
     ++ stdenv.lib.optional enableOSM osm-gps-map
diff --git a/pkgs/applications/misc/qlcplus/default.nix b/pkgs/applications/misc/qlcplus/default.nix
index d995bfcc0f3..df5f35102e0 100644
--- a/pkgs/applications/misc/qlcplus/default.nix
+++ b/pkgs/applications/misc/qlcplus/default.nix
@@ -29,6 +29,12 @@ mkDerivation rec {
       variables.pri
   '';
 
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    ln -sf $out/lib/*/libqlcplus* $out/lib
+  '';
+
   meta = with stdenv.lib; {
     description = "A free and cross-platform software to control DMX or analog lighting systems like moving heads, dimmers, scanners etc.";
     maintainers = [ maintainers.globin ];
diff --git a/pkgs/applications/misc/workrave/default.nix b/pkgs/applications/misc/workrave/default.nix
index 7e54f943856..1547d296211 100644
--- a/pkgs/applications/misc/workrave/default.nix
+++ b/pkgs/applications/misc/workrave/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   name = "workrave-${version}";
-  version = "1.10.23";
+  version = "1.10.31";
 
   src = let
   in fetchFromGitHub {
-    sha256 = "1qhlwfhwk5agv4904d6bsf83k9k89q7bms6agg967vsca4905vcw";
+    sha256 = "0v2mx2idaxlsyv5w66b7pknlill9j9i2gqcs3vq54gak7ix9fj1p";
     rev = with stdenv.lib;
       "v" + concatStringsSep "_" (splitString "." version);
     repo = "workrave";
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index b4da79a4983..de83e0e0646 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -1,18 +1,18 @@
 # This file is autogenerated from update.sh in the same directory.
 {
   beta = {
-    sha256 = "18xzddqi8rgng5vksx23jaiv103prxc38pshwp702nfjfqap7fwy";
-    sha256bin64 = "1r9nnc1xn319aqzxjh10n6nh714lghgskgdkpvw3hnvgb0v9jw4v";
-    version = "73.0.3683.86";
+    sha256 = "1lpgkf292f6v6v19zjp1si6vvizixk9192yjx76pq1d790678qrb";
+    sha256bin64 = "028c3gjh5zbxr53wkk3s5jvgwc2fz9cnvnyr58q4la91vyrbjslm";
+    version = "74.0.3729.61";
   };
   dev = {
-    sha256 = "0vdiaraw3jjr7ykdqbrhjzppvqs9d7jkkx1qyi50dyvrhipxdihz";
-    sha256bin64 = "0c5mnb1zz1mjs7h18f1c15ygqxl1kcpm2s1imyprh80mapmsxdxk";
-    version = "74.0.3729.22";
+    sha256 = "15197r2gbx4h7dsasvgz0vcl7mqmj0glc4sip99dw145drwdpmsq";
+    sha256bin64 = "1qf089l5k7l69msrn49z5lkg932n1rgnzgr9yg5ja89arcgynacv";
+    version = "75.0.3753.4";
   };
   stable = {
-    sha256 = "18xzddqi8rgng5vksx23jaiv103prxc38pshwp702nfjfqap7fwy";
-    sha256bin64 = "1mmm4lxvcfvdj6jpqaas51lx1c9zky4zp374phs3cmh9v8l2ijkb";
-    version = "73.0.3683.86";
+    sha256 = "1bskjr7yiwvdab1b5mp36y6964xqpgks6dqazm4qifwqvqcw80pb";
+    sha256bin64 = "00ndrqhmnk567sw6xj22m84126qvivq0jzfx0v46ya3kq6ln22gr";
+    version = "73.0.3683.103";
   };
 }
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
index 9537f1365bd..e055e313487 100644
--- a/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -13,11 +13,11 @@
 stdenv.mkDerivation rec {
   name = "${product}-${version}";
   product = "vivaldi";
-  version = "2.3.1440.60-1";
+  version = "2.4.1488.36-1";
 
   src = fetchurl {
     url = "https://downloads.vivaldi.com/stable/${product}-stable_${version}_amd64.deb";
-    sha256 = "1vw4lyqs87cw7v1jy3dcsgnb56s61zl21q95a3kiavqw7412sips";
+    sha256 = "1m78kk1g3h6jsn3kk37ywx6w4x72690jwx4mgh1pzy37vfxwdqfh";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/networking/browsers/vivaldi/update.sh b/pkgs/applications/networking/browsers/vivaldi/update.sh
index 0b178717639..0156bdf9dbe 100755
--- a/pkgs/applications/networking/browsers/vivaldi/update.sh
+++ b/pkgs/applications/networking/browsers/vivaldi/update.sh
@@ -8,15 +8,15 @@ root=../../../../..
 export NIXPKGS_ALLOW_UNFREE=1
 
 version() {
-	(cd "$root" && nix-instantiate --eval --strict -A "$1.version" | tr -d '"')
+  (cd "$root" && nix-instantiate --eval --strict -A "$1.version" | tr -d '"')
 }
 
 vivaldi_version_old=$(version vivaldi)
 vivaldi_version=$(curl -sS https://vivaldi.com/download/ | sed -rne 's/.*vivaldi-stable_([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+-[0-9]+)_amd64\.deb.*/\1/p')
 
 if [[ "$vivaldi_version" = "$vivaldi_version_old" ]]; then
-	echo "nothing to do, vivaldi $vivaldi_version is current"
-	exit
+  echo "nothing to do, vivaldi $vivaldi_version is current"
+  exit
 fi
 
 # Download vivaldi and save hash and file path.
@@ -34,6 +34,6 @@ chromium_version_old=$(version vivaldi-ffmpeg-codecs)
 chromium_version=$(bsdtar xOf "$path" data.tar.xz | bsdtar xOf - ./opt/vivaldi/vivaldi-bin | strings | grep '^[0-9]\{2,\}\.[0-9]\+\.[0-9]\{4,\}\+\.[0-9]\+$')
 
 if [[ "$chromium_version" != "$chromium_version_old" ]]; then
-	echo "vivaldi-ffmpeg-codecs: $chromium_version_old -> $chromium_version"
-	(cd "$root" && update-source-version vivaldi-ffmpeg-codecs "$chromium_version")
+  echo "vivaldi-ffmpeg-codecs: $chromium_version_old -> $chromium_version"
+  (cd "$root" && update-source-version vivaldi-ffmpeg-codecs "$chromium_version")
 fi
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/update.sh b/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
index 21039d53da4..e0632042493 100755
--- a/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
@@ -3,5 +3,15 @@
 
 set -eu -o pipefail
 
+oldVersion=$(nix-instantiate --eval -E "with import ./. {}; zoom-us.version or (builtins.parseDrvName zoom-us.name).version" | tr -d '"')
 version="$(curl -sI https://zoom.us/client/latest/zoom_x86_64.tar.xz | grep -Fi 'Location:' | pcregrep -o1 '/(([0-9]\.?)+)/')"
-update-source-version zoom-us "$version"
+
+if [ ! "${oldVersion}" = "${version}" ]; then
+  update-source-version zoom-us "$version"
+  nixpkgs="$(git rev-parse --show-toplevel)"
+  default_nix="$nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix"
+  git add "${default_nix}"
+  git commit -m "zoom-us: ${oldVersion} -> ${version}"
+else
+  echo "zoom-us is already up-to-date"
+fi
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index 7c72c03edca..c65315ad5bd 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qownnotes";
-  version = "19.3.4";
+  version = "19.4.1";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
     # Can grab official version like so:
     # $ curl https://download.tuxfamily.org/qownnotes/src/qownnotes-19.1.8.tar.xz.sha256
-    sha256 = "4e2d25acf596ed3a759b298e39f6f8bea001c0625e143616bf97560913d7f86f";
+    sha256 = "c0232dda44591033c2ed29ce0a52ba3539b2f2180d1862a18dd4f677063896cb";
   };
 
   nativeBuildInputs = [ qmake qttools ];
diff --git a/pkgs/applications/office/zim/default.nix b/pkgs/applications/office/zim/default.nix
index 48027c194da..81c254763d3 100644
--- a/pkgs/applications/office/zim/default.nix
+++ b/pkgs/applications/office/zim/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, python2Packages }:
+{ stdenv, fetchurl, python3Packages, gtk3, gobject-introspection, wrapGAppsHook }:
 
 #
 # TODO: Declare configuration options for the following optional dependencies:
@@ -7,22 +7,17 @@
 #  -  pyxdg: Need to make it work first (see setupPyInstallFlags).
 #
 
-python2Packages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   name = "zim-${version}";
-  version = "0.69.1";
+  version = "0.70";
 
   src = fetchurl {
     url = "http://zim-wiki.org/downloads/${name}.tar.gz";
-    sha256 = "1yzb8x4mjp96zshcw7xbd4mvqn8zmbcm7cndskpxyk5yccyn5awq";
+    sha256 = "1g1xj86iph1a2k4n9yykq0gipbd5jdd7fsh9qpv4v2h5lggadjdd";
   };
 
-  propagatedBuildInputs = with python2Packages; [ pyGtkGlade pyxdg pygobject2 ];
-
-  preBuild = ''
-    export HOME=$TMP
-
-    sed -i '/zim_install_class,/d' setup.py
-  '';
+  buildInputs = [ gtk3 gobject-introspection wrapGAppsHook ];
+  propagatedBuildInputs = with python3Packages; [ pyxdg pygobject3 ];
 
 
   preFixup = ''
diff --git a/pkgs/applications/science/biology/migrate/default.nix b/pkgs/applications/science/biology/migrate/default.nix
new file mode 100644
index 00000000000..d80e6e7b30d
--- /dev/null
+++ b/pkgs/applications/science/biology/migrate/default.nix
@@ -0,0 +1,24 @@
+{ gccStdenv, fetchurl, zlib, openmpi }:
+
+gccStdenv.mkDerivation rec {
+  version = "3.7.2";
+  pname = "migrate";
+
+  src = fetchurl {
+    url = "https://peterbeerli.com/migrate-html5/download_version3/${pname}-${version}.src.tar.gz";
+    sha256 = "1p2364ffjc56i82snzvjpy6pkf6wvqwvlvlqxliscx2c303fxs8v";
+  };
+
+  buildInputs = [ zlib openmpi ];
+  setSourceRoot = ''sourceRoot=$(echo */src)'';
+  buildFlags = [ "thread" "mpis" ];
+  preInstall = "mkdir -p $out/man/man1";
+
+  meta = with gccStdenv.lib; {
+    description = "Estimates population size, migration, population splitting parameters using genetic/genomic data";
+    homepage = https://peterbeerli.com/migrate-html5/index.html;
+    license = licenses.mit;
+    maintainers = [ maintainers.bzizou ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/science/logic/hol_light/default.nix b/pkgs/applications/science/logic/hol_light/default.nix
index 099e2102c51..40b0115dc1b 100644
--- a/pkgs/applications/science/logic/hol_light/default.nix
+++ b/pkgs/applications/science/logic/hol_light/default.nix
@@ -21,13 +21,13 @@ let
 in
 
 stdenv.mkDerivation {
-  name     = "hol_light-2018-09-30";
+  name     = "hol_light-2019-03-27";
 
   src = fetchFromGitHub {
     owner  = "jrh13";
     repo   = "hol-light";
-    rev    = "27e09dd27834de46e917057710e9d8ded51a4c9f";
-    sha256 = "1p0rm08wnc2lsrh3xzhlq3zdhzqcv1lbqnkwx3aybrqhbg1ixc1d";
+    rev    = "a2b487b38d9da47350f1b4316e34a8fa4cf7a40a";
+    sha256 = "1qlidl15qi8w4si8wxcmj8yg2srsb0q4k1ad9yd91sgx9h9aq8fk";
   };
 
   buildInputs = [ ocaml camlp5 ];
diff --git a/pkgs/applications/science/math/nauty/default.nix b/pkgs/applications/science/math/nauty/default.nix
index 5b431f41926..7351de53cfc 100644
--- a/pkgs/applications/science/math/nauty/default.nix
+++ b/pkgs/applications/science/math/nauty/default.nix
@@ -1,4 +1,8 @@
-{stdenv, fetchurl}:
+{ stdenv
+, lib
+, fetchurl
+, optimize ? false # impure
+}:
 stdenv.mkDerivation rec {
   name = "nauty-${version}";
   version = "26r11";
@@ -7,6 +11,13 @@ stdenv.mkDerivation rec {
     sha256 = "05z6mk7c31j70md83396cdjmvzzip1hqb88pfszzc6k4gy8h3m2y";
   };
   outputs = [ "out" "dev" ];
+  configureFlags = lib.optionals (!optimize) [
+    # Prevent nauty from sniffing some cpu features. While those are very
+    # widely available, it can lead to nasty bugs when they are not available:
+    # https://groups.google.com/forum/#!topic/sage-packaging/Pe4SRDNYlhA
+    "--disable-popcnt"
+    "--disable-clz"
+  ];
   buildInputs = [];
   installPhase = ''
     mkdir -p "$out"/{bin,share/doc/nauty} "$dev"/{lib,include/nauty}
@@ -14,18 +25,18 @@ stdenv.mkDerivation rec {
     find . -type f -perm -111 \! -name '*.*' \! -name configure -exec cp '{}' "$out/bin" \;
     cp [Rr][Ee][Aa][Dd]* COPYRIGHT This* [Cc]hange* "$out/share/doc/nauty"
 
-    cp *.h $dev/include/nauty
+    cp *.h "$dev/include/nauty"
     for i in *.a; do
       cp "$i" "$dev/lib/lib$i";
     done
   '';
   checkTarget = "checks";
-  meta = {
+  meta = with lib; {
     inherit version;
     description = ''Programs for computing automorphism groups of graphs and digraphs'';
-    license = stdenv.lib.licenses.asl20;
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ raskin timokau ];
+    platforms = platforms.linux;
     homepage = http://pallini.di.uniroma1.it/;
   };
 }
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index 75cd308da40..bc17147c16a 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -144,6 +144,13 @@ stdenv.mkDerivation rec {
       url = "https://git.sagemath.org/sage.git/patch/?id=f570e3a7fc2965764b84c04ce301a88ded2c42df";
       sha256 = "0l5c4giixkn15v2a06sfzq5mkxila6l67zkjbacirwprrlpcnmmp";
     })
+
+    # https://trac.sagemath.org/ticket/27420
+    (fetchpatch {
+      name = "cypari-2.1.patch";
+      url = "https://git.sagemath.org/sage.git/patch/?id=e351bf2f2914e683d5e2028597c45ae8d1b7f855";
+      sha256 = "00faa7fl0vaqcqbw0bidkhl78qa8l34d3a07zirbcl0vm74bdn1p";
+    })
   ];
 
   patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
diff --git a/pkgs/applications/version-management/git-and-tools/subgit/default.nix b/pkgs/applications/version-management/git-and-tools/subgit/default.nix
index 7b36a142d15..a129e0f7527 100644
--- a/pkgs/applications/version-management/git-and-tools/subgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/subgit/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, unzip, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  name = "subgit-3.2.4";
+  name = "subgit-3.3.6";
 
   meta = {
     description = "A tool for a smooth, stress-free SVN to Git migration";
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://subgit.com/download/${name}.zip";
-    sha256 = "13r6hi2zk46bs3j17anfc85kszlwliv2yc16qx834b3v4w68hajw";
+    sha256 = "1zfhl583lx7xdw9jwskv25p6m385wm3s5a311y0hnxxqwkjbgq1j";
   };
 }
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index 1208a42e332..8b807d11e34 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -12,11 +12,11 @@ let
 in
 stdenv.mkDerivation rec {
   name = "gitkraken-${version}";
-  version = "5.0.1";
+  version = "5.0.4";
 
   src = fetchurl {
     url = "https://release.axocdn.com/linux/GitKraken-v${version}.deb";
-    sha256 = "14n0xqp6y7ij26r5k7h0phf29krbpx54yzfbvrax5sd9cwg2762g";
+    sha256 = "1fq0w8djkcx5jr2pw6izlq5rkwbq3r3f15xr3dmmbz6gjvi3nra0";
   };
 
   libPath = makeLibraryPath [
diff --git a/pkgs/applications/video/xawtv/default.nix b/pkgs/applications/video/xawtv/default.nix
index f6f8016ec1d..db9a5ce7850 100644
--- a/pkgs/applications/video/xawtv/default.nix
+++ b/pkgs/applications/video/xawtv/default.nix
@@ -2,10 +2,10 @@
 , libFS, libXaw, libXpm, libXext, libSM, libICE, perl, linux}:
 
 stdenv.mkDerivation rec {
-  name = "xawtv-3.105";
+  name = "xawtv-3.106";
   src = fetchurl {
     url = "https://linuxtv.org/downloads/xawtv/${name}.tar.bz2";
-    sha256 = "03v4k0dychjz1kj890d9pc7v8jh084m01g71x1clmmvc6vc9kn1b";
+    sha256 = "174wd36rk0k23mgx9nlnpc398yd1f0wiv060963axg6sz0v4rksp";
   };
 
   preConfigure = ''
diff --git a/pkgs/applications/virtualization/open-vm-tools/default.nix b/pkgs/applications/virtualization/open-vm-tools/default.nix
index 0668400d28c..200542f4de8 100644
--- a/pkgs/applications/virtualization/open-vm-tools/default.nix
+++ b/pkgs/applications/virtualization/open-vm-tools/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   name = "open-vm-tools-${version}";
-  version = "10.3.5";
+  version = "10.3.10";
 
   src = fetchFromGitHub {
     owner  = "vmware";
     repo   = "open-vm-tools";
     rev    = "stable-${version}";
-    sha256 = "10x24gkqcg9lnfxghq92nr76h40s5v3xrv0ymi9c7aqrqry404z7";
+    sha256 = "0x2cyccnb4sycrw7r5mzby2d196f9jiph8vyqi0x8v8r2b4vi4yj";
   };
 
   sourceRoot = "${src.name}/open-vm-tools";
diff --git a/pkgs/applications/virtualization/podman/conmon.nix b/pkgs/applications/virtualization/podman/conmon.nix
index 6089aa7f69c..7ddfc2ebab0 100644
--- a/pkgs/applications/virtualization/podman/conmon.nix
+++ b/pkgs/applications/virtualization/podman/conmon.nix
@@ -4,13 +4,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   name = "conmon-${version}";
-  version = "unstable-2019-02-15";
-  rev = "cc2b49590a485da9bd358440f92f219dfd6b230f";
+  version = "unstable-2019-03-19";
+  rev = "84c860029893e2e2dd71d62231f009c9dcd3c0b4";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "conmon";
-    sha256 = "13f5as4a9y6nkmr7cg0n27c2hfx9pkr75fxq2m0hlpcwhaardbm7";
+    sha256 = "1ydidl3s7s5rfwk9gx0k80nxcixlilxw61g7x0vqsdy3mkylysv5";
     inherit rev;
   };
 
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index e50803db4e3..6321be0f070 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -5,13 +5,13 @@
 
 buildGoPackage rec {
   name = "podman-${version}";
-  version = "1.1.2";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "libpod";
     rev = "v${version}";
-    sha256 = "180sv1a7k3866ilb0mxbhiysms9xy4v6xbpy4in6ch8m8qym9amh";
+    sha256 = "1nlll4q62w3i897wraj18pdi5cc91b8gmp360pzyqzzjdm9ag7v6";
   };
 
   goPackagePath = "github.com/containers/libpod";
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index 344f1abc8b2..11945e7b6f7 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -289,7 +289,7 @@ rec {
   }:
     let
       storePathToLayer = substituteAll
-      { inherit (stdenv) shell;
+      { shell = runtimeShell;
         isExecutable = true;
         src = ./store-path-to-layer.sh;
       };
diff --git a/pkgs/build-support/docker/nix-prefetch-docker b/pkgs/build-support/docker/nix-prefetch-docker
new file mode 100755
index 00000000000..839dc87487a
--- /dev/null
+++ b/pkgs/build-support/docker/nix-prefetch-docker
@@ -0,0 +1,173 @@
+#! /usr/bin/env bash
+
+set -e -o pipefail
+
+os=
+arch=
+imageName=
+imageTag=
+imageDigest=
+finalImageName=
+finalImageTag=
+hashType=$NIX_HASH_ALGO
+hashFormat=$hashFormat
+format=nix
+
+usage(){
+    echo  >&2 "syntax: nix-prefetch-docker [options] [IMAGE_NAME [IMAGE_TAG|IMAGE_DIGEST]]
+
+Options:
+      --os os                   OS to fetch image for
+      --arch linux              Arch to fetch image for
+      --image-name name         Name of the image to fetch
+      --image-tag tag           Image tag
+      --image-digest digest     Image digest
+      --final-image-name name   Desired name of the image
+      --final-image-tag tag     Desired image tag
+      --json                    Output result in json format instead of nix
+      --quiet                   Only print the final result
+"
+    exit 1
+}
+
+get_image_digest(){
+    local imageName=$1
+    local imageTag=$2
+
+    if test -z "$imageTag"; then
+        imageTag="latest"
+    fi
+
+    skopeo inspect "docker://$imageName:$imageTag" | jq '.Digest' -r
+}
+
+get_name() {
+    local imageName=$1
+    local imageTag=$2
+
+    echo "docker-image-$(echo "$imageName:$imageTag" | tr '/:' '-').tar"
+}
+
+argi=0
+argfun=""
+for arg; do
+    if test -z "$argfun"; then
+        case $arg in
+            --os) argfun=set_os;;
+            --arch) argfun=set_arch;;
+            --image-name) argfun=set_imageName;;
+            --image-tag) argfun=set_imageTag;;
+            --image-digest) argfun=set_imageDigest;;
+            --final-image-name) argfun=set_finalImageName;;
+            --final-image-tag) argfun=set_finalImageTag;;
+            --quiet) QUIET=true;;
+            --json) format=json;;
+            --help) usage; exit;;
+            *)
+                : $((++argi))
+                case $argi in
+                    1) imageName=$arg;;
+                    2) [[ $arg == *"sha256"*  ]] && imageDigest=$arg || imageTag=$arg;;
+                    *) exit 1;;
+                esac
+                ;;
+        esac
+    else
+        case $argfun in
+            set_*)
+                var=${argfun#set_}
+                eval $var=$arg
+                ;;
+        esac
+        argfun=""
+    fi
+done
+
+if test -z "$imageName"; then
+    usage
+fi
+
+if test -z "$os"; then
+    os=linux
+fi
+
+if test -z "$arch"; then
+    arch=amd64
+fi
+
+if test -z "$hashType"; then
+    hashType=sha256
+fi
+
+if test -z "$hashFormat"; then
+    hashFormat=base32
+fi
+
+if test -z "$finalImageName"; then
+    finalImageName="$imageName"
+fi
+
+if test -z "$finalImageTag"; then
+    if test -z "$imageTag"; then
+        finalImageTag="latest"
+    else
+        finalImageTag="$imageTag"
+    fi
+fi
+
+if test -z "$imageDigest"; then
+    imageDigest=$(get_image_digest $imageName $imageTag)
+fi
+
+sourceUrl="docker://$imageName@$imageDigest"
+
+tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/skopeo-copy-tmp-XXXXXXXX")"
+trap "rm -rf \"$tmpPath\"" EXIT
+
+tmpFile="$tmpPath/$(get_name $finalImageName $finalImageTag)"
+
+if test -z "$QUIET"; then
+    skopeo --override-os ${os} --override-arch ${arch} copy "$sourceUrl" "docker-archive://$tmpFile:$finalImageName:$finalImageTag"
+else
+    skopeo --override-os ${os} --override-arch ${arch} copy "$sourceUrl" "docker-archive://$tmpFile:$finalImageName:$finalImageTag" > /dev/null
+fi
+
+# Compute the hash.
+imageHash=$(nix-hash --flat --type $hashType --base32 "$tmpFile")
+
+# Add the downloaded file to Nix store.
+finalPath=$(nix-store --add-fixed "$hashType" "$tmpFile")
+
+if test -z "$QUIET"; then
+    echo "-> ImageName: $imageName"
+    echo "-> ImageDigest: $imageDigest"
+    echo "-> FinalImageName: $finalImageName"
+    echo "-> FinalImageTag: $finalImageTag"
+    echo "-> ImagePath: $finalPath"
+    echo "-> ImageHash: $imageHash"
+fi
+
+if [ "$format" == "nix" ]; then
+cat <<EOF
+{
+  imageName = "$imageName";
+  imageDigest = "$imageDigest";
+  sha256 = "$imageHash";
+  finalImageName = "$finalImageName";
+  finalImageTag = "$finalImageTag";
+}
+EOF
+
+else
+
+cat <<EOF
+{
+  "imageName": "$imageName",
+  "imageDigest": "$imageDigest",
+  "sha256": "$imageHash",
+  "finalImageName": "$finalImageName",
+  "finalImageTag": "$finalImageTag"
+}
+EOF
+
+fi
diff --git a/pkgs/build-support/docker/nix-prefetch-docker.nix b/pkgs/build-support/docker/nix-prefetch-docker.nix
new file mode 100644
index 00000000000..03a936e08e0
--- /dev/null
+++ b/pkgs/build-support/docker/nix-prefetch-docker.nix
@@ -0,0 +1,26 @@
+{ stdenv, makeWrapper, nix, skopeo }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation {
+  name = "nix-prefetch-docker";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  unpackPhase = ":";
+
+  installPhase = ''
+    install -vD ${./nix-prefetch-docker} $out/bin/$name;
+    wrapProgram $out/bin/$name \
+      --prefix PATH : ${makeBinPath [ nix skopeo ]} \
+      --set HOME /homeless-shelter
+  '';
+
+  preferLocalBuild = true;
+
+  meta = {
+    description = "Script used to obtain source hashes for dockerTools.pullImage";
+    maintainers = with maintainers; [ offline ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/build-support/docker/store-path-to-layer.sh b/pkgs/build-support/docker/store-path-to-layer.sh
index 4cf338b9b25..ab956c81904 100755
--- a/pkgs/build-support/docker/store-path-to-layer.sh
+++ b/pkgs/build-support/docker/store-path-to-layer.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#! @shell@
 
 set -eu
 
diff --git a/pkgs/common-updater/scripts/update-source-version b/pkgs/common-updater/scripts/update-source-version
index a66ffb750f6..75433fe4c59 100755
--- a/pkgs/common-updater/scripts/update-source-version
+++ b/pkgs/common-updater/scripts/update-source-version
@@ -29,6 +29,9 @@ for arg in "$@"; do
                 die "Could not find provided file $nixFile"
             fi
         ;;
+        --ignore-same-hash)
+            ignoreSameHash="true"
+        ;;
         --help)
             usage
             exit 0
@@ -86,11 +89,15 @@ fi
 oldUrl=$(nix-instantiate $systemArg --eval -E "with import ./. {}; builtins.elemAt $attr.src.drvAttrs.urls 0" | tr -d '"')
 
 if [ -z "$oldUrl" ]; then
-    die "Couldn't evaluate source url from '$attr.name'!"
+    oldUrl=$(nix-instantiate $systemArg --eval -E "with import ./. {}; $attr.src.url" | tr -d '"')
+
+    if [ -z "$oldUrl" ]; then
+      die "Couldn't evaluate source url from '$attr.src'!"
+    fi
 fi
 
 drvName=$(nix-instantiate $systemArg --eval -E "with import ./. {}; (builtins.parseDrvName $attr.name).name" | tr -d '"')
-oldVersion=$(nix-instantiate $systemArg --eval -E "with import ./. {}; $attr.version or (builtins.parseDrvName $attr.name).version" | tr -d '"')
+oldVersion=$(nix-instantiate $systemArg --eval -E "with import ./. {}; $attr.${versionKey} or (builtins.parseDrvName $attr.name).${versionKey}" | tr -d '"')
 
 if [ -z "$drvName" -o -z "$oldVersion" ]; then
     die "Couldn't evaluate name and version from '$attr.name'!"
@@ -154,7 +161,7 @@ if [ -z "$newHash" ]; then
     die "Couldn't figure out new hash of '$attr.src'!"
 fi
 
-if [ "$oldVersion" != "$newVersion" ] && [ "$oldHash" = "$newHash" ]; then
+if [ -z "${ignoreSameHash}"] && [ "$oldVersion" != "$newVersion" ] && [ "$oldHash" = "$newHash" ]; then
     mv "$nixFile.bak" "$nixFile"
     die "Both the old and new source hashes of '$attr.src' were equivalent. Please fix the package's source URL to be dependent on '\${version}'!"
 fi
diff --git a/pkgs/data/fonts/inter-ui/default.nix b/pkgs/data/fonts/inter-ui/default.nix
index c7bcebcf5b2..15032ebb3e3 100644
--- a/pkgs/data/fonts/inter-ui/default.nix
+++ b/pkgs/data/fonts/inter-ui/default.nix
@@ -1,18 +1,22 @@
 { stdenv, fetchzip }:
 
+# XXX: IMPORTANT:
+# For compat, keep this at the last version that used the name "Inter UI"
+# For newer versions, which are now simply named "Inter",
+# see the expression for `inter` (../inter/default.nix).
 let
-  version = "3.4";
+  version = "3.2";
 in fetchzip {
-  name = "inter-${version}";
+  name = "inter-ui-${version}";
 
-  url = "https://github.com/rsms/inter/releases/download/v${version}/Inter-${version}.zip";
+  url = "https://github.com/rsms/inter/releases/download/v${version}/Inter-UI-${version}.zip";
 
   postFetch = ''
     mkdir -p $out/share/fonts/opentype
     unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
   '';
 
-  sha256 = "1dl4zc1a5dl9xkg094zmzy6bk7gms8vhsiln58ix7sffzcf3pri8";
+  sha256 = "01d2ql803jrhss6g60djvs08x9xl7z6b3snkn03vqnrajdgifcl4";
 
   meta = with stdenv.lib; {
     homepage = https://rsms.me/inter/;
diff --git a/pkgs/data/fonts/inter/default.nix b/pkgs/data/fonts/inter/default.nix
new file mode 100644
index 00000000000..8973eae1464
--- /dev/null
+++ b/pkgs/data/fonts/inter/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "3.5";
+in fetchzip {
+  name = "inter-${version}";
+
+  url = "https://github.com/rsms/inter/releases/download/v${version}/Inter-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "0zqixzzbb3n1j4jvpjm0hlxc32j53hgq4j078gihjkhgvjhsklf2";
+
+  meta = with stdenv.lib; {
+    homepage = https://rsms.me/inter/;
+    description = "A typeface specially designed for user interfaces";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ demize ];
+  };
+}
+
diff --git a/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix b/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix
new file mode 100644
index 00000000000..293918bd2b1
--- /dev/null
+++ b/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchFromGitHub, glib, gnome3 }:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-shell-extension-tilingnome";
+  version = "unstable-2019-01-18";
+
+  src = fetchFromGitHub {
+    owner = "rliang";
+    repo = pname;
+    rev = "bd4fb8c19f7a6282b38724b30e62645143390226";
+    sha256 = "1y4s4n88gdkpvgd3v3dg0181ccyhlixbvkx3bwyvdxyyyxbqibid";
+  };
+
+  nativeBuildInputs = [ glib ];
+
+  buildPhase = ''
+    glib-compile-schemas .
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/gnome-shell/extensions/${uuid}
+    cp -r * $out/share/gnome-shell/extensions/${uuid}/
+  '';
+
+  uuid = "tilingnome@rliang.github.com";
+
+  meta = with stdenv.lib; {
+    description = "Tiling window management for GNOME Shell";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ benley ];
+    homepage = https://github.com/rliang/gnome-shell-extension-tilingnome;
+    platforms = gnome3.gnome-shell.meta.platforms;
+    broken = lib.versionAtLeast gnome3.gnome-shell.version "3.31";
+  };
+}
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
index 303aae6882b..32083d3ada6 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
@@ -52,13 +52,14 @@ stdenv.mkDerivation rec {
   patches = [
     (substituteAll {
       src = ./gsd.patch;
-      elementary-settings-daemon = "${elementary-settings-daemon}/libexec";
+      elementary_settings_daemon = "${elementary-settings-daemon}/libexec/";
     })
     (substituteAll {
       src = ./numlockx.patch;
       inherit numlockx;
     })
     ./01-sysconfdir-install.patch
+    ./hardcode-theme.patch
   ];
 
   mesonFlags = [
@@ -70,9 +71,6 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     gappsWrapperArgs+=(
-      # GTK+ reads default settings (such as icons and themes) from elementary's settings.ini here
-      --prefix XDG_CONFIG_DIRS : "${elementary-default-settings}/etc"
-
       # dbus-launch needed in path
       --prefix PATH : "${dbus}/bin"
 
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/gsd.patch b/pkgs/desktops/pantheon/desktop/elementary-greeter/gsd.patch
index 1770d54aee0..bcbf604c6a2 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/gsd.patch
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/gsd.patch
@@ -7,7 +7,7 @@ index 2450c1a..a908d11 100644
  conf_data.set('CONF_DIR', join_paths(get_option('sysconfdir'), 'lightdm'))
  conf_data.set('GETTEXT_PACKAGE', meson.project_name())
 -conf_data.set('GSD_DIR', '/usr/lib/gnome-settings-daemon/')
-+conf_data.set('GSD_DIR', '@elementary-settings-daemon@')
++conf_data.set('GSD_DIR', '@elementary_settings_daemon@')
  conf_data.set('VERSION', meson.project_version())
  config_header = configure_file (
      input: 'config.vala.in',
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-theme.patch b/pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-theme.patch
new file mode 100644
index 00000000000..e9263aab736
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-theme.patch
@@ -0,0 +1,15 @@
+diff --git a/src/PantheonGreeter.vala b/src/PantheonGreeter.vala
+index 11aa4c0..daf4a8a 100644
+--- a/src/PantheonGreeter.vala
++++ b/src/PantheonGreeter.vala
+@@ -474,6 +474,10 @@ public static int main (string [] args) {
+                                              Gdk.CursorType.LEFT_PTR);
+     Gdk.get_default_root_window ().set_cursor (cursor);
+ 
++    var settings = Gtk.Settings.get_default ();
++    settings.gtk_icon_theme_name = "elementary";
++    settings.gtk_theme_name = "elementary";
++
+     var icon_theme = Gtk.IconTheme.get_default ();
+     icon_theme.add_resource_path ("/io/elementary/greeter/icons");
+ 
diff --git a/pkgs/development/compilers/gcc-arm-embedded/6/default.nix b/pkgs/development/compilers/gcc-arm-embedded/6/default.nix
index 82edf0e33cf..9e5a172eed8 100644
--- a/pkgs/development/compilers/gcc-arm-embedded/6/default.nix
+++ b/pkgs/development/compilers/gcc-arm-embedded/6/default.nix
@@ -5,16 +5,17 @@ stdenv.mkDerivation rec {
   version = "6-2017-q2-update";
   subdir = "6-2017q2";
 
-  platformString =
-    if stdenv.isLinux then "linux"
-    else if stdenv.isDarwin then "mac"
-    else throw "unsupported platform";
-
-  urlString = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${version}-${platformString}.tar.bz2";
-
   src =
-    if stdenv.isLinux then fetchurl { url=urlString; sha256="1hvwi02mx34al525sngnl0cm7dkmzxfkb1brq9kvbv28wcplp3p6"; }
-    else if stdenv.isDarwin then fetchurl { url=urlString; sha256="0019ylpq4inq7p5gydpmc9m8ni72fz2csrjlqmgx1698998q0c3x"; }
+    if stdenv.isLinux then
+      fetchurl {
+        url = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${version}-linux.tar.bz2";
+        sha256="1hvwi02mx34al525sngnl0cm7dkmzxfkb1brq9kvbv28wcplp3p6";
+      }
+    else if stdenv.isDarwin then
+      fetchurl {
+        url = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${version}-mac.tar.bz2";
+        sha256="0019ylpq4inq7p5gydpmc9m8ni72fz2csrjlqmgx1698998q0c3x";
+      }
     else throw "unsupported platform";
 
   phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
diff --git a/pkgs/development/compilers/gcc-arm-embedded/7/default.nix b/pkgs/development/compilers/gcc-arm-embedded/7/default.nix
index 39fc3c517f8..80e042b5c2e 100644
--- a/pkgs/development/compilers/gcc-arm-embedded/7/default.nix
+++ b/pkgs/development/compilers/gcc-arm-embedded/7/default.nix
@@ -7,9 +7,18 @@ stdenv.mkDerivation rec {
   version = "7-2018-q2-update";
   subdir = "7-2018q2";
 
-  urlString = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${version}-linux.tar.bz2";
-
-  src = fetchurl { url=urlString; sha256="0sgysp3hfpgrkcbfiwkp0a7ymqs02khfbrjabm52b5z61sgi05xv"; };
+  src =
+  if stdenv.isLinux then
+    fetchurl {
+      url = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${version}-linux.tar.bz2";
+      sha256="0sgysp3hfpgrkcbfiwkp0a7ymqs02khfbrjabm52b5z61sgi05xv";
+    }
+  else if stdenv.isDarwin then
+    fetchurl {
+      url = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${version}-mac.tar.bz2";
+      sha256="0nc7m0mpa39qyhfyydxkkyqm7spfc27xf6ygi2vd2aym4r9azi61";
+    }
+  else throw "unsupported platform";
 
   phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
 
diff --git a/pkgs/development/compilers/gcc-arm-embedded/8/default.nix b/pkgs/development/compilers/gcc-arm-embedded/8/default.nix
index a26131cb053..ee57dcc8c14 100644
--- a/pkgs/development/compilers/gcc-arm-embedded/8/default.nix
+++ b/pkgs/development/compilers/gcc-arm-embedded/8/default.nix
@@ -7,9 +7,18 @@ stdenv.mkDerivation rec {
   version = "8-2018-q4-major";
   subdir = "8-2018q4";
 
-  urlString = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${version}-linux.tar.bz2";
-
-  src = fetchurl { url=urlString; sha256="fb31fbdfe08406ece43eef5df623c0b2deb8b53e405e2c878300f7a1f303ee52"; };
+  src =
+  if stdenv.isLinux then
+    fetchurl {
+      url = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${version}-linux.tar.bz2";
+      sha256="fb31fbdfe08406ece43eef5df623c0b2deb8b53e405e2c878300f7a1f303ee52";
+    }
+  else if stdenv.isDarwin then
+    fetchurl {
+      url = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${version}-mac.tar.bz2";
+      sha256="0q44r57fizpk1z3ngcjwal3rxgsnzjyfknpgwlwzmw5r9p98wlhb";
+    }
+  else throw "unsupported platform";
 
   phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
 
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index c439d2cca00..d9da4d2074c 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -871,8 +871,38 @@ self: super: {
   # https://github.com/takano-akio/filelock/issues/5
   filelock = dontCheck super.filelock;
 
-  # cryptol-2.5.0 doesn't want happy 1.19.6+.
-  cryptol = super.cryptol.override { happy = self.happy_1_19_5; };
+  # fix GHC 8.6 builds by using irrefutable patterns. jailbreak is also
+  # required due to a constraint failure for base-compat.
+  cryptol = doJailbreak (overrideCabal super.cryptol (drv: {
+
+    # the last patch fixes ghc 8.6 builds; the other two (small) patches fix a
+    # few bugs between them, but are also hard dependencies
+    patches = drv.patches or [] ++ [
+      (pkgs.fetchpatch {
+        url    = https://github.com/GaloisInc/cryptol/commit/634c5a03e757663bf86d1ffad1ce2c6086d4483f.patch;
+        sha256 = "16dvfihsl2c4jnyfndgrjarkm3z5pyn7rzg2svnidx0qipwrxzm7";
+      })
+      (pkgs.fetchpatch {
+        url    = https://github.com/GaloisInc/cryptol/commit/515642328aff6d958ff1b534b9effdd726901b60.patch;
+        sha256 = "1fml71b720igyh8s7mj1z1c2bbv1vk490iy7blvxp625nymzjij6";
+      })
+      (pkgs.fetchpatch {
+        url    = https://github.com/GaloisInc/cryptol/commit/a8eab11b319f6434f9b01b26d419b8305ff30bc2.patch;
+        sha256 = "1bbznp3kbj8l83q979gf4gr2khwbyqi85ykwsf2jnkhzda6pr0n8";
+      })
+    ];
+
+    buildTools = drv.buildTools or [] ++ [ pkgs.makeWrapper ];
+
+    # make sure the binaries always start up. previously this was in
+    # all-packages.nix but it's almost certainly better to do it here (e.g. a
+    # haskell deps may use cryptol in the test suite or something, etc)
+    postInstall = drv.postInstall or "" + ''
+      for b in $out/bin/cryptol $out/bin/cryptol-html; do
+        wrapProgram $b --prefix 'PATH' ':' "${pkgs.lib.getBin pkgs.z3}/bin"
+      done
+    '';
+  }));
 
   # Tests try to invoke external process and process == 1.4
   grakn = dontCheck (doJailbreak super.grakn);
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 439a7f4dfea..dd46550031e 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -3788,7 +3788,6 @@ broken-packages:
   - crypto-simple
   - cryptocompare
   - cryptoconditions
-  - cryptol
   - cryptsy-api
   - crystalfontz
   - cse-ghc-plugin
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 10762522694..d839b73cfc5 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -59113,7 +59113,6 @@ self: {
        description = "Cryptol: The Language of Cryptography";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "cryptonite" = callPackage
diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix
index 274e24a0e1e..0b6611f1605 100644
--- a/pkgs/development/interpreters/php/default.nix
+++ b/pkgs/development/interpreters/php/default.nix
@@ -258,24 +258,24 @@ let
 
 in {
   php71 = generic {
-    version = "7.1.27";
-    sha256 = "0jzcyilvdy05w30vz5ln46lqm9hi36h5bibiwhl1b4a1179yrmys";
+    version = "7.1.28";
+    sha256 = "1jal5kr3h9krgb4x46l7wg9czfiigax6vni6cagfdi8zzqrqg7kk";
 
     # https://bugs.php.net/bug.php?id=76826
     extraPatches = optional stdenv.isDarwin ./php71-darwin-isfinite.patch;
   };
 
   php72 = generic {
-    version = "7.2.16";
-    sha256 = "0f3zkv803banqdrhj5ixfg973fnrsvn4hcij2k6r91nmac0d22ic";
+    version = "7.2.17";
+    sha256 = "0xag1735q92kj8p09gyydxknisgz7h56pksr44qwnykddymi3a4i";
 
     # https://bugs.php.net/bug.php?id=76826
     extraPatches = optional stdenv.isDarwin ./php72-darwin-isfinite.patch;
   };
 
   php73 = generic {
-    version = "7.3.3";
-    sha256 = "1riw0a1mzc5ymaj02rni57l5pyfkxl0ygf1l39q7ksnz7aa9x5k1";
+    version = "7.3.4";
+    sha256 = "0y1bl4nwpr0z11wsdizrs3nvkx1xs3xzy7mn8gj4jdn82a13sb1f";
 
     # https://bugs.php.net/bug.php?id=76826
     extraPatches = optional stdenv.isDarwin ./php73-darwin-isfinite.patch;
diff --git a/pkgs/development/libraries/libmediainfo/default.nix b/pkgs/development/libraries/libmediainfo/default.nix
index 1ef2c6914ae..09eb7d95f37 100644
--- a/pkgs/development/libraries/libmediainfo/default.nix
+++ b/pkgs/development/libraries/libmediainfo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "18.08.1";
+  version = "18.12";
   name = "libmediainfo-${version}";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/libmediainfo/${version}/libmediainfo_${version}.tar.xz";
-    sha256 = "1h6brg98i39xprcl54gvs1scmv8d6f3iw5h2diwz5bbz4lspy8vs";
+    sha256 = "0kvfhcij32jfkggbhqzy7bfiwrly5j51d5gdz5lrfdcjq113svwp";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/development/libraries/physics/herwig/default.nix b/pkgs/development/libraries/physics/herwig/default.nix
index 722dccaea7b..7a146bb7309 100644
--- a/pkgs/development/libraries/physics/herwig/default.nix
+++ b/pkgs/development/libraries/physics/herwig/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "herwig-${version}";
-  version = "7.1.4";
+  version = "7.1.5";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/herwig/Herwig-${version}.tar.bz2";
-    sha256 = "1awr1jz0q873x8bgwiilzklhk1zkgm6slvpychpnvsf9vk05mmdx";
+    sha256 = "0jnrv59zfa41gc37pqr3vaiz5jkh7w0k0alcax37b3mlbsnacr9r";
   };
 
   nativeBuildInputs = [ autoconf automake libtool ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     ++ (with lhapdf.pdf_sets; [ MMHT2014lo68cl MMHT2014nlo68cl ]);
 
   postPatch = ''
-    patchShebangs ./cat_with_cpplines
+    patchShebangs ./
   '';
 
   configureFlags = [
diff --git a/pkgs/development/libraries/physics/thepeg/default.nix b/pkgs/development/libraries/physics/thepeg/default.nix
index 63bc3c06e10..046413c64f4 100644
--- a/pkgs/development/libraries/physics/thepeg/default.nix
+++ b/pkgs/development/libraries/physics/thepeg/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "thepeg-${version}";
-  version = "2.1.4";
+  version = "2.1.5";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/thepeg/ThePEG-${version}.tar.bz2";
-    sha256 = "1x9dfxmsbmzmsxrv3cczfyrnqkxjcpy89v6v7ycysrx9k8qkf320";
+    sha256 = "1rmmwhk9abn9mc9j3127axjwpvymv21ld4wcivwz01pldkxh06n6";
   };
 
   buildInputs = [ boost fastjet gsl hepmc lhapdf rivet zlib ];
diff --git a/pkgs/development/libraries/vapoursynth-mvtools/default.nix b/pkgs/development/libraries/vapoursynth-mvtools/default.nix
index ecc6b7c30fc..abdf9fbeed3 100644
--- a/pkgs/development/libraries/vapoursynth-mvtools/default.nix
+++ b/pkgs/development/libraries/vapoursynth-mvtools/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "vapoursynth-mvtools-${version}";
-  version = "20";
+  version = "21";
 
   src = fetchFromGitHub {
     owner  = "dubhater";
     repo   = "vapoursynth-mvtools";
     rev    = "v${version}";
-    sha256 = "0nbq04wbmz7xqfcfpdvgg0p8xhh2xdcwhhx5gwr4j8bm611v0npz";
+    sha256 = "0vjxpp4jmmjhcp8z81idsbgq6jyx0l4r4i32b8alnp6c9fahjh6p";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/wolfssl/default.nix b/pkgs/development/libraries/wolfssl/default.nix
index 8f3808bffcb..e7feaabc739 100644
--- a/pkgs/development/libraries/wolfssl/default.nix
+++ b/pkgs/development/libraries/wolfssl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "wolfssl-${version}";
-  version = "3.15.7";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "wolfSSL";
     repo = "wolfssl";
     rev = "v${version}-stable";
-    sha256 = "128z1f7nry278kdjzq950cr81bml8p17fgdchmpvy0awhh7r20y9";
+    sha256 = "155lmgz81ky0x04c8m2yzlsm58i9jk6hiw1ajc3wizvbpczbca57";
   };
 
   configureFlags = [ "--enable-all" ];
diff --git a/pkgs/development/ocaml-modules/reactivedata/default.nix b/pkgs/development/ocaml-modules/reactivedata/default.nix
index fa85f217468..05bfe2c0934 100644
--- a/pkgs/development/ocaml-modules/reactivedata/default.nix
+++ b/pkgs/development/ocaml-modules/reactivedata/default.nix
@@ -1,12 +1,14 @@
 { stdenv, fetchurl, ocaml, findlib, ocamlbuild, react, opaline }:
 
-assert stdenv.lib.versionAtLeast ocaml.version "3.11";
+if !stdenv.lib.versionAtLeast ocaml.version "4.04"
+then throw "reactiveData is not available for OCaml ${ocaml.version}"
+else
 
 stdenv.mkDerivation {
-  name = "ocaml${ocaml.version}-reactiveData-0.2.1";
+  name = "ocaml${ocaml.version}-reactiveData-0.2.2";
   src = fetchurl {
-    url = https://github.com/ocsigen/reactiveData/archive/0.2.1.tar.gz;
-    sha256 = "0wcs0z50nia1cpk8mh6i5qbc6sff9cc8x7s7q1q89d7m73bnv4vf";
+    url = https://github.com/ocsigen/reactiveData/archive/0.2.2.tar.gz;
+    sha256 = "0jzagyp4zla28wykvcgqwd8df71ir0vb4s8akp02cfacd5v86sng";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild opaline ];
diff --git a/pkgs/development/ocaml-modules/uutf/default.nix b/pkgs/development/ocaml-modules/uutf/default.nix
index 9b6c1868ad3..58e02d6b280 100644
--- a/pkgs/development/ocaml-modules/uutf/default.nix
+++ b/pkgs/development/ocaml-modules/uutf/default.nix
@@ -6,11 +6,11 @@ in
 
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-${pname}-${version}";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchurl {
     url = "${webpage}/releases/${pname}-${version}.tbz";
-    sha256 = "1gp96dcggq7s84934vimxh89caaxa77lqiff1yywbwkilkkjcfqj";
+    sha256 = "1nx1rly3qj23jzn9yk3x6fwqimcxjd84kv5859vvhdg56psq26p6";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild topkg cmdliner ];
diff --git a/pkgs/development/python-modules/aioesphomeapi/default.nix b/pkgs/development/python-modules/aioesphomeapi/default.nix
index 39545e61ecd..80c85a2614c 100644
--- a/pkgs/development/python-modules/aioesphomeapi/default.nix
+++ b/pkgs/development/python-modules/aioesphomeapi/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchPypi, attrs, protobuf, zeroconf }:
+{ lib, buildPythonPackage, fetchPypi, attrs, protobuf, zeroconf }:
 
 buildPythonPackage rec {
   pname = "aioesphomeapi";
@@ -11,5 +11,13 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ attrs protobuf zeroconf ];
 
-  meta = {};
+  # no tests implemented
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Python Client for ESPHome native API";
+    homepage = https://github.com/esphome/aioesphomeapi;
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
 }
diff --git a/pkgs/development/python-modules/cmd2/default.nix b/pkgs/development/python-modules/cmd2/default.nix
index ff9e70b4146..5751d62b9fc 100644
--- a/pkgs/development/python-modules/cmd2/default.nix
+++ b/pkgs/development/python-modules/cmd2/default.nix
@@ -6,11 +6,11 @@
 }:
 buildPythonPackage rec {
   pname = "cmd2";
-  version = "0.9.10";
+  version = "0.9.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00d68374abe02363a417160e5836022be5c8f8bdac1da5dd101fadb6f8e96619";
+    sha256 = "0hjj587dwnl5767wbl875vglvdr1f5z5jzb5wliip78lbyq3b8rl";
   };
 
   LC_ALL="en_US.UTF-8";
diff --git a/pkgs/development/python-modules/cypari2/default.nix b/pkgs/development/python-modules/cypari2/default.nix
index 1e1248591f0..a4921b85e37 100644
--- a/pkgs/development/python-modules/cypari2/default.nix
+++ b/pkgs/development/python-modules/cypari2/default.nix
@@ -11,11 +11,11 @@
 buildPythonPackage rec {
   pname = "cypari2";
   # upgrade may break sage, please test the sage build or ping @timokau on upgrade
-  version = "2.0.3";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mghbmilmy34xp1d50xdx76sijqxmpkm2bcgx2v1mdji2ff7n0yc";
+    sha256 = "0bm5jvmwqp48n6b385mw4v7wsws9zk62mgb7xf5ymiq7k6wgvxli";
   };
 
   # This differs slightly from the default python installPhase in that it pip-installs
diff --git a/pkgs/development/python-modules/ldap/default.nix b/pkgs/development/python-modules/ldap/default.nix
index 09d399d25b3..8f5cd7e7e88 100644
--- a/pkgs/development/python-modules/ldap/default.nix
+++ b/pkgs/development/python-modules/ldap/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "python-ldap";
-  version = "3.1.0";
+  version = "3.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "41975e79406502c092732c57ef0c2c2eb318d91e8e765f81f5d4ab6c1db727c5";
+    sha256 = "13nvrhp85yr0jyxixcjj012iw8l9wynxxlykm9j3alss6waln73x";
   };
 
   propagatedBuildInputs = [ pyasn1 pyasn1-modules ];
@@ -28,4 +28,10 @@ buildPythonPackage rec {
   '';
 
   doCheck = !stdenv.isDarwin;
+
+  meta = with stdenv.lib; {
+    description = "Python modules for implementing LDAP clients";
+    homepage = https://www.python-ldap.org/;
+    license = licenses.psfl;
+  };
 }
diff --git a/pkgs/development/python-modules/ldappool/default.nix b/pkgs/development/python-modules/ldappool/default.nix
index 460d743b1ed..3ad0ae3b723 100644
--- a/pkgs/development/python-modules/ldappool/default.nix
+++ b/pkgs/development/python-modules/ldappool/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi
-, pbr, ldap, fixtures, testresources, testtools }:
+, pbr, ldap, prettytable, fixtures, testresources, testtools }:
 
 buildPythonPackage rec {
   name = "ldappool-${version}";
@@ -11,9 +11,14 @@ buildPythonPackage rec {
     sha256 = "d9c9ec29be3f3e64164be84fe080a3087108836f307a12ec62f7d18988293df3";
   };
 
+  postPatch = ''
+    # Tests run without most of the dependencies
+    echo "" > test-requirements.txt
+  '';
+
   nativeBuildInputs = [ pbr ];
 
-  propagatedBuildInputs = [ ldap ];
+  propagatedBuildInputs = [ ldap prettytable ];
 
   checkInputs = [ fixtures testresources testtools ];
 
diff --git a/pkgs/development/python-modules/libarcus/default.nix b/pkgs/development/python-modules/libarcus/default.nix
index 004fedf79b4..67194966949 100644
--- a/pkgs/development/python-modules/libarcus/default.nix
+++ b/pkgs/development/python-modules/libarcus/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "libarcus";
-  version = "3.6.0";
+  version = "4.0.0";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "libArcus";
     rev = version;
-    sha256 = "1zbp6axai47k3p2q497wiajls1h17wss143zynbwbwrqinsfiw43";
+    sha256 = "14c62bsc2cynhaajpdidcqpq2vqwshrdkqyzwvpsjjbfmlx3b1ay";
   };
 
   disabled = pythonOlder "3.4.0";
diff --git a/pkgs/development/python-modules/libsavitar/default.nix b/pkgs/development/python-modules/libsavitar/default.nix
index 52760420b83..dc783ba8f33 100644
--- a/pkgs/development/python-modules/libsavitar/default.nix
+++ b/pkgs/development/python-modules/libsavitar/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "libsavitar";
-  version = "3.6.0";
+  version = "4.0.0";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "libSavitar";
     rev = version;
-    sha256 = "1bz8ga0n9aw65hqzajbr93dcv5g555iaihbhs1jq2k47cx66klzv";
+    sha256 = "1q70l37qafzfkpw8vlagmpd2w576b6jc1xmxp3wf3qfq45j8kya0";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/netdisco/default.nix b/pkgs/development/python-modules/netdisco/default.nix
index d3fac8df084..1c9af258995 100644
--- a/pkgs/development/python-modules/netdisco/default.nix
+++ b/pkgs/development/python-modules/netdisco/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "netdisco";
-  version = "2.5.0";
+  version = "2.6.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2ecb9830ceed5cf8f2ccc5a9bbe02ca5f6851435f5315a5402f0123311f13b37";
+    sha256 = "2b3aca14a1807712a053f11fd80dc251dd821ee4899aefece515287981817762";
   };
 
   propagatedBuildInputs = [ requests zeroconf netifaces ];
diff --git a/pkgs/development/python-modules/pylast/default.nix b/pkgs/development/python-modules/pylast/default.nix
index 911275d0e5f..6d58fbfb21a 100644
--- a/pkgs/development/python-modules/pylast/default.nix
+++ b/pkgs/development/python-modules/pylast/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pylast";
-  version = "3.0.0";
+  version = "3.1.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "24051c52011ff18bdeaee9df084ecc90da6c627da86f3cdcfec4af2928e9bc56";
+    sha256 = "0sk08l8dq0r4xgmqkxq6jzlbam34k95adaw468n0bh6cps18ddby";
   };
 
   propagatedBuildInputs = [ certifi six ];
diff --git a/pkgs/development/python-modules/pyscard/default.nix b/pkgs/development/python-modules/pyscard/default.nix
index a15342e17fa..bab8e502b9c 100644
--- a/pkgs/development/python-modules/pyscard/default.nix
+++ b/pkgs/development/python-modules/pyscard/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchPypi, buildPythonPackage, swig, pcsclite, PCSC }:
+{ stdenv, fetchPypi, fetchpatch, buildPythonPackage, swig, pcsclite, PCSC }:
 
 buildPythonPackage rec {
-  version = "1.9.7";
+  version = "1.9.8";
   pname = "pyscard";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "412c74c83e7401566e9d3d7b8b5ca965e74582a1f33179b3c1fabf1da73ebf80";
+    sha256 = "15fh00z1an6r5j7hrz3jlq0rb3jygwf3x4jcwsa008bv8vpcg7gm";
   };
 
   postPatch = ''
@@ -16,6 +16,15 @@ buildPythonPackage rec {
 
   NIX_CFLAGS_COMPILE = "-isystem ${stdenv.lib.getDev pcsclite}/include/PCSC/";
 
+  patches = [
+    # Fixes darwin tests
+    # See: https://github.com/LudovicRousseau/pyscard/issues/77
+    (fetchpatch {
+      url = "https://github.com/LudovicRousseau/pyscard/commit/62e675028086c75656444cc21d563d9f08ebf8e7.patch";
+      sha256 = "1lr55npcpc8j750vf7vaisqyk18d5f00l7nii2lvawg4sssjaaf7";
+    })
+  ];
+
   propagatedBuildInputs = [ pcsclite ];
   buildInputs = stdenv.lib.optional stdenv.isDarwin PCSC;
   nativeBuildInputs = [ swig ];
diff --git a/pkgs/development/python-modules/uranium/default.nix b/pkgs/development/python-modules/uranium/default.nix
index 351279476c8..b4081870fbe 100644
--- a/pkgs/development/python-modules/uranium/default.nix
+++ b/pkgs/development/python-modules/uranium/default.nix
@@ -2,7 +2,7 @@
 , pyqt5, numpy, scipy, shapely, libarcus, doxygen, gettext, pythonOlder }:
 
 buildPythonPackage rec {
-  version = "3.6.0";
+  version = "4.0.0";
   pname = "uranium";
   format = "other";
 
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     owner = "Ultimaker";
     repo = "Uranium";
     rev = version;
-    sha256 = "02hid13h8anb9bgv2hhrcdg10bxdxa9hj9pbdv3gw3lpn9r2va98";
+    sha256 = "1dzn064np76q0xpypcwsa7k7arzihg79xw1pgcvdizk9kzc6rw3y";
   };
 
   disabled = pythonOlder "3.5.0";
diff --git a/pkgs/development/tools/buildah/default.nix b/pkgs/development/tools/buildah/default.nix
index c4e8c446e83..48b0631c64a 100644
--- a/pkgs/development/tools/buildah/default.nix
+++ b/pkgs/development/tools/buildah/default.nix
@@ -3,13 +3,13 @@
 , go-md2man }:
 
 let
-  version = "1.7.1";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "containers";
     repo = "buildah";
-    sha256 = "083s0bcajks2qnxq6cn9lax5aiyvicf60rf3ifgqksl9skr748qb";
+    sha256 = "19rp5kgdgyjfvg23m8dqlv6g1cs2c57nnw64ifjv24hqhy1xc0qk";
   };
   goPackagePath = "github.com/containers/buildah";
 
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index ecfdc1b027c..ab76014588e 100644
--- a/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "jenkins-${version}";
-  version = "2.150.1";
+  version = "2.164.1";
 
   src = fetchurl {
     url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
-    sha256 = "0sb6mzynw1vg6s43mpd7b0dz1clbf8akga09i14q66isb9nmhf3s";
+    sha256 = "02r2kf0v7pbi6xfak5ii7cwi5pq2awq4pcsi6d7k8m7f69b3ym35";
   };
 
   buildCommand = ''
diff --git a/pkgs/development/tools/continuous-integration/jenkins/update.sh b/pkgs/development/tools/continuous-integration/jenkins/update.sh
index e8b6d925775..66d1b4ceff6 100755
--- a/pkgs/development/tools/continuous-integration/jenkins/update.sh
+++ b/pkgs/development/tools/continuous-integration/jenkins/update.sh
@@ -3,11 +3,20 @@
 
 set -eu -o pipefail
 
-core_json="$(curl --fail --location https://updates.jenkins.io/stable/update-center.actual.json | jq .core)"
+core_json="$(curl -s --fail --location https://updates.jenkins.io/stable/update-center.actual.json | jq .core)"
+oldVersion=$(nix-instantiate --eval -E "with import ./. {}; jenkins.version or (builtins.parseDrvName jenkins.name).version" | tr -d '"')
 
 version="$(jq -r .version <<<$core_json)"
 sha256="$(jq -r .sha256 <<<$core_json)"
 hash="$(nix-hash --type sha256 --to-base32 "$sha256")"
 url="$(jq -r .url <<<$core_json)"
 
-update-source-version jenkins "$version" "$hash" "$url"
+if [ ! "${oldVersion}" = "${version}" ]; then
+  update-source-version jenkins "$version" "$hash" "$url"
+  nixpkgs="$(git rev-parse --show-toplevel)"
+  default_nix="$nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix"
+  git add "${default_nix}"
+  git commit -m "jenkins: ${oldVersion} -> ${version}"
+else
+  echo "jenkins is already up-to-date"
+fi
diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix
index dd6a413cebf..fe684bbf7b6 100644
--- a/pkgs/development/tools/godot/default.nix
+++ b/pkgs/development/tools/godot/default.nix
@@ -10,13 +10,13 @@ let
   };
 in stdenv.mkDerivation rec {
   name    = "godot-${version}";
-  version = "3.0.6";
+  version = "3.1";
 
   src = fetchFromGitHub {
     owner  = "godotengine";
     repo   = "godot";
     rev    = "${version}-stable";
-    sha256 = "0g64h0x8dlv6aa9ggfcidk2mknkfl5li7z1phcav8aqp9srj8avf";
+    sha256 = "1z37znqzbn0x8s04pb9dxzni9jzl8m59nfrr14vypww42f9l5i7i";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -51,10 +51,10 @@ in stdenv.mkDerivation rec {
     cp misc/dist/linux/godot.6 "$man/share/man/man6/"
 
     mkdir -p "$out"/share/{applications,icons/hicolor/scalable/apps}
-    cp misc/dist/linux/godot.desktop "$out/share/applications/"
+    cp misc/dist/linux/org.godotengine.Godot.desktop "$out/share/applications/"
     cp icon.svg "$out/share/icons/hicolor/scalable/apps/godot.svg"
     cp icon.png "$out/share/icons/godot.png"
-    substituteInPlace "$out/share/applications/godot.desktop" \
+    substituteInPlace "$out/share/applications/org.godotengine.Godot.desktop" \
       --replace "Exec=godot" "Exec=$out/bin/godot"
   '';
 
diff --git a/pkgs/development/tools/godot/dont_clobber_environment.patch b/pkgs/development/tools/godot/dont_clobber_environment.patch
index c57c85588a0..96a8464b566 100644
--- a/pkgs/development/tools/godot/dont_clobber_environment.patch
+++ b/pkgs/development/tools/godot/dont_clobber_environment.patch
@@ -1,7 +1,7 @@
 +++ build/SConstruct
-@@ -69,10 +69,10 @@
-         custom_tools = ['mingw']
- 
+@@ -63,10 +63,10 @@ elif platform_arg == 'javascript':
+     custom_tools = ['cc', 'c++', 'ar', 'link', 'textfile', 'zip']
+
  env_base = Environment(tools=custom_tools)
 -if 'TERM' in os.environ:
 -    env_base['ENV']['TERM'] = os.environ['TERM']
@@ -11,6 +11,7 @@
 +    if (k in os.environ):
 +        env_base["ENV"][k] = os.environ[k]
 +
- env_base.global_defaults = global_defaults
  env_base.android_maven_repos = []
  env_base.android_flat_dirs = []
+ env_base.android_dependencies = []
+
diff --git a/pkgs/development/tools/godot/pkg_config_additions.patch b/pkgs/development/tools/godot/pkg_config_additions.patch
index 286372f060a..409baaa6f26 100644
--- a/pkgs/development/tools/godot/pkg_config_additions.patch
+++ b/pkgs/development/tools/godot/pkg_config_additions.patch
@@ -1,13 +1,22 @@
 +++ b/platform/x11/detect.py
-@@ -142,6 +142,11 @@
-     env.ParseConfig('pkg-config xcursor --cflags --libs')
-     env.ParseConfig('pkg-config xinerama --cflags --libs')
-     env.ParseConfig('pkg-config xrandr --cflags --libs')
-+    env.ParseConfig('pkg-config xrender --cflags --libs')
+@@ -175,6 +175,11 @@ def configure(env):
+     env.ParseConfig('pkg-config xrender --cflags --libs')
+     env.ParseConfig('pkg-config xi --cflags --libs')
+ 
 +    env.ParseConfig('pkg-config xext --cflags --libs')
 +    env.ParseConfig('pkg-config xfixes --cflags --libs')
 +    env.ParseConfig('pkg-config glu --cflags --libs')
 +    env.ParseConfig('pkg-config zlib --cflags --libs')
- 
++
      if (env['touch']):
-         x11_error = os.system("pkg-config xi --modversion > /dev/null ")
+         env.Append(CPPFLAGS=['-DTOUCH_ENABLED'])
+ 
+@@ -264,7 +269,7 @@ def configure(env):
+         print("Enabling ALSA")
+         env.Append(CPPFLAGS=["-DALSA_ENABLED", "-DALSAMIDI_ENABLED"])
+ 	# Don't parse --cflags, we don't need to add /usr/include/alsa to include path
+-        env.ParseConfig('pkg-config alsa --libs')
++        env.ParseConfig('pkg-config alsa --cflags --libs')
+     else:
+         print("ALSA libraries not found, disabling driver")
+ 
diff --git a/pkgs/development/tools/misc/sysbench/default.nix b/pkgs/development/tools/misc/sysbench/default.nix
index 14374937fe0..7b6048eb475 100644
--- a/pkgs/development/tools/misc/sysbench/default.nix
+++ b/pkgs/development/tools/misc/sysbench/default.nix
@@ -2,7 +2,7 @@
 , libaio }:
 
 stdenv.mkDerivation rec {
-  name = "sysbench-1.0.16";
+  name = "sysbench-1.0.17";
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
   buildInputs = [ vim mysql.connector-c libaio ];
@@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "akopytov";
     repo = "sysbench";
-    rev = "1.0.16";
-    sha256 = "0ypain0m1yqn7yqfb5847fdph6a6m0rn2rnqbnkxcxz5g85kv1rg";
+    rev = "1.0.17";
+    sha256 = "02i9knvp0bjw6ri848xxiy2dbww2xv70nah9yn67a6zgw617hwa6";
   };
 
   meta = {
diff --git a/pkgs/development/tools/ocaml/camlp5/META b/pkgs/development/tools/ocaml/camlp5/META
deleted file mode 100644
index e13b108ff24..00000000000
--- a/pkgs/development/tools/ocaml/camlp5/META
+++ /dev/null
@@ -1,94 +0,0 @@
-# Specifications for the "camlp5" preprocessor:
-requires = ""
-version = "[distributed with Ocaml]"
-description = "Base for camlp5 syntax extensions"
-
-# For the toploop:
-archive(byte,toploop,camlp5o) = "camlp5o.cma"
-archive(byte,toploop,camlp5r) = "camlp5r.cma"
-
-# Scheme-like syntax:
-# Do #predicates "syntax,camlp5scheme", followed by #require "camlp5"
-archive(byte,toploop,camlp5scheme) = "camlp5sch.cma"
-
-# Standard ML-like syntax:
-# Do #predicates "syntax,camlp5sml", followed by #require "camlp5"
-archive(byte,toploop,camlp5sml) = "gramlib.cma camlp5_top.cma pa_sml.cmo"
-
-# Lisp-like syntax:
-# Do #predicates "syntax,camlp5lisp", followed by #require "camlp5"
-archive(byte,toploop,camlp5lisp) = "gramlib.cma camlp5_top.cma pa_lisp.cmo"
-
-# For the preprocessor itself:
-archive(syntax,preprocessor,camlp5o) = "pa_o.cmo pa_op.cmo pr_dump.cmo"
-archive(syntax,preprocessor,camlp5r) = "pa_r.cmo pa_rp.cmo pr_dump.cmo"
-archive(syntax,preprocessor,camlp5sml) = "pa_sml.cmo pr_dump.cmo"
-archive(syntax,preprocessor,camlp5scheme) = "pa_scheme.cmo pr_dump.cmo"
-archive(syntax,preprocessor,camlp5lisp) = "pa_lisp.cmo pr_dump.cmo"
-preprocessor = "camlp5 -nolib"
-
-package "gramlib" (
-  requires(toploop) = "camlp5"
-  version = "[distributed with Ocaml]"
-  description = "Grammar library to create syntax extensions"
-  archive(byte) = "gramlib.cma"
-  archive(byte,toploop) = ""  # already contained in camlp5*.cma
-  archive(native) = "gramlib.cmxa"
-)
-
-package "quotations" (
-  requires = "camlp5"
-  version = "[distributed with Ocaml]"
-  description = "Syntax extension: Quotations to create AST nodes"
-  archive(syntax,preprocessor) = "q_MLast.cmo"
-  archive(syntax,toploop) = "q_MLast.cmo"
-)
-
-package "phony_quotations" (
-  requires = "camlp5"
-  version = "[distributed with Ocaml]"
-  description = "Syntax extension: Phony quotations"
-  archive(syntax,preprocessor) = "q_phony.cmo"
-  archive(syntax,toploop) = "q_phony.cmo"
-)
-
-package "extend" (
-  requires = "camlp5"
-  version = "[distributed with Ocaml]"
-  description = "Syntax extension: EXTEND the camlp5 grammar"
-  archive(syntax,preprocessor) = "pa_extend.cmo"
-  archive(syntax,toploop) = "pa_extend.cmo"
-)
-
-package "extfun" (
-  requires = "camlp5"
-  version = "[distributed with Ocaml]"
-  description = "Syntax extension: Extensible functions"
-  archive(syntax,preprocessor) = "pa_extfun.cmo"
-  archive(syntax,toploop) = "pa_extfun.cmo"
-)
-
-package "fstream" (
-  requires = "camlp5"
-  version = "[distributed with Ocaml]"
-  description = "Syntax extension: Functional stream parsers"
-  archive(syntax,preprocessor) = "pa_fstream.cmo"
-  archive(syntax,toploop) = "pa_fstream.cmo"
-)
-
-package "macro" (
-  requires = "camlp5"
-  version = "[distributed with Ocaml]"
-  description = "Syntax extension: Conditional compilation"
-  archive(syntax,preprocessor) = "pa_macro.cmo"
-  archive(syntax,toploop) = "pa_macro.cmo"
-)
-
-package "unit_constraints" (
-  requires = "camlp5"
-  version = "[distributed with Ocaml]"
-  description = "Syntax extension: Type constraints of type unit (revised syntax only)"
-  archive(syntax,preprocessor,camlp5r) = "pa_ru.cmo"
-  archive(syntax,toploop,camlp5r) = "pa_ru.cmo"
-  error(syntax,-camlp5r) = "Not available"
-)
diff --git a/pkgs/development/tools/ocaml/camlp5/default.nix b/pkgs/development/tools/ocaml/camlp5/default.nix
index ca053138d80..efd6e562c29 100644
--- a/pkgs/development/tools/ocaml/camlp5/default.nix
+++ b/pkgs/development/tools/ocaml/camlp5/default.nix
@@ -1,35 +1,16 @@
-{ stdenv, fetchzip, ocaml, legacy ? false }:
-
-let params =
-  if legacy then {
-    minor-version = "06";
-    sha256 = "02zg6qjkzx58zmp79364s5jyqhh56nclcz1jzhh53hk37g9f96qf";
-  } else {
-    minor-version = "07";
-    sha256 = "1c8v45553ccbqha2ypfranqlgw06rr5wjr2hlnrx5bf9jfq0h0dn";
-  };
-  metafile = ./META;
-  opt = stdenv.lib.optionalString legacy;
-in
+{ stdenv, fetchzip, ocaml }:
 
 stdenv.mkDerivation {
 
-  name = "camlp5-7.${params.minor-version}";
+  name = "camlp5-7.07";
 
   src = fetchzip {
-    url = "https://github.com/camlp5/camlp5/archive/rel7${params.minor-version}.tar.gz";
-    inherit (params) sha256;
+    url = "https://github.com/camlp5/camlp5/archive/rel707.tar.gz";
+    sha256 = "1c8v45553ccbqha2ypfranqlgw06rr5wjr2hlnrx5bf9jfq0h0dn";
   };
 
   buildInputs = [ ocaml ];
 
-  postPatch = opt ''
-    for p in compile/compile.sh config/Makefile.tpl test/Makefile test/check_ocaml_versions.sh
-    do
-      substituteInPlace $p --replace '/bin/rm' rm
-    done
-  '';
-
   prefixKey = "-prefix ";
 
   preConfigure = "configureFlagsArray=(--strict" +
@@ -37,8 +18,6 @@ stdenv.mkDerivation {
 
   buildFlags = "world.opt";
 
-  postInstall = opt "cp ${metafile} $out/lib/ocaml/${ocaml.version}/site-lib/camlp5/META";
-
   dontStrip = true;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/games/eduke32/default.nix b/pkgs/games/eduke32/default.nix
index c51f014b179..3407659d977 100644
--- a/pkgs/games/eduke32/default.nix
+++ b/pkgs/games/eduke32/default.nix
@@ -1,76 +1,78 @@
-{ stdenv, fetchurl, flac, gtk2, libvorbis, libvpx, makeDesktopItem, libGLU_combined, nasm
-, pkgconfig, SDL2, SDL2_mixer, runtimeShell }:
+{ stdenv, fetchurl, makeWrapper, pkgconfig, nasm, makeDesktopItem
+, flac, gtk2, libvorbis, libvpx, libGLU_combined
+, SDL2, SDL2_mixer }:
 
 let
-  year = "2015";
-  date = "20150420";
-  rev = "5160";
-in stdenv.mkDerivation rec {
+  version = "20190330";
+  rev = "7470";
+
+  desktopItem = makeDesktopItem {
+    name = "eduke32";
+    exec = "@out@/bin/${wrapper}";
+    comment = "Duke Nukem 3D port";
+    desktopName = "Enhanced Duke Nukem 3D";
+    genericName = "Duke Nukem 3D port";
+    categories = "Application;Game;";
+  };
+
+  wrapper = "eduke32-wrapper";
+
+in stdenv.mkDerivation {
   name = "eduke32-${version}";
-  version = "${date}-${rev}";
 
   src = fetchurl {
-    url = "http://dukeworld.duke4.net/eduke32/synthesis/old/${year}/${version}/eduke32_src_${version}.tar.xz";
-    sha256 = "1nlq5jbglg00c1z1vsyl627fh0mqfxvk5qyxav5vzla2b4svik2v";
+    url = "http://dukeworld.duke4.net/eduke32/synthesis/latest/eduke32_src_${version}-${rev}.tar.xz";
+    sha256 = "09a7l23i6sygicc82w1in9hjw0jvivlf7q0vw8kcx9j98lm23mkn";
   };
 
-  buildInputs = [ flac gtk2 libvorbis libvpx libGLU_combined SDL2 SDL2_mixer ]
+  buildInputs = [ flac gtk2 libvorbis libvpx libGLU_combined SDL2 SDL2_mixer ];
+
+  nativeBuildInputs = [ makeWrapper pkgconfig ]
     ++ stdenv.lib.optional (stdenv.hostPlatform.system == "i686-linux") nasm;
-  nativeBuildInputs = [ pkgconfig ];
 
   postPatch = ''
-    substituteInPlace build/src/glbuild.c \
-      --replace libGL.so	${libGLU_combined}/lib/libGL.so \
-      --replace libGLU.so	${libGLU_combined}/lib/libGLU.so
+    substituteInPlace source/build/src/glbuild.cpp \
+      --replace libGLU.so ${libGLU_combined}/lib/libGLU.so
+
+    for f in glad.c glad_wgl.c ; do
+      substituteInPlace source/glad/src/$f \
+        --replace libGL.so ${libGLU_combined}/lib/libGL.so
+    done
   '';
 
-  NIX_CFLAGS_COMPILE = "-I${SDL2.dev}/include/SDL2 -I${SDL2_mixer}/include/SDL2";
-  NIX_LDFLAGS = "-L${SDL2}/lib";
+  NIX_CFLAGS_COMPILE = [
+    "-I${SDL2.dev}/include/SDL2"
+    "-I${SDL2_mixer}/include/SDL2"
+  ];
 
   makeFlags = [
-    "LINKED_GTK=1"
     "SDLCONFIG=${SDL2}/bin/sdl2-config"
-    "VC_REV=${rev}"
   ];
 
-  desktopItem = makeDesktopItem {
-    name = "eduke32";
-    exec = "eduke32-wrapper";
-    comment = "Duke Nukem 3D port";
-    desktopName = "Enhanced Duke Nukem 3D";
-    genericName = "Duke Nukem 3D port";
-    categories = "Application;Game;";
-  };
+  enableParallelBuilding = true;
 
   installPhase = ''
-    # Make wrapper script
-    cat > eduke32-wrapper <<EOF
-    #!${runtimeShell}
-
-    if [ "$EDUKE32_DATA_DIR" = "" ]; then
-        EDUKE32_DATA_DIR=/var/lib/games/eduke32
-    fi
-    if [ "$EDUKE32_GRP_FILE" = "" ]; then
-        EDUKE32_GRP_FILE=\$EDUKE32_DATA_DIR/DUKE3D.GRP
-    fi
-
-    cd \$EDUKE32_DATA_DIR
-    exec $out/bin/eduke32 -g \$EDUKE32_GRP_FILE
-    EOF
-
-    # Install binaries
-    mkdir -p $out/bin
-    install -Dm755 eduke32{,-wrapper} mapster32 $out/bin
-
-    # Install desktop item
+    runHook preInstall
+
+    install -Dm755 -t $out/bin eduke32 mapster32
+
+    makeWrapper $out/bin/eduke32 $out/bin/${wrapper} \
+      --set-default EDUKE32_DATA_DIR /var/lib/games/eduke32 \
+      --add-flags '-g "$EDUKE32_DATA_DIR/DUKE3D.GRP"'
+
     cp -rv ${desktopItem}/share $out
+    substituteInPlace $out/share/applications/eduke32.desktop \
+      --subst-var out
+
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
     description = "Enhanched port of Duke Nukem 3D for various platforms";
-    license = licenses.gpl2Plus;
     homepage = http://eduke32.com;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ sander ];
-    platforms = with platforms; linux;
+    # Darwin is untested (supported by upstream)
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/games/leela-zero/default.nix b/pkgs/games/leela-zero/default.nix
index c1238b7b3bb..efe7a6a76e9 100644
--- a/pkgs/games/leela-zero/default.nix
+++ b/pkgs/games/leela-zero/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "leela-zero-${version}";
-  version = "0.16";
+  version = "0.17";
 
   src = fetchFromGitHub {
     owner = "gcp";
     repo = "leela-zero";
     rev = "v${version}";
-    sha256 = "1px7wqvlv414gklzgrmppp8wzc2mkskinm1p75j4snbqr8qpbn5s";
+    sha256 = "1k04ld1ysabxb8ivci3ji5by9vb3yvnflkf2fscs1x0bp7d6j101";
     fetchSubmodules = true;
   };
 
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     description = "Go engine modeled after AlphaGo Zero";
     homepage    = https://github.com/gcp/leela-zero;
     license     = licenses.gpl3;
-    maintainers = [ maintainers.averelld ];
+    maintainers = [ maintainers.averelld maintainers.omnipotententity ];
     platforms   = platforms.linux;
   };
 }
diff --git a/pkgs/games/steam/steamcmd.nix b/pkgs/games/steam/steamcmd.nix
index 6a2c7fe01b4..1ea7f067787 100644
--- a/pkgs/games/steam/steamcmd.nix
+++ b/pkgs/games/steam/steamcmd.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, steam-run, bash
+{ stdenv, fetchurl, steam-run, bash, coreutils
 , steamRoot ? "~/.local/share/Steam"
 }:
 
@@ -29,8 +29,8 @@ stdenv.mkDerivation rec {
 
     mkdir -p $out/bin
     substitute ${./steamcmd.sh} $out/bin/steamcmd \
-      --subst-var shell \
       --subst-var out \
+      --subst-var-by coreutils ${coreutils} \
       --subst-var-by steamRoot "${steamRoot}" \
       --subst-var-by steamRun ${steam-run}
     chmod 0755 $out/bin/steamcmd
diff --git a/pkgs/games/steam/steamcmd.sh b/pkgs/games/steam/steamcmd.sh
index e092a4fedbe..588badb41a1 100644
--- a/pkgs/games/steam/steamcmd.sh
+++ b/pkgs/games/steam/steamcmd.sh
@@ -3,6 +3,9 @@
 # Always run steamcmd in the user's Steam root.
 STEAMROOT=@steamRoot@
 
+# Add coreutils to PATH for mkdir, ln and cp used below
+PATH=$PATH${PATH:+:}@coreutils@/bin
+
 # Create a facsimile Steam root if it doesn't exist.
 if [ ! -e "$STEAMROOT" ]; then
   mkdir -p "$STEAMROOT"/{appcache,config,logs,Steamapps/common}
diff --git a/pkgs/games/wesnoth/default.nix b/pkgs/games/wesnoth/default.nix
index 9d86afa97ec..137b0e0b608 100644
--- a/pkgs/games/wesnoth/default.nix
+++ b/pkgs/games/wesnoth/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wesnoth";
-  version = "1.14.5";
+  version = "1.14.6";
 
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/sourceforge/${pname}/${name}.tar.bz2";
-    sha256 = "1kgpj2f22nnx4mwd1zis3s5ny2983aasgqsmz7wnqaq7n6a7ac85";
+    sha256 = "0aw3czw3nq8ffakhw2libhvrhnllj61xc5lxpjqv0ig1419s1lj5";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/misc/emulators/cdemu/analyzer.nix b/pkgs/misc/emulators/cdemu/analyzer.nix
index 87893a93136..a57fda56ddd 100644
--- a/pkgs/misc/emulators/cdemu/analyzer.nix
+++ b/pkgs/misc/emulators/cdemu/analyzer.nix
@@ -1,15 +1,20 @@
-{ callPackage, gtk3, glib, libxml2, gnuplot, makeWrapper, gnome3, gdk_pixbuf, librsvg, intltool }:
+{ callPackage, makeWrapper, gobject-introspection, cmake
+, python3Packages, gtk3, glib, libxml2, gnuplot, gnome3, gdk_pixbuf, librsvg, intltool, libmirage }:
 let pkg = import ./base.nix {
-  version = "3.1.0";
+  version = "3.2.2";
   pkgName = "image-analyzer";
-  pkgSha256 = "1pr23kxx83xp83h27fkdv86f3bxclkx056f9jx8jhnpn113xp7r2";
+  pkgSha256 = "0by3nd5c413cvk3jmv3md6q0axbiidy061g9dhf37qzwgcakcx8j";
 };
 in callPackage pkg {
-  buildInputs = [ glib gtk3 libxml2 gnuplot (callPackage ./libmirage.nix {}) makeWrapper
-                  gnome3.adwaita-icon-theme gdk_pixbuf librsvg intltool ];
+  buildInputs = [ glib gtk3 libxml2 gnuplot libmirage makeWrapper
+                  gnome3.adwaita-icon-theme gdk_pixbuf librsvg intltool
+                  python3Packages.python python3Packages.pygobject3 python3Packages.matplotlib ];
   drvParams = {
+    nativeBuildInputs = [ gobject-introspection cmake ];
     postFixup = ''
       wrapProgram $out/bin/image-analyzer \
+        --set PYTHONPATH "$PYTHONPATH" \
+        --set GI_TYPELIB_PATH "$GI_TYPELIB_PATH" \
         --prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
     '';
   };
diff --git a/pkgs/misc/emulators/cdemu/client.nix b/pkgs/misc/emulators/cdemu/client.nix
index ec4341a2945..dbf471d35d1 100644
--- a/pkgs/misc/emulators/cdemu/client.nix
+++ b/pkgs/misc/emulators/cdemu/client.nix
@@ -1,11 +1,11 @@
-{ callPackage, pythonPackages, intltool, makeWrapper }:
+{ callPackage, python3Packages, intltool, makeWrapper }:
 let pkg = import ./base.nix {
-  version = "3.1.0";
+  version = "3.2.1";
   pkgName = "cdemu-client";
-  pkgSha256 = "0s6q923g5vkahw5fki6c7a25f68y78zfx4pfsy0xww0z1f5hfsik";
+  pkgSha256 = "1d8m24qvv62xcwafw5zs4yf39vs64kxl4idqcngd8yyjhrb2ykg5";
 };
 in callPackage pkg {
-  buildInputs = [ pythonPackages.python pythonPackages.dbus-python pythonPackages.pygobject3
+  buildInputs = [ python3Packages.python python3Packages.dbus-python python3Packages.pygobject3
                   intltool makeWrapper ];
   drvParams = {
     postFixup = ''
diff --git a/pkgs/misc/emulators/cdemu/daemon.nix b/pkgs/misc/emulators/cdemu/daemon.nix
index 587224e71d7..a80327ce91c 100644
--- a/pkgs/misc/emulators/cdemu/daemon.nix
+++ b/pkgs/misc/emulators/cdemu/daemon.nix
@@ -1,9 +1,9 @@
-{ callPackage, glib, libao, intltool }:
+{ callPackage, glib, libao, intltool, libmirage }:
 let pkg = import ./base.nix {
-  version = "3.1.0";
+  version = "3.2.2";
   pkgName = "cdemu-daemon";
-  pkgSha256 = "0kxwhwjvcr40sjlrvln9gasjwkkfc3wxpcz0rxmffp92w8phz3s9";
+  pkgSha256 = "0himyrhhfjsr4ff5aci7240bpm9x34h20pid412ci8fm16nk929b";
 };
 in callPackage pkg {
-  buildInputs = [ glib libao (callPackage ./libmirage.nix {}) intltool ];
+  buildInputs = [ glib libao libmirage intltool ];
 }
diff --git a/pkgs/misc/emulators/cdemu/gui.nix b/pkgs/misc/emulators/cdemu/gui.nix
index 14560919b71..331ad0ded24 100644
--- a/pkgs/misc/emulators/cdemu/gui.nix
+++ b/pkgs/misc/emulators/cdemu/gui.nix
@@ -1,15 +1,17 @@
-{ callPackage, pythonPackages, gtk3, glib, libnotify, intltool, makeWrapper, gnome3, gdk_pixbuf, librsvg }:
+{ callPackage, makeWrapper, gobject-introspection, cmake
+, python3Packages, gtk3, glib, libnotify, intltool, gnome3, gdk_pixbuf, librsvg }:
 let
   pkg = import ./base.nix {
-    version = "3.1.0";
+    version = "3.2.1";
     pkgName = "gcdemu";
-    pkgSha256 = "0rmnw302fk9vli22v54qx19lqxy23syxi154klxz2vma009q0p02";
+    pkgSha256 = "0lmyvhbf57wcm8k2a33j2dhy4gblaiycy33q070gdrxi37xk7w5g";
   };
-  inherit (pythonPackages) python pygobject3;
+  inherit (python3Packages) python pygobject3;
 in callPackage pkg {
   buildInputs = [ python pygobject3 gtk3 glib libnotify intltool makeWrapper
                   gnome3.adwaita-icon-theme gdk_pixbuf librsvg ];
   drvParams = {
+    nativeBuildInputs = [ gobject-introspection cmake ];
     postFixup = ''
       wrapProgram $out/bin/gcdemu \
         --set PYTHONPATH "$PYTHONPATH" \
diff --git a/pkgs/misc/emulators/cdemu/libmirage.nix b/pkgs/misc/emulators/cdemu/libmirage.nix
index 3813ceef611..0ead78305cd 100644
--- a/pkgs/misc/emulators/cdemu/libmirage.nix
+++ b/pkgs/misc/emulators/cdemu/libmirage.nix
@@ -1,9 +1,18 @@
-{ callPackage, glib, libsndfile, zlib, bzip2, lzma, libsamplerate, intltool }:
+{ callPackage, gobject-introspection, cmake, pkgconfig
+, glib, libsndfile, zlib, bzip2, lzma, libsamplerate, intltool
+, pcre, utillinux, libselinux, libsepol }:
+
 let pkg = import ./base.nix {
-  version = "3.1.0";
+  version = "3.2.2";
   pkgName = "libmirage";
-  pkgSha256 = "0qvkvnvxqx8hqzcqzh7sqjzgbc1nrd91lzv33lr8c6fgaq8cqzmn";
+  pkgSha256 = "0gwrfia0fyhi0b3p2pfyyvrcfcb0qysfzgpdqsqjqbx4xaqx5wpi";
 };
 in callPackage pkg {
   buildInputs = [ glib libsndfile zlib bzip2 lzma libsamplerate intltool ];
+  drvParams = {
+    PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_GIRDIR = "${placeholder "out"}/share/gir-1.0";
+    PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_TYPELIBDIR = "${placeholder "out"}/lib/girepository-1.0";
+    nativeBuildInputs = [ cmake gobject-introspection pkgconfig ];
+    propagatedBuildInputs = [ pcre utillinux libselinux libsepol ];
+  };
 }
diff --git a/pkgs/misc/emulators/cdemu/vhba.nix b/pkgs/misc/emulators/cdemu/vhba.nix
index 73ef7bc6a18..2ce3f606d73 100644
--- a/pkgs/misc/emulators/cdemu/vhba.nix
+++ b/pkgs/misc/emulators/cdemu/vhba.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "vhba-${version}";
-  version = "20170610";
+  version = "20190302";
 
   src  = fetchurl {
     url = "mirror://sourceforge/cdemu/vhba-module-${version}.tar.bz2";
-    sha256 = "1v6r0bgx0a65vlh36b1l2965xybngbpga6rp54k4z74xk0zwjw3r";
+    sha256 = "0wvxxc064i8czza91gh0dhmh55x2nbs7szzyh4g30w0c98hmc1n5";
   };
 
   makeFlags = [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" "INSTALL_MOD_PATH=$(out)" ];
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index 1f20bf2d0ea..d66a79e4df9 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -61,12 +61,12 @@ let
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2019-03-29";
+    version = "2019-04-04";
     src = fetchFromGitHub {
       owner = "w0rp";
       repo = "ale";
-      rev = "89273b65b8de9d3d428e7b1f5c0c347938f5a863";
-      sha256 = "1qgkipiizvzw0jp3f6qp1qkdyvb64hhkimndp0i3gcgfkikbp64p";
+      rev = "cdf89f8269aec31d0dfddf3a2769027d72d38155";
+      sha256 = "13zj7sahhan1w50jkncina979cyk3kca5ly68571bzccyzm8dazi";
     };
   };
 
@@ -248,12 +248,12 @@ let
 
   command-t = buildVimPluginFrom2Nix {
     pname = "command-t";
-    version = "2018-09-19";
+    version = "2019-03-31";
     src = fetchFromGitHub {
       owner = "wincent";
       repo = "command-t";
-      rev = "7364a410bc4f0d7febc183678cd565066dfd1e73";
-      sha256 = "1a14ddq6jkfklicdgkpbizzlrx2r4isxarbav5q86w86rwkx3jfi";
+      rev = "792d6079d32f1973c142c6fab89d2fdc94019ac8";
+      sha256 = "0bi2bmx0k6fwi1jwajgafbb750ajlzz1jncvvg0cssv6h5syxvpk";
       fetchSubmodules = true;
     };
   };
@@ -403,12 +403,12 @@ let
 
   denite-nvim = buildVimPluginFrom2Nix {
     pname = "denite-nvim";
-    version = "2019-03-29";
+    version = "2019-04-02";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "8dbf62b3e894ec7749dcedeb10942ac737182089";
-      sha256 = "18ri0jjnzd21icsivrarlxkr48hzplwbaz3840yjqxg83y1alxzh";
+      rev = "280ea09f278d7301910e7b6abefccd75400bec0b";
+      sha256 = "0dcmbmwh29svin6gn4x5carlgy9plax64p4w0f0cx69440zhl4r0";
     };
   };
 
@@ -494,12 +494,12 @@ let
 
   deoplete-nvim = buildVimPluginFrom2Nix {
     pname = "deoplete-nvim";
-    version = "2019-03-29";
+    version = "2019-03-31";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete.nvim";
-      rev = "06e8981d5a24a17dcebfb51d69eb2e94a69924db";
-      sha256 = "1mnskw3a5axannm7mnwzvvsz9n2b3a1cmhkahp649x99r6h6992d";
+      rev = "19f1dc07f382534d16e5e21f2dddf5109d64ae68";
+      sha256 = "1l9zpvh9hwbd32l2g8h0pq3xh5cixbmqdqznwrksx1da12v2w7aa";
     };
   };
 
@@ -527,12 +527,12 @@ let
 
   echodoc-vim = buildVimPluginFrom2Nix {
     pname = "echodoc-vim";
-    version = "2019-03-24";
+    version = "2019-04-04";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "echodoc.vim";
-      rev = "0b2e6e1c40691b6ebc4ac3f9efe0e9e73debb1cc";
-      sha256 = "0kfdyvcbqd3vwrhsl5bc2b38hw5cqh5sl3srq97y4v93hi5rf72q";
+      rev = "1dfd4d45eb169bba4a5d5a3a4210e663e4a18dfe";
+      sha256 = "021qx04ka3w3w7wlv0p3lrpwxnlvxn0xkv7qwx6fk6594xfbaxi7";
     };
   };
 
@@ -550,12 +550,12 @@ let
 
   elm-vim = buildVimPluginFrom2Nix {
     pname = "elm-vim";
-    version = "2018-11-13";
+    version = "2019-04-05";
     src = fetchFromGitHub {
       owner = "elmcast";
       repo = "elm-vim";
-      rev = "d22c0ba13afb554257a8c176962e2216cc18edd1";
-      sha256 = "03lmbv4zkjdnyzrna7g9pqdgf3jqhi9g59fzjnay4af59hijs1v3";
+      rev = "165107a9fd2b20c8f050fc4f977b4e41c790b1e7";
+      sha256 = "0gf7b49by0ybx3ndz7sz5dwcfnps4sz6wsr02lyarj8f8116ysy5";
     };
   };
 
@@ -1774,12 +1774,12 @@ let
 
   traces-vim = buildVimPluginFrom2Nix {
     pname = "traces-vim";
-    version = "2019-03-28";
+    version = "2019-04-04";
     src = fetchFromGitHub {
       owner = "markonm";
       repo = "traces.vim";
-      rev = "03c24a851181b206ac48beabeee6c2c08d257327";
-      sha256 = "1bbk1ni18rdhpb5w6xhiwdpyyfhc80cljbxvbkpblykg39l0crhx";
+      rev = "1220a0ca044ce9a1622ec2aa60d0d9ef5e801cb4";
+      sha256 = "0j7yhhgfl1ymqkl5lp9vqm3w9l2jkf863xpffw9f0ddmjmk3b7am";
     };
   };
 
@@ -1862,12 +1862,12 @@ let
 
   vim = buildVimPluginFrom2Nix {
     pname = "vim";
-    version = "2019-03-22";
+    version = "2019-04-02";
     src = fetchFromGitHub {
       owner = "dracula";
       repo = "vim";
-      rev = "25a22bb3338bbe7fec142b9582b2f811f1742f76";
-      sha256 = "0ri5z9z2bi5n519c039brqysyykpfmrmjylkq43qsrxiq18fsia8";
+      rev = "9b856347b905dc616baf02b48d7631bc3084726e";
+      sha256 = "0w9aj42hb8x7601gbgf0ggs7p3sm5wrv23bnvrjgdlf3mapg6dwy";
     };
   };
 
@@ -2324,12 +2324,12 @@ let
 
   vim-devicons = buildVimPluginFrom2Nix {
     pname = "vim-devicons";
-    version = "2019-02-22";
+    version = "2019-04-05";
     src = fetchFromGitHub {
       owner = "ryanoasis";
       repo = "vim-devicons";
-      rev = "83808e891068490f2b2325e39edcde5c585bd4ea";
-      sha256 = "18j3sa36zz5vx6hamdmjl25n7ilvh1q2fqfqs6casbdnqmmds1dy";
+      rev = "3a23ac26fd68a2db158cbe3c2ebbae2c142861ce";
+      sha256 = "1n324w9dxp9h7k1bg1hhad5f7pva05kns6mqd5d3yhsidfsxshlb";
     };
   };
 
@@ -2346,12 +2346,12 @@ let
 
   vim-dirvish = buildVimPluginFrom2Nix {
     pname = "vim-dirvish";
-    version = "2019-03-27";
+    version = "2019-04-01";
     src = fetchFromGitHub {
       owner = "justinmk";
       repo = "vim-dirvish";
-      rev = "6fb15d43078b55f30cce5cb73571e6a8f1634124";
-      sha256 = "198c61vz5j27n07r1dx94cr0fzc9pfnz28zl86b3v02y2ry39q27";
+      rev = "ae60a79106dd32d75d3c5cf4dfe44fd658d634ec";
+      sha256 = "1dpyavqhsn7japg5li2fflhn4rq5y5c5m24772550awzd5nx0bif";
     };
   };
 
@@ -2500,12 +2500,12 @@ let
 
   vim-flake8 = buildVimPluginFrom2Nix {
     pname = "vim-flake8";
-    version = "2019-01-10";
+    version = "2019-04-03";
     src = fetchFromGitHub {
       owner = "nvie";
       repo = "vim-flake8";
-      rev = "c6b43f88e4cbce052843e8cbd9593cc7753208fe";
-      sha256 = "0z4c2n8b9vi19qqdmljyms173dmkiarlf4yxx1ix1wvqmnpcr6zf";
+      rev = "ce9ac790430699d346aa074d7f339f2e738284e3";
+      sha256 = "1dlpmsads32c8v49dqgnz1d06bh0aikgl1xq2whiimm2va9vfjng";
     };
   };
 
@@ -2522,12 +2522,12 @@ let
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2019-03-01";
+    version = "2019-04-04";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "bd0b87d36ad80e8acd94f22028d15ebb441b1c28";
-      sha256 = "0ira81j7n2gvrpracag8393yxs5ya4wl8g5ygngl65qrk7y0bj0j";
+      rev = "1b3668b89fee230c6025dc47c01c82fc1e282ac0";
+      sha256 = "0b2z44cw71c0awlajcsln4b43kchhwlb90l461vq7ipmwp3wm8r1";
     };
   };
 
@@ -2588,12 +2588,12 @@ let
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2019-03-28";
+    version = "2019-03-31";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "17d4c087f0ad1dec22df17048f05629b75dee600";
-      sha256 = "0kmqix5asajkadlk8r7aczs0cg8nfqkapscaqqg9kcsf5a4ng47y";
+      rev = "f04098811b8a7aba3dba699ed98f6f6e39b7d7ac";
+      sha256 = "01fsyyqlf1kygy4l3kbb1jcydgaqjmhhzbdf2liv3hx42signcqw";
     };
   };
 
@@ -2610,12 +2610,12 @@ let
 
   vim-grepper = buildVimPluginFrom2Nix {
     pname = "vim-grepper";
-    version = "2019-03-28";
+    version = "2019-04-02";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-grepper";
-      rev = "9e3c7eb2013c83e45ced71383b59941fc871e786";
-      sha256 = "0agc6wlphjr0vmd8a7x9ws1clarrmh8iba8drgs5zdifqhg5q7vl";
+      rev = "1b31eeed2fd672300dc0c52ffbb23397c7243215";
+      sha256 = "18i241a6v0mdzyznwr0al00zvnr0rqfz0khpjx730w6vk1whrp52";
     };
   };
 
@@ -3348,12 +3348,12 @@ let
 
   vim-ruby = buildVimPluginFrom2Nix {
     pname = "vim-ruby";
-    version = "2019-03-13";
+    version = "2019-04-04";
     src = fetchFromGitHub {
       owner = "vim-ruby";
       repo = "vim-ruby";
-      rev = "4abc4340abff09698fc5c8fe91dec87e3c3e2255";
-      sha256 = "0nfhan8gwkv30k7wln2a5b4a144jihnl2hmb8jwrlhw11hh5nrlx";
+      rev = "96d5db458f868255393fdc2732d6bef21a45c68f";
+      sha256 = "1nv51c441d44igjcb3hlib1zbd65h98ywkjyp50hbz5rjkx17mvv";
     };
   };
 
@@ -3425,12 +3425,12 @@ let
 
   vim-signify = buildVimPluginFrom2Nix {
     pname = "vim-signify";
-    version = "2019-03-28";
+    version = "2019-04-05";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-signify";
-      rev = "7afad33753b6ca6d0ff4d98fbc0ab29b6692a7b7";
-      sha256 = "0xlkrni8dh0s6c77k2j507fis839vdbbcc70gs9rqhgw7aykhjvr";
+      rev = "f34fea0eff09d0fb4ec54aec3c07345e6c4486d9";
+      sha256 = "0486sqmz33qcvizdicssp4lajgh2rv0sskz6rndpd7qnm54mn968";
     };
   };
 
@@ -3447,12 +3447,12 @@ let
 
   vim-slime = buildVimPluginFrom2Nix {
     pname = "vim-slime";
-    version = "2019-02-08";
+    version = "2019-04-02";
     src = fetchFromGitHub {
       owner = "jpalardy";
       repo = "vim-slime";
-      rev = "1ff17cc7e8eeaf660daa5efee9e66ef83e00e686";
-      sha256 = "1mrgpkyarc6igd7anzlwpbis6cwsy759ssxapfxmj1q69hyvmdl6";
+      rev = "9035bef4c91fd730d76b5fdc994f1dcdcef49405";
+      sha256 = "1f65nq1hgvblm074hbqy647vixzhkimr1yhqjlrqg7mjiffrkr43";
     };
   };
 
@@ -3480,12 +3480,12 @@ let
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2019-03-22";
+    version = "2019-04-03";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "cbbf1559166f9c308ae0f4634c11bdf282ddafba";
-      sha256 = "1hyn8fxaa7r55s51q9axm1awd10xmw29bmsfizy92vs3a8dxcqny";
+      rev = "4214407a5eda0d49ad591e41b6eb91f4682fa81f";
+      sha256 = "1jvbjnfwpqc53vp5plwyvqnkabi4h6d67sg4dg3byrfs3d0rpzmx";
     };
   };
 
@@ -3612,12 +3612,12 @@ let
 
   vim-terraform = buildVimPluginFrom2Nix {
     pname = "vim-terraform";
-    version = "2019-03-13";
+    version = "2019-03-31";
     src = fetchFromGitHub {
       owner = "hashivim";
       repo = "vim-terraform";
-      rev = "e7cd4746946205ab03039f2d0d0af3c0d55d4c4d";
-      sha256 = "0fv9w5hadyzp871p739mrjsfj0m4xang3lkz3gsv1cxw3iglkfld";
+      rev = "a44bf0b1a142bb39e84e5d525f7d98b5d3a66057";
+      sha256 = "12wyjfmwz3lsd45vv4ava361ph6gravggi9vvvr9qgf5zc1shd3b";
     };
   };
 
@@ -3744,23 +3744,23 @@ let
 
   vim-wakatime = buildVimPluginFrom2Nix {
     pname = "vim-wakatime";
-    version = "2019-03-17";
+    version = "2019-03-31";
     src = fetchFromGitHub {
       owner = "wakatime";
       repo = "vim-wakatime";
-      rev = "e287f95b596b832585439f77fad4b1e039d6d217";
-      sha256 = "19all4i5f1kxf092qjnbxwcg18w1zllpnhf2ma9idj0ccbpl2ds5";
+      rev = "fdd56e0e1b0f9cafc0268076c4636f97ccd081dc";
+      sha256 = "1b1m4d1dn1ymqrj6bbl44hnmf0rh93jipjlrrbk9gr3fc0x99xmh";
     };
   };
 
   vim-watchdogs = buildVimPluginFrom2Nix {
     pname = "vim-watchdogs";
-    version = "2017-12-03";
+    version = "2019-04-03";
     src = fetchFromGitHub {
       owner = "osyo-manga";
       repo = "vim-watchdogs";
-      rev = "a6415c2d928af8c1aacdbce9b1ed8d315891eb03";
-      sha256 = "0n6aqsgn0q1qgpj4yznqwbsbbk2a077gnjlq86ii3jhkzh5fzcff";
+      rev = "33d74aaeb1ef71512baff9eea20a42e06f4f0bc4";
+      sha256 = "0jkkrlw9x524vvsggq51z0yyvys75dv2h21ijxzdqni49kf4vyhk";
     };
   };
 
@@ -3865,12 +3865,12 @@ let
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2019-03-29";
+    version = "2019-04-02";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "de82404c995cf8c529c3fb5cd8a8367e37e66c44";
-      sha256 = "1ysm5vva5v72nxlhi27lqxccsvq4j5xk78rs1zgiqki63zdacbp0";
+      rev = "068ef61e6e9364093272edc4f0cf997a349c0a98";
+      sha256 = "1p81l2ckl1s2xddzhd9fxjsv9a6vhz77gn5jxwlp0in284v2lp2i";
     };
   };
 
@@ -3887,12 +3887,12 @@ let
 
   vimwiki = buildVimPluginFrom2Nix {
     pname = "vimwiki";
-    version = "2019-03-20";
+    version = "2019-03-24";
     src = fetchFromGitHub {
       owner = "vimwiki";
       repo = "vimwiki";
-      rev = "a5ef4787505cb0c10544ef0a76fe9efbbc546972";
-      sha256 = "0dh13ixkxp3fbbysxxd0rpmm5g7gaj0sa2d2bihlba8pf4dw3iv1";
+      rev = "6766c37ce09a623b3de7ddb86ca30278eea37a82";
+      sha256 = "0qz4yx8l0mmwv3s3s4l03af32dymj4b1sz2x4fpdx42g04k1avy2";
     };
   };
 
@@ -3997,12 +3997,12 @@ let
 
   yats-vim = buildVimPluginFrom2Nix {
     pname = "yats-vim";
-    version = "2019-03-07";
+    version = "2019-03-31";
     src = fetchFromGitHub {
       owner = "HerringtonDarkholme";
       repo = "yats.vim";
-      rev = "cad825d5af13a59a17fb10369c2d89508f4cae3e";
-      sha256 = "197p0gs6x50kiwf6p4r3r5a1paz2lm089xb8zq0xvlab8fb6mfyy";
+      rev = "2126e8306cd21a58fb5e089376af8272abe36bb5";
+      sha256 = "08pdwq3cw7fszw75450z404ylcb5nni0p350jxsd7bd3vikdfxp9";
       fetchSubmodules = true;
     };
   };
diff --git a/pkgs/misc/vscode-extensions/default.nix b/pkgs/misc/vscode-extensions/default.nix
index f62c7f5906e..1c4c59f4ecb 100644
--- a/pkgs/misc/vscode-extensions/default.nix
+++ b/pkgs/misc/vscode-extensions/default.nix
@@ -56,8 +56,8 @@ rec {
     mktplcRef = {
       name = "vim";
       publisher = "vscodevim";
-      version = "1.2.0";
-      sha256 = "0c7nv3razc3xjjzmb0q9a89dgry77h79rbkmc8nbfpa1if7lsvcp";
+      version = "1.3.0";
+      sha256 = "18z24w7smjjnv945f8qyy6dl95xckyqa6gg3gijfcigvq5sgyawc";
     };
     meta = {
       license = stdenv.lib.licenses.mit;
diff --git a/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix b/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
index df917888dc7..ee0a02763d1 100644
--- a/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
+++ b/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   name = "firmware-linux-nonfree-${version}";
-  version = "2019-02-13";
+  version = "2019-03-12";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
-    rev = "710963fe53ee3f227556d36839df3858daf6e232";
-    sha256 = "1q3jvlqqxba08s2mrh9hwl0d5w6nhkwj63j0m6amxqpf10k49jxp";
+    rev = "20190312";
+    sha256 = "1wk8l75rg7idvsyli29a1fii4xwz3vnm8d65fjw8d3azihdrhbyy";
   };
 
   installFlags = [ "DESTDIR=$(out)" ];
@@ -15,10 +15,6 @@ stdenv.mkDerivation rec {
   # Firmware blobs do not need fixing and should not be modified
   dontFixup = true;
 
-  outputHashMode = "recursive";
-  outputHashAlgo = "sha256";
-  outputHash = "13gqnr6gm7336pm48v5p37clphwwdmgbrcipsg3w44wdwgc7fa2f";
-
   meta = with stdenv.lib; {
     description = "Binary firmware collection packaged by kernel.org";
     homepage = http://packages.debian.org/sid/firmware-linux-nonfree;
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 89639d34a6c..d803817a03e 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,16 +3,15 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.14.110";
+  version = "4.14.111";
 
   # 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;
 
   # branchVersion needs to be x.y
   extraMeta.branch = concatStrings (intersperse "." (take 2 (splitString "." version)));
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0wlysm6j8mmfwcja8pxg6a5c611m3x597591hswpm2nwcja3bslr";
+    sha256 = "1s56819kkr7h48njk708f9gapy2hr97vxawp5qflv1izamb7s6gq";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
index d043a18844b..9f8ebab4e91 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,16 +3,15 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.19.33";
+  version = "4.19.34";
 
   # 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;
 
   # branchVersion needs to be x.y
   extraMeta.branch = concatStrings (intersperse "." (take 2 (splitString "." version)));
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "14yk5hli62q1g8vghjjghbxjkpxns8zp0l2wmyhlx0v21bx2v89r";
+    sha256 = "1k5qhyh7nwfs5pkbrjpxyj6w17424qcmmd9v7jqfbgnx3wm5wyfx";
   };
 } // (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 f583ced1a63..8923cb158b5 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, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.167";
+  version = "4.9.168";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "130a7z31sdha84w67vfx0j1sq68v15aksfkcshz219p75y561f52";
+    sha256 = "07h9xwxpdxb6gm1fy0d8s6p1zalmw3mbzjgd4gipvmzsxwhiqiad";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.0.nix b/pkgs/os-specific/linux/kernel/linux-5.0.nix
index 4038a89f6c6..aefac13e4e7 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.0.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.0.nix
@@ -3,16 +3,15 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.0.6";
+  version = "5.0.7";
 
   # 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;
 
   # branchVersion needs to be x.y
   extraMeta.branch = concatStrings (intersperse "." (take 2 (splitString "." version)));
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "04zl3xqgr6rlkc44raz3rz74ag7l5j16wkvkdmlzrdq7ia6rljly";
+    sha256 = "1v2lxwamnfm879a9qi9fwp5zyvlzjw9qa0aizidjbiwz5dk7gq8n";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/update.sh b/pkgs/os-specific/linux/kernel/update.sh
index 878c3c14fe4..99f5ac31217 100755
--- a/pkgs/os-specific/linux/kernel/update.sh
+++ b/pkgs/os-specific/linux/kernel/update.sh
@@ -56,7 +56,7 @@ ls $NIXPKGS/pkgs/os-specific/linux/kernel | while read FILE; do
 
   # Commit the changes
   git add -u $NIXPKGS/pkgs/os-specific/linux/kernel/$FILE
-  git commit -m "kernel: $OLDVER -> $V" >/dev/null 2>&1
+  git commit -m "linux: $OLDVER -> $V" >/dev/null 2>&1
 
   echo "Updated $OLDVER -> $V"
 done
diff --git a/pkgs/servers/ftp/pure-ftpd/default.nix b/pkgs/servers/ftp/pure-ftpd/default.nix
index f41bb726a28..978e4fe109c 100644
--- a/pkgs/servers/ftp/pure-ftpd/default.nix
+++ b/pkgs/servers/ftp/pure-ftpd/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl }:
 
 stdenv.mkDerivation rec {
-  name = "pure-ftpd-1.0.47";
+  name = "pure-ftpd-1.0.48";
 
   src = fetchurl {
     url = "https://download.pureftpd.org/pub/pure-ftpd/releases/${name}.tar.gz";
-    sha256 = "1b97ixva8m10vln8xrfwwwzi344bkgxqji26d0nrm1yzylbc6h27";
+    sha256 = "1xr1wlf08qaw93irsbdk4kvhqnkvmi6p0jb8kiiz0vr0h92pszxl";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/servers/home-assistant/appdaemon.nix b/pkgs/servers/home-assistant/appdaemon.nix
index b2a58ce61ba..ca8ddbc7af3 100644
--- a/pkgs/servers/home-assistant/appdaemon.nix
+++ b/pkgs/servers/home-assistant/appdaemon.nix
@@ -40,10 +40,10 @@ let
       });
 
       pyyaml = super.pyyaml.overridePythonAttrs (oldAttrs: rec {
-        version = "3.13";
+        version = "5.1";
         src = oldAttrs.src.override {
           inherit version;
-          sha256 = "3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf";
+          sha256 = "436bc774ecf7c103814098159fbb84c2715d25980175292c648f2da143909f95";
         };
       });
 
@@ -52,11 +52,11 @@ let
 
 in python.pkgs.buildPythonApplication rec {
   pname = "appdaemon";
-  version = "3.0.3";
+  version = "3.0.4";
 
   src = python.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "3e2f5184a51a3b2b473610704344d188226bd7e9a2c2fb762ee90621d38390c6";
+    sha256 = "e2393b5e0bb34e94e61f5debc95ad74c1c6929635b74bf8ba15c22b40cbdec69";
   };
 
   propagatedBuildInputs = with python.pkgs; [
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 778b132bb70..26dd0fa877b 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -2,7 +2,7 @@
 # Do not edit!
 
 {
-  version = "0.90.2";
+  version = "0.91.1";
   components = {
     "abode" = ps: with ps; [  ];
     "abode.alarm_control_panel" = ps: with ps; [  ];
@@ -13,33 +13,29 @@
     "abode.lock" = ps: with ps; [  ];
     "abode.sensor" = ps: with ps; [  ];
     "abode.switch" = ps: with ps; [  ];
+    "acer_projector" = ps: with ps; [  ];
+    "acer_projector.switch" = ps: with ps; [ pyserial ];
+    "actiontec" = ps: with ps; [  ];
+    "actiontec.device_tracker" = ps: with ps; [  ];
     "ads" = ps: with ps; [  ];
     "ads.binary_sensor" = ps: with ps; [  ];
     "ads.light" = ps: with ps; [  ];
     "ads.sensor" = ps: with ps; [  ];
     "ads.switch" = ps: with ps; [  ];
+    "aftership" = ps: with ps; [  ];
+    "aftership.sensor" = ps: with ps; [  ];
     "air_quality" = ps: with ps; [  ];
-    "air_quality.demo" = ps: with ps; [  ];
-    "air_quality.nilu" = ps: with ps; [  ];
-    "air_quality.norway_air" = ps: with ps; [  ];
-    "air_quality.opensensemap" = ps: with ps; [  ];
+    "airvisual" = ps: with ps; [  ];
+    "airvisual.sensor" = ps: with ps; [ pyairvisual ];
+    "aladdin_connect" = ps: with ps; [  ];
+    "aladdin_connect.cover" = ps: with ps; [  ];
     "alarm_control_panel" = ps: with ps; [  ];
-    "alarm_control_panel.alarmdotcom" = ps: with ps; [  ];
-    "alarm_control_panel.canary" = ps: with ps; [  ];
-    "alarm_control_panel.concord232" = ps: with ps; [  ];
-    "alarm_control_panel.demo" = ps: with ps; [  ];
-    "alarm_control_panel.ialarm" = ps: with ps; [  ];
-    "alarm_control_panel.manual" = ps: with ps; [  ];
-    "alarm_control_panel.manual_mqtt" = ps: with ps; [ paho-mqtt ];
-    "alarm_control_panel.ness_alarm" = ps: with ps; [  ];
-    "alarm_control_panel.nx584" = ps: with ps; [  ];
-    "alarm_control_panel.spc" = ps: with ps; [  ];
-    "alarm_control_panel.totalconnect" = ps: with ps; [  ];
-    "alarm_control_panel.yale_smart_alarm" = ps: with ps; [  ];
     "alarmdecoder" = ps: with ps; [  ];
     "alarmdecoder.alarm_control_panel" = ps: with ps; [  ];
     "alarmdecoder.binary_sensor" = ps: with ps; [  ];
     "alarmdecoder.sensor" = ps: with ps; [  ];
+    "alarmdotcom" = ps: with ps; [  ];
+    "alarmdotcom.alarm_control_panel" = ps: with ps; [  ];
     "alert" = ps: with ps; [  ];
     "alexa" = ps: with ps; [ aiohttp-cors ];
     "alexa.auth" = ps: with ps; [  ];
@@ -47,6 +43,10 @@
     "alexa.flash_briefings" = ps: with ps; [  ];
     "alexa.intent" = ps: with ps; [  ];
     "alexa.smart_home" = ps: with ps; [  ];
+    "alpha_vantage" = ps: with ps; [  ];
+    "alpha_vantage.sensor" = ps: with ps; [  ];
+    "amazon_polly" = ps: with ps; [  ];
+    "amazon_polly.tts" = ps: with ps; [ boto3 ];
     "ambient_station" = ps: with ps; [  ];
     "ambient_station.binary_sensor" = ps: with ps; [  ];
     "ambient_station.config_flow" = ps: with ps; [  ];
@@ -62,34 +62,59 @@
     "android_ip_webcam.switch" = ps: with ps; [  ];
     "androidtv" = ps: with ps; [  ];
     "androidtv.media_player" = ps: with ps; [  ];
+    "anel_pwrctrl" = ps: with ps; [  ];
+    "anel_pwrctrl.switch" = ps: with ps; [  ];
+    "anthemav" = ps: with ps; [  ];
+    "anthemav.media_player" = ps: with ps; [  ];
     "apcupsd" = ps: with ps; [  ];
     "apcupsd.binary_sensor" = ps: with ps; [  ];
     "apcupsd.sensor" = ps: with ps; [  ];
     "api" = ps: with ps; [ aiohttp-cors ];
+    "api_streams" = ps: with ps; [  ];
+    "apns" = ps: with ps; [  ];
+    "apns.notify" = ps: with ps; [  ];
     "apple_tv" = ps: with ps; [ pyatv ];
     "apple_tv.media_player" = ps: with ps; [ pyatv ];
     "apple_tv.remote" = ps: with ps; [ pyatv ];
     "aqualogic" = ps: with ps; [  ];
     "aqualogic.sensor" = ps: with ps; [  ];
     "aqualogic.switch" = ps: with ps; [  ];
+    "aquostv" = ps: with ps; [  ];
+    "aquostv.media_player" = ps: with ps; [  ];
     "arduino" = ps: with ps; [  ];
     "arduino.sensor" = ps: with ps; [  ];
     "arduino.switch" = ps: with ps; [  ];
+    "arest" = ps: with ps; [  ];
+    "arest.binary_sensor" = ps: with ps; [  ];
+    "arest.sensor" = ps: with ps; [  ];
+    "arest.switch" = ps: with ps; [  ];
     "arlo" = ps: with ps; [  ];
     "arlo.alarm_control_panel" = ps: with ps; [  ];
     "arlo.camera" = ps: with ps; [ ha-ffmpeg ];
     "arlo.sensor" = ps: with ps; [  ];
+    "aruba" = ps: with ps; [  ];
+    "aruba.device_tracker" = ps: with ps; [ pexpect ];
+    "arwn" = ps: with ps; [  ];
+    "arwn.sensor" = ps: with ps; [ paho-mqtt ];
+    "asterisk_cdr" = ps: with ps; [  ];
+    "asterisk_cdr.mailbox" = ps: with ps; [  ];
     "asterisk_mbox" = ps: with ps; [  ];
     "asterisk_mbox.mailbox" = ps: with ps; [  ];
     "asuswrt" = ps: with ps; [  ];
+    "asuswrt.device_tracker" = ps: with ps; [  ];
+    "asuswrt.sensor" = ps: with ps; [  ];
     "august" = ps: with ps; [  ];
     "august.binary_sensor" = ps: with ps; [  ];
     "august.camera" = ps: with ps; [  ];
     "august.lock" = ps: with ps; [  ];
+    "aurora" = ps: with ps; [  ];
+    "aurora.binary_sensor" = ps: with ps; [  ];
     "auth" = ps: with ps; [ aiohttp-cors ];
     "auth.indieauth" = ps: with ps; [  ];
     "auth.login_flow" = ps: with ps; [  ];
     "auth.mfa_setup_flow" = ps: with ps; [  ];
+    "automatic" = ps: with ps; [  ];
+    "automatic.device_tracker" = ps: with ps; [ aiohttp-cors ];
     "automation" = ps: with ps; [  ];
     "automation.event" = ps: with ps; [  ];
     "automation.geo_location" = ps: with ps; [  ];
@@ -104,108 +129,129 @@
     "automation.time_pattern" = ps: with ps; [  ];
     "automation.webhook" = ps: with ps; [ aiohttp-cors ];
     "automation.zone" = ps: with ps; [  ];
+    "avion" = ps: with ps; [  ];
+    "avion.light" = ps: with ps; [  ];
+    "awair" = ps: with ps; [  ];
+    "awair.sensor" = ps: with ps; [  ];
+    "aws" = ps: with ps; [  ];
+    "aws.config_flow" = ps: with ps; [  ];
+    "aws.const" = ps: with ps; [  ];
+    "aws.notify" = ps: with ps; [  ];
+    "aws_lambda" = ps: with ps; [  ];
+    "aws_lambda.notify" = ps: with ps; [ boto3 ];
+    "aws_sns" = ps: with ps; [  ];
+    "aws_sns.notify" = ps: with ps; [ boto3 ];
+    "aws_sqs" = ps: with ps; [  ];
+    "aws_sqs.notify" = ps: with ps; [ boto3 ];
     "axis" = ps: with ps; [  ];
     "axis.binary_sensor" = ps: with ps; [  ];
     "axis.camera" = ps: with ps; [  ];
+    "axis.config_flow" = ps: with ps; [  ];
+    "axis.const" = ps: with ps; [  ];
+    "axis.device" = ps: with ps; [  ];
+    "axis.errors" = ps: with ps; [  ];
+    "baidu" = ps: with ps; [  ];
+    "baidu.tts" = ps: with ps; [  ];
+    "bayesian" = ps: with ps; [  ];
+    "bayesian.binary_sensor" = ps: with ps; [  ];
     "bbb_gpio" = ps: with ps; [  ];
     "bbb_gpio.binary_sensor" = ps: with ps; [  ];
     "bbb_gpio.switch" = ps: with ps; [  ];
+    "bbox" = ps: with ps; [  ];
+    "bbox.device_tracker" = ps: with ps; [  ];
+    "bbox.sensor" = ps: with ps; [  ];
+    "bh1750" = ps: with ps; [  ];
+    "bh1750.sensor" = ps: with ps; [  ];
     "binary_sensor" = ps: with ps; [  ];
-    "binary_sensor.arest" = ps: with ps; [  ];
-    "binary_sensor.aurora" = ps: with ps; [  ];
-    "binary_sensor.bayesian" = ps: with ps; [  ];
-    "binary_sensor.command_line" = ps: with ps; [  ];
-    "binary_sensor.concord232" = ps: with ps; [  ];
-    "binary_sensor.demo" = ps: with ps; [  ];
-    "binary_sensor.ffmpeg_motion" = ps: with ps; [ ha-ffmpeg ];
-    "binary_sensor.ffmpeg_noise" = ps: with ps; [ ha-ffmpeg ];
-    "binary_sensor.flic" = ps: with ps; [  ];
-    "binary_sensor.hikvision" = ps: with ps; [  ];
-    "binary_sensor.iss" = ps: with ps; [  ];
-    "binary_sensor.mystrom" = ps: with ps; [ aiohttp-cors ];
-    "binary_sensor.ness_alarm" = ps: with ps; [  ];
-    "binary_sensor.nx584" = ps: with ps; [  ];
-    "binary_sensor.ping" = ps: with ps; [  ];
-    "binary_sensor.random" = ps: with ps; [  ];
-    "binary_sensor.rest" = ps: with ps; [  ];
-    "binary_sensor.rflink" = ps: with ps; [  ];
-    "binary_sensor.ring" = ps: with ps; [  ];
-    "binary_sensor.sleepiq" = ps: with ps; [  ];
-    "binary_sensor.spc" = ps: with ps; [  ];
-    "binary_sensor.tapsaff" = ps: with ps; [  ];
-    "binary_sensor.tcp" = ps: with ps; [  ];
-    "binary_sensor.template" = ps: with ps; [  ];
-    "binary_sensor.threshold" = ps: with ps; [  ];
-    "binary_sensor.tod" = ps: with ps; [  ];
-    "binary_sensor.trend" = ps: with ps; [ numpy ];
-    "binary_sensor.uptimerobot" = ps: with ps; [  ];
-    "binary_sensor.vultr" = ps: with ps; [ vultr ];
-    "binary_sensor.workday" = ps: with ps; [  ];
+    "bitcoin" = ps: with ps; [  ];
+    "bitcoin.sensor" = ps: with ps; [  ];
+    "blackbird" = ps: with ps; [  ];
+    "blackbird.media_player" = ps: with ps; [  ];
     "blink" = ps: with ps; [  ];
     "blink.alarm_control_panel" = ps: with ps; [  ];
     "blink.binary_sensor" = ps: with ps; [  ];
     "blink.camera" = ps: with ps; [  ];
     "blink.sensor" = ps: with ps; [  ];
+    "blinksticklight" = ps: with ps; [  ];
+    "blinksticklight.light" = ps: with ps; [ BlinkStick ];
+    "blinkt" = ps: with ps; [  ];
+    "blinkt.light" = ps: with ps; [  ];
+    "blockchain" = ps: with ps; [  ];
+    "blockchain.sensor" = ps: with ps; [  ];
     "bloomsky" = ps: with ps; [  ];
     "bloomsky.binary_sensor" = ps: with ps; [  ];
     "bloomsky.camera" = ps: with ps; [  ];
     "bloomsky.sensor" = ps: with ps; [  ];
+    "bluesound" = ps: with ps; [  ];
+    "bluesound.media_player" = ps: with ps; [ xmltodict ];
+    "bluetooth_le_tracker" = ps: with ps; [  ];
+    "bluetooth_le_tracker.device_tracker" = ps: with ps; [  ];
+    "bluetooth_tracker" = ps: with ps; [  ];
+    "bluetooth_tracker.device_tracker" = ps: with ps; [ bt_proximity ];
+    "bme280" = ps: with ps; [  ];
+    "bme280.sensor" = ps: with ps; [  ];
+    "bme680" = ps: with ps; [  ];
+    "bme680.sensor" = ps: with ps; [  ];
     "bmw_connected_drive" = ps: with ps; [  ];
     "bmw_connected_drive.binary_sensor" = ps: with ps; [  ];
     "bmw_connected_drive.device_tracker" = ps: with ps; [  ];
     "bmw_connected_drive.lock" = ps: with ps; [  ];
     "bmw_connected_drive.sensor" = ps: with ps; [  ];
+    "bom" = ps: with ps; [  ];
+    "bom.sensor" = ps: with ps; [  ];
+    "bom.weather" = ps: with ps; [  ];
+    "braviatv" = ps: with ps; [  ];
+    "braviatv.media_player" = ps: with ps; [  ];
+    "broadlink" = ps: with ps; [  ];
+    "broadlink.sensor" = ps: with ps; [ broadlink ];
+    "broadlink.switch" = ps: with ps; [ broadlink ];
+    "brottsplatskartan" = ps: with ps; [  ];
+    "brottsplatskartan.sensor" = ps: with ps; [  ];
     "browser" = ps: with ps; [  ];
+    "brunt" = ps: with ps; [  ];
+    "brunt.cover" = ps: with ps; [  ];
+    "bt_home_hub_5" = ps: with ps; [  ];
+    "bt_home_hub_5.device_tracker" = ps: with ps; [  ];
+    "bt_smarthub" = ps: with ps; [  ];
+    "bt_smarthub.device_tracker" = ps: with ps; [  ];
+    "buienradar" = ps: with ps; [  ];
+    "buienradar.sensor" = ps: with ps; [  ];
+    "buienradar.weather" = ps: with ps; [  ];
+    "caldav" = ps: with ps; [  ];
+    "caldav.calendar" = ps: with ps; [  ];
     "calendar" = ps: with ps; [ aiohttp-cors ];
-    "calendar.caldav" = ps: with ps; [  ];
-    "calendar.demo" = ps: with ps; [  ];
-    "calendar.todoist" = ps: with ps; [ todoist ];
     "camera" = ps: with ps; [ aiohttp-cors ];
-    "camera.canary" = ps: with ps; [ ha-ffmpeg ];
-    "camera.demo" = ps: with ps; [  ];
-    "camera.familyhub" = ps: with ps; [  ];
-    "camera.ffmpeg" = ps: with ps; [ ha-ffmpeg ];
-    "camera.foscam" = ps: with ps; [  ];
-    "camera.generic" = ps: with ps; [  ];
-    "camera.local_file" = ps: with ps; [  ];
-    "camera.mjpeg" = ps: with ps; [  ];
-    "camera.onvif" = ps: with ps; [ ha-ffmpeg ];
-    "camera.proxy" = ps: with ps; [ pillow ];
-    "camera.push" = ps: with ps; [ aiohttp-cors ];
-    "camera.ring" = ps: with ps; [ ha-ffmpeg ];
-    "camera.rpi_camera" = ps: with ps; [  ];
-    "camera.synology" = ps: with ps; [  ];
-    "camera.uvc" = ps: with ps; [  ];
-    "camera.xeoma" = ps: with ps; [  ];
-    "camera.xiaomi" = ps: with ps; [ ha-ffmpeg ];
-    "camera.yi" = ps: with ps; [ ha-ffmpeg ];
+    "camera.const" = ps: with ps; [  ];
+    "camera.prefs" = ps: with ps; [  ];
     "canary" = ps: with ps; [  ];
+    "canary.alarm_control_panel" = ps: with ps; [  ];
+    "canary.camera" = ps: with ps; [ ha-ffmpeg ];
+    "canary.sensor" = ps: with ps; [  ];
     "cast" = ps: with ps; [ PyChromecast ];
     "cast.media_player" = ps: with ps; [ PyChromecast ];
+    "cert_expiry" = ps: with ps; [  ];
+    "cert_expiry.sensor" = ps: with ps; [  ];
+    "channels" = ps: with ps; [  ];
+    "channels.media_player" = ps: with ps; [  ];
+    "cisco_ios" = ps: with ps; [  ];
+    "cisco_ios.device_tracker" = ps: with ps; [ pexpect ];
     "cisco_mobility_express" = ps: with ps; [  ];
     "cisco_mobility_express.device_tracker" = ps: with ps; [  ];
+    "ciscospark" = ps: with ps; [  ];
+    "ciscospark.notify" = ps: with ps; [  ];
+    "citybikes" = ps: with ps; [  ];
+    "citybikes.sensor" = ps: with ps; [  ];
+    "clementine" = ps: with ps; [  ];
+    "clementine.media_player" = ps: with ps; [  ];
+    "clickatell" = ps: with ps; [  ];
+    "clickatell.notify" = ps: with ps; [  ];
+    "clicksend" = ps: with ps; [  ];
+    "clicksend.notify" = ps: with ps; [  ];
+    "clicksend_tts" = ps: with ps; [  ];
+    "clicksend_tts.notify" = ps: with ps; [  ];
     "climate" = ps: with ps; [  ];
     "climate.const" = ps: with ps; [  ];
-    "climate.coolmaster" = ps: with ps; [  ];
-    "climate.demo" = ps: with ps; [  ];
-    "climate.dyson" = ps: with ps; [  ];
-    "climate.ephember" = ps: with ps; [  ];
-    "climate.eq3btsmart" = ps: with ps; [ construct ];
-    "climate.flexit" = ps: with ps; [  ];
-    "climate.generic_thermostat" = ps: with ps; [  ];
-    "climate.heatmiser" = ps: with ps; [  ];
-    "climate.honeywell" = ps: with ps; [  ];
-    "climate.melissa" = ps: with ps; [  ];
-    "climate.mill" = ps: with ps; [  ];
-    "climate.nuheat" = ps: with ps; [  ];
-    "climate.oem" = ps: with ps; [  ];
-    "climate.proliphix" = ps: with ps; [  ];
-    "climate.radiotherm" = ps: with ps; [  ];
     "climate.reproduce_state" = ps: with ps; [  ];
-    "climate.sensibo" = ps: with ps; [  ];
-    "climate.touchline" = ps: with ps; [  ];
-    "climate.venstar" = ps: with ps; [  ];
-    "climate.zhong_hong" = ps: with ps; [  ];
     "cloud" = ps: with ps; [ aiohttp-cors ];
     "cloud.binary_sensor" = ps: with ps; [ aiohttp-cors ];
     "cloud.const" = ps: with ps; [  ];
@@ -213,10 +259,28 @@
     "cloud.prefs" = ps: with ps; [  ];
     "cloud.utils" = ps: with ps; [  ];
     "cloudflare" = ps: with ps; [  ];
+    "cmus" = ps: with ps; [  ];
+    "cmus.media_player" = ps: with ps; [  ];
+    "co2signal" = ps: with ps; [  ];
+    "co2signal.sensor" = ps: with ps; [  ];
     "coinbase" = ps: with ps; [  ];
+    "coinbase.sensor" = ps: with ps; [  ];
+    "coinmarketcap" = ps: with ps; [  ];
+    "coinmarketcap.sensor" = ps: with ps; [ coinmarketcap ];
+    "comed_hourly_pricing" = ps: with ps; [  ];
+    "comed_hourly_pricing.sensor" = ps: with ps; [  ];
     "comfoconnect" = ps: with ps; [  ];
     "comfoconnect.fan" = ps: with ps; [  ];
     "comfoconnect.sensor" = ps: with ps; [  ];
+    "command_line" = ps: with ps; [  ];
+    "command_line.binary_sensor" = ps: with ps; [  ];
+    "command_line.cover" = ps: with ps; [  ];
+    "command_line.notify" = ps: with ps; [  ];
+    "command_line.sensor" = ps: with ps; [  ];
+    "command_line.switch" = ps: with ps; [  ];
+    "concord232" = ps: with ps; [  ];
+    "concord232.alarm_control_panel" = ps: with ps; [  ];
+    "concord232.binary_sensor" = ps: with ps; [  ];
     "config" = ps: with ps; [ aiohttp-cors ];
     "config.area_registry" = ps: with ps; [  ];
     "config.auth" = ps: with ps; [  ];
@@ -232,31 +296,36 @@
     "configurator" = ps: with ps; [  ];
     "conversation" = ps: with ps; [ aiohttp-cors ];
     "conversation.util" = ps: with ps; [  ];
+    "coolmaster" = ps: with ps; [  ];
+    "coolmaster.climate" = ps: with ps; [  ];
     "counter" = ps: with ps; [  ];
     "cover" = ps: with ps; [  ];
-    "cover.aladdin_connect" = ps: with ps; [  ];
-    "cover.brunt" = ps: with ps; [  ];
-    "cover.command_line" = ps: with ps; [  ];
-    "cover.demo" = ps: with ps; [  ];
-    "cover.garadget" = ps: with ps; [  ];
-    "cover.gogogate2" = ps: with ps; [  ];
-    "cover.group" = ps: with ps; [  ];
-    "cover.myq" = ps: with ps; [  ];
-    "cover.opengarage" = ps: with ps; [  ];
-    "cover.rflink" = ps: with ps; [  ];
-    "cover.template" = ps: with ps; [  ];
     "cppm_tracker" = ps: with ps; [  ];
     "cppm_tracker.device_tracker" = ps: with ps; [  ];
+    "cpuspeed" = ps: with ps; [  ];
+    "cpuspeed.sensor" = ps: with ps; [ py-cpuinfo ];
+    "crimereports" = ps: with ps; [  ];
+    "crimereports.sensor" = ps: with ps; [  ];
+    "cups" = ps: with ps; [  ];
+    "cups.sensor" = ps: with ps; [ pycups ];
+    "currencylayer" = ps: with ps; [  ];
+    "currencylayer.sensor" = ps: with ps; [  ];
     "daikin" = ps: with ps; [  ];
     "daikin.climate" = ps: with ps; [  ];
     "daikin.config_flow" = ps: with ps; [  ];
     "daikin.const" = ps: with ps; [  ];
     "daikin.sensor" = ps: with ps; [  ];
+    "daikin.switch" = ps: with ps; [  ];
     "danfoss_air" = ps: with ps; [  ];
     "danfoss_air.binary_sensor" = ps: with ps; [  ];
     "danfoss_air.sensor" = ps: with ps; [  ];
     "danfoss_air.switch" = ps: with ps; [  ];
+    "darksky" = ps: with ps; [  ];
+    "darksky.sensor" = ps: with ps; [ python-forecastio ];
+    "darksky.weather" = ps: with ps; [ python-forecastio ];
     "datadog" = ps: with ps; [ datadog ];
+    "ddwrt" = ps: with ps; [  ];
+    "ddwrt.device_tracker" = ps: with ps; [  ];
     "deconz" = ps: with ps; [  ];
     "deconz.binary_sensor" = ps: with ps; [  ];
     "deconz.climate" = ps: with ps; [  ];
@@ -264,68 +333,77 @@
     "deconz.const" = ps: with ps; [  ];
     "deconz.cover" = ps: with ps; [  ];
     "deconz.deconz_device" = ps: with ps; [  ];
+    "deconz.errors" = ps: with ps; [  ];
     "deconz.gateway" = ps: with ps; [  ];
     "deconz.light" = ps: with ps; [  ];
     "deconz.scene" = ps: with ps; [  ];
     "deconz.sensor" = ps: with ps; [  ];
     "deconz.switch" = ps: with ps; [  ];
+    "decora" = ps: with ps; [  ];
+    "decora.light" = ps: with ps; [  ];
+    "decora_wifi" = ps: with ps; [  ];
+    "decora_wifi.light" = ps: with ps; [  ];
     "default_config" = ps: with ps; [ pynacl aiohttp-cors distro sqlalchemy zeroconf ];
+    "deluge" = ps: with ps; [  ];
+    "deluge.sensor" = ps: with ps; [ deluge-client ];
+    "deluge.switch" = ps: with ps; [ deluge-client ];
     "demo" = ps: with ps; [ aiohttp-cors ];
+    "demo.air_quality" = ps: with ps; [  ];
+    "demo.alarm_control_panel" = ps: with ps; [  ];
+    "demo.binary_sensor" = ps: with ps; [  ];
+    "demo.calendar" = ps: with ps; [  ];
+    "demo.camera" = ps: with ps; [  ];
+    "demo.climate" = ps: with ps; [  ];
+    "demo.cover" = ps: with ps; [  ];
+    "demo.device_tracker" = ps: with ps; [  ];
+    "demo.fan" = ps: with ps; [  ];
+    "demo.geo_location" = ps: with ps; [  ];
+    "demo.image_processing" = ps: with ps; [  ];
+    "demo.light" = ps: with ps; [  ];
+    "demo.lock" = ps: with ps; [  ];
+    "demo.mailbox" = ps: with ps; [  ];
+    "demo.media_player" = ps: with ps; [  ];
+    "demo.notify" = ps: with ps; [  ];
     "demo.remote" = ps: with ps; [  ];
+    "demo.sensor" = ps: with ps; [  ];
+    "demo.switch" = ps: with ps; [  ];
+    "demo.tts" = ps: with ps; [  ];
+    "demo.vacuum" = ps: with ps; [  ];
+    "demo.water_heater" = ps: with ps; [  ];
+    "demo.weather" = ps: with ps; [  ];
+    "denon" = ps: with ps; [  ];
+    "denon.media_player" = ps: with ps; [  ];
+    "denonavr" = ps: with ps; [  ];
+    "denonavr.media_player" = ps: with ps; [  ];
+    "deutsche_bahn" = ps: with ps; [  ];
+    "deutsche_bahn.sensor" = ps: with ps; [  ];
     "device_sun_light_trigger" = ps: with ps; [  ];
     "device_tracker" = ps: with ps; [  ];
-    "device_tracker.actiontec" = ps: with ps; [  ];
-    "device_tracker.aruba" = ps: with ps; [ pexpect ];
-    "device_tracker.asuswrt" = ps: with ps; [  ];
-    "device_tracker.automatic" = ps: with ps; [ aiohttp-cors ];
-    "device_tracker.bbox" = ps: with ps; [  ];
-    "device_tracker.bluetooth_le_tracker" = ps: with ps; [  ];
-    "device_tracker.bluetooth_tracker" = ps: with ps; [ bt_proximity ];
-    "device_tracker.bt_home_hub_5" = ps: with ps; [  ];
-    "device_tracker.bt_smarthub" = ps: with ps; [  ];
-    "device_tracker.cisco_ios" = ps: with ps; [ pexpect ];
-    "device_tracker.ddwrt" = ps: with ps; [  ];
-    "device_tracker.demo" = ps: with ps; [  ];
-    "device_tracker.ee_brightbox" = ps: with ps; [  ];
-    "device_tracker.fritz" = ps: with ps; [ fritzconnection ];
-    "device_tracker.google_maps" = ps: with ps; [  ];
-    "device_tracker.hitron_coda" = ps: with ps; [  ];
-    "device_tracker.huawei_router" = ps: with ps; [  ];
-    "device_tracker.icloud" = ps: with ps; [  ];
-    "device_tracker.keenetic_ndms2" = ps: with ps; [  ];
-    "device_tracker.linksys_ap" = ps: with ps; [ beautifulsoup4 ];
-    "device_tracker.linksys_smart" = ps: with ps; [  ];
-    "device_tracker.luci" = ps: with ps; [  ];
-    "device_tracker.meraki" = ps: with ps; [ aiohttp-cors ];
-    "device_tracker.mikrotik" = ps: with ps; [  ];
-    "device_tracker.mqtt_json" = ps: with ps; [ paho-mqtt ];
-    "device_tracker.netgear" = ps: with ps; [  ];
-    "device_tracker.nmap_tracker" = ps: with ps; [  ];
-    "device_tracker.ping" = ps: with ps; [  ];
-    "device_tracker.quantum_gateway" = ps: with ps; [  ];
-    "device_tracker.ritassist" = ps: with ps; [  ];
-    "device_tracker.sky_hub" = ps: with ps; [  ];
-    "device_tracker.snmp" = ps: with ps; [ pysnmp ];
-    "device_tracker.swisscom" = ps: with ps; [  ];
-    "device_tracker.synology_srm" = ps: with ps; [  ];
-    "device_tracker.thomson" = ps: with ps; [  ];
-    "device_tracker.tile" = ps: with ps; [  ];
-    "device_tracker.tomato" = ps: with ps; [  ];
-    "device_tracker.tplink" = ps: with ps; [  ];
-    "device_tracker.traccar" = ps: with ps; [  ];
-    "device_tracker.trackr" = ps: with ps; [  ];
-    "device_tracker.ubee" = ps: with ps; [  ];
-    "device_tracker.ubus" = ps: with ps; [  ];
-    "device_tracker.unifi" = ps: with ps; [ pyunifi ];
-    "device_tracker.unifi_direct" = ps: with ps; [ pexpect ];
-    "device_tracker.upc_connect" = ps: with ps; [ defusedxml ];
-    "device_tracker.xfinity" = ps: with ps; [  ];
-    "device_tracker.xiaomi" = ps: with ps; [  ];
+    "dht" = ps: with ps; [  ];
+    "dht.sensor" = ps: with ps; [  ];
     "dialogflow" = ps: with ps; [ aiohttp-cors ];
     "digital_ocean" = ps: with ps; [ digital-ocean ];
     "digital_ocean.binary_sensor" = ps: with ps; [ digital-ocean ];
     "digital_ocean.switch" = ps: with ps; [ digital-ocean ];
+    "digitalloggers" = ps: with ps; [  ];
+    "digitalloggers.switch" = ps: with ps; [  ];
+    "directv" = ps: with ps; [  ];
+    "directv.media_player" = ps: with ps; [  ];
+    "discogs" = ps: with ps; [  ];
+    "discogs.sensor" = ps: with ps; [ discogs_client ];
+    "discord" = ps: with ps; [  ];
+    "discord.notify" = ps: with ps; [ discordpy ];
     "discovery" = ps: with ps; [ netdisco ];
+    "dlib_face_detect" = ps: with ps; [  ];
+    "dlib_face_detect.image_processing" = ps: with ps; [ face_recognition ];
+    "dlib_face_identify" = ps: with ps; [  ];
+    "dlib_face_identify.image_processing" = ps: with ps; [ face_recognition ];
+    "dlink" = ps: with ps; [  ];
+    "dlink.switch" = ps: with ps; [  ];
+    "dlna_dmr" = ps: with ps; [  ];
+    "dlna_dmr.media_player" = ps: with ps; [  ];
+    "dnsip" = ps: with ps; [  ];
+    "dnsip.sensor" = ps: with ps; [ aiodns ];
     "dominos" = ps: with ps; [ aiohttp-cors ];
     "doorbird" = ps: with ps; [  ];
     "doorbird.camera" = ps: with ps; [  ];
@@ -334,10 +412,28 @@
     "dovado.notify" = ps: with ps; [  ];
     "dovado.sensor" = ps: with ps; [  ];
     "downloader" = ps: with ps; [  ];
+    "dsmr" = ps: with ps; [  ];
+    "dsmr.sensor" = ps: with ps; [  ];
+    "dte_energy_bridge" = ps: with ps; [  ];
+    "dte_energy_bridge.sensor" = ps: with ps; [  ];
+    "dublin_bus_transport" = ps: with ps; [  ];
+    "dublin_bus_transport.sensor" = ps: with ps; [  ];
     "duckdns" = ps: with ps; [  ];
+    "duke_energy" = ps: with ps; [  ];
+    "duke_energy.sensor" = ps: with ps; [  ];
+    "dunehd" = ps: with ps; [  ];
+    "dunehd.media_player" = ps: with ps; [  ];
+    "dwd_weather_warnings" = ps: with ps; [  ];
+    "dwd_weather_warnings.sensor" = ps: with ps; [  ];
     "dweet" = ps: with ps; [  ];
     "dweet.sensor" = ps: with ps; [  ];
     "dyson" = ps: with ps; [  ];
+    "dyson.climate" = ps: with ps; [  ];
+    "dyson.fan" = ps: with ps; [  ];
+    "dyson.sensor" = ps: with ps; [  ];
+    "dyson.vacuum" = ps: with ps; [  ];
+    "ebox" = ps: with ps; [  ];
+    "ebox.sensor" = ps: with ps; [  ];
     "ebusd" = ps: with ps; [  ];
     "ebusd.const" = ps: with ps; [  ];
     "ebusd.sensor" = ps: with ps; [  ];
@@ -350,17 +446,29 @@
     "ecobee.notify" = ps: with ps; [  ];
     "ecobee.sensor" = ps: with ps; [  ];
     "ecobee.weather" = ps: with ps; [  ];
+    "econet" = ps: with ps; [  ];
+    "econet.water_heater" = ps: with ps; [  ];
     "ecovacs" = ps: with ps; [  ];
     "ecovacs.vacuum" = ps: with ps; [  ];
+    "eddystone_temperature" = ps: with ps; [  ];
+    "eddystone_temperature.sensor" = ps: with ps; [ construct ];
+    "edimax" = ps: with ps; [  ];
+    "edimax.switch" = ps: with ps; [  ];
     "edp_redy" = ps: with ps; [  ];
     "edp_redy.sensor" = ps: with ps; [  ];
     "edp_redy.switch" = ps: with ps; [  ];
+    "ee_brightbox" = ps: with ps; [  ];
+    "ee_brightbox.device_tracker" = ps: with ps; [  ];
+    "efergy" = ps: with ps; [  ];
+    "efergy.sensor" = ps: with ps; [  ];
     "egardia" = ps: with ps; [  ];
     "egardia.alarm_control_panel" = ps: with ps; [  ];
     "egardia.binary_sensor" = ps: with ps; [  ];
     "eight_sleep" = ps: with ps; [  ];
     "eight_sleep.binary_sensor" = ps: with ps; [  ];
     "eight_sleep.sensor" = ps: with ps; [  ];
+    "eliqonline" = ps: with ps; [  ];
+    "eliqonline.sensor" = ps: with ps; [  ];
     "elkm1" = ps: with ps; [  ];
     "elkm1.alarm_control_panel" = ps: with ps; [  ];
     "elkm1.climate" = ps: with ps; [  ];
@@ -368,6 +476,10 @@
     "elkm1.scene" = ps: with ps; [  ];
     "elkm1.sensor" = ps: with ps; [  ];
     "elkm1.switch" = ps: with ps; [  ];
+    "emby" = ps: with ps; [  ];
+    "emby.media_player" = ps: with ps; [  ];
+    "emoncms" = ps: with ps; [  ];
+    "emoncms.sensor" = ps: with ps; [  ];
     "emoncms_history" = ps: with ps; [  ];
     "emulated_hue" = ps: with ps; [ aiohttp-cors ];
     "emulated_hue.hue_api" = ps: with ps; [  ];
@@ -383,31 +495,60 @@
     "enocean.light" = ps: with ps; [  ];
     "enocean.sensor" = ps: with ps; [  ];
     "enocean.switch" = ps: with ps; [  ];
+    "enphase_envoy" = ps: with ps; [  ];
+    "enphase_envoy.sensor" = ps: with ps; [  ];
+    "entur_public_transport" = ps: with ps; [  ];
+    "entur_public_transport.sensor" = ps: with ps; [  ];
+    "envirophat" = ps: with ps; [  ];
+    "envirophat.sensor" = ps: with ps; [  ];
     "envisalink" = ps: with ps; [  ];
     "envisalink.alarm_control_panel" = ps: with ps; [  ];
     "envisalink.binary_sensor" = ps: with ps; [  ];
     "envisalink.sensor" = ps: with ps; [  ];
+    "ephember" = ps: with ps; [  ];
+    "ephember.climate" = ps: with ps; [  ];
+    "epson" = ps: with ps; [  ];
+    "epson.media_player" = ps: with ps; [  ];
+    "eq3btsmart" = ps: with ps; [  ];
+    "eq3btsmart.climate" = ps: with ps; [ construct ];
     "esphome" = ps: with ps; [ aioesphomeapi ];
-    "esphome.binary_sensor" = ps: with ps; [  ];
+    "esphome.binary_sensor" = ps: with ps; [ aioesphomeapi ];
+    "esphome.camera" = ps: with ps; [ aioesphomeapi ];
     "esphome.config_flow" = ps: with ps; [  ];
-    "esphome.cover" = ps: with ps; [  ];
-    "esphome.fan" = ps: with ps; [  ];
-    "esphome.light" = ps: with ps; [  ];
-    "esphome.sensor" = ps: with ps; [  ];
-    "esphome.switch" = ps: with ps; [  ];
+    "esphome.cover" = ps: with ps; [ aioesphomeapi ];
+    "esphome.fan" = ps: with ps; [ aioesphomeapi ];
+    "esphome.light" = ps: with ps; [ aioesphomeapi ];
+    "esphome.sensor" = ps: with ps; [ aioesphomeapi ];
+    "esphome.switch" = ps: with ps; [ aioesphomeapi ];
+    "etherscan" = ps: with ps; [  ];
+    "etherscan.sensor" = ps: with ps; [  ];
     "eufy" = ps: with ps; [  ];
     "eufy.light" = ps: with ps; [  ];
     "eufy.switch" = ps: with ps; [  ];
+    "everlights" = ps: with ps; [  ];
+    "everlights.light" = ps: with ps; [  ];
     "evohome" = ps: with ps; [  ];
     "evohome.climate" = ps: with ps; [  ];
+    "facebook" = ps: with ps; [  ];
+    "facebook.notify" = ps: with ps; [  ];
+    "facebox" = ps: with ps; [  ];
+    "facebox.image_processing" = ps: with ps; [  ];
+    "fail2ban" = ps: with ps; [  ];
+    "fail2ban.sensor" = ps: with ps; [  ];
+    "familyhub" = ps: with ps; [  ];
+    "familyhub.camera" = ps: with ps; [  ];
     "fan" = ps: with ps; [  ];
-    "fan.demo" = ps: with ps; [  ];
-    "fan.dyson" = ps: with ps; [  ];
-    "fan.template" = ps: with ps; [  ];
     "fastdotcom" = ps: with ps; [  ];
     "fastdotcom.sensor" = ps: with ps; [  ];
+    "fedex" = ps: with ps; [  ];
+    "fedex.sensor" = ps: with ps; [  ];
     "feedreader" = ps: with ps; [  ];
     "ffmpeg" = ps: with ps; [ ha-ffmpeg ];
+    "ffmpeg.camera" = ps: with ps; [ ha-ffmpeg ];
+    "ffmpeg_motion" = ps: with ps; [  ];
+    "ffmpeg_motion.binary_sensor" = ps: with ps; [ ha-ffmpeg ];
+    "ffmpeg_noise" = ps: with ps; [  ];
+    "ffmpeg_noise.binary_sensor" = ps: with ps; [ ha-ffmpeg ];
     "fibaro" = ps: with ps; [  ];
     "fibaro.binary_sensor" = ps: with ps; [  ];
     "fibaro.cover" = ps: with ps; [  ];
@@ -415,30 +556,100 @@
     "fibaro.scene" = ps: with ps; [  ];
     "fibaro.sensor" = ps: with ps; [  ];
     "fibaro.switch" = ps: with ps; [  ];
+    "fido" = ps: with ps; [  ];
+    "fido.sensor" = ps: with ps; [  ];
+    "file" = ps: with ps; [  ];
+    "file.notify" = ps: with ps; [  ];
+    "file.sensor" = ps: with ps; [  ];
+    "filesize" = ps: with ps; [  ];
+    "filesize.sensor" = ps: with ps; [  ];
+    "filter" = ps: with ps; [  ];
+    "filter.sensor" = ps: with ps; [  ];
+    "fints" = ps: with ps; [  ];
+    "fints.sensor" = ps: with ps; [ fints ];
+    "fitbit" = ps: with ps; [  ];
+    "fitbit.sensor" = ps: with ps; [ aiohttp-cors ];
+    "fixer" = ps: with ps; [  ];
+    "fixer.sensor" = ps: with ps; [  ];
+    "flexit" = ps: with ps; [  ];
+    "flexit.climate" = ps: with ps; [  ];
+    "flic" = ps: with ps; [  ];
+    "flic.binary_sensor" = ps: with ps; [  ];
+    "flock" = ps: with ps; [  ];
+    "flock.notify" = ps: with ps; [  ];
+    "flunearyou" = ps: with ps; [  ];
+    "flunearyou.sensor" = ps: with ps; [  ];
+    "flux" = ps: with ps; [  ];
+    "flux.switch" = ps: with ps; [  ];
+    "flux_led" = ps: with ps; [  ];
+    "flux_led.light" = ps: with ps; [  ];
+    "folder" = ps: with ps; [  ];
+    "folder.sensor" = ps: with ps; [  ];
     "folder_watcher" = ps: with ps; [ watchdog ];
+    "foobot" = ps: with ps; [  ];
+    "foobot.sensor" = ps: with ps; [  ];
+    "foscam" = ps: with ps; [  ];
+    "foscam.camera" = ps: with ps; [  ];
     "foursquare" = ps: with ps; [ aiohttp-cors ];
+    "free_mobile" = ps: with ps; [  ];
+    "free_mobile.notify" = ps: with ps; [  ];
     "freebox" = ps: with ps; [  ];
     "freebox.device_tracker" = ps: with ps; [  ];
     "freebox.sensor" = ps: with ps; [  ];
+    "freebox.switch" = ps: with ps; [  ];
     "freedns" = ps: with ps; [  ];
+    "fritz" = ps: with ps; [  ];
+    "fritz.device_tracker" = ps: with ps; [ fritzconnection ];
     "fritzbox" = ps: with ps; [  ];
     "fritzbox.binary_sensor" = ps: with ps; [  ];
     "fritzbox.climate" = ps: with ps; [  ];
     "fritzbox.sensor" = ps: with ps; [  ];
     "fritzbox.switch" = ps: with ps; [  ];
+    "fritzbox_callmonitor" = ps: with ps; [  ];
+    "fritzbox_callmonitor.sensor" = ps: with ps; [ fritzconnection ];
+    "fritzbox_netmonitor" = ps: with ps; [  ];
+    "fritzbox_netmonitor.sensor" = ps: with ps; [ fritzconnection ];
+    "fritzdect" = ps: with ps; [  ];
+    "fritzdect.switch" = ps: with ps; [  ];
     "frontend" = ps: with ps; [ aiohttp-cors ];
     "frontend.storage" = ps: with ps; [  ];
+    "frontier_silicon" = ps: with ps; [  ];
+    "frontier_silicon.media_player" = ps: with ps; [  ];
+    "futurenow" = ps: with ps; [  ];
+    "futurenow.light" = ps: with ps; [  ];
+    "garadget" = ps: with ps; [  ];
+    "garadget.cover" = ps: with ps; [  ];
     "gc100" = ps: with ps; [  ];
     "gc100.binary_sensor" = ps: with ps; [  ];
     "gc100.switch" = ps: with ps; [  ];
+    "gearbest" = ps: with ps; [  ];
+    "gearbest.sensor" = ps: with ps; [  ];
+    "geizhals" = ps: with ps; [  ];
+    "geizhals.sensor" = ps: with ps; [  ];
+    "generic" = ps: with ps; [  ];
+    "generic.camera" = ps: with ps; [  ];
+    "generic_thermostat" = ps: with ps; [  ];
+    "generic_thermostat.climate" = ps: with ps; [  ];
+    "geo_json_events" = ps: with ps; [  ];
+    "geo_json_events.geo_location" = ps: with ps; [  ];
     "geo_location" = ps: with ps; [  ];
-    "geo_location.demo" = ps: with ps; [  ];
-    "geo_location.geo_json_events" = ps: with ps; [  ];
-    "geo_location.nsw_rural_fire_service_feed" = ps: with ps; [  ];
-    "geo_location.usgs_earthquakes_feed" = ps: with ps; [  ];
+    "geo_rss_events" = ps: with ps; [  ];
+    "geo_rss_events.sensor" = ps: with ps; [  ];
     "geofency" = ps: with ps; [ aiohttp-cors ];
     "geofency.device_tracker" = ps: with ps; [ aiohttp-cors ];
+    "github" = ps: with ps; [  ];
+    "github.sensor" = ps: with ps; [ PyGithub ];
+    "gitlab_ci" = ps: with ps; [  ];
+    "gitlab_ci.sensor" = ps: with ps; [ python-gitlab ];
+    "gitter" = ps: with ps; [  ];
+    "gitter.sensor" = ps: with ps; [  ];
+    "glances" = ps: with ps; [  ];
+    "glances.sensor" = ps: with ps; [  ];
+    "gntp" = ps: with ps; [  ];
+    "gntp.notify" = ps: with ps; [  ];
     "goalfeed" = ps: with ps; [  ];
+    "gogogate2" = ps: with ps; [  ];
+    "gogogate2.cover" = ps: with ps; [  ];
     "google" = ps: with ps; [ google_api_python_client httplib2 oauth2client ];
     "google.calendar" = ps: with ps; [  ];
     "google.tts" = ps: with ps; [  ];
@@ -449,16 +660,38 @@
     "google_assistant.smart_home" = ps: with ps; [  ];
     "google_assistant.trait" = ps: with ps; [  ];
     "google_domains" = ps: with ps; [  ];
+    "google_maps" = ps: with ps; [  ];
+    "google_maps.device_tracker" = ps: with ps; [  ];
     "google_pubsub" = ps: with ps; [ google_cloud_pubsub ];
+    "google_travel_time" = ps: with ps; [  ];
+    "google_travel_time.sensor" = ps: with ps; [  ];
+    "google_wifi" = ps: with ps; [  ];
+    "google_wifi.sensor" = ps: with ps; [  ];
     "googlehome" = ps: with ps; [  ];
     "googlehome.device_tracker" = ps: with ps; [  ];
     "googlehome.sensor" = ps: with ps; [  ];
+    "gpmdp" = ps: with ps; [  ];
+    "gpmdp.media_player" = ps: with ps; [ websocket_client ];
+    "gpsd" = ps: with ps; [  ];
+    "gpsd.sensor" = ps: with ps; [  ];
     "gpslogger" = ps: with ps; [ aiohttp-cors ];
     "gpslogger.device_tracker" = ps: with ps; [ aiohttp-cors ];
     "graphite" = ps: with ps; [  ];
     "greeneye_monitor" = ps: with ps; [  ];
+    "greeneye_monitor.sensor" = ps: with ps; [  ];
+    "greenwave" = ps: with ps; [  ];
+    "greenwave.light" = ps: with ps; [  ];
     "group" = ps: with ps; [  ];
+    "group.cover" = ps: with ps; [  ];
+    "group.light" = ps: with ps; [  ];
+    "group.notify" = ps: with ps; [  ];
     "group.reproduce_state" = ps: with ps; [  ];
+    "gstreamer" = ps: with ps; [  ];
+    "gstreamer.media_player" = ps: with ps; [  ];
+    "gtfs" = ps: with ps; [  ];
+    "gtfs.sensor" = ps: with ps; [  ];
+    "gtt" = ps: with ps; [  ];
+    "gtt.sensor" = ps: with ps; [  ];
     "habitica" = ps: with ps; [  ];
     "habitica.sensor" = ps: with ps; [  ];
     "hangouts" = ps: with ps; [  ];
@@ -467,6 +700,8 @@
     "hangouts.hangouts_bot" = ps: with ps; [  ];
     "hangouts.intents" = ps: with ps; [  ];
     "hangouts.notify" = ps: with ps; [  ];
+    "harman_kardon_avr" = ps: with ps; [  ];
+    "harman_kardon_avr.media_player" = ps: with ps; [  ];
     "harmony" = ps: with ps; [  ];
     "harmony.remote" = ps: with ps; [  ];
     "hassio" = ps: with ps; [ aiohttp-cors ];
@@ -475,11 +710,28 @@
     "hassio.discovery" = ps: with ps; [  ];
     "hassio.handler" = ps: with ps; [  ];
     "hassio.http" = ps: with ps; [  ];
+    "hassio.ingress" = ps: with ps; [  ];
+    "haveibeenpwned" = ps: with ps; [  ];
+    "haveibeenpwned.sensor" = ps: with ps; [  ];
+    "hddtemp" = ps: with ps; [  ];
+    "hddtemp.sensor" = ps: with ps; [  ];
     "hdmi_cec" = ps: with ps; [  ];
     "hdmi_cec.media_player" = ps: with ps; [  ];
     "hdmi_cec.switch" = ps: with ps; [  ];
+    "heatmiser" = ps: with ps; [  ];
+    "heatmiser.climate" = ps: with ps; [  ];
+    "hikvision" = ps: with ps; [  ];
+    "hikvision.binary_sensor" = ps: with ps; [  ];
+    "hikvisioncam" = ps: with ps; [  ];
+    "hikvisioncam.switch" = ps: with ps; [  ];
+    "hipchat" = ps: with ps; [  ];
+    "hipchat.notify" = ps: with ps; [  ];
     "history" = ps: with ps; [ aiohttp-cors sqlalchemy ];
     "history_graph" = ps: with ps; [ aiohttp-cors sqlalchemy ];
+    "history_stats" = ps: with ps; [  ];
+    "history_stats.sensor" = ps: with ps; [ aiohttp-cors sqlalchemy ];
+    "hitron_coda" = ps: with ps; [  ];
+    "hitron_coda.device_tracker" = ps: with ps; [  ];
     "hive" = ps: with ps; [  ];
     "hive.binary_sensor" = ps: with ps; [  ];
     "hive.climate" = ps: with ps; [  ];
@@ -488,6 +740,8 @@
     "hive.switch" = ps: with ps; [  ];
     "hlk_sw16" = ps: with ps; [  ];
     "hlk_sw16.switch" = ps: with ps; [  ];
+    "homeassistant" = ps: with ps; [  ];
+    "homeassistant.scene" = ps: with ps; [  ];
     "homekit" = ps: with ps; [  ];
     "homekit.const" = ps: with ps; [  ];
     "homekit.util" = ps: with ps; [  ];
@@ -528,6 +782,16 @@
     "homematicip_cloud.weather" = ps: with ps; [  ];
     "homeworks" = ps: with ps; [  ];
     "homeworks.light" = ps: with ps; [  ];
+    "honeywell" = ps: with ps; [  ];
+    "honeywell.climate" = ps: with ps; [  ];
+    "hook" = ps: with ps; [  ];
+    "hook.switch" = ps: with ps; [  ];
+    "horizon" = ps: with ps; [  ];
+    "horizon.media_player" = ps: with ps; [  ];
+    "hp_ilo" = ps: with ps; [  ];
+    "hp_ilo.sensor" = ps: with ps; [  ];
+    "html5" = ps: with ps; [  ];
+    "html5.notify" = ps: with ps; [ aiohttp-cors ];
     "http" = ps: with ps; [ aiohttp-cors ];
     "http.auth" = ps: with ps; [  ];
     "http.ban" = ps: with ps; [  ];
@@ -537,23 +801,39 @@
     "http.real_ip" = ps: with ps; [  ];
     "http.static" = ps: with ps; [  ];
     "http.view" = ps: with ps; [  ];
+    "htu21d" = ps: with ps; [  ];
+    "htu21d.sensor" = ps: with ps; [  ];
     "huawei_lte" = ps: with ps; [  ];
     "huawei_lte.device_tracker" = ps: with ps; [  ];
     "huawei_lte.notify" = ps: with ps; [  ];
     "huawei_lte.sensor" = ps: with ps; [  ];
+    "huawei_router" = ps: with ps; [  ];
+    "huawei_router.device_tracker" = ps: with ps; [  ];
     "hue" = ps: with ps; [ aiohue ];
     "hue.bridge" = ps: with ps; [  ];
     "hue.config_flow" = ps: with ps; [  ];
     "hue.const" = ps: with ps; [  ];
     "hue.errors" = ps: with ps; [  ];
     "hue.light" = ps: with ps; [ aiohue ];
+    "hunterdouglas_powerview" = ps: with ps; [  ];
+    "hunterdouglas_powerview.scene" = ps: with ps; [  ];
     "hydrawise" = ps: with ps; [  ];
     "hydrawise.binary_sensor" = ps: with ps; [  ];
     "hydrawise.sensor" = ps: with ps; [  ];
     "hydrawise.switch" = ps: with ps; [  ];
+    "hydroquebec" = ps: with ps; [  ];
+    "hydroquebec.sensor" = ps: with ps; [  ];
+    "hyperion" = ps: with ps; [  ];
+    "hyperion.light" = ps: with ps; [  ];
+    "ialarm" = ps: with ps; [  ];
+    "ialarm.alarm_control_panel" = ps: with ps; [  ];
+    "icloud" = ps: with ps; [  ];
+    "icloud.device_tracker" = ps: with ps; [  ];
     "idteck_prox" = ps: with ps; [  ];
     "ifttt" = ps: with ps; [ aiohttp-cors pyfttt ];
     "ifttt.alarm_control_panel" = ps: with ps; [ aiohttp-cors pyfttt ];
+    "iglo" = ps: with ps; [  ];
+    "iglo.light" = ps: with ps; [  ];
     "ihc" = ps: with ps; [ defusedxml ];
     "ihc.binary_sensor" = ps: with ps; [ defusedxml ];
     "ihc.const" = ps: with ps; [  ];
@@ -563,19 +843,12 @@
     "ihc.switch" = ps: with ps; [ defusedxml ];
     "ihc.util" = ps: with ps; [  ];
     "image_processing" = ps: with ps; [ aiohttp-cors ];
-    "image_processing.demo" = ps: with ps; [  ];
-    "image_processing.dlib_face_detect" = ps: with ps; [ face_recognition ];
-    "image_processing.dlib_face_identify" = ps: with ps; [ face_recognition ];
-    "image_processing.facebox" = ps: with ps; [  ];
-    "image_processing.microsoft_face_detect" = ps: with ps; [ aiohttp-cors ];
-    "image_processing.microsoft_face_identify" = ps: with ps; [ aiohttp-cors ];
-    "image_processing.openalpr_cloud" = ps: with ps; [  ];
-    "image_processing.openalpr_local" = ps: with ps; [  ];
-    "image_processing.opencv" = ps: with ps; [ numpy ];
-    "image_processing.qrcode" = ps: with ps; [ pillow ];
-    "image_processing.seven_segments" = ps: with ps; [  ];
-    "image_processing.tensorflow" = ps: with ps; [ numpy pillow protobuf ];
+    "imap" = ps: with ps; [  ];
+    "imap.sensor" = ps: with ps; [  ];
+    "imap_email_content" = ps: with ps; [  ];
+    "imap_email_content.sensor" = ps: with ps; [  ];
     "influxdb" = ps: with ps; [ influxdb ];
+    "influxdb.sensor" = ps: with ps; [ influxdb ];
     "input_boolean" = ps: with ps; [  ];
     "input_datetime" = ps: with ps; [  ];
     "input_number" = ps: with ps; [  ];
@@ -590,6 +863,8 @@
     "insteon.switch" = ps: with ps; [  ];
     "insteon_local" = ps: with ps; [  ];
     "insteon_plm" = ps: with ps; [  ];
+    "integration" = ps: with ps; [  ];
+    "integration.sensor" = ps: with ps; [  ];
     "intent_script" = ps: with ps; [  ];
     "introduction" = ps: with ps; [  ];
     "ios" = ps: with ps; [ aiohttp-cors zeroconf ];
@@ -603,6 +878,12 @@
     "ipma.config_flow" = ps: with ps; [  ];
     "ipma.const" = ps: with ps; [  ];
     "ipma.weather" = ps: with ps; [  ];
+    "irish_rail_transport" = ps: with ps; [  ];
+    "irish_rail_transport.sensor" = ps: with ps; [  ];
+    "islamic_prayer_times" = ps: with ps; [  ];
+    "islamic_prayer_times.sensor" = ps: with ps; [  ];
+    "iss" = ps: with ps; [  ];
+    "iss.binary_sensor" = ps: with ps; [  ];
     "isy994" = ps: with ps; [  ];
     "isy994.binary_sensor" = ps: with ps; [  ];
     "isy994.cover" = ps: with ps; [  ];
@@ -613,15 +894,25 @@
     "isy994.switch" = ps: with ps; [  ];
     "itach" = ps: with ps; [  ];
     "itach.remote" = ps: with ps; [  ];
+    "itunes" = ps: with ps; [  ];
+    "itunes.media_player" = ps: with ps; [  ];
+    "jewish_calendar" = ps: with ps; [  ];
+    "jewish_calendar.sensor" = ps: with ps; [  ];
     "joaoapps_join" = ps: with ps; [  ];
     "joaoapps_join.notify" = ps: with ps; [  ];
     "juicenet" = ps: with ps; [  ];
     "juicenet.sensor" = ps: with ps; [  ];
+    "kankun" = ps: with ps; [  ];
+    "kankun.switch" = ps: with ps; [  ];
+    "keenetic_ndms2" = ps: with ps; [  ];
+    "keenetic_ndms2.device_tracker" = ps: with ps; [  ];
     "keyboard" = ps: with ps; [  ];
     "keyboard_remote" = ps: with ps; [ evdev ];
     "kira" = ps: with ps; [  ];
     "kira.remote" = ps: with ps; [  ];
     "kira.sensor" = ps: with ps; [  ];
+    "kiwi" = ps: with ps; [  ];
+    "kiwi.lock" = ps: with ps; [  ];
     "knx" = ps: with ps; [  ];
     "knx.binary_sensor" = ps: with ps; [  ];
     "knx.climate" = ps: with ps; [  ];
@@ -631,80 +922,91 @@
     "knx.scene" = ps: with ps; [  ];
     "knx.sensor" = ps: with ps; [  ];
     "knx.switch" = ps: with ps; [  ];
+    "kodi" = ps: with ps; [  ];
+    "kodi.media_player" = ps: with ps; [ jsonrpc-async jsonrpc-websocket ];
+    "kodi.notify" = ps: with ps; [ jsonrpc-async ];
     "konnected" = ps: with ps; [ aiohttp-cors ];
     "konnected.binary_sensor" = ps: with ps; [ aiohttp-cors ];
     "konnected.const" = ps: with ps; [  ];
     "konnected.handlers" = ps: with ps; [  ];
     "konnected.sensor" = ps: with ps; [ aiohttp-cors ];
     "konnected.switch" = ps: with ps; [ aiohttp-cors ];
+    "kwb" = ps: with ps; [  ];
+    "kwb.sensor" = ps: with ps; [  ];
+    "lacrosse" = ps: with ps; [  ];
+    "lacrosse.sensor" = ps: with ps; [  ];
     "lametric" = ps: with ps; [  ];
     "lametric.notify" = ps: with ps; [  ];
+    "lannouncer" = ps: with ps; [  ];
+    "lannouncer.notify" = ps: with ps; [  ];
+    "lastfm" = ps: with ps; [  ];
+    "lastfm.sensor" = ps: with ps; [ pylast ];
+    "launch_library" = ps: with ps; [  ];
+    "launch_library.sensor" = ps: with ps; [  ];
     "lcn" = ps: with ps; [  ];
     "lcn.const" = ps: with ps; [  ];
     "lcn.cover" = ps: with ps; [  ];
     "lcn.light" = ps: with ps; [  ];
+    "lcn.sensor" = ps: with ps; [  ];
     "lcn.switch" = ps: with ps; [  ];
+    "lg_netcast" = ps: with ps; [  ];
+    "lg_netcast.media_player" = ps: with ps; [  ];
+    "lg_soundbar" = ps: with ps; [  ];
+    "lg_soundbar.media_player" = ps: with ps; [  ];
     "lifx" = ps: with ps; [ aiolifx ];
     "lifx.light" = ps: with ps; [ aiolifx aiolifx-effects ];
+    "lifx_cloud" = ps: with ps; [  ];
+    "lifx_cloud.scene" = ps: with ps; [  ];
+    "lifx_legacy" = ps: with ps; [  ];
+    "lifx_legacy.light" = ps: with ps; [  ];
     "light" = ps: with ps; [  ];
-    "light.avion" = ps: with ps; [  ];
-    "light.blinksticklight" = ps: with ps; [ BlinkStick ];
-    "light.blinkt" = ps: with ps; [  ];
-    "light.decora" = ps: with ps; [  ];
-    "light.decora_wifi" = ps: with ps; [  ];
-    "light.demo" = ps: with ps; [  ];
-    "light.everlights" = ps: with ps; [  ];
-    "light.flux_led" = ps: with ps; [  ];
-    "light.futurenow" = ps: with ps; [  ];
-    "light.greenwave" = ps: with ps; [  ];
-    "light.group" = ps: with ps; [  ];
-    "light.hyperion" = ps: with ps; [  ];
-    "light.iglo" = ps: with ps; [  ];
-    "light.lifx_legacy" = ps: with ps; [  ];
-    "light.limitlessled" = ps: with ps; [ limitlessled ];
-    "light.litejet" = ps: with ps; [  ];
-    "light.lw12wifi" = ps: with ps; [  ];
-    "light.mystrom" = ps: with ps; [  ];
-    "light.nanoleaf" = ps: with ps; [  ];
-    "light.niko_home_control" = ps: with ps; [  ];
-    "light.opple" = ps: with ps; [  ];
-    "light.osramlightify" = ps: with ps; [  ];
-    "light.piglow" = ps: with ps; [  ];
-    "light.rflink" = ps: with ps; [  ];
-    "light.rpi_gpio_pwm" = ps: with ps; [  ];
-    "light.sensehat" = ps: with ps; [  ];
-    "light.switch" = ps: with ps; [  ];
-    "light.template" = ps: with ps; [  ];
-    "light.tikteck" = ps: with ps; [  ];
-    "light.x10" = ps: with ps; [  ];
-    "light.yeelight" = ps: with ps; [  ];
-    "light.yeelightsunflower" = ps: with ps; [  ];
-    "light.zengge" = ps: with ps; [  ];
     "lightwave" = ps: with ps; [  ];
     "lightwave.light" = ps: with ps; [  ];
     "lightwave.switch" = ps: with ps; [  ];
+    "limitlessled" = ps: with ps; [  ];
+    "limitlessled.light" = ps: with ps; [ limitlessled ];
+    "linksys_ap" = ps: with ps; [  ];
+    "linksys_ap.device_tracker" = ps: with ps; [ beautifulsoup4 ];
+    "linksys_smart" = ps: with ps; [  ];
+    "linksys_smart.device_tracker" = ps: with ps; [  ];
+    "linky" = ps: with ps; [  ];
+    "linky.sensor" = ps: with ps; [  ];
     "linode" = ps: with ps; [ linode-api ];
     "linode.binary_sensor" = ps: with ps; [ linode-api ];
     "linode.switch" = ps: with ps; [ linode-api ];
+    "linux_battery" = ps: with ps; [  ];
+    "linux_battery.sensor" = ps: with ps; [ batinfo ];
     "lirc" = ps: with ps; [  ];
     "litejet" = ps: with ps; [  ];
+    "litejet.light" = ps: with ps; [  ];
+    "litejet.scene" = ps: with ps; [  ];
+    "litejet.switch" = ps: with ps; [  ];
+    "liveboxplaytv" = ps: with ps; [  ];
+    "liveboxplaytv.media_player" = ps: with ps; [  ];
+    "llamalab_automate" = ps: with ps; [  ];
+    "llamalab_automate.notify" = ps: with ps; [  ];
+    "local_file" = ps: with ps; [  ];
+    "local_file.camera" = ps: with ps; [  ];
     "locative" = ps: with ps; [ aiohttp-cors ];
     "locative.device_tracker" = ps: with ps; [ aiohttp-cors ];
     "lock" = ps: with ps; [  ];
-    "lock.demo" = ps: with ps; [  ];
-    "lock.kiwi" = ps: with ps; [  ];
-    "lock.lockitron" = ps: with ps; [  ];
-    "lock.nello" = ps: with ps; [  ];
-    "lock.nuki" = ps: with ps; [  ];
-    "lock.sesame" = ps: with ps; [  ];
-    "lock.template" = ps: with ps; [  ];
+    "lockitron" = ps: with ps; [  ];
+    "lockitron.lock" = ps: with ps; [  ];
     "logbook" = ps: with ps; [ aiohttp-cors sqlalchemy ];
     "logentries" = ps: with ps; [  ];
     "logger" = ps: with ps; [  ];
     "logi_circle" = ps: with ps; [  ];
     "logi_circle.camera" = ps: with ps; [  ];
     "logi_circle.sensor" = ps: with ps; [  ];
+    "london_air" = ps: with ps; [  ];
+    "london_air.sensor" = ps: with ps; [  ];
+    "london_underground" = ps: with ps; [  ];
+    "london_underground.sensor" = ps: with ps; [  ];
+    "loopenergy" = ps: with ps; [  ];
+    "loopenergy.sensor" = ps: with ps; [  ];
     "lovelace" = ps: with ps; [  ];
+    "luci" = ps: with ps; [  ];
+    "luci.device_tracker" = ps: with ps; [  ];
     "luftdaten" = ps: with ps; [ luftdaten ];
     "luftdaten.config_flow" = ps: with ps; [  ];
     "luftdaten.const" = ps: with ps; [  ];
@@ -723,12 +1025,24 @@
     "lutron_caseta.light" = ps: with ps; [  ];
     "lutron_caseta.scene" = ps: with ps; [  ];
     "lutron_caseta.switch" = ps: with ps; [  ];
+    "lw12wifi" = ps: with ps; [  ];
+    "lw12wifi.light" = ps: with ps; [  ];
+    "lyft" = ps: with ps; [  ];
+    "lyft.sensor" = ps: with ps; [  ];
+    "magicseaweed" = ps: with ps; [  ];
+    "magicseaweed.sensor" = ps: with ps; [  ];
     "mailbox" = ps: with ps; [ aiohttp-cors ];
-    "mailbox.asterisk_cdr" = ps: with ps; [  ];
-    "mailbox.demo" = ps: with ps; [  ];
     "mailgun" = ps: with ps; [ aiohttp-cors ];
     "mailgun.notify" = ps: with ps; [ aiohttp-cors ];
+    "manual" = ps: with ps; [  ];
+    "manual.alarm_control_panel" = ps: with ps; [  ];
+    "manual_mqtt" = ps: with ps; [  ];
+    "manual_mqtt.alarm_control_panel" = ps: with ps; [ paho-mqtt ];
     "map" = ps: with ps; [  ];
+    "marytts" = ps: with ps; [  ];
+    "marytts.tts" = ps: with ps; [  ];
+    "mastodon" = ps: with ps; [  ];
+    "mastodon.notify" = ps: with ps; [  ];
     "matrix" = ps: with ps; [ matrix-client ];
     "matrix.notify" = ps: with ps; [ matrix-client ];
     "maxcube" = ps: with ps; [  ];
@@ -736,76 +1050,55 @@
     "maxcube.climate" = ps: with ps; [  ];
     "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light ];
     "media_player" = ps: with ps; [ aiohttp-cors ];
-    "media_player.anthemav" = ps: with ps; [  ];
-    "media_player.aquostv" = ps: with ps; [  ];
-    "media_player.blackbird" = ps: with ps; [  ];
-    "media_player.bluesound" = ps: with ps; [ xmltodict ];
-    "media_player.braviatv" = ps: with ps; [  ];
-    "media_player.channels" = ps: with ps; [  ];
-    "media_player.clementine" = ps: with ps; [  ];
-    "media_player.cmus" = ps: with ps; [  ];
     "media_player.const" = ps: with ps; [  ];
-    "media_player.demo" = ps: with ps; [  ];
-    "media_player.denon" = ps: with ps; [  ];
-    "media_player.denonavr" = ps: with ps; [  ];
-    "media_player.directv" = ps: with ps; [  ];
-    "media_player.dlna_dmr" = ps: with ps; [  ];
-    "media_player.dunehd" = ps: with ps; [  ];
-    "media_player.emby" = ps: with ps; [  ];
-    "media_player.epson" = ps: with ps; [  ];
-    "media_player.frontier_silicon" = ps: with ps; [  ];
-    "media_player.gpmdp" = ps: with ps; [ websocket_client ];
-    "media_player.gstreamer" = ps: with ps; [  ];
-    "media_player.harman_kardon_avr" = ps: with ps; [  ];
-    "media_player.horizon" = ps: with ps; [  ];
-    "media_player.itunes" = ps: with ps; [  ];
-    "media_player.kodi" = ps: with ps; [ jsonrpc-async jsonrpc-websocket ];
-    "media_player.lg_netcast" = ps: with ps; [  ];
-    "media_player.lg_soundbar" = ps: with ps; [  ];
-    "media_player.liveboxplaytv" = ps: with ps; [  ];
-    "media_player.mediaroom" = ps: with ps; [  ];
-    "media_player.monoprice" = ps: with ps; [  ];
-    "media_player.mpchc" = ps: with ps; [  ];
-    "media_player.mpd" = ps: with ps; [ mpd2 ];
-    "media_player.nad" = ps: with ps; [  ];
-    "media_player.onkyo" = ps: with ps; [ onkyo-eiscp ];
-    "media_player.openhome" = ps: with ps; [  ];
-    "media_player.panasonic_bluray" = ps: with ps; [  ];
-    "media_player.panasonic_viera" = ps: with ps; [ wakeonlan ];
-    "media_player.pandora" = ps: with ps; [ pexpect ];
-    "media_player.philips_js" = ps: with ps; [  ];
-    "media_player.pioneer" = ps: with ps; [  ];
-    "media_player.pjlink" = ps: with ps; [  ];
-    "media_player.plex" = ps: with ps; [  ];
     "media_player.reproduce_state" = ps: with ps; [  ];
-    "media_player.russound_rio" = ps: with ps; [  ];
-    "media_player.russound_rnet" = ps: with ps; [  ];
-    "media_player.samsungtv" = ps: with ps; [ wakeonlan ];
-    "media_player.snapcast" = ps: with ps; [ snapcast ];
-    "media_player.songpal" = ps: with ps; [  ];
-    "media_player.soundtouch" = ps: with ps; [ libsoundtouch ];
-    "media_player.spotify" = ps: with ps; [ aiohttp-cors ];
-    "media_player.squeezebox" = ps: with ps; [  ];
-    "media_player.ue_smart_radio" = ps: with ps; [  ];
-    "media_player.universal" = ps: with ps; [  ];
-    "media_player.vizio" = ps: with ps; [  ];
-    "media_player.vlc" = ps: with ps; [  ];
-    "media_player.volumio" = ps: with ps; [  ];
-    "media_player.xiaomi_tv" = ps: with ps; [  ];
-    "media_player.yamaha" = ps: with ps; [  ];
-    "media_player.yamaha_musiccast" = ps: with ps; [  ];
-    "media_player.ziggo_mediabox_xl" = ps: with ps; [  ];
+    "mediaroom" = ps: with ps; [  ];
+    "mediaroom.media_player" = ps: with ps; [  ];
     "melissa" = ps: with ps; [  ];
+    "melissa.climate" = ps: with ps; [  ];
+    "meraki" = ps: with ps; [  ];
+    "meraki.device_tracker" = ps: with ps; [ aiohttp-cors ];
+    "message_bird" = ps: with ps; [  ];
+    "message_bird.notify" = ps: with ps; [  ];
+    "met" = ps: with ps; [  ];
+    "met.weather" = ps: with ps; [  ];
     "meteo_france" = ps: with ps; [  ];
     "meteo_france.sensor" = ps: with ps; [  ];
     "meteo_france.weather" = ps: with ps; [  ];
+    "metoffice" = ps: with ps; [  ];
+    "metoffice.sensor" = ps: with ps; [  ];
+    "metoffice.weather" = ps: with ps; [  ];
+    "mfi" = ps: with ps; [  ];
+    "mfi.sensor" = ps: with ps; [  ];
+    "mfi.switch" = ps: with ps; [  ];
+    "mhz19" = ps: with ps; [  ];
+    "mhz19.sensor" = ps: with ps; [  ];
+    "microsoft" = ps: with ps; [  ];
+    "microsoft.tts" = ps: with ps; [  ];
     "microsoft_face" = ps: with ps; [ aiohttp-cors ];
+    "microsoft_face_detect" = ps: with ps; [  ];
+    "microsoft_face_detect.image_processing" = ps: with ps; [ aiohttp-cors ];
+    "microsoft_face_identify" = ps: with ps; [  ];
+    "microsoft_face_identify.image_processing" = ps: with ps; [ aiohttp-cors ];
+    "miflora" = ps: with ps; [  ];
+    "miflora.sensor" = ps: with ps; [  ];
+    "mikrotik" = ps: with ps; [  ];
+    "mikrotik.device_tracker" = ps: with ps; [  ];
+    "mill" = ps: with ps; [  ];
+    "mill.climate" = ps: with ps; [  ];
+    "min_max" = ps: with ps; [  ];
+    "min_max.sensor" = ps: with ps; [  ];
+    "mitemp_bt" = ps: with ps; [  ];
+    "mitemp_bt.sensor" = ps: with ps; [  ];
+    "mjpeg" = ps: with ps; [  ];
+    "mjpeg.camera" = ps: with ps; [  ];
     "mobile_app" = ps: with ps; [ pynacl aiohttp-cors ];
     "mobile_app.binary_sensor" = ps: with ps; [ pynacl aiohttp-cors ];
     "mobile_app.const" = ps: with ps; [  ];
     "mobile_app.entity" = ps: with ps; [  ];
     "mobile_app.helpers" = ps: with ps; [  ];
     "mobile_app.http_api" = ps: with ps; [  ];
+    "mobile_app.notify" = ps: with ps; [ pynacl aiohttp-cors ];
     "mobile_app.sensor" = ps: with ps; [ pynacl aiohttp-cors ];
     "mobile_app.webhook" = ps: with ps; [  ];
     "mobile_app.websocket_api" = ps: with ps; [  ];
@@ -817,6 +1110,22 @@
     "modbus.climate" = ps: with ps; [  ];
     "modbus.sensor" = ps: with ps; [  ];
     "modbus.switch" = ps: with ps; [  ];
+    "modem_callerid" = ps: with ps; [  ];
+    "modem_callerid.sensor" = ps: with ps; [  ];
+    "mold_indicator" = ps: with ps; [  ];
+    "mold_indicator.sensor" = ps: with ps; [  ];
+    "monoprice" = ps: with ps; [  ];
+    "monoprice.media_player" = ps: with ps; [  ];
+    "moon" = ps: with ps; [  ];
+    "moon.sensor" = ps: with ps; [  ];
+    "mopar" = ps: with ps; [  ];
+    "mopar.lock" = ps: with ps; [  ];
+    "mopar.sensor" = ps: with ps; [  ];
+    "mopar.switch" = ps: with ps; [  ];
+    "mpchc" = ps: with ps; [  ];
+    "mpchc.media_player" = ps: with ps; [  ];
+    "mpd" = ps: with ps; [  ];
+    "mpd.media_player" = ps: with ps; [ mpd2 ];
     "mqtt" = ps: with ps; [ paho-mqtt ];
     "mqtt.alarm_control_panel" = ps: with ps; [ paho-mqtt ];
     "mqtt.binary_sensor" = ps: with ps; [ paho-mqtt ];
@@ -836,11 +1145,20 @@
     "mqtt.switch" = ps: with ps; [ paho-mqtt ];
     "mqtt.vacuum" = ps: with ps; [ paho-mqtt ];
     "mqtt_eventstream" = ps: with ps; [ paho-mqtt ];
+    "mqtt_json" = ps: with ps; [  ];
+    "mqtt_json.device_tracker" = ps: with ps; [ paho-mqtt ];
+    "mqtt_room" = ps: with ps; [  ];
+    "mqtt_room.sensor" = ps: with ps; [ paho-mqtt ];
     "mqtt_statestream" = ps: with ps; [ paho-mqtt ];
+    "mvglive" = ps: with ps; [  ];
+    "mvglive.sensor" = ps: with ps; [ PyMVGLive ];
     "mychevy" = ps: with ps; [  ];
     "mychevy.binary_sensor" = ps: with ps; [  ];
     "mychevy.sensor" = ps: with ps; [  ];
     "mycroft" = ps: with ps; [  ];
+    "mycroft.notify" = ps: with ps; [  ];
+    "myq" = ps: with ps; [  ];
+    "myq.cover" = ps: with ps; [  ];
     "mysensors" = ps: with ps; [  ];
     "mysensors.binary_sensor" = ps: with ps; [  ];
     "mysensors.climate" = ps: with ps; [  ];
@@ -855,13 +1173,27 @@
     "mysensors.notify" = ps: with ps; [  ];
     "mysensors.sensor" = ps: with ps; [  ];
     "mysensors.switch" = ps: with ps; [  ];
+    "mystrom" = ps: with ps; [  ];
+    "mystrom.binary_sensor" = ps: with ps; [ aiohttp-cors ];
+    "mystrom.light" = ps: with ps; [  ];
+    "mystrom.switch" = ps: with ps; [  ];
     "mythicbeastsdns" = ps: with ps; [  ];
+    "nad" = ps: with ps; [  ];
+    "nad.media_player" = ps: with ps; [  ];
     "namecheapdns" = ps: with ps; [ defusedxml ];
+    "nanoleaf" = ps: with ps; [  ];
+    "nanoleaf.light" = ps: with ps; [  ];
     "neato" = ps: with ps; [ pybotvac ];
     "neato.camera" = ps: with ps; [ pybotvac ];
     "neato.switch" = ps: with ps; [ pybotvac ];
     "neato.vacuum" = ps: with ps; [ pybotvac ];
+    "nederlandse_spoorwegen" = ps: with ps; [  ];
+    "nederlandse_spoorwegen.sensor" = ps: with ps; [  ];
+    "nello" = ps: with ps; [  ];
+    "nello.lock" = ps: with ps; [  ];
     "ness_alarm" = ps: with ps; [  ];
+    "ness_alarm.alarm_control_panel" = ps: with ps; [  ];
+    "ness_alarm.binary_sensor" = ps: with ps; [  ];
     "nest" = ps: with ps; [  ];
     "nest.binary_sensor" = ps: with ps; [  ];
     "nest.camera" = ps: with ps; [  ];
@@ -875,70 +1207,93 @@
     "netatmo.camera" = ps: with ps; [ aiohttp-cors ];
     "netatmo.climate" = ps: with ps; [ aiohttp-cors ];
     "netatmo.sensor" = ps: with ps; [ aiohttp-cors ];
+    "netatmo_public" = ps: with ps; [  ];
+    "netatmo_public.sensor" = ps: with ps; [ aiohttp-cors ];
+    "netdata" = ps: with ps; [  ];
+    "netdata.sensor" = ps: with ps; [  ];
+    "netgear" = ps: with ps; [  ];
+    "netgear.device_tracker" = ps: with ps; [  ];
     "netgear_lte" = ps: with ps; [  ];
     "netgear_lte.notify" = ps: with ps; [  ];
     "netgear_lte.sensor" = ps: with ps; [  ];
+    "netgear_lte.sensor_types" = ps: with ps; [  ];
+    "netio" = ps: with ps; [  ];
+    "netio.switch" = ps: with ps; [ aiohttp-cors ];
+    "neurio_energy" = ps: with ps; [  ];
+    "neurio_energy.sensor" = ps: with ps; [  ];
+    "nfandroidtv" = ps: with ps; [  ];
+    "nfandroidtv.notify" = ps: with ps; [  ];
+    "niko_home_control" = ps: with ps; [  ];
+    "niko_home_control.light" = ps: with ps; [  ];
+    "nilu" = ps: with ps; [  ];
+    "nilu.air_quality" = ps: with ps; [  ];
     "nissan_leaf" = ps: with ps; [  ];
     "nissan_leaf.binary_sensor" = ps: with ps; [  ];
     "nissan_leaf.device_tracker" = ps: with ps; [  ];
     "nissan_leaf.sensor" = ps: with ps; [  ];
     "nissan_leaf.switch" = ps: with ps; [  ];
+    "nmap_tracker" = ps: with ps; [  ];
+    "nmap_tracker.device_tracker" = ps: with ps; [  ];
+    "nmbs" = ps: with ps; [  ];
+    "nmbs.sensor" = ps: with ps; [  ];
     "no_ip" = ps: with ps; [  ];
+    "noaa_tides" = ps: with ps; [  ];
+    "noaa_tides.sensor" = ps: with ps; [  ];
+    "norway_air" = ps: with ps; [  ];
+    "norway_air.air_quality" = ps: with ps; [  ];
     "notify" = ps: with ps; [  ];
-    "notify.apns" = ps: with ps; [  ];
-    "notify.aws_lambda" = ps: with ps; [ boto3 ];
-    "notify.aws_sns" = ps: with ps; [ boto3 ];
-    "notify.aws_sqs" = ps: with ps; [ boto3 ];
-    "notify.ciscospark" = ps: with ps; [  ];
-    "notify.clickatell" = ps: with ps; [  ];
-    "notify.clicksend" = ps: with ps; [  ];
-    "notify.clicksend_tts" = ps: with ps; [  ];
-    "notify.command_line" = ps: with ps; [  ];
-    "notify.demo" = ps: with ps; [  ];
-    "notify.discord" = ps: with ps; [ discordpy ];
-    "notify.facebook" = ps: with ps; [  ];
-    "notify.file" = ps: with ps; [  ];
-    "notify.flock" = ps: with ps; [  ];
-    "notify.free_mobile" = ps: with ps; [  ];
-    "notify.gntp" = ps: with ps; [  ];
-    "notify.group" = ps: with ps; [  ];
-    "notify.hipchat" = ps: with ps; [  ];
-    "notify.html5" = ps: with ps; [ aiohttp-cors ];
-    "notify.kodi" = ps: with ps; [ jsonrpc-async ];
-    "notify.lannouncer" = ps: with ps; [  ];
-    "notify.llamalab_automate" = ps: with ps; [  ];
-    "notify.mastodon" = ps: with ps; [  ];
-    "notify.message_bird" = ps: with ps; [  ];
-    "notify.mycroft" = ps: with ps; [  ];
-    "notify.nfandroidtv" = ps: with ps; [  ];
-    "notify.prowl" = ps: with ps; [  ];
-    "notify.pushbullet" = ps: with ps; [ pushbullet ];
-    "notify.pushetta" = ps: with ps; [  ];
-    "notify.pushover" = ps: with ps; [ python-pushover ];
-    "notify.pushsafer" = ps: with ps; [  ];
-    "notify.rest" = ps: with ps; [  ];
-    "notify.rocketchat" = ps: with ps; [  ];
-    "notify.sendgrid" = ps: with ps; [  ];
-    "notify.simplepush" = ps: with ps; [  ];
-    "notify.slack" = ps: with ps; [  ];
-    "notify.smtp" = ps: with ps; [  ];
-    "notify.stride" = ps: with ps; [  ];
-    "notify.synology_chat" = ps: with ps; [  ];
-    "notify.syslog" = ps: with ps; [  ];
-    "notify.telegram" = ps: with ps; [ python-telegram-bot ];
-    "notify.twilio_call" = ps: with ps; [ aiohttp-cors twilio ];
-    "notify.twilio_sms" = ps: with ps; [ aiohttp-cors twilio ];
-    "notify.twitter" = ps: with ps; [  ];
-    "notify.xmpp" = ps: with ps; [ slixmpp ];
-    "notify.yessssms" = ps: with ps; [  ];
+    "nsw_fuel_station" = ps: with ps; [  ];
+    "nsw_fuel_station.sensor" = ps: with ps; [  ];
+    "nsw_rural_fire_service_feed" = ps: with ps; [  ];
+    "nsw_rural_fire_service_feed.geo_location" = ps: with ps; [  ];
     "nuheat" = ps: with ps; [  ];
+    "nuheat.climate" = ps: with ps; [  ];
     "nuimo_controller" = ps: with ps; [  ];
+    "nuki" = ps: with ps; [  ];
+    "nuki.lock" = ps: with ps; [  ];
+    "nut" = ps: with ps; [  ];
+    "nut.sensor" = ps: with ps; [  ];
+    "nx584" = ps: with ps; [  ];
+    "nx584.alarm_control_panel" = ps: with ps; [  ];
+    "nx584.binary_sensor" = ps: with ps; [  ];
+    "nzbget" = ps: with ps; [  ];
+    "nzbget.sensor" = ps: with ps; [  ];
     "octoprint" = ps: with ps; [  ];
     "octoprint.binary_sensor" = ps: with ps; [  ];
     "octoprint.sensor" = ps: with ps; [  ];
+    "oem" = ps: with ps; [  ];
+    "oem.climate" = ps: with ps; [  ];
+    "ohmconnect" = ps: with ps; [  ];
+    "ohmconnect.sensor" = ps: with ps; [ defusedxml ];
     "onboarding" = ps: with ps; [ aiohttp-cors ];
     "onboarding.const" = ps: with ps; [  ];
     "onboarding.views" = ps: with ps; [  ];
+    "onewire" = ps: with ps; [  ];
+    "onewire.sensor" = ps: with ps; [  ];
+    "onkyo" = ps: with ps; [  ];
+    "onkyo.media_player" = ps: with ps; [ onkyo-eiscp ];
+    "onvif" = ps: with ps; [  ];
+    "onvif.camera" = ps: with ps; [ ha-ffmpeg ];
+    "openalpr_cloud" = ps: with ps; [  ];
+    "openalpr_cloud.image_processing" = ps: with ps; [  ];
+    "openalpr_local" = ps: with ps; [  ];
+    "openalpr_local.image_processing" = ps: with ps; [  ];
+    "opencv" = ps: with ps; [  ];
+    "opencv.image_processing" = ps: with ps; [ numpy ];
+    "openevse" = ps: with ps; [  ];
+    "openevse.sensor" = ps: with ps; [  ];
+    "openexchangerates" = ps: with ps; [  ];
+    "openexchangerates.sensor" = ps: with ps; [  ];
+    "opengarage" = ps: with ps; [  ];
+    "opengarage.cover" = ps: with ps; [  ];
+    "openhardwaremonitor" = ps: with ps; [  ];
+    "openhardwaremonitor.sensor" = ps: with ps; [  ];
+    "openhome" = ps: with ps; [  ];
+    "openhome.media_player" = ps: with ps; [  ];
+    "opensensemap" = ps: with ps; [  ];
+    "opensensemap.air_quality" = ps: with ps; [  ];
+    "opensky" = ps: with ps; [  ];
+    "opensky.sensor" = ps: with ps; [  ];
     "opentherm_gw" = ps: with ps; [  ];
     "opentherm_gw.binary_sensor" = ps: with ps; [  ];
     "opentherm_gw.climate" = ps: with ps; [  ];
@@ -948,6 +1303,17 @@
     "openuv.config_flow" = ps: with ps; [  ];
     "openuv.const" = ps: with ps; [  ];
     "openuv.sensor" = ps: with ps; [  ];
+    "openweathermap" = ps: with ps; [  ];
+    "openweathermap.sensor" = ps: with ps; [ pyowm ];
+    "openweathermap.weather" = ps: with ps; [ pyowm ];
+    "opple" = ps: with ps; [  ];
+    "opple.light" = ps: with ps; [  ];
+    "orvibo" = ps: with ps; [  ];
+    "orvibo.switch" = ps: with ps; [  ];
+    "osramlightify" = ps: with ps; [  ];
+    "osramlightify.light" = ps: with ps; [  ];
+    "otp" = ps: with ps; [  ];
+    "otp.sensor" = ps: with ps; [ pyotp ];
     "owlet" = ps: with ps; [  ];
     "owlet.binary_sensor" = ps: with ps; [  ];
     "owlet.const" = ps: with ps; [  ];
@@ -955,30 +1321,95 @@
     "owntracks" = ps: with ps; [ pynacl aiohttp-cors ];
     "owntracks.config_flow" = ps: with ps; [  ];
     "owntracks.device_tracker" = ps: with ps; [ pynacl aiohttp-cors ];
+    "panasonic_bluray" = ps: with ps; [  ];
+    "panasonic_bluray.media_player" = ps: with ps; [  ];
+    "panasonic_viera" = ps: with ps; [  ];
+    "panasonic_viera.media_player" = ps: with ps; [ wakeonlan ];
+    "pandora" = ps: with ps; [  ];
+    "pandora.media_player" = ps: with ps; [ pexpect ];
     "panel_custom" = ps: with ps; [ aiohttp-cors ];
     "panel_iframe" = ps: with ps; [ aiohttp-cors ];
+    "pencom" = ps: with ps; [  ];
+    "pencom.switch" = ps: with ps; [  ];
     "persistent_notification" = ps: with ps; [  ];
     "person" = ps: with ps; [  ];
+    "philips_js" = ps: with ps; [  ];
+    "philips_js.media_player" = ps: with ps; [  ];
+    "pi_hole" = ps: with ps; [  ];
+    "pi_hole.sensor" = ps: with ps; [  ];
+    "picotts" = ps: with ps; [  ];
+    "picotts.tts" = ps: with ps; [  ];
+    "piglow" = ps: with ps; [  ];
+    "piglow.light" = ps: with ps; [  ];
     "pilight" = ps: with ps; [  ];
     "pilight.binary_sensor" = ps: with ps; [  ];
     "pilight.sensor" = ps: with ps; [  ];
     "pilight.switch" = ps: with ps; [  ];
+    "ping" = ps: with ps; [  ];
+    "ping.binary_sensor" = ps: with ps; [  ];
+    "ping.device_tracker" = ps: with ps; [  ];
+    "pioneer" = ps: with ps; [  ];
+    "pioneer.media_player" = ps: with ps; [  ];
+    "pjlink" = ps: with ps; [  ];
+    "pjlink.media_player" = ps: with ps; [  ];
     "plant" = ps: with ps; [  ];
+    "plex" = ps: with ps; [  ];
+    "plex.media_player" = ps: with ps; [  ];
+    "plex.sensor" = ps: with ps; [  ];
     "plum_lightpad" = ps: with ps; [  ];
     "plum_lightpad.light" = ps: with ps; [  ];
+    "pocketcasts" = ps: with ps; [  ];
+    "pocketcasts.sensor" = ps: with ps; [  ];
     "point" = ps: with ps; [ aiohttp-cors ];
     "point.alarm_control_panel" = ps: with ps; [  ];
     "point.binary_sensor" = ps: with ps; [  ];
     "point.config_flow" = ps: with ps; [  ];
     "point.const" = ps: with ps; [  ];
     "point.sensor" = ps: with ps; [  ];
+    "pollen" = ps: with ps; [  ];
+    "pollen.sensor" = ps: with ps; [ numpy ];
+    "postnl" = ps: with ps; [  ];
+    "postnl.sensor" = ps: with ps; [  ];
+    "prezzibenzina" = ps: with ps; [  ];
+    "prezzibenzina.sensor" = ps: with ps; [  ];
+    "proliphix" = ps: with ps; [  ];
+    "proliphix.climate" = ps: with ps; [  ];
     "prometheus" = ps: with ps; [ aiohttp-cors prometheus_client ];
+    "prowl" = ps: with ps; [  ];
+    "prowl.notify" = ps: with ps; [  ];
     "proximity" = ps: with ps; [  ];
+    "proxy" = ps: with ps; [  ];
+    "proxy.camera" = ps: with ps; [ pillow ];
     "ps4" = ps: with ps; [  ];
     "ps4.config_flow" = ps: with ps; [  ];
     "ps4.const" = ps: with ps; [  ];
     "ps4.media_player" = ps: with ps; [  ];
+    "pulseaudio_loopback" = ps: with ps; [  ];
+    "pulseaudio_loopback.switch" = ps: with ps; [  ];
+    "push" = ps: with ps; [  ];
+    "push.camera" = ps: with ps; [ aiohttp-cors ];
+    "pushbullet" = ps: with ps; [  ];
+    "pushbullet.notify" = ps: with ps; [ pushbullet ];
+    "pushbullet.sensor" = ps: with ps; [ pushbullet ];
+    "pushetta" = ps: with ps; [  ];
+    "pushetta.notify" = ps: with ps; [  ];
+    "pushover" = ps: with ps; [  ];
+    "pushover.notify" = ps: with ps; [ python-pushover ];
+    "pushsafer" = ps: with ps; [  ];
+    "pushsafer.notify" = ps: with ps; [  ];
+    "pvoutput" = ps: with ps; [  ];
+    "pvoutput.sensor" = ps: with ps; [  ];
+    "pyload" = ps: with ps; [  ];
+    "pyload.sensor" = ps: with ps; [  ];
     "python_script" = ps: with ps; [  ];
+    "qbittorrent" = ps: with ps; [  ];
+    "qbittorrent.sensor" = ps: with ps; [  ];
+    "qnap" = ps: with ps; [  ];
+    "qnap.sensor" = ps: with ps; [  ];
+    "qrcode" = ps: with ps; [  ];
+    "qrcode.image_processing" = ps: with ps; [ pillow ];
+    "quantum_gateway" = ps: with ps; [  ];
+    "quantum_gateway.device_tracker" = ps: with ps; [  ];
     "qwikswitch" = ps: with ps; [  ];
     "qwikswitch.binary_sensor" = ps: with ps; [  ];
     "qwikswitch.light" = ps: with ps; [  ];
@@ -987,7 +1418,13 @@
     "rachio" = ps: with ps; [  ];
     "rachio.binary_sensor" = ps: with ps; [  ];
     "rachio.switch" = ps: with ps; [  ];
+    "radarr" = ps: with ps; [  ];
+    "radarr.sensor" = ps: with ps; [  ];
+    "radiotherm" = ps: with ps; [  ];
+    "radiotherm.climate" = ps: with ps; [  ];
     "rainbird" = ps: with ps; [  ];
+    "rainbird.sensor" = ps: with ps; [  ];
+    "rainbird.switch" = ps: with ps; [  ];
     "raincloud" = ps: with ps; [  ];
     "raincloud.binary_sensor" = ps: with ps; [  ];
     "raincloud.sensor" = ps: with ps; [  ];
@@ -998,20 +1435,41 @@
     "rainmachine.const" = ps: with ps; [  ];
     "rainmachine.sensor" = ps: with ps; [  ];
     "rainmachine.switch" = ps: with ps; [  ];
+    "random" = ps: with ps; [  ];
+    "random.binary_sensor" = ps: with ps; [  ];
+    "random.sensor" = ps: with ps; [  ];
     "raspihats" = ps: with ps; [  ];
     "raspihats.binary_sensor" = ps: with ps; [  ];
     "raspihats.switch" = ps: with ps; [  ];
+    "raspyrfm" = ps: with ps; [  ];
+    "raspyrfm.switch" = ps: with ps; [  ];
+    "recollect_waste" = ps: with ps; [  ];
+    "recollect_waste.sensor" = ps: with ps; [  ];
     "recorder" = ps: with ps; [ sqlalchemy ];
     "recorder.const" = ps: with ps; [  ];
     "recorder.migration" = ps: with ps; [  ];
     "recorder.purge" = ps: with ps; [  ];
     "recorder.util" = ps: with ps; [  ];
+    "recswitch" = ps: with ps; [  ];
+    "recswitch.switch" = ps: with ps; [  ];
     "reddit" = ps: with ps; [  ];
     "reddit.sensor" = ps: with ps; [ praw ];
+    "rejseplanen" = ps: with ps; [  ];
+    "rejseplanen.sensor" = ps: with ps; [  ];
     "remember_the_milk" = ps: with ps; [ httplib2 ];
     "remote" = ps: with ps; [  ];
+    "rest" = ps: with ps; [  ];
+    "rest.binary_sensor" = ps: with ps; [  ];
+    "rest.notify" = ps: with ps; [  ];
+    "rest.sensor" = ps: with ps; [  ];
+    "rest.switch" = ps: with ps; [  ];
     "rest_command" = ps: with ps; [  ];
     "rflink" = ps: with ps; [  ];
+    "rflink.binary_sensor" = ps: with ps; [  ];
+    "rflink.cover" = ps: with ps; [  ];
+    "rflink.light" = ps: with ps; [  ];
+    "rflink.sensor" = ps: with ps; [  ];
+    "rflink.switch" = ps: with ps; [  ];
     "rfxtrx" = ps: with ps; [  ];
     "rfxtrx.binary_sensor" = ps: with ps; [  ];
     "rfxtrx.cover" = ps: with ps; [  ];
@@ -1019,280 +1477,122 @@
     "rfxtrx.sensor" = ps: with ps; [  ];
     "rfxtrx.switch" = ps: with ps; [  ];
     "ring" = ps: with ps; [  ];
+    "ring.binary_sensor" = ps: with ps; [  ];
+    "ring.camera" = ps: with ps; [ ha-ffmpeg ];
+    "ring.sensor" = ps: with ps; [  ];
+    "ripple" = ps: with ps; [  ];
+    "ripple.sensor" = ps: with ps; [  ];
+    "ritassist" = ps: with ps; [  ];
+    "ritassist.device_tracker" = ps: with ps; [  ];
+    "rmvtransport" = ps: with ps; [  ];
+    "rmvtransport.sensor" = ps: with ps; [  ];
+    "rocketchat" = ps: with ps; [  ];
+    "rocketchat.notify" = ps: with ps; [  ];
     "roku" = ps: with ps; [  ];
     "roku.media_player" = ps: with ps; [  ];
     "roku.remote" = ps: with ps; [  ];
+    "roomba" = ps: with ps; [  ];
+    "roomba.vacuum" = ps: with ps; [  ];
     "route53" = ps: with ps; [ boto3 ];
+    "rova" = ps: with ps; [  ];
+    "rova.sensor" = ps: with ps; [  ];
+    "rpi_camera" = ps: with ps; [  ];
+    "rpi_camera.camera" = ps: with ps; [  ];
     "rpi_gpio" = ps: with ps; [  ];
     "rpi_gpio.binary_sensor" = ps: with ps; [  ];
     "rpi_gpio.cover" = ps: with ps; [  ];
     "rpi_gpio.switch" = ps: with ps; [  ];
+    "rpi_gpio_pwm" = ps: with ps; [  ];
+    "rpi_gpio_pwm.light" = ps: with ps; [  ];
     "rpi_pfio" = ps: with ps; [  ];
     "rpi_pfio.binary_sensor" = ps: with ps; [  ];
     "rpi_pfio.switch" = ps: with ps; [  ];
+    "rpi_rf" = ps: with ps; [  ];
+    "rpi_rf.switch" = ps: with ps; [  ];
     "rss_feed_template" = ps: with ps; [ aiohttp-cors ];
+    "rtorrent" = ps: with ps; [  ];
+    "rtorrent.sensor" = ps: with ps; [  ];
+    "russound_rio" = ps: with ps; [  ];
+    "russound_rio.media_player" = ps: with ps; [  ];
+    "russound_rnet" = ps: with ps; [  ];
+    "russound_rnet.media_player" = ps: with ps; [  ];
+    "ruter" = ps: with ps; [  ];
+    "ruter.sensor" = ps: with ps; [  ];
     "sabnzbd" = ps: with ps; [  ];
     "sabnzbd.sensor" = ps: with ps; [  ];
+    "samsungtv" = ps: with ps; [  ];
+    "samsungtv.media_player" = ps: with ps; [ wakeonlan ];
     "satel_integra" = ps: with ps; [  ];
     "satel_integra.alarm_control_panel" = ps: with ps; [  ];
     "satel_integra.binary_sensor" = ps: with ps; [  ];
     "scene" = ps: with ps; [  ];
-    "scene.homeassistant" = ps: with ps; [  ];
-    "scene.hunterdouglas_powerview" = ps: with ps; [  ];
-    "scene.lifx_cloud" = ps: with ps; [  ];
-    "scene.litejet" = ps: with ps; [  ];
+    "scrape" = ps: with ps; [  ];
+    "scrape.sensor" = ps: with ps; [ beautifulsoup4 ];
     "script" = ps: with ps; [  ];
     "scsgate" = ps: with ps; [  ];
     "scsgate.cover" = ps: with ps; [  ];
     "scsgate.light" = ps: with ps; [  ];
     "scsgate.switch" = ps: with ps; [  ];
+    "season" = ps: with ps; [  ];
+    "season.sensor" = ps: with ps; [ ephem ];
+    "sendgrid" = ps: with ps; [  ];
+    "sendgrid.notify" = ps: with ps; [  ];
     "sense" = ps: with ps; [  ];
     "sense.binary_sensor" = ps: with ps; [  ];
     "sense.sensor" = ps: with ps; [  ];
+    "sensehat" = ps: with ps; [  ];
+    "sensehat.light" = ps: with ps; [  ];
+    "sensehat.sensor" = ps: with ps; [  ];
+    "sensibo" = ps: with ps; [  ];
+    "sensibo.climate" = ps: with ps; [  ];
     "sensor" = ps: with ps; [  ];
-    "sensor.aftership" = ps: with ps; [  ];
-    "sensor.airvisual" = ps: with ps; [ pyairvisual ];
-    "sensor.alpha_vantage" = ps: with ps; [  ];
-    "sensor.api_streams" = ps: with ps; [  ];
-    "sensor.arest" = ps: with ps; [  ];
-    "sensor.arwn" = ps: with ps; [ paho-mqtt ];
-    "sensor.asuswrt" = ps: with ps; [  ];
-    "sensor.awair" = ps: with ps; [  ];
-    "sensor.bbox" = ps: with ps; [  ];
-    "sensor.bh1750" = ps: with ps; [  ];
-    "sensor.bitcoin" = ps: with ps; [  ];
-    "sensor.blockchain" = ps: with ps; [  ];
-    "sensor.bme280" = ps: with ps; [  ];
-    "sensor.bme680" = ps: with ps; [  ];
-    "sensor.bom" = ps: with ps; [  ];
-    "sensor.broadlink" = ps: with ps; [ broadlink ];
-    "sensor.brottsplatskartan" = ps: with ps; [  ];
-    "sensor.buienradar" = ps: with ps; [  ];
-    "sensor.canary" = ps: with ps; [  ];
-    "sensor.cert_expiry" = ps: with ps; [  ];
-    "sensor.citybikes" = ps: with ps; [  ];
-    "sensor.co2signal" = ps: with ps; [  ];
-    "sensor.coinbase" = ps: with ps; [  ];
-    "sensor.coinmarketcap" = ps: with ps; [ coinmarketcap ];
-    "sensor.comed_hourly_pricing" = ps: with ps; [  ];
-    "sensor.command_line" = ps: with ps; [  ];
-    "sensor.cpuspeed" = ps: with ps; [ py-cpuinfo ];
-    "sensor.crimereports" = ps: with ps; [  ];
-    "sensor.cups" = ps: with ps; [ pycups ];
-    "sensor.currencylayer" = ps: with ps; [  ];
-    "sensor.darksky" = ps: with ps; [ python-forecastio ];
-    "sensor.deluge" = ps: with ps; [ deluge-client ];
-    "sensor.demo" = ps: with ps; [  ];
-    "sensor.deutsche_bahn" = ps: with ps; [  ];
-    "sensor.dht" = ps: with ps; [  ];
-    "sensor.discogs" = ps: with ps; [ discogs_client ];
-    "sensor.dnsip" = ps: with ps; [ aiodns ];
-    "sensor.dsmr" = ps: with ps; [  ];
-    "sensor.dte_energy_bridge" = ps: with ps; [  ];
-    "sensor.dublin_bus_transport" = ps: with ps; [  ];
-    "sensor.duke_energy" = ps: with ps; [  ];
-    "sensor.dwd_weather_warnings" = ps: with ps; [  ];
-    "sensor.dyson" = ps: with ps; [  ];
-    "sensor.ebox" = ps: with ps; [  ];
-    "sensor.eddystone_temperature" = ps: with ps; [ construct ];
-    "sensor.efergy" = ps: with ps; [  ];
-    "sensor.eliqonline" = ps: with ps; [  ];
-    "sensor.emoncms" = ps: with ps; [  ];
-    "sensor.enphase_envoy" = ps: with ps; [  ];
-    "sensor.entur_public_transport" = ps: with ps; [  ];
-    "sensor.envirophat" = ps: with ps; [  ];
-    "sensor.etherscan" = ps: with ps; [  ];
-    "sensor.fail2ban" = ps: with ps; [  ];
-    "sensor.fedex" = ps: with ps; [  ];
-    "sensor.fido" = ps: with ps; [  ];
-    "sensor.file" = ps: with ps; [  ];
-    "sensor.filesize" = ps: with ps; [  ];
-    "sensor.filter" = ps: with ps; [  ];
-    "sensor.fints" = ps: with ps; [ fints ];
-    "sensor.fitbit" = ps: with ps; [ aiohttp-cors ];
-    "sensor.fixer" = ps: with ps; [  ];
-    "sensor.flunearyou" = ps: with ps; [  ];
-    "sensor.folder" = ps: with ps; [  ];
-    "sensor.foobot" = ps: with ps; [  ];
-    "sensor.fritzbox_callmonitor" = ps: with ps; [ fritzconnection ];
-    "sensor.fritzbox_netmonitor" = ps: with ps; [ fritzconnection ];
-    "sensor.gearbest" = ps: with ps; [  ];
-    "sensor.geizhals" = ps: with ps; [  ];
-    "sensor.geo_rss_events" = ps: with ps; [  ];
-    "sensor.github" = ps: with ps; [ PyGithub ];
-    "sensor.gitlab_ci" = ps: with ps; [ python-gitlab ];
-    "sensor.gitter" = ps: with ps; [  ];
-    "sensor.glances" = ps: with ps; [  ];
-    "sensor.google_travel_time" = ps: with ps; [  ];
-    "sensor.google_wifi" = ps: with ps; [  ];
-    "sensor.gpsd" = ps: with ps; [  ];
-    "sensor.greeneye_monitor" = ps: with ps; [  ];
-    "sensor.gtfs" = ps: with ps; [  ];
-    "sensor.gtt" = ps: with ps; [  ];
-    "sensor.haveibeenpwned" = ps: with ps; [  ];
-    "sensor.hddtemp" = ps: with ps; [  ];
-    "sensor.history_stats" = ps: with ps; [ aiohttp-cors sqlalchemy ];
-    "sensor.hp_ilo" = ps: with ps; [  ];
-    "sensor.htu21d" = ps: with ps; [  ];
-    "sensor.hydroquebec" = ps: with ps; [  ];
-    "sensor.iliad_italy" = ps: with ps; [  ];
-    "sensor.imap" = ps: with ps; [  ];
-    "sensor.imap_email_content" = ps: with ps; [  ];
-    "sensor.influxdb" = ps: with ps; [ influxdb ];
-    "sensor.integration" = ps: with ps; [  ];
-    "sensor.irish_rail_transport" = ps: with ps; [  ];
-    "sensor.islamic_prayer_times" = ps: with ps; [  ];
-    "sensor.jewish_calendar" = ps: with ps; [  ];
-    "sensor.kwb" = ps: with ps; [  ];
-    "sensor.lacrosse" = ps: with ps; [  ];
-    "sensor.lastfm" = ps: with ps; [ pylast ];
-    "sensor.launch_library" = ps: with ps; [  ];
-    "sensor.linky" = ps: with ps; [  ];
-    "sensor.linux_battery" = ps: with ps; [ batinfo ];
-    "sensor.london_air" = ps: with ps; [  ];
-    "sensor.london_underground" = ps: with ps; [  ];
-    "sensor.loopenergy" = ps: with ps; [  ];
-    "sensor.lyft" = ps: with ps; [  ];
-    "sensor.magicseaweed" = ps: with ps; [  ];
-    "sensor.metoffice" = ps: with ps; [  ];
-    "sensor.mfi" = ps: with ps; [  ];
-    "sensor.mhz19" = ps: with ps; [  ];
-    "sensor.miflora" = ps: with ps; [  ];
-    "sensor.min_max" = ps: with ps; [  ];
-    "sensor.mitemp_bt" = ps: with ps; [  ];
-    "sensor.modem_callerid" = ps: with ps; [  ];
-    "sensor.mold_indicator" = ps: with ps; [  ];
-    "sensor.moon" = ps: with ps; [  ];
-    "sensor.mopar" = ps: with ps; [  ];
-    "sensor.mqtt_room" = ps: with ps; [ paho-mqtt ];
-    "sensor.mvglive" = ps: with ps; [ PyMVGLive ];
-    "sensor.nederlandse_spoorwegen" = ps: with ps; [  ];
-    "sensor.netatmo_public" = ps: with ps; [ aiohttp-cors ];
-    "sensor.netdata" = ps: with ps; [  ];
-    "sensor.neurio_energy" = ps: with ps; [  ];
-    "sensor.nmbs" = ps: with ps; [  ];
-    "sensor.noaa_tides" = ps: with ps; [  ];
-    "sensor.nsw_fuel_station" = ps: with ps; [  ];
-    "sensor.nut" = ps: with ps; [  ];
-    "sensor.nzbget" = ps: with ps; [  ];
-    "sensor.ohmconnect" = ps: with ps; [ defusedxml ];
-    "sensor.onewire" = ps: with ps; [  ];
-    "sensor.openevse" = ps: with ps; [  ];
-    "sensor.openexchangerates" = ps: with ps; [  ];
-    "sensor.openhardwaremonitor" = ps: with ps; [  ];
-    "sensor.opensky" = ps: with ps; [  ];
-    "sensor.openweathermap" = ps: with ps; [ pyowm ];
-    "sensor.otp" = ps: with ps; [ pyotp ];
-    "sensor.pi_hole" = ps: with ps; [  ];
-    "sensor.plex" = ps: with ps; [  ];
-    "sensor.pocketcasts" = ps: with ps; [  ];
-    "sensor.pollen" = ps: with ps; [ numpy ];
-    "sensor.postnl" = ps: with ps; [  ];
-    "sensor.prezzibenzina" = ps: with ps; [  ];
-    "sensor.pushbullet" = ps: with ps; [ pushbullet ];
-    "sensor.pvoutput" = ps: with ps; [  ];
-    "sensor.pyload" = ps: with ps; [  ];
-    "sensor.qbittorrent" = ps: with ps; [  ];
-    "sensor.qnap" = ps: with ps; [  ];
-    "sensor.radarr" = ps: with ps; [  ];
-    "sensor.rainbird" = ps: with ps; [  ];
-    "sensor.random" = ps: with ps; [  ];
-    "sensor.recollect_waste" = ps: with ps; [  ];
-    "sensor.rejseplanen" = ps: with ps; [  ];
-    "sensor.rest" = ps: with ps; [  ];
-    "sensor.rflink" = ps: with ps; [  ];
-    "sensor.ring" = ps: with ps; [  ];
-    "sensor.ripple" = ps: with ps; [  ];
-    "sensor.rmvtransport" = ps: with ps; [  ];
-    "sensor.rova" = ps: with ps; [  ];
-    "sensor.rtorrent" = ps: with ps; [  ];
-    "sensor.ruter" = ps: with ps; [  ];
-    "sensor.scrape" = ps: with ps; [ beautifulsoup4 ];
-    "sensor.season" = ps: with ps; [ ephem ];
-    "sensor.sensehat" = ps: with ps; [  ];
-    "sensor.serial" = ps: with ps; [  ];
-    "sensor.serial_pm" = ps: with ps; [  ];
-    "sensor.seventeentrack" = ps: with ps; [  ];
-    "sensor.shodan" = ps: with ps; [ shodan ];
-    "sensor.sht31" = ps: with ps; [  ];
-    "sensor.sigfox" = ps: with ps; [  ];
-    "sensor.simulated" = ps: with ps; [  ];
-    "sensor.skybeacon" = ps: with ps; [  ];
-    "sensor.sleepiq" = ps: with ps; [  ];
-    "sensor.sma" = ps: with ps; [  ];
-    "sensor.snmp" = ps: with ps; [ pysnmp ];
-    "sensor.sochain" = ps: with ps; [  ];
-    "sensor.socialblade" = ps: with ps; [  ];
-    "sensor.solaredge" = ps: with ps; [  ];
-    "sensor.sonarr" = ps: with ps; [  ];
-    "sensor.spotcrime" = ps: with ps; [  ];
-    "sensor.sql" = ps: with ps; [ sqlalchemy ];
-    "sensor.srp_energy" = ps: with ps; [  ];
-    "sensor.starlingbank" = ps: with ps; [  ];
-    "sensor.startca" = ps: with ps; [ xmltodict ];
-    "sensor.statistics" = ps: with ps; [  ];
-    "sensor.steam_online" = ps: with ps; [  ];
-    "sensor.supervisord" = ps: with ps; [  ];
-    "sensor.swiss_hydrological_data" = ps: with ps; [  ];
-    "sensor.swiss_public_transport" = ps: with ps; [  ];
-    "sensor.syncthru" = ps: with ps; [  ];
-    "sensor.synologydsm" = ps: with ps; [  ];
-    "sensor.systemmonitor" = ps: with ps; [ psutil ];
-    "sensor.sytadin" = ps: with ps; [ beautifulsoup4 ];
-    "sensor.tank_utility" = ps: with ps; [  ];
-    "sensor.tautulli" = ps: with ps; [  ];
-    "sensor.tcp" = ps: with ps; [  ];
-    "sensor.ted5000" = ps: with ps; [ xmltodict ];
-    "sensor.teksavvy" = ps: with ps; [  ];
-    "sensor.temper" = ps: with ps; [  ];
-    "sensor.template" = ps: with ps; [  ];
-    "sensor.thermoworks_smoke" = ps: with ps; [  ];
-    "sensor.time_date" = ps: with ps; [  ];
-    "sensor.torque" = ps: with ps; [ aiohttp-cors ];
-    "sensor.trafikverket_weatherstation" = ps: with ps; [  ];
-    "sensor.transport_nsw" = ps: with ps; [  ];
-    "sensor.travisci" = ps: with ps; [  ];
-    "sensor.twitch" = ps: with ps; [  ];
-    "sensor.uber" = ps: with ps; [  ];
-    "sensor.uk_transport" = ps: with ps; [  ];
-    "sensor.ups" = ps: with ps; [  ];
-    "sensor.uptime" = ps: with ps; [  ];
-    "sensor.uscis" = ps: with ps; [  ];
-    "sensor.vasttrafik" = ps: with ps; [  ];
-    "sensor.version" = ps: with ps; [  ];
-    "sensor.viaggiatreno" = ps: with ps; [  ];
-    "sensor.volkszaehler" = ps: with ps; [  ];
-    "sensor.vultr" = ps: with ps; [ vultr ];
-    "sensor.waqi" = ps: with ps; [  ];
-    "sensor.waze_travel_time" = ps: with ps; [ WazeRouteCalculator ];
-    "sensor.whois" = ps: with ps; [  ];
-    "sensor.worldclock" = ps: with ps; [  ];
-    "sensor.worldtidesinfo" = ps: with ps; [  ];
-    "sensor.worxlandroid" = ps: with ps; [  ];
-    "sensor.wsdot" = ps: with ps; [  ];
-    "sensor.wunderground" = ps: with ps; [  ];
-    "sensor.xbox_live" = ps: with ps; [  ];
-    "sensor.yr" = ps: with ps; [ xmltodict ];
-    "sensor.yweather" = ps: with ps; [ yahooweather ];
-    "sensor.zamg" = ps: with ps; [  ];
-    "sensor.zestimate" = ps: with ps; [ xmltodict ];
+    "serial" = ps: with ps; [  ];
+    "serial.sensor" = ps: with ps; [  ];
+    "serial_pm" = ps: with ps; [  ];
+    "serial_pm.sensor" = ps: with ps; [  ];
+    "sesame" = ps: with ps; [  ];
+    "sesame.lock" = ps: with ps; [  ];
+    "seven_segments" = ps: with ps; [  ];
+    "seven_segments.image_processing" = ps: with ps; [  ];
+    "seventeentrack" = ps: with ps; [  ];
+    "seventeentrack.sensor" = ps: with ps; [  ];
     "shell_command" = ps: with ps; [  ];
     "shiftr" = ps: with ps; [ paho-mqtt ];
+    "shodan" = ps: with ps; [  ];
+    "shodan.sensor" = ps: with ps; [ shodan ];
     "shopping_list" = ps: with ps; [ aiohttp-cors ];
+    "sht31" = ps: with ps; [  ];
+    "sht31.sensor" = ps: with ps; [  ];
+    "sigfox" = ps: with ps; [  ];
+    "sigfox.sensor" = ps: with ps; [  ];
+    "simplepush" = ps: with ps; [  ];
+    "simplepush.notify" = ps: with ps; [  ];
     "simplisafe" = ps: with ps; [  ];
     "simplisafe.alarm_control_panel" = ps: with ps; [  ];
     "simplisafe.config_flow" = ps: with ps; [  ];
     "simplisafe.const" = ps: with ps; [  ];
+    "simulated" = ps: with ps; [  ];
+    "simulated.sensor" = ps: with ps; [  ];
     "sisyphus" = ps: with ps; [  ];
     "sisyphus.light" = ps: with ps; [  ];
     "sisyphus.media_player" = ps: with ps; [  ];
+    "sky_hub" = ps: with ps; [  ];
+    "sky_hub.device_tracker" = ps: with ps; [  ];
+    "skybeacon" = ps: with ps; [  ];
+    "skybeacon.sensor" = ps: with ps; [  ];
     "skybell" = ps: with ps; [  ];
     "skybell.binary_sensor" = ps: with ps; [  ];
     "skybell.camera" = ps: with ps; [  ];
     "skybell.light" = ps: with ps; [  ];
     "skybell.sensor" = ps: with ps; [  ];
     "skybell.switch" = ps: with ps; [  ];
+    "slack" = ps: with ps; [  ];
+    "slack.notify" = ps: with ps; [  ];
     "sleepiq" = ps: with ps; [  ];
+    "sleepiq.binary_sensor" = ps: with ps; [  ];
+    "sleepiq.sensor" = ps: with ps; [  ];
+    "sma" = ps: with ps; [  ];
+    "sma.sensor" = ps: with ps; [  ];
     "smappee" = ps: with ps; [  ];
     "smappee.sensor" = ps: with ps; [  ];
     "smappee.switch" = ps: with ps; [  ];
@@ -1313,11 +1613,35 @@
     "smhi.config_flow" = ps: with ps; [  ];
     "smhi.const" = ps: with ps; [  ];
     "smhi.weather" = ps: with ps; [  ];
+    "smtp" = ps: with ps; [  ];
+    "smtp.notify" = ps: with ps; [  ];
+    "snapcast" = ps: with ps; [  ];
+    "snapcast.media_player" = ps: with ps; [ snapcast ];
     "snips" = ps: with ps; [ paho-mqtt ];
+    "snmp" = ps: with ps; [  ];
+    "snmp.device_tracker" = ps: with ps; [ pysnmp ];
+    "snmp.sensor" = ps: with ps; [ pysnmp ];
+    "snmp.switch" = ps: with ps; [ pysnmp ];
+    "sochain" = ps: with ps; [  ];
+    "sochain.sensor" = ps: with ps; [  ];
+    "socialblade" = ps: with ps; [  ];
+    "socialblade.sensor" = ps: with ps; [  ];
+    "solaredge" = ps: with ps; [  ];
+    "solaredge.sensor" = ps: with ps; [  ];
+    "sonarr" = ps: with ps; [  ];
+    "sonarr.sensor" = ps: with ps; [  ];
+    "songpal" = ps: with ps; [  ];
+    "songpal.media_player" = ps: with ps; [  ];
     "sonos" = ps: with ps; [  ];
     "sonos.media_player" = ps: with ps; [  ];
+    "sony_projector" = ps: with ps; [  ];
+    "sony_projector.switch" = ps: with ps; [  ];
+    "soundtouch" = ps: with ps; [  ];
+    "soundtouch.media_player" = ps: with ps; [ libsoundtouch ];
     "spaceapi" = ps: with ps; [ aiohttp-cors ];
     "spc" = ps: with ps; [  ];
+    "spc.alarm_control_panel" = ps: with ps; [  ];
+    "spc.binary_sensor" = ps: with ps; [  ];
     "speedtestdotnet" = ps: with ps; [ speedtest-cli ];
     "speedtestdotnet.const" = ps: with ps; [  ];
     "speedtestdotnet.sensor" = ps: with ps; [ speedtest-cli ];
@@ -1325,53 +1649,66 @@
     "spider.climate" = ps: with ps; [  ];
     "spider.switch" = ps: with ps; [  ];
     "splunk" = ps: with ps; [  ];
+    "spotcrime" = ps: with ps; [  ];
+    "spotcrime.sensor" = ps: with ps; [  ];
+    "spotify" = ps: with ps; [  ];
+    "spotify.media_player" = ps: with ps; [ aiohttp-cors ];
+    "sql" = ps: with ps; [  ];
+    "sql.sensor" = ps: with ps; [ sqlalchemy ];
+    "squeezebox" = ps: with ps; [  ];
+    "squeezebox.media_player" = ps: with ps; [  ];
+    "srp_energy" = ps: with ps; [  ];
+    "srp_energy.sensor" = ps: with ps; [  ];
+    "starlingbank" = ps: with ps; [  ];
+    "starlingbank.sensor" = ps: with ps; [  ];
+    "startca" = ps: with ps; [  ];
+    "startca.sensor" = ps: with ps; [ xmltodict ];
+    "statistics" = ps: with ps; [  ];
+    "statistics.sensor" = ps: with ps; [  ];
     "statsd" = ps: with ps; [ statsd ];
+    "steam_online" = ps: with ps; [  ];
+    "steam_online.sensor" = ps: with ps; [  ];
     "stream" = ps: with ps; [ aiohttp-cors av ];
     "stream.const" = ps: with ps; [  ];
     "stream.core" = ps: with ps; [  ];
     "stream.hls" = ps: with ps; [  ];
+    "stream.recorder" = ps: with ps; [  ];
     "stream.worker" = ps: with ps; [  ];
+    "stride" = ps: with ps; [  ];
+    "stride.notify" = ps: with ps; [  ];
     "sun" = ps: with ps; [  ];
+    "supervisord" = ps: with ps; [  ];
+    "supervisord.sensor" = ps: with ps; [  ];
+    "swiss_hydrological_data" = ps: with ps; [  ];
+    "swiss_hydrological_data.sensor" = ps: with ps; [  ];
+    "swiss_public_transport" = ps: with ps; [  ];
+    "swiss_public_transport.sensor" = ps: with ps; [  ];
+    "swisscom" = ps: with ps; [  ];
+    "swisscom.device_tracker" = ps: with ps; [  ];
     "switch" = ps: with ps; [  ];
-    "switch.acer_projector" = ps: with ps; [ pyserial ];
-    "switch.anel_pwrctrl" = ps: with ps; [  ];
-    "switch.arest" = ps: with ps; [  ];
-    "switch.broadlink" = ps: with ps; [ broadlink ];
-    "switch.command_line" = ps: with ps; [  ];
-    "switch.deluge" = ps: with ps; [ deluge-client ];
-    "switch.demo" = ps: with ps; [  ];
-    "switch.digitalloggers" = ps: with ps; [  ];
-    "switch.dlink" = ps: with ps; [  ];
-    "switch.edimax" = ps: with ps; [  ];
-    "switch.flux" = ps: with ps; [  ];
-    "switch.fritzdect" = ps: with ps; [  ];
-    "switch.hikvisioncam" = ps: with ps; [  ];
-    "switch.hook" = ps: with ps; [  ];
-    "switch.kankun" = ps: with ps; [  ];
-    "switch.litejet" = ps: with ps; [  ];
-    "switch.mfi" = ps: with ps; [  ];
-    "switch.mystrom" = ps: with ps; [  ];
-    "switch.netio" = ps: with ps; [ aiohttp-cors ];
-    "switch.orvibo" = ps: with ps; [  ];
-    "switch.pencom" = ps: with ps; [  ];
-    "switch.pulseaudio_loopback" = ps: with ps; [  ];
-    "switch.rainbird" = ps: with ps; [  ];
-    "switch.raspyrfm" = ps: with ps; [  ];
-    "switch.recswitch" = ps: with ps; [  ];
-    "switch.rest" = ps: with ps; [  ];
-    "switch.rflink" = ps: with ps; [  ];
-    "switch.rpi_rf" = ps: with ps; [  ];
-    "switch.snmp" = ps: with ps; [ pysnmp ];
-    "switch.sony_projector" = ps: with ps; [  ];
-    "switch.switchbot" = ps: with ps; [  ];
-    "switch.switchmate" = ps: with ps; [  ];
-    "switch.telnet" = ps: with ps; [  ];
-    "switch.template" = ps: with ps; [  ];
-    "switch.vesync" = ps: with ps; [  ];
-    "switch.vultr" = ps: with ps; [ vultr ];
-    "switch.wake_on_lan" = ps: with ps; [ wakeonlan ];
+    "switch.light" = ps: with ps; [  ];
+    "switchbot" = ps: with ps; [  ];
+    "switchbot.switch" = ps: with ps; [  ];
+    "switchmate" = ps: with ps; [  ];
+    "switchmate.switch" = ps: with ps; [  ];
+    "syncthru" = ps: with ps; [  ];
+    "syncthru.sensor" = ps: with ps; [  ];
+    "synology" = ps: with ps; [  ];
+    "synology.camera" = ps: with ps; [  ];
+    "synology_chat" = ps: with ps; [  ];
+    "synology_chat.notify" = ps: with ps; [  ];
+    "synology_srm" = ps: with ps; [  ];
+    "synology_srm.device_tracker" = ps: with ps; [  ];
+    "synologydsm" = ps: with ps; [  ];
+    "synologydsm.sensor" = ps: with ps; [  ];
+    "syslog" = ps: with ps; [  ];
+    "syslog.notify" = ps: with ps; [  ];
     "system_health" = ps: with ps; [ aiohttp-cors ];
     "system_log" = ps: with ps; [ aiohttp-cors ];
+    "systemmonitor" = ps: with ps; [  ];
+    "systemmonitor.sensor" = ps: with ps; [ psutil ];
+    "sytadin" = ps: with ps; [  ];
+    "sytadin.sensor" = ps: with ps; [ beautifulsoup4 ];
     "tado" = ps: with ps; [  ];
     "tado.climate" = ps: with ps; [  ];
     "tado.device_tracker" = ps: with ps; [  ];
@@ -1382,6 +1719,21 @@
     "tahoma.scene" = ps: with ps; [  ];
     "tahoma.sensor" = ps: with ps; [  ];
     "tahoma.switch" = ps: with ps; [  ];
+    "tank_utility" = ps: with ps; [  ];
+    "tank_utility.sensor" = ps: with ps; [  ];
+    "tapsaff" = ps: with ps; [  ];
+    "tapsaff.binary_sensor" = ps: with ps; [  ];
+    "tautulli" = ps: with ps; [  ];
+    "tautulli.sensor" = ps: with ps; [  ];
+    "tcp" = ps: with ps; [  ];
+    "tcp.binary_sensor" = ps: with ps; [  ];
+    "tcp.sensor" = ps: with ps; [  ];
+    "ted5000" = ps: with ps; [  ];
+    "ted5000.sensor" = ps: with ps; [ xmltodict ];
+    "teksavvy" = ps: with ps; [  ];
+    "teksavvy.sensor" = ps: with ps; [  ];
+    "telegram" = ps: with ps; [  ];
+    "telegram.notify" = ps: with ps; [ python-telegram-bot ];
     "telegram_bot" = ps: with ps; [ python-telegram-bot ];
     "telegram_bot.broadcast" = ps: with ps; [  ];
     "telegram_bot.polling" = ps: with ps; [  ];
@@ -1400,6 +1752,20 @@
     "tellstick.light" = ps: with ps; [  ];
     "tellstick.sensor" = ps: with ps; [  ];
     "tellstick.switch" = ps: with ps; [  ];
+    "telnet" = ps: with ps; [  ];
+    "telnet.switch" = ps: with ps; [  ];
+    "temper" = ps: with ps; [  ];
+    "temper.sensor" = ps: with ps; [  ];
+    "template" = ps: with ps; [  ];
+    "template.binary_sensor" = ps: with ps; [  ];
+    "template.cover" = ps: with ps; [  ];
+    "template.fan" = ps: with ps; [  ];
+    "template.light" = ps: with ps; [  ];
+    "template.lock" = ps: with ps; [  ];
+    "template.sensor" = ps: with ps; [  ];
+    "template.switch" = ps: with ps; [  ];
+    "tensorflow" = ps: with ps; [  ];
+    "tensorflow.image_processing" = ps: with ps; [ numpy pillow protobuf ];
     "tesla" = ps: with ps; [  ];
     "tesla.binary_sensor" = ps: with ps; [  ];
     "tesla.climate" = ps: with ps; [  ];
@@ -1407,47 +1773,78 @@
     "tesla.lock" = ps: with ps; [  ];
     "tesla.sensor" = ps: with ps; [  ];
     "tesla.switch" = ps: with ps; [  ];
+    "tfiac" = ps: with ps; [  ];
+    "tfiac.climate" = ps: with ps; [  ];
+    "thermoworks_smoke" = ps: with ps; [  ];
+    "thermoworks_smoke.sensor" = ps: with ps; [  ];
     "thethingsnetwork" = ps: with ps; [  ];
     "thethingsnetwork.sensor" = ps: with ps; [  ];
     "thingspeak" = ps: with ps; [  ];
     "thinkingcleaner" = ps: with ps; [  ];
     "thinkingcleaner.sensor" = ps: with ps; [  ];
     "thinkingcleaner.switch" = ps: with ps; [  ];
+    "thomson" = ps: with ps; [  ];
+    "thomson.device_tracker" = ps: with ps; [  ];
+    "threshold" = ps: with ps; [  ];
+    "threshold.binary_sensor" = ps: with ps; [  ];
     "tibber" = ps: with ps; [  ];
     "tibber.notify" = ps: with ps; [  ];
     "tibber.sensor" = ps: with ps; [  ];
+    "tikteck" = ps: with ps; [  ];
+    "tikteck.light" = ps: with ps; [  ];
+    "tile" = ps: with ps; [  ];
+    "tile.device_tracker" = ps: with ps; [  ];
+    "time_date" = ps: with ps; [  ];
+    "time_date.sensor" = ps: with ps; [  ];
     "timer" = ps: with ps; [  ];
+    "tod" = ps: with ps; [  ];
+    "tod.binary_sensor" = ps: with ps; [  ];
+    "todoist" = ps: with ps; [  ];
+    "todoist.calendar" = ps: with ps; [ todoist ];
     "tof" = ps: with ps; [  ];
     "tof.sensor" = ps: with ps; [  ];
+    "tomato" = ps: with ps; [  ];
+    "tomato.device_tracker" = ps: with ps; [  ];
     "toon" = ps: with ps; [  ];
     "toon.binary_sensor" = ps: with ps; [  ];
     "toon.climate" = ps: with ps; [  ];
     "toon.config_flow" = ps: with ps; [  ];
     "toon.const" = ps: with ps; [  ];
     "toon.sensor" = ps: with ps; [  ];
+    "torque" = ps: with ps; [  ];
+    "torque.sensor" = ps: with ps; [ aiohttp-cors ];
+    "totalconnect" = ps: with ps; [  ];
+    "totalconnect.alarm_control_panel" = ps: with ps; [  ];
+    "touchline" = ps: with ps; [  ];
+    "touchline.climate" = ps: with ps; [  ];
     "tplink" = ps: with ps; [  ];
+    "tplink.device_tracker" = ps: with ps; [  ];
     "tplink.light" = ps: with ps; [  ];
     "tplink.switch" = ps: with ps; [  ];
     "tplink_lte" = ps: with ps; [  ];
     "tplink_lte.notify" = ps: with ps; [  ];
+    "traccar" = ps: with ps; [  ];
+    "traccar.device_tracker" = ps: with ps; [  ];
+    "trackr" = ps: with ps; [  ];
+    "trackr.device_tracker" = ps: with ps; [  ];
     "tradfri" = ps: with ps; [  ];
     "tradfri.config_flow" = ps: with ps; [  ];
     "tradfri.const" = ps: with ps; [  ];
     "tradfri.light" = ps: with ps; [  ];
     "tradfri.sensor" = ps: with ps; [  ];
     "tradfri.switch" = ps: with ps; [  ];
+    "trafikverket_weatherstation" = ps: with ps; [  ];
+    "trafikverket_weatherstation.sensor" = ps: with ps; [  ];
     "transmission" = ps: with ps; [ transmissionrpc ];
     "transmission.sensor" = ps: with ps; [ transmissionrpc ];
     "transmission.switch" = ps: with ps; [ transmissionrpc ];
+    "transport_nsw" = ps: with ps; [  ];
+    "transport_nsw.sensor" = ps: with ps; [  ];
+    "travisci" = ps: with ps; [  ];
+    "travisci.sensor" = ps: with ps; [  ];
+    "trend" = ps: with ps; [  ];
+    "trend.binary_sensor" = ps: with ps; [ numpy ];
     "tts" = ps: with ps; [ aiohttp-cors mutagen ];
-    "tts.amazon_polly" = ps: with ps; [ boto3 ];
-    "tts.baidu" = ps: with ps; [  ];
-    "tts.demo" = ps: with ps; [  ];
-    "tts.marytts" = ps: with ps; [  ];
-    "tts.microsoft" = ps: with ps; [  ];
-    "tts.picotts" = ps: with ps; [  ];
-    "tts.voicerss" = ps: with ps; [  ];
-    "tts.yandextts" = ps: with ps; [  ];
     "tuya" = ps: with ps; [  ];
     "tuya.climate" = ps: with ps; [  ];
     "tuya.cover" = ps: with ps; [  ];
@@ -1456,11 +1853,36 @@
     "tuya.scene" = ps: with ps; [  ];
     "tuya.switch" = ps: with ps; [  ];
     "twilio" = ps: with ps; [ aiohttp-cors twilio ];
+    "twilio_call" = ps: with ps; [  ];
+    "twilio_call.notify" = ps: with ps; [ aiohttp-cors twilio ];
+    "twilio_sms" = ps: with ps; [  ];
+    "twilio_sms.notify" = ps: with ps; [ aiohttp-cors twilio ];
+    "twitch" = ps: with ps; [  ];
+    "twitch.sensor" = ps: with ps; [  ];
+    "twitter" = ps: with ps; [  ];
+    "twitter.notify" = ps: with ps; [  ];
+    "ubee" = ps: with ps; [  ];
+    "ubee.device_tracker" = ps: with ps; [  ];
+    "uber" = ps: with ps; [  ];
+    "uber.sensor" = ps: with ps; [  ];
+    "ubus" = ps: with ps; [  ];
+    "ubus.device_tracker" = ps: with ps; [  ];
+    "ue_smart_radio" = ps: with ps; [  ];
+    "ue_smart_radio.media_player" = ps: with ps; [  ];
+    "uk_transport" = ps: with ps; [  ];
+    "uk_transport.sensor" = ps: with ps; [  ];
     "unifi" = ps: with ps; [ aiounifi ];
     "unifi.const" = ps: with ps; [  ];
     "unifi.controller" = ps: with ps; [  ];
+    "unifi.device_tracker" = ps: with ps; [ pyunifi ];
     "unifi.errors" = ps: with ps; [  ];
     "unifi.switch" = ps: with ps; [ aiounifi ];
+    "unifi_direct" = ps: with ps; [  ];
+    "unifi_direct.device_tracker" = ps: with ps; [ pexpect ];
+    "universal" = ps: with ps; [  ];
+    "universal.media_player" = ps: with ps; [  ];
+    "upc_connect" = ps: with ps; [  ];
+    "upc_connect.device_tracker" = ps: with ps; [ defusedxml ];
     "upcloud" = ps: with ps; [  ];
     "upcloud.binary_sensor" = ps: with ps; [  ];
     "upcloud.switch" = ps: with ps; [  ];
@@ -1469,16 +1891,27 @@
     "upnp.const" = ps: with ps; [  ];
     "upnp.device" = ps: with ps; [  ];
     "upnp.sensor" = ps: with ps; [  ];
+    "ups" = ps: with ps; [  ];
+    "ups.sensor" = ps: with ps; [  ];
+    "uptime" = ps: with ps; [  ];
+    "uptime.sensor" = ps: with ps; [  ];
+    "uptimerobot" = ps: with ps; [  ];
+    "uptimerobot.binary_sensor" = ps: with ps; [  ];
+    "uscis" = ps: with ps; [  ];
+    "uscis.sensor" = ps: with ps; [  ];
+    "usgs_earthquakes_feed" = ps: with ps; [  ];
+    "usgs_earthquakes_feed.geo_location" = ps: with ps; [  ];
     "usps" = ps: with ps; [  ];
     "usps.camera" = ps: with ps; [  ];
     "usps.sensor" = ps: with ps; [  ];
     "utility_meter" = ps: with ps; [  ];
     "utility_meter.const" = ps: with ps; [  ];
     "utility_meter.sensor" = ps: with ps; [  ];
+    "uvc" = ps: with ps; [  ];
+    "uvc.camera" = ps: with ps; [  ];
     "vacuum" = ps: with ps; [  ];
-    "vacuum.demo" = ps: with ps; [  ];
-    "vacuum.dyson" = ps: with ps; [  ];
-    "vacuum.roomba" = ps: with ps; [  ];
+    "vasttrafik" = ps: with ps; [  ];
+    "vasttrafik.sensor" = ps: with ps; [  ];
     "velbus" = ps: with ps; [  ];
     "velbus.binary_sensor" = ps: with ps; [  ];
     "velbus.climate" = ps: with ps; [  ];
@@ -1488,6 +1921,8 @@
     "velux" = ps: with ps; [  ];
     "velux.cover" = ps: with ps; [  ];
     "velux.scene" = ps: with ps; [  ];
+    "venstar" = ps: with ps; [  ];
+    "venstar.climate" = ps: with ps; [  ];
     "vera" = ps: with ps; [  ];
     "vera.binary_sensor" = ps: with ps; [  ];
     "vera.climate" = ps: with ps; [  ];
@@ -1504,6 +1939,22 @@
     "verisure.lock" = ps: with ps; [  ];
     "verisure.sensor" = ps: with ps; [  ];
     "verisure.switch" = ps: with ps; [  ];
+    "version" = ps: with ps; [  ];
+    "version.sensor" = ps: with ps; [  ];
+    "vesync" = ps: with ps; [  ];
+    "vesync.switch" = ps: with ps; [  ];
+    "viaggiatreno" = ps: with ps; [  ];
+    "viaggiatreno.sensor" = ps: with ps; [  ];
+    "vizio" = ps: with ps; [  ];
+    "vizio.media_player" = ps: with ps; [  ];
+    "vlc" = ps: with ps; [  ];
+    "vlc.media_player" = ps: with ps; [  ];
+    "voicerss" = ps: with ps; [  ];
+    "voicerss.tts" = ps: with ps; [  ];
+    "volkszaehler" = ps: with ps; [  ];
+    "volkszaehler.sensor" = ps: with ps; [  ];
+    "volumio" = ps: with ps; [  ];
+    "volumio.media_player" = ps: with ps; [  ];
     "volvooncall" = ps: with ps; [  ];
     "volvooncall.binary_sensor" = ps: with ps; [  ];
     "volvooncall.device_tracker" = ps: with ps; [  ];
@@ -1511,25 +1962,22 @@
     "volvooncall.sensor" = ps: with ps; [  ];
     "volvooncall.switch" = ps: with ps; [  ];
     "vultr" = ps: with ps; [ vultr ];
+    "vultr.binary_sensor" = ps: with ps; [ vultr ];
+    "vultr.sensor" = ps: with ps; [ vultr ];
+    "vultr.switch" = ps: with ps; [ vultr ];
     "w800rf32" = ps: with ps; [  ];
     "w800rf32.binary_sensor" = ps: with ps; [  ];
     "wake_on_lan" = ps: with ps; [ wakeonlan ];
+    "wake_on_lan.switch" = ps: with ps; [ wakeonlan ];
+    "waqi" = ps: with ps; [  ];
+    "waqi.sensor" = ps: with ps; [  ];
     "water_heater" = ps: with ps; [  ];
-    "water_heater.demo" = ps: with ps; [  ];
-    "water_heater.econet" = ps: with ps; [  ];
     "waterfurnace" = ps: with ps; [  ];
     "waterfurnace.sensor" = ps: with ps; [  ];
     "watson_iot" = ps: with ps; [  ];
+    "waze_travel_time" = ps: with ps; [  ];
+    "waze_travel_time.sensor" = ps: with ps; [ WazeRouteCalculator ];
     "weather" = ps: with ps; [  ];
-    "weather.bom" = ps: with ps; [  ];
-    "weather.buienradar" = ps: with ps; [  ];
-    "weather.darksky" = ps: with ps; [ python-forecastio ];
-    "weather.demo" = ps: with ps; [  ];
-    "weather.met" = ps: with ps; [  ];
-    "weather.metoffice" = ps: with ps; [  ];
-    "weather.openweathermap" = ps: with ps; [ pyowm ];
-    "weather.yweather" = ps: with ps; [ yahooweather ];
-    "weather.zamg" = ps: with ps; [  ];
     "webhook" = ps: with ps; [ aiohttp-cors ];
     "weblink" = ps: with ps; [  ];
     "webostv" = ps: with ps; [  ];
@@ -1545,11 +1993,14 @@
     "websocket_api.http" = ps: with ps; [  ];
     "websocket_api.messages" = ps: with ps; [  ];
     "websocket_api.permissions" = ps: with ps; [  ];
+    "websocket_api.sensor" = ps: with ps; [  ];
     "wemo" = ps: with ps; [  ];
     "wemo.binary_sensor" = ps: with ps; [  ];
     "wemo.fan" = ps: with ps; [  ];
     "wemo.light" = ps: with ps; [  ];
     "wemo.switch" = ps: with ps; [  ];
+    "whois" = ps: with ps; [  ];
+    "whois.sensor" = ps: with ps; [  ];
     "wink" = ps: with ps; [  ];
     "wink.alarm_control_panel" = ps: with ps; [  ];
     "wink.binary_sensor" = ps: with ps; [  ];
@@ -1566,7 +2017,30 @@
     "wirelesstag.binary_sensor" = ps: with ps; [  ];
     "wirelesstag.sensor" = ps: with ps; [  ];
     "wirelesstag.switch" = ps: with ps; [  ];
+    "workday" = ps: with ps; [  ];
+    "workday.binary_sensor" = ps: with ps; [  ];
+    "worldclock" = ps: with ps; [  ];
+    "worldclock.sensor" = ps: with ps; [  ];
+    "worldtidesinfo" = ps: with ps; [  ];
+    "worldtidesinfo.sensor" = ps: with ps; [  ];
+    "worxlandroid" = ps: with ps; [  ];
+    "worxlandroid.sensor" = ps: with ps; [  ];
+    "wsdot" = ps: with ps; [  ];
+    "wsdot.sensor" = ps: with ps; [  ];
+    "wunderground" = ps: with ps; [  ];
+    "wunderground.sensor" = ps: with ps; [  ];
     "wunderlist" = ps: with ps; [  ];
+    "x10" = ps: with ps; [  ];
+    "x10.light" = ps: with ps; [  ];
+    "xbox_live" = ps: with ps; [  ];
+    "xbox_live.sensor" = ps: with ps; [  ];
+    "xeoma" = ps: with ps; [  ];
+    "xeoma.camera" = ps: with ps; [  ];
+    "xfinity" = ps: with ps; [  ];
+    "xfinity.device_tracker" = ps: with ps; [  ];
+    "xiaomi" = ps: with ps; [  ];
+    "xiaomi.camera" = ps: with ps; [ ha-ffmpeg ];
+    "xiaomi.device_tracker" = ps: with ps; [  ];
     "xiaomi_aqara" = ps: with ps; [  ];
     "xiaomi_aqara.binary_sensor" = ps: with ps; [  ];
     "xiaomi_aqara.cover" = ps: with ps; [  ];
@@ -1582,13 +2056,46 @@
     "xiaomi_miio.sensor" = ps: with ps; [ construct ];
     "xiaomi_miio.switch" = ps: with ps; [ construct ];
     "xiaomi_miio.vacuum" = ps: with ps; [ construct ];
+    "xiaomi_tv" = ps: with ps; [  ];
+    "xiaomi_tv.media_player" = ps: with ps; [  ];
+    "xmpp" = ps: with ps; [  ];
+    "xmpp.notify" = ps: with ps; [ slixmpp ];
     "xs1" = ps: with ps; [  ];
     "xs1.climate" = ps: with ps; [  ];
     "xs1.sensor" = ps: with ps; [  ];
     "xs1.switch" = ps: with ps; [  ];
+    "yale_smart_alarm" = ps: with ps; [  ];
+    "yale_smart_alarm.alarm_control_panel" = ps: with ps; [  ];
+    "yamaha" = ps: with ps; [  ];
+    "yamaha.media_player" = ps: with ps; [  ];
+    "yamaha_musiccast" = ps: with ps; [  ];
+    "yamaha_musiccast.media_player" = ps: with ps; [  ];
+    "yandextts" = ps: with ps; [  ];
+    "yandextts.tts" = ps: with ps; [  ];
+    "yeelight" = ps: with ps; [  ];
+    "yeelight.binary_sensor" = ps: with ps; [  ];
+    "yeelight.light" = ps: with ps; [  ];
+    "yeelightsunflower" = ps: with ps; [  ];
+    "yeelightsunflower.light" = ps: with ps; [  ];
+    "yessssms" = ps: with ps; [  ];
+    "yessssms.notify" = ps: with ps; [  ];
+    "yi" = ps: with ps; [  ];
+    "yi.camera" = ps: with ps; [ ha-ffmpeg ];
+    "yr" = ps: with ps; [  ];
+    "yr.sensor" = ps: with ps; [ xmltodict ];
+    "yweather" = ps: with ps; [  ];
+    "yweather.sensor" = ps: with ps; [ yahooweather ];
+    "yweather.weather" = ps: with ps; [ yahooweather ];
     "zabbix" = ps: with ps; [  ];
     "zabbix.sensor" = ps: with ps; [  ];
+    "zamg" = ps: with ps; [  ];
+    "zamg.sensor" = ps: with ps; [  ];
+    "zamg.weather" = ps: with ps; [  ];
+    "zengge" = ps: with ps; [  ];
+    "zengge.light" = ps: with ps; [  ];
     "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf ];
+    "zestimate" = ps: with ps; [  ];
+    "zestimate.sensor" = ps: with ps; [ xmltodict ];
     "zha" = ps: with ps; [  ];
     "zha.api" = ps: with ps; [  ];
     "zha.binary_sensor" = ps: with ps; [  ];
@@ -1601,11 +2108,15 @@
     "zha.light" = ps: with ps; [  ];
     "zha.sensor" = ps: with ps; [  ];
     "zha.switch" = ps: with ps; [  ];
+    "zhong_hong" = ps: with ps; [  ];
+    "zhong_hong.climate" = ps: with ps; [  ];
     "zigbee" = ps: with ps; [  ];
     "zigbee.binary_sensor" = ps: with ps; [  ];
     "zigbee.light" = ps: with ps; [  ];
     "zigbee.sensor" = ps: with ps; [  ];
     "zigbee.switch" = ps: with ps; [  ];
+    "ziggo_mediabox_xl" = ps: with ps; [  ];
+    "ziggo_mediabox_xl.media_player" = ps: with ps; [  ];
     "zone" = ps: with ps; [  ];
     "zone.config_flow" = ps: with ps; [  ];
     "zone.const" = ps: with ps; [  ];
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index 9e5fb6bfb00..85aa4caf083 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -48,8 +48,8 @@ let
       "3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf")
     (mkOverride "requests" "2.21.0"
       "502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e")
-    (mkOverride "ruamel_yaml" "0.15.88"
-      "ac56193c47a31c9efa151064a9e921865cdad0f7a991d229e7197e12fe8e0cd7")
+    (mkOverride "ruamel_yaml" "0.15.89"
+      "86d034aa9e2ab3eacc5f75f5cd6a469a2af533b6d9e60ea92edbba540d21b9b7")
     (mkOverride "voluptuous" "0.11.5"
       "567a56286ef82a9d7ae0628c5842f65f516abcb496e74f3f59f1d7b28df314ef")
     (mkOverride "voluptuous-serialize" "2.1.0"
@@ -97,7 +97,7 @@ let
   extraBuildInputs = extraPackages py.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "0.90.2";
+  hassVersion = "0.91.1";
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "homeassistant";
@@ -112,7 +112,7 @@ in with py.pkgs; buildPythonApplication rec {
     owner = "home-assistant";
     repo = "home-assistant";
     rev = version;
-    sha256 = "0byikidvrvx8nxgddhpqz609rxb91j1kcppziv4ibb57g6lj7iwx";
+    sha256 = "1y2sv9qq7zmb85n2f5b3csnc60xi87ccpkmhz8ii9gkjw6swikyh";
   };
 
   propagatedBuildInputs = [
@@ -133,7 +133,7 @@ in with py.pkgs; buildPythonApplication rec {
     # Some basic components should be tested however
     py.test \
       tests/components/{api,config,configurator,demo,discovery,frontend,group,history,history_graph} \
-      tests/components/{http,init,introduction,logger,script,shell_command,system_log,websocket_api}
+      tests/components/{homeassistant,http,introduction,logger,script,shell_command,system_log,websocket_api}
   '';
 
   makeWrapperArgs = lib.optional skipPip "--add-flags --skip-pip";
diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix
index a011e35ae64..f8349c24f7f 100644
--- a/pkgs/servers/home-assistant/frontend.nix
+++ b/pkgs/servers/home-assistant/frontend.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-frontend";
-  version = "20190321.0";
+  version = "20190331.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0sk96mnmvsbcqjjcrlgfsxkywms0zmajjgn3ibvk4sfn5wn53bg7";
+    sha256 = "2d266a4d3d31af9a50debb99b0e9e9650044698f9157753bec785785057264cf";
   };
 
   propagatedBuildInputs = [ user-agents ];
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 73705c3c963..7021b2210bd 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -1,7 +1,7 @@
 { lib, buildGoPackage, fetchurl, fetchFromGitHub, phantomjs2 }:
 
 buildGoPackage rec {
-  version = "6.1.0";
+  version = "6.1.1";
   name = "grafana-${version}";
   goPackagePath = "github.com/grafana/grafana";
 
@@ -11,12 +11,12 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "0h66ndqpbv2l1srn3z4qjg78d69146ryynkvn5ynrbvka4fzg0yp";
+    sha256 = "1n7wr89sbpdi1zpqvmyidp9y0mjdnxgdv7bj6gc9kkp6dskqk1r8";
   };
 
   srcStatic = fetchurl {
     url = "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-${version}.linux-amd64.tar.gz";
-    sha256 = "0180zfm9py0ah74vh384cxbvgnx5mfbkdc8fbiqlmfz0wvlpvz7q";
+    sha256 = "0dbqqm3z2z4bxgq9y2lbjx6znjgqmsyz8qih2b4z6j3fvixfa5sw";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix
index 1d523351d1e..469d5fb73f9 100644
--- a/pkgs/servers/traefik/default.nix
+++ b/pkgs/servers/traefik/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "traefik-${version}";
-  version = "1.7.9";
+  version = "1.7.10";
 
   goPackagePath = "github.com/containous/traefik";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "containous";
     repo = "traefik";
     rev = "v${version}";
-    sha256 = "0lncygkqws5jvbhpx2qlr18y8b325y9a6690ll9azlphxydrv44m";
+    sha256 = "1bfnwrwr27hywlv09a4z8ma70af6p6l3jcdpf8wg3aw5brznv9cq";
   };
 
   buildInputs = [ go-bindata bash ];
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index 17ad6be0fad..6d6fa5d93e1 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -4,13 +4,13 @@
 { stdenv, fetchgit }:
 
 stdenv.mkDerivation rec {
-  version = "2019-01-15";
+  version = "2019-04-04";
   name = "oh-my-zsh-${version}";
+  rev = "4ddb2e384ab0840b1d8a6d4c95770ef8a6c25fcc";
 
-  src = fetchgit {
+  src = fetchgit { inherit rev;
     url = "https://github.com/robbyrussell/oh-my-zsh";
-    rev = "586ca16902d9dae4d95d5256a824572f60219c83";
-    sha256 = "0hzc1fv848h9vlmrw487818l30xfw2vnv50yhkrgvw8lqaam3bs8";
+    sha256 = "0hvpq24qh10x3ii3j16kwpzlgas6zw9bg0sspd9dlfqb7rcmvqy2";
   };
 
   pathsToLink = [ "/share/oh-my-zsh" ];
diff --git a/pkgs/shells/zsh/oh-my-zsh/update.sh b/pkgs/shells/zsh/oh-my-zsh/update.sh
new file mode 100755
index 00000000000..08b0daa4387
--- /dev/null
+++ b/pkgs/shells/zsh/oh-my-zsh/update.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl common-updater-scripts jq
+
+set -eu -o pipefail
+
+oldVersion="$(nix-instantiate --eval -E "with import ./. {}; oh-my-zsh.version or (builtins.parseDrvName oh-my-zsh.name).version" | tr -d '"')"
+latestSha="$(curl -L -s https://api.github.com/repos/robbyrussell/oh-my-zsh/commits\?sha\=master\&since\=${oldVersion} | jq -r '.[0].sha')"
+url="$(nix-instantiate --eval -E "with import ./. {}; oh-my-zsh.src.url" | tr -d '"')"
+
+if [ ! "null" = "${latestSha}" ]; then
+  latestDate="$(curl -L -s https://api.github.com/repos/robbyrussell/oh-my-zsh/commits/${latestSha} | jq '.commit.author.date' | sed 's|"\(.*\)T.*|\1|g')"
+  update-source-version oh-my-zsh "${latestSha}" --version-key=rev
+  update-source-version oh-my-zsh "${latestDate}" --ignore-same-hash
+  nixpkgs="$(git rev-parse --show-toplevel)"
+  default_nix="$nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix"
+  git add "${default_nix}"
+  git commit -m "oh-my-zsh: ${oldVersion} -> ${latestDate}"
+else
+  echo "oh-my-zsh is already up-to-date"
+fi
diff --git a/pkgs/shells/zsh/zsh-autosuggestions/default.nix b/pkgs/shells/zsh/zsh-autosuggestions/default.nix
index cc7cf8fbb5e..c9eec01d0b7 100644
--- a/pkgs/shells/zsh/zsh-autosuggestions/default.nix
+++ b/pkgs/shells/zsh/zsh-autosuggestions/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "zsh-autosuggestions-${version}";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "zsh-users";
     repo = "zsh-autosuggestions";
     rev = "v${version}";
-    sha256 = "19qkg4b2flvnp2l0cbkl4qbrnl8d3lym2mmh1mx9nmjd7b81r3pf";
+    sha256 = "0l5n4bjalz2nmbf50j56aq82r2lc784l21n3k5fx2khxckdb89p2";
   };
 
   buildInputs = [ zsh ];
diff --git a/pkgs/tools/admin/lxd/default.nix b/pkgs/tools/admin/lxd/default.nix
index a94cf1d37ec..424d97a4729 100644
--- a/pkgs/tools/admin/lxd/default.nix
+++ b/pkgs/tools/admin/lxd/default.nix
@@ -8,24 +8,15 @@
 
 buildGoPackage rec {
   pname = "lxd";
-  version = "3.11";
+  version = "3.12";
 
   goPackagePath = "github.com/lxc/lxd";
 
   src = fetchurl {
     url = "https://github.com/lxc/lxd/releases/download/${pname}-${version}/${pname}-${version}.tar.gz";
-    sha256 = "0xxzrwhyzzp23arj57vjs1yh91gy3r4wpd5qy9ksifzd390clf2x";
+    sha256 = "0m2cq41mz5209csr07gsnmslqvqdxk2p1l2saa23ddnaybqnjy16";
   };
 
-  patches = [
-    (fetchpatch {
-      url = https://github.com/CanonicalLtd/go-dqlite/commit/88a96df66e3e3bdc290fd4a0d41615d284d2c92c.patch;
-      sha256 = "0z6r4shh1rlf0in9xk1gi6ms2kcvplc3878106d2zzzfz7ad83a4";
-      extraPrefix = "dist/src/github.com/CanonicalLtd/go-dqlite/";
-      stripLen = 1;
-    })
-  ];
-
   preBuild = ''
     # unpack vendor
     pushd go/src/github.com/lxc/lxd
diff --git a/pkgs/tools/archivers/unrar/default.nix b/pkgs/tools/archivers/unrar/default.nix
index 73c73c564fd..a5d1e7b05ef 100644
--- a/pkgs/tools/archivers/unrar/default.nix
+++ b/pkgs/tools/archivers/unrar/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "unrar-${version}";
-  version = "5.7.3";
+  version = "5.7.4";
 
   src = fetchurl {
     url = "https://www.rarlab.com/rar/unrarsrc-${version}.tar.gz";
-    sha256 = "0i5442sh18v9s47k1j8q04m3ki98z012rw7ml7c5iwklhfvmds20";
+    sha256 = "1d77wwgapwjxxshhinhk51skdd6v6xdsx34jjcjg6cj6zlwd0baq";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/audio/playerctl/default.nix b/pkgs/tools/audio/playerctl/default.nix
index d1edbf94fe0..cda89302abd 100644
--- a/pkgs/tools/audio/playerctl/default.nix
+++ b/pkgs/tools/audio/playerctl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "playerctl-${version}";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "acrisci";
     repo = "playerctl";
     rev = "v${version}";
-    sha256 = "0j1fvcc80307ybl1z9l752sr4bcza2fmb8qdivpnm4xmm82faigb";
+    sha256 = "1f3njnpd52djx3dmhh9a8p5a67f0jmr1gbk98icflr2q91149gjz";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig gtk-doc docbook_xsl gobject-introspection ];
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index a34dc0cdafe..8968950928e 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "0.7.4";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qi29qy4kwqfbca5ghdmjidpwn2wghr19jwzrrk0xvlq1xb13jfa";
+    sha256 = "1pwbz4ac2zb40g6q6ykzhzfbn0jr5xarkvgw9wxv455mbi67rd6y";
   };
 
   cargoSha256 = "0cq78im3hg7wns260gwvajikj80l7kjbg3zycy3nvdx34llgv0n5";
diff --git a/pkgs/tools/misc/pspg/default.nix b/pkgs/tools/misc/pspg/default.nix
index 597d0b566d9..7f9638a3ffc 100644
--- a/pkgs/tools/misc/pspg/default.nix
+++ b/pkgs/tools/misc/pspg/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "pspg-${version}";
-  version = "1.6.3";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = "pspg";
     rev = "${version}";
-    sha256 = "1k2nnq15h5grymiylnh1iqipxn315paq58habfmaix2zlj3n3dy2";
+    sha256 = "0j9qn516j0fdz1x196xsdai3qk3jmlamm53zvngqjbjzdfkdclqw";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/misc/tlp/default.nix b/pkgs/tools/misc/tlp/default.nix
index 39d3ea1c208..2cdb8aff472 100644
--- a/pkgs/tools/misc/tlp/default.nix
+++ b/pkgs/tools/misc/tlp/default.nix
@@ -1,6 +1,7 @@
 { stdenv, lib, fetchFromGitHub, perl, makeWrapper, file, systemd, iw, rfkill
 , hdparm, ethtool, inetutils , kmod, pciutils, smartmontools
 , x86_energy_perf_policy, gawk, gnugrep, coreutils, utillinux
+, checkbashisms, shellcheck
 , enableRDW ? false, networkmanager
 }:
 
@@ -14,28 +15,31 @@ let
 
 in stdenv.mkDerivation rec {
   name = "tlp-${version}";
-  version = "1.1";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
-        owner = "linrunner";
-        repo = "TLP";
-        rev = "${version}";
-        sha256 = "01bhb9hdsck1g2s5jvafr3ywml9k2qz7x2cf42a3z8g5d23pdfpy";
-      };
+    owner = "linrunner";
+    repo = "TLP";
+    rev = version;
+    sha256 = "1msldl6y8fpvxa9p87lv3hvgxwk2vpiahqmapq485ihdjkshc558";
+  };
+
+  outRef = placeholder "out";
 
-  makeFlags = [ "DESTDIR=$(out)"
-                "TLP_SBIN=$(out)/bin"
-                "TLP_BIN=$(out)/bin"
-                "TLP_TLIB=$(out)/share/tlp-pm"
-                "TLP_PLIB=$(out)/lib/pm-utils"
-                "TLP_ULIB=$(out)/lib/udev"
-                "TLP_NMDSP=$(out)/etc/NetworkManager/dispatcher.d"
-                "TLP_SHCPL=$(out)/share/bash-completion/completions"
-                "TLP_MAN=$(out)/share/man"
+  makeFlags = [
+    "DESTDIR=${outRef}"
+    "TLP_SBIN=${outRef}/bin"
+    "TLP_BIN=${outRef}/bin"
+    "TLP_TLIB=${outRef}/share/tlp"
+    "TLP_FLIB=${outRef}/share/tlp/func.d"
+    "TLP_ULIB=${outRef}/lib/udev"
+    "TLP_NMDSP=${outRef}/etc/NetworkManager/dispatcher.d"
+    "TLP_SHCPL=${outRef}/share/bash-completion/completions"
+    "TLP_MAN=${outRef}/share/man"
+    "TLP_META=${outRef}/share/metainfo"
 
-                "TLP_NO_INIT=1"
-                "TLP_NO_PMUTILS=1"
-              ];
+    "TLP_NO_INIT=1"
+  ];
 
   nativeBuildInputs = [ makeWrapper file ];
 
@@ -43,6 +47,14 @@ in stdenv.mkDerivation rec {
 
   installTargets = [ "install-tlp" "install-man" ] ++ stdenv.lib.optional enableRDW "install-rdw";
 
+  checkInputs = [
+    checkbashisms
+    shellcheck
+  ];
+
+  doCheck = true;
+  checkTarget = [ "checkall" ];
+
   postInstall = ''
     cp -r $out/$out/* $out
     rm -rf $out/$(echo "$NIX_STORE" | cut -d "/" -f2)
diff --git a/pkgs/tools/misc/vdirsyncer/default.nix b/pkgs/tools/misc/vdirsyncer/default.nix
index af8d0862d1b..603492718d0 100644
--- a/pkgs/tools/misc/vdirsyncer/default.nix
+++ b/pkgs/tools/misc/vdirsyncer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, python3Packages, fetchFromGitHub, fetchpatch, glibcLocales, rustPlatform, pkgconfig, openssl, Security }:
+{ stdenv, python3Packages, fetchFromGitHub, fetchpatch, rustPlatform, pkgconfig, openssl, Security }:
 
 # Packaging documentation at:
 # https://github.com/untitaker/vdirsyncer/blob/master/docs/packaging.rst
@@ -32,9 +32,9 @@ python3Packages.buildPythonApplication rec {
     shippai
   ];
 
-  buildInputs = with python3Packages; [ setuptools_scm ];
+  nativeBuildInputs = with python3Packages; [ setuptools_scm ];
 
-  checkInputs = with python3Packages; [ hypothesis pytest pytest-localserver pytest-subtesthack ] ++ [ glibcLocales ];
+  checkInputs = with python3Packages; [ hypothesis pytest pytest-localserver pytest-subtesthack ];
 
   patches = [
     # Fixes for hypothesis: https://github.com/pimutils/vdirsyncer/pull/779
@@ -66,11 +66,8 @@ python3Packages.buildPythonApplication rec {
     ln -s ${native}/lib/libvdirsyncer_rustext* rust/target/release/
   '';
 
-  LC_ALL = "en_US.utf8";
-
   checkPhase = ''
     rm -rf vdirsyncer
-    export PYTHONPATH=$out/${python3Packages.python.sitePackages}:$PYTHONPATH
     make DETERMINISTIC_TESTS=true test
   '';
 
@@ -78,7 +75,6 @@ python3Packages.buildPythonApplication rec {
     homepage = https://github.com/pimutils/vdirsyncer;
     description = "Synchronize calendars and contacts";
     maintainers = with maintainers; [ matthiasbeyer ];
-    platforms = platforms.all;
     license = licenses.mit;
   };
 }
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index b5bb97ce572..d3cca59bf19 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -19,11 +19,11 @@ buildPythonPackage rec {
   # The websites youtube-dl deals with are a very moving target. That means that
   # downloads break constantly. Because of that, updates should always be backported
   # to the latest stable release.
-  version = "2019.04.01";
+  version = "2019.04.07";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0srh04k0p088rxbyxvnhngqyymwqhykqv02sdaqvkl9jhp43r0sm";
+    sha256 = "1krx4y8nzpaqpq9qs8dnv2y988jpdccyfl9sdx9wrb0baycl119k";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/networking/dnscrypt-proxy/2.x/default.nix b/pkgs/tools/networking/dnscrypt-proxy/2.x/default.nix
index a7b564be868..7cedd0f23b4 100644
--- a/pkgs/tools/networking/dnscrypt-proxy/2.x/default.nix
+++ b/pkgs/tools/networking/dnscrypt-proxy/2.x/default.nix
@@ -2,15 +2,15 @@
 
 buildGoPackage rec {
   name = "dnscrypt-proxy2-${version}";
-  version = "2.0.21";
+  version = "2.0.22";
 
   goPackagePath = "github.com/jedisct1/dnscrypt-proxy";
 
   src = fetchFromGitHub {
     owner = "jedisct1";
     repo = "dnscrypt-proxy";
-    rev = "${version}";
-    sha256 = "00sz5gn4l56rp4xcvxfpq6c64inpgzbwpqy1yc5sima6ijrayi9g";
+    rev = version;
+    sha256 = "0rmiyqxbbc3gjnfvyggf2lckckliiijq528993gv0n875r7ahkix";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/networking/i2p/default.nix b/pkgs/tools/networking/i2p/default.nix
index ceadc231143..2745c8c1d84 100644
--- a/pkgs/tools/networking/i2p/default.nix
+++ b/pkgs/tools/networking/i2p/default.nix
@@ -27,10 +27,10 @@ let wrapper = stdenv.mkDerivation rec {
 in
 
 stdenv.mkDerivation rec {
-  name = "i2p-0.9.38";
+  name = "i2p-0.9.39";
   src = fetchurl {
     url = "https://github.com/i2p/i2p.i2p/archive/${name}.tar.gz";
-    sha256 = "0fxn8q6ccpjxr41s97nmjxg7hx12dzwrm5a7gyxgr44r7l77qlv6";
+    sha256 = "0d6g0ffv2b0ghjjp3ndal8n9maw5y0n36vqrylhh5zr1hffvxx9i";
   };
   buildInputs = [ jdk ant gettext which ];
   patches = [ ./i2p.patch ];
diff --git a/pkgs/tools/security/proxmark3/default.nix b/pkgs/tools/security/proxmark3/default.nix
new file mode 100644
index 00000000000..afaed796057
--- /dev/null
+++ b/pkgs/tools/security/proxmark3/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, pkgconfig, ncurses, readline }:
+
+stdenv.mkDerivation rec {
+  pname = "proxmark3";
+  version = "3.1.0";
+
+  src = fetchFromGitHub {
+    owner = "Proxmark";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1qw28n1bhhl91ix77lv50qcr919fq3hjc8zhhqphwxal2svgx2jf";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ ncurses readline ];
+
+  postPatch = ''
+    substituteInPlace client/Makefile --replace '-ltermcap' ' '
+    substituteInPlace liblua/Makefile --replace '-ltermcap' ' '
+  '';
+
+  preBuild = ''
+    cd client
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp proxmark3 $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Client for proxmark3,  powerful general purpose RFID tool";
+    homepage = http://www.proxmark.org;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ fpletz ];
+  };
+}
diff --git a/pkgs/tools/system/rsyslog/default.nix b/pkgs/tools/system/rsyslog/default.nix
index 0ce6cb12a63..a907225914c 100644
--- a/pkgs/tools/system/rsyslog/default.nix
+++ b/pkgs/tools/system/rsyslog/default.nix
@@ -11,11 +11,11 @@ let
   mkFlag = cond: name: if cond then "--enable-${name}" else "--disable-${name}";
 in
 stdenv.mkDerivation rec {
-  name = "rsyslog-8.39.0";
+  name = "rsyslog-8.1903.0";
 
   src = fetchurl {
     url = "https://www.rsyslog.com/files/download/rsyslog/${name}.tar.gz";
-    sha256 = "1d3ac448b8gj58vg7n99ffv2rvpnhhin1ni5vyby73aksvz9c7y7";
+    sha256 = "0vq50k9n3dlb02431zy2c0vhzvb4x27bp887d1xlrinf7m4kmlnh";
   };
 
   #patches = [ ./fix-gnutls-detection.patch ];
diff --git a/pkgs/tools/typesetting/tex/latexrun/default.nix b/pkgs/tools/typesetting/tex/latexrun/default.nix
new file mode 100644
index 00000000000..6d64b536502
--- /dev/null
+++ b/pkgs/tools/typesetting/tex/latexrun/default.nix
@@ -0,0 +1,29 @@
+{ stdenvNoCC, fetchFromGitHub, python3 }:
+
+stdenvNoCC.mkDerivation {
+  pname = "latexrun";
+  version = "unstable-2015-11-18";
+  src = fetchFromGitHub {
+    owner = "aclements";
+    repo = "latexrun";
+    rev = "38ff6ec2815654513c91f64bdf2a5760c85da26e";
+    sha256 = "0xdl94kn0dbp6r7jk82cwxybglm9wp5qwrjqjxmvadrqix11a48w";
+  };
+
+  buildInputs = [ python3 ];
+
+  dontBuild = true;
+  installPhase = ''
+    mkdir -p $out/bin
+    cp latexrun $out/bin/latexrun
+    chmod +x $out/bin/latexrun
+  '';
+
+  meta = with stdenvNoCC.lib; {
+    description = "A 21st century LaTeX wrapper";
+    homepage = https://github.com/aclements/latexrun;
+    license = licenses.mit;
+    maintainers = [ maintainers.lucus16 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c94a8480c1c..09fd0e1bcc3 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -167,6 +167,8 @@ in
 
   dockerTools = callPackage ../build-support/docker { };
 
+  nix-prefetch-docker = callPackage ../build-support/docker/nix-prefetch-docker.nix { };
+
   docker-compose = python3Packages.callPackage ../applications/virtualization/docker-compose {};
 
   docker-ls = callPackage ../tools/misc/docker-ls { };
@@ -4044,6 +4046,8 @@ in
 
   latex2html = callPackage ../tools/misc/latex2html { };
 
+  latexrun = callPackage ../tools/typesetting/tex/latexrun { };
+
   ldapvi = callPackage ../tools/misc/ldapvi { };
 
   ldns = callPackage ../development/libraries/ldns {
@@ -5118,6 +5122,8 @@ in
 
   prototypejs = callPackage ../development/libraries/prototypejs { };
 
+  proxmark3 = callPackage ../tools/security/proxmark3 { };
+
   proxychains = callPackage ../tools/networking/proxychains { };
 
   proxytunnel = callPackage ../tools/misc/proxytunnel { };
@@ -6867,15 +6873,7 @@ in
 
   cpp-gsl = callPackage ../development/libraries/cpp-gsl { };
 
-  # Users installing via `nix-env` will likely be using the REPL,
-  # which has a hard dependency on Z3, so make sure it is available.
-  cryptol = haskellPackages.cryptol.overrideDerivation (oldAttrs: {
-    buildInputs = (oldAttrs.buildInputs or []) ++ [ makeWrapper ];
-    installPhase = (oldAttrs.installPhase or "") + ''
-      wrapProgram $out/bin/cryptol \
-        --prefix 'PATH' ':' "${lib.getBin z3}/bin"
-    '';
-  });
+  cryptol = haskell.lib.justStaticExecutables haskellPackages.cryptol;
 
   inherit (callPackages ../development/compilers/crystal {})
     crystal_0_25
@@ -16191,6 +16189,7 @@ in
   maligned = callPackage ../development/tools/maligned { };
 
   inter-ui = callPackage ../data/fonts/inter-ui { };
+  inter = callPackage ../data/fonts/inter { };
 
   siji = callPackage ../data/fonts/siji { };
 
@@ -16805,6 +16804,8 @@ in
 
   cuneiform = callPackage ../tools/graphics/cuneiform {};
 
+  curseradio = callPackage ../applications/audio/curseradio { };
+
   cutecom = libsForQt5.callPackage ../tools/misc/cutecom { };
 
   cutegram =
@@ -21614,6 +21615,7 @@ in
     sound-output-device-chooser = callPackage ../desktops/gnome-3/extensions/sound-output-device-chooser { };
     system-monitor = callPackage ../desktops/gnome-3/extensions/system-monitor { };
     taskwhisperer = callPackage ../desktops/gnome-3/extensions/taskwhisperer { };
+    tilingnome = callPackage ../desktops/gnome-3/extensions/tilingnome { };
     timepp = callPackage ../desktops/gnome-3/extensions/timepp { };
     topicons-plus = callPackage ../desktops/gnome-3/extensions/topicons-plus { };
     window-corner-preview = callPackage ../desktops/gnome-3/extensions/window-corner-preview { };
@@ -21810,6 +21812,8 @@ in
 
   kallisto = callPackage ../applications/science/biology/kallisto { };
 
+  migrate = callPackage ../applications/science/biology/migrate { };
+
   mirtk = callPackage ../development/libraries/science/biology/mirtk { };
 
   muscle = callPackage ../applications/science/biology/muscle { };
diff --git a/pkgs/top-level/dotnet-packages.nix b/pkgs/top-level/dotnet-packages.nix
index bcfef9bdad8..b8aa2cb9bb9 100644
--- a/pkgs/top-level/dotnet-packages.nix
+++ b/pkgs/top-level/dotnet-packages.nix
@@ -108,6 +108,13 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
     outputFiles = [ "*" ];
   };
 
+  FsLexYaccRuntime = fetchNuGet {
+    baseName = "FsLexYacc.Runtime";
+    version = "6.1.0";
+    sha256 = "18vrx4lxsn4hkfishg4abv0d4q21dsph0bm4mdq5z8afaypp5cr7";
+    outputFiles = [ "lib/net40/*" ];
+  };
+
   FsPickler = fetchNuGet {
     baseName = "FsPickler";
     version = "1.2.9";
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 5907b0099dd..68e7fde3a52 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -1059,9 +1059,7 @@ let
       enableX11 = config.unison.enableX11 or true;
     };
 
-    hol_light = callPackage ../applications/science/logic/hol_light {
-      camlp5 = callPackage ../development/tools/ocaml/camlp5 { legacy = true; };
-    };
+    hol_light = callPackage ../applications/science/logic/hol_light { };
 
   })).overrideScope' liftJaneStreet;