about summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xlib/tests/modules.sh2
-rw-r--r--lib/types.nix6
-rw-r--r--nixos/modules/security/wrappers/wrapper.c38
-rw-r--r--nixos/modules/services/misc/nitter.nix2
-rw-r--r--nixos/modules/services/networking/ddclient.nix2
-rw-r--r--nixos/tests/keepassxc.nix4
-rw-r--r--pkgs/applications/blockchains/clightning/default.nix4
-rw-r--r--pkgs/applications/misc/keepassx/community.nix37
-rw-r--r--pkgs/applications/misc/keepassx/darwin.patch56
-rw-r--r--pkgs/applications/misc/system76-keyboard-configurator/default.nix40
-rw-r--r--pkgs/applications/misc/yubioath-desktop/default.nix31
-rw-r--r--pkgs/applications/networking/browsers/firefox/common.nix10
-rw-r--r--pkgs/applications/networking/cluster/k0sctl/default.nix24
-rw-r--r--pkgs/applications/networking/cluster/kube-router/default.nix26
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/providers.json176
-rw-r--r--pkgs/applications/networking/cluster/tilt/default.nix4
-rw-r--r--pkgs/applications/science/math/lrcalc/default.nix14
-rw-r--r--pkgs/applications/science/math/sage/default.nix10
-rw-r--r--pkgs/applications/science/math/sage/patches/Only-test-external-software-when-all-of-sage-is.patch46
-rw-r--r--pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch2
-rw-r--r--pkgs/applications/science/math/sage/patches/docutils-0.18.1-deprecation.patch4
-rw-r--r--pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch17
-rw-r--r--pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix2
-rw-r--r--pkgs/applications/science/math/sage/sage-env.nix2
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix89
-rw-r--r--pkgs/applications/science/math/sage/sage.nix15
-rw-r--r--pkgs/applications/science/math/sage/sagedoc.nix16
-rw-r--r--pkgs/applications/science/math/sage/sagelib.nix8
-rw-r--r--pkgs/applications/video/makemkv/default.nix2
-rw-r--r--pkgs/applications/video/mpc-qt/default.nix19
-rw-r--r--pkgs/build-support/trivial-builders.nix8
-rwxr-xr-xpkgs/desktops/gnome/extensions/update-extensions.py4
-rw-r--r--pkgs/development/coq-modules/interval/default.nix4
-rw-r--r--pkgs/development/interpreters/bats/default.nix99
-rw-r--r--pkgs/development/libraries/bullet/default.nix4
-rw-r--r--pkgs/development/libraries/folly/default.nix4
-rw-r--r--pkgs/development/libraries/gtk/4.x.nix4
-rw-r--r--pkgs/development/libraries/libdigidocpp/default.nix4
-rw-r--r--pkgs/development/nim-packages/jsony/default.nix4
-rw-r--r--pkgs/development/nim-packages/supersnappy/default.nix4
-rw-r--r--pkgs/development/python-modules/cheroot/default.nix1
-rw-r--r--pkgs/development/python-modules/django-anymail/default.nix6
-rw-r--r--pkgs/development/python-modules/dulwich/default.nix6
-rw-r--r--pkgs/development/python-modules/embrace/default.nix7
-rw-r--r--pkgs/development/python-modules/gcal-sync/default.nix4
-rw-r--r--pkgs/development/python-modules/geocachingapi/default.nix4
-rw-r--r--pkgs/development/python-modules/ijson/default.nix8
-rw-r--r--pkgs/development/python-modules/lrcalc-python/default.nix31
-rw-r--r--pkgs/development/python-modules/manuel/default.nix4
-rw-r--r--pkgs/development/python-modules/ocrmypdf/default.nix4
-rw-r--r--pkgs/development/python-modules/pex/default.nix4
-rw-r--r--pkgs/development/python-modules/pikepdf/default.nix4
-rw-r--r--pkgs/development/python-modules/pycep-parser/default.nix6
-rw-r--r--pkgs/development/python-modules/pylsp-mypy/default.nix6
-rw-r--r--pkgs/development/python-modules/pynx584/default.nix4
-rw-r--r--pkgs/development/python-modules/pyskyqhub/default.nix4
-rw-r--r--pkgs/development/python-modules/pywlroots/default.nix4
-rw-r--r--pkgs/development/python-modules/sanic/default.nix3
-rw-r--r--pkgs/development/python-modules/torchmetrics/default.nix6
-rw-r--r--pkgs/development/python-modules/twentemilieu/default.nix4
-rw-r--r--pkgs/development/tools/fx/default.nix6
-rw-r--r--pkgs/development/tools/misc/devspace/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/merlin/4.x.nix11
-rw-r--r--pkgs/development/tools/systemfd/Cargo.nix215
-rw-r--r--pkgs/development/tools/systemfd/crates-io.list62
-rw-r--r--pkgs/development/tools/systemfd/crates-io.nix1890
-rw-r--r--pkgs/development/tools/systemfd/default.nix44
-rw-r--r--pkgs/os-specific/linux/microcode/intel.nix4
-rw-r--r--pkgs/servers/frr/default.nix45
-rw-r--r--pkgs/servers/libreddit/default.nix6
-rw-r--r--pkgs/servers/nitter/default.nix7
-rw-r--r--pkgs/servers/wishlist/default.nix6
-rw-r--r--pkgs/tools/filesystems/afpfs-ng/default.nix6
-rw-r--r--pkgs/tools/misc/oci-image-tool/default.nix23
-rw-r--r--pkgs/tools/networking/cdpr/default.nix11
-rw-r--r--pkgs/tools/security/clamav/default.nix40
-rw-r--r--pkgs/tools/security/clamav/remove-freshclam-test.patch20
-rw-r--r--pkgs/tools/security/gnupg/1.nix6
-rw-r--r--pkgs/top-level/aliases.nix1
-rw-r--r--pkgs/top-level/all-packages.nix12
-rw-r--r--pkgs/top-level/python-packages.nix2
81 files changed, 639 insertions, 2749 deletions
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh
index cc13a8d38e375..82d3dd96e88bb 100755
--- a/lib/tests/modules.sh
+++ b/lib/tests/modules.sh
@@ -313,7 +313,7 @@ checkConfigOutput "bar" config.priorities ./raw.nix
 
 ## Option collision
 checkConfigError \
-  'The option .set. in module .*/declare-set.nix. would be a parent of the following options, but its type .attribute set of signed integers. does not support nested options.\n\s*- option[(]s[)] with prefix .set.enable. in module .*/declare-enable-nested.nix.' \
+  'The option .set. in module .*/declare-set.nix. would be a parent of the following options, but its type .attribute set of signed integer. does not support nested options.\n\s*- option[(]s[)] with prefix .set.enable. in module .*/declare-enable-nested.nix.' \
   config.set \
   ./declare-set.nix ./declare-enable-nested.nix
 
