summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--maintainers/maintainer-list.nix6
-rw-r--r--nixos/lib/make-iso9660-image.sh1
-rw-r--r--nixos/modules/installer/cd-dvd/installation-cd-base.nix2
-rw-r--r--nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix2
-rw-r--r--nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix2
-rw-r--r--nixos/modules/installer/cd-dvd/installation-cd-minimal.nix2
-rw-r--r--nixos/modules/installer/cd-dvd/iso-image.nix24
-rw-r--r--nixos/modules/installer/tools/nix-fallback-paths.nix8
-rw-r--r--nixos/modules/programs/ssh.nix9
-rw-r--r--pkgs/applications/audio/ncspot/default.nix6
-rw-r--r--pkgs/applications/editors/dit/default.nix6
-rw-r--r--pkgs/applications/editors/vscode/vscode.nix6
-rw-r--r--pkgs/applications/editors/vscode/vscodium.nix6
-rw-r--r--pkgs/applications/graphics/drawio/default.nix4
-rw-r--r--pkgs/applications/misc/ddgr/default.nix28
-rw-r--r--pkgs/applications/misc/img2pdf/default.nix6
-rw-r--r--pkgs/applications/misc/mediainfo/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/rambox/pro.nix6
-rw-r--r--pkgs/applications/science/electronics/fparser/default.nix26
-rw-r--r--pkgs/applications/science/logic/lean/default.nix4
-rw-r--r--pkgs/applications/science/logic/poly/default.nix5
-rw-r--r--pkgs/applications/version-management/gerrit/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/tig/default.nix14
-rw-r--r--pkgs/applications/video/celluloid/default.nix4
-rw-r--r--pkgs/data/fonts/fira-code/default.nix6
-rw-r--r--pkgs/data/fonts/inconsolata-nerdfont/default.nix28
-rw-r--r--pkgs/data/fonts/nerdfonts/default.nix69
-rw-r--r--pkgs/data/fonts/nerdfonts/shas.nix49
-rwxr-xr-xpkgs/data/fonts/nerdfonts/update.sh73
-rw-r--r--pkgs/data/fonts/nerdfonts/version.nix1
-rw-r--r--pkgs/data/fonts/terminus-nerdfont/default.nix28
-rw-r--r--pkgs/development/libraries/libaacs/default.nix6
-rw-r--r--pkgs/development/libraries/libpst/default.nix6
-rw-r--r--pkgs/development/libraries/libvirt/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/ctypes/default.nix6
-rw-r--r--pkgs/development/python-modules/apache-airflow/default.nix1
-rw-r--r--pkgs/development/python-modules/breathe/default.nix6
-rw-r--r--pkgs/development/python-modules/casttube/default.nix6
-rw-r--r--pkgs/development/python-modules/colorlog/default.nix6
-rw-r--r--pkgs/development/python-modules/graspy/default.nix52
-rw-r--r--pkgs/development/python-modules/libvirt/default.nix4
-rw-r--r--pkgs/development/python-modules/magic-wormhole/default.nix8
-rw-r--r--pkgs/development/python-modules/pynanoleaf/default.nix29
-rw-r--r--pkgs/development/python-modules/somajo/default.nix4
-rw-r--r--pkgs/development/python-modules/variants/default.nix9
-rw-r--r--pkgs/development/tools/buildah/default.nix4
-rw-r--r--pkgs/development/tools/doctl/default.nix53
-rw-r--r--pkgs/development/tools/just/default.nix43
-rw-r--r--pkgs/development/tools/ocaml/dune/2.nix4
-rw-r--r--pkgs/development/tools/omniorb/default.nix4
-rw-r--r--pkgs/development/tools/rust/maturin/Cargo.lock.patch13
-rw-r--r--pkgs/development/tools/rust/maturin/default.nix11
-rw-r--r--pkgs/development/tools/skopeo/default.nix22
-rw-r--r--pkgs/games/alephone/default.nix11
-rw-r--r--pkgs/games/alephone/infinity/default.nix4
-rw-r--r--pkgs/games/alephone/marathon/default.nix4
-rw-r--r--pkgs/games/crispy-doom/default.nix4
-rw-r--r--pkgs/games/odamex/default.nix4
-rw-r--r--pkgs/misc/emulators/citra/default.nix10
-rw-r--r--pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch46
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix21
-rw-r--r--pkgs/servers/home-assistant/default.nix19
-rw-r--r--pkgs/servers/home-assistant/esphome.nix13
-rw-r--r--pkgs/servers/home-assistant/frontend.nix4
-rwxr-xr-xpkgs/servers/home-assistant/parse-requirements.py5
-rw-r--r--pkgs/servers/home-assistant/relax-deps.patch13
-rw-r--r--pkgs/servers/plex/raw.nix4
-rw-r--r--pkgs/shells/xonsh/default.nix4
-rw-r--r--pkgs/tools/admin/acme.sh/default.nix3
-rw-r--r--pkgs/tools/misc/bdf2sfd/default.nix4
-rw-r--r--pkgs/tools/misc/brltty/default.nix6
-rw-r--r--pkgs/tools/misc/geekbench/default.nix6
-rw-r--r--pkgs/tools/misc/memtest86-efi/default.nix6
-rw-r--r--pkgs/tools/networking/croc/default.nix6
-rw-r--r--pkgs/tools/package-management/nix/default.nix4
-rw-r--r--pkgs/tools/system/thermald/default.nix6
-rw-r--r--pkgs/top-level/all-packages.nix10
-rw-r--r--pkgs/top-level/perl-packages.nix34
-rw-r--r--pkgs/top-level/python-packages.nix4
80 files changed, 682 insertions, 323 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index de397383568..a8b4cc85282 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -5606,6 +5606,12 @@
     githubId = 101514;
     name = "Orivej Desh";
   };
