summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.editorconfig11
-rw-r--r--maintainers/maintainer-list.nix12
-rw-r--r--nixos/modules/config/networking.nix1
-rw-r--r--nixos/modules/config/xdg/portal.nix2
-rw-r--r--nixos/modules/services/networking/ntp/chrony.nix1
-rw-r--r--nixos/modules/services/networking/ntp/ntpd.nix1
-rw-r--r--nixos/modules/system/boot/binfmt.nix10
-rw-r--r--nixos/modules/system/boot/timesyncd.nix1
-rw-r--r--nixos/release-combined.nix3
-rw-r--r--nixos/tests/chromium.nix51
-rw-r--r--nixos/tests/cifs-utils.nix12
-rw-r--r--nixos/tests/opentabletdriver.nix13
-rw-r--r--nixos/tests/podman.nix15
-rw-r--r--pkgs/applications/audio/hivelytracker/default.nix89
-rw-r--r--pkgs/applications/audio/i-score/default.nix85
-rw-r--r--pkgs/applications/audio/mopidy/tunein.nix4
-rw-r--r--pkgs/applications/audio/musescore/default.nix4
-rw-r--r--pkgs/applications/audio/mympd/default.nix4
-rw-r--r--pkgs/applications/editors/codeblocks/default.nix14
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-prelude.nix2
-rw-r--r--pkgs/applications/graphics/avocode/default.nix8
-rw-r--r--pkgs/applications/graphics/fig2dev/default.nix22
-rw-r--r--pkgs/applications/graphics/pdfcpu/default.nix6
-rw-r--r--pkgs/applications/misc/deadd-notification-center/default.nix40
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix4
-rw-r--r--pkgs/applications/misc/nnn/default.nix19
-rw-r--r--pkgs/applications/misc/nwg-launchers/default.nix4
-rw-r--r--pkgs/applications/misc/signumone-ks/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/README.md15
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json18
-rw-r--r--pkgs/applications/networking/cluster/kube3d/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/nerdctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/shell/default.nix2
-rw-r--r--pkgs/applications/networking/gmailctl/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/gomuks/default.nix25
-rw-r--r--pkgs/applications/networking/instant-messengers/gomuks/hardcoded_path.patch13
-rw-r--r--pkgs/applications/networking/instant-messengers/nheko/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/rambox/default.nix42
-rw-r--r--pkgs/applications/networking/instant-messengers/rambox/pro.nix53
-rw-r--r--pkgs/applications/networking/instant-messengers/rambox/rambox.nix30
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/mailspring/default.nix5
-rw-r--r--pkgs/applications/networking/ngadmin/default.nix25
-rw-r--r--pkgs/applications/printing/pappl/default.nix4
-rw-r--r--pkgs/applications/science/biology/picard-tools/default.nix4
-rw-r--r--pkgs/applications/snowmachine/default.nix24
-rw-r--r--pkgs/build-support/cc-wrapper/default.nix1
-rw-r--r--pkgs/data/fonts/nerdfonts/shas.nix100
-rwxr-xr-xpkgs/data/fonts/nerdfonts/update.sh2
-rw-r--r--pkgs/development/compilers/go/1.14.nix4
-rw-r--r--pkgs/development/compilers/go/1.15.nix4
-rw-r--r--pkgs/development/libraries/audio/jamomacore/default.nix25
-rw-r--r--pkgs/development/libraries/fast-cpp-csv-parser/default.nix26
-rw-r--r--pkgs/development/libraries/fast-cpp-csv-parser/fast-cpp-csv-parser.pc.in8
-rw-r--r--pkgs/development/libraries/gperftools/default.nix23
-rw-r--r--pkgs/development/libraries/libcint/default.nix4
-rw-r--r--pkgs/development/libraries/libhandy/default.nix4
-rw-r--r--pkgs/development/libraries/libjcat/default.nix4
-rw-r--r--pkgs/development/libraries/libmodule/default.nix4
-rw-r--r--pkgs/development/libraries/nco/default.nix4
-rw-r--r--pkgs/development/libraries/networking-ts-cxx/default.nix28
-rw-r--r--pkgs/development/libraries/networking-ts-cxx/networking_ts.pc.in8
-rw-r--r--pkgs/development/php-packages/psalm/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-synapse-artifacts/default.nix4
-rw-r--r--pkgs/development/python-modules/bellows/default.nix25
-rw-r--r--pkgs/development/python-modules/bidict/default.nix13
-rw-r--r--pkgs/development/python-modules/boto3/default.nix4
-rw-r--r--pkgs/development/python-modules/botocore/default.nix4
-rw-r--r--pkgs/development/python-modules/catboost/default.nix56
-rw-r--r--pkgs/development/python-modules/catboost/nix-support.patch181
-rw-r--r--pkgs/development/python-modules/crccheck/default.nix17
-rw-r--r--pkgs/development/python-modules/git-annex-adapter/default.nix7
-rw-r--r--pkgs/development/python-modules/google-music/default.nix5
-rw-r--r--pkgs/development/python-modules/graphviz/default.nix12
-rw-r--r--pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch56
-rw-r--r--pkgs/development/python-modules/ldaptor/default.nix13
-rw-r--r--pkgs/development/python-modules/mxnet/default.nix4
-rw-r--r--pkgs/development/python-modules/privacyidea/ldap-proxy.nix5
-rw-r--r--pkgs/development/python-modules/prov/default.nix14
-rw-r--r--pkgs/development/python-modules/pydotplus/default.nix28
-rw-r--r--pkgs/development/python-modules/pytest-instafail/default.nix24
-rw-r--r--pkgs/development/python-modules/sortedcollections/default.nix12
-rw-r--r--pkgs/development/python-modules/spyder/default.nix3
-rw-r--r--pkgs/development/r-modules/default.nix1
-rw-r--r--pkgs/games/0ad/default.nix10
-rw-r--r--pkgs/games/0ad/game.nix2
-rw-r--r--pkgs/games/alephone/marathon/default.nix4
-rw-r--r--pkgs/games/shattered-pixel-dungeon/default.nix10
-rw-r--r--pkgs/misc/emulators/mednaffe/default.nix29
-rw-r--r--pkgs/misc/vim-plugins/generated.nix13
-rw-r--r--pkgs/misc/vim-plugins/overrides.nix25
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names1
-rw-r--r--pkgs/misc/vscode-extensions/default.nix4
-rw-r--r--pkgs/os-specific/darwin/apple-sdk/default.nix7
-rw-r--r--pkgs/os-specific/darwin/duti/default.nix20
-rw-r--r--pkgs/os-specific/linux/cifs-utils/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json18
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.10.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.10.nix6
-rw-r--r--pkgs/os-specific/linux/lxcfs/default.nix4
-rw-r--r--pkgs/os-specific/linux/sysklogd/default.nix2
-rw-r--r--pkgs/os-specific/linux/sysklogd/fix-includes-for-musl.patch120
-rw-r--r--pkgs/os-specific/linux/sysklogd/systemd.patch2
-rw-r--r--pkgs/os-specific/windows/cygwin-setup/default.nix2
-rw-r--r--pkgs/os-specific/windows/jom/default.nix2
-rw-r--r--pkgs/os-specific/windows/libgnurx/default.nix2
-rw-r--r--pkgs/os-specific/windows/mingw-w64/default.nix2
-rw-r--r--pkgs/os-specific/windows/wxMSW-2.8/default.nix2
-rw-r--r--pkgs/servers/dns/knot-dns/default.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/sql-exporter.nix6
-rw-r--r--pkgs/servers/web-apps/moodle/default.nix4
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix6
-rw-r--r--pkgs/stdenv/darwin/default.nix6
-rw-r--r--pkgs/tools/X11/opentabletdriver/default.nix17
-rw-r--r--pkgs/tools/X11/opentabletdriver/deps.nix33
-rwxr-xr-xpkgs/tools/X11/opentabletdriver/update.sh8
-rw-r--r--pkgs/tools/admin/awscli/default.nix4
-rw-r--r--pkgs/tools/backup/monolith/default.nix6
-rw-r--r--pkgs/tools/filesystems/mergerfs/default.nix4
-rw-r--r--pkgs/tools/graphics/dpic/default.nix4
-rw-r--r--pkgs/tools/misc/archi/default.nix13
-rw-r--r--pkgs/tools/misc/disfetch/default.nix4
-rw-r--r--pkgs/tools/misc/goreleaser/default.nix6
-rw-r--r--pkgs/tools/misc/haste-client/Gemfile2
-rw-r--r--pkgs/tools/misc/haste-client/Gemfile.lock29
-rw-r--r--pkgs/tools/misc/haste-client/default.nix22
-rw-r--r--pkgs/tools/misc/haste-client/gemset.nix224
-rw-r--r--pkgs/tools/misc/kcollectd/default.nix4
-rw-r--r--pkgs/tools/misc/onefetch/default.nix6
-rw-r--r--pkgs/tools/misc/rauc/default.nix50
-rw-r--r--pkgs/tools/networking/nbd/default.nix4
-rw-r--r--pkgs/tools/networking/openapi-generator-cli/default.nix4
-rw-r--r--pkgs/tools/networking/openapi-generator-cli/unstable.nix6
-rw-r--r--pkgs/tools/package-management/emplace/default.nix6
-rw-r--r--pkgs/tools/package-management/home-manager/default.nix6
-rw-r--r--pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--pkgs/tools/security/metasploit/Gemfile.lock38
-rw-r--r--pkgs/tools/security/metasploit/default.nix4
-rw-r--r--pkgs/tools/security/metasploit/gemset.nix62
-rw-r--r--pkgs/tools/security/pwdsafety/default.nix25
-rw-r--r--pkgs/tools/security/sigurlx/default.nix25
-rw-r--r--pkgs/tools/system/kmon/default.nix6
-rw-r--r--pkgs/tools/text/link-grammar/default.nix33
-rw-r--r--pkgs/top-level/aliases.nix2
-rw-r--r--pkgs/top-level/all-packages.nix24
-rw-r--r--pkgs/top-level/perl-packages.nix1
-rw-r--r--pkgs/top-level/python-packages.nix6
149 files changed, 1505 insertions, 979 deletions
diff --git a/.editorconfig b/.editorconfig
index 980bca1ee04..bc45523451b 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -63,10 +63,7 @@ insert_final_newline = unset
 [eggs.nix]
 trim_trailing_whitespace = unset
 