diff --git a/lib/types.nix b/lib/types.nix
index 91b040d24553b..e4b3f358d1c9a 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -397,7 +397,7 @@ rec {
 
     listOf = elemType: mkOptionType rec {
       name = "listOf";
-      description = "list of ${elemType.description}s";
+      description = "list of ${elemType.description}";
       check = isList;
       merge = loc: defs:
         map (x: x.value) (filter (x: x ? value) (concatLists (imap1 (n: def:
@@ -426,7 +426,7 @@ rec {
 
     attrsOf = elemType: mkOptionType rec {
       name = "attrsOf";
-      description = "attribute set of ${elemType.description}s";
+      description = "attribute set of ${elemType.description}";
       check = isAttrs;
       merge = loc: defs:
         mapAttrs (n: v: v.value) (filterAttrs (n: v: v ? value) (zipAttrsWith (name: defs:
@@ -449,7 +449,7 @@ rec {
     # error that it's not defined. Use only if conditional definitions don't make sense.
     lazyAttrsOf = elemType: mkOptionType rec {
       name = "lazyAttrsOf";
-      description = "lazy attribute set of ${elemType.description}s";
+      description = "lazy attribute set of ${elemType.description}";
       check = isAttrs;
       merge = loc: defs:
         zipAttrsWith (name: defs:
diff --git a/nixos/modules/security/wrappers/wrapper.c b/nixos/modules/security/wrappers/wrapper.c
index 529669facda87..a21ec500208df 100644
--- a/nixos/modules/security/wrappers/wrapper.c
+++ b/nixos/modules/security/wrappers/wrapper.c
@@ -2,12 +2,12 @@
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
+#include <stdnoreturn.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/xattr.h>
 #include <fcntl.h>
 #include <dirent.h>
-#include <assert.h>
 #include <errno.h>
 #include <linux/capability.h>
 #include <sys/prctl.h>
@@ -16,10 +16,7 @@
 #include <syscall.h>
 #include <byteswap.h>
 
-// Make sure assertions are not compiled out, we use them to codify
-// invariants about this program and we want it to fail fast and
-// loudly if they are violated.
-#undef NDEBUG
+#define ASSERT(expr) ((expr) ? (void) 0 : assert_failure(#expr))
 
 extern char **environ;
 
@@ -38,6 +35,12 @@ static char *wrapper_debug = "WRAPPER_DEBUG";
 #define LE32_TO_H(x) (x)
 #endif
 
+static noreturn void assert_failure(const char *assertion) {
+    fprintf(stderr, "Assertion `%s` in NixOS's wrapper.c failed.\n", assertion);
+    fflush(stderr);
+    abort();
+}
+
 int get_last_cap(unsigned *last_cap) {
     FILE* file = fopen("/proc/sys/kernel/cap_last_cap", "r");
     if (file == NULL) {
@@ -167,6 +170,7 @@ int readlink_malloc(const char *p, char **ret) {
 }
 
 int main(int argc, char **argv) {
+    ASSERT(argc >= 1);
     char *self_path = NULL;
     int self_path_size = readlink_malloc("/proc/self/exe", &self_path);
     if (self_path_size < 0) {
@@ -181,36 +185,36 @@ int main(int argc, char **argv) {
     int len = strlen(wrapper_dir);
     if (len > 0 && '/' == wrapper_dir[len - 1])
       --len;
-    assert(!strncmp(self_path, wrapper_dir, len));
-    assert('/' == wrapper_dir[0]);
-    assert('/' == self_path[len]);
+    ASSERT(!strncmp(self_path, wrapper_dir, len));
+    ASSERT('/' == wrapper_dir[0]);
+    ASSERT('/' == self_path[len]);
 
     // Make *really* *really* sure that we were executed as
     // `self_path', and not, say, as some other setuid program. That
     // is, our effective uid/gid should match the uid/gid of
     // `self_path'.
     struct stat st;
-    assert(lstat(self_path, &st) != -1);
+    ASSERT(lstat(self_path, &st) != -1);
 
-    assert(!(st.st_mode & S_ISUID) || (st.st_uid == geteuid()));
-    assert(!(st.st_mode & S_ISGID) || (st.st_gid == getegid()));
+    ASSERT(!(st.st_mode & S_ISUID) || (st.st_uid == geteuid()));
+    ASSERT(!(st.st_mode & S_ISGID) || (st.st_gid == getegid()));
 
     // And, of course, we shouldn't be writable.
-    assert(!(st.st_mode & (S_IWGRP | S_IWOTH)));
+    ASSERT(!(st.st_mode & (S_IWGRP | S_IWOTH)));
 
     // Read the path of the real (wrapped) program from <self>.real.
     char real_fn[PATH_MAX + 10];
     int real_fn_size = snprintf(real_fn, sizeof(real_fn), "%s.real", self_path);
-    assert(real_fn_size < sizeof(real_fn));
+    ASSERT(real_fn_size < sizeof(real_fn));
 
     int fd_self = open(real_fn, O_RDONLY);
-    assert(fd_self != -1);
+    ASSERT(fd_self != -1);
 
     char source_prog[PATH_MAX];
     len = read(fd_self, source_prog, PATH_MAX);
-    assert(len != -1);
-    assert(len < sizeof(source_prog));
-    assert(len > 0);
+    ASSERT(len != -1);
+    ASSERT(len < sizeof(source_prog));
+    ASSERT(len > 0);
     source_prog[len] = 0;
 
     close(fd_self);
diff --git a/nixos/modules/services/misc/nitter.nix b/nixos/modules/services/misc/nitter.nix
index 97005c9d914f7..5bf0e6bc00893 100644
--- a/nixos/modules/services/misc/nitter.nix
+++ b/nixos/modules/services/misc/nitter.nix
@@ -277,7 +277,7 @@ in
           Add settings here to override NixOS module generated settings.
 
           Check the official repository for the available settings:
-          https://github.com/zedeus/nitter/blob/master/nitter.conf
+          https://github.com/zedeus/nitter/blob/master/nitter.example.conf
         '';
       };
 
diff --git a/nixos/modules/services/networking/ddclient.nix b/nixos/modules/services/networking/ddclient.nix
index d025c8f8177a8..faee99b175eb4 100644
--- a/nixos/modules/services/networking/ddclient.nix
+++ b/nixos/modules/services/networking/ddclient.nix
@@ -181,7 +181,7 @@ with lib;
       };
 
       verbose = mkOption {
-        default = true;
+        default = false;
         type = bool;
         description = ''
           Print verbose information.
diff --git a/nixos/tests/keepassxc.nix b/nixos/tests/keepassxc.nix
index d0f353c71e0ba..303be13304057 100644
--- a/nixos/tests/keepassxc.nix
+++ b/nixos/tests/keepassxc.nix
@@ -62,7 +62,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
         machine.send_key("tab")
         machine.send_chars("/home/alice/foo.keyfile")
         machine.send_key("ret")
-        # Passwords folder is displayed
-        machine.wait_for_text("Passwords")
+        # Database is unlocked (doesn't have "[Locked]" in the title anymore)
+        machine.wait_for_text("foo.kdbx - KeePassXC")
   '';
 })
diff --git a/pkgs/applications/blockchains/clightning/default.nix b/pkgs/applications/blockchains/clightning/default.nix
index 2ac761edd0085..2cf31ae3c95fb 100644
--- a/pkgs/applications/blockchains/clightning/default.nix
+++ b/pkgs/applications/blockchains/clightning/default.nix
@@ -21,11 +21,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "clightning";
-  version = "0.11.0.1";
+  version = "0.11.1";
 
   src = fetchurl {
     url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
-    sha256 = "e2ad6eead19a0cd8869e291c27d318cf553bb015339c1f0e8d8b30e7bc0910d8";
+    sha256 = "0vsh6gpv3458pfc5cggay9pw7bxjzyxpcniks9b2s3y1rxwk15xi";
   };
 
   # when building on darwin we need dawin.cctools to provide the correct libtool
diff --git a/pkgs/applications/misc/keepassx/community.nix b/pkgs/applications/misc/keepassx/community.nix
index c2e7ae58eb3c1..3daebeaabc977 100644
--- a/pkgs/applications/misc/keepassx/community.nix
+++ b/pkgs/applications/misc/keepassx/community.nix
@@ -5,34 +5,31 @@
 , darwin
 
 , asciidoctor
+, botan2
 , curl
-, glibcLocales
 , libXi
 , libXtst
 , libargon2
-, libgcrypt
-, libgpg-error
-, libsodium
-, libyubikey
+, libusb1
+, minizip
+, pcsclite
 , pkg-config
 , qrencode
 , qtbase
 , qtmacextras
 , qtsvg
 , qtx11extras
-, quazip
 , readline
 , wrapGAppsHook
 , wrapQtAppsHook
-, yubikey-personalization
 , zlib
 
 , withKeePassBrowser ? true
 , withKeePassKeeShare ? true
-, withKeePassKeeShareSecure ? true
 , withKeePassSSHAgent ? true
 , withKeePassNetworking ? true
 , withKeePassTouchID ? true
+, withKeePassYubiKey ? true
 , withKeePassFDOSecrets ? true
 
 , nixosTests
@@ -42,13 +39,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "keepassxc";
-  version = "2.6.6";
+  version = "2.7.1";
 
   src = fetchFromGitHub {
     owner = "keepassxreboot";
     repo = "keepassxc";
     rev = version;
-    sha256 = "15rm3avdmc2x2n92zq6w1zbcranak4j6dds2sxmgdqi1ffc0a3ci";
+    sha256 = "sha256-BOtehDzlWhhfXj8TOFvFN4f86Hl2EC3rO4qUIl9fqq4=";
   };
 
   NIX_CFLAGS_COMPILE = optionalString stdenv.cc.isClang [
@@ -66,15 +63,12 @@ stdenv.mkDerivation rec {
   cmakeFlags = [
     "-DKEEPASSXC_BUILD_TYPE=Release"
     "-DWITH_GUI_TESTS=ON"
-    "-DWITH_XC_AUTOTYPE=ON"
     "-DWITH_XC_UPDATECHECK=OFF"
-    "-DWITH_XC_YUBIKEY=ON"
   ]
   ++ (optional withKeePassBrowser "-DWITH_XC_BROWSER=ON")
   ++ (optional withKeePassKeeShare "-DWITH_XC_KEESHARE=ON")
-  ++ (optional withKeePassKeeShareSecure "-DWITH_XC_KEESHARE_SECURE=ON")
   ++ (optional withKeePassNetworking "-DWITH_XC_NETWORKING=ON")
-  ++ (optional (withKeePassTouchID && stdenv.isDarwin) "-DWITH_XC_TOUCHID=ON")
+  ++ (optional (withKeePassYubiKey && stdenv.isLinux) "-DWITH_XC_YUBIKEY=ON")
   ++ (optional (withKeePassFDOSecrets && stdenv.isLinux) "-DWITH_XC_FDOSECRETS=ON")
   ++ (optional withKeePassSSHAgent "-DWITH_XC_SSHAGENT=ON");
 
@@ -95,26 +89,22 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     curl
-    glibcLocales
+    botan2
     libXi
     libXtst
     libargon2
-    libgcrypt
-    libgpg-error
-    libsodium
-    libyubikey
+    minizip
+    pcsclite
     qrencode
     qtbase
     qtsvg
     qtx11extras
     readline
-    yubikey-personalization
     zlib
   ]
-  ++ optional withKeePassKeeShareSecure quazip
+  ++ optional stdenv.isLinux libusb1
   ++ optional stdenv.isDarwin qtmacextras
-  ++ optional (stdenv.isDarwin && withKeePassTouchID)
-    darwin.apple_sdk.frameworks.LocalAuthentication;
+  ++ optional (stdenv.isDarwin && withKeePassTouchID) darwin.apple_sdk.frameworks.LocalAuthentication;
 
   passthru.tests = nixosTests.keepassxc;
 
@@ -131,5 +121,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ jonafato turion ];
     platforms = platforms.linux ++ platforms.darwin;
+    broken = stdenv.isDarwin;  # see to https://github.com/NixOS/nixpkgs/issues/172165
   };
 }
diff --git a/pkgs/applications/misc/keepassx/darwin.patch b/pkgs/applications/misc/keepassx/darwin.patch
index 95ca5d4587fea..1ec7db5863635 100644
--- a/pkgs/applications/misc/keepassx/darwin.patch
+++ b/pkgs/applications/misc/keepassx/darwin.patch
@@ -8,46 +8,30 @@ index 74b1a7ff..0a713a32 100644
  elseif(APPLE AND WITH_APP_BUNDLE)
 +    set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/Applications")
      set(BUNDLE_INSTALL_DIR "${PROGNAME}.app/Contents")
-     set(CMAKE_INSTALL_MANDIR "${PROGNAME}.app/Contents/Resources/man")
-     set(CLI_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS")
-@@ -369,12 +370,6 @@ set(CMAKE_AUTORCC ON)
+     set(CMAKE_INSTALL_MANDIR "${BUNDLE_INSTALL_DIR}/Resources/man")
+     set(CLI_INSTALL_DIR "${BUNDLE_INSTALL_DIR}/MacOS")
+@@ -470,11 +470,6 @@ set(CMAKE_AUTORCC ON)
  
  if(APPLE)
      set(CMAKE_MACOSX_RPATH TRUE)
--    find_program(MACDEPLOYQT_EXE macdeployqt HINTS ${Qt5_PREFIX}/bin ENV PATH)
+-    find_program(MACDEPLOYQT_EXE macdeployqt HINTS ${Qt5_PREFIX}/bin ${Qt5_PREFIX}/tools/qt5/bin ENV PATH)
 -    if(NOT MACDEPLOYQT_EXE)
 -        message(FATAL_ERROR "macdeployqt is required to build on macOS")
--    else()
--        message(STATUS "Using macdeployqt: ${MACDEPLOYQT_EXE}")
 -    endif()
- elseif(MINGW)
-     find_program(WINDEPLOYQT_EXE windeployqt HINTS ${Qt5_PREFIX}/bin ENV PATH)
-     if(NOT WINDEPLOYQT_EXE)
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index f142f368..0742512d 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -351,11 +351,6 @@ if(APPLE AND WITH_APP_BUNDLE)
-     set(CPACK_PACKAGE_FILE_NAME "${PROGNAME}-${KEEPASSXC_VERSION}")
-     include(CPack)
+-    message(STATUS "Using macdeployqt: ${MACDEPLOYQT_EXE}")
+     set(MACDEPLOYQT_EXTRA_BINARIES "")
+ elseif(WIN32)
+     find_program(WINDEPLOYQT_EXE windeployqt HINTS ${Qt5_PREFIX}/bin ${Qt5_PREFIX}/tools/qt5/bin ENV PATH)
+diff --git a/src/post_install/CMakeLists.txt b/src/post_install/CMakeLists.txt
+index 359c891f..a6a061a3 100644
+--- a/src/post_install/CMakeLists.txt
++++ b/src/post_install/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ # The install commands in this subdirectory will be executed after all the install commands in the
+ # current scope are ran. It is required for correct functtioning of macdeployqt.
  
--    add_custom_command(TARGET ${PROGNAME}
--            POST_BUILD
--            COMMAND ${MACDEPLOYQT_EXE} ${PROGNAME}.app
--            WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
--            COMMENT "Deploying app bundle")
- endif()
- 
- install(TARGETS ${PROGNAME}
-diff --git a/src/autotype/mac/CMakeLists.txt b/src/autotype/mac/CMakeLists.txt
-index 7427450a..a0a58d71 100644
---- a/src/autotype/mac/CMakeLists.txt
-+++ b/src/autotype/mac/CMakeLists.txt
-@@ -8,7 +8,6 @@ if(WITH_APP_BUNDLE)
-     add_custom_command(TARGET keepassx-autotype-cocoa
-             POST_BUILD
-             COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/libkeepassx-autotype-cocoa.so ${PLUGIN_INSTALL_DIR}
--            COMMAND ${MACDEPLOYQT_EXE} ${PROGNAME}.app -executable=${PLUGIN_INSTALL_DIR}/libkeepassx-autotype-cocoa.so -no-plugins
-             WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
-             COMMENT "Deploying autotype plugin")
- else()
+-if(APPLE AND WITH_APP_BUNDLE)
++if(FALSE)
+     # Run macdeloyqt on the main app and any extra binaries and plugins as specified by the
+     # _MACDEPLOYQT_EXTRA_BINARIES global property.
+     # All install(TARGETS) calls should have already been called.
diff --git a/pkgs/applications/misc/system76-keyboard-configurator/default.nix b/pkgs/applications/misc/system76-keyboard-configurator/default.nix
new file mode 100644
index 0000000000000..2708fb04a610b
--- /dev/null
+++ b/pkgs/applications/misc/system76-keyboard-configurator/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchFromGitHub, rustPlatform, gtk3, glib, wrapGAppsHook, libusb1, hidapi, udev, pkgconfig }:
+
+# system76-keyboard-configurator tries to spawn a daemon as root via pkexec, so
+# your system needs a PolicyKit authentication agent running for the
+# configurator to work.
+
+rustPlatform.buildRustPackage rec {
+  pname = "system76-keyboard-configurator";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "pop-os";
+    repo = "keyboard-configurator";
+    rev = "v${version}";
+    sha256 = "sha256-CVCXNPmc/0T8vkxfU+i1nSbfusZGFVkLEveSoCePK0M=";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    glib # for glib-compile-resources
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtk3
+    hidapi
+    libusb1
+    udev
+  ];
+
+  cargoSha256 = "sha256-/p2cVxOvWKkcVOYIR0N8tQSCniw+QhXhC+pus4NsQ8k=";
+
+  meta = with lib; {
+    description = "Keyboard configuration application for System76 keyboards and laptops";
+    homepage = "https://github.com/pop-os/keyboard-configurator";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ mirrexagon ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/yubioath-desktop/default.nix b/pkgs/applications/misc/yubioath-desktop/default.nix
index 3d35e3658e568..8a1645239082c 100644
--- a/pkgs/applications/misc/yubioath-desktop/default.nix
+++ b/pkgs/applications/misc/yubioath-desktop/default.nix
@@ -1,27 +1,38 @@
-{ lib, stdenv, fetchurl, mkDerivation
-, qmake, qtbase, qtquickcontrols2, qtgraphicaleffects
-, python3, pyotherside
-, pcsclite, yubikey-personalization
-, yubikey-manager, makeWrapper }:
+{ lib
+, stdenv
+, fetchurl
+, mkDerivation
+, qmake
+, qtbase
+, qtquickcontrols2
+, qtgraphicaleffects
+, qtmultimedia
+, python3
+, pyotherside
+, pcsclite
+, yubikey-personalization
+, yubikey-manager
+, makeWrapper
+}:
 
 mkDerivation rec {
   pname = "yubioath-desktop";
-  version = "5.0.5";
+  version = "5.1.0";
 
   src = fetchurl {
     url = "https://developers.yubico.com/yubioath-desktop/Releases/yubioath-desktop-${version}.tar.gz";
-    sha256 = "05xs6xh9pi50h0668arirj0gnz11adpixgsdkds072077gasdm0g";
+    hash = "sha256-Lm9F4eaG9T5brAV7XDAkoj0WClmXEYIhuUzh2rk0oc0=";
   };
 
   doCheck = false;
 
-  buildInputs = [ qtbase qtquickcontrols2 qtgraphicaleffects python3 ];
+  buildInputs = [ qtbase qtquickcontrols2 qtgraphicaleffects qtmultimedia python3 ];
 
   nativeBuildInputs = [ qmake makeWrapper python3.pkgs.wrapPython ];
 
   postPatch = ''
-    substituteInPlace deployment.pri \
-      --replace '/usr/bin' "$out/bin"
+    substituteInPlace QZXing/QZXing-components.pri \
+      --replace 'target.path = $$PREFIX/lib' 'target.path = $$PREFIX/bin'
   '';
 
   pythonPath = [ yubikey-manager ];
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix
index 25eb34c95e826..004a69cf09e21 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -171,8 +171,8 @@ buildStdenv.mkDerivation ({
 
   outputs = [
     "out"
-    "symbols"
-  ];
+  ]
+  ++ lib.optionals crashreporterSupport [ "symbols" ];
 
   # Add another configure-build-profiling run before the final configure phase if we build with pgo
   preConfigurePhases = lib.optionals pgoSupport [
@@ -202,7 +202,6 @@ buildStdenv.mkDerivation ({
   nativeBuildInputs = [
     autoconf
     cargo
-    dump_syms
     llvmPackages.llvm # llvm-objdump
     makeWrapper
     nodejs
@@ -216,6 +215,7 @@ buildStdenv.mkDerivation ({
     which
     wrapGAppsHook
   ]
+  ++ lib.optionals crashreporterSupport [ dump_syms ]
   ++ lib.optionals pgoSupport [ xvfb-run ]
   ++ extraNativeBuildInputs;
 
@@ -421,11 +421,11 @@ buildStdenv.mkDerivation ({
 
   # Generate build symbols once after the final build
   # https://firefox-source-docs.mozilla.org/crash-reporting/uploading_symbol.html
-  preInstall = ''
+  preInstall = lib.optionalString crashreporterSupport ''
     ./mach buildsymbols
     mkdir -p $symbols/
     cp mozobj/dist/*.crashreporter-symbols.zip $symbols/
-
+  '' + ''
     cd mozobj
   '';
 
diff --git a/pkgs/applications/networking/cluster/k0sctl/default.nix b/pkgs/applications/networking/cluster/k0sctl/default.nix
index 256d7e6422552..b30a7174902d0 100644
--- a/pkgs/applications/networking/cluster/k0sctl/default.nix
+++ b/pkgs/applications/networking/cluster/k0sctl/default.nix
@@ -1,20 +1,29 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
+, fetchpatch
+, installShellFiles
 }:
 
 buildGoModule rec {
   pname = "k0sctl";
-  version = "0.11.4";
+  version = "0.12.6";
 
   src = fetchFromGitHub {
     owner = "k0sproject";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Fk1aYSa3LqzxiHtlzH5pcNtodOprjfnCFh4UMqCa6Rc=";
+    sha256 = "sha256-TkkMO6xBHY5t5Rpd0ieSDXMrnQ+Xdq+65Rk93ZkYcUs=";
   };
 
-  vendorSha256 = "sha256-21C6wZ8lKQnbUg3aD0ZFVOgopblXyWk4WP/ubZVk3Yk=";
+  vendorSha256 = "sha256-nTAuvHcsJiW0XYX5GM1SL8cnOhwdrj6iw8tuAkEWNzQ=";
+
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/k0sproject/${pname}/commit/22c694ab0335a1e6146d0d3f939ef79d2c005a3d.patch";
+      sha256 = "sha256-Ftq/vbQd5ArdHboDt6NdyuqpFalHVnsQBdpmyDG/t5Q=";
+    })
+  ];
 
   ldflags = [
     "-s"
@@ -23,6 +32,15 @@ buildGoModule rec {
     "-X github.com/k0sproject/k0sctl/version.Version=${version}"
   ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    for shell in bash zsh fish; do
+      installShellCompletion --cmd ${pname} \
+        --$shell <($out/bin/${pname} completion --shell $shell)
+    done
+  '';
+
   meta = with lib; {
     description = "A bootstrapping and management tool for k0s clusters.";
     homepage = "https://k0sproject.io/";
diff --git a/pkgs/applications/networking/cluster/kube-router/default.nix b/pkgs/applications/networking/cluster/kube-router/default.nix
index b9a282b5cd161..c74fdbc749d47 100644
--- a/pkgs/applications/networking/cluster/kube-router/default.nix
+++ b/pkgs/applications/networking/cluster/kube-router/default.nix
@@ -1,23 +1,33 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, testers, kube-router }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "kube-router";
-  version = "1.2.2";
-
-  goPackagePath = "github.com/cloudnativelabs/kube-router";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "cloudnativelabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/VToLQexvRtcBU+k8WnGEcfLfxme/hgRnhU8723BEFU=";
+    sha256 = "sha256-WBnJPCZHtJWckoFvE8e+eAa2EC/RA7yOMlW+Cemw53Q=";
   };
 
+  vendorSha256 = "sha256-5co+288KZf/dx/jZ7xIGh6kxuW3DdbpAsrZgYob3nWk=";
+
+  CGO_ENABLED = 0;
+
   ldflags = [
-    "-X ${goPackagePath}/pkg/cmd.version=${version}"
-    "-X ${goPackagePath}/pkg/cmd.buildDate=Nix"
+    "-s"
+    "-w"
+    "-X github.com/cloudnativelabs/kube-router/pkg/version.Version=${version}"
+    "-X github.com/cloudnativelabs/kube-router/pkg/version.BuildDate=Nix"
   ];
 
+  checkFlags = [ "-short" ];
+
+  passthru.tests.version = testers.testVersion {
+    package = kube-router;
+  };
+
   meta = with lib; {
     homepage = "https://www.kube-router.io/";
     description = "All-in-one router, firewall and service proxy for Kubernetes";
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 82e0d6ff85173..94fcafcb48cb6 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -3,10 +3,10 @@
     "owner": "CiscoDevNet",
     "provider-source-address": "registry.terraform.io/CiscoDevNet/aci",
     "repo": "terraform-provider-aci",
-    "rev": "v2.1.0",
-    "sha256": "sha256-7fOvTEinJUpSaCnlP+191VTSEpE4z11+HUcH2iTFj60=",
+    "rev": "v2.2.1",
+    "sha256": "sha256-WYKlkvGmTeaI4+7uWLy6/y+NtFb9n3Lu9lrwSR8Vg/0=",
     "vendorSha256": null,
-    "version": "2.1.0"
+    "version": "2.2.1"
   },
   "acme": {
     "owner": "vancluever",
@@ -30,10 +30,10 @@
     "owner": "aiven",
     "provider-source-address": "registry.terraform.io/aiven/aiven",
     "repo": "terraform-provider-aiven",
-    "rev": "v2.7.3",
-    "sha256": "sha256-ZAYnP2XEa2eJ0YZkqXQedRysmQI31RQ1osg/TqCqthE=",
-    "vendorSha256": "sha256-nBVLgOrtINrDziQLdqo5rFWfeY/cOdBW/XVDjtNaNhE=",
-    "version": "2.7.3"
+    "rev": "v3.0.0",
+    "sha256": "sha256-k3F6AUcGAddDD3Wy1THgTlcNzDBB403Vy+6c+avi+vQ=",
+    "vendorSha256": "sha256-gVZpN7Hwi+PbJDgEHSJRYq0tC1GVcetfPBY5pGhMPAc=",
+    "version": "3.0.0"
   },
   "akamai": {
     "owner": "akamai",
@@ -49,10 +49,10 @@
     "owner": "aliyun",
     "provider-source-address": "registry.terraform.io/aliyun/alicloud",
     "repo": "terraform-provider-alicloud",
-    "rev": "v1.166.0",
-    "sha256": "sha256-+aRRsN3ALTmQOnDciHjoVFKV/W+/gjtdZeg3eyJ+0fY=",
-    "vendorSha256": "sha256-2w8o0Fc61ayyUyE4RVcmV4A0heuaIXnOZX040l2ws/Y=",
-    "version": "1.166.0"
+    "rev": "v1.167.0",
+    "sha256": "sha256-l2wCcYcAlKQTKkD+3yFi4zBkMVpq27Ygld1UjeD6IHM=",
+    "vendorSha256": "sha256-qZNYfSlUkCu7FudbKF4IOgK1xWM5LqUghclOeGOxYXg=",
+    "version": "1.167.0"
   },
   "ansible": {
     "owner": "nbering",
@@ -94,19 +94,19 @@
     "owner": "AviatrixSystems",
     "provider-source-address": "registry.terraform.io/AviatrixSystems/aviatrix",
     "repo": "terraform-provider-aviatrix",
-    "rev": "v2.21.2",
-    "sha256": "sha256-crC/FKAahv1E7TiLf1XaP5ltrXPuudfki2BdggOW+v4=",
+    "rev": "v2.22.0",
+    "sha256": "sha256-ZJs9XtoftMihY9VwWw0lPxH2Nu6NmcEcchsRg71os0c=",
     "vendorSha256": null,
-    "version": "2.21.2"
+    "version": "2.22.0"
   },
   "aws": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/aws",
     "repo": "terraform-provider-aws",
-    "rev": "v4.13.0",
-    "sha256": "sha256-KEu+7hKMWsrpS1WYxj3El7M43Chy9HTBjePhWO6bXMo=",
-    "vendorSha256": "sha256-Ez6uCriNm1OJ2EyMAyjXihzJ/Pzf2p/oAvJ3HN6fDnA=",
-    "version": "4.13.0"
+    "rev": "v4.14.0",
+    "sha256": "sha256-9xJVJw2kIutmmiKGvRBKS+/oyGSq0dipeCn2Gmtk1AU=",
+    "vendorSha256": "sha256-+YINrbj52ionuQbcgck6Dp2h88+LS5tXPmoVHXCAXOk=",
+    "version": "4.14.0"
   },
   "azuread": {
     "owner": "hashicorp",
@@ -121,10 +121,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/azurerm",
     "repo": "terraform-provider-azurerm",
-    "rev": "v3.5.0",
-    "sha256": "sha256-LF2Mqj/w1AtoYVGkZJsFpz81cfoUR80PURIsYoIYfsI=",
+    "rev": "v3.6.0",
+    "sha256": "sha256-brC9HZbyettgvwuFjrPxeRg/msQ1leD7F/h9aUxXAYo=",
     "vendorSha256": null,
-    "version": "3.5.0"
+    "version": "3.6.0"
   },
   "azurestack": {
     "owner": "hashicorp",
@@ -157,10 +157,10 @@
     "owner": "DrFaust92",
     "provider-source-address": "registry.terraform.io/DrFaust92/bitbucket",
     "repo": "terraform-provider-bitbucket",
-    "rev": "v2.15.0",
-    "sha256": "sha256-m9LNW73CZHfOHX7qIn5Xm5JbMoV6ADGpxL9HNn8E+kA=",
-    "vendorSha256": "sha256-L8QYz1xgw8ZQjrU33uP18XxNUjImPYATZ02h46G4aXs=",
-    "version": "2.15.0"
+    "rev": "v2.17.0",
+    "sha256": "sha256-nzwfhwiszzhoobq2PlgtKfCch46fLoBVbembzdnkrD4=",
+    "vendorSha256": "sha256-LLhnF0/tj44vN36yss1JzNvDYy64Iuk5WVRhehf0wkk=",
+    "version": "2.17.0"
   },
   "brightbox": {
     "owner": "brightbox",
@@ -384,10 +384,10 @@
     "owner": "fastly",
     "provider-source-address": "registry.terraform.io/fastly/fastly",
     "repo": "terraform-provider-fastly",
-    "rev": "v1.1.4",
-    "sha256": "sha256-sLVeVXVCvhSx51B4unYEOs0UpNsChF9guB22gpsratw=",
+    "rev": "v2.0.0",
+    "sha256": "sha256-sk146gyBgMWV+EJUrQuC6XY3rRCegezYLympPqqkI2s=",
     "vendorSha256": null,
-    "version": "1.1.4"
+    "version": "2.0.0"
   },
   "flexibleengine": {
     "owner": "FlexibleEngineCloud",
@@ -512,10 +512,10 @@
     "owner": "loafoe",
     "provider-source-address": "registry.terraform.io/loafoe/htpasswd",
     "repo": "terraform-provider-htpasswd",
-    "rev": "v1.0.2",
-    "sha256": "sha256-U8rArNTOmiB06Vrvet6PnkIuylRzswJvVptijvcuVFQ=",
-    "vendorSha256": "sha256-rotGWkaNbsU+9tGENvkNkR7C3d6334hfPNcvJaZDSKw=",
-    "version": "1.0.2"
+    "rev": "v1.0.3",
+    "sha256": "sha256-rh1AuD2azYj9bCFPFI9z/1cx6K/pHAEixUG1JXoyPEw=",
+    "vendorSha256": "sha256-FBWwgULCuNilfrGNMETJk7SSOIRFYGpD2L9ExeyFWqE=",
+    "version": "1.0.3"
   },
   "http": {
     "owner": "hashicorp",
@@ -530,10 +530,10 @@
     "owner": "huaweicloud",
     "provider-source-address": "registry.terraform.io/huaweicloud/huaweicloud",
     "repo": "terraform-provider-huaweicloud",
-    "rev": "v1.35.2",
-    "sha256": "sha256-D1ZaYz+leYU2UNq9c589KVISSNdcjFnDO4JccSVRPYw=",
+    "rev": "v1.36.0",
+    "sha256": "sha256-bf/w6BxXOL/Fup8NmYi86tGK3HIYGaYWUSAZ0yUazb8=",
     "vendorSha256": null,
-    "version": "1.35.2"
+    "version": "1.36.0"
   },
   "huaweicloudstack": {
     "owner": "huaweicloud",
@@ -584,10 +584,10 @@
     "owner": "Mongey",
     "provider-source-address": "registry.terraform.io/Mongey/kafka",
     "repo": "terraform-provider-kafka",
-    "rev": "v0.4.3",
-    "sha256": "sha256-6JPwj1BtKOICNIDf7k0gEjVAQAeOZ++f9wvX5aVgOjM=",
-    "vendorSha256": "sha256-Uw3QFtC1tYtx69vxH3NktTbaav8aLAUagagL0c2gjJ0=",
-    "version": "0.4.3"
+    "rev": "v0.5.0",
+    "sha256": "sha256-1SZkCuAmYlfzYVpS+qrNN+vl3zrFZGUgdrrgKj0VRUE=",
+    "vendorSha256": "sha256-6wccODr/eJUh5eeDGDCuuK2pCFmvPlXWmdAUnjBHJ5E=",
+    "version": "0.5.0"
   },
   "kafka-connect": {
     "owner": "Mongey",
@@ -602,10 +602,10 @@
     "owner": "mrparkers",
     "provider-source-address": "registry.terraform.io/mrparkers/keycloak",
     "repo": "terraform-provider-keycloak",
-    "rev": "v3.8.0",
-    "sha256": "sha256-TVSP0oORtiVkPGjgiHHJAsaWDhlN5lnpC3eJ4Ogf2Ss=",
+    "rev": "v3.8.1",
+    "sha256": "sha256-++yoMIn6K4VwAGyRVe/MUjMU46gBeHjIRF2nrXktC7E=",
     "vendorSha256": "sha256-8x0MlwAzeA2O6wXXHSk++K0ePmzE9/2lfo2ID83LzRM=",
-    "version": "3.8.0"
+    "version": "3.8.1"
   },
   "ksyun": {
     "owner": "kingsoftcloud",
@@ -656,10 +656,10 @@
     "owner": "linode",
     "provider-source-address": "registry.terraform.io/linode/linode",
     "repo": "terraform-provider-linode",
-    "rev": "v1.27.1",
-    "sha256": "sha256-rEXGKytKdlHO3RcZT+3e85cGfQ6b7mhdcFK+unw44ug=",
+    "rev": "v1.27.2",
+    "sha256": "sha256-Do9HOtgnSNnSUp3SSVwyzx9LPFSig/tO3GSigUrRcf4=",
     "vendorSha256": "sha256-ZJQAZk4TaKT+hLM46gtV1XmBCtwuKwtoom9tPGaOWhc=",
-    "version": "1.27.1"
+    "version": "1.27.2"
   },
   "linuxbox": {
     "owner": "numtide",
@@ -728,10 +728,10 @@
     "owner": "aminueza",
     "provider-source-address": "registry.terraform.io/aminueza/minio",
     "repo": "terraform-provider-minio",
-    "rev": "v1.5.1",
-    "sha256": "sha256-guSUdCBbfgwlrBW/592SqS7LSP7mB8cufrDC48K61Is=",
-    "vendorSha256": "sha256-Xp/Vl+z+hqElg/iCDBTtB6Xy2Ppk1oUAndVQM5hvlRg=",
-    "version": "1.5.1"
+    "rev": "v1.5.2",
+    "sha256": "sha256-QERV6Q/vYm1DWV91aYFCgZtFfnK9V2ATNsIAbuGzgdY=",
+    "vendorSha256": "sha256-SB7R466O3CbVwk6JSWXiFK4AD0rf6zijVfQW0rlEsVA=",
+    "version": "1.5.2"
   },
   "mongodbatlas": {
     "owner": "mongodb",
@@ -755,10 +755,10 @@
     "owner": "NaverCloudPlatform",
     "provider-source-address": "registry.terraform.io/NaverCloudPlatform/ncloud",
     "repo": "terraform-provider-ncloud",
-    "rev": "v2.2.7",
-    "sha256": "sha256-5WZOZBFZkJtPdWmxznv/ML6d+UTr+qw+SbBuaG+bGS8=",
+    "rev": "v2.2.8",
+    "sha256": "sha256-G12/+tNSMEPCPCJH//MhRKJoRSex3mS7BZt0C2o0pF0=",
     "vendorSha256": "sha256-ovHg4GcbMzjEi+qJBpdqhR0YUakZCdnpc10SCu8FP8I=",
-    "version": "2.2.7"
+    "version": "2.2.8"
   },
   "netlify": {
     "owner": "AegirHealth",
@@ -773,10 +773,10 @@
     "owner": "newrelic",
     "provider-source-address": "registry.terraform.io/newrelic/newrelic",
     "repo": "terraform-provider-newrelic",
-    "rev": "v2.44.0",
-    "sha256": "sha256-CR1GPm8K/9ZOFYvgKqMW63sbnRx0HyAYYESC/ZnBNYI=",
-    "vendorSha256": "sha256-2m5T6+GJTUDS345GDOW7Yf8X+JpxvtdYvInBjNvNXlg=",
-    "version": "2.44.0"
+    "rev": "v2.45.1",
+    "sha256": "sha256-KA4uvhK54JgzjAeIMvlLWQjul8ZZFbvmXyQTqOonxYY=",
+    "vendorSha256": "sha256-8nEbs5lDpXZ49QkIC1oRxZm+gVGx9xqDHe6jK8wWOA8=",
+    "version": "2.45.1"
   },
   "nomad": {
     "owner": "hashicorp",
@@ -800,10 +800,10 @@
     "owner": "vmware",
     "provider-source-address": "registry.terraform.io/vmware/nsxt",
     "repo": "terraform-provider-nsxt",
-    "rev": "v3.2.6",
-    "sha256": "sha256-1uQMjzqMJ1NQVVCXy5aHrrZ4vDK5s1JqUnLyYf1qLVw=",
+    "rev": "v3.2.7",
+    "sha256": "sha256-Og/U9bmaZIN7b/JcMnNkt6c3/H+toe4dFYNaQYfxLPM=",
     "vendorSha256": null,
-    "version": "3.2.6"
+    "version": "3.2.7"
   },
   "null": {
     "owner": "hashicorp",
@@ -828,10 +828,10 @@
     "owner": "oracle",
     "provider-source-address": "registry.terraform.io/oracle/oci",
     "repo": "terraform-provider-oci",
-    "rev": "v4.74.0",
-    "sha256": "sha256-hZpEhhI2pqOPLQm6XnVGIccyC1kVmLusUzF3KRbAHys=",
+    "rev": "v4.75.0",
+    "sha256": "sha256-tcDo7yvlobHf4+0BuPdifrkA8UPhI0txRCBgToTjIcw=",
     "vendorSha256": null,
-    "version": "4.74.0"
+    "version": "4.75.0"
   },
   "okta": {
     "owner": "okta",
@@ -927,10 +927,10 @@
     "owner": "PaloAltoNetworks",
     "provider-source-address": "registry.terraform.io/PaloAltoNetworks/panos",
     "repo": "terraform-provider-panos",
-    "rev": "v1.10.0",
-    "sha256": "1nh1kc8pz10014p6dw8l2qdiqxdgcj5yy3da2qhbarwn0qm9fs36",
+    "rev": "v1.10.1",
+    "sha256": "sha256-acxObc7cgZgyxoCQusrkUzFC68cT3WhExiw2LscKoiQ=",
     "vendorSha256": null,
-    "version": "1.10.0"
+    "version": "1.10.1"
   },
   "pass": {
     "owner": "camptocamp",
@@ -999,10 +999,10 @@
     "owner": "scaleway",
     "provider-source-address": "registry.terraform.io/scaleway/scaleway",
     "repo": "terraform-provider-scaleway",
-    "rev": "v2.2.1-rc.3",
-    "sha256": "sha256-XprfY4Zy3PIrIJA2F1tnwafg4wYuzrm9nwVZULdX1D0=",
-    "vendorSha256": "sha256-H5KAo2rpgFGYmOgGOx9Z5LuApmftuYA6PfYCjnr7zC0=",
-    "version": "2.2.1-rc.3"
+    "rev": "v2.2.1",
+    "sha256": "sha256-a3tSxGTRYQeGfaJOR8z1Qd0SeuoiLwrEbdlw3B9gc2A=",
+    "vendorSha256": "sha256-D/pE1uEpkWIuICNJsuWVHfRNGPf73YliFxqODkl+4QY=",
+    "version": "2.2.1"
   },
   "secret": {
     "owner": "numtide",
@@ -1071,19 +1071,19 @@
     "owner": "carlpett",
     "provider-source-address": "registry.terraform.io/carlpett/sops",
     "repo": "terraform-provider-sops",
-    "rev": "v0.7.0",
-    "sha256": "sha256-Nkqc4w6dHsNEVsvmJcxLa9X9/qHProaZyOIoAADX52M=",
-    "vendorSha256": "sha256-ZBH8lAHYMVWsjyHkx17gX+0NstoC6PjdSmzCoShuFYQ=",
-    "version": "0.7.0"
+    "rev": "v0.7.1",
+    "sha256": "sha256-6FuThi6iuuUGcMhswAk3Z6Lxth/2nuI57A02Xu2s+/U=",
+    "vendorSha256": "sha256-NO1r/EWLgH1Gogru+qPeZ4sW7FuDENxzNnpLSKstnE8=",
+    "version": "0.7.1"
   },
   "spotinst": {
     "owner": "spotinst",
     "provider-source-address": "registry.terraform.io/spotinst/spotinst",
     "repo": "terraform-provider-spotinst",
-    "rev": "v1.73.2",
-    "sha256": "sha256-Q5DNFJ1g6jfHQVYF5Xf5Phx/4b2nbUvE651JNp/zgJg=",
+    "rev": "v1.73.3",
+    "sha256": "sha256-J7hswjjyWOZrsqnhMGAyXnvrVwLRY9jGIdtwN7Dympc=",
     "vendorSha256": "sha256-szdzI/42RExYQlHnm178RM3wlKOLax+nwgRVzonxXoI=",
-    "version": "1.73.2"
+    "version": "1.73.3"
   },
   "stackpath": {
     "owner": "stackpath",
@@ -1107,10 +1107,10 @@
     "owner": "SumoLogic",
     "provider-source-address": "registry.terraform.io/SumoLogic/sumologic",
     "repo": "terraform-provider-sumologic",
-    "rev": "v2.14.0",
-    "sha256": "sha256-rLRU51l4cOBrC+HxVgtAay1L6VJt6qVgWUeYfJ9zSmE=",
+    "rev": "v2.15.0",
+    "sha256": "sha256-VAYU1v5uCIcbeLri6tG5RIAgDP4SzZxQDtK9P5gdSPc=",
     "vendorSha256": "sha256-7DGY+L41bJJrtLwdWgu2aMCefgcmtR6tmH12foi68Kc=",
-    "version": "2.14.0"
+    "version": "2.15.0"
   },
   "template": {
     "owner": "hashicorp",
@@ -1125,10 +1125,10 @@
     "owner": "tencentcloudstack",
     "provider-source-address": "registry.terraform.io/tencentcloudstack/tencentcloud",
     "repo": "terraform-provider-tencentcloud",
-    "rev": "v1.72.1",
-    "sha256": "sha256-vCCIHp8tpAn7PIIBMVXRSI9G420E1ijfYow9bfC3RKs=",
+    "rev": "v1.72.3",
+    "sha256": "sha256-NfrLaKPIAMWeRNVdWEg4wn7pFoLO1Hv3HsxFKkVewPc=",
     "vendorSha256": null,
-    "version": "1.72.1"
+    "version": "1.72.3"
   },
   "tfe": {
     "owner": "hashicorp",
@@ -1189,10 +1189,10 @@
     "owner": "ucloud",
     "provider-source-address": "registry.terraform.io/ucloud/ucloud",
     "repo": "terraform-provider-ucloud",
-    "rev": "v1.31.1",
-    "sha256": "sha256-xY8JXjKdi/TXpbZ1dQf9Sp8dbcHYn1cdqiszEK3evg0=",
+    "rev": "v1.31.3",
+    "sha256": "sha256-qVBvslXU5pPGMXwaBJ5f0iw4jNLgnnJ4Avr+mhC103Q=",
     "vendorSha256": null,
-    "version": "1.31.1"
+    "version": "1.31.3"
   },
   "utils": {
     "owner": "cloudposse",
@@ -1270,10 +1270,10 @@
     "owner": "vultr",
     "provider-source-address": "registry.terraform.io/vultr/vultr",
     "repo": "terraform-provider-vultr",
-    "rev": "v2.10.1",
-    "sha256": "sha256-Q4qdPfBXnhkr+zUbMvBnBqCDT0cbHFT8oNMTM6cP0SM=",
+    "rev": "v2.11.0",
+    "sha256": "sha256-5TtrjWQ6AXYCjOi6Qe3oJVp011s87XyU2CYnXb7hFII=",
     "vendorSha256": null,
-    "version": "2.10.1"
+    "version": "2.11.0"
   },
   "wavefront": {
     "owner": "vmware",
diff --git a/pkgs/applications/networking/cluster/tilt/default.nix b/pkgs/applications/networking/cluster/tilt/default.nix
index c13c08c44a438..5532c644c2c82 100644
--- a/pkgs/applications/networking/cluster/tilt/default.nix
+++ b/pkgs/applications/networking/cluster/tilt/default.nix
@@ -5,13 +5,13 @@ buildGoModule rec {
   /* Do not use "dev" as a version. If you do, Tilt will consider itself
     running in development environment and try to serve assets from the
     source tree, which is not there once build completes.  */
-  version = "0.26.3";
+  version = "0.30.0";
 
   src = fetchFromGitHub {
     owner  = "tilt-dev";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-jrVf6vNlEkTgALS93o3kIiticvsyFHm5oA2Fh1edAGY=";
+    sha256 = "sha256-bZYm9T3NRNNtT8RDGwnXcXC7Rb/GuIxI/U06By4gR/w=";
   };
   vendorSha256 = null;
 
diff --git a/pkgs/applications/science/math/lrcalc/default.nix b/pkgs/applications/science/math/lrcalc/default.nix
index 96eb779645169..90ee50c682800 100644
--- a/pkgs/applications/science/math/lrcalc/default.nix
+++ b/pkgs/applications/science/math/lrcalc/default.nix
@@ -1,18 +1,17 @@
 { lib, stdenv
 , fetchFromBitbucket
-, fetchpatch
 , autoreconfHook
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.2";
+  version = "2.1";
   pname = "lrcalc";
 
   src = fetchFromBitbucket {
     owner = "asbuch";
     repo = "lrcalc";
     rev = "lrcalc-${version}";
-    sha256 = "1c12d04jdyxkkav4ak8d1aqrv594gzihwhpxvc6p9js0ry1fahss";
+    sha256 = "0s3amf3z75hnrjyszdndrvk4wp5p630dcgyj341i6l57h43d1p4k";
   };
 
   doCheck = true;
@@ -21,15 +20,6 @@ stdenv.mkDerivation rec {
     autoreconfHook
   ];
 
-  patches = [
-    # Fix include syntax:
-    # For private includes, use `#include "..."` instead of `#include <...>`
-    (fetchpatch {
-      url = "https://bitbucket.org/asbuch/lrcalc/commits/226981a0/raw/";
-      sha256 = "02kaqx5s3l642rhh28kn2wg9wr098vzpknxyl4pv627lqa3lv9vm";
-    })
-  ];
-
   meta = with lib; {
     description = "Littlewood-Richardson calculator";
     homepage = "http://math.rutgers.edu/~asbuch/lrcalc/";
diff --git a/pkgs/applications/science/math/sage/default.nix b/pkgs/applications/science/math/sage/default.nix
index 70e24e2608d00..84b511de8fc24 100644
--- a/pkgs/applications/science/math/sage/default.nix
+++ b/pkgs/applications/science/math/sage/default.nix
@@ -48,6 +48,12 @@ let
     logo64 = "${sage-src}/src/doc/common/themes/sage/static/sageicon.png";
   };
 
+  jupyter-kernel-specs = pkgs.jupyter-kernel.create {
+    definitions = pkgs.jupyter-kernel.default // {
+      sagemath = jupyter-kernel-definition;
+    };
+  };
+
   three = callPackage ./threejs-sage.nix { };
 
   # A bash script setting various environment variables to tell sage where
@@ -73,7 +79,7 @@ let
   # The documentation for sage, building it takes a lot of ram.
   sagedoc = callPackage ./sagedoc.nix {
     inherit sage-with-env;
-    inherit python3 maxima;
+    inherit python3 maxima jupyter-kernel-specs;
   };
 
   # sagelib with added wrappers and a dependency on sage-tests to make sure thet tests were run.
@@ -167,6 +173,6 @@ let
 in
 # A wrapper around sage that makes sure sage finds its docs (if they were build).
 callPackage ./sage.nix {
-  inherit sage-tests sage-with-env sagedoc jupyter-kernel-definition;
+  inherit sage-tests sage-with-env sagedoc jupyter-kernel-specs;
   inherit withDoc requireSageTests;
 }
diff --git a/pkgs/applications/science/math/sage/patches/Only-test-external-software-when-all-of-sage-is.patch b/pkgs/applications/science/math/sage/patches/Only-test-external-software-when-all-of-sage-is.patch
deleted file mode 100644
index a478f50d92e86..0000000000000
--- a/pkgs/applications/science/math/sage/patches/Only-test-external-software-when-all-of-sage-is.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff --git a/src/sage/doctest/control.py b/src/sage/doctest/control.py
-index 01f32fb8e4..4d83dc7b47 100644
---- a/src/sage/doctest/control.py
-+++ b/src/sage/doctest/control.py
-@@ -1253,6 +1253,7 @@ class DocTestController(SageObject):
- 
-             self.log("Using --optional=" + self._optional_tags_string())
-             available_software._allow_external = self.options.optional is True or 'external' in self.options.optional
-+            available_software._autodetect_safe = self.options.optional is True or 'sage' in self.options.optional
-             self.log("Features to be detected: " + ','.join(available_software.detectable()))
-             self.add_files()
-             self.expand_files_into_sources()
-diff --git a/src/sage/doctest/external.py b/src/sage/doctest/external.py
-index 84dae19ea5..badc61466e 100644
---- a/src/sage/doctest/external.py
-+++ b/src/sage/doctest/external.py
-@@ -409,6 +409,7 @@ class AvailableSoftware(object):
-             []
-         """
-         self._allow_external = True
-+        self._autodetect_safe = True
-         # For multiprocessing of doctests, the data self._seen should be
-         # shared among subprocesses. Thus we use Array class from the
-         # multiprocessing module.
-@@ -430,6 +431,8 @@ class AvailableSoftware(object):
-             sage: 'internet' in available_software # random, optional - internet
-             True
-         """
-+        if not self._autodetect_safe:
-+            return False
-         try:
-             idx = self._indices[item]
-         except KeyError:
-diff --git a/src/sage/features/sagemath.py b/src/sage/features/sagemath.py
-index 433338766d..233623b14a 100644
---- a/src/sage/features/sagemath.py
-+++ b/src/sage/features/sagemath.py
-@@ -12,7 +12,7 @@ class sagemath_doc_html(StaticFile):
- 
-     EXAMPLES::
- 
--        sage: from sage.features.sagemath import sagemath_doc_html
-+        sage: from sage.features.sagemath import sagemath_doc_html  # optional - sagemath_doc_html
-         sage: sagemath_doc_html().is_present()  # optional - sagemath_doc_html
-         FeatureTestResult('sagemath_doc_html', True)
-     """
diff --git a/pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch b/pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch
index e687281ad1a7c..ca01eba29a2bd 100644
--- a/pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch
+++ b/pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch
@@ -13,7 +13,7 @@ index 67d7d2accf..18279581e2 100644
 -    True
 +    sage: print(output)
 +    sage...[False, True]
-+    sage...Exiting Sage ...
++    ...
  """
  
  #*****************************************************************************
diff --git a/pkgs/applications/science/math/sage/patches/docutils-0.18.1-deprecation.patch b/pkgs/applications/science/math/sage/patches/docutils-0.18.1-deprecation.patch
index 94e0488e21e77..0a19e7af10483 100644
--- a/pkgs/applications/science/math/sage/patches/docutils-0.18.1-deprecation.patch
+++ b/pkgs/applications/science/math/sage/patches/docutils-0.18.1-deprecation.patch
@@ -1,11 +1,11 @@
 diff --git a/src/sage/misc/sagedoc.py b/src/sage/misc/sagedoc.py
-index 4c56aea078..e51a77ae8a 100644
+index 08c4225b87..3a9bbe4ed0 100644
 --- a/src/sage/misc/sagedoc.py
 +++ b/src/sage/misc/sagedoc.py
 @@ -1402,6 +1402,8 @@ class _sage_doc:
              sage: identity_matrix.__doc__ in browse_sage_doc(identity_matrix, 'rst')
              True
-             sage: browse_sage_doc(identity_matrix, 'html', False)             # optional - sphinx
+             sage: browse_sage_doc(identity_matrix, 'html', False)             # optional - sphinx sagemath_doc_html
 +            ...
 +            FutureWarning: The configuration setting "embed_images" will be removed in Docutils 1.2. Use "image_loading: link".
              '...div...File:...Type:...Definition:...identity_matrix...'
diff --git a/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch b/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
index 1ff081b25e0fd..3e7e37508ff47 100644
--- a/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
+++ b/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
@@ -1,10 +1,10 @@
 diff --git a/src/sage_docbuild/__init__.py b/src/sage_docbuild/__init__.py
-index 8a5c1a19d2..21fd192642 100644
+index b12d56a3c9..df9d949ed1 100644
 --- a/src/sage_docbuild/__init__.py
 +++ b/src/sage_docbuild/__init__.py
-@@ -89,27 +89,6 @@ def builder_helper(type):
+@@ -88,30 +88,6 @@ def builder_helper(type):
      """
-     Returns a function which builds the documentation for
+     Return a function which builds the documentation for
      output type ``type``.
 -
 -    TESTS:
@@ -19,10 +19,13 @@ index 8a5c1a19d2..21fd192642 100644
 -        ....:     raise BaseException("abort pool operation")
 -        sage: original_runsphinx, sage_docbuild.sphinxbuild.runsphinx = sage_docbuild.sphinxbuild.runsphinx, raiseBaseException
 -
+-        sage: from sage.misc.temporary_file import tmp_dir
+-        sage: os.environ['SAGE_DOC'] = tmp_dir()
+-        sage: sage.env.var('SAGE_DOC') # random
 -        sage: from sage_docbuild import builder_helper, build_ref_doc
 -        sage: from sage_docbuild import _build_many as build_many
 -        sage: helper = builder_helper("html")
--        sage: try:
+-        sage: try:  # optional - sagemath_doc_html
 -        ....:     build_many(build_ref_doc, [("docname", "en", "html", {})])
 -        ....: except Exception as E:
 -        ....:     "Non-exception during docbuild: abort pool operation" in str(E)
@@ -30,7 +33,7 @@ index 8a5c1a19d2..21fd192642 100644
      """
      def f(self, *args, **kwds):
          output_dir = self._output_dir(type)
-@@ -131,10 +110,9 @@ def builder_helper(type):
+@@ -139,10 +115,9 @@ def builder_helper(type):
          logger.debug(build_command)
  
          # Run Sphinx with Sage's special logger
@@ -44,10 +47,10 @@ index 8a5c1a19d2..21fd192642 100644
              if ABORT_ON_ERROR:
                  raise
 diff --git a/src/sage_docbuild/sphinxbuild.py b/src/sage_docbuild/sphinxbuild.py
-index d917c3e9d4..551cc8028a 100644
+index a39c99ffe9..73be823684 100644
 --- a/src/sage_docbuild/sphinxbuild.py
 +++ b/src/sage_docbuild/sphinxbuild.py
-@@ -327,3 +327,8 @@ def runsphinx():
+@@ -330,3 +330,8 @@ def runsphinx():
          sys.stderr = saved_stderr
          sys.stdout.flush()
          sys.stderr.flush()
diff --git a/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix b/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix
index 1766cec3e35db..b0f40bf065874 100644
--- a/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix
+++ b/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , sage-src
 , sphinx
+, jupyter-sphinx
 }:
 
 buildPythonPackage rec {
@@ -11,6 +12,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     sphinx
+    jupyter-sphinx
   ];
 
   preBuild = ''
diff --git a/pkgs/applications/science/math/sage/sage-env.nix b/pkgs/applications/science/math/sage/sage-env.nix
index cdff1e8477abd..4c22470de9109 100644
--- a/pkgs/applications/science/math/sage/sage-env.nix
+++ b/pkgs/applications/science/math/sage/sage-env.nix
@@ -186,7 +186,7 @@ writeTextFile rec {
     export SAGE_EXTCODE='${sagelib.src}/src/sage/ext_data'
 
   # for find_library
-    export DYLD_LIBRARY_PATH="${lib.makeLibraryPath [stdenv.cc.libc singular]}''${DYLD_LIBRARY_PATH:+:}$DYLD_LIBRARY_PATH"
+    export DYLD_LIBRARY_PATH="${lib.makeLibraryPath [stdenv.cc.libc singular giac]}''${DYLD_LIBRARY_PATH:+:}$DYLD_LIBRARY_PATH"
   '';
 } // { # equivalent of `passthru`, which `writeTextFile` doesn't support
   lib = sagelib;
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index b230b0d42a03a..95da9b26e54e8 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -58,30 +58,19 @@ let
   );
 in
 stdenv.mkDerivation rec {
-  version = "9.5";
+  version = "9.6";
   pname = "sage-src";
 
   src = fetchFromGitHub {
     owner = "sagemath";
     repo = "sage";
     rev = version;
-    sha256 = "sha256-uOsLpsGpcIGs8Xr82X82MElnTB2E908gytyNJ8WVD5w=";
+    sha256 = "sha256-QY8Yga3hD1WhSCtA2/PVry8hHlMmC31J8jCBFtWgIU0=";
   };
 
   # Patches needed because of particularities of nix or the way this is packaged.
   # The goal is to upstream all of them and get rid of this list.
   nixPatches = [
-    # Since https://trac.sagemath.org/ticket/32174, some external features are
-    # marked as "safe" and get auto-detected, in which case the corresponding
-    # optional tests are executed. We disable auto-detection of safe features if
-    # we are doctesting with an "--optional" argument which does not include
-    # "sage", because tests from autodetected features expect context provided
-    # by running basic sage tests. This is necessary to test sagemath_doc_html
-    # separately. See https://trac.sagemath.org/ticket/26110 for a related
-    # upstream discussion (from the time when Sage still had optional py2/py3
-    # tags).
-    ./patches/Only-test-external-software-when-all-of-sage-is.patch
-
     # Fixes a potential race condition which can lead to transient doctest failures.
     ./patches/fix-ecl-race.patch
 
@@ -120,81 +109,13 @@ stdenv.mkDerivation rec {
     # https://trac.sagemath.org/ticket/32959
     ./patches/linbox-1.7-upgrade.patch
 
-    # https://trac.sagemath.org/ticket/33170
-    (fetchSageDiff {
-      base = "9.6.beta5";
-      name = "ipython-8.1-update.patch";
-      rev = "4d2b53f1541375861310af3a7f7109c1c2ed475d";
-      sha256 = "sha256-ELda/VBzsQH7NdFas69fQ35QPUoJCeLx/gxT1j7qGR8=";
-    })
-
-    # https://trac.sagemath.org/ticket/32968
-    (fetchSageDiff {
-      base = "9.5";
-      name = "sphinx-4.3-update.patch";
-      rev = "fc84f82f52b6f05f512cb359ec7c100f93cf8841";
-      sha256 = "sha256-bBbfdcnw/9LUOlY8rHJRbFJEdMXK4shosqTNaobTS1Q=";
-    })
-
-    # https://trac.sagemath.org/ticket/33189
-    (fetchSageDiff {
-      base = "9.5";
-      name = "arb-2.22-update.patch";
-      rev = "53532ddd4e2dc92469c1590ebf0c40f8f69bf579";
-      sha256 = "sha256-6SoSBvIlqvNwZV3jTB6uPdUtaWIOeNmddi2poK/WvGs=";
-    })
-
-    # TODO: This will not be necessary when Sphinx 4.4.1 is released,
-    # since some warnings introduced in 4.4.0 will be disabled by then
-    # (https://github.com/sphinx-doc/sphinx/pull/10126).
-    # https://trac.sagemath.org/ticket/33272
-    (fetchSageDiff {
-      base = "9.5";
-      name = "sphinx-4.4-warnings.patch";
-      rev = "97d7958bed441cf2ccc714d88f83d3a8426bc085";
-      sha256 = "sha256-y1STE0oxswnijGCsBw8eHWWqpmT1XMznIfA0vvX9pFA=";
-    })
-
     # adapted from https://trac.sagemath.org/ticket/23712#comment:22
     ./patches/tachyon-renamed-focallength.patch
 
-    # https://trac.sagemath.org/ticket/33336
-    (fetchSageDiff {
-      base = "9.6.beta2";
-      name = "scipy-1.8-update.patch";
-      rev = "9c8235e44ffb509efa8a3ca6cdb55154e2b5066d";
-      sha256 = "sha256-bfc4ljNOxVnhlmxIuNbjbKl4vJXYq2tlF3Z8bbC8PWw=";
-    })
-
-    # https://trac.sagemath.org/ticket/33495
-    (fetchSageDiff {
-      base = "9.6.beta5";
-      name = "networkx-2.7-update.patch";
-      rev = "8452003846a7303100847d8d0ed642fc642c11d6";
-      sha256 = "sha256-A/XMouPlc2sjFp30L+56fBGJXydS2EtzfPOV98FCDqI=";
-    })
-
-    # https://trac.sagemath.org/ticket/33226
-    (fetchSageDiff {
-      base = "9.6.beta0";
-      name = "giac-1.7.0-45-update.patch";
-      rev = "33ea2adf01e9e2ce9f1e33779f0b1ac0d9d1989c";
-      sha256 = "sha256-DOyxahf3+IaYdkgmAReNDCorRzMgO8+yiVrJ5TW1km0=";
-    })
-
-    # https://trac.sagemath.org/ticket/33398
-    (fetchSageDiff {
-      base = "9.6.beta4";
-      name = "sympy-1.10-update.patch";
-      rev = "6b7c3a28656180e42163dc10f7b4a571b93e5f27";
-      sha256 = "sha256-fnUyM2yjHkCykKRfzQQ4glcUYmCS/fYzDzmCf0nuebk=";
-      # The patch contains a whitespace change to a file that didn't exist in Sage 9.5.
-      excludes = [ "build/*" "src/sage/manifolds/vector_bundle_fiber_element.py" ];
-    })
-
     # docutils 0.18.1 now triggers Sphinx warnings. tolerate them for
-    # now, because patching Sphinx is not feasible.
-    # https://github.com/sphinx-doc/sphinx/issues/9777#issuecomment-1104481271
+    # now, because patching Sphinx is not feasible. remove when Sphinx
+    # 5.0 hits nixpkgs.
+    # https://github.com/sphinx-doc/sphinx/pull/10372
     ./patches/docutils-0.18.1-deprecation.patch
   ];
 
diff --git a/pkgs/applications/science/math/sage/sage.nix b/pkgs/applications/science/math/sage/sage.nix
index 96122fba5ab42..78fd8d598d0b6 100644
--- a/pkgs/applications/science/math/sage/sage.nix
+++ b/pkgs/applications/science/math/sage/sage.nix
@@ -2,8 +2,7 @@
 , makeWrapper
 , sage-tests
 , sage-with-env
-, jupyter-kernel-definition
-, jupyter-kernel
+, jupyter-kernel-specs
 , sagedoc
 , withDoc
 , requireSageTests
@@ -12,14 +11,6 @@
 # A wrapper that makes sure sage finds its docs (if they were build) and the
 # jupyter kernel spec.
 
-let
-  # generate kernel spec + default kernels
-  kernel-specs = jupyter-kernel.create {
-    definitions = jupyter-kernel.default // {
-      sagemath = jupyter-kernel-definition;
-    };
-  };
-in
 stdenv.mkDerivation rec {
   version = src.version;
   pname = "sage";
@@ -43,7 +34,7 @@ stdenv.mkDerivation rec {
       --set SAGE_DOC_SRC_OVERRIDE "${src}/src/doc" ${
         lib.optionalString withDoc "--set SAGE_DOC_OVERRIDE ${sagedoc}/share/doc/sage"
       } \
-      --prefix JUPYTER_PATH : "${kernel-specs}"
+      --prefix JUPYTER_PATH : "${jupyter-kernel-specs}"
   '';
 
   doInstallCheck = withDoc;
@@ -58,7 +49,7 @@ stdenv.mkDerivation rec {
     quicktest = sage-tests.override { longTests = false; timeLimit = 600; }; # as many tests as possible in ~10m
     doc = sagedoc;
     lib = sage-with-env.env.lib;
-    kernelspec = jupyter-kernel-definition;
+    kernelspec = jupyter-kernel-specs.definition.sagemath;
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/science/math/sage/sagedoc.nix b/pkgs/applications/science/math/sage/sagedoc.nix
index 489fc2edfe55a..67d754caff3c2 100644
--- a/pkgs/applications/science/math/sage/sagedoc.nix
+++ b/pkgs/applications/science/math/sage/sagedoc.nix
@@ -1,6 +1,7 @@
 { stdenv
 , sage-with-env
 , python3
+, jupyter-kernel-specs
 , maxima
 , tachyon
 , jmol
@@ -59,10 +60,15 @@ stdenv.mkDerivation rec {
     OUTPUT="$OUTPUT_DIR/options.txt"
     ${sage-with-env}/bin/sage -advanced > "$OUTPUT"
 
-    ${sage-with-env}/bin/sage --docbuild \
+    # jupyter-sphinx calls the sagemath jupyter kernel during docbuild
+    export JUPYTER_PATH=${jupyter-kernel-specs}
+
+    # sage --docbuild unsets JUPYTER_PATH, so we call sage_docbuild directly
+    # https://trac.sagemath.org/ticket/33650#comment:32
+    ${sage-with-env}/bin/sage --python3 -m sage_docbuild \
       --mathjax \
       --no-pdf-links \
-      all html
+      all html < /dev/null
   '';
 
   installPhase = ''
@@ -83,6 +89,10 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
   checkPhase = ''
-    ${sage-with-env}/bin/sage -t --optional=sagemath_doc_html --all
+    # sagemath_doc_html tests assume sage tests are being run, so we
+    # compromise: we run standard tests, but only on files containing
+    # relevant tests. as of Sage 9.6, there are only 4 such files.
+    grep -PRl "#.*optional.*sagemath_doc_html" ${src}/src/sage{,_docbuild} | \
+      xargs ${sage-with-env}/bin/sage -t --optional=sage,sagemath_doc_html
   '';
 }
diff --git a/pkgs/applications/science/math/sage/sagelib.nix b/pkgs/applications/science/math/sage/sagelib.nix
index 92eae35688f71..8f864d136928a 100644
--- a/pkgs/applications/science/math/sage/sagelib.nix
+++ b/pkgs/applications/science/math/sage/sagelib.nix
@@ -67,7 +67,9 @@
 , pillow
 , ipykernel
 , networkx
-, sphinx # TODO: this is in setup.cfg, bug should we override it?
+, ptyprocess
+, lrcalc-python
+, sphinx # TODO: this is in setup.cfg, should we override it?
 }:
 
 assert (!blas.isILP64) && (!lapack.isILP64);
@@ -157,6 +159,8 @@ buildPythonPackage rec {
     networkx
     jupyter-client
     ipywidgets
+    ptyprocess
+    lrcalc-python
     sphinx
   ];
 
@@ -188,7 +192,7 @@ buildPythonPackage rec {
     # Sage tests already catch any relevant API breakage.
     # according to the discussion at https://trac.sagemath.org/ticket/33520,
     # upper bounds will be less noisy starting from Sage 9.6.
-    sed -i 's/==2.1.0rc1/>=2.1.1/' ../gmpy2/install-requires.txt
+    sed -i 's/==0.5.1/>=0.5.1/' ../ptyprocess/install-requires.txt
     sed -i 's/, <[^, ]*//' ../*/install-requires.txt
 
     for infile in src/*.m4; do
diff --git a/pkgs/applications/video/makemkv/default.nix b/pkgs/applications/video/makemkv/default.nix
index 712ccacd7a0c0..2c15513d4d65e 100644
--- a/pkgs/applications/video/makemkv/default.nix
+++ b/pkgs/applications/video/makemkv/default.nix
@@ -55,7 +55,7 @@ in mkDerivation {
   installPhase = ''
     runHook preInstall
 
-    install -Dm555 -t $out/bin                              out/makemkv ../makemkv-bin-${version}/bin/amd64/makemkvcon
+    install -Dm555 -t $out/bin                              out/makemkv out/mmccextr ../makemkv-bin-${version}/bin/amd64/makemkvcon
     install -D     -t $out/lib                              out/lib{driveio,makemkv,mmbd}.so.*
     install -D     -t $out/share/MakeMKV                    ../makemkv-bin-${version}/src/share/*
     install -Dm444 -t $out/share/applications               ../makemkv-oss-${version}/makemkvgui/share/makemkv.desktop
diff --git a/pkgs/applications/video/mpc-qt/default.nix b/pkgs/applications/video/mpc-qt/default.nix
index 7c4126bb37c6a..9f91cc0c3c08b 100644
--- a/pkgs/applications/video/mpc-qt/default.nix
+++ b/pkgs/applications/video/mpc-qt/default.nix
@@ -1,23 +1,16 @@
-{ lib, stdenv, mkDerivation, fetchFromGitLab, fetchpatch, pkg-config, qmake, qtx11extras, qttools, mpv }:
+{ lib, stdenv, mkDerivation, fetchFromGitHub, pkg-config, qmake, qtx11extras, qttools, mpv }:
 
 mkDerivation rec {
   pname = "mpc-qt";
-  version = "2019-06-09";
+  version = "22.02";
 
-  src = fetchFromGitLab {
+  src = fetchFromGitHub {
     owner = "mpc-qt";
     repo = "mpc-qt";
-    rev = "2abe6e7fc643068d50522468fe75d614861555ad";
-    sha256 = "1cis8dl9pm91mpnp696zvwsfp96gkwr8jgs45anbwd7ldw78w4x5";
+    rev = "v${version}";
+    sha256 = "sha256-DRbNDrWnaTT4A0dRFAv9MX/MDwV/rXIw+R8fQJmVN+g=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://gitlab.com/mpc-qt/mpc-qt/-/commit/02f2bc7a22e863a89ba322b9acb61cf1aef23ba0.diff";
-      sha256 = "0khld55i194zgi18d0wch5459lfzzkbfdbl1im8akvq8ks5xijis";
-    })
-  ];
-
   nativeBuildInputs = [ pkg-config qmake qttools ];
 
   buildInputs = [ mpv qtx11extras ];
@@ -26,7 +19,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Media Player Classic Qute Theater";
-    homepage = "https://gitlab.com/mpc-qt/mpc-qt";
+    homepage = "https://mpc-qt.github.io";
     license = licenses.gpl2;
     platforms = platforms.unix;
     broken = stdenv.isDarwin;
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index d6e49a93c58ef..57c439fc0eb5d 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -315,10 +315,10 @@ rec {
       allowSubstitutes = false;
     }
     ''
-    n=$out/bin/$name
-    mkdir -p "$(dirname "$n")"
-    mv "$codePath" code.c
-    $CC -x c code.c -o "$n"
+      n=$out/bin/$name
+      mkdir -p "$(dirname "$n")"
+      mv "$codePath" code.c
+      $CC -x c code.c -o "$n"
     '';
 
 
diff --git a/pkgs/desktops/gnome/extensions/update-extensions.py b/pkgs/desktops/gnome/extensions/update-extensions.py
index 8feee4437f441..9117ea270407e 100755
--- a/pkgs/desktops/gnome/extensions/update-extensions.py
+++ b/pkgs/desktops/gnome/extensions/update-extensions.py
@@ -47,10 +47,6 @@ def fetch_extension_data(uuid: str, version: str) -> Tuple[str, str]:
     uuid = uuid.replace("@", "")
     url: str = f"https://extensions.gnome.org/extension-data/{uuid}.v{version}.shell-extension.zip"
 
-    # TODO remove when Vitals@CoreCoding.com version != 53, this extension has a missing manifest.json
-    if url == 'https://extensions.gnome.org/extension-data/VitalsCoreCoding.com.v53.shell-extension.zip':
-        url = 'https://extensions.gnome.org/extension-data/VitalsCoreCoding.com.v53.shell-extension_v1BI2FB.zip'
-
     # Download extension and add the zip content to nix-store
     process = subprocess.run(
         ["nix-prefetch-url", "--unpack", "--print-path", url], capture_output=True, text=True
diff --git a/pkgs/development/coq-modules/interval/default.nix b/pkgs/development/coq-modules/interval/default.nix
index b9257d415e57f..375fae5b074c5 100644
--- a/pkgs/development/coq-modules/interval/default.nix
+++ b/pkgs/development/coq-modules/interval/default.nix
@@ -6,12 +6,12 @@ mkCoqDerivation rec {
   domain = "gitlab.inria.fr";
   inherit version;
   defaultVersion = with lib.versions; lib.switch coq.coq-version [
-    { case = isGe "8.8"; out = "4.4.0"; }
+    { case = isGe "8.8"; out = "4.5.1"; }
     { case = range "8.8" "8.12"; out = "4.0.0"; }
     { case = range "8.7" "8.11"; out = "3.4.2"; }
     { case = range "8.5" "8.6";  out = "3.3.0"; }
   ] null;
-  release."4.4.0".sha256 = "sha256-0+9AatTIEsjul0RXoOw6zWGEbGDVmuy7XuyrZNBZ8Kk=";
+  release."4.5.1".sha256 = "sha256-5OxbSPdw/1FFENubulKSk6fEIEYSPCxfvMMgtgN6j6s=";
   release."4.3.0".sha256 = "sha256-k8DLC4HYYpHeEEgXUafS8jkaECqlM+/CoYaInmUTYko=";
   release."4.2.0".sha256 = "sha256-SD5thgpirs3wmZBICjXGpoefg9AAXyExb5t8tz3iZhE=";
   release."4.1.1".sha256 = "sha256-h2NJ6sZt1C/88v7W2xyuftEDoyRt3H6kqm5g2hc1aoU=";
diff --git a/pkgs/development/interpreters/bats/default.nix b/pkgs/development/interpreters/bats/default.nix
index da12e7a3e65f4..184d23b92b909 100644
--- a/pkgs/development/interpreters/bats/default.nix
+++ b/pkgs/development/interpreters/bats/default.nix
@@ -6,6 +6,12 @@
 , coreutils
 , gnugrep
 , ncurses
+, findutils
+, hostname
+, parallel
+, flock
+, ps
+, bats
 , lsof
 , doInstallCheck ? true
 }:
@@ -31,32 +37,99 @@ resholve.mkDerivation rec {
 
   solutions = {
     bats = {
-      scripts = [ "bin/bats" ];
+      scripts = [
+        "bin/bats"
+        "libexec/bats-core/*"
+        "lib/bats-core/*"
+      ];
       interpreter = "${bash}/bin/bash";
-      inputs = [ bash coreutils gnugrep ];
+      inputs = [
+        bash
+        coreutils
+        gnugrep
+        ncurses
+        findutils
+        hostname
+        parallel
+        flock
+        "lib/bats-core"
+        "libexec/bats-core"
+      ];
       fake = {
-        external = [ "greadlink" ];
+        external = [
+          "greadlink"
+          "shlock"
+        ];
       };
       fix = {
         "$BATS_ROOT" = [ "${placeholder "out"}" ];
+        "$BATS_LIBEXEC" = [ "${placeholder "out"}/libexec/bats-core" ];
       };
       keep = {
         "${placeholder "out"}/libexec/bats-core/bats" = true;
+        source = [
+          "${placeholder "out"}/lib/bats-core/validator.bash"
+          "${placeholder "out"}/lib/bats-core/preprocessing.bash"
+          "$BATS_TEST_SOURCE"
+          "${placeholder "out"}/lib/bats-core/tracing.bash"
+          "${placeholder "out"}/lib/bats-core/test_functions.bash"
+          "$library_load_path"
+          "${placeholder "out"}/lib/bats-core/common.bash"
+          "${placeholder "out"}/lib/bats-core/semaphore.bash"
+          "${placeholder "out"}/lib/bats-core/formatter.bash"
+        ];
+        "$report_formatter" = true;
+        "$formatter" = true;
+        "$pre_command" = true;
+        "$BATS_TEST_NAME" = true;
+        "${placeholder "out"}/libexec/bats-core/bats-exec-test" = true;
       };
+      execer = [
+        /*
+        both blatant lies for expedience; these can certainly exec args
+        they may be safe here, because they may always run things that
+        are ultimately in libexec?
+        TODO: handle parallel and flock in binlore/resholve
+        */
+        "cannot:${parallel}/bin/parallel"
+        "cannot:${flock}/bin/flock"
+
+        "cannot:libexec/bats-core/bats-preprocess"
+
+        # these do exec, but other internal files
+        "cannot:libexec/bats-core/bats-exec-file"
+        "cannot:libexec/bats-core/bats-exec-suite"
+      ];
     };
   };
 
-  inherit doInstallCheck;
-  installCheckInputs = [ ncurses ] ++ lib.optionals stdenv.isDarwin [ lsof ];
-  installCheckPhase = ''
-    # TODO: cut if https://github.com/bats-core/bats-core/issues/418 allows
-    sed -i '/test works even if PATH is reset/a skip' test/bats.bats
+  passthru.tests.upstream = bats.unresholved.overrideAttrs (old: {
+    name = "${bats.name}-tests";
+    installCheckInputs = [
+      ncurses
+      parallel # skips some tests if it can't detect
+      flock # skips some tests if it can't detect
+      ps
+    ] ++ lib.optionals stdenv.isDarwin [ lsof ];
+    inherit doInstallCheck;
+    installCheckPhase = ''
+      # TODO: cut if https://github.com/bats-core/bats-core/issues/418 allows
+      sed -i '/test works even if PATH is reset/a skip "disabled for nix build"' test/bats.bats
+      # TODO: cut when https://github.com/bats-core/bats-core/pull/554 allows
+      substituteInPlace test/parallel.bats --replace '&& type -p shlock' '|| type -p shlock'
 
-    # test generates file with absolute shebang dynamically
-    substituteInPlace test/install.bats --replace \
-      "/usr/bin/env bash" "${bash}/bin/bash"
-    bin/bats test
-  '';
+      # skip tests that assume bats `install.sh` will be in BATS_ROOT
+      rm test/root.bats
+
+      # test generates file with absolute shebang dynamically
+      substituteInPlace test/install.bats --replace \
+        "/usr/bin/env bash" "${bash}/bin/bash"
+
+      ${bats}/bin/bats test
+      rm -rf $out
+      touch $out
+    '';
+  });
 
   meta = with lib; {
     homepage = "https://github.com/bats-core/bats-core";
diff --git a/pkgs/development/libraries/bullet/default.nix b/pkgs/development/libraries/bullet/default.nix
index e37da386cd6d2..9a882fd7418be 100644
--- a/pkgs/development/libraries/bullet/default.nix
+++ b/pkgs/development/libraries/bullet/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bullet";
-  version = "3.22b";
+  version = "3.23";
 
   src = fetchFromGitHub {
     owner = "bulletphysics";
     repo = "bullet3";
     rev = version;
-    sha256 = "sha256-hf2b7enh9mziPKFcdU8NwLdhcxhV7Ididf9Bwwa+5/M=";
+    sha256 = "sha256-XZpwCVfSJD3W93BJrGefy3dGrevNzChU+TrKalMpY4Q=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix
index dfc194f1d4cda..c3fe3ba2ce76a 100644
--- a/pkgs/development/libraries/folly/default.nix
+++ b/pkgs/development/libraries/folly/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
     zstd
   ];
 
-  NIX_CFLAGS_COMPILE = [ "-DFOLLY_MOBILE=${if follyMobile then "1" else "0"}" ];
+  NIX_CFLAGS_COMPILE = [ "-DFOLLY_MOBILE=${if follyMobile then "1" else "0"}" "-fpermissive" ];
   cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
 
   meta = with lib; {
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/facebook/folly";
     license = licenses.asl20;
     # 32bit is not supported: https://github.com/facebook/folly/issues/103
-    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" "aarch64-linux" ];
     maintainers = with maintainers; [ abbradar pierreis ];
   };
 }
diff --git a/pkgs/development/libraries/gtk/4.x.nix b/pkgs/development/libraries/gtk/4.x.nix
index e59e471a51eb7..e67599e055588 100644
--- a/pkgs/development/libraries/gtk/4.x.nix
+++ b/pkgs/development/libraries/gtk/4.x.nix
@@ -62,7 +62,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gtk4";
-  version = "4.6.3";
+  version = "4.6.4";
 
   outputs = [ "out" "dev" ] ++ lib.optionals x11Support [ "devdoc" ];
   outputBin = "dev";
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtk/${lib.versions.majorMinor version}/gtk-${version}.tar.xz";
-    sha256 = "pXrNDkSCmBcA/fhllsdBPLYe9H915HR/2oCegjG42Ww=";
+    sha256 = "p5orvMeTG3A/xPofy+G5BuIpoVIthU1SKAF2anm8rJ8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libdigidocpp/default.nix b/pkgs/development/libraries/libdigidocpp/default.nix
index 4f80709652db3..171f830032d20 100644
--- a/pkgs/development/libraries/libdigidocpp/default.nix
+++ b/pkgs/development/libraries/libdigidocpp/default.nix
@@ -2,12 +2,12 @@
 , xercesc, xml-security-c, pkg-config, xsd, zlib, xalanc, xxd }:
 
 stdenv.mkDerivation rec {
-  version = "3.14.7";
+  version = "3.14.8";
   pname = "libdigidocpp";
 
   src = fetchurl {
      url = "https://github.com/open-eid/libdigidocpp/releases/download/v${version}/libdigidocpp-${version}.tar.gz";
-     sha256 = "sha256-QdctW2+T8kPNUJv30pXZ/qfnw1Uhq6gScSjUI+bZMfY=";
+     sha256 = "sha256-U5i5IAyJF4359q6M6mQemEuG7+inPYIXqLy8GHv4dkg=";
   };
 
   nativeBuildInputs = [ cmake pkg-config xxd ];
diff --git a/pkgs/development/nim-packages/jsony/default.nix b/pkgs/development/nim-packages/jsony/default.nix
index 9a4808e3636fb..bf8cf5d5c7f2f 100644
--- a/pkgs/development/nim-packages/jsony/default.nix
+++ b/pkgs/development/nim-packages/jsony/default.nix
@@ -2,13 +2,13 @@
 
 buildNimPackage rec {
   pname = "jsony";
-  version = "1.1.3";
+  version = "d0e69bddf83874e15b5c2f52f8b1386ac080b443";
 
   src = fetchFromGitHub {
     owner = "treeform";
     repo = pname;
     rev = version;
-    hash = "sha256-jtUCoqwCmE536Kpv/vZxGgqiHyReZf1WOiBdUzmMhM4=";
+    sha256 = "1p250wb97nzz2g0vvq6mn521fx7sn1jpk1ralbzqh5q8clh4g7wr";
   };
 
   doCheck = true;
diff --git a/pkgs/development/nim-packages/supersnappy/default.nix b/pkgs/development/nim-packages/supersnappy/default.nix
index 471543eca4115..f2f8205d82864 100644
--- a/pkgs/development/nim-packages/supersnappy/default.nix
+++ b/pkgs/development/nim-packages/supersnappy/default.nix
@@ -3,6 +3,6 @@
 fetchFromGitHub {
   owner = "guzba";
   repo = "supersnappy";
-  rev = "1.1.5";
-  sha256 = "1y26sgnszvdf5sn7j0jx2dpd4i03mvbk9i9ni9kbyrs798bjwi6z";
+  rev = "2.1.1";
+  sha256 = "03df1qgrbp84swhqy12ansyn951lkaw0kf1arbnki4fkgdnqdamf";
 }
diff --git a/pkgs/development/python-modules/cheroot/default.nix b/pkgs/development/python-modules/cheroot/default.nix
index 436669d920924..5535f577bcff4 100644
--- a/pkgs/development/python-modules/cheroot/default.nix
+++ b/pkgs/development/python-modules/cheroot/default.nix
@@ -72,6 +72,7 @@ buildPythonPackage rec {
   ] ++ lib.optionals stdenv.isDarwin [
     "http_over_https_error"
     "bind_addr_unix"
+    "test_ssl_env"
   ];
 
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/django-anymail/default.nix b/pkgs/development/python-modules/django-anymail/default.nix
index 86134f9d17899..83c89b53c97d8 100644
--- a/pkgs/development/python-modules/django-anymail/default.nix
+++ b/pkgs/development/python-modules/django-anymail/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "django-anymail";
-  version = "8.5";
+  version = "8.6";
 
   src = fetchFromGitHub {
     owner = "anymail";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "1p2c7hf9baxr8khk8h7y8d38imw4zm920dgd9nbda18vlh7gpbcf";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-hLNILUV7qzqHfh7l3SJAoFveUIRSCHTjEQ3ZC3PhZUY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dulwich/default.nix b/pkgs/development/python-modules/dulwich/default.nix
index a255d3c4f9b9d..479af3a676fd4 100644
--- a/pkgs/development/python-modules/dulwich/default.nix
+++ b/pkgs/development/python-modules/dulwich/default.nix
@@ -12,11 +12,12 @@
 , mock
 , pkgs
 , urllib3
+, paramiko
 , pythonOlder
 }:
 
 buildPythonPackage rec {
-  version = "0.20.35";
+  version = "0.20.36";
   pname = "dulwich";
   format = "setuptools";
 
@@ -24,7 +25,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lT9jAanfigkfqI1V7tOUqIv5mIzei+NBd1NUkQkYwZY=";
+    hash = "sha256-2s7xVJwSdffS1v7NLyz6O6ozB9AJpRTAwjIDP2uqXSE=";
   };
 
   LC_ALL = "en_US.UTF-8";
@@ -43,6 +44,7 @@ buildPythonPackage rec {
     gpgme
     pkgs.gnupg
     mock
+    paramiko
   ];
 
   doCheck = !stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/embrace/default.nix b/pkgs/development/python-modules/embrace/default.nix
index 414425ed6f2c1..1e38a550d173b 100644
--- a/pkgs/development/python-modules/embrace/default.nix
+++ b/pkgs/development/python-modules/embrace/default.nix
@@ -1,4 +1,5 @@
-{ lib, buildPythonPackage, fetchFromSourcehut, sqlparse, wrapt, pytestCheckHook }:
+{ stdenv, lib, buildPythonPackage, fetchFromSourcehut,
+  sqlparse, wrapt, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "embrace";
@@ -16,6 +17,10 @@ buildPythonPackage rec {
   checkInputs = [ pytestCheckHook ];
   pythonImportsCheck = [ "embrace" ];
 
+  # Some test for hot-reload fails on Darwin, but the rest of the library
+  # should remain usable. (https://todo.sr.ht/~olly/embrace-sql/4)
+  doCheck = !stdenv.isDarwin;
+
   meta = with lib; {
     description = "Embrace SQL keeps your SQL queries in SQL files";
     homepage = "https://pypi.org/project/embrace/";
diff --git a/pkgs/development/python-modules/gcal-sync/default.nix b/pkgs/development/python-modules/gcal-sync/default.nix
index 101a3ef53d6d9..6947808c62e50 100644
--- a/pkgs/development/python-modules/gcal-sync/default.nix
+++ b/pkgs/development/python-modules/gcal-sync/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "gcal-sync";
-  version = "0.7.1";
+  version = "0.8.0";
 
   disabled = pythonOlder "3.9";
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "allenporter";
     repo = "gcal_sync";
     rev = version;
-    hash = "sha256-NOB74P+5i63FEeHJsPXRdRgY6iyIUEn7BogbVKm8P5M=";
+    hash = "sha256-Qk4WlMVyzOK2uyrUlJw9Q8ENtNT3PZ7FKTlCtPsm2v0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/geocachingapi/default.nix b/pkgs/development/python-modules/geocachingapi/default.nix
index 9d75727317887..7bc12f103193f 100644
--- a/pkgs/development/python-modules/geocachingapi/default.nix
+++ b/pkgs/development/python-modules/geocachingapi/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "geocachingapi";
-  version = "0.2.1";
+  version = "0.2.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "Sholofly";
     repo = "geocachingapi-python";
     rev = "refs/tags/${version}";
-    sha256 = "sha256-36CkbwRDpMTprsZuPJ9khSrzqLb2Sz7iCvXtJ46uTL0=";
+    sha256 = "sha256-EoAY3kUFCxQY2Dodwl0TWye5MTjjHvbna5AHha1UzCc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/ijson/default.nix b/pkgs/development/python-modules/ijson/default.nix
index 3f65b9291ae65..3211aed644e08 100644
--- a/pkgs/development/python-modules/ijson/default.nix
+++ b/pkgs/development/python-modules/ijson/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib, buildPythonPackage, fetchPypi, yajl, cffi, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "ijson";
@@ -9,7 +9,11 @@ buildPythonPackage rec {
     sha256 = "1d1003ae3c6115ec9b587d29dd136860a81a23c7626b682e2b5b12c9fd30e4ea";
   };
 
-  doCheck = false; # something about yajl
+  buildInputs = [ yajl ];
+  propagatedBuildInputs = [ cffi ];
+  checkInputs = [ pytestCheckHook ];
+
+  doCheck = true;
 
   meta = with lib; {
     description = "Iterative JSON parser with a standard Python iterator interface";
diff --git a/pkgs/development/python-modules/lrcalc-python/default.nix b/pkgs/development/python-modules/lrcalc-python/default.nix
new file mode 100644
index 0000000000000..66c0ad46e5b70
--- /dev/null
+++ b/pkgs/development/python-modules/lrcalc-python/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, cython
+, pkg-config
+, lrcalc
+}:
+
+buildPythonPackage rec {
+  pname = "lrcalc-python";
+  version = "2.1";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "lrcalc";
+    sha256 = "e3a0509aeda487b412b391a52e817ca36b5c063a8305e09fd54d53259dd6aaa9";
+  };
+
+  nativeBuildInputs = [ cython pkg-config ];
+
+  buildInputs = [ lrcalc ];
+
+  pythonImportsCheck = [ "lrcalc" ];
+
+  meta = with lib; {
+    description = "Littlewood-Richardson Calculator bindings";
+    homepage = "https://sites.math.rutgers.edu/~asbuch/lrcalc/";
+    maintainers = teams.sage.members;
+    license = licenses.gpl3;
+  };
+}
diff --git a/pkgs/development/python-modules/manuel/default.nix b/pkgs/development/python-modules/manuel/default.nix
index 2f14ed863c3eb..27ec85a1f4d12 100644
--- a/pkgs/development/python-modules/manuel/default.nix
+++ b/pkgs/development/python-modules/manuel/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "manuel";
-  version = "1.10.1";
+  version = "1.11.2";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bdzay7j70fly5fy6wbdi8fbrxjrrlxnxnw226rwry1c8a351rpy";
+    sha256 = "sha256-nJt3WMQ66oa3VlW5InJCzOea96Wf7WwxSbBp9WIfzqc=";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/ocrmypdf/default.nix b/pkgs/development/python-modules/ocrmypdf/default.nix
index 6700b88479db8..405748599ab43 100644
--- a/pkgs/development/python-modules/ocrmypdf/default.nix
+++ b/pkgs/development/python-modules/ocrmypdf/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "ocrmypdf";
-  version = "13.4.3";
+  version = "13.4.4";
 
   src = fetchFromGitHub {
     owner = "jbarlow83";
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     extraPostFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    hash = "sha256-kriT3NV9Lj44WjOeK6+pILjfRMt9QMcKU57si394xxI=";
+    hash = "sha256-uFKnohUxh17h6u0vwVB7EaTEh5NRowP8a6za63Ehodk=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/pex/default.nix b/pkgs/development/python-modules/pex/default.nix
index a6d665651655d..214f5f8bf408e 100644
--- a/pkgs/development/python-modules/pex/default.nix
+++ b/pkgs/development/python-modules/pex/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "pex";
-  version = "2.1.87";
+  version = "2.1.88";
   format = "flit";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LPOHpylnWxwEdPT3oJjbn8NkTY9tE/pMyGE8Dy7nwrU=";
+    hash = "sha256-lDUmudfs3Py4ytHsEvgnTiMvVQkom9X+uCeZHhTshjc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pikepdf/default.nix b/pkgs/development/python-modules/pikepdf/default.nix
index 0b72031a4bc7c..b86dabee9f2a0 100644
--- a/pkgs/development/python-modules/pikepdf/default.nix
+++ b/pkgs/development/python-modules/pikepdf/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "pikepdf";
-  version = "5.1.2";
+  version = "5.1.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     extraPostFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    hash = "sha256-VR2/+XCQb62FdkGZBxP2XTqatdFYZO1ngb8gvoJEvzs=";
+    hash = "sha256-jkAwc1bQ1jRDf/qY+xAjiLXXO98qKjyX+J7Lu4tYWoI=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/pycep-parser/default.nix b/pkgs/development/python-modules/pycep-parser/default.nix
index 3e8104ea33b8a..7a5178cb2282f 100644
--- a/pkgs/development/python-modules/pycep-parser/default.nix
+++ b/pkgs/development/python-modules/pycep-parser/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pycep-parser";
-  version = "0.3.4";
+  version = "0.3.5";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,8 +20,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "gruebel";
     repo = "pycep";
-    rev = version;
-    hash = "sha256-o2sYPvZVevDqZV8EtKWTL2zHHzX2kmTZ4iVHsUhFv7M=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Nj/drNRSIBh8DaE+vzQRijQg8NVUK5qBClwU3aWiA48=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pylsp-mypy/default.nix b/pkgs/development/python-modules/pylsp-mypy/default.nix
index c855127079773..5358b18402f2b 100644
--- a/pkgs/development/python-modules/pylsp-mypy/default.nix
+++ b/pkgs/development/python-modules/pylsp-mypy/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pylsp-mypy";
-  version = "0.5.7";
+  version = "0.5.8";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "Richardk2n";
     repo = "pylsp-mypy";
-    rev = version;
-    sha256 = "0am16z9kmj57r5pi32jhzlbdngzmvzzaiqjm7cba1izh7w5m6dvc";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-Yu1e/8gYFYEZ/IoFo8WnyRNYkCZ9i7NgjEjYBbagWMA=";
   };
 
   disabledTests = [
diff --git a/pkgs/development/python-modules/pynx584/default.nix b/pkgs/development/python-modules/pynx584/default.nix
index 0f2fc2e7c0b23..0b2583201a96d 100644
--- a/pkgs/development/python-modules/pynx584/default.nix
+++ b/pkgs/development/python-modules/pynx584/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pynx584";
-  version = "0.6";
+  version = "0.7";
   disabled = pythonOlder "3.6";
 
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "kk7ds";
     repo = pname;
     rev = version;
-    sha256 = "0if1jq8qiqp4w4zhf2xzzcb8y70hr5pxqzh96i008p6izjha89y6";
+    sha256 = "sha256-44JFq19fpJmpZzLeVcBILs8c9bOfWyMrb2jA4Yx8+Co=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyskyqhub/default.nix b/pkgs/development/python-modules/pyskyqhub/default.nix
index b0d1f8010fbb7..6f60fec79f2fe 100644
--- a/pkgs/development/python-modules/pyskyqhub/default.nix
+++ b/pkgs/development/python-modules/pyskyqhub/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyskyqhub";
-  version = "0.1.8";
+  version = "0.1.9";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "RogerSelwyn";
     repo = "skyq_hub";
     rev = version;
-    sha256 = "sha256-1KNgF3d5w+aNKNkOZVkdD3VVLz/F8NyQ5MxO1UaWrFk=";
+    sha256 = "sha256-yXqtABbsCh1yb96lsEA0gquikVenGLCo6J93AeXAC8k=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pywlroots/default.nix b/pkgs/development/python-modules/pywlroots/default.nix
index fdae8fdc10441..410e52372652e 100644
--- a/pkgs/development/python-modules/pywlroots/default.nix
+++ b/pkgs/development/python-modules/pywlroots/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "pywlroots";
-  version = "0.15.13";
+  version = "0.15.14";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "teZ8udox+4NefgA73gD5d6hPur/zjCapoMYPW36ax0s=";
+    sha256 = "z0PVjVzmAb5cgBdXWMxOdsy0VMMkmewHZaPNBYivXSA=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/python-modules/sanic/default.nix b/pkgs/development/python-modules/sanic/default.nix
index 228bf2a562418..ff76e2c563134 100644
--- a/pkgs/development/python-modules/sanic/default.nix
+++ b/pkgs/development/python-modules/sanic/default.nix
@@ -82,6 +82,9 @@ buildPythonPackage rec {
 
     # needed for relative paths for some packages
     cd tests
+  '' + lib.optionalString stdenv.isDarwin  ''
+    # OSError: [Errno 24] Too many open files
+    ulimit -n 1024
   '';
 
   # uvloop usage is buggy
diff --git a/pkgs/development/python-modules/torchmetrics/default.nix b/pkgs/development/python-modules/torchmetrics/default.nix
index ddccb4d78657a..590f9a835930d 100644
--- a/pkgs/development/python-modules/torchmetrics/default.nix
+++ b/pkgs/development/python-modules/torchmetrics/default.nix
@@ -15,7 +15,7 @@
 
 let
   pname = "torchmetrics";
-  version = "0.8.1";
+  version = "0.8.2";
 in
 buildPythonPackage {
   inherit pname version;
@@ -23,8 +23,8 @@ buildPythonPackage {
   src = fetchFromGitHub {
     owner = "PyTorchLightning";
     repo = "metrics";
-    rev = "v${version}";
-    hash = "sha256-AryEhYAeC97dO2pgHoz0Y9F//DVdX6RfCa80gI56iz4=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-1TO2YgZzjVmrE5jhMwo0Y+bQUQ5jJj34k+kGpdqqPVQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/twentemilieu/default.nix b/pkgs/development/python-modules/twentemilieu/default.nix
index 382e90e14c82d..39f8629a5b1e4 100644
--- a/pkgs/development/python-modules/twentemilieu/default.nix
+++ b/pkgs/development/python-modules/twentemilieu/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "twentemilieu";
-  version = "0.6.0";
+  version = "0.6.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "frenck";
     repo = "python-twentemilieu";
     rev = "v${version}";
-    sha256 = "sha256-UE7fhbSThXmMns1XfUUQqw0wn5/w/x+UncansIBiank=";
+    sha256 = "sha256-k2jdw2H/bNejNUjIEQlEA1KkHHpkyFlSDC1HKUoMIqQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/fx/default.nix b/pkgs/development/tools/fx/default.nix
index d3ae227ca2604..10f2e300b0d9f 100644
--- a/pkgs/development/tools/fx/default.nix
+++ b/pkgs/development/tools/fx/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fx";
-  version = "22.0.10";
+  version = "24.0.0";
 
   src = fetchFromGitHub {
     owner = "antonmedv";
     repo = pname;
     rev = version;
-    sha256 = "sha256-BoWb27sRqcYHSLhUvjRIRIkcj90FitpbrH2R3VHsRyI=";
+    sha256 = "sha256-Sg+mluDOGpkEUl+3BoItuPnMqs8F6o+D5xIqF0w0EIU=";
   };
 
-  vendorSha256 = "sha256-ZDPRKrum2tnhscZxLzslezYs/hOOtHwAORrAWoQhXbs=";
+  vendorSha256 = "sha256-4hx1AZQQ4xHBTzBK0OmrTUGMK4Rfu36cmopVV4SOjCQ=";
 
   meta = with lib; {
     description = "Terminal JSON viewer";
diff --git a/pkgs/development/tools/misc/devspace/default.nix b/pkgs/development/tools/misc/devspace/default.nix
index df59686b2b97a..0fe665606a258 100644
--- a/pkgs/development/tools/misc/devspace/default.nix
+++ b/pkgs/development/tools/misc/devspace/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "devspace";
-  version = "5.18.4";
+  version = "5.18.5";
 
   src = fetchFromGitHub {
     owner = "loft-sh";
     repo = "devspace";
     rev = "v${version}";
-    sha256 = "0s5117cgxgrxfki5drvg6d22dvrjffa03bi644zdl1p631r599r1";
+    sha256 = "1i4ir8p3xpfy8z8w8gzpk1hyzs04b5llrjd6hl2hzrxd1likl0sh";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/ocaml/merlin/4.x.nix b/pkgs/development/tools/ocaml/merlin/4.x.nix
index 635273bcfd25a..b5100afee984f 100644
--- a/pkgs/development/tools/ocaml/merlin/4.x.nix
+++ b/pkgs/development/tools/ocaml/merlin/4.x.nix
@@ -15,12 +15,13 @@
 }:
 
 let
-  merlinVersion = "4.4";
+  merlinVersion = "4.5";
 
   hashes = {
-    "4.4-411" = "sha256:0chx28098mmnjbnaz5wgzsn82rh1w9dhzqmsykb412cq13msl1q4";
-    "4.4-412" = "sha256:18xjpsiz7xbgjdnsxfc52l7yfh22harj0birlph4xm42d14pkn0n";
-    "4.4-413" = "sha256:1ilmh2gqpwgr51w2ba8r0s5zkj75h00wkw4az61ssvivn9jxr7k0";
+    "4.5-411" = "sha256:05nz6y7r91rh0lj8b6xdv3s3yknmvjc7y60v17kszgqnr887bvpn";
+    "4.5-412" = "sha256:0i5c3rfzinmwdjya7gv94zyknsm32qx9dlg472xpfqivwvnnhf1z";
+    "4.5-413" = "sha256:1sphq9anfg1qzrvj7hdcqflj6cmc1qiyfkljhng9fxnnr0i7550s";
+    "4.5-414" = "sha256:13h588kwih05zd9p3p7q528q4zc0d1l983kkvbmkxgay5d17nn1i";
   };
 
   ocamlVersionShorthand = lib.concatStrings
@@ -55,8 +56,6 @@ buildDunePackage {
     ./test.patch
   ;
 
-  useDune2 = true;
-
   strictDeps = true;
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/systemfd/Cargo.nix b/pkgs/development/tools/systemfd/Cargo.nix
deleted file mode 100644
index b6687f1e929a8..0000000000000
--- a/pkgs/development/tools/systemfd/Cargo.nix
+++ /dev/null
@@ -1,215 +0,0 @@
-# Generated by carnix 0.10.0: carnix generate-nix
-{ lib, buildPlatform, buildRustCrate, buildRustCrateHelpers, cratesIO, fetchgit }:
-with buildRustCrateHelpers;
-let inherit (lib.lists) fold;
-    inherit (lib.attrsets) recursiveUpdate;
-in
-rec {
-  crates = cratesIO;
-  systemfd = crates.crates.systemfd."0.3.0" deps;
-  __all = [ (systemfd {}) ];
-  deps.aho_corasick."0.6.4" = {
-    memchr = "2.0.1";
-  };
-  deps.ansi_term."0.11.0" = {
-    winapi = "0.3.4";
-  };
-  deps.atty."0.2.10" = {
-    termion = "1.5.1";
-    libc = "0.2.40";
-    winapi = "0.3.4";
-  };
-  deps.backtrace."0.3.7" = {
-    cfg_if = "0.1.3";
-    rustc_demangle = "0.1.8";
-    backtrace_sys = "0.1.16";
-    libc = "0.2.40";
-    winapi = "0.3.4";
-  };
-  deps.backtrace_sys."0.1.16" = {
-    libc = "0.2.40";
-    cc = "1.0.15";
-  };
-  deps.bitflags."1.0.3" = {};
-  deps.byteorder."1.2.3" = {};
-  deps.bytes."0.4.7" = {
-    byteorder = "1.2.3";
-    iovec = "0.1.2";
-  };
-  deps.cc."1.0.15" = {};
-  deps.cfg_if."0.1.3" = {};
-  deps.clap."2.31.2" = {
-    atty = "0.2.10";
-    bitflags = "1.0.3";
-    strsim = "0.7.0";
-    textwrap = "0.9.0";
-    unicode_width = "0.1.4";
-    vec_map = "0.8.1";
-    ansi_term = "0.11.0";
-  };
-  deps.clicolors_control."0.2.0" = {
-    lazy_static = "0.2.11";
-    libc = "0.2.40";
-    kernel32_sys = "0.2.2";
-    winapi = "0.3.4";
-  };
-  deps.console."0.6.1" = {
-    clicolors_control = "0.2.0";
-    lazy_static = "0.2.11";
-    libc = "0.2.40";
-    parking_lot = "0.5.5";
-    regex = "0.2.11";
-    unicode_width = "0.1.4";
-    termios = "0.2.2";
-    winapi = "0.3.4";
-  };
-  deps.failure."0.1.1" = {
-    backtrace = "0.3.7";
-    failure_derive = "0.1.1";
-  };
-  deps.failure_derive."0.1.1" = {
-    quote = "0.3.15";
-    syn = "0.11.11";
-    synstructure = "0.6.1";
-  };
-  deps.fuchsia_zircon."0.3.3" = {
-    bitflags = "1.0.3";
-    fuchsia_zircon_sys = "0.3.3";
-  };
-  deps.fuchsia_zircon_sys."0.3.3" = {};
-  deps.gcc."0.3.54" = {};
-  deps.iovec."0.1.2" = {
-    libc = "0.2.40";
-    winapi = "0.2.8";
-  };
-  deps.kernel32_sys."0.2.2" = {
-    winapi = "0.2.8";
-    winapi_build = "0.1.1";
-  };
-  deps.lazy_static."0.2.11" = {};
-  deps.lazy_static."1.0.0" = {};
-  deps.libc."0.2.40" = {};
-  deps.memchr."2.0.1" = {
-    libc = "0.2.40";
-  };
-  deps.nix."0.10.0" = {
-    bitflags = "1.0.3";
-    bytes = "0.4.7";
-    cfg_if = "0.1.3";
-    libc = "0.2.40";
-    void = "1.0.2";
-  };
-  deps.owning_ref."0.3.3" = {
-    stable_deref_trait = "1.0.0";
-  };
-  deps.parking_lot."0.5.5" = {
-    owning_ref = "0.3.3";
-    parking_lot_core = "0.2.14";
-  };
-  deps.parking_lot_core."0.2.14" = {
-    rand = "0.4.2";
-    smallvec = "0.6.1";
-    libc = "0.2.40";
-    winapi = "0.3.4";
-  };
-  deps.quote."0.3.15" = {};
-  deps.rand."0.4.2" = {
-    fuchsia_zircon = "0.3.3";
-    libc = "0.2.40";
-    winapi = "0.3.4";
-  };
-  deps.redox_syscall."0.1.37" = {};
-  deps.redox_termios."0.1.1" = {
-    redox_syscall = "0.1.37";
-  };
-  deps.regex."0.2.11" = {
-    aho_corasick = "0.6.4";
-    memchr = "2.0.1";
-    regex_syntax = "0.5.6";
-    thread_local = "0.3.5";
-    utf8_ranges = "1.0.0";
-  };
-  deps.regex."1.0.0" = {
-    aho_corasick = "0.6.4";
-    memchr = "2.0.1";
-    regex_syntax = "0.6.0";
-    thread_local = "0.3.5";
-    utf8_ranges = "1.0.0";
-  };
-  deps.regex_syntax."0.5.6" = {
-    ucd_util = "0.1.1";
-  };
-  deps.regex_syntax."0.6.0" = {
-    ucd_util = "0.1.1";
-  };
-  deps.rustc_demangle."0.1.8" = {};
-  deps.smallvec."0.6.1" = {};
-  deps.socket2."0.3.5" = {
-    cfg_if = "0.1.3";
-    libc = "0.2.40";
-    winapi = "0.3.4";
-  };
-  deps.stable_deref_trait."1.0.0" = {};
-  deps.strsim."0.7.0" = {};
-  deps.syn."0.11.11" = {
-    quote = "0.3.15";
-    synom = "0.11.3";
-    unicode_xid = "0.0.4";
-  };
-  deps.synom."0.11.3" = {
-    unicode_xid = "0.0.4";
-  };
-  deps.synstructure."0.6.1" = {
-    quote = "0.3.15";
-    syn = "0.11.11";
-  };
-  deps.systemfd."0.3.0" = {
-    clap = "2.31.2";
-    console = "0.6.1";
-    failure = "0.1.1";
-    failure_derive = "0.1.1";
-    lazy_static = "1.0.0";
-    libc = "0.2.40";
-    regex = "1.0.0";
-    nix = "0.10.0";
-    socket2 = "0.3.5";
-    uuid = "0.6.3";
-    winapi = "0.3.4";
-  };
-  deps.termion."1.5.1" = {
-    libc = "0.2.40";
-    redox_syscall = "0.1.37";
-    redox_termios = "0.1.1";
-  };
-  deps.termios."0.2.2" = {
-    libc = "0.2.40";
-  };
-  deps.textwrap."0.9.0" = {
-    unicode_width = "0.1.4";
-  };
-  deps.thread_local."0.3.5" = {
-    lazy_static = "1.0.0";
-    unreachable = "1.0.0";
-  };
-  deps.ucd_util."0.1.1" = {};
-  deps.unicode_width."0.1.4" = {};
-  deps.unicode_xid."0.0.4" = {};
-  deps.unreachable."1.0.0" = {
-    void = "1.0.2";
-  };
-  deps.utf8_ranges."1.0.0" = {};
-  deps.uuid."0.6.3" = {
-    cfg_if = "0.1.3";
-    rand = "0.4.2";
-  };
-  deps.vec_map."0.8.1" = {};
-  deps.void."1.0.2" = {};
-  deps.winapi."0.2.8" = {};
-  deps.winapi."0.3.4" = {
-    winapi_i686_pc_windows_gnu = "0.4.0";
-    winapi_x86_64_pc_windows_gnu = "0.4.0";
-  };
-  deps.winapi_build."0.1.1" = {};
-  deps.winapi_i686_pc_windows_gnu."0.4.0" = {};
-  deps.winapi_x86_64_pc_windows_gnu."0.4.0" = {};
-}
diff --git a/pkgs/development/tools/systemfd/crates-io.list b/pkgs/development/tools/systemfd/crates-io.list
deleted file mode 100644
index 0b8371f68a1e2..0000000000000
--- a/pkgs/development/tools/systemfd/crates-io.list
+++ /dev/null
@@ -1,62 +0,0 @@
-aho-corasick-0.6.4
-ansi_term-0.11.0
-atty-0.2.10
-backtrace-0.3.7
-backtrace-sys-0.1.16
-bitflags-1.0.3
-byteorder-1.2.3
-bytes-0.4.7
-cc-1.0.15
-cfg-if-0.1.3
-clap-2.31.2
-clicolors-control-0.2.0
-console-0.6.1
-failure-0.1.1
-failure_derive-0.1.1
-fuchsia-zircon-0.3.3
-fuchsia-zircon-sys-0.3.3
-gcc-0.3.54
-iovec-0.1.2
-kernel32-sys-0.2.2
-lazy_static-0.2.11
-lazy_static-1.0.0
-libc-0.2.40
-memchr-2.0.1
-nix-0.10.0
-owning_ref-0.3.3
-parking_lot-0.5.5
-parking_lot_core-0.2.14
-quote-0.3.15
-rand-0.4.2
-redox_syscall-0.1.37
-redox_termios-0.1.1
-regex-0.2.11
-regex-1.0.0
-regex-syntax-0.5.6
-regex-syntax-0.6.0
-rustc-demangle-0.1.8
-smallvec-0.6.1
-socket2-0.3.5
-stable_deref_trait-1.0.0
-strsim-0.7.0
-syn-0.11.11
-synom-0.11.3
-synstructure-0.6.1
-systemfd-0.3.0
-termion-1.5.1
-termios-0.2.2
-textwrap-0.9.0
-thread_local-0.3.5
-ucd-util-0.1.1
-unicode-width-0.1.4
-unicode-xid-0.0.4
-unreachable-1.0.0
-utf8-ranges-1.0.0
-uuid-0.6.3
-vec_map-0.8.1
-void-1.0.2
-winapi-0.2.8
-winapi-0.3.4
-winapi-build-0.1.1
-winapi-i686-pc-windows-gnu-0.4.0
-winapi-x86_64-pc-windows-gnu-0.4.0
diff --git a/pkgs/development/tools/systemfd/crates-io.nix b/pkgs/development/tools/systemfd/crates-io.nix
deleted file mode 100644
index 7e7b737b8c878..0000000000000
--- a/pkgs/development/tools/systemfd/crates-io.nix
+++ /dev/null
@@ -1,1890 +0,0 @@
-{ lib, buildRustCrate, buildRustCrateHelpers }:
-with buildRustCrateHelpers;
-let inherit (lib.lists) fold;
-    inherit (lib.attrsets) recursiveUpdate;
-in
-rec {
-
-# aho-corasick-0.6.4
-
-  crates.aho_corasick."0.6.4" = deps: { features?(features_.aho_corasick."0.6.4" deps {}) }: buildRustCrate {
-    crateName = "aho-corasick";
-    version = "0.6.4";
-    description = "Fast multiple substring searching with finite state machines.";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "189v919mp6rzzgjp1khpn4zlq8ls81gh43x1lmc8kbkagdlpq888";
-    libName = "aho_corasick";
-    crateBin =
-      [{  name = "aho-corasick-dot"; }];
-    dependencies = mapFeatures features ([
-      (crates."memchr"."${deps."aho_corasick"."0.6.4"."memchr"}" deps)
-    ]);
-  };
-  features_.aho_corasick."0.6.4" = deps: f: updateFeatures f (rec {
-    aho_corasick."0.6.4".default = (f.aho_corasick."0.6.4".default or true);
-    memchr."${deps.aho_corasick."0.6.4".memchr}".default = true;
-  }) [
-    (features_.memchr."${deps."aho_corasick"."0.6.4"."memchr"}" deps)
-  ];
-
-
-# end
-# ansi_term-0.11.0
-
-  crates.ansi_term."0.11.0" = deps: { features?(features_.ansi_term."0.11.0" deps {}) }: buildRustCrate {
-    crateName = "ansi_term";
-    version = "0.11.0";
-    description = "Library for ANSI terminal colours and styles (bold, underline)";
-    authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" "Josh Triplett <josh@joshtriplett.org>" ];
-    sha256 = "08fk0p2xvkqpmz3zlrwnf6l8sj2vngw464rvzspzp31sbgxbwm4v";
-    dependencies = (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."ansi_term"."0.11.0"."winapi"}" deps)
-    ]) else []);
-  };
-  features_.ansi_term."0.11.0" = deps: f: updateFeatures f (rec {
-    ansi_term."0.11.0".default = (f.ansi_term."0.11.0".default or true);
-    winapi = fold recursiveUpdate {} [
-      { "${deps.ansi_term."0.11.0".winapi}"."consoleapi" = true; }
-      { "${deps.ansi_term."0.11.0".winapi}"."errhandlingapi" = true; }
-      { "${deps.ansi_term."0.11.0".winapi}"."processenv" = true; }
-      { "${deps.ansi_term."0.11.0".winapi}".default = true; }
-    ];
-  }) [
-    (features_.winapi."${deps."ansi_term"."0.11.0"."winapi"}" deps)
-  ];
-
-
-# end
-# atty-0.2.10
-
-  crates.atty."0.2.10" = deps: { features?(features_.atty."0.2.10" deps {}) }: buildRustCrate {
-    crateName = "atty";
-    version = "0.2.10";
-    description = "A simple interface for querying atty";
-    authors = [ "softprops <d.tangren@gmail.com>" ];
-    sha256 = "1h26lssj8rwaz0xhwwm5a645r49yly211amfmd243m3m0jl49i2c";
-    dependencies = (if kernel == "redox" then mapFeatures features ([
-      (crates."termion"."${deps."atty"."0.2.10"."termion"}" deps)
-    ]) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-      (crates."libc"."${deps."atty"."0.2.10"."libc"}" deps)
-    ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."atty"."0.2.10"."winapi"}" deps)
-    ]) else []);
-  };
-  features_.atty."0.2.10" = deps: f: updateFeatures f (rec {
-    atty."0.2.10".default = (f.atty."0.2.10".default or true);
-    libc."${deps.atty."0.2.10".libc}".default = (f.libc."${deps.atty."0.2.10".libc}".default or false);
-    termion."${deps.atty."0.2.10".termion}".default = true;
-    winapi = fold recursiveUpdate {} [
-      { "${deps.atty."0.2.10".winapi}"."consoleapi" = true; }
-      { "${deps.atty."0.2.10".winapi}"."minwinbase" = true; }
-      { "${deps.atty."0.2.10".winapi}"."minwindef" = true; }
-      { "${deps.atty."0.2.10".winapi}"."processenv" = true; }
-      { "${deps.atty."0.2.10".winapi}"."winbase" = true; }
-      { "${deps.atty."0.2.10".winapi}".default = true; }
-    ];
-  }) [
-    (features_.termion."${deps."atty"."0.2.10"."termion"}" deps)
-    (features_.libc."${deps."atty"."0.2.10"."libc"}" deps)
-    (features_.winapi."${deps."atty"."0.2.10"."winapi"}" deps)
-  ];
-
-
-# end
-# backtrace-0.3.7
-
-  crates.backtrace."0.3.7" = deps: { features?(features_.backtrace."0.3.7" deps {}) }: buildRustCrate {
-    crateName = "backtrace";
-    version = "0.3.7";
-    description = "A library to acquire a stack trace (backtrace) at runtime in a Rust program.\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" "The Rust Project Developers" ];
-    sha256 = "00zzcgacv516dlhxkrdw4c8vsx3bwkkdrrzi5pnxrhpd87ambjwn";
-    dependencies = mapFeatures features ([
-      (crates."cfg_if"."${deps."backtrace"."0.3.7"."cfg_if"}" deps)
-      (crates."rustc_demangle"."${deps."backtrace"."0.3.7"."rustc_demangle"}" deps)
-    ])
-      ++ (if (kernel == "linux" || kernel == "darwin") && !(kernel == "fuchsia") && !(kernel == "emscripten") && !(kernel == "darwin") && !(kernel == "ios") then mapFeatures features ([
-    ]
-      ++ (if features.backtrace."0.3.7".backtrace-sys or false then [ (crates.backtrace_sys."${deps."backtrace"."0.3.7".backtrace_sys}" deps) ] else [])) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-      (crates."libc"."${deps."backtrace"."0.3.7"."libc"}" deps)
-    ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-    ]
-      ++ (if features.backtrace."0.3.7".winapi or false then [ (crates.winapi."${deps."backtrace"."0.3.7".winapi}" deps) ] else [])) else []);
-    features = mkFeatures (features."backtrace"."0.3.7" or {});
-  };
-  features_.backtrace."0.3.7" = deps: f: updateFeatures f (rec {
-    backtrace = fold recursiveUpdate {} [
-      { "0.3.7"."addr2line" =
-        (f.backtrace."0.3.7"."addr2line" or false) ||
-        (f.backtrace."0.3.7".gimli-symbolize or false) ||
-        (backtrace."0.3.7"."gimli-symbolize" or false); }
-      { "0.3.7"."backtrace-sys" =
-        (f.backtrace."0.3.7"."backtrace-sys" or false) ||
-        (f.backtrace."0.3.7".libbacktrace or false) ||
-        (backtrace."0.3.7"."libbacktrace" or false); }
-      { "0.3.7"."coresymbolication" =
-        (f.backtrace."0.3.7"."coresymbolication" or false) ||
-        (f.backtrace."0.3.7".default or false) ||
-        (backtrace."0.3.7"."default" or false); }
-      { "0.3.7"."dbghelp" =
-        (f.backtrace."0.3.7"."dbghelp" or false) ||
-        (f.backtrace."0.3.7".default or false) ||
-        (backtrace."0.3.7"."default" or false); }
-      { "0.3.7"."dladdr" =
-        (f.backtrace."0.3.7"."dladdr" or false) ||
-        (f.backtrace."0.3.7".default or false) ||
-        (backtrace."0.3.7"."default" or false); }
-      { "0.3.7"."findshlibs" =
-        (f.backtrace."0.3.7"."findshlibs" or false) ||
-        (f.backtrace."0.3.7".gimli-symbolize or false) ||
-        (backtrace."0.3.7"."gimli-symbolize" or false); }
-      { "0.3.7"."gimli" =
-        (f.backtrace."0.3.7"."gimli" or false) ||
-        (f.backtrace."0.3.7".gimli-symbolize or false) ||
-        (backtrace."0.3.7"."gimli-symbolize" or false); }
-      { "0.3.7"."libbacktrace" =
-        (f.backtrace."0.3.7"."libbacktrace" or false) ||
-        (f.backtrace."0.3.7".default or false) ||
-        (backtrace."0.3.7"."default" or false); }
-      { "0.3.7"."libunwind" =
-        (f.backtrace."0.3.7"."libunwind" or false) ||
-        (f.backtrace."0.3.7".default or false) ||
-        (backtrace."0.3.7"."default" or false); }
-      { "0.3.7"."memmap" =
-        (f.backtrace."0.3.7"."memmap" or false) ||
-        (f.backtrace."0.3.7".gimli-symbolize or false) ||
-        (backtrace."0.3.7"."gimli-symbolize" or false); }
-      { "0.3.7"."object" =
-        (f.backtrace."0.3.7"."object" or false) ||
-        (f.backtrace."0.3.7".gimli-symbolize or false) ||
-        (backtrace."0.3.7"."gimli-symbolize" or false); }
-      { "0.3.7"."rustc-serialize" =
-        (f.backtrace."0.3.7"."rustc-serialize" or false) ||
-        (f.backtrace."0.3.7".serialize-rustc or false) ||
-        (backtrace."0.3.7"."serialize-rustc" or false); }
-      { "0.3.7"."serde" =
-        (f.backtrace."0.3.7"."serde" or false) ||
-        (f.backtrace."0.3.7".serialize-serde or false) ||
-        (backtrace."0.3.7"."serialize-serde" or false); }
-      { "0.3.7"."serde_derive" =
-        (f.backtrace."0.3.7"."serde_derive" or false) ||
-        (f.backtrace."0.3.7".serialize-serde or false) ||
-        (backtrace."0.3.7"."serialize-serde" or false); }
-      { "0.3.7"."winapi" =
-        (f.backtrace."0.3.7"."winapi" or false) ||
-        (f.backtrace."0.3.7".dbghelp or false) ||
-        (backtrace."0.3.7"."dbghelp" or false); }
-      { "0.3.7".default = (f.backtrace."0.3.7".default or true); }
-    ];
-    backtrace_sys."${deps.backtrace."0.3.7".backtrace_sys}".default = true;
-    cfg_if."${deps.backtrace."0.3.7".cfg_if}".default = true;
-    libc."${deps.backtrace."0.3.7".libc}".default = true;
-    rustc_demangle."${deps.backtrace."0.3.7".rustc_demangle}".default = true;
-    winapi = fold recursiveUpdate {} [
-      { "${deps.backtrace."0.3.7".winapi}"."dbghelp" = true; }
-      { "${deps.backtrace."0.3.7".winapi}"."minwindef" = true; }
-      { "${deps.backtrace."0.3.7".winapi}"."processthreadsapi" = true; }
-      { "${deps.backtrace."0.3.7".winapi}"."std" = true; }
-      { "${deps.backtrace."0.3.7".winapi}"."winnt" = true; }
-      { "${deps.backtrace."0.3.7".winapi}".default = true; }
-    ];
-  }) [
-    (features_.cfg_if."${deps."backtrace"."0.3.7"."cfg_if"}" deps)
-    (features_.rustc_demangle."${deps."backtrace"."0.3.7"."rustc_demangle"}" deps)
-    (features_.backtrace_sys."${deps."backtrace"."0.3.7"."backtrace_sys"}" deps)
-    (features_.libc."${deps."backtrace"."0.3.7"."libc"}" deps)
-    (features_.winapi."${deps."backtrace"."0.3.7"."winapi"}" deps)
-  ];
-
-
-# end
-# backtrace-sys-0.1.16
-
-  crates.backtrace_sys."0.1.16" = deps: { features?(features_.backtrace_sys."0.1.16" deps {}) }: buildRustCrate {
-    crateName = "backtrace-sys";
-    version = "0.1.16";
-    description = "Bindings to the libbacktrace gcc library\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "1cn2c8q3dn06crmnk0p62czkngam4l8nf57wy33nz1y5g25pszwy";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."libc"."${deps."backtrace_sys"."0.1.16"."libc"}" deps)
-    ]);
-
-    buildDependencies = mapFeatures features ([
-      (crates."cc"."${deps."backtrace_sys"."0.1.16"."cc"}" deps)
-    ]);
-  };
-  features_.backtrace_sys."0.1.16" = deps: f: updateFeatures f (rec {
-    backtrace_sys."0.1.16".default = (f.backtrace_sys."0.1.16".default or true);
-    cc."${deps.backtrace_sys."0.1.16".cc}".default = true;
-    libc."${deps.backtrace_sys."0.1.16".libc}".default = true;
-  }) [
-    (features_.libc."${deps."backtrace_sys"."0.1.16"."libc"}" deps)
-    (features_.cc."${deps."backtrace_sys"."0.1.16"."cc"}" deps)
-  ];
-
-
-# end
-# bitflags-1.0.3
-
-  crates.bitflags."1.0.3" = deps: { features?(features_.bitflags."1.0.3" deps {}) }: buildRustCrate {
-    crateName = "bitflags";
-    version = "1.0.3";
-    description = "A macro to generate structures which behave like bitflags.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "162p4w4h1ad76awq6b5yivmls3d50m9cl27d8g588lsps6g8s5rw";
-    features = mkFeatures (features."bitflags"."1.0.3" or {});
-  };
-  features_.bitflags."1.0.3" = deps: f: updateFeatures f (rec {
-    bitflags."1.0.3".default = (f.bitflags."1.0.3".default or true);
-  }) [];
-
-
-# end
-# byteorder-1.2.3
-
-  crates.byteorder."1.2.3" = deps: { features?(features_.byteorder."1.2.3" deps {}) }: buildRustCrate {
-    crateName = "byteorder";
-    version = "1.2.3";
-    description = "Library for reading/writing numbers in big-endian and little-endian.";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "1xghv5f5rydzsam8lnfqhfk090i8a1knb77ikbs0ik44bvrw2ij3";
-    features = mkFeatures (features."byteorder"."1.2.3" or {});
-  };
-  features_.byteorder."1.2.3" = deps: f: updateFeatures f (rec {
-    byteorder = fold recursiveUpdate {} [
-      { "1.2.3"."std" =
-        (f.byteorder."1.2.3"."std" or false) ||
-        (f.byteorder."1.2.3".default or false) ||
-        (byteorder."1.2.3"."default" or false); }
-      { "1.2.3".default = (f.byteorder."1.2.3".default or true); }
-    ];
-  }) [];
-
-
-# end
-# bytes-0.4.7
-
-  crates.bytes."0.4.7" = deps: { features?(features_.bytes."0.4.7" deps {}) }: buildRustCrate {
-    crateName = "bytes";
-    version = "0.4.7";
-    description = "Types and traits for working with bytes";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "1icr74r099d0c0a2q1pz51182z7911g92h2j60al351kz78dzv3f";
-    dependencies = mapFeatures features ([
-      (crates."byteorder"."${deps."bytes"."0.4.7"."byteorder"}" deps)
-      (crates."iovec"."${deps."bytes"."0.4.7"."iovec"}" deps)
-    ]);
-  };
-  features_.bytes."0.4.7" = deps: f: updateFeatures f (rec {
-    byteorder."${deps.bytes."0.4.7".byteorder}".default = true;
-    bytes."0.4.7".default = (f.bytes."0.4.7".default or true);
-    iovec."${deps.bytes."0.4.7".iovec}".default = true;
-  }) [
-    (features_.byteorder."${deps."bytes"."0.4.7"."byteorder"}" deps)
-    (features_.iovec."${deps."bytes"."0.4.7"."iovec"}" deps)
-  ];
-
-
-# end
-# cc-1.0.15
-
-  crates.cc."1.0.15" = deps: { features?(features_.cc."1.0.15" deps {}) }: buildRustCrate {
-    crateName = "cc";
-    version = "1.0.15";
-    description = "A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "1zmcv4zf888byhay2qakqlc9b8snhy5ccfs35zb6flywmlj8f2c0";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."cc"."1.0.15" or {});
-  };
-  features_.cc."1.0.15" = deps: f: updateFeatures f (rec {
-    cc = fold recursiveUpdate {} [
-      { "1.0.15"."rayon" =
-        (f.cc."1.0.15"."rayon" or false) ||
-        (f.cc."1.0.15".parallel or false) ||
-        (cc."1.0.15"."parallel" or false); }
-      { "1.0.15".default = (f.cc."1.0.15".default or true); }
-    ];
-  }) [];
-
-
-# end
-# cfg-if-0.1.3
-
-  crates.cfg_if."0.1.3" = deps: { features?(features_.cfg_if."0.1.3" deps {}) }: buildRustCrate {
-    crateName = "cfg-if";
-    version = "0.1.3";
-    description = "A macro to ergonomically define an item depending on a large number of #[cfg]\nparameters. Structured like an if-else chain, the first matching branch is the\nitem that gets emitted.\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0hphfz5qg40gr5p18gmgy2rzkqj019lii3n0dy3s0a6lnl9106k6";
-  };
-  features_.cfg_if."0.1.3" = deps: f: updateFeatures f (rec {
-    cfg_if."0.1.3".default = (f.cfg_if."0.1.3".default or true);
-  }) [];
-
-
-# end
-# clap-2.31.2
-
-  crates.clap."2.31.2" = deps: { features?(features_.clap."2.31.2" deps {}) }: buildRustCrate {
-    crateName = "clap";
-    version = "2.31.2";
-    description = "A simple to use, efficient, and full featured  Command Line Argument Parser\n";
-    authors = [ "Kevin K. <kbknapp@gmail.com>" ];
-    sha256 = "0r24ziw85a8y1sf2l21y4mvv5qan3rjafcshpyfsjfadqfxsij72";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."clap"."2.31.2"."bitflags"}" deps)
-      (crates."textwrap"."${deps."clap"."2.31.2"."textwrap"}" deps)
-      (crates."unicode_width"."${deps."clap"."2.31.2"."unicode_width"}" deps)
-    ]
-      ++ (if features.clap."2.31.2".atty or false then [ (crates.atty."${deps."clap"."2.31.2".atty}" deps) ] else [])
-      ++ (if features.clap."2.31.2".strsim or false then [ (crates.strsim."${deps."clap"."2.31.2".strsim}" deps) ] else [])
-      ++ (if features.clap."2.31.2".vec_map or false then [ (crates.vec_map."${deps."clap"."2.31.2".vec_map}" deps) ] else []))
-      ++ (if !(kernel == "windows") then mapFeatures features ([
-    ]
-      ++ (if features.clap."2.31.2".ansi_term or false then [ (crates.ansi_term."${deps."clap"."2.31.2".ansi_term}" deps) ] else [])) else []);
-    features = mkFeatures (features."clap"."2.31.2" or {});
-  };
-  features_.clap."2.31.2" = deps: f: updateFeatures f (rec {
-    ansi_term."${deps.clap."2.31.2".ansi_term}".default = true;
-    atty."${deps.clap."2.31.2".atty}".default = true;
-    bitflags."${deps.clap."2.31.2".bitflags}".default = true;
-    clap = fold recursiveUpdate {} [
-      { "2.31.2"."ansi_term" =
-        (f.clap."2.31.2"."ansi_term" or false) ||
-        (f.clap."2.31.2".color or false) ||
-        (clap."2.31.2"."color" or false); }
-      { "2.31.2"."atty" =
-        (f.clap."2.31.2"."atty" or false) ||
-        (f.clap."2.31.2".color or false) ||
-        (clap."2.31.2"."color" or false); }
-      { "2.31.2"."clippy" =
-        (f.clap."2.31.2"."clippy" or false) ||
-        (f.clap."2.31.2".lints or false) ||
-        (clap."2.31.2"."lints" or false); }
-      { "2.31.2"."color" =
-        (f.clap."2.31.2"."color" or false) ||
-        (f.clap."2.31.2".default or false) ||
-        (clap."2.31.2"."default" or false); }
-      { "2.31.2"."strsim" =
-        (f.clap."2.31.2"."strsim" or false) ||
-        (f.clap."2.31.2".suggestions or false) ||
-        (clap."2.31.2"."suggestions" or false); }
-      { "2.31.2"."suggestions" =
-        (f.clap."2.31.2"."suggestions" or false) ||
-        (f.clap."2.31.2".default or false) ||
-        (clap."2.31.2"."default" or false); }
-      { "2.31.2"."term_size" =
-        (f.clap."2.31.2"."term_size" or false) ||
-        (f.clap."2.31.2".wrap_help or false) ||
-        (clap."2.31.2"."wrap_help" or false); }
-      { "2.31.2"."vec_map" =
-        (f.clap."2.31.2"."vec_map" or false) ||
-        (f.clap."2.31.2".default or false) ||
-        (clap."2.31.2"."default" or false); }
-      { "2.31.2"."yaml" =
-        (f.clap."2.31.2"."yaml" or false) ||
-        (f.clap."2.31.2".doc or false) ||
-        (clap."2.31.2"."doc" or false); }
-      { "2.31.2"."yaml-rust" =
-        (f.clap."2.31.2"."yaml-rust" or false) ||
-        (f.clap."2.31.2".yaml or false) ||
-        (clap."2.31.2"."yaml" or false); }
-      { "2.31.2".default = (f.clap."2.31.2".default or true); }
-    ];
-    strsim."${deps.clap."2.31.2".strsim}".default = true;
-    textwrap = fold recursiveUpdate {} [
-      { "${deps.clap."2.31.2".textwrap}"."term_size" =
-        (f.textwrap."${deps.clap."2.31.2".textwrap}"."term_size" or false) ||
-        (clap."2.31.2"."wrap_help" or false) ||
-        (f."clap"."2.31.2"."wrap_help" or false); }
-      { "${deps.clap."2.31.2".textwrap}".default = true; }
-    ];
-    unicode_width."${deps.clap."2.31.2".unicode_width}".default = true;
-    vec_map."${deps.clap."2.31.2".vec_map}".default = true;
-  }) [
-    (features_.atty."${deps."clap"."2.31.2"."atty"}" deps)
-    (features_.bitflags."${deps."clap"."2.31.2"."bitflags"}" deps)
-    (features_.strsim."${deps."clap"."2.31.2"."strsim"}" deps)
-    (features_.textwrap."${deps."clap"."2.31.2"."textwrap"}" deps)
-    (features_.unicode_width."${deps."clap"."2.31.2"."unicode_width"}" deps)
-    (features_.vec_map."${deps."clap"."2.31.2"."vec_map"}" deps)
-    (features_.ansi_term."${deps."clap"."2.31.2"."ansi_term"}" deps)
-  ];
-
-
-# end
-# clicolors-control-0.2.0
-
-  crates.clicolors_control."0.2.0" = deps: { features?(features_.clicolors_control."0.2.0" deps {}) }: buildRustCrate {
-    crateName = "clicolors-control";
-    version = "0.2.0";
-    description = "A common utility library to control CLI colorization";
-    authors = [ "Armin Ronacher <armin.ronacher@active-4.com>" ];
-    sha256 = "0p1fbs7k70h58ycahmin7b87c0xn6lc94xmh9jw4gxi40mnrvdkp";
-    dependencies = mapFeatures features ([
-      (crates."lazy_static"."${deps."clicolors_control"."0.2.0"."lazy_static"}" deps)
-    ])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-      (crates."libc"."${deps."clicolors_control"."0.2.0"."libc"}" deps)
-    ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."kernel32_sys"."${deps."clicolors_control"."0.2.0"."kernel32_sys"}" deps)
-      (crates."winapi"."${deps."clicolors_control"."0.2.0"."winapi"}" deps)
-    ]) else []);
-    features = mkFeatures (features."clicolors_control"."0.2.0" or {});
-  };
-  features_.clicolors_control."0.2.0" = deps: f: updateFeatures f (rec {
-    clicolors_control = fold recursiveUpdate {} [
-      { "0.2.0"."terminal_autoconfig" =
-        (f.clicolors_control."0.2.0"."terminal_autoconfig" or false) ||
-        (f.clicolors_control."0.2.0".default or false) ||
-        (clicolors_control."0.2.0"."default" or false); }
-      { "0.2.0".default = (f.clicolors_control."0.2.0".default or true); }
-    ];
-    kernel32_sys."${deps.clicolors_control."0.2.0".kernel32_sys}".default = true;
-    lazy_static."${deps.clicolors_control."0.2.0".lazy_static}".default = true;
-    libc."${deps.clicolors_control."0.2.0".libc}".default = true;
-    winapi = fold recursiveUpdate {} [
-      { "${deps.clicolors_control."0.2.0".winapi}"."consoleapi" = true; }
-      { "${deps.clicolors_control."0.2.0".winapi}"."handleapi" = true; }
-      { "${deps.clicolors_control."0.2.0".winapi}"."processenv" = true; }
-      { "${deps.clicolors_control."0.2.0".winapi}"."winbase" = true; }
-      { "${deps.clicolors_control."0.2.0".winapi}".default = true; }
-    ];
-  }) [
-    (features_.lazy_static."${deps."clicolors_control"."0.2.0"."lazy_static"}" deps)
-    (features_.libc."${deps."clicolors_control"."0.2.0"."libc"}" deps)
-    (features_.kernel32_sys."${deps."clicolors_control"."0.2.0"."kernel32_sys"}" deps)
-    (features_.winapi."${deps."clicolors_control"."0.2.0"."winapi"}" deps)
-  ];
-
-
-# end
-# console-0.6.1
-
-  crates.console."0.6.1" = deps: { features?(features_.console."0.6.1" deps {}) }: buildRustCrate {
-    crateName = "console";
-    version = "0.6.1";
-    description = "A terminal and console abstraction for Rust";
-    authors = [ "Armin Ronacher <armin.ronacher@active-4.com>" ];
-    sha256 = "0h46m3nlx7m2pmc1ia2nlbl8d1vp46kqh2c82hx9ckjag68g4zdl";
-    dependencies = mapFeatures features ([
-      (crates."clicolors_control"."${deps."console"."0.6.1"."clicolors_control"}" deps)
-      (crates."lazy_static"."${deps."console"."0.6.1"."lazy_static"}" deps)
-      (crates."libc"."${deps."console"."0.6.1"."libc"}" deps)
-      (crates."parking_lot"."${deps."console"."0.6.1"."parking_lot"}" deps)
-      (crates."regex"."${deps."console"."0.6.1"."regex"}" deps)
-      (crates."unicode_width"."${deps."console"."0.6.1"."unicode_width"}" deps)
-    ])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-      (crates."termios"."${deps."console"."0.6.1"."termios"}" deps)
-    ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."console"."0.6.1"."winapi"}" deps)
-    ]) else []);
-  };
-  features_.console."0.6.1" = deps: f: updateFeatures f (rec {
-    clicolors_control."${deps.console."0.6.1".clicolors_control}".default = true;
-    console."0.6.1".default = (f.console."0.6.1".default or true);
-    lazy_static."${deps.console."0.6.1".lazy_static}".default = true;
-    libc."${deps.console."0.6.1".libc}".default = true;
-    parking_lot."${deps.console."0.6.1".parking_lot}".default = true;
-    regex."${deps.console."0.6.1".regex}".default = true;
-    termios."${deps.console."0.6.1".termios}".default = true;
-    unicode_width."${deps.console."0.6.1".unicode_width}".default = true;
-    winapi = fold recursiveUpdate {} [
-      { "${deps.console."0.6.1".winapi}"."consoleapi" = true; }
-      { "${deps.console."0.6.1".winapi}"."processenv" = true; }
-      { "${deps.console."0.6.1".winapi}"."winbase" = true; }
-      { "${deps.console."0.6.1".winapi}"."wincon" = true; }
-      { "${deps.console."0.6.1".winapi}"."winuser" = true; }
-      { "${deps.console."0.6.1".winapi}".default = true; }
-    ];
-  }) [
-    (features_.clicolors_control."${deps."console"."0.6.1"."clicolors_control"}" deps)
-    (features_.lazy_static."${deps."console"."0.6.1"."lazy_static"}" deps)
-    (features_.libc."${deps."console"."0.6.1"."libc"}" deps)
-    (features_.parking_lot."${deps."console"."0.6.1"."parking_lot"}" deps)
-    (features_.regex."${deps."console"."0.6.1"."regex"}" deps)
-    (features_.unicode_width."${deps."console"."0.6.1"."unicode_width"}" deps)
-    (features_.termios."${deps."console"."0.6.1"."termios"}" deps)
-    (features_.winapi."${deps."console"."0.6.1"."winapi"}" deps)
-  ];
-
-
-# end
-# failure-0.1.1
-
-  crates.failure."0.1.1" = deps: { features?(features_.failure."0.1.1" deps {}) }: buildRustCrate {
-    crateName = "failure";
-    version = "0.1.1";
-    description = "Experimental error handling abstraction.";
-    authors = [ "Without Boats <boats@mozilla.com>" ];
-    sha256 = "0gf9cmkm9kc163sszgjksqp5pcgj689lnf2104nn4h4is18nhigk";
-    dependencies = mapFeatures features ([
-    ]
-      ++ (if features.failure."0.1.1".backtrace or false then [ (crates.backtrace."${deps."failure"."0.1.1".backtrace}" deps) ] else [])
-      ++ (if features.failure."0.1.1".failure_derive or false then [ (crates.failure_derive."${deps."failure"."0.1.1".failure_derive}" deps) ] else []));
-    features = mkFeatures (features."failure"."0.1.1" or {});
-  };
-  features_.failure."0.1.1" = deps: f: updateFeatures f (rec {
-    backtrace."${deps.failure."0.1.1".backtrace}".default = true;
-    failure = fold recursiveUpdate {} [
-      { "0.1.1"."backtrace" =
-        (f.failure."0.1.1"."backtrace" or false) ||
-        (f.failure."0.1.1".std or false) ||
-        (failure."0.1.1"."std" or false); }
-      { "0.1.1"."derive" =
-        (f.failure."0.1.1"."derive" or false) ||
-        (f.failure."0.1.1".default or false) ||
-        (failure."0.1.1"."default" or false); }
-      { "0.1.1"."failure_derive" =
-        (f.failure."0.1.1"."failure_derive" or false) ||
-        (f.failure."0.1.1".derive or false) ||
-        (failure."0.1.1"."derive" or false); }
-      { "0.1.1"."std" =
-        (f.failure."0.1.1"."std" or false) ||
-        (f.failure."0.1.1".default or false) ||
-        (failure."0.1.1"."default" or false); }
-      { "0.1.1".default = (f.failure."0.1.1".default or true); }
-    ];
-    failure_derive."${deps.failure."0.1.1".failure_derive}".default = true;
-  }) [
-    (features_.backtrace."${deps."failure"."0.1.1"."backtrace"}" deps)
-    (features_.failure_derive."${deps."failure"."0.1.1"."failure_derive"}" deps)
-  ];
-
-
-# end
-# failure_derive-0.1.1
-
-  crates.failure_derive."0.1.1" = deps: { features?(features_.failure_derive."0.1.1" deps {}) }: buildRustCrate {
-    crateName = "failure_derive";
-    version = "0.1.1";
-    description = "derives for the failure crate";
-    authors = [ "Without Boats <woboats@gmail.com>" ];
-    sha256 = "1w895q4pbyx3rwnhgjwfcayk9ghbi166wc1c3553qh8zkbz52k8i";
-    procMacro = true;
-    dependencies = mapFeatures features ([
-      (crates."quote"."${deps."failure_derive"."0.1.1"."quote"}" deps)
-      (crates."syn"."${deps."failure_derive"."0.1.1"."syn"}" deps)
-      (crates."synstructure"."${deps."failure_derive"."0.1.1"."synstructure"}" deps)
-    ]);
-    features = mkFeatures (features."failure_derive"."0.1.1" or {});
-  };
-  features_.failure_derive."0.1.1" = deps: f: updateFeatures f (rec {
-    failure_derive = fold recursiveUpdate {} [
-      { "0.1.1"."std" =
-        (f.failure_derive."0.1.1"."std" or false) ||
-        (f.failure_derive."0.1.1".default or false) ||
-        (failure_derive."0.1.1"."default" or false); }
-      { "0.1.1".default = (f.failure_derive."0.1.1".default or true); }
-    ];
-    quote."${deps.failure_derive."0.1.1".quote}".default = true;
-    syn."${deps.failure_derive."0.1.1".syn}".default = true;
-    synstructure."${deps.failure_derive."0.1.1".synstructure}".default = true;
-  }) [
-    (features_.quote."${deps."failure_derive"."0.1.1"."quote"}" deps)
-    (features_.syn."${deps."failure_derive"."0.1.1"."syn"}" deps)
-    (features_.synstructure."${deps."failure_derive"."0.1.1"."synstructure"}" deps)
-  ];
-
-
-# end
-# fuchsia-zircon-0.3.3
-
-  crates.fuchsia_zircon."0.3.3" = deps: { features?(features_.fuchsia_zircon."0.3.3" deps {}) }: buildRustCrate {
-    crateName = "fuchsia-zircon";
-    version = "0.3.3";
-    description = "Rust bindings for the Zircon kernel";
-    authors = [ "Raph Levien <raph@google.com>" ];
-    sha256 = "0jrf4shb1699r4la8z358vri8318w4mdi6qzfqy30p2ymjlca4gk";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."fuchsia_zircon"."0.3.3"."bitflags"}" deps)
-      (crates."fuchsia_zircon_sys"."${deps."fuchsia_zircon"."0.3.3"."fuchsia_zircon_sys"}" deps)
-    ]);
-  };
-  features_.fuchsia_zircon."0.3.3" = deps: f: updateFeatures f (rec {
-    bitflags."${deps.fuchsia_zircon."0.3.3".bitflags}".default = true;
-    fuchsia_zircon."0.3.3".default = (f.fuchsia_zircon."0.3.3".default or true);
-    fuchsia_zircon_sys."${deps.fuchsia_zircon."0.3.3".fuchsia_zircon_sys}".default = true;
-  }) [
-    (features_.bitflags."${deps."fuchsia_zircon"."0.3.3"."bitflags"}" deps)
-    (features_.fuchsia_zircon_sys."${deps."fuchsia_zircon"."0.3.3"."fuchsia_zircon_sys"}" deps)
-  ];
-
-
-# end
-# fuchsia-zircon-sys-0.3.3
-
-  crates.fuchsia_zircon_sys."0.3.3" = deps: { features?(features_.fuchsia_zircon_sys."0.3.3" deps {}) }: buildRustCrate {
-    crateName = "fuchsia-zircon-sys";
-    version = "0.3.3";
-    description = "Low-level Rust bindings for the Zircon kernel";
-    authors = [ "Raph Levien <raph@google.com>" ];
-    sha256 = "08jp1zxrm9jbrr6l26bjal4dbm8bxfy57ickdgibsqxr1n9j3hf5";
-  };
-  features_.fuchsia_zircon_sys."0.3.3" = deps: f: updateFeatures f (rec {
-    fuchsia_zircon_sys."0.3.3".default = (f.fuchsia_zircon_sys."0.3.3".default or true);
-  }) [];
-
-
-# end
-# gcc-0.3.54
-
-  crates.gcc."0.3.54" = deps: { features?(features_.gcc."0.3.54" deps {}) }: buildRustCrate {
-    crateName = "gcc";
-    version = "0.3.54";
-    description = "A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "07a5i47r8achc6gxsba3ga17h9gnh4b9a2cak8vjg4hx62aajkr4";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."gcc"."0.3.54" or {});
-  };
-  features_.gcc."0.3.54" = deps: f: updateFeatures f (rec {
-    gcc = fold recursiveUpdate {} [
-      { "0.3.54"."rayon" =
-        (f.gcc."0.3.54"."rayon" or false) ||
-        (f.gcc."0.3.54".parallel or false) ||
-        (gcc."0.3.54"."parallel" or false); }
-      { "0.3.54".default = (f.gcc."0.3.54".default or true); }
-    ];
-  }) [];
-
-
-# end
-# iovec-0.1.2
-
-  crates.iovec."0.1.2" = deps: { features?(features_.iovec."0.1.2" deps {}) }: buildRustCrate {
-    crateName = "iovec";
-    version = "0.1.2";
-    description = "Portable buffer type for scatter/gather I/O operations\n";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "0vjymmb7wj4v4kza5jjn48fcdb85j3k37y7msjl3ifz0p9yiyp2r";
-    dependencies = (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-      (crates."libc"."${deps."iovec"."0.1.2"."libc"}" deps)
-    ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."iovec"."0.1.2"."winapi"}" deps)
-    ]) else []);
-  };
-  features_.iovec."0.1.2" = deps: f: updateFeatures f (rec {
-    iovec."0.1.2".default = (f.iovec."0.1.2".default or true);
-    libc."${deps.iovec."0.1.2".libc}".default = true;
-    winapi."${deps.iovec."0.1.2".winapi}".default = true;
-  }) [
-    (features_.libc."${deps."iovec"."0.1.2"."libc"}" deps)
-    (features_.winapi."${deps."iovec"."0.1.2"."winapi"}" deps)
-  ];
-
-
-# end
-# kernel32-sys-0.2.2
-
-  crates.kernel32_sys."0.2.2" = deps: { features?(features_.kernel32_sys."0.2.2" deps {}) }: buildRustCrate {
-    crateName = "kernel32-sys";
-    version = "0.2.2";
-    description = "Contains function definitions for the Windows API library kernel32. See winapi for types and constants.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
-    libName = "kernel32";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."winapi"."${deps."kernel32_sys"."0.2.2"."winapi"}" deps)
-    ]);
-
-    buildDependencies = mapFeatures features ([
-      (crates."winapi_build"."${deps."kernel32_sys"."0.2.2"."winapi_build"}" deps)
-    ]);
-  };
-  features_.kernel32_sys."0.2.2" = deps: f: updateFeatures f (rec {
-    kernel32_sys."0.2.2".default = (f.kernel32_sys."0.2.2".default or true);
-    winapi."${deps.kernel32_sys."0.2.2".winapi}".default = true;
-    winapi_build."${deps.kernel32_sys."0.2.2".winapi_build}".default = true;
-  }) [
-    (features_.winapi."${deps."kernel32_sys"."0.2.2"."winapi"}" deps)
-    (features_.winapi_build."${deps."kernel32_sys"."0.2.2"."winapi_build"}" deps)
-  ];
-
-
-# end
-# lazy_static-0.2.11
-
-  crates.lazy_static."0.2.11" = deps: { features?(features_.lazy_static."0.2.11" deps {}) }: buildRustCrate {
-    crateName = "lazy_static";
-    version = "0.2.11";
-    description = "A macro for declaring lazily evaluated statics in Rust.";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "1x6871cvpy5b96yv4c7jvpq316fp5d4609s9py7qk6cd6x9k34vm";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."lazy_static"."0.2.11" or {});
-  };
-  features_.lazy_static."0.2.11" = deps: f: updateFeatures f (rec {
-    lazy_static = fold recursiveUpdate {} [
-      { "0.2.11"."compiletest_rs" =
-        (f.lazy_static."0.2.11"."compiletest_rs" or false) ||
-        (f.lazy_static."0.2.11".compiletest or false) ||
-        (lazy_static."0.2.11"."compiletest" or false); }
-      { "0.2.11"."nightly" =
-        (f.lazy_static."0.2.11"."nightly" or false) ||
-        (f.lazy_static."0.2.11".spin_no_std or false) ||
-        (lazy_static."0.2.11"."spin_no_std" or false); }
-      { "0.2.11"."spin" =
-        (f.lazy_static."0.2.11"."spin" or false) ||
-        (f.lazy_static."0.2.11".spin_no_std or false) ||
-        (lazy_static."0.2.11"."spin_no_std" or false); }
-      { "0.2.11".default = (f.lazy_static."0.2.11".default or true); }
-    ];
-  }) [];
-
-
-# end
-# lazy_static-1.0.0
-
-  crates.lazy_static."1.0.0" = deps: { features?(features_.lazy_static."1.0.0" deps {}) }: buildRustCrate {
-    crateName = "lazy_static";
-    version = "1.0.0";
-    description = "A macro for declaring lazily evaluated statics in Rust.";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "0wfvqyr2nvx2mbsrscg5y7gfa9skhb8p72ayanl8vl49pw24v4fh";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."lazy_static"."1.0.0" or {});
-  };
-  features_.lazy_static."1.0.0" = deps: f: updateFeatures f (rec {
-    lazy_static = fold recursiveUpdate {} [
-      { "1.0.0"."compiletest_rs" =
-        (f.lazy_static."1.0.0"."compiletest_rs" or false) ||
-        (f.lazy_static."1.0.0".compiletest or false) ||
-        (lazy_static."1.0.0"."compiletest" or false); }
-      { "1.0.0"."nightly" =
-        (f.lazy_static."1.0.0"."nightly" or false) ||
-        (f.lazy_static."1.0.0".spin_no_std or false) ||
-        (lazy_static."1.0.0"."spin_no_std" or false); }
-      { "1.0.0"."spin" =
-        (f.lazy_static."1.0.0"."spin" or false) ||
-        (f.lazy_static."1.0.0".spin_no_std or false) ||
-        (lazy_static."1.0.0"."spin_no_std" or false); }
-      { "1.0.0".default = (f.lazy_static."1.0.0".default or true); }
-    ];
-  }) [];
-
-
-# end
-# libc-0.2.40
-
-  crates.libc."0.2.40" = deps: { features?(features_.libc."0.2.40" deps {}) }: buildRustCrate {
-    crateName = "libc";
-    version = "0.2.40";
-    description = "A library for types and bindings to native C functions often found in libc or\nother common platform libraries.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1xfc39237ldzgr8x8wcflgdr8zssi3wif7g2zxc02d94gzkjsw83";
-    features = mkFeatures (features."libc"."0.2.40" or {});
-  };
-  features_.libc."0.2.40" = deps: f: updateFeatures f (rec {
-    libc = fold recursiveUpdate {} [
-      { "0.2.40"."use_std" =
-        (f.libc."0.2.40"."use_std" or false) ||
-        (f.libc."0.2.40".default or false) ||
-        (libc."0.2.40"."default" or false); }
-      { "0.2.40".default = (f.libc."0.2.40".default or true); }
-    ];
-  }) [];
-
-
-# end
-# memchr-2.0.1
-
-  crates.memchr."2.0.1" = deps: { features?(features_.memchr."2.0.1" deps {}) }: buildRustCrate {
-    crateName = "memchr";
-    version = "2.0.1";
-    description = "Safe interface to memchr.";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
-    sha256 = "0ls2y47rjwapjdax6bp974gdp06ggm1v8d1h69wyydmh1nhgm5gr";
-    dependencies = mapFeatures features ([
-    ]
-      ++ (if features.memchr."2.0.1".libc or false then [ (crates.libc."${deps."memchr"."2.0.1".libc}" deps) ] else []));
-    features = mkFeatures (features."memchr"."2.0.1" or {});
-  };
-  features_.memchr."2.0.1" = deps: f: updateFeatures f (rec {
-    libc = fold recursiveUpdate {} [
-      { "${deps.memchr."2.0.1".libc}"."use_std" =
-        (f.libc."${deps.memchr."2.0.1".libc}"."use_std" or false) ||
-        (memchr."2.0.1"."use_std" or false) ||
-        (f."memchr"."2.0.1"."use_std" or false); }
-      { "${deps.memchr."2.0.1".libc}".default = (f.libc."${deps.memchr."2.0.1".libc}".default or false); }
-    ];
-    memchr = fold recursiveUpdate {} [
-      { "2.0.1"."libc" =
-        (f.memchr."2.0.1"."libc" or false) ||
-        (f.memchr."2.0.1".default or false) ||
-        (memchr."2.0.1"."default" or false) ||
-        (f.memchr."2.0.1".use_std or false) ||
-        (memchr."2.0.1"."use_std" or false); }
-      { "2.0.1"."use_std" =
-        (f.memchr."2.0.1"."use_std" or false) ||
-        (f.memchr."2.0.1".default or false) ||
-        (memchr."2.0.1"."default" or false); }
-      { "2.0.1".default = (f.memchr."2.0.1".default or true); }
-    ];
-  }) [
-    (features_.libc."${deps."memchr"."2.0.1"."libc"}" deps)
-  ];
-
-
-# end
-# nix-0.10.0
-
-  crates.nix."0.10.0" = deps: { features?(features_.nix."0.10.0" deps {}) }: buildRustCrate {
-    crateName = "nix";
-    version = "0.10.0";
-    description = "Rust friendly bindings to *nix APIs";
-    authors = [ "The nix-rust Project Developers" ];
-    sha256 = "0ghrbjlc1l21pmldwaz5b5m72xs0m05y1zq5ljlnymn61vbzxsny";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."nix"."0.10.0"."bitflags"}" deps)
-      (crates."bytes"."${deps."nix"."0.10.0"."bytes"}" deps)
-      (crates."cfg_if"."${deps."nix"."0.10.0"."cfg_if"}" deps)
-      (crates."libc"."${deps."nix"."0.10.0"."libc"}" deps)
-      (crates."void"."${deps."nix"."0.10.0"."void"}" deps)
-    ])
-      ++ (if kernel == "dragonfly" then mapFeatures features ([
-]) else []);
-  };
-  features_.nix."0.10.0" = deps: f: updateFeatures f (rec {
-    bitflags."${deps.nix."0.10.0".bitflags}".default = true;
-    bytes."${deps.nix."0.10.0".bytes}".default = (f.bytes."${deps.nix."0.10.0".bytes}".default or false);
-    cfg_if."${deps.nix."0.10.0".cfg_if}".default = true;
-    libc."${deps.nix."0.10.0".libc}".default = true;
-    nix."0.10.0".default = (f.nix."0.10.0".default or true);
-    void."${deps.nix."0.10.0".void}".default = true;
-  }) [
-    (features_.bitflags."${deps."nix"."0.10.0"."bitflags"}" deps)
-    (features_.bytes."${deps."nix"."0.10.0"."bytes"}" deps)
-    (features_.cfg_if."${deps."nix"."0.10.0"."cfg_if"}" deps)
-    (features_.libc."${deps."nix"."0.10.0"."libc"}" deps)
-    (features_.void."${deps."nix"."0.10.0"."void"}" deps)
-  ];
-
-
-# end
-# owning_ref-0.3.3
-
-  crates.owning_ref."0.3.3" = deps: { features?(features_.owning_ref."0.3.3" deps {}) }: buildRustCrate {
-    crateName = "owning_ref";
-    version = "0.3.3";
-    description = "A library for creating references that carry their owner with them.";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "13ivn0ydc0hf957ix0f5si9nnplzzykbr70hni1qz9m19i9kvmrh";
-    dependencies = mapFeatures features ([
-      (crates."stable_deref_trait"."${deps."owning_ref"."0.3.3"."stable_deref_trait"}" deps)
-    ]);
-  };
-  features_.owning_ref."0.3.3" = deps: f: updateFeatures f (rec {
-    owning_ref."0.3.3".default = (f.owning_ref."0.3.3".default or true);
-    stable_deref_trait."${deps.owning_ref."0.3.3".stable_deref_trait}".default = true;
-  }) [
-    (features_.stable_deref_trait."${deps."owning_ref"."0.3.3"."stable_deref_trait"}" deps)
-  ];
-
-
-# end
-# parking_lot-0.5.5
-
-  crates.parking_lot."0.5.5" = deps: { features?(features_.parking_lot."0.5.5" deps {}) }: buildRustCrate {
-    crateName = "parking_lot";
-    version = "0.5.5";
-    description = "More compact and efficient implementations of the standard synchronization primitives.";
-    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
-    sha256 = "0balxl593apy0l70z6dzk6c0r9707hgw2c9yav5asjc87dj6fx7l";
-    dependencies = mapFeatures features ([
-      (crates."parking_lot_core"."${deps."parking_lot"."0.5.5"."parking_lot_core"}" deps)
-    ]
-      ++ (if features.parking_lot."0.5.5".owning_ref or false then [ (crates.owning_ref."${deps."parking_lot"."0.5.5".owning_ref}" deps) ] else []));
-    features = mkFeatures (features."parking_lot"."0.5.5" or {});
-  };
-  features_.parking_lot."0.5.5" = deps: f: updateFeatures f (rec {
-    owning_ref."${deps.parking_lot."0.5.5".owning_ref}".default = true;
-    parking_lot = fold recursiveUpdate {} [
-      { "0.5.5"."owning_ref" =
-        (f.parking_lot."0.5.5"."owning_ref" or false) ||
-        (f.parking_lot."0.5.5".default or false) ||
-        (parking_lot."0.5.5"."default" or false); }
-      { "0.5.5".default = (f.parking_lot."0.5.5".default or true); }
-    ];
-    parking_lot_core = fold recursiveUpdate {} [
-      { "${deps.parking_lot."0.5.5".parking_lot_core}"."deadlock_detection" =
-        (f.parking_lot_core."${deps.parking_lot."0.5.5".parking_lot_core}"."deadlock_detection" or false) ||
-        (parking_lot."0.5.5"."deadlock_detection" or false) ||
-        (f."parking_lot"."0.5.5"."deadlock_detection" or false); }
-      { "${deps.parking_lot."0.5.5".parking_lot_core}"."nightly" =
-        (f.parking_lot_core."${deps.parking_lot."0.5.5".parking_lot_core}"."nightly" or false) ||
-        (parking_lot."0.5.5"."nightly" or false) ||
-        (f."parking_lot"."0.5.5"."nightly" or false); }
-      { "${deps.parking_lot."0.5.5".parking_lot_core}".default = true; }
-    ];
-  }) [
-    (features_.owning_ref."${deps."parking_lot"."0.5.5"."owning_ref"}" deps)
-    (features_.parking_lot_core."${deps."parking_lot"."0.5.5"."parking_lot_core"}" deps)
-  ];
-
-
-# end
-# parking_lot_core-0.2.14
-
-  crates.parking_lot_core."0.2.14" = deps: { features?(features_.parking_lot_core."0.2.14" deps {}) }: buildRustCrate {
-    crateName = "parking_lot_core";
-    version = "0.2.14";
-    description = "An advanced API for creating custom synchronization primitives.";
-    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
-    sha256 = "0giypb8ckkpi34p14nfk4b19c7przj4jxs95gs7x2v5ncmi0y286";
-    dependencies = mapFeatures features ([
-      (crates."rand"."${deps."parking_lot_core"."0.2.14"."rand"}" deps)
-      (crates."smallvec"."${deps."parking_lot_core"."0.2.14"."smallvec"}" deps)
-    ])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-      (crates."libc"."${deps."parking_lot_core"."0.2.14"."libc"}" deps)
-    ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."parking_lot_core"."0.2.14"."winapi"}" deps)
-    ]) else []);
-    features = mkFeatures (features."parking_lot_core"."0.2.14" or {});
-  };
-  features_.parking_lot_core."0.2.14" = deps: f: updateFeatures f (rec {
-    libc."${deps.parking_lot_core."0.2.14".libc}".default = true;
-    parking_lot_core = fold recursiveUpdate {} [
-      { "0.2.14"."backtrace" =
-        (f.parking_lot_core."0.2.14"."backtrace" or false) ||
-        (f.parking_lot_core."0.2.14".deadlock_detection or false) ||
-        (parking_lot_core."0.2.14"."deadlock_detection" or false); }
-      { "0.2.14"."petgraph" =
-        (f.parking_lot_core."0.2.14"."petgraph" or false) ||
-        (f.parking_lot_core."0.2.14".deadlock_detection or false) ||
-        (parking_lot_core."0.2.14"."deadlock_detection" or false); }
-      { "0.2.14"."thread-id" =
-        (f.parking_lot_core."0.2.14"."thread-id" or false) ||
-        (f.parking_lot_core."0.2.14".deadlock_detection or false) ||
-        (parking_lot_core."0.2.14"."deadlock_detection" or false); }
-      { "0.2.14".default = (f.parking_lot_core."0.2.14".default or true); }
-    ];
-    rand."${deps.parking_lot_core."0.2.14".rand}".default = true;
-    smallvec."${deps.parking_lot_core."0.2.14".smallvec}".default = true;
-    winapi = fold recursiveUpdate {} [
-      { "${deps.parking_lot_core."0.2.14".winapi}"."errhandlingapi" = true; }
-      { "${deps.parking_lot_core."0.2.14".winapi}"."handleapi" = true; }
-      { "${deps.parking_lot_core."0.2.14".winapi}"."minwindef" = true; }
-      { "${deps.parking_lot_core."0.2.14".winapi}"."ntstatus" = true; }
-      { "${deps.parking_lot_core."0.2.14".winapi}"."winbase" = true; }
-      { "${deps.parking_lot_core."0.2.14".winapi}"."winerror" = true; }
-      { "${deps.parking_lot_core."0.2.14".winapi}"."winnt" = true; }
-      { "${deps.parking_lot_core."0.2.14".winapi}".default = true; }
-    ];
-  }) [
-    (features_.rand."${deps."parking_lot_core"."0.2.14"."rand"}" deps)
-    (features_.smallvec."${deps."parking_lot_core"."0.2.14"."smallvec"}" deps)
-    (features_.libc."${deps."parking_lot_core"."0.2.14"."libc"}" deps)
-    (features_.winapi."${deps."parking_lot_core"."0.2.14"."winapi"}" deps)
-  ];
-
-
-# end
-# quote-0.3.15
-
-  crates.quote."0.3.15" = deps: { features?(features_.quote."0.3.15" deps {}) }: buildRustCrate {
-    crateName = "quote";
-    version = "0.3.15";
-    description = "Quasi-quoting macro quote!(...)";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "09il61jv4kd1360spaj46qwyl21fv1qz18fsv2jra8wdnlgl5jsg";
-  };
-  features_.quote."0.3.15" = deps: f: updateFeatures f (rec {
-    quote."0.3.15".default = (f.quote."0.3.15".default or true);
-  }) [];
-
-
-# end
-# rand-0.4.2
-
-  crates.rand."0.4.2" = deps: { features?(features_.rand."0.4.2" deps {}) }: buildRustCrate {
-    crateName = "rand";
-    version = "0.4.2";
-    description = "Random number generators and other randomness functionality.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0h8pkg23wb67i8904sm76iyr1jlmhklb85vbpz9c9191a24xzkfm";
-    dependencies = (if kernel == "fuchsia" then mapFeatures features ([
-      (crates."fuchsia_zircon"."${deps."rand"."0.4.2"."fuchsia_zircon"}" deps)
-    ]) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-    ]
-      ++ (if features.rand."0.4.2".libc or false then [ (crates.libc."${deps."rand"."0.4.2".libc}" deps) ] else [])) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."rand"."0.4.2"."winapi"}" deps)
-    ]) else []);
-    features = mkFeatures (features."rand"."0.4.2" or {});
-  };
-  features_.rand."0.4.2" = deps: f: updateFeatures f (rec {
-    fuchsia_zircon."${deps.rand."0.4.2".fuchsia_zircon}".default = true;
-    libc."${deps.rand."0.4.2".libc}".default = true;
-    rand = fold recursiveUpdate {} [
-      { "0.4.2"."i128_support" =
-        (f.rand."0.4.2"."i128_support" or false) ||
-        (f.rand."0.4.2".nightly or false) ||
-        (rand."0.4.2"."nightly" or false); }
-      { "0.4.2"."libc" =
-        (f.rand."0.4.2"."libc" or false) ||
-        (f.rand."0.4.2".std or false) ||
-        (rand."0.4.2"."std" or false); }
-      { "0.4.2"."std" =
-        (f.rand."0.4.2"."std" or false) ||
-        (f.rand."0.4.2".default or false) ||
-        (rand."0.4.2"."default" or false); }
-      { "0.4.2".default = (f.rand."0.4.2".default or true); }
-    ];
-    winapi = fold recursiveUpdate {} [
-      { "${deps.rand."0.4.2".winapi}"."minwindef" = true; }
-      { "${deps.rand."0.4.2".winapi}"."ntsecapi" = true; }
-      { "${deps.rand."0.4.2".winapi}"."profileapi" = true; }
-      { "${deps.rand."0.4.2".winapi}"."winnt" = true; }
-      { "${deps.rand."0.4.2".winapi}".default = true; }
-    ];
-  }) [
-    (features_.fuchsia_zircon."${deps."rand"."0.4.2"."fuchsia_zircon"}" deps)
-    (features_.libc."${deps."rand"."0.4.2"."libc"}" deps)
-    (features_.winapi."${deps."rand"."0.4.2"."winapi"}" deps)
-  ];
-
-
-# end
-# redox_syscall-0.1.37
-
-  crates.redox_syscall."0.1.37" = deps: { features?(features_.redox_syscall."0.1.37" deps {}) }: buildRustCrate {
-    crateName = "redox_syscall";
-    version = "0.1.37";
-    description = "A Rust library to access raw Redox system calls";
-    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
-    sha256 = "0qa0jl9cr3qp80an8vshp2mcn8rzvwiavs1398hq1vsjw7pc3h2v";
-    libName = "syscall";
-  };
-  features_.redox_syscall."0.1.37" = deps: f: updateFeatures f (rec {
-    redox_syscall."0.1.37".default = (f.redox_syscall."0.1.37".default or true);
-  }) [];
-
-
-# end
-# redox_termios-0.1.1
-
-  crates.redox_termios."0.1.1" = deps: { features?(features_.redox_termios."0.1.1" deps {}) }: buildRustCrate {
-    crateName = "redox_termios";
-    version = "0.1.1";
-    description = "A Rust library to access Redox termios functions";
-    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
-    sha256 = "04s6yyzjca552hdaqlvqhp3vw0zqbc304md5czyd3axh56iry8wh";
-    libPath = "src/lib.rs";
-    dependencies = mapFeatures features ([
-      (crates."redox_syscall"."${deps."redox_termios"."0.1.1"."redox_syscall"}" deps)
-    ]);
-  };
-  features_.redox_termios."0.1.1" = deps: f: updateFeatures f (rec {
-    redox_syscall."${deps.redox_termios."0.1.1".redox_syscall}".default = true;
-    redox_termios."0.1.1".default = (f.redox_termios."0.1.1".default or true);
-  }) [
-    (features_.redox_syscall."${deps."redox_termios"."0.1.1"."redox_syscall"}" deps)
-  ];
-
-
-# end
-# regex-0.2.11
-
-  crates.regex."0.2.11" = deps: { features?(features_.regex."0.2.11" deps {}) }: buildRustCrate {
-    crateName = "regex";
-    version = "0.2.11";
-    description = "An implementation of regular expressions for Rust. This implementation uses\nfinite automata and guarantees linear time matching on all inputs.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0r50cymxdqp0fv1dxd22mjr6y32q450nwacd279p9s7lh0cafijj";
-    dependencies = mapFeatures features ([
-      (crates."aho_corasick"."${deps."regex"."0.2.11"."aho_corasick"}" deps)
-      (crates."memchr"."${deps."regex"."0.2.11"."memchr"}" deps)
-      (crates."regex_syntax"."${deps."regex"."0.2.11"."regex_syntax"}" deps)
-      (crates."thread_local"."${deps."regex"."0.2.11"."thread_local"}" deps)
-      (crates."utf8_ranges"."${deps."regex"."0.2.11"."utf8_ranges"}" deps)
-    ]);
-    features = mkFeatures (features."regex"."0.2.11" or {});
-  };
-  features_.regex."0.2.11" = deps: f: updateFeatures f (rec {
-    aho_corasick."${deps.regex."0.2.11".aho_corasick}".default = true;
-    memchr."${deps.regex."0.2.11".memchr}".default = true;
-    regex = fold recursiveUpdate {} [
-      { "0.2.11"."pattern" =
-        (f.regex."0.2.11"."pattern" or false) ||
-        (f.regex."0.2.11".unstable or false) ||
-        (regex."0.2.11"."unstable" or false); }
-      { "0.2.11".default = (f.regex."0.2.11".default or true); }
-    ];
-    regex_syntax."${deps.regex."0.2.11".regex_syntax}".default = true;
-    thread_local."${deps.regex."0.2.11".thread_local}".default = true;
-    utf8_ranges."${deps.regex."0.2.11".utf8_ranges}".default = true;
-  }) [
-    (features_.aho_corasick."${deps."regex"."0.2.11"."aho_corasick"}" deps)
-    (features_.memchr."${deps."regex"."0.2.11"."memchr"}" deps)
-    (features_.regex_syntax."${deps."regex"."0.2.11"."regex_syntax"}" deps)
-    (features_.thread_local."${deps."regex"."0.2.11"."thread_local"}" deps)
-    (features_.utf8_ranges."${deps."regex"."0.2.11"."utf8_ranges"}" deps)
-  ];
-
-
-# end
-# regex-1.0.0
-
-  crates.regex."1.0.0" = deps: { features?(features_.regex."1.0.0" deps {}) }: buildRustCrate {
-    crateName = "regex";
-    version = "1.0.0";
-    description = "An implementation of regular expressions for Rust. This implementation uses\nfinite automata and guarantees linear time matching on all inputs.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1wynl7jmf6l2fnsayw1bzfh7km4wwqnqfpi8anj7wbhdk17i6j6b";
-    dependencies = mapFeatures features ([
-      (crates."aho_corasick"."${deps."regex"."1.0.0"."aho_corasick"}" deps)
-      (crates."memchr"."${deps."regex"."1.0.0"."memchr"}" deps)
-      (crates."regex_syntax"."${deps."regex"."1.0.0"."regex_syntax"}" deps)
-      (crates."thread_local"."${deps."regex"."1.0.0"."thread_local"}" deps)
-      (crates."utf8_ranges"."${deps."regex"."1.0.0"."utf8_ranges"}" deps)
-    ]);
-    features = mkFeatures (features."regex"."1.0.0" or {});
-  };
-  features_.regex."1.0.0" = deps: f: updateFeatures f (rec {
-    aho_corasick."${deps.regex."1.0.0".aho_corasick}".default = true;
-    memchr."${deps.regex."1.0.0".memchr}".default = true;
-    regex = fold recursiveUpdate {} [
-      { "1.0.0"."pattern" =
-        (f.regex."1.0.0"."pattern" or false) ||
-        (f.regex."1.0.0".unstable or false) ||
-        (regex."1.0.0"."unstable" or false); }
-      { "1.0.0"."use_std" =
-        (f.regex."1.0.0"."use_std" or false) ||
-        (f.regex."1.0.0".default or false) ||
-        (regex."1.0.0"."default" or false); }
-      { "1.0.0".default = (f.regex."1.0.0".default or true); }
-    ];
-    regex_syntax."${deps.regex."1.0.0".regex_syntax}".default = true;
-    thread_local."${deps.regex."1.0.0".thread_local}".default = true;
-    utf8_ranges."${deps.regex."1.0.0".utf8_ranges}".default = true;
-  }) [
-    (features_.aho_corasick."${deps."regex"."1.0.0"."aho_corasick"}" deps)
-    (features_.memchr."${deps."regex"."1.0.0"."memchr"}" deps)
-    (features_.regex_syntax."${deps."regex"."1.0.0"."regex_syntax"}" deps)
-    (features_.thread_local."${deps."regex"."1.0.0"."thread_local"}" deps)
-    (features_.utf8_ranges."${deps."regex"."1.0.0"."utf8_ranges"}" deps)
-  ];
-
-
-# end
-# regex-syntax-0.5.6
-
-  crates.regex_syntax."0.5.6" = deps: { features?(features_.regex_syntax."0.5.6" deps {}) }: buildRustCrate {
-    crateName = "regex-syntax";
-    version = "0.5.6";
-    description = "A regular expression parser.";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "10vf3r34bgjnbrnqd5aszn35bjvm8insw498l1vjy8zx5yms3427";
-    dependencies = mapFeatures features ([
-      (crates."ucd_util"."${deps."regex_syntax"."0.5.6"."ucd_util"}" deps)
-    ]);
-  };
-  features_.regex_syntax."0.5.6" = deps: f: updateFeatures f (rec {
-    regex_syntax."0.5.6".default = (f.regex_syntax."0.5.6".default or true);
-    ucd_util."${deps.regex_syntax."0.5.6".ucd_util}".default = true;
-  }) [
-    (features_.ucd_util."${deps."regex_syntax"."0.5.6"."ucd_util"}" deps)
-  ];
-
-
-# end
-# regex-syntax-0.6.0
-
-  crates.regex_syntax."0.6.0" = deps: { features?(features_.regex_syntax."0.6.0" deps {}) }: buildRustCrate {
-    crateName = "regex-syntax";
-    version = "0.6.0";
-    description = "A regular expression parser.";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1zlaq3y1zbiqilxbh0471bizcs4p14b58nqr815w3ssyam169cy6";
-    dependencies = mapFeatures features ([
-      (crates."ucd_util"."${deps."regex_syntax"."0.6.0"."ucd_util"}" deps)
-    ]);
-  };
-  features_.regex_syntax."0.6.0" = deps: f: updateFeatures f (rec {
-    regex_syntax."0.6.0".default = (f.regex_syntax."0.6.0".default or true);
-    ucd_util."${deps.regex_syntax."0.6.0".ucd_util}".default = true;
-  }) [
-    (features_.ucd_util."${deps."regex_syntax"."0.6.0"."ucd_util"}" deps)
-  ];
-
-
-# end
-# rustc-demangle-0.1.8
-
-  crates.rustc_demangle."0.1.8" = deps: { features?(features_.rustc_demangle."0.1.8" deps {}) }: buildRustCrate {
-    crateName = "rustc-demangle";
-    version = "0.1.8";
-    description = "Rust compiler symbol demangling.\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0xn5l86qfwngmdsjbglj30wh37zplvch96jl9raysl3k06gkkv3c";
-  };
-  features_.rustc_demangle."0.1.8" = deps: f: updateFeatures f (rec {
-    rustc_demangle."0.1.8".default = (f.rustc_demangle."0.1.8".default or true);
-  }) [];
-
-
-# end
-# smallvec-0.6.1
-
-  crates.smallvec."0.6.1" = deps: { features?(features_.smallvec."0.6.1" deps {}) }: buildRustCrate {
-    crateName = "smallvec";
-    version = "0.6.1";
-    description = "'Small vector' optimization: store up to a small number of items on the stack";
-    authors = [ "Simon Sapin <simon.sapin@exyr.org>" ];
-    sha256 = "16m07xh67xcdpwjkbzbv9d7visxmz4fb4a8jfcrsrf333w7vkl1g";
-    libPath = "lib.rs";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."smallvec"."0.6.1" or {});
-  };
-  features_.smallvec."0.6.1" = deps: f: updateFeatures f (rec {
-    smallvec = fold recursiveUpdate {} [
-      { "0.6.1"."std" =
-        (f.smallvec."0.6.1"."std" or false) ||
-        (f.smallvec."0.6.1".default or false) ||
-        (smallvec."0.6.1"."default" or false); }
-      { "0.6.1".default = (f.smallvec."0.6.1".default or true); }
-    ];
-  }) [];
-
-
-# end
-# socket2-0.3.5
-
-  crates.socket2."0.3.5" = deps: { features?(features_.socket2."0.3.5" deps {}) }: buildRustCrate {
-    crateName = "socket2";
-    version = "0.3.5";
-    description = "Utilities for handling networking sockets with a maximal amount of configuration\npossible intended.\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0bi6z6qvra16rwm3lk7xz4aakvcmmak6fpdmra1v7ccp40bss0kf";
-    dependencies = (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-      (crates."cfg_if"."${deps."socket2"."0.3.5"."cfg_if"}" deps)
-      (crates."libc"."${deps."socket2"."0.3.5"."libc"}" deps)
-    ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."socket2"."0.3.5"."winapi"}" deps)
-    ]) else []);
-    features = mkFeatures (features."socket2"."0.3.5" or {});
-  };
-  features_.socket2."0.3.5" = deps: f: updateFeatures f (rec {
-    cfg_if."${deps.socket2."0.3.5".cfg_if}".default = true;
-    libc."${deps.socket2."0.3.5".libc}".default = true;
-    socket2."0.3.5".default = (f.socket2."0.3.5".default or true);
-    winapi = fold recursiveUpdate {} [
-      { "${deps.socket2."0.3.5".winapi}"."handleapi" = true; }
-      { "${deps.socket2."0.3.5".winapi}"."minwindef" = true; }
-      { "${deps.socket2."0.3.5".winapi}"."ws2def" = true; }
-      { "${deps.socket2."0.3.5".winapi}"."ws2ipdef" = true; }
-      { "${deps.socket2."0.3.5".winapi}"."ws2tcpip" = true; }
-      { "${deps.socket2."0.3.5".winapi}".default = true; }
-    ];
-  }) [
-    (features_.cfg_if."${deps."socket2"."0.3.5"."cfg_if"}" deps)
-    (features_.libc."${deps."socket2"."0.3.5"."libc"}" deps)
-    (features_.winapi."${deps."socket2"."0.3.5"."winapi"}" deps)
-  ];
-
-
-# end
-# stable_deref_trait-1.0.0
-
-  crates.stable_deref_trait."1.0.0" = deps: { features?(features_.stable_deref_trait."1.0.0" deps {}) }: buildRustCrate {
-    crateName = "stable_deref_trait";
-    version = "1.0.0";
-    description = "An unsafe marker trait for types like Box and Rc that dereference to a stable address even when moved, and hence can be used with libraries such as owning_ref and rental.\n";
-    authors = [ "Robert Grosse <n210241048576@gmail.com>" ];
-    sha256 = "0ya5fms9qdwkd52d3a111w4vcz18j4rbfx4p88z44116cqd6cczr";
-    features = mkFeatures (features."stable_deref_trait"."1.0.0" or {});
-  };
-  features_.stable_deref_trait."1.0.0" = deps: f: updateFeatures f (rec {
-    stable_deref_trait = fold recursiveUpdate {} [
-      { "1.0.0"."std" =
-        (f.stable_deref_trait."1.0.0"."std" or false) ||
-        (f.stable_deref_trait."1.0.0".default or false) ||
-        (stable_deref_trait."1.0.0"."default" or false); }
-      { "1.0.0".default = (f.stable_deref_trait."1.0.0".default or true); }
-    ];
-  }) [];
-
-
-# end
-# strsim-0.7.0
-
-  crates.strsim."0.7.0" = deps: { features?(features_.strsim."0.7.0" deps {}) }: buildRustCrate {
-    crateName = "strsim";
-    version = "0.7.0";
-    description = "Implementations of string similarity metrics.\nIncludes Hamming, Levenshtein, OSA, Damerau-Levenshtein, Jaro, and Jaro-Winkler.\n";
-    authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
-    sha256 = "0fy0k5f2705z73mb3x9459bpcvrx4ky8jpr4zikcbiwan4bnm0iv";
-  };
-  features_.strsim."0.7.0" = deps: f: updateFeatures f (rec {
-    strsim."0.7.0".default = (f.strsim."0.7.0".default or true);
-  }) [];
-
-
-# end
-# syn-0.11.11
-
-  crates.syn."0.11.11" = deps: { features?(features_.syn."0.11.11" deps {}) }: buildRustCrate {
-    crateName = "syn";
-    version = "0.11.11";
-    description = "Nom parser for Rust source code";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "0yw8ng7x1dn5a6ykg0ib49y7r9nhzgpiq2989rqdp7rdz3n85502";
-    dependencies = mapFeatures features ([
-    ]
-      ++ (if features.syn."0.11.11".quote or false then [ (crates.quote."${deps."syn"."0.11.11".quote}" deps) ] else [])
-      ++ (if features.syn."0.11.11".synom or false then [ (crates.synom."${deps."syn"."0.11.11".synom}" deps) ] else [])
-      ++ (if features.syn."0.11.11".unicode-xid or false then [ (crates.unicode_xid."${deps."syn"."0.11.11".unicode_xid}" deps) ] else []));
-    features = mkFeatures (features."syn"."0.11.11" or {});
-  };
-  features_.syn."0.11.11" = deps: f: updateFeatures f (rec {
-    quote."${deps.syn."0.11.11".quote}".default = true;
-    syn = fold recursiveUpdate {} [
-      { "0.11.11"."parsing" =
-        (f.syn."0.11.11"."parsing" or false) ||
-        (f.syn."0.11.11".default or false) ||
-        (syn."0.11.11"."default" or false); }
-      { "0.11.11"."printing" =
-        (f.syn."0.11.11"."printing" or false) ||
-        (f.syn."0.11.11".default or false) ||
-        (syn."0.11.11"."default" or false); }
-      { "0.11.11"."quote" =
-        (f.syn."0.11.11"."quote" or false) ||
-        (f.syn."0.11.11".printing or false) ||
-        (syn."0.11.11"."printing" or false); }
-      { "0.11.11"."synom" =
-        (f.syn."0.11.11"."synom" or false) ||
-        (f.syn."0.11.11".parsing or false) ||
-        (syn."0.11.11"."parsing" or false); }
-      { "0.11.11"."unicode-xid" =
-        (f.syn."0.11.11"."unicode-xid" or false) ||
-        (f.syn."0.11.11".parsing or false) ||
-        (syn."0.11.11"."parsing" or false); }
-      { "0.11.11".default = (f.syn."0.11.11".default or true); }
-    ];
-    synom."${deps.syn."0.11.11".synom}".default = true;
-    unicode_xid."${deps.syn."0.11.11".unicode_xid}".default = true;
-  }) [
-    (features_.quote."${deps."syn"."0.11.11"."quote"}" deps)
-    (features_.synom."${deps."syn"."0.11.11"."synom"}" deps)
-    (features_.unicode_xid."${deps."syn"."0.11.11"."unicode_xid"}" deps)
-  ];
-
-
-# end
-# synom-0.11.3
-
-  crates.synom."0.11.3" = deps: { features?(features_.synom."0.11.3" deps {}) }: buildRustCrate {
-    crateName = "synom";
-    version = "0.11.3";
-    description = "Stripped-down Nom parser used by Syn";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "1l6d1s9qjfp6ng2s2z8219igvlv7gyk8gby97sdykqc1r93d8rhc";
-    dependencies = mapFeatures features ([
-      (crates."unicode_xid"."${deps."synom"."0.11.3"."unicode_xid"}" deps)
-    ]);
-  };
-  features_.synom."0.11.3" = deps: f: updateFeatures f (rec {
-    synom."0.11.3".default = (f.synom."0.11.3".default or true);
-    unicode_xid."${deps.synom."0.11.3".unicode_xid}".default = true;
-  }) [
-    (features_.unicode_xid."${deps."synom"."0.11.3"."unicode_xid"}" deps)
-  ];
-
-
-# end
-# synstructure-0.6.1
-
-  crates.synstructure."0.6.1" = deps: { features?(features_.synstructure."0.6.1" deps {}) }: buildRustCrate {
-    crateName = "synstructure";
-    version = "0.6.1";
-    description = "expand_substructure-like helpers for syn macros 1.1 derive macros";
-    authors = [ "Michael Layzell <michael@thelayzells.com>" ];
-    sha256 = "1xnyw58va9zcqi4vvpnmpllacdj2a0mvy0cbd698izmr4qs92xlk";
-    dependencies = mapFeatures features ([
-      (crates."quote"."${deps."synstructure"."0.6.1"."quote"}" deps)
-      (crates."syn"."${deps."synstructure"."0.6.1"."syn"}" deps)
-    ]);
-    features = mkFeatures (features."synstructure"."0.6.1" or {});
-  };
-  features_.synstructure."0.6.1" = deps: f: updateFeatures f (rec {
-    quote."${deps.synstructure."0.6.1".quote}".default = true;
-    syn = fold recursiveUpdate {} [
-      { "${deps.synstructure."0.6.1".syn}"."visit" = true; }
-      { "${deps.synstructure."0.6.1".syn}".default = true; }
-    ];
-    synstructure."0.6.1".default = (f.synstructure."0.6.1".default or true);
-  }) [
-    (features_.quote."${deps."synstructure"."0.6.1"."quote"}" deps)
-    (features_.syn."${deps."synstructure"."0.6.1"."syn"}" deps)
-  ];
-
-
-# end
-# systemfd-0.3.0
-
-  crates.systemfd."0.3.0" = deps: { features?(features_.systemfd."0.3.0" deps {}) }: buildRustCrate {
-    crateName = "systemfd";
-    version = "0.3.0";
-    description = "A convenient helper for passing sockets into another process.  Best to be combined with listenfd and cargo-watch.";
-    authors = [ "Armin Ronacher <armin.ronacher@active-4.com>" ];
-    sha256 = "0dpckgb0afyzhbv8lccgzmw5yczpfcdsdlqsfncn1vcxvcf0yb5i";
-    dependencies = mapFeatures features ([
-      (crates."clap"."${deps."systemfd"."0.3.0"."clap"}" deps)
-      (crates."console"."${deps."systemfd"."0.3.0"."console"}" deps)
-      (crates."failure"."${deps."systemfd"."0.3.0"."failure"}" deps)
-      (crates."failure_derive"."${deps."systemfd"."0.3.0"."failure_derive"}" deps)
-      (crates."lazy_static"."${deps."systemfd"."0.3.0"."lazy_static"}" deps)
-      (crates."libc"."${deps."systemfd"."0.3.0"."libc"}" deps)
-      (crates."regex"."${deps."systemfd"."0.3.0"."regex"}" deps)
-    ])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-      (crates."nix"."${deps."systemfd"."0.3.0"."nix"}" deps)
-    ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."socket2"."${deps."systemfd"."0.3.0"."socket2"}" deps)
-      (crates."uuid"."${deps."systemfd"."0.3.0"."uuid"}" deps)
-      (crates."winapi"."${deps."systemfd"."0.3.0"."winapi"}" deps)
-    ]) else []);
-  };
-  features_.systemfd."0.3.0" = deps: f: updateFeatures f (rec {
-    clap."${deps.systemfd."0.3.0".clap}".default = true;
-    console."${deps.systemfd."0.3.0".console}".default = true;
-    failure."${deps.systemfd."0.3.0".failure}".default = true;
-    failure_derive."${deps.systemfd."0.3.0".failure_derive}".default = true;
-    lazy_static."${deps.systemfd."0.3.0".lazy_static}".default = true;
-    libc."${deps.systemfd."0.3.0".libc}".default = true;
-    nix."${deps.systemfd."0.3.0".nix}".default = true;
-    regex."${deps.systemfd."0.3.0".regex}".default = true;
-    socket2."${deps.systemfd."0.3.0".socket2}".default = true;
-    systemfd."0.3.0".default = (f.systemfd."0.3.0".default or true);
-    uuid = fold recursiveUpdate {} [
-      { "${deps.systemfd."0.3.0".uuid}"."v4" = true; }
-      { "${deps.systemfd."0.3.0".uuid}".default = true; }
-    ];
-    winapi = fold recursiveUpdate {} [
-      { "${deps.systemfd."0.3.0".winapi}"."winsock2" = true; }
-      { "${deps.systemfd."0.3.0".winapi}".default = true; }
-    ];
-  }) [
-    (features_.clap."${deps."systemfd"."0.3.0"."clap"}" deps)
-    (features_.console."${deps."systemfd"."0.3.0"."console"}" deps)
-    (features_.failure."${deps."systemfd"."0.3.0"."failure"}" deps)
-    (features_.failure_derive."${deps."systemfd"."0.3.0"."failure_derive"}" deps)
-    (features_.lazy_static."${deps."systemfd"."0.3.0"."lazy_static"}" deps)
-    (features_.libc."${deps."systemfd"."0.3.0"."libc"}" deps)
-    (features_.regex."${deps."systemfd"."0.3.0"."regex"}" deps)
-    (features_.nix."${deps."systemfd"."0.3.0"."nix"}" deps)
-    (features_.socket2."${deps."systemfd"."0.3.0"."socket2"}" deps)
-    (features_.uuid."${deps."systemfd"."0.3.0"."uuid"}" deps)
-    (features_.winapi."${deps."systemfd"."0.3.0"."winapi"}" deps)
-  ];
-
-
-# end
-# termion-1.5.1
-
-  crates.termion."1.5.1" = deps: { features?(features_.termion."1.5.1" deps {}) }: buildRustCrate {
-    crateName = "termion";
-    version = "1.5.1";
-    description = "A bindless library for manipulating terminals.";
-    authors = [ "ticki <Ticki@users.noreply.github.com>" "gycos <alexandre.bury@gmail.com>" "IGI-111 <igi-111@protonmail.com>" ];
-    sha256 = "02gq4vd8iws1f3gjrgrgpajsk2bk43nds5acbbb4s8dvrdvr8nf1";
-    dependencies = (if !(kernel == "redox") then mapFeatures features ([
-      (crates."libc"."${deps."termion"."1.5.1"."libc"}" deps)
-    ]) else [])
-      ++ (if kernel == "redox" then mapFeatures features ([
-      (crates."redox_syscall"."${deps."termion"."1.5.1"."redox_syscall"}" deps)
-      (crates."redox_termios"."${deps."termion"."1.5.1"."redox_termios"}" deps)
-    ]) else []);
-  };
-  features_.termion."1.5.1" = deps: f: updateFeatures f (rec {
-    libc."${deps.termion."1.5.1".libc}".default = true;
-    redox_syscall."${deps.termion."1.5.1".redox_syscall}".default = true;
-    redox_termios."${deps.termion."1.5.1".redox_termios}".default = true;
-    termion."1.5.1".default = (f.termion."1.5.1".default or true);
-  }) [
-    (features_.libc."${deps."termion"."1.5.1"."libc"}" deps)
-    (features_.redox_syscall."${deps."termion"."1.5.1"."redox_syscall"}" deps)
-    (features_.redox_termios."${deps."termion"."1.5.1"."redox_termios"}" deps)
-  ];
-
-
-# end
-# termios-0.2.2
-
-  crates.termios."0.2.2" = deps: { features?(features_.termios."0.2.2" deps {}) }: buildRustCrate {
-    crateName = "termios";
-    version = "0.2.2";
-    description = "Safe bindings for the termios library.";
-    authors = [ "David Cuddeback <david.cuddeback@gmail.com>" ];
-    sha256 = "0hjy4idvcapx9i6qbhf5536aqnf6rqk2aaj424sfwy7qhv6xmcx3";
-    dependencies = mapFeatures features ([
-      (crates."libc"."${deps."termios"."0.2.2"."libc"}" deps)
-    ]);
-  };
-  features_.termios."0.2.2" = deps: f: updateFeatures f (rec {
-    libc."${deps.termios."0.2.2".libc}".default = true;
-    termios."0.2.2".default = (f.termios."0.2.2".default or true);
-  }) [
-    (features_.libc."${deps."termios"."0.2.2"."libc"}" deps)
-  ];
-
-
-# end
-# textwrap-0.9.0
-
-  crates.textwrap."0.9.0" = deps: { features?(features_.textwrap."0.9.0" deps {}) }: buildRustCrate {
-    crateName = "textwrap";
-    version = "0.9.0";
-    description = "Textwrap is a small library for word wrapping, indenting, and\ndedenting strings.\n\nYou can use it to format strings (such as help and error messages) for\ndisplay in commandline applications. It is designed to be efficient\nand handle Unicode characters correctly.\n";
-    authors = [ "Martin Geisler <martin@geisler.net>" ];
-    sha256 = "18jg79ndjlwndz01mlbh82kkr2arqm658yn5kwp65l5n1hz8w4yb";
-    dependencies = mapFeatures features ([
-      (crates."unicode_width"."${deps."textwrap"."0.9.0"."unicode_width"}" deps)
-    ]);
-  };
-  features_.textwrap."0.9.0" = deps: f: updateFeatures f (rec {
-    textwrap."0.9.0".default = (f.textwrap."0.9.0".default or true);
-    unicode_width."${deps.textwrap."0.9.0".unicode_width}".default = true;
-  }) [
-    (features_.unicode_width."${deps."textwrap"."0.9.0"."unicode_width"}" deps)
-  ];
-
-
-# end
-# thread_local-0.3.5
-
-  crates.thread_local."0.3.5" = deps: { features?(features_.thread_local."0.3.5" deps {}) }: buildRustCrate {
-    crateName = "thread_local";
-    version = "0.3.5";
-    description = "Per-object thread-local storage";
-    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
-    sha256 = "0mkp0sp91aqsk7brgygai4igv751r1754rsxn37mig3ag5rx8np6";
-    dependencies = mapFeatures features ([
-      (crates."lazy_static"."${deps."thread_local"."0.3.5"."lazy_static"}" deps)
-      (crates."unreachable"."${deps."thread_local"."0.3.5"."unreachable"}" deps)
-    ]);
-  };
-  features_.thread_local."0.3.5" = deps: f: updateFeatures f (rec {
-    lazy_static."${deps.thread_local."0.3.5".lazy_static}".default = true;
-    thread_local."0.3.5".default = (f.thread_local."0.3.5".default or true);
-    unreachable."${deps.thread_local."0.3.5".unreachable}".default = true;
-  }) [
-    (features_.lazy_static."${deps."thread_local"."0.3.5"."lazy_static"}" deps)
-    (features_.unreachable."${deps."thread_local"."0.3.5"."unreachable"}" deps)
-  ];
-
-
-# end
-# ucd-util-0.1.1
-
-  crates.ucd_util."0.1.1" = deps: { features?(features_.ucd_util."0.1.1" deps {}) }: buildRustCrate {
-    crateName = "ucd-util";
-    version = "0.1.1";
-    description = "A small utility library for working with the Unicode character database.\n";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "02a8h3siipx52b832xc8m8rwasj6nx9jpiwfldw8hp6k205hgkn0";
-  };
-  features_.ucd_util."0.1.1" = deps: f: updateFeatures f (rec {
-    ucd_util."0.1.1".default = (f.ucd_util."0.1.1".default or true);
-  }) [];
-
-
-# end
-# unicode-width-0.1.4
-
-  crates.unicode_width."0.1.4" = deps: { features?(features_.unicode_width."0.1.4" deps {}) }: buildRustCrate {
-    crateName = "unicode-width";
-    version = "0.1.4";
-    description = "Determine displayed width of `char` and `str` types\naccording to Unicode Standard Annex #11 rules.\n";
-    authors = [ "kwantam <kwantam@gmail.com>" ];
-    sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
-    features = mkFeatures (features."unicode_width"."0.1.4" or {});
-  };
-  features_.unicode_width."0.1.4" = deps: f: updateFeatures f (rec {
-    unicode_width."0.1.4".default = (f.unicode_width."0.1.4".default or true);
-  }) [];
-
-
-# end
-# unicode-xid-0.0.4
-
-  crates.unicode_xid."0.0.4" = deps: { features?(features_.unicode_xid."0.0.4" deps {}) }: buildRustCrate {
-    crateName = "unicode-xid";
-    version = "0.0.4";
-    description = "Determine whether characters have the XID_Start\nor XID_Continue properties according to\nUnicode Standard Annex #31.\n";
-    authors = [ "erick.tryzelaar <erick.tryzelaar@gmail.com>" "kwantam <kwantam@gmail.com>" ];
-    sha256 = "1dc8wkkcd3s6534s5aw4lbjn8m67flkkbnajp5bl8408wdg8rh9v";
-    features = mkFeatures (features."unicode_xid"."0.0.4" or {});
-  };
-  features_.unicode_xid."0.0.4" = deps: f: updateFeatures f (rec {
-    unicode_xid."0.0.4".default = (f.unicode_xid."0.0.4".default or true);
-  }) [];
-
-
-# end
-# unreachable-1.0.0
-
-  crates.unreachable."1.0.0" = deps: { features?(features_.unreachable."1.0.0" deps {}) }: buildRustCrate {
-    crateName = "unreachable";
-    version = "1.0.0";
-    description = "An unreachable code optimization hint in stable rust.";
-    authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
-    sha256 = "1am8czbk5wwr25gbp2zr007744fxjshhdqjz9liz7wl4pnv3whcf";
-    dependencies = mapFeatures features ([
-      (crates."void"."${deps."unreachable"."1.0.0"."void"}" deps)
-    ]);
-  };
-  features_.unreachable."1.0.0" = deps: f: updateFeatures f (rec {
-    unreachable."1.0.0".default = (f.unreachable."1.0.0".default or true);
-    void."${deps.unreachable."1.0.0".void}".default = (f.void."${deps.unreachable."1.0.0".void}".default or false);
-  }) [
-    (features_.void."${deps."unreachable"."1.0.0"."void"}" deps)
-  ];
-
-
-# end
-# utf8-ranges-1.0.0
-
-  crates.utf8_ranges."1.0.0" = deps: { features?(features_.utf8_ranges."1.0.0" deps {}) }: buildRustCrate {
-    crateName = "utf8-ranges";
-    version = "1.0.0";
-    description = "Convert ranges of Unicode codepoints to UTF-8 byte ranges.";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "0rzmqprwjv9yp1n0qqgahgm24872x6c0xddfym5pfndy7a36vkn0";
-  };
-  features_.utf8_ranges."1.0.0" = deps: f: updateFeatures f (rec {
-    utf8_ranges."1.0.0".default = (f.utf8_ranges."1.0.0".default or true);
-  }) [];
-
-
-# end
-# uuid-0.6.3
-
-  crates.uuid."0.6.3" = deps: { features?(features_.uuid."0.6.3" deps {}) }: buildRustCrate {
-    crateName = "uuid";
-    version = "0.6.3";
-    description = "A library to generate and parse UUIDs.\n";
-    authors = [ "Ashley Mannix<ashleymannix@live.com.au>" "Christopher Armstrong" "Dylan DPC<dylan.dpc@gmail.com>" "Hunar Roop Kahlon<hunar.roop@gmail.com>" ];
-    sha256 = "1kjp5xglhab4saaikn95zn3mr4zja7484pv307cb5bxm2sawb8p6";
-    dependencies = mapFeatures features ([
-      (crates."cfg_if"."${deps."uuid"."0.6.3"."cfg_if"}" deps)
-    ]
-      ++ (if features.uuid."0.6.3".rand or false then [ (crates.rand."${deps."uuid"."0.6.3".rand}" deps) ] else []));
-    features = mkFeatures (features."uuid"."0.6.3" or {});
-  };
-  features_.uuid."0.6.3" = deps: f: updateFeatures f (rec {
-    cfg_if."${deps.uuid."0.6.3".cfg_if}".default = true;
-    rand."${deps.uuid."0.6.3".rand}".default = true;
-    uuid = fold recursiveUpdate {} [
-      { "0.6.3"."md5" =
-        (f.uuid."0.6.3"."md5" or false) ||
-        (f.uuid."0.6.3".v3 or false) ||
-        (uuid."0.6.3"."v3" or false); }
-      { "0.6.3"."rand" =
-        (f.uuid."0.6.3"."rand" or false) ||
-        (f.uuid."0.6.3".v3 or false) ||
-        (uuid."0.6.3"."v3" or false) ||
-        (f.uuid."0.6.3".v4 or false) ||
-        (uuid."0.6.3"."v4" or false) ||
-        (f.uuid."0.6.3".v5 or false) ||
-        (uuid."0.6.3"."v5" or false); }
-      { "0.6.3"."serde" =
-        (f.uuid."0.6.3"."serde" or false) ||
-        (f.uuid."0.6.3".playground or false) ||
-        (uuid."0.6.3"."playground" or false); }
-      { "0.6.3"."sha1" =
-        (f.uuid."0.6.3"."sha1" or false) ||
-        (f.uuid."0.6.3".v5 or false) ||
-        (uuid."0.6.3"."v5" or false); }
-      { "0.6.3"."std" =
-        (f.uuid."0.6.3"."std" or false) ||
-        (f.uuid."0.6.3".default or false) ||
-        (uuid."0.6.3"."default" or false) ||
-        (f.uuid."0.6.3".use_std or false) ||
-        (uuid."0.6.3"."use_std" or false); }
-      { "0.6.3"."v1" =
-        (f.uuid."0.6.3"."v1" or false) ||
-        (f.uuid."0.6.3".playground or false) ||
-        (uuid."0.6.3"."playground" or false); }
-      { "0.6.3"."v3" =
-        (f.uuid."0.6.3"."v3" or false) ||
-        (f.uuid."0.6.3".playground or false) ||
-        (uuid."0.6.3"."playground" or false); }
-      { "0.6.3"."v4" =
-        (f.uuid."0.6.3"."v4" or false) ||
-        (f.uuid."0.6.3".playground or false) ||
-        (uuid."0.6.3"."playground" or false); }
-      { "0.6.3"."v5" =
-        (f.uuid."0.6.3"."v5" or false) ||
-        (f.uuid."0.6.3".playground or false) ||
-        (uuid."0.6.3"."playground" or false); }
-      { "0.6.3".default = (f.uuid."0.6.3".default or true); }
-    ];
-  }) [
-    (features_.cfg_if."${deps."uuid"."0.6.3"."cfg_if"}" deps)
-    (features_.rand."${deps."uuid"."0.6.3"."rand"}" deps)
-  ];
-
-
-# end
-# vec_map-0.8.1
-
-  crates.vec_map."0.8.1" = deps: { features?(features_.vec_map."0.8.1" deps {}) }: buildRustCrate {
-    crateName = "vec_map";
-    version = "0.8.1";
-    description = "A simple map based on a vector for small integer keys";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
-    sha256 = "1jj2nrg8h3l53d43rwkpkikq5a5x15ms4rf1rw92hp5lrqhi8mpi";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."vec_map"."0.8.1" or {});
-  };
-  features_.vec_map."0.8.1" = deps: f: updateFeatures f (rec {
-    vec_map = fold recursiveUpdate {} [
-      { "0.8.1"."serde" =
-        (f.vec_map."0.8.1"."serde" or false) ||
-        (f.vec_map."0.8.1".eders or false) ||
-        (vec_map."0.8.1"."eders" or false); }
-      { "0.8.1".default = (f.vec_map."0.8.1".default or true); }
-    ];
-  }) [];
-
-
-# end
-# void-1.0.2
-
-  crates.void."1.0.2" = deps: { features?(features_.void."1.0.2" deps {}) }: buildRustCrate {
-    crateName = "void";
-    version = "1.0.2";
-    description = "The uninhabited void type for use in statically impossible cases.";
-    authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
-    sha256 = "0h1dm0dx8dhf56a83k68mijyxigqhizpskwxfdrs1drwv2cdclv3";
-    features = mkFeatures (features."void"."1.0.2" or {});
-  };
-  features_.void."1.0.2" = deps: f: updateFeatures f (rec {
-    void = fold recursiveUpdate {} [
-      { "1.0.2"."std" =
-        (f.void."1.0.2"."std" or false) ||
-        (f.void."1.0.2".default or false) ||
-        (void."1.0.2"."default" or false); }
-      { "1.0.2".default = (f.void."1.0.2".default or true); }
-    ];
-  }) [];
-
-
-# end
-# winapi-0.2.8
-
-  crates.winapi."0.2.8" = deps: { features?(features_.winapi."0.2.8" deps {}) }: buildRustCrate {
-    crateName = "winapi";
-    version = "0.2.8";
-    description = "Types and constants for WinAPI bindings. See README for list of crates providing function bindings.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
-  };
-  features_.winapi."0.2.8" = deps: f: updateFeatures f (rec {
-    winapi."0.2.8".default = (f.winapi."0.2.8".default or true);
-  }) [];
-
-
-# end
-# winapi-0.3.4
-
-  crates.winapi."0.3.4" = deps: { features?(features_.winapi."0.3.4" deps {}) }: buildRustCrate {
-    crateName = "winapi";
-    version = "0.3.4";
-    description = "Raw FFI bindings for all of Windows API.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1qbrf5dcnd8j36cawby5d9r5vx07r0l4ryf672pfncnp8895k9lx";
-    build = "build.rs";
-    dependencies = (if kernel == "i686-pc-windows-gnu" then mapFeatures features ([
-      (crates."winapi_i686_pc_windows_gnu"."${deps."winapi"."0.3.4"."winapi_i686_pc_windows_gnu"}" deps)
-    ]) else [])
-      ++ (if kernel == "x86_64-pc-windows-gnu" then mapFeatures features ([
-      (crates."winapi_x86_64_pc_windows_gnu"."${deps."winapi"."0.3.4"."winapi_x86_64_pc_windows_gnu"}" deps)
-    ]) else []);
-    features = mkFeatures (features."winapi"."0.3.4" or {});
-  };
-  features_.winapi."0.3.4" = deps: f: updateFeatures f (rec {
-    winapi."0.3.4".default = (f.winapi."0.3.4".default or true);
-    winapi_i686_pc_windows_gnu."${deps.winapi."0.3.4".winapi_i686_pc_windows_gnu}".default = true;
-    winapi_x86_64_pc_windows_gnu."${deps.winapi."0.3.4".winapi_x86_64_pc_windows_gnu}".default = true;
-  }) [
-    (features_.winapi_i686_pc_windows_gnu."${deps."winapi"."0.3.4"."winapi_i686_pc_windows_gnu"}" deps)
-    (features_.winapi_x86_64_pc_windows_gnu."${deps."winapi"."0.3.4"."winapi_x86_64_pc_windows_gnu"}" deps)
-  ];
-
-
-# end
-# winapi-build-0.1.1
-
-  crates.winapi_build."0.1.1" = deps: { features?(features_.winapi_build."0.1.1" deps {}) }: buildRustCrate {
-    crateName = "winapi-build";
-    version = "0.1.1";
-    description = "Common code for build.rs in WinAPI -sys crates.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
-    libName = "build";
-  };
-  features_.winapi_build."0.1.1" = deps: f: updateFeatures f (rec {
-    winapi_build."0.1.1".default = (f.winapi_build."0.1.1".default or true);
-  }) [];
-
-
-# end
-# winapi-i686-pc-windows-gnu-0.4.0
-
-  crates.winapi_i686_pc_windows_gnu."0.4.0" = deps: { features?(features_.winapi_i686_pc_windows_gnu."0.4.0" deps {}) }: buildRustCrate {
-    crateName = "winapi-i686-pc-windows-gnu";
-    version = "0.4.0";
-    description = "Import libraries for the i686-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "05ihkij18r4gamjpxj4gra24514can762imjzlmak5wlzidplzrp";
-    build = "build.rs";
-  };
-  features_.winapi_i686_pc_windows_gnu."0.4.0" = deps: f: updateFeatures f (rec {
-    winapi_i686_pc_windows_gnu."0.4.0".default = (f.winapi_i686_pc_windows_gnu."0.4.0".default or true);
-  }) [];
-
-
-# end
-# winapi-x86_64-pc-windows-gnu-0.4.0
-
-  crates.winapi_x86_64_pc_windows_gnu."0.4.0" = deps: { features?(features_.winapi_x86_64_pc_windows_gnu."0.4.0" deps {}) }: buildRustCrate {
-    crateName = "winapi-x86_64-pc-windows-gnu";
-    version = "0.4.0";
-    description = "Import libraries for the x86_64-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "0n1ylmlsb8yg1v583i4xy0qmqg42275flvbc51hdqjjfjcl9vlbj";
-    build = "build.rs";
-  };
-  features_.winapi_x86_64_pc_windows_gnu."0.4.0" = deps: f: updateFeatures f (rec {
-    winapi_x86_64_pc_windows_gnu."0.4.0".default = (f.winapi_x86_64_pc_windows_gnu."0.4.0".default or true);
-  }) [];
-
-
-# end
-}
diff --git a/pkgs/development/tools/systemfd/default.nix b/pkgs/development/tools/systemfd/default.nix
index a1c93f46dcb70..a695cf83a2954 100644
--- a/pkgs/development/tools/systemfd/default.nix
+++ b/pkgs/development/tools/systemfd/default.nix
@@ -1,18 +1,32 @@
-{ lib, fetchgit, darwin, buildPlatform
-, buildRustCrate, buildRustCrateHelpers, defaultCrateOverrides }:
+{ lib
+, fetchFromGitHub
+, rustPlatform
+}:
 