+  oro = {
+    email = "marco@orovecchia.at";
+    github = "oro";
+    githubId = 357005;
+    name = "Marco Orovecchia";
+  };
   osener = {
     email = "ozan@ozansener.com";
     github = "osener";
diff --git a/nixos/lib/make-iso9660-image.sh b/nixos/lib/make-iso9660-image.sh
index b7b1ab52a63..d4633d2c8d1 100644
--- a/nixos/lib/make-iso9660-image.sh
+++ b/nixos/lib/make-iso9660-image.sh
@@ -107,6 +107,7 @@ xorriso="xorriso
  -publisher nixos
  -graft-points
  -full-iso9660-filenames
+ -joliet
  ${isoBootFlags}
  ${usbBootFlags}
  ${efiBootFlags}
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-base.nix b/nixos/modules/installer/cd-dvd/installation-cd-base.nix
index 24070a78694..9303e8fde13 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-base.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-base.nix
@@ -18,8 +18,6 @@ with lib;
   # ISO naming.
   isoImage.isoName = "${config.isoImage.isoBaseName}-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.iso";
 
-  isoImage.volumeID = substring 0 11 "NIXOS_ISO";
-
   # EFI booting
   isoImage.makeEfiBootable = true;
 
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix
index 62cbdbcfd17..84394a1ecae 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix
@@ -7,6 +7,8 @@ with lib;
 {
   imports = [ ./installation-cd-graphical-base.nix ];
 
+  isoImage.edition = "gnome";
+
   services.xserver.desktopManager.gnome3.enable = true;
 
   # Wayland can be problematic for some hardware like Nvidia graphics cards.
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix
index e00d3f7535b..e76e06654ac 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix
@@ -8,6 +8,8 @@ with lib;
 {
   imports = [ ./installation-cd-graphical-base.nix ];
 
+  isoImage.edition = "plasma5";
+
   services.xserver = {
     desktopManager.plasma5 = {
       enable = true;
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix b/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix
index bcdbffdc20b..97506045e0e 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix
@@ -8,5 +8,7 @@
     [ ./installation-cd-base.nix
     ];
 
+  isoImage.edition = "minimal";
+
   fonts.fontconfig.enable = false;
 }
diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix
index 4558b4dc955..5243a8aa747 100644
--- a/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -417,8 +417,17 @@ in
       '';
     };
 
+    isoImage.edition = mkOption {
+      default = "";
+      description = ''
+        Specifies which edition string to use in the volume ID of the generated
+        ISO image.
+      '';
+    };
+
     isoImage.volumeID = mkOption {
-      default = "NIXOS_BOOT_CD";
+      # nixos-$EDITION-$RELEASE-$ARCH
+      default = "nixos${optionalString (config.isoImage.edition != "") "-${config.isoImage.edition}"}-${config.system.nixos.release}-${pkgs.stdenv.hostPlatform.uname.processor}";
       description = ''
         Specifies the label or volume ID of the generated ISO image.
         Note that the label is used by stage 1 of the boot process to
@@ -515,6 +524,19 @@ in
   };
 
   config = {
+    assertions = [
+      {
+        assertion = !(stringLength config.isoImage.volumeID > 32);
+        # https://wiki.osdev.org/ISO_9660#The_Primary_Volume_Descriptor
+        # Volume Identifier can only be 32 bytes
+        message = let
+          length = stringLength config.isoImage.volumeID;
+          howmany = toString length;
+          toomany = toString (length - 32);
+        in
+        "isoImage.volumeID ${config.isoImage.volumeID} is ${howmany} characters. That is ${toomany} characters longer than the limit of 32.";
+      }
+    ];
 
     boot.loader.grub.version = 2;
 
diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix
index 2068f27f1c9..9038bfbe3bd 100644
--- a/nixos/modules/installer/tools/nix-fallback-paths.nix
+++ b/nixos/modules/installer/tools/nix-fallback-paths.nix
@@ -1,6 +1,6 @@
 {
-  x86_64-linux = "/nix/store/ddmmzn4ggz1f66lwxjy64n89864yj9w9-nix-2.3.3";
-  i686-linux = "/nix/store/5axys7hsggb4282dsbps5k5p0v59yv13-nix-2.3.3";
-  aarch64-linux = "/nix/store/k80nwvi19hxwbz3c9cxgp24f1jjxwmcc-nix-2.3.3";
-  x86_64-darwin = "/nix/store/lrnvapsqmf0ja6zfyx4cpxr7ahdr7f9b-nix-2.3.3";
+  x86_64-linux = "/nix/store/3swr40kk8ll7pi9dd7b4npr25hyn5qhv-nix-2.3.4-debug";
+  i686-linux = "/nix/store/b5cx3nmba9ahx3wk5ybxa67k40pdpdxn-nix-2.3.4";
+  aarch64-linux = "/nix/store/lz9s7vi1kvgqzvrcjwwdszx8an61n266-nix-2.3.4-debug";
+  x86_64-darwin = "/nix/store/aizhr07dljmlbf17wfrj40x3s0b5iv3d-nix-2.3.4";
 }
diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix
index 80198990ed1..44e65ee8a9a 100644
--- a/nixos/modules/programs/ssh.nix
+++ b/nixos/modules/programs/ssh.nix
@@ -61,12 +61,9 @@ in
         '';
       };
 
-      # Allow DSA keys for now. (These were deprecated in OpenSSH 7.0.)
       pubkeyAcceptedKeyTypes = mkOption {
         type = types.listOf types.str;
-        default = [
-          "+ssh-dss"
-        ];
+        default = [];
         example = [ "ssh-ed25519" "ssh-rsa" ];
         description = ''
           Specifies the key types that will be used for public key authentication.
@@ -75,9 +72,7 @@ in
 
       hostKeyAlgorithms = mkOption {
         type = types.listOf types.str;
-        default = [
-          "+ssh-dss"
-        ];
+        default = [];
         example = [ "ssh-ed25519" "ssh-rsa" ];
         description = ''
           Specifies the host key algorithms that the client wants to use in order of preference.
diff --git a/pkgs/applications/audio/ncspot/default.nix b/pkgs/applications/audio/ncspot/default.nix
index 4e7b1235b40..bee1065328a 100644
--- a/pkgs/applications/audio/ncspot/default.nix
+++ b/pkgs/applications/audio/ncspot/default.nix
@@ -14,16 +14,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "ncspot";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "hrkfdn";
     repo = "ncspot";
     rev = "v${version}";
-    sha256 = "10jp2yh8jlvdwh297658q9fi3i62vwsbd9fbwjsir7s1c9bgdy8k";
+    sha256 = "144a7wn5l64fhvj8vgwl7z4bp8lbq0pb0dl38x9y4wkqmdh6wrli";
   };
 
-  cargoSha256 = "0081wc3xw11hivz0nwy4my3y4a53ch857bq989dr0pm9p2pirvj1";
+  cargoSha256 = "19gn0v7j1ly3ywgflfj27pnrwjiiy17m3g1z0kzagxpjy2xi2qxy";
 
   cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
 
diff --git a/pkgs/applications/editors/dit/default.nix b/pkgs/applications/editors/dit/default.nix
index 2f83b0b8d99..f973e67599c 100644
--- a/pkgs/applications/editors/dit/default.nix
+++ b/pkgs/applications/editors/dit/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dit";
-  version = "0.5";
+  version = "0.6";
 
   src = fetchurl {
     url = "https://hisham.hm/dit/releases/${version}/${pname}-${version}.tar.gz";
-    sha256 = "05vhr1gl3bb5fg49v84xhmjaqdjw6djampvylw10ydvbpnpvjvjc";
+    sha256 = "0ryvm54xxkg2gcgz4r8zdxrl6j2h8mgg9nfqmdmdr31qkcj8wjsq";
   };
 
   buildInputs = [ ncurses lua ]
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "A console text editor for Unix that you already know how to use";
-    homepage = https://hisham.hm/dit/;
+    homepage = "https://hisham.hm/dit/";
     license = licenses.gpl2;
     platforms = with platforms; linux;
     maintainers = with maintainers; [ davidak ];
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index 70ba6762b74..765520ea9a4 100644
--- a/pkgs/applications/editors/vscode/vscode.nix
+++ b/pkgs/applications/editors/vscode/vscode.nix
@@ -11,8 +11,8 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "1vaga9ykib8b1rp502wpkq5hhsj6a0f0a4akkd3bs6wc4m74ff4g";
-    x86_64-darwin = "1dql0pnkqrsdhyz00flksb7mx4ryk7rzgwn359sg55bf8yhyrbfn";
+    x86_64-linux = "0q1fk5a4ymndnyxzps8960y1rl657q95i2rydbqyjl37y79wmllx";
+    x86_64-darwin = "02ybgp6v1ray4a867hihp2fvc872ilqla6z52qv90dfjx69g77ib";
   }.${system};
 in
   callPackage ./generic.nix rec {
@@ -21,7 +21,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.43.2";
+    version = "1.44.0";
     pname = "vscode";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix
index 390bca4af65..23a320ccce9 100644
--- a/pkgs/applications/editors/vscode/vscodium.nix
+++ b/pkgs/applications/editors/vscode/vscodium.nix
@@ -11,8 +11,8 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "1w7vry3lvjf847qbjqc4xv6hcyspki366k8wmyfvzyw6c9m7yzwm";
-    x86_64-darwin = "13wg015qsh4qayamd9jppk2abqpnakx2mhf41z3nyb3zfng62pza";
+    x86_64-linux = "1prv4rzr5z905s6jnmkmd97zr5kz8nn4m9bil483bnx4wqr2k10g";
+    x86_64-darwin = "1p0a94i80s7fq6ars01bvr41qxiq35s0r6crfv857ma01g9ia7k3";
   }.${system};
 
   sourceRoot = {
@@ -27,7 +27,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.43.2";
+    version = "1.44.0";
     pname = "vscodium";
 
     executableName = "codium";
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index dcf16277179..aa1ac0f2620 100644
--- a/pkgs/applications/graphics/drawio/default.nix
+++ b/pkgs/applications/graphics/drawio/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "drawio";
-  version = "12.9.3";
+  version = "12.9.9";
 
   src = fetchurl {
     url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
-    sha256 = "1jhw3p5r9dgn7320ca9n6hzyv2x557a8m9mh80vgrccd6i2mgm5i";
+    sha256 = "07lx99fd4vkgdhagshzawrh8ncbv19hvxjpzgd3yjdj0nalvmxin";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/ddgr/default.nix b/pkgs/applications/misc/ddgr/default.nix
index 7d211b26a42..c4639150dd4 100644
--- a/pkgs/applications/misc/ddgr/default.nix
+++ b/pkgs/applications/misc/ddgr/default.nix
@@ -1,40 +1,38 @@
-{stdenv, fetchFromGitHub, python3}:
+{ stdenv, fetchFromGitHub, python3, installShellFiles }:
 
 stdenv.mkDerivation rec {
-  version = "1.7";
+  version = "1.8";
   pname = "ddgr";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = "ddgr";
     rev = "v${version}";
-    sha256 = "0kcl8z9w8iwn3pxay1pfahhw6vs2l1dp60yfv3i19in4ac9va7m0";
+    sha256 = "1cyaindcg2vc3ij0p6b35inr01c6ys04izxsn1h70ixhsz46qg8z";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+
   buildInputs = [ python3 ];
 
   makeFlags = [ "PREFIX=$(out)" ];
 
-  preBuild = ''
-    # Version 1.7 was released as 1.6
-    # https://github.com/jarun/ddgr/pull/95
-    sed -i "s/_VERSION_ = '1.6'/_VERSION_ = '1.7'/" ddgr
+  # Version 1.8 was released as 1.7
+  postPatch = ''
+    substituteInPlace ddgr --replace "_VERSION_ = '1.7'" "_VERSION_ = '${version}'"
   '';
 
   postInstall = ''
-    mkdir -p "$out/share/bash-completion/completions/"
-    cp "auto-completion/bash/ddgr-completion.bash" "$out/share/bash-completion/completions/"
-    mkdir -p "$out/share/fish/vendor_completions.d/"
-    cp "auto-completion/fish/ddgr.fish" "$out/share/fish/vendor_completions.d/"
-    mkdir -p "$out/share/zsh/site-functions/"
-    cp "auto-completion/zsh/_ddgr" "$out/share/zsh/site-functions/"
+    installShellCompletion --bash --name ddgr.bash auto-completion/bash/ddgr-completion.bash
+    installShellCompletion --fish auto-completion/fish/ddgr.fish
+    installShellCompletion --zsh auto-completion/zsh/_ddgr
   '';
 
   meta = with stdenv.lib; {
-    homepage = https://github.com/jarun/ddgr;
+    homepage = "https://github.com/jarun/ddgr";
     description = "Search DuckDuckGo from the terminal";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ceedubs markus1189 ];
-    platforms = platforms.unix;
+    platforms = python3.meta.platforms;
   };
 }
diff --git a/pkgs/applications/misc/img2pdf/default.nix b/pkgs/applications/misc/img2pdf/default.nix
index 902e9268f72..972e3b7e7b6 100644
--- a/pkgs/applications/misc/img2pdf/default.nix
+++ b/pkgs/applications/misc/img2pdf/default.nix
@@ -4,11 +4,11 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "img2pdf";
-  version = "0.3.3";
+  version = "0.3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ksn33j9d9df04n4jx7dli70d700rafbm37gjaz6lwsswrzc2xwx";
+    sha256 = "0jgfk191vvxn2r6bbdknvw5v510mx9g0xrgnmcghaxkv65zjnj0b";
   };
 
   doCheck = false; # needs pdfrw
@@ -19,7 +19,7 @@ buildPythonApplication rec {
 
   meta = with stdenv.lib; {
     description = "Convert images to PDF via direct JPEG inclusion";
-    homepage = https://gitlab.mister-muffin.de/josch/img2pdf;
+    homepage = "https://gitlab.mister-muffin.de/josch/img2pdf";
     license = licenses.lgpl2;
     platforms = platforms.unix;
     maintainers = [ maintainers.veprbl ];
diff --git a/pkgs/applications/misc/mediainfo/default.nix b/pkgs/applications/misc/mediainfo/default.nix
index f084d17e389..1ed1ef4afb5 100644
--- a/pkgs/applications/misc/mediainfo/default.nix
+++ b/pkgs/applications/misc/mediainfo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "19.09";
+  version = "20.03";
   pname = "mediainfo";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
-    sha256 = "1a2ssklg12sjsw09y8my9kf35mizi3zj7w002nspcmw28apb1x82";
+    sha256 = "1f1shnycf0f1fwka9k9s250l228xjkg0k4k73h8bpld8msighgnw";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
       MediaInfo is a convenient unified display of the most relevant technical
       and tag data for video and audio files.
     '';
-    homepage = https://mediaarea.net/;
+    homepage = "https://mediaarea.net/";
     license = licenses.bsd2;
     platforms = platforms.unix;
     maintainers = [ maintainers.devhell ];
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 8e1af9a5dcc..97a03ccbab5 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -90,19 +90,19 @@ let
   fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
 
   # Upstream source
-  version = "9.0.7";
+  version = "9.0.9";
 
   lang = "en-US";
 
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
-      sha256 = "11pgafa2lgj35s6kacy1b7pnzjg3ckqjxg0pf0aywxvc2qr3syv1";
+      sha256 = "0ws4s0jn559j1ih60wqspxvr5wpqww29kzk0xzzbr56wfyahp4fg";
     };
 
     i686-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
-      sha256 = "1mjz41n53gxpaxx7jdxk226f085v23kwr31m20vv4ar4vxfa42d8";
+      sha256 = "0sv73jlv0qwlkxgqkmqg1flsa9lbkxa4yahny5wrfgsbw74xibkl";
     };
   };
 in
diff --git a/pkgs/applications/networking/instant-messengers/rambox/pro.nix b/pkgs/applications/networking/instant-messengers/rambox/pro.nix
index df4675b0449..16c96a86a41 100644
--- a/pkgs/applications/networking/instant-messengers/rambox/pro.nix
+++ b/pkgs/applications/networking/instant-messengers/rambox/pro.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "rambox-pro";
-  version = "1.2.2";
+  version = "1.3.1";
 
   dontBuild = true;
   dontStrip = true;
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/ramboxapp/download/releases/download/v${version}/RamboxPro-${version}-linux-x64.tar.gz";
-    sha256 = "1zzlfk86gzg20qapqz9s8p9vmak8vj1smkwn9yrzs2yisfqh0gpc";
+    sha256 = "1cy4h2yzrpr3gxd16p4323w06i67d82jjlyx737c3ngzw7aahmq1";
   };
 
   installPhase = ''
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Messaging and emailing app that combines common web applications into one";
-    homepage = https://rambox.pro;
+    homepage = "https://rambox.pro";
     license = licenses.unfree;
     maintainers = with maintainers; [ chrisaw ];
     platforms = [ "i686-linux" "x86_64-linux" ];
diff --git a/pkgs/applications/science/electronics/fparser/default.nix b/pkgs/applications/science/electronics/fparser/default.nix
new file mode 100644
index 00000000000..55e40ca2b00
--- /dev/null
+++ b/pkgs/applications/science/electronics/fparser/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "fparser";
+  version = "unstable-2015-09-25";
+
+  src = fetchFromGitHub {
+    owner = "thliebig";
+    repo = "fparser";
+    rev = "a59e1f51e32096bfe2a0a2640d5dffc7ae6ba37b";
+    sha256 = "0wayml1mlyi922gp6am3fsidhzsilziksdn5kbnpcln01h8555ad";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "C++ Library for Evaluating Mathematical Functions";
+    homepage = "https://github.com/thliebig/fparser";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ matthuszagh ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/science/logic/lean/default.nix b/pkgs/applications/science/logic/lean/default.nix
index cfd645a3c73..594f596b5ef 100644
--- a/pkgs/applications/science/logic/lean/default.nix
+++ b/pkgs/applications/science/logic/lean/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lean";
-  version = "3.7.2";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner  = "leanprover-community";
     repo   = "lean";
     rev    = "v${version}";
-    sha256 = "0d9lz0mbxyaaykkvk2p8w2hcif9cx0ksihgh7qhxf417bz6msgc1";
+    sha256 = "0frs2vhxlzdliyydb462c1886dn585zd7yp7hdxzsri2v6gdh89g";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/logic/poly/default.nix b/pkgs/applications/science/logic/poly/default.nix
index d3ca8d56e9a..ee50a2d8504 100644
--- a/pkgs/applications/science/logic/poly/default.nix
+++ b/pkgs/applications/science/logic/poly/default.nix
@@ -7,8 +7,9 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "SRI-CSL";
     repo = "libpoly";
-    rev = "v${version}";
-    sha256 = "19ddzrir20571zqg720ajqpl59lhpc6c18bp763r6rw68d9zbjch";
+    # they've pushed to the release branch, use explicit tag
+    rev = "refs/tags/v${version}";
+    sha256 = "1n3gijksnl2ybznq4lkwm2428f82423sxq18gnb2g1kiwqlzdaa3";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/version-management/gerrit/default.nix b/pkgs/applications/version-management/gerrit/default.nix
index 1aa7afcd98b..4382a638893 100644
--- a/pkgs/applications/version-management/gerrit/default.nix
+++ b/pkgs/applications/version-management/gerrit/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gerrit";
-  version = "3.1.2";
+  version = "3.1.4";
 
   src = fetchurl {
     url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war";
-    sha256 = "01hak4gqaqn40a0qvmg8a89ai3ndnjls5v64m8awig8j1yysz5vl";
+    sha256 = "1pi4252hsx1zcmarzzimds1pw34x3fwi96nh9xvxqvv2cjjlr2c1";
   };
 
   buildCommand = ''
diff --git a/pkgs/applications/version-management/git-and-tools/tig/default.nix b/pkgs/applications/version-management/git-and-tools/tig/default.nix
index 424694d7262..25754ef4de9 100644
--- a/pkgs/applications/version-management/git-and-tools/tig/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/tig/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchFromGitHub, ncurses, asciidoc, xmlto, docbook_xsl, docbook_xml_dtd_45, fetchpatch
+{ stdenv, fetchFromGitHub, ncurses, asciidoc, xmlto, docbook_xsl, docbook_xml_dtd_45
 , readline, makeWrapper, git, libiconv, autoreconfHook, findXMLCatalogs, pkgconfig
 }:
 
 stdenv.mkDerivation rec {
   pname = "tig";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "jonas";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "1lrzgnq8ywq28qd4xyd0y5qfv3j25ra81lcbdqqfywasl8lwz3lf";
+    sha256 = "0wxcbfqsk8p84zizy6lf3gp5j122wrf8c7xlipki6nhcfhksn33b";
   };
 
   nativeBuildInputs = [ makeWrapper autoreconfHook asciidoc xmlto docbook_xsl docbook_xml_dtd_45 findXMLCatalogs pkgconfig ];
@@ -25,14 +25,6 @@ stdenv.mkDerivation rec {
       rm -f contrib/config.make-*
   '';
 
-  patches = [
-    # Fix memory leak. Remove with the next release
-    (fetchpatch {
-      url = "https://github.com/jonas/tig/commit/6202c6032f17438a2facb23f02e330b9d0566d9d.patch";
-      sha256 = "15zn8hw9y7bqa1np4mj0qnm2z86nif7qwh7wc4vgy2rwxdil85bd";
-    })
-  ];
-
   enableParallelBuilding = true;
 
   installPhase = ''
diff --git a/pkgs/applications/video/celluloid/default.nix b/pkgs/applications/video/celluloid/default.nix
index 22fac11b018..208cbb7f4e6 100644
--- a/pkgs/applications/video/celluloid/default.nix
+++ b/pkgs/applications/video/celluloid/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "celluloid";
-  version = "0.18";
+  version = "0.19";
 
   src = fetchFromGitHub {
     owner = "celluloid-player";
     repo = "celluloid";
     rev = "v${version}";
-    sha256 = "1j8z75y98liirr41rlcn89cshvp1xp71cspcclm6wx455i7q2cg1";
+    sha256 = "1jdmwljckajqb3ys8azd1nyy49nvq9kb2knrrqdcfnvzq0m5lpqr";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/fonts/fira-code/default.nix b/pkgs/data/fonts/fira-code/default.nix
index 46149b0781b..71057639f97 100644
--- a/pkgs/data/fonts/fira-code/default.nix
+++ b/pkgs/data/fonts/fira-code/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchzip }:
 
 let
-  version = "2";
+  version = "3";
 in fetchzip {
   name = "fira-code-${version}";
 
@@ -13,10 +13,10 @@ in fetchzip {
     unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
   '';
 
-  sha256 = "0kg9lrrjr6wrd4r96y0rnslnaw2276558a369qdvalwb3q1gi8d2";
+  sha256 = "19kcqqd6c61v137q88zsvf2ra154n009sbqh6zs7l8f7r5bbipj2";
 
   meta = with stdenv.lib; {
-    homepage = https://github.com/tonsky/FiraCode;
+    homepage = "https://github.com/tonsky/FiraCode";
     description = "Monospace font with programming ligatures";
     longDescription = ''
       Fira Code is a monospace font extending the Fira Mono font with
diff --git a/pkgs/data/fonts/inconsolata-nerdfont/default.nix b/pkgs/data/fonts/inconsolata-nerdfont/default.nix
deleted file mode 100644
index b4356e73d5c..00000000000
--- a/pkgs/data/fonts/inconsolata-nerdfont/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, fetchzip }:
-
-let
-  version = "2.0.0";
-in fetchzip {
-  name = "inconsolata-nerdfont-${version}";
-
-  url = "https://github.com/ryanoasis/nerd-fonts/releases/download/v${version}/Inconsolata.zip";
-
-  postFetch = ''
-    mkdir -p $out/share/fonts/inconsolata-nerdfont
-    unzip -j $downloadedFile -d $out/share/fonts/inconsolata-nerdfont
-  '';
-
-  sha256 = "06i1akjblqd038cn5lvz67lwp6afpv31vqcfdihp66qisgbgm4w9";
-
-  meta = with lib; {
-    description = ''
-      Nerd Fonts is a project that attempts to patch as many developer targeted
-      and/or used fonts as possible. The patch is to specifically add a high
-      number of additional glyphs from popular 'iconic fonts' such as Font
-      Awesome, Devicons, Octicons, and others.
-    '';
-    homepage = https://github.com/ryanoasis/nerd-fonts;
-    license = licenses.mit;
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/data/fonts/nerdfonts/default.nix b/pkgs/data/fonts/nerdfonts/default.nix
index 8ffd0e3e43f..35f43c14df4 100644
--- a/pkgs/data/fonts/nerdfonts/default.nix
+++ b/pkgs/data/fonts/nerdfonts/default.nix
@@ -1,35 +1,68 @@
-{ stdenv, fetchFromGitHub, which, withFont ? "" }:
+{ stdenv
+, fetchurl
+, lib
+, unzip
+# To select only certain fonts, put a list of strings to `fonts`: every key in
+# ./shas.nix is an optional font
+, fonts ? []
+}:
+
+let
+  # both of these files are generated via ./update.sh
+  version = import ./version.nix;
+  fontsShas = import ./shas.nix;
+  knownFonts = builtins.attrNames fontsShas;
+  selectedFonts = if (fonts == []) then
+    knownFonts
+  else
+    let unknown = lib.subtractLists knownFonts fonts; in
+    if (unknown != []) then
+      throw "Unknown font(s): ${lib.concatStringsSep " " unknown}"
+    else
+      fonts
+  ;
+  selectedFontsShas = lib.attrsets.genAttrs selectedFonts (
+    fName:
+    fontsShas."${fName}"
+  );
+  srcs = lib.attrsets.mapAttrsToList (
+    fName:
+    fSha:
+    (fetchurl {
+      url = "https://github.com/ryanoasis/nerd-fonts/releases/download/v${version}/${fName}.zip";
+      sha256 = fSha;
+    })
+  ) selectedFontsShas;
+in
 
 stdenv.mkDerivation rec {
-  version = "2.1.0";
+  inherit version;
+  inherit srcs;
   pname = "nerdfonts";
-  src = fetchFromGitHub {
-    owner = "ryanoasis";
-    repo = "nerd-fonts";
-    rev = version;
-    sha256 = "1la79y16k9rwcl2zsxk73c0kgdms2ma43kpjfqnq5jlbfdj0niwg";
-  };
-  dontPatchShebangs = true;
-  buildInputs = [ which ];
-  patchPhase = ''
-    patchShebangs install.sh
-    sed -i -e 's|font_dir="\$HOME/.local/share/fonts|font_dir="$out/share/fonts/truetype|g' install.sh
+  nativeBuildInputs = [
+    unzip
+  ];
+  sourceRoot = ".";
+  buildPhase = ''
+    echo "selected fonts are ${toString selectedFonts}"
+    ls *.otf *.ttf
   '';
   installPhase = ''
-    mkdir -p $out/share/fonts/truetype
-    ./install.sh ${withFont}
+    find -name \*.otf -exec mkdir -p $out/share/fonts/opentype/NerdFonts \; -exec mv {} $out/share/fonts/opentype/NerdFonts \;
+    find -name \*.ttf -exec mkdir -p $out/share/fonts/truetype/NerdFonts \; -exec mv {} $out/share/fonts/truetype/NerdFonts \;
   '';
 
   meta = with stdenv.lib; {
-    description = ''
+    description = "Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts";
+    longDescription = ''
       Nerd Fonts is a project that attempts to patch as many developer targeted
       and/or used fonts as possible. The patch is to specifically add a high
       number of additional glyphs from popular 'iconic fonts' such as Font
       Awesome, Devicons, Octicons, and others.
     '';
-    homepage = https://github.com/ryanoasis/nerd-fonts;
+    homepage = "https://nerdfonts.com/";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ doronbehar ];
     hydraPlatforms = []; # 'Output limit exceeded' on Hydra
   };
 }
diff --git a/pkgs/data/fonts/nerdfonts/shas.nix b/pkgs/data/fonts/nerdfonts/shas.nix
new file mode 100644
index 00000000000..3436042f5f6
--- /dev/null
+++ b/pkgs/data/fonts/nerdfonts/shas.nix
@@ -0,0 +1,49 @@
+{
+	"3270" = "1k71zsijasn6013c58pgf52xw3h9gkqdjlsa177wlldz8qxb16xk";
+	"Agave" = "0jgm31wvmckb71qc9l0nj3sg4zq2vw67piaxr6h8zkakcl2mysha";
+	"AnonymousPro" = "0s3n8rrr9kfqd8gxjxksp7p8bc3q7qhcrpyq8090dksvmbcks6xm";
+	"Arimo" = "1k7ldfx6dmy9sigzsvi9qwms510nddw634g8xrn0vwnw6d7infk8";
+	"AurulentSansMono" = "0q35948dai8qc7gfvas8sfn5s7b64b2y4f9psz6xslrv7nw8lcaz";
+	"BigBlueTerminal" = "0ymw2m2xjsx77brm79aws26icwcf2a1d7q3p3ipsd25g4cgqcd2v";
+	"BitstreamVeraSansMono" = "1n2298g1fn8jb1fbvw74289n7nnmjddn7zxh88gnl58pwz8ra5dk";
+	"CascadiaCode" = "1q4l5a7b7ab6h1bs5pq734r9pp3fw9b59gdk1g4hyn2w61h0kdcj";
+	"CodeNewRoman" = "1mgxawj3pblaxy0y9w0hzlfgipiskmc5p028m82zh1wyaplmh2pa";
+	"Cousine" = "0jr0gxrsba3dhchp53vd67qq2pgfnvmvcwbv99l1700p539bcvy1";
+	"DaddyTimeMono" = "1n6vwykz084fxgylayizxc210f4ms2ijfws5b2hvl2kqmy2q6jk4";
+	"DejaVuSansMono" = "03qfrkzmhnn8dwgx4qhiigbz4dxs3957hydlr0j8vxl89j8c9g1z";
+	"DroidSansMono" = "187cbcn4a2whrl8dag1ix6j1v3jgv5z2jdfw1w1z9llm1znvpp7z";
+	"FantasqueSansMono" = "147h15k3ni0w6chxkrah2fk4klhdhq8y1d3nbx763h9ia3mnggv6";
+	"FiraCode" = "1rx7zrkq0584k6hrh6dx30xrnz5nq379xyw73pfd4gxaxnh9mpi1";
+	"FiraMono" = "0f2daidakhmbbd5ph6985rghjmr87k7xzmmmf9n851dxvfyndsgl";
+	"Go-Mono" = "1bzh3pgyn87j27kw7x5h02rqzhh21pm6d0zhxd5iqi5qq5mj0nvm";
+	"Gohu" = "1rlkprjg9nz1s69s4ancmxii6l907qachl116gngbj8gjv3g1x21";
+	"Hack" = "052mav170lwxkgzg3hij4zvnmfwyrddn45gn07a33gpzzicjx1bh";
+	"Hasklig" = "0vyb0z0m04pn8477d6a711vjwb3nhvpn5fxfwnz37av9jmz3i9vk";
+	"HeavyData" = "065rhq7z52dp211inw3vszwc5zrd5s0w1kmgnrh68bxc0js0xqyb";
+	"Hermit" = "1ij9pjr517jxk3dlsrzmnqivsfq5i5ai6pd8hznmrkb3360cn7sm";
+	"iA-Writer" = "0clksrxw6xcv5c1pbd8rl2rc3r15iak1qv8v6bn0j2mccjcss64z";
+	"IBMPlexMono" = "0xkfkpnkkrvjfiv624l7lpmfji107y7645w6ah47ijyg47yxkmsg";
+	"Inconsolata" = "14gbwc0k3d1j496w6pv9kry1pglswzd0armsdb0g1mqgzfdf1ci1";
+	"Iosevka" = "1qqd4xh98vxb99rh2a2qv9gjclilhaw84pyqdpbx225qhvw9xlkb";
+	"JetBrainsMono" = "1kc8fyk1aczxkmn8dzv1gy6xfi2jywgahd8np576v2dn8kx16844";
+	"Lekton" = "0mny5j9bns9104wg2wmabdw0sl80c7i3dzp4j5mxh8jybx929d3i";
+	"LiberationMono" = "19bpm893assmmnfvlvhz8df54c9pr2kfv2b6anlr4g64hliy1c1h";
+	"Meslo" = "08zm8nqskhrqkw80wl460zbvsrvs5fp2njlcv867phpqna9hyqzh";
+	"Monofur" = "0f5khqgdxi4g0qm5n48r1sk4pd2wlk987d8yxwks2mcsqa6fraqj";
+	"Monoid" = "0m7i82jfiwqmi9lhv8lmq2n723ihn0isxi5559478qbdy5b104dd";
+	"Mononoki" = "074avnvfl260pcrli4h5bc55yqr4mgd54paf80qcnh101qsz325w";
+	"MPlus" = "03mrfhzfmmqjfl7fa81v1ih3fdr3q2k439w6pjbd2zvl806l92yq";
+	"Noto" = "1jmycnf4fflijs730vbyj258kajkxv0j42655a7hvpapym7z940z";
+	"OpenDyslexic" = "0ma62xg6cy8l4chfhqvm64zzhx3mrzdj6gxwnvx8plqy3j4dn3by";
+	"Overpass" = "1xs2z3ch7dd32zb5l1axzd78hyskimqglcjcrb7n4ic85qm55xxm";
+	"ProFont" = "0ck4rprj0w29pv3qm4n1zg6cdq76m3kaag0ka4q1qqcnhga67zr7";
+	"ProggyClean" = "0sk3gk6zj61nbv94xv6z8y67sr5blg9n079d8srv7bbw9dv96i8g";
+	"RobotoMono" = "1nhbr9zc0cz81pdj95rrb56bwdkmmbqmk429nf60j35pkcqmvk8x";
+	"ShareTechMono" = "1h79myy0my3jyrvqcrgfdsjqrwwm5fdy2nmzp3ynyi769p7z1dwr";
+	"SourceCodePro" = "06cnsdmm84kzjlwwcmhwpj7pyfqinqpmww1c13i21l611fg6hwd7";
+	"SpaceMono" = "1xmmf2gdsa3ycl3pgpr3zr919qh702wjvc5k4hsdivvs2lzfdgmk";
+	"Terminus" = "0g2ybs225fwxmvwfnanc32jc2lfnag3agmliv1vrb5mxyqzm53gj";
+	"Tinos" = "077n4k6yh4qbirfkl02zqn3057kymspr10zcbfkf4ldvifa36pjd";
+	"Ubuntu" = "1lzdrgb8vk5dwicxhvkgbain5phf88g3zgv5ya2ihh052xsl3qih";
+	"VictorMono" = "18z92kwggfqwrd5m09yda55hcb4b159278lps6f9hr8icwki6v9q";
+}
diff --git a/pkgs/data/fonts/nerdfonts/update.sh b/pkgs/data/fonts/nerdfonts/update.sh
new file mode 100755
index 00000000000..e3d0c27933e
--- /dev/null
+++ b/pkgs/data/fonts/nerdfonts/update.sh
@@ -0,0 +1,73 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p rsstail nix-prefetch
+
+# NOTE: Before running this script, please make sure this list is up-to-date -
+# meaning there are no new fonts they provide at https://github.com/ryanoasis/nerd-fonts/releases/
+fonts=(
+	"3270"
+	Agave
+	AnonymousPro
+	Arimo
+	AurulentSansMono
+	BigBlueTerminal
+	BitstreamVeraSansMono
+	CascadiaCode
+	CodeNewRoman
+	Cousine
+	DaddyTimeMono
+	DejaVuSansMono
+	DroidSansMono
+	FantasqueSansMono
+	FiraCode
+	FiraMono
+	Go-Mono
+	Gohu
+	Hack
+	Hasklig
+	HeavyData
+	Hermit
+	iA-Writer
+	IBMPlexMono
+	Inconsolata
+	Iosevka
+	JetBrainsMono
+	Lekton
+	LiberationMono
+	Meslo
+	Monofur
+	Monoid
+	Mononoki
+	MPlus
+	Noto
+	OpenDyslexic
+	Overpass
+	ProFont
+	ProggyClean
+	RobotoMono
+	ShareTechMono
+	SourceCodePro
+	SpaceMono
+	Terminus
+	Tinos
+	Ubuntu
+	VictorMono
+)
+
+releases_url="https://github.com/ryanoasis/nerd-fonts/releases.atom"
+
+version="$(rsstail -1 -u "$releases_url" -H -l -r | sed -e '/^Title: /d' -e 's:.*/::' -e 's/^v//g' | sort -V | tail -1)"
+
+echo Using version "$version"
+
+dirname="$(dirname "$0")"
+echo \""$version"\" > "$dirname/version.nix"
+
+base_url="https://github.com/ryanoasis/nerd-fonts/releases/download/v${version}"
+
+printf '{\n' > "$dirname/shas.nix"
+
+for font in "${fonts[@]}"; do
+	printf '\t"%s" = "%s";\n' "$font" "$(nix-prefetch-url "${base_url}/${font}.zip")" >> "$dirname/shas.nix"
+done
+
+printf '}\n' >> "$dirname/shas.nix"
diff --git a/pkgs/data/fonts/nerdfonts/version.nix b/pkgs/data/fonts/nerdfonts/version.nix
new file mode 100644
index 00000000000..8320adbf025
--- /dev/null
+++ b/pkgs/data/fonts/nerdfonts/version.nix
@@ -0,0 +1 @@
+"2.1.0"
diff --git a/pkgs/data/fonts/terminus-nerdfont/default.nix b/pkgs/data/fonts/terminus-nerdfont/default.nix
deleted file mode 100644
index 3c1730146b3..00000000000
--- a/pkgs/data/fonts/terminus-nerdfont/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, fetchzip }:
-
-let
-  version = "2.0.0";
-in fetchzip {
-  name = "terminus-nerdfont-${version}";
-
-  url = "https://github.com/ryanoasis/nerd-fonts/releases/download/v${version}/Terminus.zip";
-
-  postFetch = ''
-    mkdir -p $out/share/fonts/terminus-nerdfont
-    unzip -j $downloadedFile -d $out/share/fonts/terminus-nerdfont
-  '';
-
-  sha256 = "036i1qwwrb0r8hvcjf3h34w0g7mbsmngvrjic98jgikbz3i2f46c";
-
-  meta = with lib; {
-    description = ''
-      Nerd Fonts is a project that attempts to patch as many developer targeted
-      and/or used fonts as possible. The patch is to specifically add a high
-      number of additional glyphs from popular 'iconic fonts' such as Font
-      Awesome, Devicons, Octicons, and others.
-    '';
-    homepage = https://github.com/ryanoasis/nerd-fonts;
-    license = licenses.mit;
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/libraries/libaacs/default.nix b/pkgs/development/libraries/libaacs/default.nix
index bda7d560fcd..2b3ef8c99c8 100644
--- a/pkgs/development/libraries/libaacs/default.nix
+++ b/pkgs/development/libraries/libaacs/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libaacs";
-  version  = "0.9.0";
+  version  = "0.10.0";
 
   src = fetchurl {
     url = "http://get.videolan.org/libaacs/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "1kms92i0c7i1yl659kqjf19lm8172pnpik5lsxp19xphr74vvq27";
+    sha256 = "1zhjdcph8sqx7ak35s22kc736icwq135jlypggkp6vqyyygb3xlk";
   };
 
   buildInputs = [ libgcrypt libgpgerror ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ yacc flex ];
 
   meta = with stdenv.lib; {
-    homepage = https://www.videolan.org/developers/libaacs.html;
+    homepage = "https://www.videolan.org/developers/libaacs.html";
     description = "Library to access AACS protected Blu-Ray disks";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/development/libraries/libpst/default.nix b/pkgs/development/libraries/libpst/default.nix
index 24b94827122..e69cc04d6f0 100644
--- a/pkgs/development/libraries/libpst/default.nix
+++ b/pkgs/development/libraries/libpst/default.nix
@@ -2,11 +2,11 @@
   pkgconfig, bzip2, xmlto, gettext, imagemagick, doxygen }:
 
 stdenv.mkDerivation rec {
-  name = "libpst-0.6.74";
+  name = "libpst-0.6.75";
 
   src = fetchurl {
     url = "http://www.five-ten-sg.com/libpst/packages/${name}.tar.gz";
-    sha256 = "0dzx8jniz7mczbbp08zfrl46h27hyfrsnjxmka9pi5aawzfdm1zp";
+    sha256 = "11wrf47i3brlxg25wsfz17373q7m5fpjxn2lr41dj252ignqzaac";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with stdenv.lib; {
-    homepage = https://www.five-ten-sg.com/libpst/;
+    homepage = "https://www.five-ten-sg.com/libpst/";
     description = "A library to read PST (MS Outlook Personal Folders) files";
     license = licenses.gpl2;
     maintainers = [maintainers.tohl];
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index 17e6fce33cd..89617b864ac 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -17,19 +17,19 @@ let
   buildFromTarball = stdenv.isDarwin;
 in stdenv.mkDerivation rec {
   pname = "libvirt";
-  version = "6.1.0";
+  version = "6.2.0";
 
   src =
     if buildFromTarball then
       fetchurl {
         url = "http://libvirt.org/sources/${pname}-${version}.tar.xz";
-        sha256 = "1h7bmd7zgl64mwnxx4ji8l0mqmcbfxsx6kp1scyyfq2mwidihz0n";
+        sha256 = "1c8grqf751blsgs15wx2p05wvankdrady6290vwc85v94cgqij5f";
       }
     else
       fetchgit {
         url = git://libvirt.org/libvirt.git;
         rev = "v${version}";
-        sha256 = "18sr3jvpxn45c4vrjzpa4qgnnfxxh95v6l6qk31zka3siv8rrwqx";
+        sha256 = "1wyihi8bhwsck9b7f3b8yhlz145sjdyyj3ykjiszrqnp0y99xxy2";
         fetchSubmodules = true;
       };
 
diff --git a/pkgs/development/ocaml-modules/ctypes/default.nix b/pkgs/development/ocaml-modules/ctypes/default.nix
index bc76cfcd64c..8a16dcec343 100644
--- a/pkgs/development/ocaml-modules/ctypes/default.nix
+++ b/pkgs/development/ocaml-modules/ctypes/default.nix
@@ -6,11 +6,11 @@ else
 
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-ctypes-${version}";
-  version = "0.15.1";
+  version = "0.17.1";
 
   src = fetchzip {
     url = "https://github.com/ocamllabs/ocaml-ctypes/archive/${version}.tar.gz";
-    sha256 = "0adas974bwinn8jidb6chljkpd70s041h2a969dicsj0xsg6wys6";
+    sha256 = "16brmdnz7wi2z25qqhd5s5blyq4app6jbv6g9pa4vyg6h0nzbcys";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = https://github.com/ocamllabs/ocaml-ctypes;
+    homepage = "https://github.com/ocamllabs/ocaml-ctypes";
     description = "Library for binding to C libraries using pure OCaml";
     license = licenses.mit;
     maintainers = [ maintainers.ericbmerritt ];
diff --git a/pkgs/development/python-modules/apache-airflow/default.nix b/pkgs/development/python-modules/apache-airflow/default.nix
index c45a73f24bf..f23d16c2695 100644
--- a/pkgs/development/python-modules/apache-airflow/default.nix
+++ b/pkgs/development/python-modules/apache-airflow/default.nix
@@ -145,6 +145,7 @@ buildPythonPackage rec {
       --replace "dill>=0.2.2, <0.3" "dill" \
       --replace "configparser>=3.5.0, <3.6.0" "configparser" \
       --replace "jinja2>=2.7.3, <=2.10.0" "jinja2" \
+      --replace "colorlog==4.0.2" "colorlog" \
       --replace "funcsigs==1.0.0" "funcsigs" \
       --replace "flask-swagger==0.2.13" "flask-swagger" \
       --replace "python-daemon>=2.1.1, <2.2" "python-daemon" \
diff --git a/pkgs/development/python-modules/breathe/default.nix b/pkgs/development/python-modules/breathe/default.nix
index c088199fda7..842c8289f77 100644
--- a/pkgs/development/python-modules/breathe/default.nix
+++ b/pkgs/development/python-modules/breathe/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchPypi, buildPythonPackage, docutils, six, sphinx, isPy3k, isPy27 }:
 
 buildPythonPackage rec {
-  version = "4.14.1";
+  version = "4.14.2";
   pname = "breathe";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ia9iq3kk0g8cqcsf03di3cnq295gfixriqfpp9wd38zf2wgq0l1";
+    sha256 = "1vj2yylff07hh4l3sh3srhpnrk1q6pxznvwqzgmbplhn8gf5rimb";
   };
 
   propagatedBuildInputs = [ docutils six sphinx ];
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   doCheck = !isPy3k;
 
   meta = {
-    homepage = https://github.com/michaeljones/breathe;
+    homepage = "https://github.com/michaeljones/breathe";
     license = lib.licenses.bsd3;
     description = "Sphinx Doxygen renderer";
     inherit (sphinx.meta) platforms;
diff --git a/pkgs/development/python-modules/casttube/default.nix b/pkgs/development/python-modules/casttube/default.nix
index 5d3b80aeb16..ff8e5614ceb 100644
--- a/pkgs/development/python-modules/casttube/default.nix
+++ b/pkgs/development/python-modules/casttube/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "casttube";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0g7mksfl341vfsxqvw8h15ci2qwd1rczg41n4fb2hw7y9rikqnzj";
+    sha256 = "10pw2sjy648pvp42lbbdmkkx79bqlkq1xcbzp1frraj9g66azljl";
   };
 
   propagatedBuildInputs = [ requests ];
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "Interact with the Youtube Chromecast api";
-    homepage = https://github.com/ur1katz/casttube;
+    homepage = "https://github.com/ur1katz/casttube";
     license = licenses.mit;
     maintainers = with maintainers; [ fpletz ];
   };
diff --git a/pkgs/development/python-modules/colorlog/default.nix b/pkgs/development/python-modules/colorlog/default.nix
index edcd040b066..aa39588f313 100644
--- a/pkgs/development/python-modules/colorlog/default.nix
+++ b/pkgs/development/python-modules/colorlog/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "colorlog";
-  version = "4.0.2";
+  version = "4.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3cf31b25cbc8f86ec01fef582ef3b840950dea414084ed19ab922c8b493f9b42";
+    sha256 = "1lpk8zmfv8vz090h5d0hzb4n39wgasxdd3x3bpn3v1x1n9dfzaih";
   };
 
   checkInputs = [ pytest ];
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "Log formatting with colors";
-    homepage = https://github.com/borntyping/python-colorlog;
+    homepage = "https://github.com/borntyping/python-colorlog";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/graspy/default.nix b/pkgs/development/python-modules/graspy/default.nix
new file mode 100644
index 00000000000..2a7fab12fa2
--- /dev/null
+++ b/pkgs/development/python-modules/graspy/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, isPy27
+, fetchFromGitHub
+, pytest
+, pytestcov
+, matplotlib
+, networkx
+, numpy
+, scikitlearn
+, scipy
+, seaborn
+}:
+
+buildPythonPackage rec {
+  pname = "graspy";
+  version = "0.2";
+
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "neurodata";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ss7d71lwblimg7ri88ir9w59j0ri13wl75091hjf7q0mchqr6yd";
+  };
+
+  propagatedBuildInputs = [
+    matplotlib
+    networkx
+    numpy
+    scikitlearn
+    scipy
+    seaborn
+  ];
+
+  checkInputs = [ pytest pytestcov ];
+
+  checkPhase = ''
+    runHook preCheck
+    # `test_autogmm` takes too long; fixed in next release (graspy/pull/328)
+    pytest tests -k 'not test_autogmm'
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    homepage = "https://graspy.neurodata.io";
+    description = "A package for graph statistical algorithms";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/libvirt/default.nix b/pkgs/development/python-modules/libvirt/default.nix
index 62058ea62c3..a7c620d8d87 100644
--- a/pkgs/development/python-modules/libvirt/default.nix
+++ b/pkgs/development/python-modules/libvirt/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "libvirt";
-  version = "6.1.0";
+  version = "6.2.0";
 
   src = assert version == libvirt.version; fetchgit {
     url = git://libvirt.org/libvirt-python.git;
     rev = "v${version}";
-    sha256 = "0h3w1p5y4kg2hdbhxmg4lphcnmr7979iwi0m750f8vzbfccsrp7k";
+    sha256 = "0a8crk29rmnw1kcgi72crb7syacdk03lkl05yand5cxs0l65jwdl";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/python-modules/magic-wormhole/default.nix b/pkgs/development/python-modules/magic-wormhole/default.nix
index 5db5c28a4cb..9e73001a149 100644
--- a/pkgs/development/python-modules/magic-wormhole/default.nix
+++ b/pkgs/development/python-modules/magic-wormhole/default.nix
@@ -23,18 +23,18 @@
 
 buildPythonPackage rec {
   pname = "magic-wormhole";
-  version = "0.11.2";
+  version = "0.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01fr4bi6kc6fz9n3c4qq892inrc3nf6p2djy65yvm7xkvdxncydf";
+    sha256 = "0q41j99718y7m95zg1vaybnsp31lp6lhyqkbv4yqz5ys6jixh3qv";
   };
 
   buildInputs = [ glibcLocales ];
   propagatedBuildInputs = [ spake2 pynacl six attrs twisted autobahn automat hkdf tqdm click humanize txtorcon ];
   checkInputs = [ mock magic-wormhole-transit-relay magic-wormhole-mailbox-server ];
 
-  postPatch = ''
+  postPatch = stdenv.lib.optionalString stdenv.isLinux ''
     sed -i -e "s|'ifconfig'|'${nettools}/bin/ifconfig'|" src/wormhole/ipaddrs.py
   '';
 
@@ -56,7 +56,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "Securely transfer data between computers";
-    homepage = https://github.com/warner/magic-wormhole;
+    homepage = "https://github.com/warner/magic-wormhole";
     license = licenses.mit;
     # Currently broken on Python 2.7. See
     # https://github.com/NixOS/nixpkgs/issues/71826
diff --git a/pkgs/development/python-modules/pynanoleaf/default.nix b/pkgs/development/python-modules/pynanoleaf/default.nix
new file mode 100644
index 00000000000..40e2783aa57
--- /dev/null
+++ b/pkgs/development/python-modules/pynanoleaf/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchPypi, isPy3k, requests }:
+
+buildPythonPackage rec {
+  pname = "pynanoleaf";
+  version = "0.0.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2ced000e3c37f4e2ce0ea177d924af71c97007de9e4fd0ef37dcd7b4a6d1b622";
+  };
+
+  disabled = !isPy3k;
+
+  propagatedBuildInputs = [ requests ];
+
+  # pynanoleaf does not contain tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pynanoleaf"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/Oro/pynanoleaf";
+    description = "A Python3 wrapper for the Nanoleaf API, capable of controlling both Nanoleaf Aurora and Nanoleaf Canvas";
+    license = licenses.mit;
+    maintainers = with maintainers; [ oro ];
+  };
+}
diff --git a/pkgs/development/python-modules/somajo/default.nix b/pkgs/development/python-modules/somajo/default.nix
index f052da2bf7b..306737c4002 100644
--- a/pkgs/development/python-modules/somajo/default.nix
+++ b/pkgs/development/python-modules/somajo/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "SoMaJo";
-  version = "2.0.4";
+  version = "2.0.5";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "tsproisl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "126jaslg8cfap2is3sy3v13xpl9drb80yc5lfsm1nw5s2xcxklqw";
+    sha256 = "01zvmqilnndh2b257z7bhcc7av5vhjm1g8gmdiiw15gcd2xfmqjs";
   };
 
   propagatedBuildInputs = [ regex ];
diff --git a/pkgs/development/python-modules/variants/default.nix b/pkgs/development/python-modules/variants/default.nix
index af2224e3536..11c50646700 100644
--- a/pkgs/development/python-modules/variants/default.nix
+++ b/pkgs/development/python-modules/variants/default.nix
@@ -1,10 +1,13 @@
 { buildPythonPackage
+, isPy27
 , fetchPypi
 , pytestrunner
 , setuptools_scm
+, singledispatch
 , pytest
 , lib
 }:
+
 buildPythonPackage rec {
   pname = "variants";
   version = "0.2.0";
@@ -21,12 +24,12 @@ buildPythonPackage rec {
 
   checkInputs = [
     pytest
-  ];
-  
+  ] ++ lib.optionals isPy27 [ singledispatch ];
+
   meta = with lib; {
     description = "Library providing syntactic sugar for creating variant forms of a canonical function";
     homepage = "https://github.com/python-variants/variants";
     license = licenses.asl20;
     maintainers = with maintainers; [ rakesh4g ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/buildah/default.nix b/pkgs/development/tools/buildah/default.nix
index 939f513fa78..7fbb21ffb12 100644
--- a/pkgs/development/tools/buildah/default.nix
+++ b/pkgs/development/tools/buildah/default.nix
@@ -4,13 +4,13 @@
 
 buildGoPackage rec {
   pname = "buildah";
-  version = "1.14.7";
+  version = "1.14.8";
 
   src = fetchFromGitHub {
     owner  = "containers";
     repo   = "buildah";
     rev    = "v${version}";
-    sha256 = "1nlmika4lw9qn10hh6scxypjfblm3a8gda6a0r8lnbd594as282l";
+    sha256 = "187cvb3i5cwm7cwxmzpl2ca7900yb6v6b6cybyz5mnd5ccy5ff1q";
   };
 
   outputs = [ "bin" "man" "out" ];
diff --git a/pkgs/development/tools/doctl/default.nix b/pkgs/development/tools/doctl/default.nix
index 2aead3940ad..f84167afca8 100644
--- a/pkgs/development/tools/doctl/default.nix
+++ b/pkgs/development/tools/doctl/default.nix
@@ -1,34 +1,43 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
 
 buildGoPackage rec {
   pname = "doctl";
-  version = "${major}.${minor}.${patch}";
-  major = "1";
-  minor = "35";
-  patch = "0";
+  version = "1.40.0";
+
   goPackagePath = "github.com/digitalocean/doctl";
 
-  excludedPackages = ''\(doctl-gen-doc\|install-doctl\|release-doctl\)'';
-  buildFlagsArray = let t = goPackagePath; in ''
-     -ldflags=
-        -X ${t}.Major=${major}
-        -X ${t}.Minor=${minor}
-        -X ${t}.Patch=${patch}
-        -X ${t}.Label=release
-   '';
+  subPackages = [ "cmd/doctl" ];
+
+  buildFlagsArray = ''
+    -ldflags=
+    -X ${goPackagePath}.Major=${lib.versions.major version}
+    -X ${goPackagePath}.Minor=${lib.versions.minor version}
+    -X ${goPackagePath}.Patch=${lib.versions.patch version}
+    -X ${goPackagePath}.Label=release
+  '';
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    export HOME=$(mktemp -d) # attempts to write to /homeless-shelter
+    for shell in bash fish zsh; do
+      $bin/bin/doctl completion $shell > doctl.$shell
+      installShellCompletion doctl.$shell
+    done
+  '';
 
   src = fetchFromGitHub {
-    owner  = "digitalocean";
-    repo   = "doctl";
-    rev    = "v${version}";
-    sha256 = "1blg4xd01vvr8smpii60jlk7rg1cg64115azixw9q022f7cnfiyw";
+    owner = "digitalocean";
+    repo = "doctl";
+    rev = "v${version}";
+    sha256 = "1x8rr3707mmbfnjn3ck0953xkkrfq5r8zflbxpkqlfz9k978z835";
   };
 
-  meta = {
+  meta = with lib; {
     description = "A command line tool for DigitalOcean services";
-    homepage = https://github.com/digitalocean/doctl;
-    license = stdenv.lib.licenses.asl20;
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.siddharthist ];
+    homepage = "https://github.com/digitalocean/doctl";
+    license = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = [ maintainers.siddharthist ];
   };
 }
diff --git a/pkgs/development/tools/just/default.nix b/pkgs/development/tools/just/default.nix
index 5641a14e1ab..b0b73d03d10 100644
--- a/pkgs/development/tools/just/default.nix
+++ b/pkgs/development/tools/just/default.nix
@@ -2,16 +2,26 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "just";
-  version = "0.4.5";
+  version = "0.5.10";
 
   src = fetchFromGitHub {
     owner = "casey";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0a4bml9nxvyh110a60l4lc11yr2ds5r8d3iplslccrkq1ka96av9";
+    sha256 = "0s8np28glzn3kmh59dwk86yc9fb2lm9fq2325kzmy7rkb5jsdcl1";
   };
 
-  cargoSha256 = "0wp61zjws9r1aapkapvq2vmad5kylkpw03wa82qhhq30knkpvr7b";
+  cargoSha256 = "05mrzav3aydvwac9jjckdmlxvxnlcncmkfsdb9z7zvxia4k89w1l";
+
+  postInstall = ''
+    # generate completion scripts for just
+
+    mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
+
+    $out/bin/just --completions bash > "$out/share/bash-completion/completions/just"
+    $out/bin/just --completions fish > "$out/share/fish/vendor_completions.d/just.fish"
+    $out/bin/just --completions zsh  > "$out/share/zsh/site-functions/_just"
+  '';
 
   checkInputs = [ coreutils bash dash ];
 
@@ -20,20 +30,25 @@ rustPlatform.buildRustPackage rec {
     export USER=just-user
     export USERNAME=just-user
 
-    sed -i tests/integration.rs \
-        -e "s@/bin/echo@${coreutils}/bin/echo@g" \
-        -e "s@#!/usr/bin/env sh@#!${bash}/bin/sh@g" \
-        -e "s@#!/usr/bin/env cat@#!${coreutils}/bin/cat@g"
-
-    sed -i tests/interrupts.rs \
-        -e "s@/bin/echo@${coreutils}/bin/echo@g" \
-        -e "s@#!/usr/bin/env sh@#!${bash}/bin/sh@g" \
-        -e "s@#!/usr/bin/env cat@#!${coreutils}/bin/cat@g"
-
     sed -i src/justfile.rs \
+        -i tests/*.rs \
         -e "s@/bin/echo@${coreutils}/bin/echo@g" \
         -e "s@#!/usr/bin/env sh@#!${bash}/bin/sh@g" \
-        -e "s@#!/usr/bin/env cat@#!${coreutils}/bin/cat@g"
+        -e "s@#!/usr/bin/env cat@#!${coreutils}/bin/cat@g" \
+        -e "s@#!/usr/bin/env bash@#!${bash}/bin/sh@g"
+  '';
+
+  # Skip "edit" when running "cargo test",
+  # since this test case needs "cat".
+  checkPhase = ''
+    runHook preCheck
+    echo "Running cargo test --
+        --skip edit
+        ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}"
+    cargo test -- \
+        --skip edit \
+        ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"}
+    runHook postCheck
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/ocaml/dune/2.nix b/pkgs/development/tools/ocaml/dune/2.nix
index 47e71c41568..510dd183f00 100644
--- a/pkgs/development/tools/ocaml/dune/2.nix
+++ b/pkgs/development/tools/ocaml/dune/2.nix
@@ -6,11 +6,11 @@ else
 
 stdenv.mkDerivation rec {
   pname = "dune";
-  version = "2.4.0";
+  version = "2.5.0";
 
   src = fetchurl {
     url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz";
-    sha256 = "096wp6aawgh1ffhbnjfxgakwqd02kfkz2i6m6cc040w1g554iw98";
+    sha256 = "1nnpg0fvmp4vf5mk203xk83pkkm953pgip3yhs1x2g8pkcdndhcw";
   };
 
   buildInputs = [ ocaml findlib ];
diff --git a/pkgs/development/tools/omniorb/default.nix b/pkgs/development/tools/omniorb/default.nix
index af295eb242f..350407098a4 100644
--- a/pkgs/development/tools/omniorb/default.nix
+++ b/pkgs/development/tools/omniorb/default.nix
@@ -3,11 +3,11 @@ stdenv.mkDerivation rec {
 
   pname = "omniorb";
 
-  version = "4.2.3";
+  version = "4.2.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/omniorb/omniORB/omniORB-${version}/omniORB-${version}.tar.bz2";
-    sha256 = "1jlb0wps6311dmhnphn64gv46z0bl8grch4fd9dcx5dlib02lh96";
+    sha256 = "0vvsvi5nx4k7kk4qh1pkf3f5fpz7wv4rsdna4hayihbnvz81rh18";
   };
 
   buildInputs = [ python2 ];
diff --git a/pkgs/development/tools/rust/maturin/Cargo.lock.patch b/pkgs/development/tools/rust/maturin/Cargo.lock.patch
new file mode 100644
index 00000000000..9f7d46d4901
--- /dev/null
+++ b/pkgs/development/tools/rust/maturin/Cargo.lock.patch
@@ -0,0 +1,13 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 09ecb81..c37c646 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -733,7 +733,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ 
+ [[package]]
+ name = "maturin"
+-version = "0.8.0-beta.1"
++version = "0.8.0"
+ dependencies = [
+  "base64 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+  "bytesize 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/pkgs/development/tools/rust/maturin/default.nix b/pkgs/development/tools/rust/maturin/default.nix
index 70c424ee008..30c74447109 100644
--- a/pkgs/development/tools/rust/maturin/default.nix
+++ b/pkgs/development/tools/rust/maturin/default.nix
@@ -5,16 +5,21 @@ let
   inherit (darwin.apple_sdk.frameworks) Security;
 in rustPlatform.buildRustPackage rec {
   name = "maturin-${version}";
-  version = "0.7.9";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "PyO3";
     repo = "maturin";
     rev = "v${version}";
-    sha256 = "1l8i1mz97zsc8kayvryv6xznwpby9k9jxy7lsx45acs5yksqchrv";
+    sha256 = "1fjai0c0j8zzaj4c186dkbvx6cpj0vi3sc1qbjbgn2cm8azsd6m6";
   };
 
-  cargoSha256 = "0ly0f64acn1hxnj7vg1m860xpl06rklwqh545c386nnxaj839b0r";
+  # The maturin 0.8.0 lockfile has an incorrect version for maturin
+  # itself. The upstream lockfiles are normally correct, so this
+  # should be removed post-0.8.0.
+  cargoPatches = [ ./Cargo.lock.patch ];
+
+  cargoSha256 = "01sh523fi46k5xwdslhnmjz128jkdw47gp9bd8gim3ay13zkcn1i";
 
   nativeBuildInputs = [ pkgconfig ];
 
diff --git a/pkgs/development/tools/skopeo/default.nix b/pkgs/development/tools/skopeo/default.nix
index 4b55649b612..4425640828c 100644
--- a/pkgs/development/tools/skopeo/default.nix
+++ b/pkgs/development/tools/skopeo/default.nix
@@ -1,17 +1,27 @@
-{ stdenv, lib, buildGoPackage, fetchFromGitHub, runCommand
-, gpgme, libgpgerror, lvm2, btrfs-progs, pkgconfig, libselinux
-, go-md2man }:
+{ stdenv
+, lib
+, buildGoPackage
+, fetchFromGitHub
+, runCommand
+, gpgme
+, libgpgerror
+, lvm2
+, btrfs-progs
+, pkg-config
+, libselinux
+, go-md2man
+}:
 
 with stdenv.lib;
 
 let
-  version = "0.1.41";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "containers";
     repo = "skopeo";
-    sha256 = "0aqw17irj2wn4a8g9hzfm5z5azqq33z6r1dbg1gyn2c8qxy1vfxs";
+    sha256 = "09zqzrw6f1s6kaknnj3hra3xz4nq6y86vmw5vk8p4f6g7cwakg1x";
   };
 
   defaultPolicyFile = runCommand "skopeo-default-policy.json" {} "cp ${src}/default-policy.json $out";
@@ -28,7 +38,7 @@ buildGoPackage {
 
   excludedPackages = "integration";
 
-  nativeBuildInputs = [ pkgconfig (lib.getBin go-md2man) ];
+  nativeBuildInputs = [ pkg-config (lib.getBin go-md2man) ];
   buildInputs = [ gpgme ] ++ lib.optionals stdenv.isLinux [ libgpgerror lvm2 btrfs-progs libselinux ];
 
   buildFlagsArray = ''
diff --git a/pkgs/games/alephone/default.nix b/pkgs/games/alephone/default.nix
index 1936c93ab84..879571df7a1 100644
--- a/pkgs/games/alephone/default.nix
+++ b/pkgs/games/alephone/default.nix
@@ -90,10 +90,9 @@ in self // {
           --add-flags $out/data/$pname
       '';
 
-      meta = with stdenv.lib;
-        {
-          maintainers = with maintainers; [ ehmry ];
-          inherit (alephone.meta) platforms;
-        } // meta;
-    } // extraArgs);
+      meta = alephone.meta // {
+        license = stdenv.lib.licenses.free;
+        hydraPlatforms = [ ];
+      } // meta;
+    });
 }
diff --git a/pkgs/games/alephone/infinity/default.nix b/pkgs/games/alephone/infinity/default.nix
index f4cea6c7343..fc3500d0eb9 100644
--- a/pkgs/games/alephone/infinity/default.nix
+++ b/pkgs/games/alephone/infinity/default.nix
@@ -3,13 +3,13 @@
 alephone.makeWrapper rec {
   pname = "marathon-infinity";
   desktopName = "Marathon-Infinity";
-  version = "20150620";
+  version = "20190331";
   icon = alephone.icons + "/marathon-infinity.png";
 
   zip = fetchurl {
     url =
       "https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${version}/MarathonInfinity-${version}-Data.zip";
-    sha256 = "0sgfahppanp9c0p115dg0makrdzghzmbz3iggl6x28fh62j03q64";
+    sha256 = "03vn91arnsm71dakbfzrdfwpwh5vkwildl7i16xqi1apinmvvh86";
   };
 
   meta = {
diff --git a/pkgs/games/alephone/marathon/default.nix b/pkgs/games/alephone/marathon/default.nix
index 84831b6a269..1d0787067af 100644
--- a/pkgs/games/alephone/marathon/default.nix
+++ b/pkgs/games/alephone/marathon/default.nix
@@ -3,13 +3,13 @@
 alephone.makeWrapper rec {
   pname = "marathon";
   desktopName = "Marathon";
-  version = "20150620";
+  version = "20190331";
   icon = alephone.icons + "/marathon.png";
 
   zip = fetchurl {
     url =
       "https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${version}/Marathon-${version}-Data.zip";
-    sha256 = "0cagsigsjlsr8jqfaqjdxv8fs0f079cjzs26679aacyykc6b8k3p";
+    sha256 = "1d18a7hn8s50rqcs9i72ak5fq5a76hwk7nylfinrxjb134c9vlpz";
   };
 
   meta = {
diff --git a/pkgs/games/crispy-doom/default.nix b/pkgs/games/crispy-doom/default.nix
index 5a988862a93..c10e79418be 100644
--- a/pkgs/games/crispy-doom/default.nix
+++ b/pkgs/games/crispy-doom/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "crispy-doom";
-  version = "5.7.1";
+  version = "5.7.2";
 
   src = fetchFromGitHub {
     owner = "fabiangreffrath";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "1gqivy4pxasy7phyznixsagylf9f70bk33b0knpfzzlks6cc6zzj";
+    sha256 = "002aqbgsksrgzqridwdlkrjincaxh0dkvwlrbb8d2f3kwk7lj4fq";
   };
 
   postPatch = ''
diff --git a/pkgs/games/odamex/default.nix b/pkgs/games/odamex/default.nix
index 2afb259ea43..af9bccadeb3 100644
--- a/pkgs/games/odamex/default.nix
+++ b/pkgs/games/odamex/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "odamex";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-src-${version}.tar.bz2";
-    sha256 = "1dz0lqdx3vb62mylqddcdq3vxsl2mvv0w2xskvwgpg0p04fcic2c";
+    sha256 = "0d4v1l7kghkz1xz92jxlx50x3iy94z7ix1i3209m5j5545qzxrqq";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/misc/emulators/citra/default.nix b/pkgs/misc/emulators/citra/default.nix
index ca6ad37b5aa..efe4770a7b0 100644
--- a/pkgs/misc/emulators/citra/default.nix
+++ b/pkgs/misc/emulators/citra/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchgit, cmake, SDL2, qtbase, qtmultimedia, boost }:
+{ stdenv, mkDerivation, lib, fetchgit, cmake, SDL2, qtbase, qtmultimedia, boost }:
 
-stdenv.mkDerivation {
+mkDerivation {
   pname = "citra";
-  version = "2019-10-05";
+  version = "2020-03-21";
 
   # Submodules
   src = fetchgit {
     url = "https://github.com/citra-emu/citra";
-    rev = "35690e3ac7a340d941d3bf56080cf5aa6187c5c3";
-    sha256 = "11a4mdjabn3qrh0nn4pjl5fxs9nhf1k27wd486csfx88q2q9jvq8";
+    rev = "8722b970c52f2c0d8e82561477edb62a53ae9dbb";
+    sha256 = "0c1zn1f84h4f6n6p0aqz905yvv5qpdmkj2z58yla6bfgbzabfyrj";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch b/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch
new file mode 100644
index 00000000000..52d2daf80b0
--- /dev/null
+++ b/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch
@@ -0,0 +1,46 @@
+From 80f39643bb4d25f8ffcbd92804844961b303f4d0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
+Date: Thu, 9 Apr 2020 07:20:46 +0100
+Subject: [PATCH] setup.py: relax dependencies
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
+---
+ setup.py | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index f53af0ee1..ff4227487 100755
+--- a/setup.py
++++ b/setup.py
+@@ -32,10 +32,10 @@ PROJECT_URLS = {
+ PACKAGES = find_packages(exclude=["tests", "tests.*"])
+ 
+ REQUIRES = [
+-    "aiohttp==3.6.1",
++    "aiohttp>=3.6.1",
+     "astral==1.10.1",
+     "async_timeout==3.0.1",
+-    "attrs==19.3.0",
++    "attrs>=19.3.0",
+     "bcrypt==3.1.7",
+     "certifi>=2019.11.28",
+     "ciso8601==2.1.3",
+@@ -47,9 +47,9 @@ REQUIRES = [
+     "pip>=8.0.3",
+     "python-slugify==4.0.0",
+     "pytz>=2019.03",
+-    "pyyaml==5.3.1",
+-    "requests==2.23.0",
+-    "ruamel.yaml==0.15.100",
++    "pyyaml>=5.2",
++    "requests>=2.22",
++    "ruamel.yaml>=0.15.100",
+     "voluptuous==0.11.7",
+     "voluptuous-serialize==2.3.0",
+ ]
+-- 
+2.25.1
+
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index d383bc38109..906ba777a6b 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.107.7";
+  version = "0.108.2";
   components = {
     "abode" = ps: with ps; [ ]; # missing inputs: abodepy
     "acer_projector" = ps: with ps; [ pyserial];
@@ -16,7 +16,6 @@
     "aladdin_connect" = ps: with ps; [ ]; # missing inputs: aladdin_connect
     "alarm_control_panel" = ps: with ps; [ ];
     "alarmdecoder" = ps: with ps; [ alarmdecoder];
-    "alarmdotcom" = ps: with ps; [ ]; # missing inputs: pyalarmdotcom
     "alert" = ps: with ps; [ ];
     "alexa" = ps: with ps; [ aiohttp-cors];
     "almond" = ps: with ps; [ aiohttp-cors]; # missing inputs: pyalmond
@@ -84,6 +83,7 @@
     "bluetooth_tracker" = ps: with ps; [ bt_proximity]; # missing inputs: pybluez
     "bme280" = ps: with ps; [ ]; # missing inputs: i2csense smbus-cffi
     "bme680" = ps: with ps; [ ]; # missing inputs: bme680 smbus-cffi
+    "bmp280" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-bmp280
     "bmw_connected_drive" = ps: with ps; [ ]; # missing inputs: bimmer_connected
     "bom" = ps: with ps; [ ]; # missing inputs: bomradarloop
     "braviatv" = ps: with ps; [ bravia-tv getmac];
@@ -156,7 +156,7 @@
     "dialogflow" = ps: with ps; [ aiohttp-cors];
     "digital_ocean" = ps: with ps; [ digital-ocean];
     "digitalloggers" = ps: with ps; [ ]; # missing inputs: dlipower
-    "directv" = ps: with ps; [ ]; # missing inputs: directpy
+    "directv" = ps: with ps; [ ]; # missing inputs: directv
     "discogs" = ps: with ps; [ discogs_client];
     "discord" = ps: with ps; [ discordpy];
     "discovery" = ps: with ps; [ netdisco];
@@ -372,6 +372,7 @@
     "iota" = ps: with ps; [ ]; # missing inputs: pyota
     "iperf3" = ps: with ps; [ ]; # missing inputs: iperf3
     "ipma" = ps: with ps; [ ]; # missing inputs: pyipma
+    "ipp" = ps: with ps; [ ]; # missing inputs: pyipp
     "iqvia" = ps: with ps; [ numpy]; # missing inputs: pyiqvia
     "irish_rail_transport" = ps: with ps; [ ]; # missing inputs: pyirishrail
     "islamic_prayer_times" = ps: with ps; [ ]; # missing inputs: prayer_times_calculator
@@ -431,7 +432,7 @@
     "london_underground" = ps: with ps; [ ]; # missing inputs: london-tube-status
     "loopenergy" = ps: with ps; [ ]; # missing inputs: pyloopenergy
     "lovelace" = ps: with ps; [ ];
-    "luci" = ps: with ps; [ ]; # missing inputs: openwrt-luci-rpc
+    "luci" = ps: with ps; [ openwrt-luci-rpc];
     "luftdaten" = ps: with ps; [ luftdaten];
     "lupusec" = ps: with ps; [ ]; # missing inputs: lupupy
     "lutron" = ps: with ps; [ ]; # missing inputs: pylutron
@@ -470,7 +471,7 @@
     "mikrotik" = ps: with ps; [ ]; # missing inputs: librouteros
     "mill" = ps: with ps; [ ]; # missing inputs: millheater
     "min_max" = ps: with ps; [ ];
-    "minecraft_server" = ps: with ps; [ getmac]; # missing inputs: mcstatus
+    "minecraft_server" = ps: with ps; [ aiodns getmac]; # missing inputs: mcstatus
     "minio" = ps: with ps; [ minio];
     "mitemp_bt" = ps: with ps; [ ]; # missing inputs: mitemp_bt
     "mjpeg" = ps: with ps; [ ];
@@ -481,7 +482,6 @@
     "mold_indicator" = ps: with ps; [ ];
     "monoprice" = ps: with ps; [ ]; # missing inputs: pymonoprice
     "moon" = ps: with ps; [ ];
-    "mopar" = ps: with ps; [ ]; # missing inputs: motorparts
     "mpchc" = ps: with ps; [ ];
     "mpd" = ps: with ps; [ mpd2];
     "mqtt" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
@@ -500,7 +500,7 @@
     "n26" = ps: with ps; [ ]; # missing inputs: n26
     "nad" = ps: with ps; [ ]; # missing inputs: nad_receiver
     "namecheapdns" = ps: with ps; [ defusedxml];
-    "nanoleaf" = ps: with ps; [ ]; # missing inputs: pynanoleaf
+    "nanoleaf" = ps: with ps; [ pynanoleaf];
     "neato" = ps: with ps; [ pybotvac];
     "nederlandse_spoorwegen" = ps: with ps; [ ]; # missing inputs: nsapi
     "nello" = ps: with ps; [ ]; # missing inputs: pynello
@@ -512,7 +512,9 @@
     "netgear_lte" = ps: with ps; [ ]; # missing inputs: eternalegypt
     "netio" = ps: with ps; [ aiohttp-cors]; # missing inputs: pynetio
     "neurio_energy" = ps: with ps; [ ]; # missing inputs: neurio
+    "nexia" = ps: with ps; [ ]; # missing inputs: nexia
     "nextbus" = ps: with ps; [ ]; # missing inputs: py_nextbusnext
+    "nextcloud" = ps: with ps; [ ]; # missing inputs: nextcloudmonitor
     "nfandroidtv" = ps: with ps; [ ];
     "niko_home_control" = ps: with ps; [ ]; # missing inputs: niko-home-control
     "nilu" = ps: with ps; [ ]; # missing inputs: niluclient
@@ -588,6 +590,7 @@
     "plum_lightpad" = ps: with ps; [ ]; # missing inputs: plumlightpad
     "pocketcasts" = ps: with ps; [ ]; # missing inputs: pocketcasts
     "point" = ps: with ps; [ aiohttp-cors]; # missing inputs: pypoint
+    "powerwall" = ps: with ps; [ ]; # missing inputs: tesla-powerwall
     "prezzibenzina" = ps: with ps; [ ]; # missing inputs: prezzibenzina-py
     "proliphix" = ps: with ps; [ ]; # missing inputs: proliphix
     "prometheus" = ps: with ps; [ aiohttp-cors prometheus_client];
@@ -604,6 +607,7 @@
     "pushover" = ps: with ps; [ pushover-complete];
     "pushsafer" = ps: with ps; [ ];
     "pvoutput" = ps: with ps; [ ];
+    "pvpc_hourly_pricing" = ps: with ps; [ ]; # missing inputs: aiopvpc
     "pyload" = ps: with ps; [ ];
     "python_script" = ps: with ps; [ restrictedpython];
     "qbittorrent" = ps: with ps; [ ]; # missing inputs: python-qbittorrent
@@ -660,6 +664,7 @@
     "samsungtv" = ps: with ps; [ ]; # missing inputs: samsungctl[websocket] samsungtvws[websocket]
     "satel_integra" = ps: with ps; [ ]; # missing inputs: satel_integra
     "scene" = ps: with ps; [ ];
+    "schluter" = ps: with ps; [ ]; # missing inputs: py-schluter
     "scrape" = ps: with ps; [ beautifulsoup4];
     "script" = ps: with ps; [ ];
     "scsgate" = ps: with ps; [ ]; # missing inputs: scsgate
@@ -692,7 +697,7 @@
     "sky_hub" = ps: with ps; [ ];
     "skybeacon" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL]
     "skybell" = ps: with ps; [ ]; # missing inputs: skybellpy
-    "slack" = ps: with ps; [ ]; # missing inputs: slacker
+    "slack" = ps: with ps; [ ]; # missing inputs: slackclient
     "sleepiq" = ps: with ps; [ ]; # missing inputs: sleepyq
     "slide" = ps: with ps; [ ]; # missing inputs: goslide-api
     "sma" = ps: with ps; [ ]; # missing inputs: pysma
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index 877c03cb19e..1cc64c2a0d7 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -67,7 +67,7 @@ let
   extraBuildInputs = extraPackages py.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "0.107.7";
+  hassVersion = "0.108.2";
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "homeassistant";
@@ -76,7 +76,7 @@ in with py.pkgs; buildPythonApplication rec {
   disabled = pythonOlder "3.5";
 
   patches = [
-    ./relax-deps.patch
+    ./0001-setup.py-relax-dependencies.patch
   ];
 
   inherit availableComponents;
@@ -86,7 +86,7 @@ in with py.pkgs; buildPythonApplication rec {
     owner = "home-assistant";
     repo = "home-assistant";
     rev = version;
-    sha256 = "1sr7vzsd4hpaix37bb10vbnnqs1v8ll2wb8m713qrvcp3crs6snk";
+    sha256 = "0v4i1ak7pkpycas0mzdmxgc42xgfymwx2b0a2a4h13c4z46pbs2l";
   };
 
   propagatedBuildInputs = [
@@ -99,23 +99,16 @@ in with py.pkgs; buildPythonApplication rec {
   ] ++ componentBuildInputs ++ extraBuildInputs;
 
   checkInputs = [
-    asynctest pytest pytest-aiohttp requests-mock pydispatcher aiohue netdisco
-    hass-nabucasa defusedxml zeroconf
+    asynctest pytest pytest-aiohttp requests-mock hass-nabucasa netdisco pydispatcher
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "aiohttp==3.6.1" "aiohttp" \
-      --replace "attrs==19.2.0" "attrs" \
-      --replace "ruamel.yaml==0.15.100" "ruamel.yaml"
-  '';
-
   checkPhase = ''
     # - components' dependencies are not included, so they cannot be tested
     # - test_merge_id_schema requires pyqwikswitch
+    # - test_loader.py tries to load not-packaged dependencies
     # - unclear why test_merge fails: assert merge_log_err.call_count != 0
     # - test_setup_safe_mode_if_no_frontend: requires dependencies for components we have not packaged
-    py.test --ignore tests/components -k "not test_setup_safe_mode_if_no_frontend and not test_merge_id_schema and not test_merge"
+    py.test --ignore tests/components --ignore tests/test_loader.py -k "not test_setup_safe_mode_if_no_frontend and not test_merge_id_schema and not test_merge"
 
     # Some basic components should be tested however
     py.test \
diff --git a/pkgs/servers/home-assistant/esphome.nix b/pkgs/servers/home-assistant/esphome.nix
index 12b36de4965..2dc023df5a2 100644
--- a/pkgs/servers/home-assistant/esphome.nix
+++ b/pkgs/servers/home-assistant/esphome.nix
@@ -33,11 +33,9 @@ in python.pkgs.buildPythonApplication rec {
     protobuf
   ];
 
+  # remove all version pinning (E.g tornado==5.1.1 -> tornado)
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace "protobuf==3.10.0" "protobuf~=3.10" \
-      --replace "paho-mqtt==1.4.0" "paho-mqtt~=1.4" \
-      --replace "tornado==5.1.1" "tornado~=5.1"
+    sed -i -e "s/==[0-9.]*//" setup.py
   '';
 
   makeWrapperArgs = [
@@ -49,11 +47,14 @@ in python.pkgs.buildPythonApplication rec {
   ];
 
   # Platformio will try to access the network
-  doCheck = false;
+  # Instead, run the executable
+  checkPhase = ''
+    $out/bin/esphome --help > /dev/null
+  '';
 
   meta = with lib; {
     description = "Make creating custom firmwares for ESP32/ESP8266 super easy";
-    homepage = https://esphome.io/;
+    homepage = "https://esphome.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda globin ];
   };
diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix
index 04cef9fa6d7..70d91dc9554 100644
--- a/pkgs/servers/home-assistant/frontend.nix
+++ b/pkgs/servers/home-assistant/frontend.nix
@@ -4,11 +4,11 @@ buildPythonPackage rec {
   # the frontend version corresponding to a specific home-assistant version can be found here
   # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
   pname = "home-assistant-frontend";
-  version = "20200318.0";
+  version = "20200407.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15by4wd3lpq1pd0hpx04v827i3xywsvxziqb1qrbsraxh1rvsbhz";
+    sha256 = "0krwn67bkybjb69daik6dki5hm36xs4nbfwqkh0q7ami1xr1f56d";
   };
 
   # no Python tests implemented
diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py
index a5c6e9d0961..1467c3b528c 100755
--- a/pkgs/servers/home-assistant/parse-requirements.py
+++ b/pkgs/servers/home-assistant/parse-requirements.py
@@ -36,7 +36,9 @@ PKG_PREFERENCES = {
     # Use python3Packages.youtube-dl-light instead of python3Packages.youtube-dl
     "youtube-dl": "youtube-dl-light",
     "tensorflow-bin": "tensorflow",
+    "tensorflow-bin_2": "tensorflow",
     "tensorflowWithoutCuda": "tensorflow",
+    "tensorflow-build_2": "tensorflow",
 }
 
 
@@ -79,7 +81,8 @@ def parse_components(version: str = "master"):
 # Recursively get the requirements of a component and its dependencies
 def get_reqs(components, component):
     requirements = set(components[component]["requirements"])
-    for dependency in components[component]["dependencies"]:
+    deps = components[component].get("dependencies", [])
+    for dependency in deps:
         requirements.update(get_reqs(components, dependency))
     return requirements
 
diff --git a/pkgs/servers/home-assistant/relax-deps.patch b/pkgs/servers/home-assistant/relax-deps.patch
deleted file mode 100644
index 5d9716f0683..00000000000
--- a/pkgs/servers/home-assistant/relax-deps.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/setup.py	2020-03-18 15:34:35.474693786 +0000
-+++ b/setup.py	2020-03-18 15:49:07.185801916 +0000
-@@ -47,8 +47,8 @@
-     "pip>=8.0.3",
-     "python-slugify==4.0.0",
-     "pytz>=2019.03",
--    "pyyaml==5.3",
--    "requests==2.23.0",
-+    "pyyaml>=5.2",
-+    "requests>=2.22.0",
-     "ruamel.yaml==0.15.100",
-     "voluptuous==0.11.7",
-     "voluptuous-serialize==2.3.0",
diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix
index 0b259f9c753..2ee50fee41f 100644
--- a/pkgs/servers/plex/raw.nix
+++ b/pkgs/servers/plex/raw.nix
@@ -8,13 +8,13 @@
 # server, and the FHS userenv and corresponding NixOS module should
 # automatically pick up the changes.
 stdenv.mkDerivation rec {
-  version = "1.19.1.2630-72c16a276";
+  version = "1.19.1.2645-ccb6eb67e";
   pname = "plexmediaserver";
 
   # Fetch the source
   src = fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/redhat/plexmediaserver-${version}.x86_64.rpm";
-    sha256 = "0mjw7qx94p5avvzmbz5rkxdmvddn48s1l84d91lnvwvcdc7smj58";
+    sha256 = "0ivv6apavkgy4zryhwam20jjfgy8sxpccqp0bi5ylh33jpxhm096";
   };
 
   outputs = [ "out" "basedb" ];
diff --git a/pkgs/shells/xonsh/default.nix b/pkgs/shells/xonsh/default.nix
index 2ae4abcb8ea..dc0a45c3e52 100644
--- a/pkgs/shells/xonsh/default.nix
+++ b/pkgs/shells/xonsh/default.nix
@@ -8,14 +8,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "xonsh";
-  version = "0.9.16";
+  version = "0.9.17";
 
   # fetch from github because the pypi package ships incomplete tests
   src = fetchFromGitHub {
     owner  = "xonsh";
     repo   = "xonsh";
     rev    = version;
-    sha256 = "12k6flj9lzmriy7xhhsi2cgdk75p9mhvhdndwbn50mh2ff4wbkyj";
+    sha256 = "0ynfnphbp69am390m5zfzk5rzj1749vs7rzyq310f6mk7xdq6j4v";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/tools/admin/acme.sh/default.nix b/pkgs/tools/admin/acme.sh/default.nix
index 25a92f1117b..fc2c0e963e7 100644
--- a/pkgs/tools/admin/acme.sh/default.nix
+++ b/pkgs/tools/admin/acme.sh/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, makeWrapper, curl, openssl, socat, iproute, unixtools }:
+{ stdenv, lib, fetchFromGitHub, makeWrapper, curl, openssl, socat, iproute, unixtools, dnsutils }:
 stdenv.mkDerivation rec {
   pname = "acme.sh";
   version = "2.8.5";
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
           socat
           openssl
           curl
+          dnsutils
           (if stdenv.isLinux then iproute else unixtools.netstat)
         ]
       }"
diff --git a/pkgs/tools/misc/bdf2sfd/default.nix b/pkgs/tools/misc/bdf2sfd/default.nix
index deb88f70eb5..15154f73a69 100644
--- a/pkgs/tools/misc/bdf2sfd/default.nix
+++ b/pkgs/tools/misc/bdf2sfd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bdf2sfd";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "fcambus";
     repo = pname;
     rev = version;
-    sha256 = "130kaw2485qhb2171w2i9kpl1lhbkfwdz3j19cy63xk63fhyd8kb";
+    sha256 = "02dzvrgwpgbd0wgfnlpiv2qlwvspwl7a0qh8cg363lpnxv8akw9q";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/misc/brltty/default.nix b/pkgs/tools/misc/brltty/default.nix
index fa7457b417e..1320f28ede2 100644
--- a/pkgs/tools/misc/brltty/default.nix
+++ b/pkgs/tools/misc/brltty/default.nix
@@ -6,11 +6,11 @@ assert alsaSupport -> alsaLib != null;
 assert systemdSupport -> systemd != null;
 
 stdenv.mkDerivation rec {
-  name = "brltty-6.0";
+  name = "brltty-6.1";
 
   src = fetchurl {
     url = "http://brltty.com/archive/${name}.tar.gz";
-    sha256 = "0lmp9ab8gp4yv8m3qx4gxns3prrh7kvh8sfcd6vc45h40cgcsjxg";
+    sha256 = "0nk54chr7z2w579vyiak9xk2avhnvrx7x2l5sk8nyw2zplchkx9q";
   };
 
   nativeBuildInputs = [ pkgconfig python3.pkgs.cython ];
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
       It drives the braille display, and provides complete screen review functionality.
       Some speech capability has also been incorporated.
     '';
-    homepage = http://www.brltty.com/;
+    homepage = "http://www.brltty.com/";
     license = stdenv.lib.licenses.gpl2;
     maintainers = [ stdenv.lib.maintainers.bramd ];
     platforms = stdenv.lib.platforms.all;
diff --git a/pkgs/tools/misc/geekbench/default.nix b/pkgs/tools/misc/geekbench/default.nix
index b18ac109382..153a74f9456 100644
--- a/pkgs/tools/misc/geekbench/default.nix
+++ b/pkgs/tools/misc/geekbench/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "geekbench";
-  version = "5.1.0";
+  version = "5.1.1";
 
   src = fetchurl {
     url = "https://cdn.geekbench.com/Geekbench-${version}-Linux.tar.gz";
-    sha256 = "1hqqwk5hbqgrxfqlcbgk6rv3a71k65psxcqa6hw41y9jymnm3dp3";
+    sha256 = "1wjyn3fkc2zgj0xrd73kidrg1d1wqmil278ak36wf87685w4n0b1";
   };
 
   dontConfigure = true;
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Cross-platform benchmark";
-    homepage = https://geekbench.com/;
+    homepage = "https://geekbench.com/";
     license = licenses.unfree;
     maintainers = [ maintainers.michalrus ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/tools/misc/memtest86-efi/default.nix b/pkgs/tools/misc/memtest86-efi/default.nix
index 71409b1c3a8..9f029ee5ded 100644
--- a/pkgs/tools/misc/memtest86-efi/default.nix
+++ b/pkgs/tools/misc/memtest86-efi/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "memtest86-efi";
-  version = "8.2";
+  version = "8.3";
 
   src = fetchzip {
-    # TODO: The latest version of memtest86 is actually 8.2, but the
+    # TODO: We're using the previous version of memtest86 because the
     # company developing memtest86 has stopped providing a versioned download
     # link for the latest version:
     #
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     # binaries that we make sure to version, then we could probably keep up
     # with the latest versions released by the company.
     url = "https://www.memtest86.com/downloads/memtest86-${version}-usb.zip";
-    sha256 = "1x1wjssr4nnbnfan0pi7ni2dfwnm3288kq584hkfqcyza8xdx03i";
+    sha256 = "0aldz7rvnfnzb4h447q10k9c9p5ghwzdyn7f6g5lrxiv5vxf3x96";
     stripRoot = false;
   };
 
diff --git a/pkgs/tools/networking/croc/default.nix b/pkgs/tools/networking/croc/default.nix
index 20c9fe71451..b4a74b62003 100644
--- a/pkgs/tools/networking/croc/default.nix
+++ b/pkgs/tools/networking/croc/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "8.0.5";
+  version = "8.0.7";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qc7na1c0c5i2r19vg54ggvcmnkyz024hqlbzgix2v5n6wlpk0fc";
+    sha256 = "06iwb2wm9wwcwl88rqhwbrky2ab0kbcyzmcv89vw533glknycw04";
   };
 
-  modSha256 = "1y6qfb71vaard2l9fv83alprwpvii0pbzl8b3damd4j9x158hk7b";
+  modSha256 = "1gjigbc9511h3qd12j9ypdnmb5ia4x9f2mk7mxasy9p2xkcfyhpg";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 8260f2e83c3..b907cced6d9 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -175,10 +175,10 @@ in rec {
   nix = nixStable;
 
   nixStable = callPackage common (rec {
-    name = "nix-2.3.3";
+    name = "nix-2.3.4";
     src = fetchurl {
       url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz";
-      sha256 = "332fffb8dfc33eab854c136ef162a88cec15b701def71fa63714d160831ba224";
+      sha256 = "1c626a0de0acc69830b1891ec4d3c96aabe673b2a9fd04cef84f2304d05ad00d";
     };
 
     inherit storeDir stateDir confDir boehmgc;
diff --git a/pkgs/tools/system/thermald/default.nix b/pkgs/tools/system/thermald/default.nix
index 7afa91abf13..fae772a2713 100644
--- a/pkgs/tools/system/thermald/default.nix
+++ b/pkgs/tools/system/thermald/default.nix
@@ -27,7 +27,11 @@ stdenv.mkDerivation rec {
     "--localstatedir=/var"
     "--with-dbus-sys-dir=${placeholder "out"}/share/dbus-1/system.d"
     "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
-    ];
+  ];
+
+  postInstall = ''
+    cp ./data/thermal-conf.xml $out/etc/thermald/
+  '';
 
   meta = with stdenv.lib; {
     description = "Thermal Daemon";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8aac6f96ee9..c277e9ae98d 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -17808,7 +17808,9 @@ in
 
   inconsolata-lgc = callPackage ../data/fonts/inconsolata/lgc.nix {};
 
-  inconsolata-nerdfont = callPackage ../data/fonts/inconsolata-nerdfont {};
+  inconsolata-nerdfont = nerdfonts.override {
+    fonts = [ "Inconsolata" ];
+  };
 
   input-fonts = callPackage ../data/fonts/input-fonts { };
 
@@ -18212,7 +18214,9 @@ in
 
   terminus_font_ttf = callPackage ../data/fonts/terminus-font-ttf { };
 
-  terminus-nerdfont = callPackage ../data/fonts/terminus-nerdfont { };
+  terminus-nerdfont = nerdfonts.override {
+    fonts = [ "Terminus" ];
+  };
 
   termtekst = callPackage ../misc/emulators/termtekst { };
 
@@ -24821,6 +24825,8 @@ in
 
   caneda = libsForQt5.callPackage ../applications/science/electronics/caneda { };
 
+  fparser = callPackage ../applications/science/electronics/fparser { };
+
   geda = callPackage ../applications/science/electronics/geda {
     guile = guile_2_0;
   };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index ffd47619a6b..941ec10d9ee 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -3239,6 +3239,19 @@ let
     };
   };
 
+  ConvertUU = buildPerlPackage rec {
+    pname = "Convert-UU";
+    version = "0.5201";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AN/ANDK/${pname}-${version}.tar.gz";
+      sha256 = "92329ce1c32b5952c48e1223db018c8c58ceafef03bfa0fd4817cd89c355a3bd";
+    };
+    meta = {
+      description = "Perl module for uuencode and uudecode";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   constantboolean = buildPerlModule {
     pname = "constant-boolean";
     version = "0.02";
@@ -11835,6 +11848,21 @@ let
     };
   };
 
+  ModuleCompile = buildPerlPackage rec {
+    pname = "Module-Compile";
+    version = "0.37";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IN/INGY/${pname}-${version}.tar.gz";
+      sha256 = "18e6c4c4d2d5e39c21dde60a64424eed547e1d234ecc73a35278ea08161a8078";
+    };
+    propagatedBuildInputs = [ CaptureTiny DigestSHA1 ];
+    meta = {
+      homepage = "https://github.com/ingydotnet/module-compile-pm";
+      description = "Perl Module Compilation";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   ModuleCPANTSAnalyse = buildPerlPackage {
      pname = "Module-CPANTS-Analyse";
      version = "1.01";
@@ -17407,11 +17435,11 @@ let
 
   SysVirt = buildPerlModule rec {
     pname = "Sys-Virt";
-    version = "6.1.0";
+    version = "6.2.0";
     src = assert version == pkgs.libvirt.version; pkgs.fetchgit {
       url = git://libvirt.org/libvirt-perl.git;
-      rev = "v${version}";
-      sha256 = "00w4fmki7ff7i9bi39w2w15mvv38b5ifwk3zib90ny536r3n63sb";
+      rev = "799b243230163ff4f8dde6293da8a0e31e7c900e";
+      sha256 = "1k38d1ycx3ibgfzcr1iym7cvpwvygh6a2i5548m4qjb47vfi12rz";
     };
     nativeBuildInputs = [ pkgs.pkgconfig ];
     buildInputs = [ pkgs.libvirt CPANChanges TestPod TestPodCoverage XMLXPath ];
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 74c35edad8f..e16cc830fc2 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1214,6 +1214,8 @@ in {
 
   pymsgbox = callPackage ../development/python-modules/pymsgbox { };
 
+  pynanoleaf = callPackage ../development/python-modules/pynanoleaf { };
+
   pynisher = callPackage ../development/python-modules/pynisher { };
 
   pyparser = callPackage ../development/python-modules/pyparser { };
@@ -6490,6 +6492,8 @@ in {
 
   graph_nets = callPackage ../development/python-modules/graph_nets { };
 
+  graspy = callPackage ../development/python-modules/graspy { };
+
   influxgraph = callPackage ../development/python-modules/influxgraph { };
 
   pyspotify = callPackage ../development/python-modules/pyspotify { };