-[gemset.nix]
-insert_final_newline = unset
-
-[node-{composition,packages,packages-generated}.nix]
+[gemset*.nix]
 insert_final_newline = unset
 
 [nixos/modules/services/networking/ircd-hybrid/*.{conf,in}]
@@ -93,12 +90,6 @@ insert_final_newline = unset
 indent_style = unset
 trim_trailing_whitespace = unset
 
-[pkgs/development/mobile/androidenv/generated/{addons,packages}.nix]
-trim_trailing_whitespace = unset
-
-[pkgs/development/node-packages/composition.nix]
-insert_final_newline = unset
-
 [pkgs/development/{perl-modules,ocaml-modules,tools/ocaml}/**]
 indent_style = unset
 
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 3282eb25072..99280c800c2 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -5128,6 +5128,12 @@
     githubId = 42153076;
     name = "Alexey Nikashkin";
   };
+  lesuisse = {
+    email = "thomas@gerbet.me";
+    github = "LeSuisse";
+    githubId = 737767;
+    name = "Thomas Gerbet";
+  };
   lethalman = {
     email = "lucabru@src.gnome.org";
     github = "lethalman";
@@ -7187,6 +7193,12 @@
     githubId = 13000278;
     name = "Maksim Bronsky";
   };
+  PlushBeaver = {
+    name = "Dmitry Kozlyuk";
+    email = "dmitry.kozliuk+nixpkgs@gmail.com";
+    github = "PlushBeaver";
+    githubId = 8988269;
+  };
   pmahoney = {
     email = "pat@polycrystal.org";
     github = "pmahoney";
diff --git a/nixos/modules/config/networking.nix b/nixos/modules/config/networking.nix
index c09588834cf..ef747774b25 100644
--- a/nixos/modules/config/networking.nix
+++ b/nixos/modules/config/networking.nix
@@ -58,6 +58,7 @@ in
         "2.nixos.pool.ntp.org"
         "3.nixos.pool.ntp.org"
       ];
+      type = types.listOf types.str;
       description = ''
         The set of NTP servers from which to synchronise.
       '';
diff --git a/nixos/modules/config/xdg/portal.nix b/nixos/modules/config/xdg/portal.nix
index 3c7cd729c60..80ec3126ca5 100644
--- a/nixos/modules/config/xdg/portal.nix
+++ b/nixos/modules/config/xdg/portal.nix
@@ -62,7 +62,7 @@ with lib;
       services.dbus.packages  = packages;
       systemd.packages = packages;
 
-      environment.variables = {
+      environment.sessionVariables = {
         GTK_USE_PORTAL = mkIf cfg.gtkUsePortal "1";
         XDG_DESKTOP_PORTAL_DIR = "${joinedPortals}/share/xdg-desktop-portal/portals";
       };
diff --git a/nixos/modules/services/networking/ntp/chrony.nix b/nixos/modules/services/networking/ntp/chrony.nix
index e6fa48daf46..115340924a2 100644
--- a/nixos/modules/services/networking/ntp/chrony.nix
+++ b/nixos/modules/services/networking/ntp/chrony.nix
@@ -41,6 +41,7 @@ in
 
       servers = mkOption {
         default = config.networking.timeServers;
+        type = types.listOf types.str;
         description = ''
           The set of NTP servers from which to synchronise.
         '';
diff --git a/nixos/modules/services/networking/ntp/ntpd.nix b/nixos/modules/services/networking/ntp/ntpd.nix
index 51398851adc..861b0db01a4 100644
--- a/nixos/modules/services/networking/ntp/ntpd.nix
+++ b/nixos/modules/services/networking/ntp/ntpd.nix
@@ -79,6 +79,7 @@ in
 
       servers = mkOption {
         default = config.networking.timeServers;
+        type = types.listOf types.str;
         description = ''
           The set of NTP servers from which to synchronise.
         '';
diff --git a/nixos/modules/system/boot/binfmt.nix b/nixos/modules/system/boot/binfmt.nix
index 9eeae0c3ef4..5bcc95be324 100644
--- a/nixos/modules/system/boot/binfmt.nix
+++ b/nixos/modules/system/boot/binfmt.nix
@@ -20,8 +20,14 @@ let
                  optionalString fixBinary "F";
   in ":${name}:${type}:${offset'}:${magicOrExtension}:${mask'}:${interpreter}:${flags}";
 
-  activationSnippet = name: { interpreter, ... }:
-    "ln -sf ${interpreter} /run/binfmt/${name}";
+  activationSnippet = name: { interpreter, ... }: ''
+    rm -f /run/binfmt/${name}
+    cat > /run/binfmt/${name} << 'EOF'
+    #!/usr/bin/env sh
+    exec -- ${interpreter} "$@"
+    EOF
+    chmod +x /run/binfmt/${name}
+  '';
 
   getEmulator = system: (lib.systems.elaborate { inherit system; }).emulator pkgs;
 
diff --git a/nixos/modules/system/boot/timesyncd.nix b/nixos/modules/system/boot/timesyncd.nix
index 35fb5578b07..692315dbe99 100644
--- a/nixos/modules/system/boot/timesyncd.nix
+++ b/nixos/modules/system/boot/timesyncd.nix
@@ -16,6 +16,7 @@ with lib;
       };
       servers = mkOption {
         default = config.networking.timeServers;
+        type = types.listOf types.str;
         description = ''
           The set of NTP servers from which to synchronise.
         '';
diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix
index ea82adf09ad..5c436592f64 100644
--- a/nixos/release-combined.nix
+++ b/nixos/release-combined.nix
@@ -60,7 +60,8 @@ in rec {
         (onFullSupported "nixos.tests.boot-stage1")
         (onSystems ["x86_64-linux"] "nixos.tests.boot.uefiCdrom")
         (onSystems ["x86_64-linux"] "nixos.tests.boot.uefiUsb")
-        (onSystems ["x86_64-linux"] "nixos.tests.chromium")
+        # TODO (@primeos): Fix the test failure since https://github.com/NixOS/nixpkgs/pull/110010:
+        #(onSystems ["x86_64-linux"] "nixos.tests.chromium")
         (onFullSupported "nixos.tests.containers-imperative")
         (onFullSupported "nixos.tests.containers-ip")
         (onSystems ["x86_64-linux"] "nixos.tests.docker")
diff --git a/nixos/tests/chromium.nix b/nixos/tests/chromium.nix
index 795b93f6f54..4d6b726d9e4 100644
--- a/nixos/tests/chromium.nix
+++ b/nixos/tests/chromium.nix
@@ -1,10 +1,14 @@
 { system ? builtins.currentSystem
 , config ? {}
 , pkgs ? import ../.. { inherit system config; }
-, channelMap ? {
-    stable = pkgs.chromium;
-    beta   = pkgs.chromiumBeta;
-    dev    = pkgs.chromiumDev;
+, channelMap ? { # Maps "channels" to packages
+    stable        = pkgs.chromium;
+    beta          = pkgs.chromiumBeta;
+    dev           = pkgs.chromiumDev;
+    ungoogled     = pkgs.ungoogled-chromium;
+    chrome-stable = pkgs.google-chrome;
+    chrome-beta   = pkgs.google-chrome-beta;
+    chrome-dev    = pkgs.google-chrome-dev;
   }
 }:
 
@@ -14,7 +18,7 @@ with pkgs.lib;
 mapAttrs (channel: chromiumPkg: makeTest rec {
   name = "chromium-${channel}";
   meta = {
-    maintainers = with maintainers; [ aszlig ];
+    maintainers = with maintainers; [ aszlig primeos ];
     # https://github.com/NixOS/hydra/issues/591#issuecomment-435125621
     inherit (chromiumPkg.meta) timeout;
   };
@@ -58,6 +62,19 @@ mapAttrs (channel: chromiumPkg: makeTest rec {
         return "su - ${user} -c " + shlex.quote(cmd)
 
 
+    def get_browser_binary():
+        """Returns the name of the browser binary."""
+        pname = "${getName chromiumPkg.name}"
+        if pname.find("chromium") != -1:
+            return "chromium"  # Same name for all channels and ungoogled-chromium
+        if pname == "google-chrome":
+            return "google-chrome-stable"
+        if pname == "google-chrome-dev":
+            return "google-chrome-unstable"
+        # For google-chrome-beta and as fallback:
+        return pname
+
+
     def create_new_win():
         with machine.nested("Creating a new Chromium window"):
             machine.execute(
@@ -80,7 +97,7 @@ mapAttrs (channel: chromiumPkg: makeTest rec {
 
     def close_win():
         def try_close(_):
-            machine.execute(
+            status, _ = machine.execute(
                 ru(
                     "${xdo "close-window" ''
                       search --onlyvisible --name "new tab"
@@ -89,13 +106,14 @@ mapAttrs (channel: chromiumPkg: makeTest rec {
                     ''}"
                 )
             )
-            machine.execute(
-                ru(
-                    "${xdo "close-window" ''
-                      key Ctrl+w
-                    ''}"
+            if status == 0:
+                machine.execute(
+                    ru(
+                        "${xdo "close-window" ''
+                          key Ctrl+w
+                        ''}"
+                    )
                 )
-            )
             for _ in range(1, 20):
                 status, out = machine.execute(
                     ru(
@@ -152,7 +170,14 @@ mapAttrs (channel: chromiumPkg: makeTest rec {
     machine.wait_for_x()
 
     url = "file://${startupHTML}"
-    machine.succeed(ru(f'ulimit -c unlimited; chromium "{url}" & disown'))
+    machine.succeed(ru(f'ulimit -c unlimited; "{get_browser_binary()}" "{url}" & disown'))
+
+    if get_browser_binary().startswith("google-chrome"):
+        # Need to click away the first window:
+        machine.wait_for_text("Make Google Chrome the default browser")
+        machine.screenshot("google_chrome_default_browser_prompt")
+        machine.send_key("ret")
+
     machine.wait_for_text("startup done")
     machine.wait_until_succeeds(
         ru(
diff --git a/nixos/tests/cifs-utils.nix b/nixos/tests/cifs-utils.nix
new file mode 100644
index 00000000000..98587b10d94
--- /dev/null
+++ b/nixos/tests/cifs-utils.nix
@@ -0,0 +1,12 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "cifs-utils";
+
+  machine = { pkgs, ... }: { environment.systemPackages = [ pkgs.cifs-utils ]; };
+
+  testScript = ''
+    machine.succeed("smbinfo -h")
+    machine.succeed("smb2-quota -h")
+    assert "${pkgs.cifs-utils.version}" in machine.succeed("cifs.upcall -v")
+    assert "${pkgs.cifs-utils.version}" in machine.succeed("mount.cifs -V")
+  '';
+})
diff --git a/nixos/tests/opentabletdriver.nix b/nixos/tests/opentabletdriver.nix
index 832d4c25a54..fe345a7bec7 100644
--- a/nixos/tests/opentabletdriver.nix
+++ b/nixos/tests/opentabletdriver.nix
@@ -1,4 +1,6 @@
-import ./make-test-python.nix ( { pkgs, ... }: {
+import ./make-test-python.nix ( { pkgs, ... }: let
+  testUser = "alice";
+in {
   name = "opentabletdriver";
   meta = {
     maintainers = with pkgs.lib.maintainers; [ thiagokokada ];
@@ -10,7 +12,7 @@ import ./make-test-python.nix ( { pkgs, ... }: {
         ./common/user-account.nix
         ./common/x11.nix
       ];
-      test-support.displayManager.auto.user = "alice";
+      test-support.displayManager.auto.user = testUser;
       hardware.opentabletdriver.enable = true;
     };
 
@@ -18,10 +20,11 @@ import ./make-test-python.nix ( { pkgs, ... }: {
     ''
       machine.start()
       machine.wait_for_x()
-      machine.wait_for_unit("opentabletdriver.service", "alice")
+      machine.wait_for_unit("opentabletdriver.service", "${testUser}")
 
-      machine.succeed("cat /etc/udev/rules.d/30-opentabletdriver.rules")
+      machine.succeed("cat /etc/udev/rules.d/99-opentabletdriver.rules")
       # Will fail if service is not running
-      machine.succeed("otd detect")
+      # Needs to run as the same user that started the service
+      machine.succeed("su - ${testUser} -c 'otd detect'")
     '';
 })
diff --git a/nixos/tests/podman.nix b/nixos/tests/podman.nix
index bccd2de7c9b..4985ff60365 100644
--- a/nixos/tests/podman.nix
+++ b/nixos/tests/podman.nix
@@ -61,6 +61,20 @@ import ./make-test-python.nix (
           podman.succeed("podman stop sleeping")
           podman.succeed("podman rm sleeping")
 
+      # create systemd session for rootless
+      podman.succeed("loginctl enable-linger alice")
+
+      with subtest("Run container rootless with runc"):
+          podman.succeed(su_cmd("tar cv --files-from /dev/null | podman import - scratchimg"))
+          podman.succeed(
+              su_cmd(
+                  "podman run --runtime=runc -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
+              )
+          )
+          podman.succeed(su_cmd("podman ps | grep sleeping"))
+          podman.succeed(su_cmd("podman stop sleeping"))
+          podman.succeed(su_cmd("podman rm sleeping"))
+
       with subtest("Run container rootless with crun"):
           podman.succeed(su_cmd("tar cv --files-from /dev/null | podman import - scratchimg"))
           podman.succeed(
@@ -71,7 +85,6 @@ import ./make-test-python.nix (
           podman.succeed(su_cmd("podman ps | grep sleeping"))
           podman.succeed(su_cmd("podman stop sleeping"))
           podman.succeed(su_cmd("podman rm sleeping"))
-      # As of 2020-11-20, the runc backend doesn't work with cgroupsv2 yet, so we don't run that test.
 
       with subtest("Run container rootless with the default backend"):
           podman.succeed(su_cmd("tar cv --files-from /dev/null | podman import - scratchimg"))
diff --git a/pkgs/applications/audio/hivelytracker/default.nix b/pkgs/applications/audio/hivelytracker/default.nix
new file mode 100644
index 00000000000..4cf20e3c898
--- /dev/null
+++ b/pkgs/applications/audio/hivelytracker/default.nix
@@ -0,0 +1,89 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, makeWrapper
+, SDL
+, SDL_image
+, SDL_ttf
+, gtk2
+, glib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "hivelytracker";
+  version = "unstable-2020-08-19";
+
+  src = fetchFromGitHub {
+    owner = "pete-gordon";
+    repo = "hivelytracker";
+    rev = "c8e3c7a5ee9f4a07cb4a941caecf7e4c4f4d40e0";
+    sha256 = "1nqianlf1msir6wqwapi7ys1vbmf6aik58wa54b6cn5v6kwxh75a";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    makeWrapper
+  ];
+
+  buildInputs = [
+    SDL
+    SDL_image
+    SDL_ttf
+    gtk2
+    glib
+  ];
+
+  makeFlags = [
+    "-C sdl"
+    "-f Makefile.linux"
+    "PREFIX=$(out)"
+  ];
+
+  # TODO: try to exclude gtk and glib from darwin builds
+  NIX_CFLAGS_COMPILE = [
+    "-I${SDL}/include/SDL"
+    "-I${SDL_image}/include/SDL"
+    "-I${SDL_ttf}/include/SDL"
+    "-I${gtk2.dev}/include/gtk-2.0"
+    "-I${glib.dev}/include/glib-2.0"
+  ];
+
+  # Also build the hvl2wav tool
+  postBuild = ''
+    make -C hvl2wav
+  '';
+
+  postInstall = ''
+    # https://github.com/pete-gordon/hivelytracker/issues/43
+    # Ideally we should patch the sources, but the program can't open
+    # files passed as arguments anyway, so this works well enough until the
+    # issue is fixed.
+    wrapProgram $out/bin/hivelytracker \
+      --run "cd $out/share/hivelytracker"
+
+    # Also install the hvl2wav tool
+    install -Dm755 hvl2wav/hvl2wav $out/bin/hvl2wav
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.hivelytracker.co.uk/";
+    downloadPage = "http://www.hivelytracker.co.uk/downl.php";
+    description = "Chip music tracker based upon the AHX format";
+    longDescription = ''
+      Hively Tracker is a tracker program based upon the AHX format created in
+      the mid '90s by Dexter and Pink of Abyss. The format was relatively
+      popular, and many songs were created and used in scene productions and
+      games. AHX was designed to create a very SID-like sound on the Amiga.
+
+      HivelyTracker can import and export modules and instruments in the AHX
+      format, but it also improves on AHX in several ways and therefore has
+      its own instrument and module formats.
+    '';
+    license = licenses.bsd3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fgaz ];
+    broken = stdenv.isDarwin; # TODO: try to use xcbuild
+  };
+}
+
diff --git a/pkgs/applications/audio/i-score/default.nix b/pkgs/applications/audio/i-score/default.nix
deleted file mode 100644
index 2592c38e142..00000000000
--- a/pkgs/applications/audio/i-score/default.nix
+++ /dev/null
@@ -1,85 +0,0 @@
-{
-  alsaLib,
-  boost,
-  cln,
-  cmake,
-  fetchFromGitHub,
-  gcc,
-  ginac,
-  jamomacore,
-  kdnssd,
-  libsndfile,
-  ninja,
-  portaudio,
-  portmidi,
-  qtbase,
-  qtdeclarative,
-  qtimageformats,
-  qtmultimedia,
-  qtquickcontrols2,
-  qtserialport,
-  qtsvg,
-  qttools,
-  qtwebsockets,
-  rtaudio,
-  lib, stdenv
-}:
-
-stdenv.mkDerivation rec {
-  version = "1.0.0-b31";
-  pname = "i-score";
-
-  src = fetchFromGitHub {
-    owner = "OSSIA";
-    repo = "i-score";
-    rev = "v${version}";
-    sha256 = "0g7s6n11w3wflrv5i2047dxx56lryms7xj0mznnlk5bii7g8dxzb";
-    fetchSubmodules = true;
-  };
-
-  buildInputs = [
-    alsaLib
-    boost
-    cln
-    cmake
-    ginac
-    gcc
-    jamomacore
-    kdnssd
-    libsndfile
-    ninja
-    portaudio
-    portmidi
-    qtbase
-    qtdeclarative
-    qtimageformats
-    qtmultimedia
-    qtquickcontrols2
-    qtserialport
-    qtsvg
-    qttools
-    qtwebsockets
-    rtaudio
-  ];
-
-  cmakeFlags = [
-    "-GNinja"
-    "-DISCORE_CONFIGURATION=static-release"
-    "-DISCORE_ENABLE_LTO=OFF"
-    "-DISCORE_BUILD_FOR_PACKAGE_MANAGER=True"
-  ];
-
-  preConfigure = ''
-    export CMAKE_PREFIX_PATH="''${CMAKE_PREFIX_PATH-}:$(echo "${jamomacore}/jamoma/share/cmake/Jamoma")"
-  '';
-
-  postInstall = ''rm $out/bin/i-score.sh'';
-
-  meta = {
-    description = "An interactive sequencer for the intermedia arts";
-    homepage = "http://i-score.org/";
-    license = lib.licenses.cecill20;
-    maintainers = [ lib.maintainers.magnetophon ];
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/pkgs/applications/audio/mopidy/tunein.nix b/pkgs/applications/audio/mopidy/tunein.nix
index 776b4a0afb5..d8a6d6eacca 100644
--- a/pkgs/applications/audio/mopidy/tunein.nix
+++ b/pkgs/applications/audio/mopidy/tunein.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "mopidy-tunein";
-  version = "1.0.2";
+  version = "1.1.0";
 
   src = python3Packages.fetchPypi {
     inherit version;
     pname = "Mopidy-TuneIn";
-    sha256 = "1mvfhka8wi835yk9869yn3b6mdkfwqkylp14vpjkbm42d0kj4lkc";
+    sha256 = "01y1asylscr73yqx071imhrzfzlg07wmqqzkdvpgm6r35marc2li";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/audio/musescore/default.nix b/pkgs/applications/audio/musescore/default.nix
index e150888ac6d..ff39e62e729 100644
--- a/pkgs/applications/audio/musescore/default.nix
+++ b/pkgs/applications/audio/musescore/default.nix
@@ -7,13 +7,13 @@
 
 mkDerivation rec {
   pname = "musescore";
-  version = "3.5.2";
+  version = "3.6";
 
   src = fetchFromGitHub {
     owner = "musescore";
     repo = "MuseScore";
     rev = "v${version}";
-    sha256 = "VA0+npLUUXQJHalD01pmFTTum2Re7FiiyAwU1XvR93s=";
+    sha256 = "sha256-0M+idYnrgXyH6WLp+2jIYRnFzTB93v+dG1XHmSNyPjE=";
   };
 
   patches = [
diff --git a/pkgs/applications/audio/mympd/default.nix b/pkgs/applications/audio/mympd/default.nix
index 4e069e001da..876677c3bea 100644
--- a/pkgs/applications/audio/mympd/default.nix
+++ b/pkgs/applications/audio/mympd/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mympd";
-  version = "6.8.3";
+  version = "6.10.0";
 
   src = fetchFromGitHub {
     owner = "jcorporation";
     repo = "myMPD";
     rev = "v${version}";
-    sha256 = "1a3jrqslxk2a9h5gj6kch108lg9z0i5zwr0j9yd5viyfhr3ka4cq";
+    sha256 = "sha256-QGJti1tKKJlumLgABPmROplF0UVGMWMnyRXLb2cEieQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/editors/codeblocks/default.nix b/pkgs/applications/editors/codeblocks/default.nix
index 5784e7d50a4..8a5f4cf4b3a 100644
--- a/pkgs/applications/editors/codeblocks/default.nix
+++ b/pkgs/applications/editors/codeblocks/default.nix
@@ -1,21 +1,21 @@
-{ lib, stdenv, fetchurl, autoreconfHook, libtool, pkg-config, file, zip, wxGTK, gtk2
-, contribPlugins ? false, hunspell, gamin, boost
+{ lib, stdenv, fetchurl, pkg-config, file, zip, wxGTK30-gtk3, gtk3
+, contribPlugins ? false, hunspell, gamin, boost, wrapGAppsHook
 }:
 
 with lib;
 
 stdenv.mkDerivation rec {
   name = "${pname}-${lib.optionalString contribPlugins "full-"}${version}";
-  version = "17.12";
+  version = "20.03";
   pname = "codeblocks";
 
   src = fetchurl {
-    url = "mirror://sourceforge/codeblocks/Sources/${version}/codeblocks_${version}.tar.xz";
-    sha256 = "1q2pph7md1p10i83rir2l4gvy7ym2iw8w6sk5vl995knf851m20k";
+    url = "mirror://sourceforge/codeblocks/Sources/${version}/codeblocks-${version}.tar.xz";
+    sha256 = "1idaksw1vacmm83krxh5zlb12kad3dkz9ixh70glw1gaibib7vhm";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config libtool file zip ];
-  buildInputs = [ wxGTK gtk2 ]
+  nativeBuildInputs = [ pkg-config file zip wrapGAppsHook ];
+  buildInputs = [ wxGTK30-gtk3 gtk3 ]
     ++ optionals contribPlugins [ hunspell gamin boost ];
   enableParallelBuilding = true;
   patches = [ ./writable-projects.patch ];
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix b/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix
index 5a7b1fa679a..e6f06f4b8e6 100644
--- a/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix
+++ b/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub }:
 stdenv.mkDerivation {
   name = "kak-prelude";
   version = "2020-06-09";
diff --git a/pkgs/applications/graphics/avocode/default.nix b/pkgs/applications/graphics/avocode/default.nix
index 7627d79554a..d185c30ff43 100644
--- a/pkgs/applications/graphics/avocode/default.nix
+++ b/pkgs/applications/graphics/avocode/default.nix
@@ -1,15 +1,15 @@
 { lib, stdenv, makeDesktopItem, fetchurl, unzip
 , gdk-pixbuf, glib, gtk3, atk, at-spi2-atk, pango, cairo, freetype, fontconfig, dbus, nss, nspr, alsaLib, cups, expat, udev, gnome3
-, xorg, mozjpeg, makeWrapper, wrapGAppsHook, libuuid, at-spi2-core
+, xorg, mozjpeg, makeWrapper, wrapGAppsHook, libuuid, at-spi2-core, libdrm, mesa
 }:
 
 stdenv.mkDerivation rec {
   pname = "avocode";
-  version = "4.10.4";
+  version = "4.11.0";
 
   src = fetchurl {
     url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
-    sha256 = "06xf5y2mljk3pd74ap9n90bhhidbzpg5c6wws361ygd4f3x86c46";
+    sha256 = "sha256-50aGechzlVVRQz6WOASHRjT46BKbwyhbt7/0oq2PsOg=";
   };
 
   libPath = lib.makeLibraryPath (with xorg; [
@@ -44,6 +44,8 @@ stdenv.mkDerivation rec {
     libXtst
     libXScrnSaver
     libuuid
+    libdrm
+    mesa
   ]);
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/applications/graphics/fig2dev/default.nix b/pkgs/applications/graphics/fig2dev/default.nix
index c22bbbb4827..667f5afe579 100644
--- a/pkgs/applications/graphics/fig2dev/default.nix
+++ b/pkgs/applications/graphics/fig2dev/default.nix
@@ -1,26 +1,32 @@
-{ lib, stdenv, fetchurl, ghostscript, libpng } :
+{ lib, stdenv, fetchurl, ghostscript, libpng, makeWrapper
+, coreutils, bc, gnugrep, gawk, gnused } :
 
-let
-  version = "3.2.7b";
-
-in stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "fig2dev";
-  inherit version;
+  version = "3.2.8";
 
   src = fetchurl {
     url = "mirror://sourceforge/mcj/fig2dev-${version}.tar.xz";
-    sha256 = "1ck8gnqgg13xkxq4hrdy706i4xdgrlckx6bi6wxm1g514121pp27";
+    sha256 = "0zg29yqknfafyzmmln4k7kydfb2dapk3r8ffvlqhj3cm8fp5h4lk";
   };
 
+  nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ libpng ];
 
   GSEXE="${ghostscript}/bin/gs";
 
+  postInstall = ''
+    wrapProgram $out/bin/fig2ps2tex \
+        --set PATH ${lib.makeBinPath [ coreutils bc gnugrep gawk ]}
+    wrapProgram $out/bin/pic2tpic \
+        --set PATH ${lib.makeBinPath [ gnused ]}
+  '';
+
   meta = with lib; {
     description = "Tool to convert Xfig files to other formats";
     homepage = "http://mcj.sourceforge.net/";
     license = licenses.xfig;
     platforms = platforms.linux;
+    maintainers = with maintainers; [ lesuisse ];
   };
 }
-
diff --git a/pkgs/applications/graphics/pdfcpu/default.nix b/pkgs/applications/graphics/pdfcpu/default.nix
index 3a06c8e31f7..bcc09498121 100644
--- a/pkgs/applications/graphics/pdfcpu/default.nix
+++ b/pkgs/applications/graphics/pdfcpu/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pdfcpu";
-  version = "0.3.7";
+  version = "0.3.8";
 
   src = fetchFromGitHub {
     owner = "pdfcpu";
     repo = pname;
     rev = "v${version}";
-    sha256 = "13b1ncpx189ca0h70j5cdp0jwlj95kasysryz1l6g13cwn9n6mii";
+    sha256 = "sha256-Rx/LUp5s2DhEKuLUklYXjtTXjqBju+5YzK1hNfBCnIE=";
   };
 
-  vendorSha256 = "11w9i1829hk1qb9w24dyxv1bi49358a274g60x11fp5x5cw7bqa7";
+  vendorSha256 = "sha256-/SsDDFveovJfuEdnOkxHAWccS8PJW5k9IHSxSJAgHMQ=";
 
   # No tests
   doCheck = false;
diff --git a/pkgs/applications/misc/deadd-notification-center/default.nix b/pkgs/applications/misc/deadd-notification-center/default.nix
index 8414e02eb88..35627b28d15 100644
--- a/pkgs/applications/misc/deadd-notification-center/default.nix
+++ b/pkgs/applications/misc/deadd-notification-center/default.nix
@@ -1,44 +1,46 @@
-{ lib, stdenv
-, fetchurl
+{ lib
+, stdenv
+, fetchFromGitHub
 , autoPatchelfHook
+, wrapGAppsHook
+, hicolor-icon-theme
 , gtk3
 , gobject-introspection
 , libxml2
 }:
-
-let
-  version = "1.7.2";
-
-  dbusService = fetchurl {
-    url = "https://github.com/phuhl/linux_notification_center/raw/${version}/com.ph-uhl.deadd.notification.service.in";
-    sha256 = "0jvmi1c98hm8x1x7kw9ws0nbf4y56yy44c3bqm6rjj4lrm89l83s";
-  };
-in
 stdenv.mkDerivation rec {
-  inherit version;
   pname = "deadd-notification-center";
+  version = "1.7.3";
 
-  src = fetchurl {
-    url = "https://github.com/phuhl/linux_notification_center/releases/download/${version}/${pname}";
-    sha256 = "13f15slkjiw2n5dnqj13dprhqm3nf1k11jqaqda379yhgygyp9zm";
+  src = fetchFromGitHub {
+    owner = "phuhl";
+    repo = "linux_notification_center";
+    rev = version;
+    sha256 = "QaOLrtlhQyhMOirk6JO1yMGRrgycHmF9FAdKNbN2TRk=";
   };
 
   dontUnpack = true;
 
-  nativeBuildInputs = [ autoPatchelfHook ];
+  nativeBuildInputs = [
+    autoPatchelfHook
+    wrapGAppsHook
+  ];
 
   buildInputs = [
     gtk3
     gobject-introspection
     libxml2
+    hicolor-icon-theme
   ];
 
   installPhase = ''
     mkdir -p $out/bin $out/share/dbus-1/services
-    cp $src $out/bin/deadd-notification-center
-    chmod +x $out/bin/deadd-notification-center
 
-    sed "s|##PREFIX##|$out|g" ${dbusService} > $out/share/dbus-1/services/com.ph-uhl.deadd.notification.service
+    cp $src/.out/${pname} $out/bin/
+    chmod +x $out/bin/${pname}
+
+    sed "s|##PREFIX##|$out|g" $src/${pname}.service.in > \
+      $out/share/dbus-1/services/com.ph-uhl.deadd.notification.service
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index adafe8801f3..ed1b31559f5 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "gpxsee";
-  version = "8.0";
+  version = "8.2";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = version;
-    sha256 = "01ggakpzmiwkqdzc9xqc93xmynd53kzpwl99q3l9z2hpqyzlnj2a";
+    sha256 = "05wn4kmvsswwd2q2pffxbplb38capwv7iddsghix3r5zds13142z";
   };
 
   patches = (substituteAll {
diff --git a/pkgs/applications/misc/nnn/default.nix b/pkgs/applications/misc/nnn/default.nix
index 4c36b3d930f..4a72eecf9b3 100644
--- a/pkgs/applications/misc/nnn/default.nix
+++ b/pkgs/applications/misc/nnn/default.nix
@@ -1,6 +1,9 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, ncurses, readline, conf ? null }:
+{ lib, stdenv, fetchFromGitHub, pkg-config, ncurses, readline
+, conf ? null, withIcons ? false, withNerdIcons ? false }:
 
-with lib;
+# Mutually exclusive options
+assert withIcons -> withNerdIcons == false;
+assert withNerdIcons -> withIcons == false;
 
 stdenv.mkDerivation rec {
   pname = "nnn";
@@ -13,13 +16,17 @@ stdenv.mkDerivation rec {
     sha256 = "1fa7cmwrzn6kx87kms8i98p9azdlwyh2gnif29l340syl9hkr5qy";
   };
 
-  configFile = optionalString (conf != null) (builtins.toFile "nnn.h" conf);
-  preBuild = optionalString (conf != null) "cp ${configFile} src/nnn.h";
+  configFile = lib.optionalString (conf != null) (builtins.toFile "nnn.h" conf);
+  preBuild = lib.optionalString (conf != null) "cp ${configFile} src/nnn.h";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ readline ncurses ];
 
-  makeFlags = [ "DESTDIR=${placeholder "out"}" "PREFIX=" ];
+  makeFlags = [
+    "DESTDIR=${placeholder "out"}"
+    "PREFIX="
+  ] ++ lib.optional withIcons [ "O_ICONS=1" ]
+    ++ lib.optional withNerdIcons [ "O_NERD=1" ];
 
   # shell completions
   postInstall = ''
@@ -28,7 +35,7 @@ stdenv.mkDerivation rec {
     install -Dm555 misc/auto-completion/fish/nnn.fish -t $out/share/fish/vendor_completions.d
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Small ncurses-based file browser forked from noice";
     homepage = "https://github.com/jarun/nnn";
     license = licenses.bsd2;
diff --git a/pkgs/applications/misc/nwg-launchers/default.nix b/pkgs/applications/misc/nwg-launchers/default.nix
index 99033f14a6d..c4c54ba7c53 100644
--- a/pkgs/applications/misc/nwg-launchers/default.nix
+++ b/pkgs/applications/misc/nwg-launchers/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nwg-launchers";
-  version = "0.4.2";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0flp7mwj1pgcwx3k9pzc8pmqlkhbddj0maimdnvlazk87kzxpfd0";
+    sha256 = "sha256-vuvYL9N9xdg27uhiTe2OqxZ3/n/9EjlqPxtNMXpqpE8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/signumone-ks/default.nix b/pkgs/applications/misc/signumone-ks/default.nix
index 144f725e2ef..aeea3ff5daa 100644
--- a/pkgs/applications/misc/signumone-ks/default.nix
+++ b/pkgs/applications/misc/signumone-ks/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "signumone-ks";
-  version = "3.1.2";
+  version = "3.1.3";
 
   src = fetchurl {
     url = "https://cdn-dist.signum.one/${version}/${pname}-${version}.deb";
-    sha256 = "4efd80e61619ccf26df1292194fcec68eb14d77dfcf0a1a673da4cf5bf41f4b7";
+    sha256 = "00wlya3kb6qac2crflm86km9r48r29bvngjq1wgzj9w2xv0q32b9";
   };
 
   # Necessary to avoid using multiple ffmpeg and gtk libs
diff --git a/pkgs/applications/networking/browsers/chromium/README.md b/pkgs/applications/networking/browsers/chromium/README.md
index 5b7c9fe5504..9d23e3143c6 100644
--- a/pkgs/applications/networking/browsers/chromium/README.md
+++ b/pkgs/applications/networking/browsers/chromium/README.md
@@ -36,6 +36,21 @@ update `upstream-info.json`. After updates it is important to test at least
 `nixosTests.chromium` (or basic manual testing) and `google-chrome` (which
 reuses `upstream-info.json`).
 
+To run all automated NixOS VM tests for Chromium, ungoogled-chromium,
+and Google Chrome (not recommended, currently 6x tests!):
+```
+nix-build nixos/tests/chromium.nix
+```
+
+A single test can be selected, e.g. to test `ungoogled-chromium` (see
+`channelMap` in `nixos/tests/chromium.nix` for all available options):
+```
+nix-build nixos/tests/chromium.nix -A ungoogled
+```
+(Note: Testing Google Chrome requires `export NIXPKGS_ALLOW_UNFREE=1`.)
+
+For custom builds it's possible to "override" `channelMap`.
+
 ## Backports
 
 All updates are considered security critical and should be ported to the stable
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index 69ab7e71067..75653d312b4 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -1,20 +1,20 @@
 {
   "stable": {
-    "version": "87.0.4280.141",
-    "sha256": "0x9k809m36pfirnw2vnr9pk93nxdbgrvna0xf1rs3q91zkbr2x8l",
-    "sha256bin64": "0wq3yi0qyxzcid390w5rh4xjq92fjajvlifjl70g6sqnbk6vgvdp",
+    "version": "88.0.4324.96",
+    "sha256": "17y7x50cx2d3bbz0hna25j8pyqsk0914266mpvrpk5am52xwb5c9",
+    "sha256bin64": "09210781s9y49l6qkbd1v8w52741rmhxz6cc6qsldnqpm5mwlgsc",
     "deps": {
       "gn": {
-        "version": "2020-09-09",
+        "version": "2020-11-05",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "e002e68a48d1c82648eadde2f6aafa20d08c36f2",
-        "sha256": "0x4c7amxwzxs39grqs3dnnz0531mpf1p75niq7zhinyfqm86i4dk"
+        "rev": "53d92014bf94c3893886470a1c7c1289f8818db0",
+        "sha256": "1xcm07qjk6m2czi150fiqqxql067i832adck6zxrishm70c9jbr9"
       }
     },
     "chromedriver": {
-      "version": "87.0.4280.88",
-      "sha256_linux": "1insh1imi25sj4hdkbll5rzwnag8wvfxv4ckshpq8akl8r13p6lj",
-      "sha256_darwin": "048hsqp6575r980m769lzznvxypmfcwn89f1d3ik751ymzmb5r78"
+      "version": "88.0.4324.27",
+      "sha256_linux": "1vx1llg0x6903ggqa345iswd63y9c24184zv784q01zqxqwn0g8p",
+      "sha256_darwin": "0x1s6crfwkcn86w6p8g4vmx5raqlr41pjr4h2dbwppgrc0nx1p14"
     }
   },
   "beta": {
diff --git a/pkgs/applications/networking/cluster/kube3d/default.nix b/pkgs/applications/networking/cluster/kube3d/default.nix
index a97bf509fe4..f38e3135ecb 100644
--- a/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -1,7 +1,7 @@
 { lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 let
-  k3sVersion = "1.19.4-k3s1";
+  k3sVersion = "1.20.0-k3s2";
 in
 buildGoModule rec {
   pname = "kube3d";
diff --git a/pkgs/applications/networking/cluster/nerdctl/default.nix b/pkgs/applications/networking/cluster/nerdctl/default.nix
index ed00fb231a6..28f7b540722 100644
--- a/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -14,16 +14,16 @@ let
 in
 buildGoModule rec {
   pname = "nerdctl";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "AkihiroSuda";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vjcbvd5yrasw97hd5mrn6cdjvfv2r03z7g1wczlszlcs8gr6nxw";
+    sha256 = "sha256-lSvYiTh67gK9kJls7VsayV8T3H6RzFEEKe49BOWnUBw=";
   };
 
-  vendorSha256 = "181lp9l4i0qpiqm8wbxa4ldi1j5bm3ygmanz1xh3mkjanl0pwqjr";
+  vendorSha256 = "sha256-qywiaNoO3pI7sfyPbwWR8BLd86RvJ2xSWwCJUsm3RkM=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/applications/networking/cluster/terraform-providers/shell/default.nix b/pkgs/applications/networking/cluster/terraform-providers/shell/default.nix
index 4833a967788..2bf76758752 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/shell/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/shell/default.nix
@@ -20,6 +20,8 @@ buildGoModule rec {
   # if the versions are not provided via file paths.
   postInstall = "mv $out/bin/${pname}{,_v${version}}";
 
+  passthru.provider-source-address = "registry.terraform.io/scottwinkler/shell";
+
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "Terraform provider for executing shell commands and saving output to state file";
diff --git a/pkgs/applications/networking/gmailctl/default.nix b/pkgs/applications/networking/gmailctl/default.nix
index 30a25dc9f70..1dfd1f62fb0 100644
--- a/pkgs/applications/networking/gmailctl/default.nix
+++ b/pkgs/applications/networking/gmailctl/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "gmailctl";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "mbrt";
     repo = "gmailctl";
     rev = "v${version}";
-    sha256 = "08q4yjfbwlldirf3j5db18l8kn6sf288wd364s50jlcx2ka8w50j";
+    sha256 = "sha256-UZzpecW4vW1JYUDCcwDIJXCGjw80fgZC4wvCh0DdE98=";
   };
 
-  vendorSha256 = "0qp8n7z3vcsbc6safp7i18i0i3r4hy4nidzwl85i981sg12vcg6b";
+  vendorSha256 = "sha256-5oVr1qazTzsSNVLvcAsAN8UyrJOeqLjSVinImLOyJlk=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/instant-messengers/gomuks/default.nix b/pkgs/applications/networking/instant-messengers/gomuks/default.nix
index 3d1fc19113c..a2d12124dbf 100644
--- a/pkgs/applications/networking/instant-messengers/gomuks/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gomuks/default.nix
@@ -1,4 +1,15 @@
-{ lib, stdenv, buildGoModule, fetchFromGitHub, olm, makeDesktopItem }:
+{ lib
+, stdenv
+, substituteAll
+, buildGoModule
+, fetchFromGitHub
+, makeDesktopItem
+, makeWrapper
+, libnotify
+, olm
+, pulseaudio
+, sound-theme-freedesktop
+}:
 
 buildGoModule rec {
   pname = "gomuks";
@@ -15,7 +26,13 @@ buildGoModule rec {
 
   doCheck = false;
 
-  buildInputs = [ olm ];
+  buildInputs = [ makeWrapper olm ];
+
+  # Upstream issue: https://github.com/tulir/gomuks/issues/260
+  patches = lib.optional stdenv.isLinux (substituteAll {
+    src = ./hardcoded_path.patch;
+    soundTheme = sound-theme-freedesktop;
+  });
 
   postInstall = ''
     cp -r ${
@@ -30,13 +47,15 @@ buildGoModule rec {
       }
     }/* $out/
     substituteAllInPlace $out/share/applications/*
+    wrapProgram $out/bin/gomuks \
+      --prefix PATH : "${lib.makeBinPath (lib.optionals stdenv.isLinux [ libnotify pulseaudio ])}"
   '';
 
   meta = with lib; {
     homepage = "https://maunium.net/go/gomuks/";
     description = "A terminal based Matrix client written in Go";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ tilpner emily ];
+    maintainers = with maintainers; [ charvp emily ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/gomuks/hardcoded_path.patch b/pkgs/applications/networking/instant-messengers/gomuks/hardcoded_path.patch
new file mode 100644
index 00000000000..0e0d4e28b0a
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/gomuks/hardcoded_path.patch
@@ -0,0 +1,13 @@
+diff --git a/lib/notification/notify_linux.go b/lib/notification/notify_linux.go
+index f93a95f..da6a61d 100644
+--- a/lib/notification/notify_linux.go
++++ b/lib/notification/notify_linux.go
+@@ -32,7 +32,7 @@ func Send(title, text string, critical, sound bool) error {
+ 		if critical {
+ 			soundName = "complete"
+ 		}
+-		exec.Command("paplay", "/usr/share/sounds/freedesktop/stereo/"+soundName+".oga").Run()
++		exec.Command("paplay", "@soundTheme@/share/sounds/freedesktop/stereo/"+soundName+".oga").Run()
+ 	}
+ 	return exec.Command("notify-send", args...).Run()
+ }
diff --git a/pkgs/applications/networking/instant-messengers/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix
index 48adc6f03cf..b640d7c5f9a 100644
--- a/pkgs/applications/networking/instant-messengers/nheko/default.nix
+++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -57,6 +57,10 @@ mkDerivation rec {
     qtgraphicaleffects
   ] ++ lib.optional stdenv.isDarwin qtmacextras;
 
+  cmakeFlags = [
+    "-DCOMPILE_QML=ON" # see https://github.com/Nheko-Reborn/nheko/issues/389
+  ];
+
   meta = with lib; {
     description = "Desktop client for the Matrix protocol";
     homepage = "https://github.com/Nheko-Reborn/nheko";
diff --git a/pkgs/applications/networking/instant-messengers/rambox/default.nix b/pkgs/applications/networking/instant-messengers/rambox/default.nix
index bc26b68d2db..5525805c2e4 100644
--- a/pkgs/applications/networking/instant-messengers/rambox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/rambox/default.nix
@@ -1,46 +1,22 @@
-{ stdenv, lib, fetchurl, xdg_utils, dpkg, makeWrapper, autoPatchelfHook
-, libXtst, libXScrnSaver, gtk3, nss, alsaLib, udev, libnotify, wrapGAppsHook
-}:
+{ stdenv, callPackage, fetchurl, lib }:
 
 let
-  version = "0.7.7";
-in stdenv.mkDerivation rec {
+  mkRambox = opts: callPackage (import ./rambox.nix opts) { };
+in mkRambox rec {
   pname = "rambox";
-  inherit version;
+  version = "0.7.7";
+
   src = {
     x86_64-linux = fetchurl {
-      url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-amd64.deb";
-      sha256 = "0bij4f1bkg94gc8pq7r6yfym5zcvwc2ymdnmnmh5m4h1pa1gk6x9";
+      url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-x86_64.AppImage";
+      sha256 = "0f82hq0dzcjicdz6lkzj8889y100yqciqrwh8wjjy9pxkhjcdini";
     };
     i686-linux = fetchurl {
-      url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-i386.deb";
-      sha256 = "1nhgqjha10jvyf9nsghvlkibg7byj8qz140639ygag9qlpd51rfs";
+      url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-i386.AppImage";
+      sha256 = "1nhgqjha10jvyf9nsghvlkibg7byj8qz140639ygag9qlpd52rfs";
     };
   }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
 
-  nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook wrapGAppsHook ];
-  buildInputs = [ libXtst libXScrnSaver gtk3 nss alsaLib ];
-  runtimeDependencies = [ (lib.getLib udev) libnotify ];
-
-  unpackPhase = "dpkg-deb -x $src .";
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp -r opt $out
-    ln -s $out/opt/Rambox/rambox $out/bin
-
-    # provide resources
-    cp -r usr/share $out
-    substituteInPlace $out/share/applications/rambox.desktop \
-      --replace Exec=/opt/Rambox/rambox Exec=rambox
-  '';
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      --prefix PATH : ${xdg_utils}/bin
-    )
-  '';
-
   meta = with lib; {
     description = "Free and Open Source messaging and emailing app that combines common web applications into one";
     homepage = "https://rambox.pro";
diff --git a/pkgs/applications/networking/instant-messengers/rambox/pro.nix b/pkgs/applications/networking/instant-messengers/rambox/pro.nix
index 1df0b597ae2..7051799a277 100644
--- a/pkgs/applications/networking/instant-messengers/rambox/pro.nix
+++ b/pkgs/applications/networking/instant-messengers/rambox/pro.nix
@@ -1,56 +1,25 @@
-{ autoPatchelfHook, electron_7, fetchurl, makeDesktopItem, makeWrapper, nodePackages, nss, lib, stdenv, xdg_utils, xorg }:
+{ stdenv, callPackage, fetchurl, lib }:
 
 let
-  electron = electron_7;
-in
-stdenv.mkDerivation rec {
+  mkRambox = opts: callPackage (import ./rambox.nix opts) { };
+in mkRambox rec {
   pname = "rambox-pro";
   version = "1.4.1";
 
-  dontBuild = true;
-  dontStrip = true;
+  desktopName = "Rambox Pro";
 
-  buildInputs = [ nss xorg.libXext xorg.libxkbfile xorg.libXScrnSaver ];
-  nativeBuildInputs = [ autoPatchelfHook makeWrapper nodePackages.asar ];
-
-  src = fetchurl {
-    url = "https://github.com/ramboxapp/download/releases/download/v${version}/RamboxPro-${version}-linux-x64.tar.gz";
-    sha256 = "1bd4fba3ac8c20fa557ebfb110f6503d36e6c3dba0401d1073529dcae2c2ec1e";
-  };
-
-  installPhase = ''
-    mkdir -p $out/{bin,resources/dist/renderer/assets/images/app,share/applications,share/icons/hicolor/256x256/apps}
-
-    asar e resources/app.asar $out/resources
-
-    substituteInPlace "$out/resources/dist/electron/main.js" \
-      --replace ",isHidden:" ",path:\"$out/bin/ramboxpro\",isHidden:"
-
-    cp $desktopItem/share/applications/* $out/share/applications
-    cp $out/resources/dist/electron/imgs/256x256.png $out/share/icons/hicolor/256x256/apps/ramboxpro.png
-    cp $out/resources/dist/electron/imgs/256x256.png $out/resources/dist/renderer/assets/images/app/icon.png
-  '';
-
-  postFixup = ''
-    makeWrapper ${electron}/bin/electron $out/bin/ramboxpro \
-      --add-flags "$out/resources --without-update" \
-      --prefix PATH : ${xdg_utils}/bin
-  '';
-
-  desktopItem = makeDesktopItem {
-    name = "rambox-pro";
-    exec = "ramboxpro";
-    icon = "ramboxpro";
-    type = "Application";
-    desktopName = "Rambox Pro";
-    categories = "Network;";
-  };
+  src = {
+    x86_64-linux = fetchurl {
+      url = "https://github.com/ramboxapp/download/releases/download/v${version}/RamboxPro-${version}-linux-x64.AppImage";
+      sha256 = "18383v3g26hd1czvw06gmjn8bdw2w9c7zb04zkfl6szgakrv26x4";
+    };
+  }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
 
   meta = with lib; {
     description = "Messaging and emailing app that combines common web applications into one";
     homepage = "https://rambox.pro";
     license = licenses.unfree;
     maintainers = with maintainers; [ chrisaw ];
-    platforms = [ "i686-linux" "x86_64-linux" ];
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/rambox/rambox.nix b/pkgs/applications/networking/instant-messengers/rambox/rambox.nix
new file mode 100644
index 00000000000..6881ae270f9
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/rambox/rambox.nix
@@ -0,0 +1,30 @@
+{ pname, version, src, meta, desktopName ? "Rambox" }:
+
+{ appimageTools, stdenv, lib, fetchurl, makeDesktopItem }:
+
+let
+  name = "${pname}-${version}";
+
+  desktopItem = (makeDesktopItem {
+    inherit desktopName;
+    name = pname;
+    exec = pname;
+    icon = pname;
+    type = "Application";
+    categories = "Network;";
+  });
+
+  appimageContents = appimageTools.extractType2 {
+    inherit name src;
+  };
+in appimageTools.wrapType2 rec {
+  inherit name src meta;
+
+  extraInstallCommands = ''
+    mkdir -p $out/share/applications $out/share/icons/hicolor/256x256/apps
+    # CE uses rambox-<version>, Pro uses rambox
+    mv $out/bin/rambox* $out/bin/${pname}
+    install -Dm644 ${appimageContents}/usr/share/icons/hicolor/256x256/apps/rambox*.png $out/share/icons/hicolor/256x256/apps/${pname}.png
+    install -Dm644 ${desktopItem}/share/applications/* $out/share/applications
+  '';
+}
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 88cd3dc54c5..19e48bf88d6 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -25,7 +25,7 @@ let
       else "");
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "1.39.5"; # Please backport all updates to the stable channel.
+  version = "1.39.6"; # Please backport all updates to the stable channel.
   # All releases have a limited lifetime and "expire" 90 days after the release.
   # When releases "expire" the application becomes unusable until an update is
   # applied. The expiration date for the current release can be extracted with:
@@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-    sha256 = "1x29ri4jxd1q2wbv5gf26x986x9sms4rxnhj7d5rhm6pz2ihzb2a";
+    sha256 = "04fd81vc0dxk0b47crm5zacf4x79pdn483xicygnc1z6v7mnrmgk";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/mailreaders/mailspring/default.nix b/pkgs/applications/networking/mailreaders/mailspring/default.nix
index f0ab5f148f1..f0f3bdb3ff4 100644
--- a/pkgs/applications/networking/mailreaders/mailspring/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailspring/default.nix
@@ -18,11 +18,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mailspring";
-  version = "1.7.8";
+  version = "1.8.0";
 
   src = fetchurl {
     url = "https://github.com/Foundry376/Mailspring/releases/download/${version}/mailspring-${version}-amd64.deb";
-    sha256 = "207fbf813b6da018a5b848e5dc1194b5996daab39adbd873b2cecb0565c105ce";
+    sha256 = "BtzYcHN87qH7s3GiBrsDfmuy9v2xdhCeSShu8+T9T3E=";
   };
 
   nativeBuildInputs = [
@@ -60,7 +60,6 @@ stdenv.mkDerivation rec {
     cp -ar ./usr/share $out
 
     substituteInPlace $out/share/mailspring/resources/app.asar.unpacked/mailsync \
-      --replace realpath ${coreutils}/bin/realpath \
       --replace dirname ${coreutils}/bin/dirname
 
     ln -s $out/share/mailspring/mailspring $out/bin/mailspring
diff --git a/pkgs/applications/networking/ngadmin/default.nix b/pkgs/applications/networking/ngadmin/default.nix
index 718a0970c86..8392e058345 100644
--- a/pkgs/applications/networking/ngadmin/default.nix
+++ b/pkgs/applications/networking/ngadmin/default.nix
@@ -1,17 +1,28 @@
-{ stdenv, lib, fetchgit, autoreconfHook, readline }:
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, readline
+, withReadline ? true
+, enableEmu ? true
+, enableSpy ? true
+}:
 
 stdenv.mkDerivation {
   pname = "ngadmin";
-  version = "unstable-2017-11-17";
+  version = "unstable-2020-10-05";
 
-  src = fetchgit {
-    url = "https://git.netgeek.ovh/c/ngadmin.git";
-    rev = "95240c567b5c40129d733cbd76911ba7574e4998";
-    sha256 = "052ss82fs8cxk3dqdwlh3r8q9gsm36in2lxdgwj9sljdgwg75c34";
+  src = fetchFromGitHub {
+    owner = "Alkorin";
+    repo = "ngadmin";
+    rev = "5bf8650ce6d465b8cb1e570548819f0cefe9a87d";
+    sha256 = "15vixhwqcpbjdxlaznans9w63kwl29mdkds6spvbv2i7l33qnhq4";
   };
 
-  nativeBuildInputs = [ autoreconfHook readline ];
+  nativeBuildInputs =
+    [ autoreconfHook ]
+    ++ lib.optional withReadline readline;
   enableParallelBuild = true;
+  configureFlags = with lib;
+    optional (!withReadline) "--without-readline"
+    ++ optional enableEmu "--enable-emu"
+    ++ optional enableSpy "--enable-spy";
 
   meta = with lib; {
     description = "Netgear switch (NSDP) administration tool";
diff --git a/pkgs/applications/printing/pappl/default.nix b/pkgs/applications/printing/pappl/default.nix
index 5cad364d240..4c7b60c125c 100644
--- a/pkgs/applications/printing/pappl/default.nix
+++ b/pkgs/applications/printing/pappl/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pappl";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "michaelrsweet";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1cg06v8hxska0hnybnmfda1v4h3ifjir24nx2iqx80kb6jq0hayb";
+    sha256 = "sha256-4evyOrPd8zb5y00L8h2t++ayW1S8WQ5P+6MXe6eju68=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/applications/science/biology/picard-tools/default.nix b/pkgs/applications/science/biology/picard-tools/default.nix
index d18ca2e2a4f..054fb66dccb 100644
--- a/pkgs/applications/science/biology/picard-tools/default.nix
+++ b/pkgs/applications/science/biology/picard-tools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "picard-tools";
-  version = "2.23.9";
+  version = "2.24.0";
 
   src = fetchurl {
     url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
-    sha256 = "1ygdl590sbcsxpk0qwr0bx163nx51h0545n1xxkbc3pk2r6n51lk";
+    sha256 = "sha256-cOkQObzMb222DxjEFxMhiozfRfWR8CwQEsBiFSsnzXs=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/snowmachine/default.nix b/pkgs/applications/snowmachine/default.nix
new file mode 100644
index 00000000000..2e05fe0c643
--- /dev/null
+++ b/pkgs/applications/snowmachine/default.nix
@@ -0,0 +1,24 @@
+{ buildPythonPackage, lib, click, colorama, fetchPypi, setuptools-git }:
+
+buildPythonPackage rec {
+  pname = "snowmachine";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1v385hhxy2a8vx5p0fhn0di8l4qfpb0a86j6nwsg0aw6ngb09qf1";
+  };
+
+  buildInputs = [ setuptools-git ];
+  propagatedBuildInputs = [ click colorama ];
+
+  doCheck = false;
+  pythonImportsCheck = [ "snowmachine" ];
+
+  meta = with lib; {
+    description = "A python script that will make your terminal snow";
+    homepage = "http://github.com/sontek/snowmachine";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ djanatyn ];
+  };
+}
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index 0855c27eff4..d1d5f8e6c86 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -65,6 +65,7 @@ let
     && libcxx == null
     && !(stdenv.targetPlatform.useLLVM or false)
     && !(stdenv.targetPlatform.useAndroidPrebuilt or false)
+    && !(stdenv.targetPlatform.isiOS or false)
     && gccForLibs != null;
 
   # older compilers (for example bootstrap's GCC 5) fail with -march=too-modern-cpu
diff --git a/pkgs/data/fonts/nerdfonts/shas.nix b/pkgs/data/fonts/nerdfonts/shas.nix
index e360dd042b1..4194e57532d 100644
--- a/pkgs/data/fonts/nerdfonts/shas.nix
+++ b/pkgs/data/fonts/nerdfonts/shas.nix
@@ -1,52 +1,52 @@
 {
-	"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";
-	"InconsolataGo" = "0c6yhx242d82dalyjas42qniy0jagqs47cfsfarwmzar6zg3lj5m";
-	"InconsolataLGC" = "1746nl1rz4hscfgbmd8642wq3z1wizvfjb50y3yyjsc1ixc1f0pd";
-	"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";
-	"UbuntuMono" = "0wa8ri7f3g8vwd194q812qh8nzplnmhl5ak0yhgilmm44s46ad0h";
-	"VictorMono" = "18z92kwggfqwrd5m09yda55hcb4b159278lps6f9hr8icwki6v9q";
+  "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";
+  "InconsolataGo" = "0c6yhx242d82dalyjas42qniy0jagqs47cfsfarwmzar6zg3lj5m";
+  "InconsolataLGC" = "1746nl1rz4hscfgbmd8642wq3z1wizvfjb50y3yyjsc1ixc1f0pd";
+  "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";
+  "UbuntuMono" = "0wa8ri7f3g8vwd194q812qh8nzplnmhl5ak0yhgilmm44s46ad0h";
+  "VictorMono" = "18z92kwggfqwrd5m09yda55hcb4b159278lps6f9hr8icwki6v9q";
 }
diff --git a/pkgs/data/fonts/nerdfonts/update.sh b/pkgs/data/fonts/nerdfonts/update.sh
index ccfab174dd8..b4c4aaa7cf2 100755
--- a/pkgs/data/fonts/nerdfonts/update.sh
+++ b/pkgs/data/fonts/nerdfonts/update.sh
@@ -15,7 +15,7 @@ while
   read -r name
   read -r url
 do
-    printf '\t"%s" = "%s";\n' "${name%.*}" "$(nix-prefetch-url "$url")" >>"$dirname/shas.nix"
+    printf '  "%s" = "%s";\n' "${name%.*}" "$(nix-prefetch-url "$url")" >>"$dirname/shas.nix"
 done < <(jq -r '.assets[] | .name, .browser_download_url' <<<"$latest_release")
 
 printf '}\n' >> "$dirname/shas.nix"
diff --git a/pkgs/development/compilers/go/1.14.nix b/pkgs/development/compilers/go/1.14.nix
index 6dc347d9012..4c5a276ec84 100644
--- a/pkgs/development/compilers/go/1.14.nix
+++ b/pkgs/development/compilers/go/1.14.nix
@@ -36,11 +36,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.14.13";
+  version = "1.14.14";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "0xxins5crcgghgvnzplmp0qyv2gbmh36v1fpl15d03jwdd6287ds";
+    sha256 = "0vx7r0bb1a500znnnh7v3wgw22ly3p2x06vzyi9hiblgylrby132";
   };
 
   # perl is used for testing go vet
diff --git a/pkgs/development/compilers/go/1.15.nix b/pkgs/development/compilers/go/1.15.nix
index d5415b208a8..65e75ba6907 100644
--- a/pkgs/development/compilers/go/1.15.nix
+++ b/pkgs/development/compilers/go/1.15.nix
@@ -36,11 +36,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.15.6";
+  version = "1.15.7";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "05sqcx4fm1nxfm46j6xriq0fnnah4bm8bqw027xrzcg2qmrvl2w9";
+    sha256 = "1g1a39y1cnvw3y0bjwjms55cz0s9icm8myrgxi295jwfznmb6cc6";
   };
 
   # perl is used for testing go vet
diff --git a/pkgs/development/libraries/audio/jamomacore/default.nix b/pkgs/development/libraries/audio/jamomacore/default.nix
deleted file mode 100644
index c08b25fea37..00000000000
--- a/pkgs/development/libraries/audio/jamomacore/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, fetchFromGitHub, pkg-config, alsaLib, portaudio, portmidi, libsndfile, cmake, libxml2 }:
-
-stdenv.mkDerivation rec {
-  version = "1.0-beta.1";
-  pname = "JamomaCore";
-
-  src = fetchFromGitHub {
-    owner = "jamoma";
-    repo = "JamomaCore";
-    rev = "v${version}";
-    sha256 = "1hb9b6qc18rsvzvixgllknn756m6zwcn22c79rdibbyz1bhrcnln";
-  };
-
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ alsaLib portaudio portmidi libsndfile libxml2 ];
-
-  meta = {
-    description = "A C++ platform for building dynamic and reflexive systems with an emphasis on audio and media";
-    homepage = "http://www.jamoma.org";
-    license = stdenv.lib.licenses.bsd3;
-    maintainers = [ stdenv.lib.maintainers.magnetophon ];
-    platforms = stdenv.lib.platforms.linux;
-    broken = true; # 2018-04-10
-  };
-}
diff --git a/pkgs/development/libraries/fast-cpp-csv-parser/default.nix b/pkgs/development/libraries/fast-cpp-csv-parser/default.nix
new file mode 100644
index 00000000000..80306bf506b
--- /dev/null
+++ b/pkgs/development/libraries/fast-cpp-csv-parser/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "fast-cpp-csv-parser";
+  version = "2021-01-03";
+
+  src = fetchFromGitHub {
+    owner = "ben-strasser";
+    repo = pname;
+    rev = "75600d0b77448e6c410893830df0aec1dbacf8e3";
+    sha256 = "04kalwgsr8khqr1j5j13vzwaml268c5dvc9wfcwfs13wp3snqwf2";
+  };
+
+  installPhase = ''
+    mkdir -p $out/lib/pkgconfig $out/include
+    cp -r *.h $out/include/
+    substituteAll ${./fast-cpp-csv-parser.pc.in} $out/lib/pkgconfig/fast-cpp-csv-parser.pc
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A small, easy-to-use and fast header-only library for reading comma separated value (CSV) files";
+    homepage = "https://github.com/ben-strasser/fast-cpp-csv-parser";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ bhipple ];
+  };
+}
diff --git a/pkgs/development/libraries/fast-cpp-csv-parser/fast-cpp-csv-parser.pc.in b/pkgs/development/libraries/fast-cpp-csv-parser/fast-cpp-csv-parser.pc.in
new file mode 100644
index 00000000000..4a8e57d20ff
--- /dev/null
+++ b/pkgs/development/libraries/fast-cpp-csv-parser/fast-cpp-csv-parser.pc.in
@@ -0,0 +1,8 @@
+prefix=@out@
+includedir=${prefix}/include
+
+Name: fast-cpp-csv-parser
+Description: Fast header-only library for reading CSV files
+URL: https://github.com/ben-strasser/fast-cpp-csv-parser
+Version: @version@
+Cflags: -isystem${includedir}
diff --git a/pkgs/development/libraries/gperftools/default.nix b/pkgs/development/libraries/gperftools/default.nix
index ac500525411..bdb4e67f85f 100644
--- a/pkgs/development/libraries/gperftools/default.nix
+++ b/pkgs/development/libraries/gperftools/default.nix
@@ -1,11 +1,20 @@
-{ stdenv, lib, fetchurl, fetchpatch, autoreconfHook, libunwind }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, fetchpatch
+, autoreconfHook
+, libunwind
+}:
 
 stdenv.mkDerivation rec {
-  name = "gperftools-2.8";
-
-  src = fetchurl {
-    url = "https://github.com/gperftools/gperftools/releases/download/${name}/${name}.tar.gz";
-    sha256 = "0gjiplvday50x695pwjrysnvm5wfvg2b0gmqf6b4bdi8sv6yl394";
+  pname = "gperftools";
+  version = "2.8.1";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "${pname}-${version}";
+    sha256 = "19bj2vlsbfwq7m826v2ccqg47kd7cb5vcz1yw2x0v5qzhaxbakk1";
   };
 
   patches = [
@@ -29,8 +38,6 @@ stdenv.mkDerivation rec {
 
   prePatch = lib.optionalString stdenv.isDarwin ''
     substituteInPlace Makefile.am --replace stdc++ c++
-    substituteInPlace Makefile.in --replace stdc++ c++
-    substituteInPlace libtool --replace stdc++ c++
   '';
 
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin
diff --git a/pkgs/development/libraries/libcint/default.nix b/pkgs/development/libraries/libcint/default.nix
index 8415b964bb9..bd8e8bd4aaf 100644
--- a/pkgs/development/libraries/libcint/default.nix
+++ b/pkgs/development/libraries/libcint/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libcint";
-  version = "4.0.6";
+  version = "4.0.7";
 
   src = fetchFromGitHub {
     owner = "sunqm";
     repo = "libcint";
     rev = "v${version}";
-    sha256 = "1bgzsyz1i0hvla5ax0lawp1kw25fkhzh9ddhq92mplizrj9y05c1";
+    sha256 = "sha256-/S5LcaIIAXq9QiH8wGPSw8KpWC3afX9HqiHrWHmGQ6s=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libhandy/default.nix b/pkgs/development/libraries/libhandy/default.nix
index 1e4fd3348f1..794502ed9b8 100644
--- a/pkgs/development/libraries/libhandy/default.nix
+++ b/pkgs/development/libraries/libhandy/default.nix
@@ -23,14 +23,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libhandy";
-  version = "1.0.2";
+  version = "1.0.3";
 
   outputs = [ "out" "dev" "devdoc" "glade" ];
   outputBin = "dev";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0b8wvjabv5mg8jbng8rsd5g84lk571nm0qpna20pwp0njh2qvmrs";
+    sha256 = "sha256-VZuzrMLDYkiJF+ty7SW9wYH0riaslNF3Y0zF00yGf3o=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libjcat/default.nix b/pkgs/development/libraries/libjcat/default.nix
index 1eca110f8cb..a6ad6d4bb64 100644
--- a/pkgs/development/libraries/libjcat/default.nix
+++ b/pkgs/development/libraries/libjcat/default.nix
@@ -19,7 +19,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libjcat";
-  version = "0.1.4";
+  version = "0.1.5";
 
   outputs = [ "bin" "out" "dev" "devdoc" "man" "installedTests" ];
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "hughsie";
     repo = "libjcat";
     rev = version;
-    sha256 = "156sykcdzdfmd7va59qld4gyzhbf2yk1dfgifi494g6i99zyigfh";
+    sha256 = "sha256-xf/hzTzhxKJDL5Way0Qbrs8pXCvAQ+ADtgJO2GbEvmc=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/libmodule/default.nix b/pkgs/development/libraries/libmodule/default.nix
index 94632ed57b0..2848298016d 100644
--- a/pkgs/development/libraries/libmodule/default.nix
+++ b/pkgs/development/libraries/libmodule/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libmodule";
-  version = "5.0.0";
+  version = "5.0.1";
 
   src = fetchFromGitHub {
     owner = "FedeDP";
     repo = "libmodule";
     rev = version;
-    sha256 = "1cf81sl33xmfn5g150iqcdrjn0lpjlgp53mganwi6x7jda2qk7r6";
+    sha256 = "sha256-wkRiDWO9wUyxkAeqvm99u22Jq4xnQJx6zS7Sb+R8iMg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/nco/default.nix b/pkgs/development/libraries/nco/default.nix
index 5f6c85411b1..bb8dee2be61 100644
--- a/pkgs/development/libraries/nco/default.nix
+++ b/pkgs/development/libraries/nco/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchzip, netcdf, netcdfcxx4, gsl, udunits, antlr, which, curl, flex, coreutils }:
 
 stdenv.mkDerivation rec {
-  version = "4.9.6";
+  version = "4.9.7";
   pname = "nco";
 
   nativeBuildInputs = [ flex which ];
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url = "https://github.com/nco/nco/archive/${version}.tar.gz";
-    sha256 = "0f8vf66700dcr48jqd371bbldc61xkrilby13xp8j5l9q4xal808";
+    sha256 = "sha256-Q4okOoyodofAsMrSmAhFISeY05Be+i7OX4qy2annQq4=";
   };
 
   prePatch = ''
diff --git a/pkgs/development/libraries/networking-ts-cxx/default.nix b/pkgs/development/libraries/networking-ts-cxx/default.nix
new file mode 100644
index 00000000000..72981175c0b
--- /dev/null
+++ b/pkgs/development/libraries/networking-ts-cxx/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "networking-ts-cxx";
+  version = "2019-02-27";
+
+  # Used until https://github.com/chriskohlhoff/networking-ts-impl/issues/17 is
+  # resolved and we can generate in Nix.
+  src = fetchFromGitHub {
+    owner = "chriskohlhoff";
+    repo = "networking-ts-impl";
+    rev = "c97570e7ceef436581be3c138868a19ad96e025b";
+    sha256 = "12b5lg989nn1b8v6x9fy3cxsf3hs5hr67bd1mfyh8pjikir7zv6j";
+  };
+
+  installPhase = ''
+    mkdir -p $out/{include,lib/pkgconfig}
+    cp -r include $out/
+    substituteAll ${./networking_ts.pc.in} $out/lib/pkgconfig/networking_ts.pc
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Experimental implementation of the C++ Networking Technical Specification";
+    homepage = "https://github.com/chriskohlhoff/networking-ts-impl";
+    license = licenses.boost;
+    maintainers = with maintainers; [ bhipple ];
+  };
+}
diff --git a/pkgs/development/libraries/networking-ts-cxx/networking_ts.pc.in b/pkgs/development/libraries/networking-ts-cxx/networking_ts.pc.in
new file mode 100644
index 00000000000..d52f68f4c15
--- /dev/null
+++ b/pkgs/development/libraries/networking-ts-cxx/networking_ts.pc.in
@@ -0,0 +1,8 @@
+prefix=@out@
+includedir=${prefix}/include
+
+Name: networking_ts
+Description: Experimental implementation of the C++ Networking Technical Specification
+URL: https://github.com/chriskohlhoff/networking-ts-impl
+Version: ${networking_ts_version}
+Cflags: -isystem${includedir}
diff --git a/pkgs/development/php-packages/psalm/default.nix b/pkgs/development/php-packages/psalm/default.nix
index 473b035d23a..1de01d1d09d 100644
--- a/pkgs/development/php-packages/psalm/default.nix
+++ b/pkgs/development/php-packages/psalm/default.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, pkgs, lib, php }:
 let
   pname = "psalm";
-  version = "4.3.1";
+  version = "4.4.1";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/vimeo/psalm/releases/download/${version}/psalm.phar";
-    sha256 = "1hv9r5m1mdywm7qi9rs9054jp77cpip3jyw048iq3l7s0vpslkc5";
+    sha256 = "sha256-4hqgAPflzNmeQQaxQATpWYBB5Pz7jKu8Vlw3BiMyhtw=";
   };
 
   phases = [ "installPhase" ];
diff --git a/pkgs/development/python-modules/azure-synapse-artifacts/default.nix b/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
index f33df1fdbe8..5a414388c4c 100644
--- a/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
+++ b/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
@@ -23,8 +23,8 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "azure.synapse.artifacts" ];
 
   meta = with lib; {
-    description = "CHANGE";
-    homepage = "https://github.com/CHANGE/azure-synapse-artifacts/";
+    description = "Microsoft Azure Synapse Artifacts Client Library for Python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/bellows/default.nix b/pkgs/development/python-modules/bellows/default.nix
index 614a1ad98a9..6ee8b6499b5 100644
--- a/pkgs/development/python-modules/bellows/default.nix
+++ b/pkgs/development/python-modules/bellows/default.nix
@@ -1,26 +1,27 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub
 , click, click-log, pure-pcapy3
-, pyserial, pyserial-asyncio, voluptuous, zigpy
-, asynctest, pytest, pytest-asyncio }:
+, pyserial-asyncio, voluptuous, zigpy
+, asynctest, pytestCheckHook, pytest-asyncio }:
 
-let
+buildPythonPackage rec {
   pname = "bellows";
   version = "0.21.0";
 
-in buildPythonPackage rec {
-  inherit pname version;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "fd2ac40c1f3550580dc561ae58d7d15cfa12e6a7cc5d35ee80e7a1cb6a4cda4f";
+  src = fetchFromGitHub {
+    owner = "zigpy";
+    repo = "bellows";
+    rev = version;
+    sha256 = "1gja7cb1cyzbi19k8awa2gyc3bjam0adapalpk5slxny0vxlc73a";
   };
 
   propagatedBuildInputs = [
-    click click-log pure-pcapy3 pyserial pyserial-asyncio voluptuous zigpy
+    click click-log pure-pcapy3 pyserial-asyncio voluptuous zigpy
   ];
 
   checkInputs = [
-    asynctest pytest pytest-asyncio
+    asynctest
+    pytestCheckHook
+    pytest-asyncio
   ];
 
   prePatch = ''
diff --git a/pkgs/development/python-modules/bidict/default.nix b/pkgs/development/python-modules/bidict/default.nix
index 34b9f4cf5ff..dcb684a55e0 100644
--- a/pkgs/development/python-modules/bidict/default.nix
+++ b/pkgs/development/python-modules/bidict/default.nix
@@ -3,7 +3,7 @@
 , sphinx
 , hypothesis
 , py
-, pytest
+, pytestCheckHook
 , pytest-benchmark
 , sortedcollections
 , sortedcontainers
@@ -23,23 +23,14 @@ buildPythonPackage rec {
   nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ sphinx ];
 
-  # this can be removed >0.19.0
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "setuptools_scm < 4" "setuptools_scm"
-  '';
-
   checkInputs = [
     hypothesis
     py
-    pytest
+    pytestCheckHook
     pytest-benchmark
     sortedcollections
     sortedcontainers
   ];
-  checkPhase = ''
-    pytest tests
-  '';
 
   meta = with lib; {
     homepage = "https://github.com/jab/bidict";
diff --git a/pkgs/development/python-modules/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix
index 771753fdbb9..92972470f1c 100644
--- a/pkgs/development/python-modules/boto3/default.nix
+++ b/pkgs/development/python-modules/boto3/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname =  "boto3";
-  version = "1.16.56"; # N.B: if you change this, change botocore too
+  version = "1.16.57"; # N.B: if you change this, change botocore too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-RxUe1XHDFkWPSTHNJCKZW6DJ9oGMXffXX0n8hFII5C4=";
+    sha256 = "sha256-SkmcwvU91VeojG22pVJ0iiq9g//tpwzrcdyNs5oCcxQ=";
   };
 
   propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix
index 831a546014b..a17e6c728cf 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.19.56"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.19.57"; # N.B: if you change this, change boto3 and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-AUluTCwGqreWifLDRaDizOtf4dp4WKfn3xibz5dwMiM=";
+    sha256 = "sha256-x1bWX/qYnFwOkheBdeQav3sYrRmy/i6C4ZLwheJk4Do=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/catboost/default.nix b/pkgs/development/python-modules/catboost/default.nix
new file mode 100644
index 00000000000..8c5184240f6
--- /dev/null
+++ b/pkgs/development/python-modules/catboost/default.nix
@@ -0,0 +1,56 @@
+{ buildPythonPackage, fetchFromGitHub, fetchpatch, lib, pythonOlder
+, clang_7, python2
+, graphviz, matplotlib, numpy, pandas, plotly, scipy, six
+, withCuda ? false, cudatoolkit }:
+
+buildPythonPackage rec {
+  pname = "catboost";
+  version = "0.24.4";
+
+  disabled = pythonOlder "3.4";
+
+  src = fetchFromGitHub {
+    owner = "catboost";
+    repo = "catboost";
+    rev = "v${version}";
+    sha256 = "sha256-pzmwEiKziB4ldnKgeCsP2HdnisX8sOkLssAzNfcSEx8=";
+  };
+
+  nativeBuildInputs = [ clang_7 python2 ];
+
+  propagatedBuildInputs = [ graphviz matplotlib numpy pandas scipy plotly six ]
+    ++ lib.optional withCuda [ cudatoolkit ];
+
+  patches = [
+    ./nix-support.patch
+    (fetchpatch {
+      name = "format.patch";
+      url = "https://github.com/catboost/catboost/pull/1528/commits/a692ba42e5c0f62e5da82b2f6fccfa77deb3419c.patch";
+      sha256 = "sha256-fNGucHxsSDFRLk3hFH7rm+zzTdDpY9/QjRs8K+AzVvo=";
+    })
+  ];
+
+  preBuild = ''
+    cd catboost/python-package
+    '';
+  setupPyBuildFlags = [ "--with-ymake=no" ];
+  CUDA_ROOT = lib.optional withCuda cudatoolkit;
+  enableParallelBuilding = true;
+
+  # Tests use custom "ya" tool, not yet supported.
+  dontUseSetuptoolsCheck = true;
+  pythonImportsCheck = [ "catboost" ];
+
+  meta = with lib; {
+    description = "High-performance library for gradient boosting on decision trees.";
+    longDescription = ''
+      A fast, scalable, high performance Gradient Boosting on Decision Trees
+      library, used for ranking, classification, regression and other machine
+      learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU.
+    '';
+    license = licenses.asl20;
+    platforms = [ "x86_64-linux" ];
+    homepage = "https://catboost.ai";
+    maintainers = with maintainers; [ PlushBeaver ];
+  };
+}
diff --git a/pkgs/development/python-modules/catboost/nix-support.patch b/pkgs/development/python-modules/catboost/nix-support.patch
new file mode 100644
index 00000000000..feaf97d5707
--- /dev/null
+++ b/pkgs/development/python-modules/catboost/nix-support.patch
@@ -0,0 +1,181 @@
+diff --git a/catboost/python-package/setup.py b/catboost/python-package/setup.py
+index 17f1d8ff14..07da618cd1 100644
+--- a/catboost/python-package/setup.py
++++ b/catboost/python-package/setup.py
+@@ -80,7 +80,7 @@ class Helper(object):
+         self.with_cuda = os.environ.get('CUDA_PATH') or os.environ.get('CUDA_ROOT') or None
+         self.os_sdk = 'local'
+         self.with_ymake = True
+-        self.parallel = None
++        self.parallel = os.environ.get('NIX_BUILD_CORES') or None
+ 
+     def finalize_options(self):
+         if os.path.exists(str(self.with_cuda)):
+@@ -222,11 +222,12 @@ class build_ext(_build_ext):
+ 
+     def build_with_make(self, topsrc_dir, build_dir, catboost_ext, put_dir, verbose, dry_run):
+         logging.info('Buildling {} with gnu make'.format(catboost_ext))
+-        makefile = 'python{}.{}CLANG50-LINUX-X86_64.makefile'.format(python_version()[0], 'CUDA.' if self.with_cuda else '')
++        makefile = 'python{}.{}CLANG7-LINUX-X86_64.makefile'.format(python_version()[0], 'CUDA.' if self.with_cuda else '')
+         make_cmd = [
+             'make', '-f', '../../make/' + makefile,
+-            'CC=clang-5.0',
+-            'CXX=clang++-5.0',
++            'CC=clang',
++            'CXX=clang++',
++            'PYTHON=python2',
+             'BUILD_ROOT=' + build_dir,
+             'SOURCE_ROOT=' + topsrc_dir,
+         ]
+diff --git a/make/python2.CLANG7-LINUX-X86_64.makefile b/make/python2.CLANG7-LINUX-X86_64.makefile
+index e54b7078e8..fb7b208af9 100644
+--- a/make/python2.CLANG7-LINUX-X86_64.makefile
++++ b/make/python2.CLANG7-LINUX-X86_64.makefile
+@@ -4,33 +4,6 @@ BUILD_ROOT = $(shell pwd)
+ SOURCE_ROOT = $(shell pwd)
+ PYTHON = $(shell which python)
+ 
+-ifneq ($(MAKECMDGOALS),help)
+-define _CC_TEST
+-__clang_major__ __clang_minor__
+-endef
+-
+-_CC_VERSION = $(shell echo '$(_CC_TEST)' | $(CC) -E -P -)
+-$(info _CC_VERSION = '$(_CC_VERSION)')
+-
+-ifneq '$(_CC_VERSION)' '7 0'
+-    $(error clang 7.0 is required)
+-endif
+-endif
+-
+-ifneq ($(MAKECMDGOALS),help)
+-define _CXX_TEST
+-__clang_major__ __clang_minor__
+-endef
+-
+-_CXX_VERSION = $(shell echo '$(_CXX_TEST)' | $(CXX) -E -P -)
+-$(info _CXX_VERSION = '$(_CXX_VERSION)')
+-
+-ifneq '$(_CXX_VERSION)' '7 0'
+-    $(error clang 7.0 is required)
+-endif
+-endif
+-
+-
+ all\
+         ::\
+         $(BUILD_ROOT)/catboost/python-package/catboost/_catboost.so\
+diff --git a/make/python2.CUDA.CLANG7-LINUX-X86_64.makefile b/make/python2.CUDA.CLANG7-LINUX-X86_64.makefile
+index 2a22a79b25..522fb54a7c 100644
+--- a/make/python2.CUDA.CLANG7-LINUX-X86_64.makefile
++++ b/make/python2.CUDA.CLANG7-LINUX-X86_64.makefile
+@@ -4,33 +4,6 @@ BUILD_ROOT = $(shell pwd)
+ SOURCE_ROOT = $(shell pwd)
+ PYTHON = $(shell which python)
+ 
+-ifneq ($(MAKECMDGOALS),help)
+-define _CC_TEST
+-__clang_major__ __clang_minor__
+-endef
+-
+-_CC_VERSION = $(shell echo '$(_CC_TEST)' | $(CC) -E -P -)
+-$(info _CC_VERSION = '$(_CC_VERSION)')
+-
+-ifneq '$(_CC_VERSION)' '7 0'
+-    $(error clang 7.0 is required)
+-endif
+-endif
+-
+-ifneq ($(MAKECMDGOALS),help)
+-define _CXX_TEST
+-__clang_major__ __clang_minor__
+-endef
+-
+-_CXX_VERSION = $(shell echo '$(_CXX_TEST)' | $(CXX) -E -P -)
+-$(info _CXX_VERSION = '$(_CXX_VERSION)')
+-
+-ifneq '$(_CXX_VERSION)' '7 0'
+-    $(error clang 7.0 is required)
+-endif
+-endif
+-
+-
+ all\
+         ::\
+         $(BUILD_ROOT)/catboost/python-package/catboost/_catboost.so\
+diff --git a/make/python3.CLANG7-LINUX-X86_64.makefile b/make/python3.CLANG7-LINUX-X86_64.makefile
+index fee6750bcb..dc55908371 100644
+--- a/make/python3.CLANG7-LINUX-X86_64.makefile
++++ b/make/python3.CLANG7-LINUX-X86_64.makefile
+@@ -4,33 +4,6 @@ BUILD_ROOT = $(shell pwd)
+ SOURCE_ROOT = $(shell pwd)
+ PYTHON = $(shell which python)
+ 
+-ifneq ($(MAKECMDGOALS),help)
+-define _CC_TEST
+-__clang_major__ __clang_minor__
+-endef
+-
+-_CC_VERSION = $(shell echo '$(_CC_TEST)' | $(CC) -E -P -)
+-$(info _CC_VERSION = '$(_CC_VERSION)')
+-
+-ifneq '$(_CC_VERSION)' '7 0'
+-    $(error clang 7.0 is required)
+-endif
+-endif
+-
+-ifneq ($(MAKECMDGOALS),help)
+-define _CXX_TEST
+-__clang_major__ __clang_minor__
+-endef
+-
+-_CXX_VERSION = $(shell echo '$(_CXX_TEST)' | $(CXX) -E -P -)
+-$(info _CXX_VERSION = '$(_CXX_VERSION)')
+-
+-ifneq '$(_CXX_VERSION)' '7 0'
+-    $(error clang 7.0 is required)
+-endif
+-endif
+-
+-
+ all\
+         ::\
+         $(BUILD_ROOT)/catboost/python-package/catboost/_catboost.so\
+diff --git a/make/python3.CUDA.CLANG7-LINUX-X86_64.makefile b/make/python3.CUDA.CLANG7-LINUX-X86_64.makefile
+index 5146830476..ff8535b03e 100644
+--- a/make/python3.CUDA.CLANG7-LINUX-X86_64.makefile
++++ b/make/python3.CUDA.CLANG7-LINUX-X86_64.makefile
+@@ -4,33 +4,6 @@ BUILD_ROOT = $(shell pwd)
+ SOURCE_ROOT = $(shell pwd)
+ PYTHON = $(shell which python)
+ 
+-ifneq ($(MAKECMDGOALS),help)
+-define _CC_TEST
+-__clang_major__ __clang_minor__
+-endef
+-
+-_CC_VERSION = $(shell echo '$(_CC_TEST)' | $(CC) -E -P -)
+-$(info _CC_VERSION = '$(_CC_VERSION)')
+-
+-ifneq '$(_CC_VERSION)' '7 0'
+-    $(error clang 7.0 is required)
+-endif
+-endif
+-
+-ifneq ($(MAKECMDGOALS),help)
+-define _CXX_TEST
+-__clang_major__ __clang_minor__
+-endef
+-
+-_CXX_VERSION = $(shell echo '$(_CXX_TEST)' | $(CXX) -E -P -)
+-$(info _CXX_VERSION = '$(_CXX_VERSION)')
+-
+-ifneq '$(_CXX_VERSION)' '7 0'
+-    $(error clang 7.0 is required)
+-endif
+-endif
+-
+-
+ all\
+         ::\
+         $(BUILD_ROOT)/catboost/python-package/catboost/_catboost.so\
diff --git a/pkgs/development/python-modules/crccheck/default.nix b/pkgs/development/python-modules/crccheck/default.nix
index 1ddf2a2ba68..8dc03801285 100644
--- a/pkgs/development/python-modules/crccheck/default.nix
+++ b/pkgs/development/python-modules/crccheck/default.nix
@@ -1,21 +1,24 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k
 , nose }:
 
-buildPythonPackage rec {
+let
   pname = "crccheck";
-  version = "0.6";
+  version = "1.0";
+in buildPythonPackage {
+  inherit pname version;
 
-  buildInputs = [ nose ];
+  checkInputs = [ nose ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ckymm6s5kw08i1j35fy2cfha1hyq94pq1kc66brb552qgjs91jn";
-    extension = "zip";
+    sha256 = "1ay9lgy80j7lklm07iw2wq7giwnv9fbv50mncblqlc39y322vi0p";
   };
 
+  disabled = !isPy3k;
+
   meta = with lib; {
     description = "Python library for CRCs and checksums";
-    homepage = "https://bitbucket.org/martin_scharrer/crccheck";
+    homepage = "https://sourceforge.net/projects/crccheck/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ etu ];
     platforms = platforms.linux;
diff --git a/pkgs/development/python-modules/git-annex-adapter/default.nix b/pkgs/development/python-modules/git-annex-adapter/default.nix
index 1c76e5622b8..5922377ab3a 100644
--- a/pkgs/development/python-modules/git-annex-adapter/default.nix
+++ b/pkgs/development/python-modules/git-annex-adapter/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, buildPythonPackage, isPy3k, fetchFromGitHub, substituteAll
+{ lib, stdenv, buildPythonPackage, isPy3k, fetchFromGitHub, fetchpatch, substituteAll
 , python, util-linux, pygit2, gitMinimal, git-annex, cacert
 }:
 
@@ -17,6 +17,11 @@ buildPythonPackage rec {
   };
 
   patches = [
+    # fix tests with recent versions of git-annex
+    (fetchpatch {
+      url = "https://github.com/alpernebbi/git-annex-adapter/commit/6c210d828e8a57b12c716339ad1bf15c31cd4a55.patch";
+      sha256 = "17kp7pnm9svq9av4q7hfic95xa1w3z02dnr8nmg14sjck2rlmqsi";
+    })
     (substituteAll {
       src = ./git-annex-path.patch;
       gitAnnex = "${git-annex}/bin/git-annex";
diff --git a/pkgs/development/python-modules/google-music/default.nix b/pkgs/development/python-modules/google-music/default.nix
index e5b42c5310f..90978ad2cba 100644
--- a/pkgs/development/python-modules/google-music/default.nix
+++ b/pkgs/development/python-modules/google-music/default.nix
@@ -19,11 +19,6 @@ buildPythonPackage rec {
     sha256 = "0fsp491ifsw0i1r98l8xr41m8d00nw9n5bin8k3laqzq1p65d6dp";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "audio-metadata>=0.8,<0.9" "audio-metadata"
-  '';
-
   propagatedBuildInputs = [
     appdirs
     audio-metadata
diff --git a/pkgs/development/python-modules/graphviz/default.nix b/pkgs/development/python-modules/graphviz/default.nix
index f531c547f9c..1a0e6d903a4 100644
--- a/pkgs/development/python-modules/graphviz/default.nix
+++ b/pkgs/development/python-modules/graphviz/default.nix
@@ -6,21 +6,21 @@
 , makeFontsConf
 , freefont_ttf
 , mock
-, pytest
+, pytestCheckHook
 , pytest-mock
 , pytestcov
 }:
 
 buildPythonPackage rec {
   pname = "graphviz";
-  version = "0.14.1";
+  version = "0.16";
 
   # patch does not apply to PyPI tarball due to different line endings
   src = fetchFromGitHub {
     owner = "xflr6";
     repo = "graphviz";
     rev = version;
-    sha256 = "02bdiac5x93f2mjw5kpgs6kv81hzg07y0mw1nxvhyg8aignzmh3c";
+    sha256 = "147vi60mi57z623lhllwwzczzicv2iwj1yrmllj5xx5788i73j6g";
   };
 
   patches = [
@@ -35,11 +35,7 @@ buildPythonPackage rec {
     fontDirectories = [ freefont_ttf ];
   };
 
-  checkInputs = [ mock pytest pytest-mock pytestcov ];
-
-  checkPhase = ''
-    pytest
-  '';
+  checkInputs = [ mock pytestCheckHook pytest-mock pytestcov ];
 
   meta = with lib; {
     description = "Simple Python interface for Graphviz";
diff --git a/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch b/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch
index d6da1ff47ce..fa2f634bbc2 100644
--- a/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch
+++ b/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch
@@ -1,19 +1,28 @@
 diff --git a/graphviz/backend.py b/graphviz/backend.py
-index 6f4cc0c..bc4781e 100644
+index d2c4b97..f7175cd 100644
 --- a/graphviz/backend.py
 +++ b/graphviz/backend.py
 @@ -122,7 +122,7 @@ def command(engine, format_, filepath=None, renderer=None, formatter=None):
          raise ValueError('unknown formatter: %r' % formatter)
  
      output_format = [f for f in (format_, renderer, formatter) if f is not None]
--    cmd = [engine, '-T%s' % ':'.join(output_format)]
-+    cmd = [os.path.join('@graphviz@/bin', engine), '-T%s' % ':'.join(output_format)]
+-    cmd = ['dot', '-K%s' % engine, '-T%s' % ':'.join(output_format)]
++    cmd = ['@graphviz@/bin/dot', '-K%s' % engine, '-T%s' % ':'.join(output_format)]
  
      if filepath is None:
          rendered = None
-@@ -255,7 +255,7 @@ def version():
-         subprocess.CalledProcessError: If the exit status is non-zero.
-         RuntimmeError: If the output cannot be parsed into a version number.
+@@ -275,7 +275,7 @@ def unflatten(source,
+     if fanout and stagger is None:
+         raise RequiredArgumentError('fanout given without stagger')
+ 
+-    cmd = ['unflatten']
++    cmd = ['@graphviz@/bin/unflatten']
+     if stagger is not None:
+         cmd += ['-l', str(stagger)]
+     if fanout:
+@@ -304,7 +304,7 @@ def version():
+         Graphviz Release version entry format
+         https://gitlab.com/graphviz/graphviz/-/blob/f94e91ba819cef51a4b9dcb2d76153684d06a913/gen_version.py#L17-20
      """
 -    cmd = ['dot', '-V']
 +    cmd = ['@graphviz@/bin/dot', '-V']
@@ -21,10 +30,10 @@ index 6f4cc0c..bc4781e 100644
                   stdout=subprocess.PIPE,
                   stderr=subprocess.STDOUT)
 diff --git a/tests/test_backend.py b/tests/test_backend.py
-index 9f307f5..e43bf5b 100644
+index d10ef1a..e4aba58 100644
 --- a/tests/test_backend.py
 +++ b/tests/test_backend.py
-@@ -50,7 +50,7 @@ def test_run_encoding_mocked(mocker, Popen, input=u'sp\xe4m', encoding='utf-8'):
+@@ -52,7 +52,7 @@ def test_run_encoding_mocked(mocker, Popen, input=u'sp\xe4m', encoding='utf-8'):
          m.decode.assert_called_once_with(encoding)
  
  
@@ -33,34 +42,43 @@ index 9f307f5..e43bf5b 100644
  @pytest.mark.usefixtures('empty_path')
  @pytest.mark.parametrize('func, args', [
      (render, ['dot', 'pdf', 'nonfilepath']),
-@@ -143,7 +143,7 @@ def test_render_mocked(capsys, mocker, Popen, quiet):  # noqa: N803
+@@ -146,7 +146,7 @@ def test_render_mocked(capsys, mocker, Popen, quiet):  # noqa: N803
  
      assert render('dot', 'pdf', 'nonfilepath', quiet=quiet) == 'nonfilepath.pdf'
  
--    Popen.assert_called_once_with(['dot', '-Tpdf', '-O', 'nonfilepath'],
-+    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Tpdf', '-O', 'nonfilepath'],
+-    Popen.assert_called_once_with(['dot', '-Kdot', '-Tpdf', '-O', 'nonfilepath'],
++    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Kdot', '-Tpdf', '-O', 'nonfilepath'],
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.PIPE,
                                    cwd=None, startupinfo=mocker.ANY)
-@@ -201,7 +201,7 @@ def test_pipe_pipe_invalid_data_mocked(mocker, py2, Popen, quiet):  # noqa: N803
+@@ -208,7 +208,7 @@ def test_pipe_pipe_invalid_data_mocked(mocker, py2, Popen, quiet):  # noqa: N803
      assert e.value.stdout is mocker.sentinel.out
      e.value.stdout = mocker.sentinel.new_stdout
      assert e.value.stdout is mocker.sentinel.new_stdout
--    Popen.assert_called_once_with(['dot', '-Tpng'],
-+    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Tpng'],
+-    Popen.assert_called_once_with(['dot', '-Kdot', '-Tpng'],
++    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Kdot', '-Tpng'],
                                    stdin=subprocess.PIPE,
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.PIPE,
-@@ -224,7 +224,7 @@ def test_pipe_mocked(capsys, mocker, Popen, quiet):  # noqa: N803
+@@ -231,7 +231,7 @@ def test_pipe_mocked(capsys, mocker, Popen, quiet):  # noqa: N803
  
      assert pipe('dot', 'png', b'nongraph', quiet=quiet) is mocker.sentinel.out
  
--    Popen.assert_called_once_with(['dot', '-Tpng'],
-+    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Tpng'],
+-    Popen.assert_called_once_with(['dot', '-Kdot', '-Tpng'],
++    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Kdot', '-Tpng'],
+                                   stdin=subprocess.PIPE,
+                                   stdout=subprocess.PIPE,
+                                   stderr=subprocess.PIPE,
+@@ -259,7 +259,7 @@ def test_unflatten_mocked(capsys, mocker, Popen):
+     proc.communicate.return_value = (b'nonresult', b'')
+ 
+     assert unflatten('nonsource') == 'nonresult'
+-    Popen.assert_called_once_with(['unflatten'],
++    Popen.assert_called_once_with(['@graphviz@/bin/unflatten'],
                                    stdin=subprocess.PIPE,
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.PIPE,
-@@ -250,7 +250,7 @@ def test_version_parsefail_mocked(mocker, Popen):  # noqa: N803
+@@ -290,7 +290,7 @@ def test_version_parsefail_mocked(mocker, Popen):  # noqa: N803
      with pytest.raises(RuntimeError, match=r'nonversioninfo'):
          version()
  
@@ -69,7 +87,7 @@ index 9f307f5..e43bf5b 100644
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.STDOUT,
                                    startupinfo=mocker.ANY)
-@@ -269,7 +269,7 @@ def test_version_mocked(mocker, Popen, stdout, expected):  # noqa: N803
+@@ -312,7 +312,7 @@ def test_version_mocked(mocker, Popen, stdout, expected):  # noqa: N803
  
      assert version() == expected
  
diff --git a/pkgs/development/python-modules/ldaptor/default.nix b/pkgs/development/python-modules/ldaptor/default.nix
index 2a4550d6b42..e3694bffe37 100644
--- a/pkgs/development/python-modules/ldaptor/default.nix
+++ b/pkgs/development/python-modules/ldaptor/default.nix
@@ -3,12 +3,13 @@
 , fetchPypi
 , twisted
 , passlib
-, pycrypto
 , pyopenssl
 , pyparsing
 , service-identity
 , zope_interface
 , isPy3k
+, pythonAtLeast
+, python
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,15 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    twisted passlib pycrypto pyopenssl pyparsing service-identity zope_interface
+    twisted passlib pyopenssl pyparsing service-identity zope_interface
   ];
 
-  disabled = isPy3k;
+  # https://github.com/twisted/ldaptor/pull/210
+  disabled = !isPy3k || pythonAtLeast "3.9";
 
-  # TypeError: None is neither bytes nor unicode
-  doCheck = false;
+  checkPhase = ''
+    ${python.interpreter} -m twisted.trial ldaptor
+  '';
 
   meta = {
     description = "A Pure-Python Twisted library for LDAP";
diff --git a/pkgs/development/python-modules/mxnet/default.nix b/pkgs/development/python-modules/mxnet/default.nix
index 65eb2d44ffc..d32905e7e61 100644
--- a/pkgs/development/python-modules/mxnet/default.nix
+++ b/pkgs/development/python-modules/mxnet/default.nix
@@ -20,9 +20,7 @@ buildPythonPackage {
 
   postPatch = ''
     substituteInPlace python/setup.py \
-      --replace "graphviz<0.9.0," "graphviz" \
-      --replace "numpy<=1.15.2," "numpy" \
-      --replace "requests<2.19.0," "requests"
+      --replace "graphviz<0.9.0," "graphviz"
   '';
 
   preConfigure = ''
diff --git a/pkgs/development/python-modules/privacyidea/ldap-proxy.nix b/pkgs/development/python-modules/privacyidea/ldap-proxy.nix
index ec87186a4fd..25a81510c7d 100644
--- a/pkgs/development/python-modules/privacyidea/ldap-proxy.nix
+++ b/pkgs/development/python-modules/privacyidea/ldap-proxy.nix
@@ -1,9 +1,12 @@
-{ lib, buildPythonPackage, fetchFromGitHub, twisted, ldaptor, configobj }:
+{ lib, buildPythonPackage, isPy3k, fetchFromGitHub, twisted, ldaptor, configobj }:
 
 buildPythonPackage rec {
   pname = "privacyidea-ldap-proxy";
   version = "0.6.1";
 
+  # https://github.com/privacyidea/privacyidea-ldap-proxy/issues/50
+  disabled = isPy3k;
+
   src = fetchFromGitHub {
     owner = "privacyidea";
     repo = pname;
diff --git a/pkgs/development/python-modules/prov/default.nix b/pkgs/development/python-modules/prov/default.nix
index fba5a41389c..9ab4cbf72bd 100644
--- a/pkgs/development/python-modules/prov/default.nix
+++ b/pkgs/development/python-modules/prov/default.nix
@@ -4,11 +4,8 @@
 , lxml
 , networkx
 , dateutil
-, six
-, pydotplus
 , rdflib
 , pydot
-, glibcLocales
 }:
 
 buildPythonPackage rec {
@@ -20,28 +17,17 @@ buildPythonPackage rec {
     sha256 = "b6438f2195ecb9f6e8279b58971e02bc51814599b5d5383366eef91d867422ee";
   };
 
-  prePatch = ''
-    substituteInPlace setup.py --replace "six==1.10.0" "six>=1.10.0"
-  '';
-
   propagatedBuildInputs = [
     lxml
     networkx
     dateutil
-    six
-    pydotplus
     rdflib
   ];
 
   checkInputs = [
     pydot
-    glibcLocales
   ];
 
-  preCheck = ''
-    export LC_ALL="en_US.utf-8"
-  '';
-
   meta = with lib; {
     description = "A Python library for W3C Provenance Data Model (PROV)";
     homepage = "https://github.com/trungdong/prov";
diff --git a/pkgs/development/python-modules/pydotplus/default.nix b/pkgs/development/python-modules/pydotplus/default.nix
deleted file mode 100644
index f794a150ec1..00000000000
--- a/pkgs/development/python-modules/pydotplus/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, stdenv
-, buildPythonPackage
-, fetchPypi
-, pyparsing
-, graphviz
-}:
-
-buildPythonPackage rec {
-  pname = "pydotplus";
-  version = "2.0.2";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1i05cnk3yh722fdyaq0asr7z9xf7v7ikbmnpxa8j6pdqx6g5xs4i";
-  };
-
-  propagatedBuildInputs = [
-    pyparsing
-    graphviz
-  ];
-
-  meta = with lib; {
-    homepage = "https://github.com/erocarrera/pydot";
-    description = "An improved version of the old pydot project that provides a Python Interface to Graphviz’s Dot language";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ashgillman ];
-  };
-}
diff --git a/pkgs/development/python-modules/pytest-instafail/default.nix b/pkgs/development/python-modules/pytest-instafail/default.nix
new file mode 100644
index 00000000000..f9942dd5bcd
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-instafail/default.nix
@@ -0,0 +1,24 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-instafail";
+  version = "0.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "10lpr6mjcinabqynj6v85bvb1xmapnhqmg50nys1r6hg7zgky9qr";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "pytest_instafail" ];
+  meta = {
+    description = "pytest plugin that shows failures and errors instantly instead of waiting until the end of test session";
+    homepage = "https://github.com/pytest-dev/pytest-instafail";
+    license = lib.licenses.bsd3;
+    maintainers = [ lib.maintainers.jacg ];
+  };
+}
diff --git a/pkgs/development/python-modules/sortedcollections/default.nix b/pkgs/development/python-modules/sortedcollections/default.nix
index 7bdeeffc086..9f9f99a1856 100644
--- a/pkgs/development/python-modules/sortedcollections/default.nix
+++ b/pkgs/development/python-modules/sortedcollections/default.nix
@@ -1,24 +1,28 @@
-{ lib, stdenv
+{ lib
 , buildPythonPackage
 , fetchFromGitHub
+, pytest-cov
 , pytestCheckHook
 , sortedcontainers
 }:
 
 buildPythonPackage rec {
   pname = "sortedcollections";
-  version = "1.2.3";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "grantjenks";
     repo = "python-sortedcollections";
     rev = "v${version}";
-    sha256 = "06ifkbhkj5fpsafibw0fs7b778g7q0gd03crvbjk04k0f3wjxc5z";
+    sha256 = "sha256-GkZO8afUAgDpDjIa3dhO6nxykqrljeKldunKMODSXfg=";
   };
 
   propagatedBuildInputs = [ sortedcontainers ];
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [
+    pytest-cov
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [ "sortedcollections" ];
 
diff --git a/pkgs/development/python-modules/spyder/default.nix b/pkgs/development/python-modules/spyder/default.nix
index de1b8123dd9..26013e71158 100644
--- a/pkgs/development/python-modules/spyder/default.nix
+++ b/pkgs/development/python-modules/spyder/default.nix
@@ -44,8 +44,7 @@ buildPythonPackage rec {
     sed -i /pyqtwebengine/d setup.py
     substituteInPlace setup.py \
       --replace "pyqt5<5.13" "pyqt5" \
-      --replace "parso==0.7.0" "parso" \
-      --replace "jedi==0.17.1" "jedi"
+      --replace "parso==0.7.0" "parso"
   '';
 
   postInstall = ''
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index 4c64d1693fa..e79504bdaab 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -263,6 +263,7 @@ let
     gmp = [ pkgs.gmp.dev ];
     graphscan = [ pkgs.gsl_1 ];
     gsl = [ pkgs.gsl_1 ];
+    gert = [ pkgs.libgit2 ];
     haven = [ pkgs.libiconv pkgs.zlib.dev ];
     h5vc = [ pkgs.zlib.dev ];
     HiCseg = [ pkgs.gsl_1 ];
diff --git a/pkgs/games/0ad/default.nix b/pkgs/games/0ad/default.nix
index d53942766bb..860db7c6d5a 100644
--- a/pkgs/games/0ad/default.nix
+++ b/pkgs/games/0ad/default.nix
@@ -1,14 +1,14 @@
-{ wxGTK, newScope }:
-
+{ wxGTK, stdenv, newScope }:
 let
   callPackage = newScope self;
 
   self = {
-    zeroad-unwrapped = callPackage ./game.nix { inherit wxGTK; };
+    zeroad-unwrapped = callPackage ./game.nix { inherit wxGTK stdenv; };
 
-    zeroad-data = callPackage ./data.nix { };
+    zeroad-data = callPackage ./data.nix { inherit stdenv; };
 
     zeroad = callPackage ./wrapper.nix { };
   };
 
-in self
+in
+self
diff --git a/pkgs/games/0ad/game.nix b/pkgs/games/0ad/game.nix
index ae0b2180a80..1ba975aa885 100644
--- a/pkgs/games/0ad/game.nix
+++ b/pkgs/games/0ad/game.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
     # Workaround invalid pkg-config name for mozjs
     mkdir pkg-config
     ln -s ${spidermonkey_38}/lib/pkgconfig/* pkg-config/mozjs-38.pc
-    PKG_CONFIG_PATH="$PWD/pkgconfig:$PKG_CONFIG_PATH"
+    PKG_CONFIG_PATH="$PWD/pkg-config:$PKG_CONFIG_PATH"
 
     # Update Makefiles
     pushd build/workspaces
diff --git a/pkgs/games/alephone/marathon/default.nix b/pkgs/games/alephone/marathon/default.nix
index 1d0787067af..4518215a337 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 = "20190331";
+  version = "20200904";
   icon = alephone.icons + "/marathon.png";
 
   zip = fetchurl {
     url =
       "https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${version}/Marathon-${version}-Data.zip";
-    sha256 = "1d18a7hn8s50rqcs9i72ak5fq5a76hwk7nylfinrxjb134c9vlpz";
+    sha256 = "sha256-x5M8RkxH+Rn8hUJIIq/AFC5Ibn0zF95BqZIDEwM6wVg=";
   };
 
   meta = {
diff --git a/pkgs/games/shattered-pixel-dungeon/default.nix b/pkgs/games/shattered-pixel-dungeon/default.nix
index f8aa4397dda..e9186fbf5b7 100644
--- a/pkgs/games/shattered-pixel-dungeon/default.nix
+++ b/pkgs/games/shattered-pixel-dungeon/default.nix
@@ -10,13 +10,13 @@
 
 let
   pname = "shattered-pixel-dungeon";
-  version = "0.8.2d";
+  version = "0.9.1d";
 
   src = fetchFromGitHub {
     owner = "00-Evan";
     repo = "shattered-pixel-dungeon";
     rev = "v${version}";
-    sha256 = "11lgalam1aacw01ar7nawiim4pbxqzrdrnxvj6wq9mg83hgsz65l";
+    sha256 = "0f9vi1iffh477zi03hi07rmfbkb8i4chwvv43vs70mgjh4qx7247";
   };
 
   postPatch = ''
@@ -34,6 +34,8 @@ let
     nativeBuildInputs = [ gradle_5 perl ];
     buildPhase = ''
       export GRADLE_USER_HOME=$(mktemp -d)
+      # https://github.com/gradle/gradle/issues/4426
+      ${stdenv.lib.optionalString stdenv.isDarwin "export TERM=dumb"}
       gradle --no-daemon desktop:release
     '';
     # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
@@ -54,6 +56,8 @@ in stdenv.mkDerivation rec {
 
   buildPhase = ''
     export GRADLE_USER_HOME=$(mktemp -d)
+    # https://github.com/gradle/gradle/issues/4426
+    ${stdenv.lib.optionalString stdenv.isDarwin "export TERM=dumb"}
     # point to offline repo
     sed -ie "s#repositories {#repositories { maven { url '${deps}' };#g" build.gradle
     gradle --offline --no-daemon desktop:release
@@ -78,6 +82,8 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
+    # https://github.com/NixOS/nixpkgs/pull/99885#issuecomment-740065005
+    broken = stdenv.isDarwin;
   };
 }
 
diff --git a/pkgs/misc/emulators/mednaffe/default.nix b/pkgs/misc/emulators/mednaffe/default.nix
index e8cda5170cc..dbbbe4da557 100644
--- a/pkgs/misc/emulators/mednaffe/default.nix
+++ b/pkgs/misc/emulators/mednaffe/default.nix
@@ -1,7 +1,13 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, autoreconfHook, pkg-config, wrapGAppsHook
-, gtk2 ? null, gtk3 ? null, mednafen }:
-
-with lib;
+{ stdenv
+, lib
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, mednafen
+, gtk2 ? null
+, gtk3 ? null
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "mednaffe";
@@ -14,13 +20,20 @@ stdenv.mkDerivation rec {
     sha256 = "15qk3a3l1phr8bap2ayh3c0vyvw2jwhny1iz1ajq2adyjpm9fhr7";
   };
 
-  nativeBuildInputs = [ autoreconfHook makeWrapper pkg-config wrapGAppsHook ];
+  nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ];
   buildInputs = [ gtk2 gtk3 mednafen ];
 
-  configureFlags = [ (enableFeature (gtk3 != null) "gtk3") ];
-  postInstall = "wrapProgram $out/bin/mednaffe --set PATH ${mednafen}/bin";
+  configureFlags = [ (lib.enableFeature (gtk3 != null) "gtk3") ];
+
+  dontWrapGApps = true;
+
+  postInstall = ''
+    wrapProgram $out/bin/mednaffe \
+      --prefix PATH ':' "${mednafen}/bin" \
+      "''${gappsWrapperArgs[@]}"
+   '';
 
-  meta = {
+  meta = with lib; {
     description = "GTK-based frontend for mednafen emulator";
     homepage = "https://github.com/AmatCoder/mednaffe";
     license = licenses.gpl3Plus;
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index 8ebf6cf6a5d..5e0121440b1 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -3912,6 +3912,19 @@ let
     meta.homepage = "https://github.com/nvim-telescope/telescope-fzf-writer.nvim/";
   };
 
+  telescope-fzy-native-nvim = buildVimPluginFrom2Nix {
+     pname = "telescope-fzy-native-nvim";
+     version = "2021-01-02";
+     src = fetchFromGitHub {
+       owner = "nvim-telescope";
+       repo = "telescope-fzy-native.nvim";
+       rev = "654dffd924b29fb9a9252dcbd63528b1498ac9fb";
+       sha256 = "01x9z3n03qharjw778cxb16gw1dsxzmsxph4xsbfy1avf21c6x9g";
+       fetchSubmodules = true;
+     };
+     meta.homepage = "https://github.com/nvim-telescope/telescope-fzy-native.nvim/";
+   };
+
   telescope-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-nvim";
     version = "2021-01-18";
diff --git a/pkgs/misc/vim-plugins/overrides.nix b/pkgs/misc/vim-plugins/overrides.nix
index 0debd6ba6fc..e4130554ad4 100644
--- a/pkgs/misc/vim-plugins/overrides.nix
+++ b/pkgs/misc/vim-plugins/overrides.nix
@@ -671,6 +671,31 @@ self: super: {
       ln -s ${tabnine}/bin/TabNine $target/binaries/TabNine_$(uname -s)
     '';
   });
+
+  telescope-fzy-native-nvim = super.telescope-fzy-native-nvim.overrideAttrs (old: {
+    preFixup =
+      let
+        fzy-lua-native-path = "deps/fzy-lua-native";
+        fzy-lua-native =
+          stdenv.mkDerivation {
+            name = "fzy-lua-native";
+            src = "${old.src}/${fzy-lua-native-path}";
+            # remove pre-compiled binaries
+            preBuild = "rm -rf static/*";
+            installPhase = ''
+              install -Dm 444 -t $out/static static/*
+              install -Dm 444 -t $out/lua lua/*
+            '';
+          };
+      in
+      ''
+        rm -rf $target/${fzy-lua-native-path}/*
+        ln -s ${fzy-lua-native}/static $target/${fzy-lua-native-path}/static
+        ln -s ${fzy-lua-native}/lua $target/${fzy-lua-native-path}/lua
+      '';
+    meta.platforms = stdenv.lib.platforms.all;
+  });
+
 } // (
   let
     nodePackageNames = [
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index 82695aaa30d..88e3c1e2297 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -407,6 +407,7 @@ nvim-lua/lsp_extensions.nvim
 nvim-lua/plenary.nvim
 nvim-lua/popup.nvim
 nvim-telescope/telescope-fzf-writer.nvim
+nvim-telescope/telescope-fzy-native.nvim
 nvim-telescope/telescope.nvim
 nvim-treesitter/completion-treesitter
 nvim-treesitter/nvim-treesitter
diff --git a/pkgs/misc/vscode-extensions/default.nix b/pkgs/misc/vscode-extensions/default.nix
index ae34596fc71..0b5612483b1 100644
--- a/pkgs/misc/vscode-extensions/default.nix
+++ b/pkgs/misc/vscode-extensions/default.nix
@@ -484,8 +484,8 @@ let
         mktplcRef = {
           name = "metals";
           publisher = "scalameta";
-          version = "1.9.7";
-          sha256 = "0v599yssvk358gxfxnyzzkyk0y5krsbp8n4rkp9wb2ncxqsqladr";
+          version = "1.9.10";
+          sha256 = "1afmqzlw3bl9bv59l9b2jrljhbq8djb7vl8rjv58c5wi7nvm2qab";
         };
         meta = {
           license = lib.licenses.asl20;
diff --git a/pkgs/os-specific/darwin/apple-sdk/default.nix b/pkgs/os-specific/darwin/apple-sdk/default.nix
index 0ba7a1d209e..8a814e9558d 100644
--- a/pkgs/os-specific/darwin/apple-sdk/default.nix
+++ b/pkgs/os-specific/darwin/apple-sdk/default.nix
@@ -1,15 +1,10 @@
 { stdenv, fetchurl, xar, cpio, pkgs, python3, pbzx, lib, darwin-stubs, print-reexports }:
 
-let version = "10.12"; in
-
-# Ensure appleSdkVersion is up to date.
-assert stdenv.isDarwin -> stdenv.appleSdkVersion == version;
-
 let
   # sadly needs to be exported because security_tool needs it
   sdk = stdenv.mkDerivation rec {
     pname = "MacOS_SDK";
-    inherit version;
+    version = "10.12";
 
     # This URL comes from https://swscan.apple.com/content/catalogs/others/index-10.12.merged-1.sucatalog, which we found by:
     #  1. Google: site:swscan.apple.com and look for a name that seems appropriate for your version
diff --git a/pkgs/os-specific/darwin/duti/default.nix b/pkgs/os-specific/darwin/duti/default.nix
index 5c63b8e0dfb..9daed151ce4 100644
--- a/pkgs/os-specific/darwin/duti/default.nix
+++ b/pkgs/os-specific/darwin/duti/default.nix
@@ -1,17 +1,25 @@
-{stdenv, lib, fetchFromGitHub, autoreconfHook, darwin}:
+{stdenv, lib, fetchFromGitHub, autoreconfHook, ApplicationServices}:
 
 stdenv.mkDerivation rec {
   pname = "duti";
-  version = "1.5.4pre";
+  version = "1.5.5pre";
   src = fetchFromGitHub {
     owner = "moretension";
     repo = pname;
-    rev = "7dbcae86f99fedef5a6c4311f032a0f1ca0539cc";
-    sha256 = "1z9sa0yk87vs57d5338y6lvm1v1vvynxb7dy1x5aqzkcr0imhljl";
+    rev = "fe3d3dc411bcea6af7a8cbe53c0e08ed5ecacdb2";
+    sha256 = "1pg4i6ghpib2gy1sqpml7dbnhr1vbr43fs2pqkd09i4w3nmgpic9";
   };
+
   nativeBuildInputs = [autoreconfHook];
-  buildInputs = [darwin.apple_sdk.frameworks.ApplicationServices];
-  configureFlags = ["--with-macosx-sdk=/homeless-shelter"];
+  buildInputs = [ApplicationServices];
+  configureFlags = [
+    "--with-macosx-sdk=/homeless-shelter"
+
+    # needed to prevent duti from trying to guess our sdk
+    # NOTE: this is different than stdenv.hostPlatform.config!
+    "--host=x86_64-apple-darwin18"
+  ];
+
   meta = with lib; {
     description = "A command-line tool to select default applications for document types and URL schemes on Mac OS X";
     longDescription = ''
diff --git a/pkgs/os-specific/linux/cifs-utils/default.nix b/pkgs/os-specific/linux/cifs-utils/default.nix
index dcffe770dee..c4ed4d4fc0f 100644
--- a/pkgs/os-specific/linux/cifs-utils/default.nix
+++ b/pkgs/os-specific/linux/cifs-utils/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, autoreconfHook, docutils, pkg-config
-, kerberos, keyutils, pam, talloc }:
+, kerberos, keyutils, pam, talloc, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "cifs-utils";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook docutils pkg-config ];
 
-  buildInputs = [ kerberos keyutils pam talloc ];
+  buildInputs = [ kerberos keyutils pam talloc python3 ];
 
   configureFlags = [ "ROOTSBINDIR=$(out)/sbin" ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     # AC_FUNC_MALLOC is broken on cross builds.
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index 629d2c9a086..c75117769d1 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -7,21 +7,21 @@
     },
     "4.19": {
         "extra": ".a",
-        "name": "linux-hardened-4.19.168.a.patch",
-        "sha256": "09s9l5qf44ly41fjs745gh00vf0lkkzymcks44zyzmsznjsxm2xx",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.168.a/linux-hardened-4.19.168.a.patch"
+        "name": "linux-hardened-4.19.169.a.patch",
+        "sha256": "0l3n1yjsa777pdxh4ib7phpfrw7c8vr1xwzgs8khnffllj9f16iq",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.169.a/linux-hardened-4.19.169.a.patch"
     },
     "5.10": {
         "extra": ".a",
-        "name": "linux-hardened-5.10.8.a.patch",
-        "sha256": "1nqn50c6g7j7ljdq7y50y6kgmilc5mb266lg6z6kz0cqpn2qaxxx",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.8.a/linux-hardened-5.10.8.a.patch"
+        "name": "linux-hardened-5.10.9.a.patch",
+        "sha256": "0mkwyknafdbc2hqv4j7jjc6wsrrx6a76d69hxh7x90gi0s3f5rfw",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.9.a/linux-hardened-5.10.9.a.patch"
     },
     "5.4": {
         "extra": ".a",
-        "name": "linux-hardened-5.4.90.a.patch",
-        "sha256": "1x0fkcgsw7q99xa2f97i2cyybwj4kjf6vypbm2bwgl76ghpchydq",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.90.a/linux-hardened-5.4.90.a.patch"
+        "name": "linux-hardened-5.4.91.a.patch",
+        "sha256": "0kqn9g6wh4rp9riwkjmzapmnwk0fd5z18z26j2rqfgq7x4r8d7rm",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.91.a/linux-hardened-5.4.91.a.patch"
     },
     "5.9": {
         "extra": "",
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
index 8ed7ed65b15..bf072e47864 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "4.19.168";
+  version = "4.19.169";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1whkqklqj8rz9lv88aldvwkwnb9xvg0njdbcrk56r7z6f9zkhnmm";
+    sha256 = "156y4ly7qyy5z7sbp2vccrs7za72k3zi2hfjpskqqd6civdlvln7";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.10.nix b/pkgs/os-specific/linux/kernel/linux-5.10.nix
index 5c4afea3a8e..ca6f1eeaf49 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.10.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.10.8";
+  version = "5.10.9";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1v83wm8xbhq1sgn7c84zi7l40vmd9k1gb653b686jp8n4na85z2w";
+    sha256 = "0la7dklpy6xd79fkzavpmlfyrc60kmmwz491msd95dmvv06kwwvz";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix
index e17a56a9357..28a481b2f8a 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.4.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.4.90";
+  version = "5.4.91";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "06pscvxjkpz35y6kbmyzdvn9mm4p7pfg0d49chi1q61z0sy3crv4";
+    sha256 = "05swzh4gb0mk6wzza0k6b0283cygkvj8a2d2b2gab6sb0fxn208f";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
index ed19559f95f..d733f0bdfa4 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "5.10.4-rt22"; # updated by ./update-rt.sh
+  version = "5.10.8-rt24"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -18,14 +18,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "1v2nbpp21c3fkw23dgrrfznnnlvi0538kj8wrlb2m6g94rn3jklh";
+    sha256 = "1v83wm8xbhq1sgn7c84zi7l40vmd9k1gb653b686jp8n4na85z2w";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "1wnp7w3k1z10ipg8vzgyh22lpfya1p3ckabjadk9hadpa1ialma0";
+      sha256 = "06fqwx9flcxzbjr9gb0d7v4hidypzz69r6p2mfzhqh7ii0p89f30";
     };
   }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
 
diff --git a/pkgs/os-specific/linux/lxcfs/default.nix b/pkgs/os-specific/linux/lxcfs/default.nix
index 3503812966e..ab148af72f2 100644
--- a/pkgs/os-specific/linux/lxcfs/default.nix
+++ b/pkgs/os-specific/linux/lxcfs/default.nix
@@ -5,13 +5,13 @@
 with lib;
 stdenv.mkDerivation rec {
   pname = "lxcfs";
-  version = "4.0.6";
+  version = "4.0.7";
 
   src = fetchFromGitHub {
     owner = "lxc";
     repo = "lxcfs";
     rev = "lxcfs-${version}";
-    sha256 = "1fp2q4y3ql4xd2lp4bpcl8s6xryr5xbb56da9d20w2cdr2d0lwyv";
+    sha256 = "sha256-gC1Q+kG/oKfYvuHVKstpRWfL/thsemULrimPrV/eeaI=";
   };
 
   nativeBuildInputs = [ pkg-config help2man autoreconfHook ];
diff --git a/pkgs/os-specific/linux/sysklogd/default.nix b/pkgs/os-specific/linux/sysklogd/default.nix
index 454527321fb..af180b5e524 100644
--- a/pkgs/os-specific/linux/sysklogd/default.nix
+++ b/pkgs/os-specific/linux/sysklogd/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "00f2wy6f0qng7qzga4iicyzl9j8b7mp6mrpfky5jxj93ms2w2rji";
   };
 
-  patches = [ ./systemd.patch ./union-wait.patch ];
+  patches = [ ./systemd.patch ./union-wait.patch ./fix-includes-for-musl.patch ];
 
   NIX_CFLAGS_COMPILE = "-DSYSV";
 
diff --git a/pkgs/os-specific/linux/sysklogd/fix-includes-for-musl.patch b/pkgs/os-specific/linux/sysklogd/fix-includes-for-musl.patch
new file mode 100644
index 00000000000..87e56a10db8
--- /dev/null
+++ b/pkgs/os-specific/linux/sysklogd/fix-includes-for-musl.patch
@@ -0,0 +1,120 @@
+# this patch both fixes some include paths as well as removes glibc
+# gates around defines that musl-libc also depends on.
+diff -u sysklogd-1.5.1.orig/klogd.c sysklogd-1.5.1/klogd.c
+--- sysklogd-1.5.1.orig/klogd.c	2014-10-04 15:47:18.000000000 -0400
++++ sysklogd-1.5.1/klogd.c	2021-01-18 23:09:23.000000000 -0500
+@@ -260,11 +260,8 @@
+ #include <unistd.h>
+ #include <signal.h>
+ #include <errno.h>
+-#include <sys/fcntl.h>
++#include <fcntl.h>
+ #include <sys/stat.h>
+-#if !defined(__GLIBC__)
+-#include <linux/time.h>
+-#endif /* __GLIBC__ */
+ #include <stdarg.h>
+ #include <paths.h>
+ #include <stdlib.h>
+@@ -277,13 +274,8 @@
+ 
+ #define __LIBRARY__
+ #include <linux/unistd.h>
+-#if !defined(__GLIBC__)
+-# define __NR_ksyslog __NR_syslog
+-_syscall3(int,ksyslog,int, type, char *, buf, int, len);
+-#else
+ #include <sys/klog.h>
+ #define ksyslog klogctl
+-#endif
+ 
+ #define LOG_BUFFER_SIZE 4096
+ #define LOG_LINE_LENGTH 1000
+diff -u sysklogd-1.5.1.orig/ksym_mod.c sysklogd-1.5.1/ksym_mod.c
+--- sysklogd-1.5.1.orig/ksym_mod.c	2014-10-04 15:47:18.000000000 -0400
++++ sysklogd-1.5.1/ksym_mod.c	2021-01-18 23:09:57.000000000 -0500
+@@ -113,12 +113,9 @@
+ #include <unistd.h>
+ #include <signal.h>
+ #include <errno.h>
+-#include <sys/fcntl.h>
++#include <fcntl.h>
+ #include <sys/stat.h>
+ #include "module.h"
+-#if !defined(__GLIBC__)
+-#include <linux/time.h>
+-#endif /* __GLIBC__ */
+ #include <stdarg.h>
+ #include <paths.h>
+ #include <linux/version.h>
+diff -u sysklogd-1.5.1.orig/pidfile.c sysklogd-1.5.1/pidfile.c
+--- sysklogd-1.5.1.orig/pidfile.c	2014-10-04 15:47:18.000000000 -0400
++++ sysklogd-1.5.1/pidfile.c	2021-01-18 23:23:55.000000000 -0500
+@@ -25,6 +25,7 @@
+  */
+ 
+ #include <stdio.h>
++#include <fcntl.h>
+ #include <unistd.h>
+ #include <sys/stat.h>
+ #include <sys/file.h>
+diff -u sysklogd-1.5.1.orig/syslog.c sysklogd-1.5.1/syslog.c
+--- sysklogd-1.5.1.orig/syslog.c	2014-10-04 15:47:18.000000000 -0400
++++ sysklogd-1.5.1/syslog.c	2021-01-18 23:11:45.000000000 -0500
+@@ -55,7 +55,6 @@
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/file.h>
+-#include <sys/signal.h>
+ #include <sys/syslog.h>
+ #if 0
+ #include "syslog.h"
+@@ -64,6 +63,8 @@
+ 
+ #include <sys/uio.h>
+ #include <sys/wait.h>
++#include <signal.h>
++#include <fcntl.h>
+ #include <netdb.h>
+ #include <string.h>
+ #include <time.h>
+diff -u sysklogd-1.5.1.orig/syslogd.c sysklogd-1.5.1/syslogd.c
+--- sysklogd-1.5.1.orig/syslogd.c	2014-10-04 15:47:18.000000000 -0400
++++ sysklogd-1.5.1/syslogd.c	2021-01-18 23:13:25.000000000 -0500
+@@ -519,9 +519,9 @@
+ #include <time.h>
+ 
+ #define SYSLOG_NAMES
++#include <errno.h>
+ #include <sys/syslog.h>
+ #include <sys/param.h>
+-#include <sys/errno.h>
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
+ #include <sys/wait.h>
+@@ -818,9 +818,7 @@
+ void init();
+ void cfline(char *line, register struct filed *f);
+ int decode(char *name, struct code *codetab);
+-#if defined(__GLIBC__)
+ #define dprintf mydprintf
+-#endif /* __GLIBC__ */
+ static void dprintf(char *, ...);
+ static void allocate_log(void);
+ void sighup_handler();
+@@ -840,15 +838,9 @@
+ 	register char *p;
+ #ifndef TESTING
+ 	ssize_t msglen;
+-#endif
+-#if !defined(__GLIBC__)
+-	int len, num_fds;
+-#else /* __GLIBC__ */
+-#ifndef TESTING
+ 	socklen_t len;
+ #endif
+ 	int num_fds;
+-#endif /* __GLIBC__ */
+ 	/*
+ 	 * It took me quite some time to figure out how this is
+ 	 * supposed to work so I guess I should better write it down.
diff --git a/pkgs/os-specific/linux/sysklogd/systemd.patch b/pkgs/os-specific/linux/sysklogd/systemd.patch
index 0a7fb166bd7..a170f67cadb 100644
--- a/pkgs/os-specific/linux/sysklogd/systemd.patch
+++ b/pkgs/os-specific/linux/sysklogd/systemd.patch
@@ -71,9 +71,9 @@ diff -ruN -x '*~' sysklogd-1.5-old/sd-daemon.c sysklogd-1.5/sd-daemon.c
 +#include <sys/stat.h>
 +#include <sys/socket.h>
 +#include <sys/un.h>
-+#include <sys/fcntl.h>
 +#include <netinet/in.h>
 +#include <stdlib.h>
++#include <fcntl.h>
 +#include <errno.h>
 +#include <unistd.h>
 +#include <string.h>
diff --git a/pkgs/os-specific/windows/cygwin-setup/default.nix b/pkgs/os-specific/windows/cygwin-setup/default.nix
index 2941561954d..c51cafa9ace 100644
--- a/pkgs/os-specific/windows/cygwin-setup/default.nix
+++ b/pkgs/os-specific/windows/cygwin-setup/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchcvs, autoconf, automake, libtool, flex, bison, pkg-config
+{ lib, stdenv, fetchcvs, autoconf, automake, libtool, flex, bison, pkg-config
 , zlib, bzip2, lzma, libgcrypt
 }:
 
diff --git a/pkgs/os-specific/windows/jom/default.nix b/pkgs/os-specific/windows/jom/default.nix
index 0d3ab81135c..a2fbdde95aa 100644
--- a/pkgs/os-specific/windows/jom/default.nix
+++ b/pkgs/os-specific/windows/jom/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, qt48, qmake4Hook, flex }:
+{ lib, stdenv, fetchgit, qt48, qmake4Hook, flex }:
 
 # At the time of committing this, the expression fails for me to cross-build in
 # both mingw32 and mingw64.
diff --git a/pkgs/os-specific/windows/libgnurx/default.nix b/pkgs/os-specific/windows/libgnurx/default.nix
index eb4ae8dad00..85a3c463a28 100644
--- a/pkgs/os-specific/windows/libgnurx/default.nix
+++ b/pkgs/os-specific/windows/libgnurx/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ lib, stdenv, fetchurl }:
 
 let
   version = "2.5.1";
diff --git a/pkgs/os-specific/windows/mingw-w64/default.nix b/pkgs/os-specific/windows/mingw-w64/default.nix
index 838c39fc3c1..0a342997530 100644
--- a/pkgs/os-specific/windows/mingw-w64/default.nix
+++ b/pkgs/os-specific/windows/mingw-w64/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, windows, fetchurl }:
+{ lib, stdenv, windows, fetchurl }:
 
 let
   version = "6.0.0";
diff --git a/pkgs/os-specific/windows/wxMSW-2.8/default.nix b/pkgs/os-specific/windows/wxMSW-2.8/default.nix
index f57df3192cc..c4fb7993343 100644
--- a/pkgs/os-specific/windows/wxMSW-2.8/default.nix
+++ b/pkgs/os-specific/windows/wxMSW-2.8/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, compat24 ? false, compat26 ? true, unicode ? true }:
+{ lib, stdenv, fetchurl, compat24 ? false, compat26 ? true, unicode ? true }:
 
 stdenv.mkDerivation {
   name = "wxMSW-2.8.11";
diff --git a/pkgs/servers/dns/knot-dns/default.nix b/pkgs/servers/dns/knot-dns/default.nix
index 07e8e7d5210..2a9e00b266b 100644
--- a/pkgs/servers/dns/knot-dns/default.nix
+++ b/pkgs/servers/dns/knot-dns/default.nix
@@ -7,11 +7,11 @@ let inherit (lib) optional optionals; in
 
 stdenv.mkDerivation rec {
   pname = "knot-dns";
-  version = "3.0.3";
+  version = "3.0.4";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
-    sha256 = "fbc51897ef0ed0639ebad59b988a91382b9544288a2db8254f0b1de433140e38";
+    sha256 = "451d8913a769b7e4bcb3e250a3181b448e28a82cfc58cea6f2509475d7327983";
   };
 
   outputs = [ "bin" "out" "dev" ];
diff --git a/pkgs/servers/monitoring/prometheus/sql-exporter.nix b/pkgs/servers/monitoring/prometheus/sql-exporter.nix
index d6c69a6089b..2784dae63af 100644
--- a/pkgs/servers/monitoring/prometheus/sql-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/sql-exporter.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "sql_exporter";
-  version = "0.3.0";
+  version = "0.4.0";
 
   vendorSha256 = null;
 
   src = fetchFromGitHub {
     owner = "justwatchcom";
-    repo = "sql_exporter";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "125brlxgwhkn3z5v0522gpm0sk6v905ghh05c4c3wf1hlm7bhnrc";
+    sha256 = "0dxzcd3b430xby741fdc85k4d2380jrh34xxskmdzxbf2kqdc5k8";
   };
 
   meta = with lib; {
diff --git a/pkgs/servers/web-apps/moodle/default.nix b/pkgs/servers/web-apps/moodle/default.nix
index 6b22c29c128..af565e6292d 100644
--- a/pkgs/servers/web-apps/moodle/default.nix
+++ b/pkgs/servers/web-apps/moodle/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, writeText, plugins ? [ ] }:
 
 let
-  version = "3.10";
+  version = "3.10.1";
   stableVersion = lib.concatStrings (lib.take 2 (lib.splitVersion version));
 
 in stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ in stdenv.mkDerivation rec {
   src = fetchurl {
     url =
       "https://download.moodle.org/stable${stableVersion}/${pname}-${version}.tgz";
-    sha256 = "4aYKZmXym1Tq/462PIgJb4sHGUclEkU0Ok1iQJ6u0aw=";
+    sha256 = "sha256-VHlz8twsp7mSwZPatJkciHaDOP0r0EudeG5i3gjPUT8=";
   };
 
   phpConfig = writeText "config.php" ''
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index 683c58d8406..d481ae99b89 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -5,15 +5,15 @@
 , git, nix, nixfmt, jq, coreutils, gnused, curl, cacert }:
 
 stdenv.mkDerivation rec {
-  version = "2021-01-16";
+  version = "2021-01-20";
   pname = "oh-my-zsh";
-  rev = "efcbd9f3480a28ec69c607c46adcbfd8d230ac9f";
+  rev = "cd4918c2cdb6613cf77ea8f6f29e1930bd7f4bf5";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "ohmyzsh";
     repo = "ohmyzsh";
-    sha256 = "1zngxqkhm49m2qczvyp5mws7d4bwxbb3fq20xqbbdpgk35smwnxc";
+    sha256 = "1b8zipghawa2rl3l6vylmhbwcwz9yq52xmbfpkz0bxhifisq74kn";
   };
 
   installPhase = ''
diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix
index ecec2903b5f..30c38168fd1 100644
--- a/pkgs/stdenv/darwin/default.nix
+++ b/pkgs/stdenv/darwin/default.nix
@@ -1,7 +1,5 @@
 { lib
 , localSystem, crossSystem, config, overlays, crossOverlays ? []
-# The version of darwin.apple_sdk used for sources provided by apple.
-, appleSdkVersion ? "10.12"
 # Minimum required macOS version, used both for compatibility as well as reproducability.
 , macosVersionMin ? "10.12"
 # Allow passing in bootstrap files directly so we can test the stdenv bootstrap process when changing the bootstrap tools
@@ -150,7 +148,7 @@ in rec {
         __extraImpureHostDeps = commonImpureHostDeps;
 
         extraAttrs = {
-          inherit macosVersionMin appleSdkVersion platform;
+          inherit macosVersionMin platform;
         };
         overrides  = self: super: (overrides self super) // {
           inherit ccNoLibcxx;
@@ -524,7 +522,7 @@ in rec {
     extraAttrs = {
       libc = pkgs.darwin.Libsystem;
       shellPackage = pkgs.bash;
-      inherit macosVersionMin appleSdkVersion platform bootstrapTools;
+      inherit macosVersionMin platform bootstrapTools;
     };
 
     allowedRequisites = (with pkgs; [
diff --git a/pkgs/tools/X11/opentabletdriver/default.nix b/pkgs/tools/X11/opentabletdriver/default.nix
index dc527f47dd3..6955f36b8f1 100644
--- a/pkgs/tools/X11/opentabletdriver/default.nix
+++ b/pkgs/tools/X11/opentabletdriver/default.nix
@@ -23,18 +23,18 @@
 
 stdenv.mkDerivation rec {
   pname = "OpenTabletDriver";
-  version = "0.4.2";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "InfinityGhost";
     repo = "OpenTabletDriver";
     rev = "v${version}";
-    sha256 = "048y7gjlk2yw4vh62px1d9w0va6ap1a0cndcpbirlyj9q6b8jxax";
+    sha256 = "1xi97nn5zb4fs3pyyqznvxnz07j30j3p967s7jigjmlm9321vkqp";
   };
 
   debPkg = fetchurl {
     url = "https://github.com/InfinityGhost/OpenTabletDriver/releases/download/v${version}/OpenTabletDriver.deb";
-    sha256 = "13gg0dhvjy88h9lhcrp30fjiwgb9dzjsgk1k760pi1ki71a5vz2r";
+    sha256 = "06m2g5qvc02ga9f98f2ssa7wr2b7b2qm90qwaf17fz5z8rr0qmp0";
   };
 
   nativeBuildInputs = [
@@ -134,8 +134,8 @@ stdenv.mkDerivation rec {
     install -Dm644 $src/OpenTabletDriver.UX/Assets/otd.png -t $out/share/pixmaps
 
     # TODO: Ideally this should be build from OpenTabletDriver/OpenTabletDriver-udev instead
-    dpkg-deb --fsys-tarfile ${debPkg} | tar xf - ./usr/lib/udev/rules.d/30-opentabletdriver.rules
-    install -Dm644 ./usr/lib/udev/rules.d/30-opentabletdriver.rules -t $out/lib/udev/rules.d
+    dpkg-deb --fsys-tarfile ${debPkg} | tar xf - ./usr/lib/udev/rules.d/99-opentabletdriver.rules
+    install -Dm644 ./usr/lib/udev/rules.d/99-opentabletdriver.rules -t $out/lib/udev/rules.d
 
     runHook postInstall
   '';
@@ -155,8 +155,11 @@ stdenv.mkDerivation rec {
   dontWrapGApps = true;
   dontStrip = true;
 
-  passthru.tests = {
-    otd-runs = nixosTests.opentabletdriver;
+  passthru = {
+    updateScript = ./update.sh;
+    tests = {
+      otd-runs = nixosTests.opentabletdriver;
+    };
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/X11/opentabletdriver/deps.nix b/pkgs/tools/X11/opentabletdriver/deps.nix
index 34d2981cff5..ccb7097153b 100644
--- a/pkgs/tools/X11/opentabletdriver/deps.nix
+++ b/pkgs/tools/X11/opentabletdriver/deps.nix
@@ -11,13 +11,13 @@
   })
   (fetchNuGet {
     name = "Eto.Forms";
-    version = "2.5.6";
-    sha256 = "035ny8jlanchwq16gcq0xb6ywabjl71c7qbpv26sjwg96na8vz51";
+    version = "2.5.10";
+    sha256 = "1d71wglk4ixfqfbm6sxmj753x5iwbar8i9zzjy3bh64fy1dn8lz7";
   })
   (fetchNuGet {
     name = "Eto.Platform.Gtk";
-    version = "2.5.6";
-    sha256 = "1ijkjd3lc7x59yk369kxipzgk1zhyr9g6k319wc0n033vij26mwl";
+    version = "2.5.10";
+    sha256 = "1pkqvlfx7bzracnw19bl50i9jg4ym376vihmy9qq7m5z5nfdqn4g";
   })
   (fetchNuGet {
     name = "GdkSharp";
@@ -41,8 +41,8 @@
   })
   (fetchNuGet {
     name = "HidSharpCore";
-    version = "1.1.0";
-    sha256 = "122s5j3wrv8hcgnbxrnjqydvcfz7gdm8xq0wlwzrgwdjk44lr45a";
+    version = "1.2.1";
+    sha256 = "0vcw38skr9g691gxbzv3cf6y9rk11vh5pvcyjshdgii2z1z8a4g2";
   })
   (fetchNuGet {
     name = "MessagePack.Annotations";
@@ -120,9 +120,9 @@
     sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
   })
   (fetchNuGet {
-    name = "Newtonsoft.Json";
-    version = "12.0.3";
-    sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
+    name = "Octokit";
+    version = "0.48.0";
+    sha256 = "17ria1shx04rb6knbaswpqndmwam6v3r3lsfsd486q584798ccn8";
   })
   (fetchNuGet {
     name = "PangoSharp";
@@ -205,6 +205,11 @@
     sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c";
   })
   (fetchNuGet {
+    name = "SharpZipLib";
+    version = "1.3.1";
+    sha256 = "09zypjfils38143da507s5fi4hzvdlz32wfav219hksnpl35y8x0";
+  })
+  (fetchNuGet {
     name = "StreamJsonRpc";
     version = "2.6.121";
     sha256 = "0xzvpk17w2skndzdg47j7gkrrvw6521db4mv8lc3v8hm97vs9m76";
@@ -230,11 +235,6 @@
     sha256 = "16saf1fm9q80bb624fkqz0ksrwpnbw9617d7xg3jib7a2wgagm2r";
   })
   (fetchNuGet {
-    name = "System.CommandLine";
-    version = "2.0.0-beta1.20303.1";
-    sha256 = "0isnz8ipqlqim06hf56zlaq2vnsy5facvf5nvq6kzm5h1dm3l2vn";
-  })
-  (fetchNuGet {
     name = "System.ComponentModel.Annotations";
     version = "4.7.0";
     sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z";
@@ -320,11 +320,6 @@
     sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p";
   })
   (fetchNuGet {
-    name = "System.Numerics.Vectors";
-    version = "4.5.0";
-    sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59";
-  })
-  (fetchNuGet {
     name = "System.Reflection.Emit.Lightweight";
     version = "4.6.0";
     sha256 = "0hry2k6b7kicg4zxnq0hhn0ys52711pxy7l9v5sp7gvp9cicwpgp";
diff --git a/pkgs/tools/X11/opentabletdriver/update.sh b/pkgs/tools/X11/opentabletdriver/update.sh
index 04fae30c05a..715857cf8f4 100755
--- a/pkgs/tools/X11/opentabletdriver/update.sh
+++ b/pkgs/tools/X11/opentabletdriver/update.sh
@@ -14,6 +14,14 @@ if [[ "$new_version" == "$old_version" ]]; then
   [[ "${1}" != "--force" ]] && exit 0
 fi
 
+# Updating the hash of deb package manually since there seems to be no way to do it automatically
+oldDebPkgUrl="https://github.com/InfinityGhost/OpenTabletDriver/releases/download/v${old_version}/OpenTabletDriver.deb";
+newDebPkgUrl="https://github.com/InfinityGhost/OpenTabletDriver/releases/download/v${new_version}/OpenTabletDriver.deb";
+oldDebSha256=$(nix-prefetch-url "$oldDebPkgUrl")
+newDebSha256=$(nix-prefetch-url "$newDebPkgUrl")
+echo "oldDebSha256: $oldDebSha256 newDebSha256: $newDebSha256"
+sed -i ./default.nix -re "s|\"$oldDebSha256\"|\"$newDebSha256\"|"
+
 cd ../../../..
 update-source-version opentabletdriver "$new_version"
 store_src="$(nix-build . -A opentabletdriver.src --no-out-link)"
diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix
index 4fda82839a8..0cf02b2540e 100644
--- a/pkgs/tools/admin/awscli/default.nix
+++ b/pkgs/tools/admin/awscli/default.nix
@@ -28,11 +28,11 @@ let
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "awscli";
-  version = "1.18.216"; # N.B: if you change this, change botocore to a matching version too
+  version = "1.18.217"; # N.B: if you change this, change botocore to a matching version too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-6kJ+PmFVHf8rGvp7X7t7e1+RVoRL/OEQHP9gqSHughY=";
+    sha256 = "sha256-bRrEFDRccklM3f6K/HAptKYrPnnCPM3Jo4vNsDt3Fuo=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/backup/monolith/default.nix b/pkgs/tools/backup/monolith/default.nix
index 0f9a171e979..708cd85bb29 100644
--- a/pkgs/tools/backup/monolith/default.nix
+++ b/pkgs/tools/backup/monolith/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "monolith";
-  version = "2.3.1";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "Y2Z";
     repo = pname;
     rev = "v${version}";
-    sha256 = "16k5mp64a5l063rdj65hbpx414xv0bqdvhvz49k8018f2a2jj5xl";
+    sha256 = "sha256-kCyfVeGTXBzdwmTTDJM1eaR6ANoIXAydj1ePmrZehqE=";
   };
 
-  cargoSha256 = "0s5mv8mymycz4ga4zh9kbrhwmhgl4j01pw1sdzxy49l9waryk9p3";
+  cargoSha256 = "sha256-juxaL/zjfqzFMqZe9tpevdjjVU7fPK8zalksAARWHC8=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
   buildInputs = lib.optionals stdenv.isLinux [ openssl ]
diff --git a/pkgs/tools/filesystems/mergerfs/default.nix b/pkgs/tools/filesystems/mergerfs/default.nix
index 0c9a6af9a6e..368f62f2196 100644
--- a/pkgs/tools/filesystems/mergerfs/default.nix
+++ b/pkgs/tools/filesystems/mergerfs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mergerfs";
-  version = "2.32.0";
+  version = "2.32.2";
 
   src = fetchFromGitHub {
     owner = "trapexit";
     repo = pname;
     rev = version;
-    sha256 = "1qmhwkl2ws0hwd7s1mzrdiw4h7jpilzcr0w8dgx465mdzb5d2jad";
+    sha256 = "sha256-ybDVBcPkjsW2OxNxUmn5hG/qLEjxF9vqR8pZdb9tIBs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/graphics/dpic/default.nix b/pkgs/tools/graphics/dpic/default.nix
index c0dc7661715..fa6880f6f91 100644
--- a/pkgs/tools/graphics/dpic/default.nix
+++ b/pkgs/tools/graphics/dpic/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dpic";
-  version = "2020.09.15";
+  version = "2021.01.01";
 
   src = fetchurl {
     url = "https://ece.uwaterloo.ca/~aplevich/dpic/${pname}-${version}.tar.gz";
-    sha256 = "0gmmp4dlir3bn892nm55a3q8cfsj8yg7fp1dixmhsdhsrgmg1b83";
+    sha256 = "sha256-vrBiTQqdaIslDd/WWMbdgornRkZmC2m+RF2J78F5Pm8=";
   };
 
   # The prefix passed to configure is not used.
diff --git a/pkgs/tools/misc/archi/default.nix b/pkgs/tools/misc/archi/default.nix
index 554700dad93..d0beb7d40d7 100644
--- a/pkgs/tools/misc/archi/default.nix
+++ b/pkgs/tools/misc/archi/default.nix
@@ -2,6 +2,8 @@
 , fetchurl
 , fetchzip
 , autoPatchelfHook
+, makeWrapper
+, jdk
 , libsecret
 }:
 
@@ -29,17 +31,20 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     autoPatchelfHook
+    makeWrapper
   ];
 
   installPhase =
     if stdenv.hostPlatform.system == "x86_64-linux" then
       ''
-      mkdir -p $out/bin
-        for f in configuration features p2 plugins Archi.ini Archi; do
-          cp $f $out/bin/
+        mkdir -p $out/bin $out/libexec
+        for f in configuration features p2 plugins Archi.ini; do
+          cp -r $f $out/libexec
         done
 
-        install -D -m755 Archi $out/bin/Archi
+        install -D -m755 Archi $out/libexec/Archi
+        makeWrapper $out/libexec/Archi $out/bin/Archi \
+          --prefix PATH : ${jdk}/bin
       ''
     else
       ''
diff --git a/pkgs/tools/misc/disfetch/default.nix b/pkgs/tools/misc/disfetch/default.nix
index 30d4d79488e..afce1429e69 100644
--- a/pkgs/tools/misc/disfetch/default.nix
+++ b/pkgs/tools/misc/disfetch/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "disfetch";
-  version = "1.13";
+  version = "1.14";
 
   src = fetchFromGitHub {
     owner = "llathasa-veleth";
     repo = "disfetch";
     rev = version;
-    sha256 = "14vccp1z0g2hr9alx2ydz29hfa4xfv9irdjsvqm94fbyi5fa87k0";
+    sha256 = "0p5pj8d761gz95ar35s8q6lrybrg9jik33kwnsxvb14n990kya0p";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/misc/goreleaser/default.nix b/pkgs/tools/misc/goreleaser/default.nix
index 58a7ce619c5..6611b3e9210 100644
--- a/pkgs/tools/misc/goreleaser/default.nix
+++ b/pkgs/tools/misc/goreleaser/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "goreleaser";
-  version = "0.149.0";
+  version = "0.155.0";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14yvxnl2ap1hizpk3pfzlh36399df1z2zgsc63qdh1h4ixyav6cy";
+    sha256 = "sha256-wVHBcxbrU6WvBAegQYDRDvLbuoU49/Cm19ujghNyi2A=";
   };
 
-  vendorSha256 = "17l15z2wyxzh7h7hvb1fysdnyg8wr8ww827vvmki73s1plfgr80d";
+  vendorSha256 = "sha256-k4TphR8z3DtoqJm6o6QILvQ1rHIldi1BpQJbEyWKv9U=";
 
   buildFlagsArray = [
     "-ldflags="
diff --git a/pkgs/tools/misc/haste-client/Gemfile b/pkgs/tools/misc/haste-client/Gemfile
index 851fabc21dd..06dd69c0179 100644
--- a/pkgs/tools/misc/haste-client/Gemfile
+++ b/pkgs/tools/misc/haste-client/Gemfile
@@ -1,2 +1,2 @@
 source 'https://rubygems.org'
-gemspec
+gem 'haste'
diff --git a/pkgs/tools/misc/haste-client/Gemfile.lock b/pkgs/tools/misc/haste-client/Gemfile.lock
index 43040794660..3f395ed9ef8 100644
--- a/pkgs/tools/misc/haste-client/Gemfile.lock
+++ b/pkgs/tools/misc/haste-client/Gemfile.lock
@@ -1,38 +1,19 @@
-PATH
-  remote: .
-  specs:
-    haste (0.2.3)
-      faraday (~> 0.9)
-      json
-
 GEM
   remote: https://rubygems.org/
   specs:
-    diff-lcs (1.4.4)
     faraday (0.17.3)
       multipart-post (>= 1.2, < 3)
-    json (2.3.1)
+    haste (0.2.3)
+      faraday (~> 0.9)
+      json
+    json (2.5.1)
     multipart-post (2.1.1)
-    rspec (3.9.0)
-      rspec-core (~> 3.9.0)
-      rspec-expectations (~> 3.9.0)
-      rspec-mocks (~> 3.9.0)
-    rspec-core (3.9.2)
-      rspec-support (~> 3.9.3)
-    rspec-expectations (3.9.2)
-      diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.9.0)
-    rspec-mocks (3.9.1)
-      diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.9.0)
-    rspec-support (3.9.3)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  haste!
-  rspec
+  haste
 
 BUNDLED WITH
    2.1.4
diff --git a/pkgs/tools/misc/haste-client/default.nix b/pkgs/tools/misc/haste-client/default.nix
index 477ba5820aa..0005e94fe05 100644
--- a/pkgs/tools/misc/haste-client/default.nix
+++ b/pkgs/tools/misc/haste-client/default.nix
@@ -1,25 +1,13 @@
 { lib
-, bundlerEnv
+, bundlerApp
 , buildRubyGem
 , ruby
 }:
 
-let 
-  version = "0.2.3";
-  deps = bundlerEnv rec {
-    name = "haste-client-${version}";
-    inherit ruby;
-    gemdir = ./.;
-  };
-in
-buildRubyGem rec {
-  name = "haste-client-${version}";
-  inherit version;
-  gemName = "haste";
-
-  source.sha256 = "0jaq0kvlxwvd0jq9pl707saqnaaal3dis13mqwfjbj121gr4hq4q";
-
-  propagatedBuildInputs = [ deps ];
+bundlerApp rec {
+  pname = "haste";
+  gemdir = ./.;
+  exes = [ "haste" ];
 
   meta = with lib; {
     description = "Command line interface to the AnyStyle Parser and Finder";
diff --git a/pkgs/tools/misc/haste-client/gemset.nix b/pkgs/tools/misc/haste-client/gemset.nix
index 336df25081b..49959531ae9 100644
--- a/pkgs/tools/misc/haste-client/gemset.nix
+++ b/pkgs/tools/misc/haste-client/gemset.nix
@@ -1,14 +1,4 @@
 {
-  diff-lcs = {
-    groups = ["default" "development"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0m925b8xc6kbpnif9dldna24q1szg4mk0fvszrki837pfn46afmz";
-      type = "gem";
-    };
-    version = "1.4.4";
-  };
   faraday = {
     dependencies = ["multipart-post"];
     groups = ["default"];
@@ -172,159 +162,11 @@
   haste = {
     dependencies = ["faraday" "json"];
     groups = ["default"];
-    platforms = [{
-      engine = "maglev";
-    } {
-      engine = "maglev";
-    } {
-      engine = "maglev";
-      version = "1.8";
-    } {
-      engine = "maglev";
-      version = "1.8";
-    } {
-      engine = "maglev";
-      version = "1.9";
-    } {
-      engine = "maglev";
-      version = "1.9";
-    } {
-      engine = "maglev";
-      version = "2.0";
-    } {
-      engine = "maglev";
-      version = "2.0";
-    } {
-      engine = "maglev";
-      version = "2.1";
-    } {
-      engine = "maglev";
-      version = "2.1";
-    } {
-      engine = "maglev";
-      version = "2.2";
-    } {
-      engine = "maglev";
-      version = "2.2";
-    } {
-      engine = "maglev";
-      version = "2.3";
-    } {
-      engine = "maglev";
-      version = "2.3";
-    } {
-      engine = "maglev";
-      version = "2.4";
-    } {
-      engine = "maglev";
-      version = "2.4";
-    } {
-      engine = "maglev";
-      version = "2.5";
-    } {
-      engine = "maglev";
-      version = "2.5";
-    } {
-      engine = "maglev";
-      version = "2.6";
-    } {
-      engine = "maglev";
-      version = "2.6";
-    } {
-      engine = "rbx";
-    } {
-      engine = "rbx";
-    } {
-      engine = "rbx";
-      version = "1.8";
-    } {
-      engine = "rbx";
-      version = "1.9";
-    } {
-      engine = "rbx";
-      version = "2.0";
-    } {
-      engine = "rbx";
-      version = "2.1";
-    } {
-      engine = "rbx";
-      version = "2.2";
-    } {
-      engine = "rbx";
-      version = "2.3";
-    } {
-      engine = "rbx";
-      version = "2.4";
-    } {
-      engine = "rbx";
-      version = "2.5";
-    } {
-      engine = "rbx";
-      version = "2.6";
-    } {
-      engine = "ruby";
-    } {
-      engine = "ruby";
-    } {
-      engine = "ruby";
-    } {
-      engine = "ruby";
-      version = "1.8";
-    } {
-      engine = "ruby";
-      version = "1.8";
-    } {
-      engine = "ruby";
-      version = "1.9";
-    } {
-      engine = "ruby";
-      version = "1.9";
-    } {
-      engine = "ruby";
-      version = "2.0";
-    } {
-      engine = "ruby";
-      version = "2.0";
-    } {
-      engine = "ruby";
-      version = "2.1";
-    } {
-      engine = "ruby";
-      version = "2.1";
-    } {
-      engine = "ruby";
-      version = "2.2";
-    } {
-      engine = "ruby";
-      version = "2.2";
-    } {
-      engine = "ruby";
-      version = "2.3";
-    } {
-      engine = "ruby";
-      version = "2.3";
-    } {
-      engine = "ruby";
-      version = "2.4";
-    } {
-      engine = "ruby";
-      version = "2.4";
-    } {
-      engine = "ruby";
-      version = "2.5";
-    } {
-      engine = "ruby";
-      version = "2.5";
-    } {
-      engine = "ruby";
-      version = "2.6";
-    } {
-      engine = "ruby";
-      version = "2.6";
-    }];
+    platforms = [];
     source = {
-      path = ./.;
-      type = "path";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jaq0kvlxwvd0jq9pl707saqnaaal3dis13mqwfjbj121gr4hq4q";
+      type = "gem";
     };
     version = "0.2.3";
   };
@@ -482,10 +324,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "2.3.1";
+    version = "2.5.1";
   };
   multipart-post = {
     groups = ["default"];
@@ -646,58 +488,4 @@
     };
     version = "2.1.1";
   };
-  rspec = {
-    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
-    groups = ["development"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1hzsig4pi9ybr0xl5540m1swiyxa74c8h09225y5sdh2rjkkg84h";
-      type = "gem";
-    };
-    version = "3.9.0";
-  };
-  rspec-core = {
-    dependencies = ["rspec-support"];
-    groups = ["default" "development"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1xndkv5cz763wh30x7hdqw6k7zs8xfh0f86amra9agwn44pcqs0y";
-      type = "gem";
-    };
-    version = "3.9.2";
-  };
-  rspec-expectations = {
-    dependencies = ["diff-lcs" "rspec-support"];
-    groups = ["default" "development"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1bxkv25qmy39jqrdx35bfgw00g24qkssail9jlljm7hywbqvr9bb";
-      type = "gem";
-    };
-    version = "3.9.2";
-  };
-  rspec-mocks = {
-    dependencies = ["diff-lcs" "rspec-support"];
-    groups = ["default" "development"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "19vmdqym1v2g1zbdnq37zwmyj87y9yc9ijwc8js55igvbb9hx0mr";
-      type = "gem";
-    };
-    version = "3.9.1";
-  };
-  rspec-support = {
-    groups = ["default" "development"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0dandh2fy1dfkjk8jf9v4azbbma6968bhh06hddv0yqqm8108jir";
-      type = "gem";
-    };
-    version = "3.9.3";
-  };
 }
\ No newline at end of file
diff --git a/pkgs/tools/misc/kcollectd/default.nix b/pkgs/tools/misc/kcollectd/default.nix
index ffc64b1455a..e38cb6f5a79 100644
--- a/pkgs/tools/misc/kcollectd/default.nix
+++ b/pkgs/tools/misc/kcollectd/default.nix
@@ -18,12 +18,12 @@
 
 mkDerivation rec {
   pname = "kcollectd";
-  version = "0.11.99.0";
+  version = "0.12.0";
   src = fetchFromGitLab {
     owner = "aerusso";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0h4ymvzihzbmyv3z0bp28g94wxc6c7lgi3my0xbka3advxr811gn";
+    sha256 = "sha256-Ihd4Ps4t9+sNB3joO3vTxDR/25t7Ecl6yvHQ15QiUdY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/onefetch/default.nix b/pkgs/tools/misc/onefetch/default.nix
index 7a010eb5e68..12cd9990779 100644
--- a/pkgs/tools/misc/onefetch/default.nix
+++ b/pkgs/tools/misc/onefetch/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "onefetch";
-  version = "2.7.3";
+  version = "2.9.1";
 
   src = fetchFromGitHub {
     owner = "o2sh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0c56na9s3g7rdb4cc6ccsnfby2ihf5zrfs3lg9qxiqsfr7mcn4w9";
+    sha256 = "sha256-owa+HmzMXpLR7H1FssW4gQiVAQGJRXhcitgJj6pxJRc=";
   };
 
-  cargoSha256 = "05rrww53g3k2c8mpxvyc067qsgs7w9sxnzdlvmca1idbqa0k9060";
+  cargoSha256 = "sha256-TqWe4eARQmmWcwnvb6BIZrzGeKMpiIObPv0cW1JvWj4=";
 
   buildInputs = with stdenv;
     lib.optionals isDarwin [ CoreFoundation libiconv libresolv Security ];
diff --git a/pkgs/tools/misc/rauc/default.nix b/pkgs/tools/misc/rauc/default.nix
new file mode 100644
index 00000000000..c5f84601a6d
--- /dev/null
+++ b/pkgs/tools/misc/rauc/default.nix
@@ -0,0 +1,50 @@
+{ autoreconfHook
+, curl
+, dbus
+, fetchFromGitHub
+, glib
+, json-glib
+, lib
+, nix-update-script
+, openssl
+, pkg-config
+, stdenv
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rauc";
+  version = "1.5";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "10v9nllfw5y53797p00hk6645zkaa6cacsim1rh6y2jngnqfkmw0";
+  };
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ pkg-config autoreconfHook ];
+
+  buildInputs = [ curl dbus glib json-glib openssl ];
+
+  configureFlags = [
+    "--with-dbusinterfacesdir=${placeholder "out"}/share/dbus-1/interfaces"
+    "--with-dbuspolicydir=${placeholder "out"}/share/dbus-1/systemd.d"
+    "--with-dbussystemservicedir=${placeholder "out"}/share/dbus-1/system-services"
+  ];
+
+  meta = with lib; {
+    description = "Safe and secure software updates for embedded Linux";
+    homepage = "https://rauc.io";
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ emantor ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/tools/networking/nbd/default.nix b/pkgs/tools/networking/nbd/default.nix
index c136328d031..6478a15aa1a 100644
--- a/pkgs/tools/networking/nbd/default.nix
+++ b/pkgs/tools/networking/nbd/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, pkg-config, glib, which }:
 
 stdenv.mkDerivation rec {
-  name = "nbd-3.20";
+  name = "nbd-3.21";
 
   src = fetchurl {
     url = "mirror://sourceforge/nbd/${name}.tar.xz";
-    sha256 = "1kfnyx52nna2mnw264njk1dl2zc8m78sz031yp65mbmpi99v7qg0";
+    sha256 = "sha256-52iK852Rczu80tsIBixE/lA9AE5RUodAE5xEr/amvvk=";
   };
 
   buildInputs = [ glib ]
diff --git a/pkgs/tools/networking/openapi-generator-cli/default.nix b/pkgs/tools/networking/openapi-generator-cli/default.nix
index a5271bf410f..787067881a2 100644
--- a/pkgs/tools/networking/openapi-generator-cli/default.nix
+++ b/pkgs/tools/networking/openapi-generator-cli/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "4.3.1";
+  version = "5.0.0";
   pname = "openapi-generator-cli";
 
   jarfilename = "${pname}-${version}.jar";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://maven/org/openapitools/${pname}/${version}/${jarfilename}";
-    sha256 = "1h9infspwbij9ahb376vc4ijakrqb7xww573ccrqvchxphbcsf7l";
+    sha256 = "13kgc84kyrypr0xy4xifrzqcy4qlvcxc7f0jy3n1xkjl3vhav7w3";
   };
 
   phases = [ "installPhase" ];
diff --git a/pkgs/tools/networking/openapi-generator-cli/unstable.nix b/pkgs/tools/networking/openapi-generator-cli/unstable.nix
index a0af97b2ea9..1384f35a3f2 100644
--- a/pkgs/tools/networking/openapi-generator-cli/unstable.nix
+++ b/pkgs/tools/networking/openapi-generator-cli/unstable.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "5.0.0-2020-02-04";
+  version = "6.0.0-2021-01-18";  # Also update the fetchurl link
   pname = "openapi-generator-cli";
 
   jarfilename = "${pname}-${version}.jar";
@@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
   ];
 
   src = fetchurl {
-    url = "https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/5.0.0-SNAPSHOT/openapi-generator-cli-5.0.0-20200204.091421-37.jar";
-    sha256 = "0swv976fcr2z8g53avr0r706c31xacb2dlnl8b4c8mzmi49byy7k";
+    url = "https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/6.0.0-SNAPSHOT/openapi-generator-cli-6.0.0-20210118.082537-4.jar";
+    sha256 = "1ji3yw9dp4srlgqxvb21vrcp2bzj4himxsmp8l8zid9nxsc1m71x";
   };
 
   phases = [ "installPhase" ];
diff --git a/pkgs/tools/package-management/emplace/default.nix b/pkgs/tools/package-management/emplace/default.nix
index c531a21196d..eb6b2b88354 100644
--- a/pkgs/tools/package-management/emplace/default.nix
+++ b/pkgs/tools/package-management/emplace/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "emplace";
-  version = "0.4.1";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "tversteeg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-iPfE2z98j93zqK2uZ8R+Fy2qNOCH9oCxHgeedvs/onY=";
+    sha256 = "sha256-74jv5GvBSErU5qjd4QmAK4JZhqFoqBf3cNxOGLIqt9U=";
   };
 
-  cargoSha256 = "sha256-62DHIIwloB+pPAZnOEfLJzAWrRJSxPp4IghBh6lRuc8=";
+  cargoSha256 = "sha256-SPHXkvtUL6hdYOE1fUIQLEqWzn68RVBiu6zJQJ/3BxQ=";
 
   meta = with lib; {
     description = "Mirror installed software on multiple machines";
diff --git a/pkgs/tools/package-management/home-manager/default.nix b/pkgs/tools/package-management/home-manager/default.nix
index b8b4de36eb4..8897a313e8d 100644
--- a/pkgs/tools/package-management/home-manager/default.nix
+++ b/pkgs/tools/package-management/home-manager/default.nix
@@ -6,13 +6,13 @@
 stdenv.mkDerivation rec {
 
   pname = "home-manager";
-  version = "2020-09-06";
+  version = "2021-01-16";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "home-manager";
-    rev = "249650a07ee2d949fa599f3177a8c234adbd1bee";
-    sha256 = "0x858b7i15kx74aqwgi2n5ls7zjhcky95z9vbxfdlawmaz371dma";
+    rev = "8127799f79ee96129b295d78294f40a54078131f";
+    sha256 = "0iji8nxa66s409pvjwi370ycsw4m74w6b3ywnjpfkl2filpapjns";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/metasploit/Gemfile b/pkgs/tools/security/metasploit/Gemfile
index fcae2cf5d44..83db469db6e 100644
--- a/pkgs/tools/security/metasploit/Gemfile
+++ b/pkgs/tools/security/metasploit/Gemfile
@@ -1,4 +1,4 @@
 # frozen_string_literal: true
 source "https://rubygems.org"
 
-gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.0.25"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.0.26"
diff --git a/pkgs/tools/security/metasploit/Gemfile.lock b/pkgs/tools/security/metasploit/Gemfile.lock
index f8eb110712f..8660d72e5d9 100644
--- a/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,9 +1,9 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: 7bcfc6e6a97e994c8a67f7c0bad8012f009dc13c
-  ref: refs/tags/6.0.25
+  revision: 0cdd01a0c4432348b45e1a0f5b5b9983b6ce6c48
+  ref: refs/tags/6.0.26
   specs:
-    metasploit-framework (6.0.25)
+    metasploit-framework (6.0.26)
       actionpack (~> 5.2.2)
       activerecord (~> 5.2.2)
       activesupport (~> 5.2.2)
@@ -31,9 +31,9 @@ GIT
       metasploit-concern
       metasploit-credential
       metasploit-model
-      metasploit-payloads (= 2.0.26)
+      metasploit-payloads (= 2.0.27)
       metasploit_data_models
-      metasploit_payloads-mettle (= 1.0.2)
+      metasploit_payloads-mettle (= 1.0.5)
       mqtt
       msgpack
       nessus_rest
@@ -124,8 +124,8 @@ GEM
     arel-helpers (2.12.0)
       activerecord (>= 3.1.0, < 7)
     aws-eventstream (1.1.0)
-    aws-partitions (1.415.0)
-    aws-sdk-core (3.110.0)
+    aws-partitions (1.417.0)
+    aws-sdk-core (3.111.2)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.239.0)
       aws-sigv4 (~> 1.1)
@@ -136,7 +136,7 @@ GEM
     aws-sdk-iam (1.46.0)
       aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kms (1.40.0)
+    aws-sdk-kms (1.41.0)
       aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-s3 (1.87.0)
@@ -174,7 +174,7 @@ GEM
       faraday-net_http (~> 1.0)
       multipart-post (>= 1.2, < 3)
       ruby2_keywords
-    faraday-net_http (1.0.0)
+    faraday-net_http (1.0.1)
     faye-websocket (0.11.0)
       eventmachine (>= 0.12.0)
       websocket-driver (>= 0.5.1)
@@ -185,14 +185,14 @@ GEM
     http_parser.rb (0.6.0)
     i18n (1.8.7)
       concurrent-ruby (~> 1.0)
-    io-console (0.5.6)
-    irb (1.3.0)
+    io-console (0.5.7)
+    irb (1.3.2)
       reline (>= 0.1.5)
     jmespath (1.4.0)
     jsobfu (0.4.2)
       rkelly-remix
     json (2.5.1)
-    loofah (2.8.0)
+    loofah (2.9.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     metasm (1.0.4)
@@ -214,7 +214,7 @@ GEM
       activemodel (~> 5.2.2)
       activesupport (~> 5.2.2)
       railties (~> 5.2.2)
-    metasploit-payloads (2.0.26)
+    metasploit-payloads (2.0.27)
     metasploit_data_models (4.1.1)
       activerecord (~> 5.2.2)
       activesupport (~> 5.2.2)
@@ -224,7 +224,7 @@ GEM
       pg
       railties (~> 5.2.2)
       recog (~> 2.0)
-    metasploit_payloads-mettle (1.0.2)
+    metasploit_payloads-mettle (1.0.5)
     method_source (1.0.0)
     mini_portile2 (2.5.0)
     minitest (5.14.3)
@@ -284,7 +284,7 @@ GEM
     recog (2.3.18)
       nokogiri
     redcarpet (3.5.1)
-    reline (0.2.0)
+    reline (0.2.2)
       io-console (~> 0.5)
     rex-arch (0.1.14)
       rex-text
@@ -312,7 +312,7 @@ GEM
       rex-arch
     rex-ole (0.1.7)
       rex-text
-    rex-powershell (0.1.88)
+    rex-powershell (0.1.89)
       rex-random_identifier
       rex-text
       ruby-rc4
@@ -330,13 +330,13 @@ GEM
       rex-socket
       rex-text
     rex-struct2 (0.1.3)
-    rex-text (0.2.29)
+    rex-text (0.2.31)
     rex-zip (0.1.4)
       rex-text
     rkelly-remix (0.0.7)
     ruby-macho (2.5.0)
     ruby-rc4 (0.1.5)
-    ruby2_keywords (0.0.2)
+    ruby2_keywords (0.0.4)
     ruby_smb (2.0.7)
       bindata
       openssl-ccm
@@ -348,7 +348,7 @@ GEM
     sawyer (0.8.2)
       addressable (>= 2.3.5)
       faraday (> 0.8, < 2.0)
-    simpleidn (0.1.1)
+    simpleidn (0.2.1)
       unf (~> 0.1.4)
     sinatra (2.1.0)
       mustermann (~> 1.0)
diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix
index 0e600e36414..0d9475ddfa0 100644
--- a/pkgs/tools/security/metasploit/default.nix
+++ b/pkgs/tools/security/metasploit/default.nix
@@ -8,13 +8,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "6.0.25";
+  version = "6.0.26";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = version;
-    sha256 = "1g48v2p6bmfqb6xs0773spx9din5dckvy8j997q9qhpmb4ff8i7l";
+    sha256 = "sha256-ayW0MsV3TQnta+bP9kNL6m3hFPrn6lbsiAbXw7WOmBA=";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/metasploit/gemset.nix b/pkgs/tools/security/metasploit/gemset.nix
index c360e42ad1e..18ad75c0d5e 100644
--- a/pkgs/tools/security/metasploit/gemset.nix
+++ b/pkgs/tools/security/metasploit/gemset.nix
@@ -114,20 +114,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1348hdy6wf1av75nvlwp4b0pp4vshc9vrzic5vzrwnx9fg6cib08";
+      sha256 = "1difs2ynpizrq0jdww075camiagkkxncyfb1qi4s19hfsn8xp3j0";
       type = "gem";
     };
-    version = "1.415.0";
+    version = "1.417.0";
   };
   aws-sdk-core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lrxwi9im4bpdcga6w7bmam7hywy5c2yss09377lyqm89whb4kl4";
+      sha256 = "0bfj1cnpp0ljr9jc44kljdwl5399cbqlvlqkz6fxq5i4r6ckggi4";
       type = "gem";
     };
-    version = "3.110.0";
+    version = "3.111.2";
   };
   aws-sdk-ec2 = {
     groups = ["default"];
@@ -154,10 +154,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pk76w1w9z4dh1sic08jp1j2rbbmnrfci53a6pkxq0g3y4kkx2g4";
+      sha256 = "02f70a4rr5h2na7navjhaf3n15ifq95zdl1avsryyxdvqzm5gzwm";
       type = "gem";
     };
-    version = "1.40.0";
+    version = "1.41.0";
   };
   aws-sdk-s3 = {
     groups = ["default"];
@@ -364,10 +364,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kk5d1c5nxbmwawl5gcznwiscjz24nz3vdhxrlzvj7748c1qqr6d";
+      sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.0.1";
   };
   faye-websocket = {
     groups = ["default"];
@@ -434,20 +434,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vbn4nvnr1pcmjsn0gghc3bz2md89njxq4801zi5dv5niypdxlsp";
+      sha256 = "1gp1xx2g1x81wsh929x7rzsm0c8qgkhr2mkjn79fbdwyfnk4s04l";
       type = "gem";
     };
-    version = "0.5.6";
+    version = "0.5.7";
   };
   irb = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0a7gkibv9485dbh64k3r5j20bf553dg0kmxy3hhgl2jsgqyvrl1y";
+      sha256 = "166xravh6r82w46d8hcjrg55gnyjdf0501g16lb48i2h06k363l2";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.3.2";
   };
   jmespath = {
     groups = ["default"];
@@ -484,10 +484,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ndimir6k3kfrh8qrb7ir1j836l4r3qlwyclwjh88b86clblhszh";
+      sha256 = "0bzwvxvilx7w1p3pg028ks38925y9i0xm870lm7s12w7598hiyck";
       type = "gem";
     };
-    version = "2.8.0";
+    version = "2.9.0";
   };
   metasm = {
     groups = ["default"];
@@ -524,12 +524,12 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "7bcfc6e6a97e994c8a67f7c0bad8012f009dc13c";
-      sha256 = "1g48v2p6bmfqb6xs0773spx9din5dckvy8j997q9qhpmb4ff8i7l";
+      rev = "0cdd01a0c4432348b45e1a0f5b5b9983b6ce6c48";
+      sha256 = "044qissw7mq6i3n5dsp7z8af2vga9d1zdkz6dgnhjkbpqlrb89bb";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.0.25";
+    version = "6.0.26";
   };
   metasploit-model = {
     groups = ["default"];
@@ -546,10 +546,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gpv327750b7g243w0dmynji1gabwk81kb424y5hlbq9vqpgamnb";
+      sha256 = "1c3jn9gjy1bknyd7wrwwfbcjwlmijd6nnsjzyqc7yszjjy0yqca2";
       type = "gem";
     };
-    version = "2.0.26";
+    version = "2.0.27";
   };
   metasploit_data_models = {
     groups = ["default"];
@@ -566,10 +566,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "147s4jd2hckls76binsskb6rvnh1crd2agmf1lk7fsj1n55dhkvk";
+      sha256 = "0z6gnidpcpdm80vvl0yw1h10kchkaw9whcsv2kwy7ih6247l7nbq";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.0.5";
   };
   method_source = {
     groups = ["default"];
@@ -936,10 +936,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "109gpk4c9712cc3ilvidgks9i42y8gwnjpw6j4w4hci09pasz7i1";
+      sha256 = "0zinl7l63gzy6y477j8w1azfm5655h2026hxl49w4c73qcfdjj3x";
       type = "gem";
     };
-    version = "0.2.0";
+    version = "0.2.2";
   };
   rex-arch = {
     groups = ["default"];
@@ -1036,10 +1036,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02bzkraz4722zkjkm5cn9kvhx2mbkrhd5g123bkqgfkd19kbfjif";
+      sha256 = "1wza4g3kkscc17kaw44hnq8qs2nmvppb9awaf27lp4v1c1kdxixs";
       type = "gem";
     };
-    version = "0.1.88";
+    version = "0.1.89";
   };
   rex-random_identifier = {
     groups = ["default"];
@@ -1106,10 +1106,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05s0izxlb4rrhr42d6dz6idxdj4hrb7bdkk22qfwnaqdppb4w536";
+      sha256 = "078bdybz7cw3zd0mr59qgr1x6pifnn352636s74i1ncqzrzni46b";
       type = "gem";
     };
-    version = "0.2.29";
+    version = "0.2.31";
   };
   rex-zip = {
     groups = ["default"];
@@ -1156,10 +1156,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
+      sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
       type = "gem";
     };
-    version = "0.0.2";
+    version = "0.0.4";
   };
   ruby_smb = {
     groups = ["default"];
@@ -1206,10 +1206,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0b9v0xs4ksd68zckamv6rbrrqllpa9am0p29bycq9fxvlkqd7w2w";
+      sha256 = "06f7w6ph3bzzqk212yylfp4jfx275shgp9zg3xszbpv1ny2skp9m";
       type = "gem";
     };
-    version = "0.1.1";
+    version = "0.2.1";
   };
   sinatra = {
     groups = ["default"];
diff --git a/pkgs/tools/security/pwdsafety/default.nix b/pkgs/tools/security/pwdsafety/default.nix
new file mode 100644
index 00000000000..2a6ed328e49
--- /dev/null
+++ b/pkgs/tools/security/pwdsafety/default.nix
@@ -0,0 +1,25 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+}:
+
+buildGoModule rec {
+  pname = "pwdsafety";
+  version = "0.1.4";
+
+  src = fetchFromGitHub {
+    owner = "edoardottt";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1qnkabgc2924qg9x1ij51jq7lnxzcj1ygdp3x4mzi9gl532i191w";
+  };
+
+  vendorSha256 = "0avm4zwwqv476yrraaf5xkc1lac0mwnmzav5wckifws6r4x3xrsb";
+
+  meta = with lib; {
+    description = "Command line tool checking password safety";
+    homepage = "https://github.com/edoardottt/pwdsafety";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/sigurlx/default.nix b/pkgs/tools/security/sigurlx/default.nix
new file mode 100644
index 00000000000..b6908c27422
--- /dev/null
+++ b/pkgs/tools/security/sigurlx/default.nix
@@ -0,0 +1,25 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+}:
+
+buildGoModule rec {
+  pname = "sigurlx";
+  version = "2.1.0";
+
+  src = fetchFromGitHub {
+    owner = "drsigned";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1q5vy05387qx7h4xcccvn2z2ks1kiff3mfbd2w3w0l0a4qgz74xs";
+  };
+
+  vendorSha256 = "1bp6bf99rxlyg91pn1y228q18lawpykmvkl22cydmclms0q0n238";
+
+  meta = with lib; {
+    description = "Tool to map the attack surface of web applications";
+    homepage = "https://github.com/drsigned/sigurlx";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/system/kmon/default.nix b/pkgs/tools/system/kmon/default.nix
index 502579bb931..cb48a48ff49 100644
--- a/pkgs/tools/system/kmon/default.nix
+++ b/pkgs/tools/system/kmon/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kmon";
-  version = "1.5.1";
+  version = "1.5.3";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0j6w4rg2gybcy1cv812qixravy0z0xpp33snrng11q802zq3mkmq";
+    sha256 = "sha256-2cP3kZnjlMmN3nWRPh1M+hk+dyssGNpJjlluDsm702g=";
   };
 
-  cargoSha256 = "0x5s3yi5bv3h1k54lrgcvkpdkmfphvwhnrmk5lmk6xd9pxfh218p";
+  cargoSha256 = "sha256-JFDtmi10iCK66/2ovg8tGAgGDW8Y4b5IYkSbDqu0PmQ=";
 
   nativeBuildInputs = [ python3 ];
 
diff --git a/pkgs/tools/text/link-grammar/default.nix b/pkgs/tools/text/link-grammar/default.nix
index d3ecc519a5f..b5cfdcbfc0c 100644
--- a/pkgs/tools/text/link-grammar/default.nix
+++ b/pkgs/tools/text/link-grammar/default.nix
@@ -1,14 +1,16 @@
-{ lib, stdenv, fetchurl, pkg-config, python3, sqlite, libedit, zlib }:
+{ lib, stdenv, fetchurl, pkg-config, python3, sqlite, libedit, zlib, runCommand, dieHook }:
 
-stdenv.mkDerivation rec {
-  version = "5.8.0";
+let
+
+link-grammar = stdenv.mkDerivation rec {
+  version = "5.8.1";
   pname = "link-grammar";
 
   outputs = [ "bin" "out" "dev" "man" ];
 
   src = fetchurl {
     url = "http://www.abisource.com/downloads/${pname}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1v8ngx77nachxln68xpvyw2lh7z59pzsi99h8j0mnrm0gjsacrdd";
+    sha256 = "sha256-EcT/VR+lFpJX2sxXUIDGOwdceQ7awpmEqUZBoJk7UFs=";
   };
 
   nativeBuildInputs = [ pkg-config python3 ];
@@ -18,11 +20,30 @@ stdenv.mkDerivation rec {
     "--disable-java-bindings"
   ];
 
+  doCheck = true;
+
+  passthru.tests = {
+    quick = runCommand "link-grammar-quick-test" {
+      buildInputs = [
+        link-grammar
+        dieHook
+      ];
+    } ''
+      echo "Furiously sleep ideas green colorless." | link-parser en | grep "No complete linkages found." || die "Grammaticaly invalid sentence was parsed."
+      echo "Colorless green ideas sleep furiously." | link-parser en | grep "Found .* linkages." || die "Grammaticaly valid sentence was not parsed."
+      touch $out
+    '';
+  };
+
   meta = with lib; {
     description = "A Grammar Checking library";
     homepage = "https://www.abisource.com/projects/link-grammar/";
-    license = licenses.lgpl21;
+    changelog = "https://github.com/opencog/link-grammar/blob/link-grammar-${version}/ChangeLog";
+    license = licenses.lgpl21Only;
     maintainers = with maintainers; [ jtojnar ];
     platforms = platforms.unix;
   };
-}
+};
+
+in
+  link-grammar
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index cc1ef049c97..7d3332c3a7c 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -258,6 +258,8 @@ mapAliases ({
   inboxer = throw "inboxer has been removed as it is no longer maintained and no longer works as Google shut down the inbox service this package wrapped.";
   infiniband-diags = rdma-core; # added 2019-08-09
   inotifyTools = inotify-tools;
+  i-score = throw "i-score has been removed: abandoned upstream."; # added 2020-11-21
+  jamomacore = throw "jamomacore has been removed: abandoned upstream."; # added 2020-11-21
   jasper = throw "jasper has been removed: abandoned upstream with many vulnerabilities";
   jbuilder = dune; # added 2018-09-09
   jikes = throw "jikes was deprecated on 2019-10-07: abandoned by upstream";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 9c065ec325f..604cb5312e0 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2207,6 +2207,8 @@ in
 
   fast-cli = nodePackages.fast-cli;
 
+  fast-cpp-csv-parser = callPackage ../development/libraries/fast-cpp-csv-parser { };
+
   faudio = callPackage ../development/libraries/faudio { };
 
   fd = callPackage ../tools/misc/fd { };
@@ -5094,8 +5096,6 @@ in
 
   i2pd = callPackage ../tools/networking/i2pd { };
 
-  i-score = libsForQt514.callPackage ../applications/audio/i-score { };
-
   iasl = callPackage ../development/compilers/iasl { };
 
   iannix = libsForQt5.callPackage ../applications/audio/iannix { };
@@ -6322,6 +6322,8 @@ in
 
   netcdffortran = callPackage ../development/libraries/netcdf-fortran { };
 
+  networking-ts-cxx = callPackage ../development/libraries/networking-ts-cxx { };
+
   nco = callPackage ../development/libraries/nco { };
 
   ncftp = callPackage ../tools/networking/ncftp { };
@@ -11624,6 +11626,7 @@ in
   bingrep = callPackage ../development/tools/analysis/bingrep { };
 
   binutils-unwrapped = callPackage ../development/tools/misc/binutils {
+    autoreconfHook = if targetPlatform.isiOS then autoreconfHook269 else autoreconfHook;
     # FHS sys dirs presumably only have stuff for the build platform
     noSysDirs = (stdenv.targetPlatform != stdenv.hostPlatform) || noSysDirs;
   };
@@ -12194,8 +12197,6 @@ in
 
   jam = callPackage ../development/tools/build-managers/jam { };
 
-  jamomacore = callPackage ../development/libraries/audio/jamomacore { };
-
   jbake = callPackage ../development/tools/jbake { };
 
   jbang = callPackage ../development/tools/jbang { };
@@ -18231,6 +18232,8 @@ in
 
   sickrage = callPackage ../servers/sickbeard/sickrage.nix { };
 
+  sigurlx = callPackage ../tools/security/sigurlx { };
+
   sipwitch = callPackage ../servers/sip/sipwitch { };
 
   slimserver = callPackage ../servers/slimserver { };
@@ -22434,6 +22437,8 @@ in
 
   hipchat = callPackage ../applications/networking/instant-messengers/hipchat { };
 
+  hivelytracker = callPackage ../applications/audio/hivelytracker { };
+
   hledger = haskell.lib.justStaticExecutables haskellPackages.hledger;
   hledger-iadd = haskell.lib.justStaticExecutables haskellPackages.hledger-iadd;
   hledger-interest = haskell.lib.justStaticExecutables haskellPackages.hledger-interest;
@@ -24191,6 +24196,8 @@ in
 
   puremapping = callPackage ../applications/audio/pd-plugins/puremapping { };
 
+  pwdsafety = callPackage ../tools/security/pwdsafety { };
+
   pybitmessage = callPackage ../applications/networking/instant-messengers/pybitmessage { };
 
   qbittorrent = libsForQt5.callPackage ../applications/networking/p2p/qbittorrent { };
@@ -27093,6 +27100,7 @@ in
 
   zeroadPackages = dontRecurseIntoAttrs (callPackage ../games/0ad {
     wxGTK = wxGTK30;
+    stdenv = gcc9Stdenv;
   });
 
   zeroad = zeroadPackages.zeroad;
@@ -28884,6 +28892,8 @@ in
 
   rargs = callPackage ../tools/misc/rargs { };
 
+  rauc = callPackage ../tools/misc/rauc { };
+
   redprl = callPackage ../applications/science/logic/redprl { };
 
   renderizer = pkgs.callPackage ../development/tools/renderizer {};
@@ -29441,6 +29451,8 @@ in
 
   snowsql = callPackage ../applications/misc/snowsql {};
 
+  snowmachine = python3Packages.callPackage ../applications/snowmachine {};
+
   sidequest = callPackage ../applications/misc/sidequest {};
 
   maphosts = callPackage ../tools/networking/maphosts {};
@@ -29502,7 +29514,9 @@ in
 
   phonetisaurus = callPackage ../development/libraries/phonetisaurus {};
 
-  duti = callPackage ../os-specific/darwin/duti {};
+  duti = callPackage ../os-specific/darwin/duti {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
 
   dnstracer = callPackage ../tools/networking/dnstracer {
     inherit (darwin) libresolv;
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index a9c0c79ba8b..8a5b9bd6ae5 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -19038,6 +19038,7 @@ let
       description = "lib/Safe/Hole.pm";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       homepage = "https://github.com/toddr/Safe-Hole";
+      broken = stdenv.isDarwin;
     };
   };
 
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 35c725a036b..8f2d5c92bf2 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1159,6 +1159,8 @@ in {
 
   catalogue = callPackage ../development/python-modules/catalogue { };
 
+  catboost = callPackage ../development/python-modules/catboost { };
+
   cbeams = callPackage ../misc/cbeams { };
 
   cbor2 = callPackage ../development/python-modules/cbor2 { };
@@ -5278,8 +5280,6 @@ in {
 
   pydot = callPackage ../development/python-modules/pydot { inherit (pkgs) graphviz; };
 
-  pydotplus = callPackage ../development/python-modules/pydotplus { };
-
   pydrive = callPackage ../development/python-modules/pydrive { };
 
   pydsdl = callPackage ../development/python-modules/pydsdl { };
@@ -6033,6 +6033,8 @@ in {
 
   pytest-httpbin = callPackage ../development/python-modules/pytest-httpbin { };
 
+  pytest-instafail = callPackage ../development/python-modules/pytest-instafail { };
+
   pytest-isort = callPackage ../development/python-modules/pytest-isort { };
 
   pytest-lazy-fixture = callPackage ../development/python-modules/pytest-lazy-fixture { };