-((import ./Cargo.nix {
-  inherit lib buildPlatform buildRustCrate buildRustCrateHelpers fetchgit;
-  cratesIO = import ./crates-io.nix { inherit lib buildRustCrate buildRustCrateHelpers; };
-}).systemfd {}).override {
-  crateOverrides = defaultCrateOverrides // {
-    systemfd = attrs: {
-        meta = {
-          description = "A convenient helper for passing sockets into another process";
-          homepage = "https://github.com/mitsuhiko/systemfd";
-          license = lib.licenses.asl20;
-          maintainers = [ lib.maintainers.adisbladis ];
-        };
-    };
+let
+  version = "0.4.0";
+
+in
+rustPlatform.buildRustPackage {
+
+  pname = "systemfd";
+  inherit version;
+
+  src = fetchFromGitHub {
+    repo = "systemfd";
+    owner = "mitsuhiko";
+    rev = version;
+    sha256 = "sha256-HUJgYPD4C9fMUYKpzmIy9gDT6HAZDWw1JLMKLgzRQTY=";
   };
+
+  cargoSha256 = "sha256-UhfE9Q5E79rN2mjkNB5IAN/J0fbpoy9CmM6ojHQcFP0=";
+
+  meta = {
+    description = "A convenient helper for passing sockets into another process";
+    homepage = "https://github.com/mitsuhiko/systemfd";
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.adisbladis ];
+    platforms = lib.platforms.unix;
+  };
+
 }
diff --git a/pkgs/os-specific/linux/microcode/intel.nix b/pkgs/os-specific/linux/microcode/intel.nix
index 41091181ee88c..002284e21544f 100644
--- a/pkgs/os-specific/linux/microcode/intel.nix
+++ b/pkgs/os-specific/linux/microcode/intel.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "microcode-intel";
-  version = "20220419";
+  version = "20220510";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "Intel-Linux-Processor-Microcode-Data-Files";
     rev = "microcode-${version}";
-    sha256 = "sha256-i3OhOEqyK6gJfRIPewPGb4/6k6lO0atmedEqJ2e+66U=";
+    sha256 = "sha256-x+8qyC7YP7co/7qLhaAtjMtyeANaZJ/r41iFl1Mut+M=";
   };
 
   nativeBuildInputs = [ iucode-tool libarchive ];
diff --git a/pkgs/servers/frr/default.nix b/pkgs/servers/frr/default.nix
index 833710f1feca7..302c5a472bd01 100644
--- a/pkgs/servers/frr/default.nix
+++ b/pkgs/servers/frr/default.nix
@@ -1,8 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
-, python3Packages
 
 # build time
 , autoreconfHook
@@ -33,31 +31,22 @@
 
 stdenv.mkDerivation rec {
   pname = "frr";
-  version = "8.1";
+  version = "8.2.2";
 
   src = fetchFromGitHub {
     owner = "FRRouting";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "sha256-hJcgLiPBxOE5QEh0RhtZhM3dOxFqW5H0TUjN+aP4qRk=";
+    hash = "sha256-zuOgbRxyyhFdBplH/K1fpyD+KUWa7FXPDmGKF5Kb7SQ=";
   };
 
-  patches = [
-    (fetchpatch {
-      # Fix clippy build on aarch64-linux
-      # https://github.com/FRRouting/frr/issues/10267
-      url = "https://github.com/FRRouting/frr/commit/3942ee1f7bc754dd0dd9ae79f89d0f2635be334f.patch";
-      sha256 = "1i0acfy5k9fbm9cxchrcvkhyw9704srq4wm2hyjqgdimm2dq7ryf";
-    })
-  ];
-
   nativeBuildInputs = [
     autoreconfHook
     bison
     flex
     perl
     pkg-config
-    python3Packages.sphinx
+    python3.pkgs.sphinx
     texinfo
   ];
 
@@ -78,34 +67,35 @@ stdenv.mkDerivation rec {
   ];
 
   configureFlags = [
-    "--sysconfdir=/etc/frr"
-    "--localstatedir=/run/frr"
-    "--sbindir=$(out)/libexec/frr"
     "--disable-exampledir"
-    "--enable-user=frr"
-    "--enable-group=frr"
     "--enable-configfile-mask=0640"
+    "--enable-group=frr"
     "--enable-logfile-mask=0640"
-    "--enable-vty-group=frrvty"
-    "--enable-snmp"
     "--enable-multipath=64"
+    "--enable-snmp"
+    "--enable-user=frr"
+    "--enable-vty-group=frrvty"
+    "--localstatedir=/run/frr"
+    "--sbindir=$(out)/libexec/frr"
+    "--sysconfdir=/etc/frr"
   ];
 
   postPatch = ''
-    substituteInPlace tools/frr-reload --replace /usr/lib/frr/ $out/libexec/frr/
+    substituteInPlace tools/frr-reload \
+      --replace /usr/lib/frr/ $out/libexec/frr/
   '';
 
   doCheck = true;
+
   checkInputs = [
     nettools
-    python3Packages.pytest
+    python3.pkgs.pytest
   ];
 
   enableParallelBuilding = true;
 
-  passthru.tests = { inherit (nixosTests) frr; };
-
   meta = with lib; {
+    homepage = "https://frrouting.org/";
     description = "FRR BGP/OSPF/ISIS/RIP/RIPNG routing daemon suite";
     longDescription = ''
       FRRouting (FRR) is a free and open source Internet routing protocol suite
@@ -129,9 +119,10 @@ stdenv.mkDerivation rec {
       infrastructure, web 2.0 businesses, hyperscale services, and Fortune 500
       private clouds.
     '';
-    homepage = "https://frrouting.org/";
     license = with licenses; [ gpl2Plus lgpl21Plus ];
-    platforms = platforms.unix;
     maintainers = with maintainers; [ woffs ];
+    platforms = platforms.unix;
   };
+
+  passthru.tests = { inherit (nixosTests) frr; };
 }
diff --git a/pkgs/servers/libreddit/default.nix b/pkgs/servers/libreddit/default.nix
index 8274b7440691d..443905451dd9c 100644
--- a/pkgs/servers/libreddit/default.nix
+++ b/pkgs/servers/libreddit/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "libreddit";
-  version = "0.22.6";
+  version = "0.22.7";
 
   src = fetchFromGitHub {
     owner = "spikecodes";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Dx0eVg1T9WTHeIQO9hwUoCAcUgQey8rlZ5+uxPIX0Wc=";
+    sha256 = "sha256-kM+XvkSxc+OsHq2hGPdpy32jQ/35AJo75PlpbeWjef0=";
   };
 
-  cargoSha256 = "sha256-RGZgo9uxRmPpZzXu6AC2FPjOoZxLnh4gCjadAOTWJ4Q=";
+  cargoSha256 = "sha256-md56axw3tpl++wP3ga0iMX63ixu/35lhT4TA2Uo8GpI=";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/servers/nitter/default.nix b/pkgs/servers/nitter/default.nix
index a0115440b6ecc..3931f5b328157 100644
--- a/pkgs/servers/nitter/default.nix
+++ b/pkgs/servers/nitter/default.nix
@@ -2,14 +2,14 @@
 
 nimPackages.buildNimPackage rec {
   pname = "nitter";
-  version = "unstable-2022-03-21";
+  version = "unstable-2022-05-13";
   nimBinOnly = true;
 
   src = fetchFromGitHub {
     owner = "zedeus";
     repo = "nitter";
-    rev = "6884f05041a9b8619ec709afacdfdd6482a120a0";
-    sha256 = "1mnc6jqljpqp9lgcrxxvf3aiswssr34v139cxfbwlmj45swmsazh";
+    rev = "683c052036b268028f0ecae020a1519bc586516d";
+    sha256 = "179z66jlwbdarrgvpdh8aqy2ihkiakd22wqydrfgpsgr59ma8fgl";
   };
 
   buildInputs = with nimPackages; [
@@ -29,6 +29,7 @@ nimPackages.buildNimPackage rec {
 
   postBuild = ''
     nim c --hint[Processing]:off -r tools/gencss
+    nim c --hint[Processing]:off -r tools/rendermd
   '';
 
   postInstall = ''
diff --git a/pkgs/servers/wishlist/default.nix b/pkgs/servers/wishlist/default.nix
index 73a77a7bfc644..942dd7aa96c64 100644
--- a/pkgs/servers/wishlist/default.nix
+++ b/pkgs/servers/wishlist/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "wishlist";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = "wishlist";
     rev = "v${version}";
-    sha256 = "sha256-qXCPxFdwX+z0aaZbqFt7bWPlBJDnr0SDMrBHSALX1aw=";
+    sha256 = "sha256-J9Wd2CyQo8vzfE2jXQzbNA+oihG71F3ZQmEW/r0a72I=1";
   };
 
-  vendorSha256 = "sha256-vLhRZVEiYUCvGqPMtOz/8T6W5AKwkSzPdEglG3AevE8=";
+  vendorSha256 = "sha256-5+wuavHLXwjtvwA9tSpdF2Zd8tw5FklzvaTeCZlA4WQ=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/filesystems/afpfs-ng/default.nix b/pkgs/tools/filesystems/afpfs-ng/default.nix
index 9c4268e402dad..b56bfba62cd4f 100644
--- a/pkgs/tools/filesystems/afpfs-ng/default.nix
+++ b/pkgs/tools/filesystems/afpfs-ng/default.nix
@@ -11,6 +11,12 @@ stdenv.mkDerivation {
     sha256 = "125jx1rsqkiifcffyjb05b2s36rllckdgjaf1bay15k9gzhwwldz";
   };
 
+  # Add workaround for -fno-common toolchains like upstream gcc-10 to
+  # avoid build failures like:
+  #   ld: afpcmd-cmdline_main.o:/build/source/cmdline/cmdline_afp.h:4: multiple definition of
+  #    `full_url'; afpcmd-cmdline_afp.o:/build/source/cmdline/cmdline_afp.c:27: first defined here
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   buildInputs = [ fuse readline libgcrypt gmp ];
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/oci-image-tool/default.nix b/pkgs/tools/misc/oci-image-tool/default.nix
deleted file mode 100644
index 8cac6d1c3f5a6..0000000000000
--- a/pkgs/tools/misc/oci-image-tool/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, fetchFromGitHub, buildGoPackage }:
-
-buildGoPackage rec {
-  pname = "oci-image-tool";
-  version = "1.0.0-rc1";
-
-  goPackagePath = "github.com/opencontainers/image-tools";
-  subPackages = [ "cmd/oci-image-tool" ];
-
-  src = fetchFromGitHub {
-    owner = "opencontainers";
-    repo = "image-tools";
-    rev = "v${version}";
-    sha256 = "0c4n69smqlkf0r6khy9gbg5f810qh9g8jqsl9kibb0dyswizr14r";
-  };
-
-  meta = {
-    description = "A collection of tools for working with the OCI image format specification";
-    homepage = "https://github.com/opencontainers/image-tools";
-    license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ nzhang-zh ];
-  };
-}
diff --git a/pkgs/tools/networking/cdpr/default.nix b/pkgs/tools/networking/cdpr/default.nix
index 0b92fd7aa45c3..a3f821bdbb358 100644
--- a/pkgs/tools/networking/cdpr/default.nix
+++ b/pkgs/tools/networking/cdpr/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libpcap }:
+{ lib, stdenv, fetchurl, fetchpatch, libpcap }:
 
 stdenv.mkDerivation rec {
   pname = "cdpr";
@@ -8,6 +8,15 @@ stdenv.mkDerivation rec {
     url = "mirror://sourceforge/${pname}/${pname}/${version}/${pname}-${version}.tgz";
     sha256 = "1idyvyafkk0ifcbi7mc65b60qia6hpsdb6s66j4ggqp7if6vblrj";
   };
+  patches = [
+    # Pull fix pending upstream inclusion for gcc-10 compatibility:
+    #  https://sourceforge.net/p/cdpr/bugs/3/
+    (fetchurl {
+      name = "fno-common";
+      url = "https://sourceforge.net/p/cdpr/bugs/3/attachment/0001-cdpr-fix-build-on-gcc-10-fno-common.patch";
+      sha256 = "023cvkpc4ry1pbjd91kkwj4af3hia0layk3fp8q40vh6mbr14pnp";
+    })
+  ];
 
   postPatch = ''
     substituteInPlace Makefile --replace 'gcc' '"$$CC"'
diff --git a/pkgs/tools/security/clamav/default.nix b/pkgs/tools/security/clamav/default.nix
index cc1eaf8265cf2..2535162525933 100644
--- a/pkgs/tools/security/clamav/default.nix
+++ b/pkgs/tools/security/clamav/default.nix
@@ -1,52 +1,32 @@
-{ lib, stdenv, fetchurl, pkg-config
+{ lib, stdenv, fetchurl, pkg-config, cmake
 , zlib, bzip2, libiconv, libxml2, openssl, ncurses, curl, libmilter, pcre2
 , libmspack, systemd, Foundation, json_c, check
+, rustc, rust-bindgen, rustfmt, cargo, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "clamav";
-  version = "0.103.5";
+  version = "0.105.0";
 
   src = fetchurl {
     url = "https://www.clamav.net/downloads/production/${pname}-${version}.tar.gz";
-    sha256 = "sha256-HnSx4dKoqQVkScMT9Ippg7nVug1vte8LK+atPIQaVCY=";
+    sha256 = "sha256-JwIDpUxFgEnbVPzZNoP/Wy2xkVHzY8SOgs7O/d4rNdQ=";
   };
 
-  # don't install sample config files into the absolute sysconfdir folder
-  postPatch = ''
-    substituteInPlace Makefile.in --replace ' etc ' ' '
-  '';
+  # Flaky test, remove this when https://github.com/Cisco-Talos/clamav/issues/343 is fixed
+  patches = [ ./remove-freshclam-test.patch ];
 
   enableParallelBuilding = true;
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ cmake pkg-config rustc rust-bindgen rustfmt cargo python3 ];
   buildInputs = [
     zlib bzip2 libxml2 openssl ncurses curl libiconv libmilter pcre2 libmspack json_c check
   ] ++ lib.optional stdenv.isLinux systemd
     ++ lib.optional stdenv.isDarwin Foundation;
 
-  configureFlags = [
-    "--libdir=$(out)/lib"
-    "--sysconfdir=/etc/clamav"
-    "--disable-llvm" # enabling breaks the build at the moment
-    "--with-zlib=${zlib.dev}"
-    "--with-xml=${libxml2.dev}"
-    "--with-openssl=${openssl.dev}"
-    "--with-libcurl=${curl.dev}"
-    "--with-libjson=${json_c.dev}"
-    "--with-system-libmspack"
-    "--enable-milter"
-    "--disable-unrar" # disable unrar because it's non-free and requires some extra patching to work properly
-    "--enable-check"
-  ] ++ lib.optional stdenv.isLinux
-    "--with-systemdsystemunitdir=$(out)/lib/systemd";
+  cmakeFlags = [
+    "-DSYSTEMD_UNIT_DIR=${placeholder "out"}/lib/systemd"
+  ];
 
-  postInstall = ''
-    mkdir $out/etc
-    cp etc/*.sample $out/etc
-  '';
-
-  # Only required for the unit tests
-  hardeningDisable = [ "format" ];
   doCheck = true;
 
   meta = with lib; {
diff --git a/pkgs/tools/security/clamav/remove-freshclam-test.patch b/pkgs/tools/security/clamav/remove-freshclam-test.patch
new file mode 100644
index 0000000000000..93078b52aaad3
--- /dev/null
+++ b/pkgs/tools/security/clamav/remove-freshclam-test.patch
@@ -0,0 +1,20 @@
+diff --git a/unit_tests/CMakeLists.txt b/unit_tests/CMakeLists.txt
+index 1460357ba..1194abc9d 100644
+--- a/unit_tests/CMakeLists.txt
++++ b/unit_tests/CMakeLists.txt
+@@ -371,15 +371,6 @@ if(ENABLE_APP)
+         set_property(TEST clamd_valgrind PROPERTY ENVIRONMENT ${ENVIRONMENT} VALGRIND=${Valgrind_EXECUTABLE})
+     endif()
+ 
+-    add_test(NAME freshclam COMMAND ${PythonTest_COMMAND};freshclam_test.py
+-        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+-    set_property(TEST freshclam PROPERTY ENVIRONMENT ${ENVIRONMENT})
+-    if(Valgrind_FOUND)
+-        add_test(NAME freshclam_valgrind COMMAND ${PythonTest_COMMAND};freshclam_test.py
+-            WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+-        set_property(TEST freshclam_valgrind PROPERTY ENVIRONMENT ${ENVIRONMENT} VALGRIND=${Valgrind_EXECUTABLE})
+-    endif()
+-
+     add_test(NAME sigtool COMMAND ${PythonTest_COMMAND};sigtool_test.py
+         WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+     set_property(TEST sigtool PROPERTY ENVIRONMENT ${ENVIRONMENT})
diff --git a/pkgs/tools/security/gnupg/1.nix b/pkgs/tools/security/gnupg/1.nix
index b7bc395cc0a7b..5fa9bc0beddba 100644
--- a/pkgs/tools/security/gnupg/1.nix
+++ b/pkgs/tools/security/gnupg/1.nix
@@ -11,6 +11,12 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ readline bzip2 ];
 
+  # Workaround build failure on -fno-common toolchains like upstream
+  # gcc-10. Otherwise build fails as:
+  #   ld: ../util/libutil.a(estream-printf.o):/build/gnupg-1.4.23/util/../include/memory.h:100: multiple definition of
+  #     `memory_debug_mode'; gpgsplit.o:/build/gnupg-1.4.23/tools/../include/memory.h:100: first defined here
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   doCheck = true;
 
   meta = with lib; {
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 2abec13745e11..271e5ba4c8526 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -904,6 +904,7 @@ mapAliases ({
   ### O ###
 
   oathToolkit = oath-toolkit; # Added 2022-04-04
+  oci-image-tool = throw "oci-image-tool is no longer actively maintained, and has had major deficiencies for several years."; # Added 2022-05-14;
   oracleXE = throw "oracleXE has been removed, as it's heavily outdated and unmaintained"; # Added 2020-10-09
   OVMF-CSM = throw "OVMF-CSM has been removed in favor of OVMFFull"; # Added 2021-10-16
   OVMF-secureBoot = throw "OVMF-secureBoot has been removed in favor of OVMFFull"; # Added 2021-10-16
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index cec2a41cd0da9..03b807a068639 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -8876,8 +8876,6 @@ with pkgs;
     buildGoModule = buildGo116Module;
   };
 
-  oci-image-tool = callPackage ../tools/misc/oci-image-tool { };
-
   ocproxy = callPackage ../tools/networking/ocproxy { };
 
   ocserv = callPackage ../tools/networking/ocserv { };
@@ -22708,7 +22706,9 @@ with pkgs;
 
   webmetro = callPackage ../servers/webmetro { };
 
-  wishlist = callPackage ../servers/wishlist { };
+  wishlist = callPackage ../servers/wishlist {
+    buildGoModule = buildGo118Module;
+  };
 
   wsdd = callPackage ../servers/wsdd { };
 
@@ -23451,6 +23451,8 @@ with pkgs;
 
   system76-firmware = callPackage ../os-specific/linux/firmware/system76-firmware { };
 
+  system76-keyboard-configurator = callPackage ../applications/misc/system76-keyboard-configurator { };
+
   ocf-resource-agents = callPackage ../os-specific/linux/ocf-resource-agents { };
 
   open-vm-tools = callPackage ../applications/virtualization/open-vm-tools { };
@@ -34702,7 +34704,9 @@ with pkgs;
 
   tgswitch = callPackage ../applications/networking/cluster/tgswitch {};
 
-  tilt = callPackage ../applications/networking/cluster/tilt { };
+  tilt = callPackage ../applications/networking/cluster/tilt {
+    buildGoModule = buildGo118Module;
+  };
 
   timeular = callPackage ../applications/office/timeular {};
 
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index f4111cd175f33..e25e0968fa7d1 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -4998,6 +4998,8 @@ in {
 
   losant-rest = callPackage ../development/python-modules/losant-rest { };
 
+  lrcalc-python = callPackage ../development/python-modules/lrcalc-python { };
+
   lru-dict = callPackage ../development/python-modules/lru-dict { };
 
   lsassy = callPackage ../development/python-modules/lsassy { };