about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--maintainers/maintainer-list.nix6
-rw-r--r--nixos/modules/installer/tools/nixos-generate-config.pl18
-rw-r--r--nixos/modules/installer/tools/tools.nix7
-rw-r--r--nixos/modules/services/x11/desktop-managers/gnome3.nix5
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix5
-rw-r--r--nixos/tests/nixos-generate-config.nix9
-rw-r--r--pkgs/applications/audio/bambootracker/default.nix16
-rw-r--r--pkgs/applications/editors/qemacs/default.nix24
-rw-r--r--pkgs/applications/misc/crow-translate/default.nix27
-rw-r--r--pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch30
-rw-r--r--pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch18
-rw-r--r--pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix6
-rw-r--r--pkgs/applications/virtualization/OVMF/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/evince/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix6
-rw-r--r--pkgs/development/compilers/flasm/default.nix2
-rw-r--r--pkgs/development/compilers/go/1.16.nix267
-rw-r--r--pkgs/development/compilers/go/go_no_vendor_checks-1.16.patch23
-rw-r--r--pkgs/development/compilers/go/skip-external-network-tests-1.16.patch33
-rw-r--r--pkgs/development/compilers/go/ssl-cert-file-1.16.patch34
-rw-r--r--pkgs/development/compilers/miranda/default.nix3
-rw-r--r--pkgs/development/compilers/sbcl/2.0.9.nix114
-rw-r--r--pkgs/development/compilers/sbcl/2.1.1.nix114
-rw-r--r--pkgs/development/compilers/sbcl/common.nix116
-rw-r--r--pkgs/development/compilers/sbcl/default.nix114
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtwebengine.nix2
-rw-r--r--pkgs/development/ocaml-modules/base64/default.nix15
-rw-r--r--pkgs/development/ocaml-modules/uucp/default.nix25
-rw-r--r--pkgs/development/python-modules/configargparse/default.nix27
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix4
-rw-r--r--pkgs/development/python-modules/modeled/default.nix4
-rw-r--r--pkgs/development/python-modules/python-engineio/3.nix67
-rw-r--r--pkgs/development/python-modules/python-socketio/4.nix47
-rw-r--r--pkgs/development/python-modules/python-socketio/default.nix2
-rw-r--r--pkgs/development/python-modules/robotframework-tools/default.nix26
-rw-r--r--pkgs/development/python-modules/uvloop/default.nix4
-rw-r--r--pkgs/development/python-modules/zetup/default.nix26
-rw-r--r--pkgs/development/tools/chefdk/Gemfile2
-rw-r--r--pkgs/development/tools/chefdk/Gemfile.lock698
-rw-r--r--pkgs/development/tools/chefdk/default.nix2
-rw-r--r--pkgs/development/tools/chefdk/gemset.nix1039
-rw-r--r--pkgs/development/tools/skaffold/default.nix42
-rw-r--r--pkgs/misc/emulators/dlx/default.nix6
-rw-r--r--pkgs/os-specific/linux/busybox/default.nix4
-rw-r--r--pkgs/shells/fish/wrapper.nix4
-rw-r--r--pkgs/tools/security/tor/default.nix4
-rw-r--r--pkgs/tools/system/auto-cpufreq/default.nix4
-rw-r--r--pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch38
-rw-r--r--pkgs/tools/wayland/clipman/default.nix (renamed from pkgs/tools/misc/clipman/default.nix)11
-rw-r--r--pkgs/tools/wayland/kanshi/default.nix (renamed from pkgs/tools/misc/kanshi/default.nix)13
-rw-r--r--pkgs/tools/wayland/oguri/default.nix39
-rw-r--r--pkgs/tools/wayland/slurp/default.nix (renamed from pkgs/tools/misc/slurp/default.nix)14
-rw-r--r--pkgs/tools/wayland/wev/default.nix (renamed from pkgs/tools/misc/wev/default.nix)15
-rw-r--r--pkgs/tools/wayland/wl-clipboard/default.nix (renamed from pkgs/tools/misc/wl-clipboard/default.nix)16
-rw-r--r--pkgs/tools/wayland/wlogout/default.nix54
-rw-r--r--pkgs/tools/wayland/wlr-randr/default.nix (renamed from pkgs/tools/misc/wlr-randr/default.nix)14
-rw-r--r--pkgs/tools/wayland/wob/default.nix (renamed from pkgs/tools/misc/wob/default.nix)17
-rw-r--r--pkgs/top-level/all-packages.nix65
-rw-r--r--pkgs/top-level/perl-packages.nix4
-rw-r--r--pkgs/top-level/python-packages.nix4
60 files changed, 2037 insertions, 1326 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index f46e36c9899ec..498fc61878c00 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -3499,6 +3499,12 @@
     githubId = 6893840;
     name = "Yacine Hmito";
   };
+  graham33 = {
+    email = "graham@grahambennett.org";
+    github = "graham33";
+    githubId = 10908649;
+    name = "Graham Bennett";
+  };
   grahamc = {
     email = "graham@grahamc.com";
     github = "grahamc";
diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl
index 6e3ddb875e1b4..7bc55e67134b6 100644
--- a/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -585,6 +585,22 @@ EOF
     return $config;
 }
 
+sub generateXserverConfig {
+    my $xserverEnabled = "@xserverEnabled@";
+
+    my $config = "";
+    if ($xserverEnabled eq "1") {
+        $config = <<EOF;
+  # Enable the X11 windowing system.
+  services.xserver.enable = true;
+EOF
+    } else {
+        $config = <<EOF;
+  # Enable the X11 windowing system.
+  # services.xserver.enable = true;
+EOF
+    }
+}
 
 if ($showHardwareConfig) {
     print STDOUT $hwConfig;
@@ -630,6 +646,8 @@ EOF
 
         my $networkingDhcpConfig = generateNetworkingDhcpConfig();
 
+        my $xserverConfig = generateXserverConfig();
+
         (my $desktopConfiguration = <<EOF)=~s/^/  /gm;
 @desktopConfiguration@
 EOF
diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix
index ada5f57485612..a9e5641b05a2e 100644
--- a/nixos/modules/installer/tools/tools.nix
+++ b/nixos/modules/installer/tools/tools.nix
@@ -36,6 +36,7 @@ let
     path = lib.optionals (lib.elem "btrfs" config.boot.supportedFilesystems) [ pkgs.btrfs-progs ];
     perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/${pkgs.perl.libPrefix}";
     inherit (config.system.nixos-generate-config) configuration desktopConfiguration;
+    xserverEnabled = config.services.xserver.enable;
   };
 
   nixos-option =
@@ -87,8 +88,8 @@ in
 
     desktopConfiguration = mkOption {
       internal = true;
-      type = types.str;
-      default = "";
+      type = types.listOf types.lines;
+      default = [];
       description = ''
         Text to preseed the desktop configuration that <literal>nixos-generate-config</literal>
         saves to <literal>/etc/nixos/configuration.nix</literal>.
@@ -136,6 +137,8 @@ in
         #   keyMap = "us";
         # };
 
+      $xserverConfig
+
       $desktopConfiguration
         # Configure keymap in X11
         # services.xserver.layout = "us";
diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix
index 671301246a8c7..99e6edfba26e2 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome3.nix
+++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix
@@ -197,12 +197,11 @@ in
   config = mkMerge [
     (mkIf (cfg.enable || flashbackEnabled) {
       # Seed our configuration into nixos-generate-config
-      system.nixos-generate-config.desktopConfiguration = ''
+      system.nixos-generate-config.desktopConfiguration = [''
         # Enable the GNOME 3 Desktop Environment.
-        services.xserver.enable = true;
         services.xserver.displayManager.gdm.enable = true;
         services.xserver.desktopManager.gnome3.enable = true;
-      '';
+      ''];
 
       services.gnome3.core-os-services.enable = true;
       services.gnome3.core-shell.enable = true;
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index d6cf86d3a2e61..44ee079b81737 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -184,12 +184,11 @@ in
   config = mkMerge [
     (mkIf cfg.enable {
       # Seed our configuration into nixos-generate-config
-      system.nixos-generate-config.desktopConfiguration = ''
+      system.nixos-generate-config.desktopConfiguration = [''
         # Enable the Plasma 5 Desktop Environment.
-        services.xserver.enable = true;
         services.xserver.displayManager.sddm.enable = true;
         services.xserver.desktopManager.plasma5.enable = true;
-      '';
+      ''];
 
       services.xserver.desktopManager.session = singleton {
         name = "plasma5";
diff --git a/nixos/tests/nixos-generate-config.nix b/nixos/tests/nixos-generate-config.nix
index 5daa55a8abbea..7bf8d4da7b6d4 100644
--- a/nixos/tests/nixos-generate-config.nix
+++ b/nixos/tests/nixos-generate-config.nix
@@ -11,12 +11,11 @@ import ./make-test-python.nix ({ lib, ... } : {
       }
     '';
 
-    system.nixos-generate-config.desktopConfiguration = ''
+    system.nixos-generate-config.desktopConfiguration = [''
       # DESKTOP
-      # services.xserver.enable = true;
-      # services.xserver.displayManager.gdm.enable = true;
-      # services.xserver.desktopManager.gnome3.enable = true;
-    '';
+      services.xserver.displayManager.gdm.enable = true;
+      services.xserver.desktopManager.gnome3.enable = true;
+    ''];
   };
   testScript = ''
     start_all()
diff --git a/pkgs/applications/audio/bambootracker/default.nix b/pkgs/applications/audio/bambootracker/default.nix
index 5d89813216dcf..ac405cde644fc 100644
--- a/pkgs/applications/audio/bambootracker/default.nix
+++ b/pkgs/applications/audio/bambootracker/default.nix
@@ -1,7 +1,7 @@
 { mkDerivation
 , lib
-, stdenv
 , fetchFromGitHub
+, fetchpatch
 , qmake
 , pkg-config
 , qttools
@@ -21,10 +21,15 @@ mkDerivation rec {
     sha256 = "0iddqfw951dw9xpl4w7310sl4z544507ppb12i8g4fzvlxfw2ifc";
   };
 
-  postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
-    substituteInPlace BambooTracker/BambooTracker.pro \
-      --replace '# Temporary known-error downgrades here' 'CPP_WARNING_FLAGS += -Wno-missing-braces'
-  '';
+  # TODO Remove when updating past 0.4.6
+  # Fixes build failure on darwin
+  patches = [
+    (fetchpatch {
+      name = "bambootracker-Add_braces_in_initialization_of_std-array.patch";
+      url = "https://github.com/rerrahkr/BambooTracker/commit/0fc96c60c7ae6c2504ee696bb7dec979ac19717d.patch";
+      sha256 = "1z28af46mqrgnyrr4i8883gp3wablkk8rijnj0jvpq01s4m2sfjn";
+    })
+  ];
 
   nativeBuildInputs = [ qmake qttools pkg-config ];
 
@@ -40,6 +45,5 @@ mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ OPNA2608 ];
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/applications/editors/qemacs/default.nix b/pkgs/applications/editors/qemacs/default.nix
new file mode 100644
index 0000000000000..065dccb2b2197
--- /dev/null
+++ b/pkgs/applications/editors/qemacs/default.nix
@@ -0,0 +1,24 @@
+{ fetchurl, lib, stdenv, xlibsWrapper, libXv, libpng }:
+
+stdenv.mkDerivation rec {
+  pname = "qemacs";
+  version = "0.3.3";
+
+  src = fetchurl {
+    url = "https://bellard.org/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "156z4wpj49i6j388yjird5qvrph7hz0grb4r44l4jf3q8imadyrg";
+  };
+
+  buildInputs = [ xlibsWrapper libpng libXv ];
+
+  preInstall = ''
+    mkdir -p $out/bin $out/man
+  '';
+
+  meta = with lib; {
+    homepage = "https://bellard.org/qemacs/";
+    description = "Very small but powerful UNIX editor";
+    license = licenses.lgpl2Only;
+    maintainers = with maintainers; [ iblech ];
+  };
+}
diff --git a/pkgs/applications/misc/crow-translate/default.nix b/pkgs/applications/misc/crow-translate/default.nix
index 8cb87274c1dc3..3db4872c0e047 100644
--- a/pkgs/applications/misc/crow-translate/default.nix
+++ b/pkgs/applications/misc/crow-translate/default.nix
@@ -1,6 +1,6 @@
 { lib
-
 , mkDerivation
+, nix-update-script
 , fetchFromGitHub
 , substituteAll
 , cmake
@@ -37,22 +37,28 @@ let
     rev = "1.4.1";
     sha256 = "1c6a8mdxms5vh8l7shi2kqdhafbzm50pbz6g1hhgg6qslla0vfn0";
   };
+  circleflags = fetchFromGitHub {
+    owner = "HatScripts";
+    repo = "circle-flags";
+    rev = "v2.0.0";
+    sha256 = "1xz5b6nhcxxzalcgwnw36npap71i70s50g6b63avjgjkwz1ys5j4";
+  };
 in
 mkDerivation rec {
   pname = "crow-translate";
-  version = "2.6.2";
+  version = "2.7.1";
 
   src = fetchFromGitHub {
     owner = "crow-translate";
     repo = "crow-translate";
     rev = version;
-    sha256 = "1jgpqynmxmh6mrknpk5fh96lbdg799axp4cyn5rvalg3sdxajmqc";
+    sha256 = "sha256-YOsp/noGsYthre18fMyBj9s+YFzdHJfIJzJSm43wiZ0=";
   };
 
   patches = [
     (substituteAll {
       src = ./dont-fetch-external-libs.patch;
-      inherit singleapplication qtaskbarcontrol qhotkey qonlinetranslator;
+      inherit singleapplication qtaskbarcontrol qhotkey qonlinetranslator circleflags;
     })
     (substituteAll {
       # See https://github.com/NixOS/nixpkgs/issues/86054
@@ -61,10 +67,23 @@ mkDerivation rec {
     })
   ];
 
+  postPatch = "cp -r ${circleflags}/flags/* data/icons";
+
   nativeBuildInputs = [ cmake extra-cmake-modules qttools ];
 
   buildInputs = [ leptonica tesseract4 qtmultimedia qtx11extras ];
 
+  postInstall = ''
+    substituteInPlace $out/share/applications/io.crow_translate.CrowTranslate.desktop \
+      --replace "Exec=qdbus" "Exec=${lib.getBin qttools}/bin/qdbus"
+  '';
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
   meta = with lib; {
     description = "A simple and lightweight translator that allows to translate and speak text using Google, Yandex and Bing";
     homepage = "https://crow-translate.github.io/";
diff --git a/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch b/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch
index b5f8d4606aa07..eff303a852c52 100644
--- a/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch
+++ b/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch
@@ -1,8 +1,26 @@
+diff --git i/CMakeLists.txt w/CMakeLists.txt
+index 2576203..26162a0 100644
+--- i/CMakeLists.txt
++++ w/CMakeLists.txt
+@@ -91,12 +91,11 @@ qt5_add_translation(QM_FILES
+ )
+ 
+ configure_file(src/cmake.h.in cmake.h)
+-configure_file(data/icons/flags.qrc ${CircleFlags_SOURCE_DIR}/flags/flags.qrc COPYONLY)
+ 
+ add_executable(${PROJECT_NAME}
+     ${QM_FILES}
+     data/icons/engines/engines.qrc
+-    ${CircleFlags_SOURCE_DIR}/flags/flags.qrc
++    data/icons/flags.qrc
+     src/addlanguagedialog.cpp
+     src/addlanguagedialog.ui
+     src/cli.cpp
 diff --git i/cmake/ExternalLibraries.cmake w/cmake/ExternalLibraries.cmake
-index d8c88ae..47a12c0 100644
+index 21eba0a..b613d3e 100644
 --- i/cmake/ExternalLibraries.cmake
 +++ w/cmake/ExternalLibraries.cmake
-@@ -2,24 +2,20 @@ include(FetchContent)
+@@ -2,29 +2,24 @@ include(FetchContent)
  
  set(QAPPLICATION_CLASS QApplication)
  FetchContent_Declare(SingleApplication
@@ -30,4 +48,10 @@ index d8c88ae..47a12c0 100644
 +    SOURCE_DIR @qonlinetranslator@
  )
  
- FetchContent_MakeAvailable(SingleApplication QTaskbarControl QHotkey QOnlineTranslator)
+ FetchContent_Declare(CircleFlags
+-    GIT_REPOSITORY https://github.com/HatScripts/circle-flags
+-    GIT_TAG v2.0.0
++    SOURCE_DIR @circleflags@
+ )
+ 
+ FetchContent_MakeAvailable(SingleApplication QTaskbarControl QHotkey QOnlineTranslator CircleFlags)
diff --git a/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch b/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch
index 816b6c51886aa..9e0f587ec7a4e 100644
--- a/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch
+++ b/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch
@@ -1,13 +1,13 @@
-diff --git i/src/settings/appsettings.cpp w/src/settings/appsettings.cpp
-index 7be4573..e65994e 100644
---- i/src/settings/appsettings.cpp
-+++ w/src/settings/appsettings.cpp
-@@ -82,7 +82,7 @@ void AppSettings::applyLanguage(QLocale::Language lang)
-         QLocale::setDefault(QLocale(lang));
+diff --git c/src/settings/appsettings.cpp i/src/settings/appsettings.cpp
+index ff99f64..fa929ae 100644
+--- c/src/settings/appsettings.cpp
++++ i/src/settings/appsettings.cpp
+@@ -80,7 +80,7 @@ void AppSettings::applyLanguage(QLocale::Language lang)
+     QLocale::setDefault(locale);
  
-     s_appTranslator.load(QLocale(), QStringLiteral(PROJECT_NAME), QStringLiteral("_"), QStandardPaths::locate(QStandardPaths::AppDataLocation, QStringLiteral("translations"), QStandardPaths::LocateDirectory));
--    s_qtTranslator.load(QLocale(), QStringLiteral("qt"), QStringLiteral("_"), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
-+    s_qtTranslator.load(QLocale(), QStringLiteral("qt"), QStringLiteral("_"), QLatin1String("@qttranslations@/translations"));
+     s_appTranslator.load(locale, QStringLiteral(PROJECT_NAME), QStringLiteral("_"), QStandardPaths::locate(QStandardPaths::AppDataLocation, QStringLiteral("translations"), QStandardPaths::LocateDirectory));
+-    s_qtTranslator.load(locale, QStringLiteral("qtbase"), QStringLiteral("_"), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
++    s_qtTranslator.load(locale, QStringLiteral("qtbase"), QStringLiteral("_"), QLatin1String("@qttranslations@/translations"));
  }
  
  QLocale::Language AppSettings::defaultLanguage()
diff --git a/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix b/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
index e956715d9b0c4..988b2d02df986 100644
--- a/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
+++ b/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "starboard-octant-plugin";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-u+yxAGVVFsZpiexToNDUfQATsYOkKWHkYF9roK0OInY=";
+    sha256 = "sha256-wis2ECCVXQeD7GiCMJQai+wDM8QJ1j5dPnE5O/I3wpM=";
   };
 
-  vendorSha256 = "sha256-c5sel3xs4npTENqRQu8d9hUOK1OFQodF3M0ZpUpr1po=";
+  vendorSha256 = "sha256-T0wDbAl5GXphZIBrM36OwRCojnJ/cbXNqsjtCzUDZ6s=";
 
   buildFlagsArray = [ "-ldflags=" "-s" "-w" ];
 
diff --git a/pkgs/applications/virtualization/OVMF/default.nix b/pkgs/applications/virtualization/OVMF/default.nix
index 14d8d0c13fe66..aed59e05a980d 100644
--- a/pkgs/applications/virtualization/OVMF/default.nix
+++ b/pkgs/applications/virtualization/OVMF/default.nix
@@ -1,6 +1,7 @@
 { stdenv, lib, edk2, util-linux, nasm, iasl
 , csmSupport ? false, seabios ? null
 , secureBoot ? false
+, httpSupport ? false
 }:
 
 assert csmSupport -> seabios != null;
@@ -30,7 +31,8 @@ edk2.mkDerivation projectDscPath {
 
   buildFlags =
     lib.optional secureBoot "-DSECURE_BOOT_ENABLE=TRUE"
-    ++ lib.optionals csmSupport [ "-D CSM_ENABLE" "-D FD_SIZE_2MB" ];
+    ++ lib.optionals csmSupport [ "-D CSM_ENABLE" "-D FD_SIZE_2MB" ]
+    ++ lib.optionals httpSupport [ "-DNETWORK_HTTP_ENABLE=TRUE" "-DNETWORK_HTTP_BOOT_ENABLE=TRUE" ];
 
   postPatch = lib.optionalString csmSupport ''
     cp ${seabios}/Csm16.bin OvmfPkg/Csm/Csm16/Csm16.bin
diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
index 4a1a305d127e3..31828bad0af11 100644
--- a/pkgs/desktops/gnome-3/core/evince/default.nix
+++ b/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -43,13 +43,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evince";
-  version = "3.38.1";
+  version = "3.38.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evince/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "APbWaJzCLePABb2H1MLr9yAGTLjcahiHgW+LfggrLmM=";
+    sha256 = "J9QZ1f7WMF4HRijtz94MtzT//aIF1jysMjORwEkDvZQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix b/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
index db7a6ba09205b..0ea59c3fc425c 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-autoar";
-  version = "0.2.4";
+  version = "0.3.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-autoar/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a";
+    sha256 = "0ssqckfkyldwld88zizy446y2359rg40lnrcm3sjpjhc2b015hgj";
   };
 
   passthru = {
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     platforms = platforms.linux;
     maintainers = teams.gnome.members;
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Plus;
     description = "Library to integrate compressed files management with GNOME";
   };
 }
diff --git a/pkgs/development/compilers/flasm/default.nix b/pkgs/development/compilers/flasm/default.nix
index 4257feb87b992..9423f5e15df9c 100644
--- a/pkgs/development/compilers/flasm/default.nix
+++ b/pkgs/development/compilers/flasm/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     stripRoot = false;
   };
 
-  makeFlags = [ "CC=cc" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   nativeBuildInputs = [ unzip bison flex gperf ];
 
diff --git a/pkgs/development/compilers/go/1.16.nix b/pkgs/development/compilers/go/1.16.nix
new file mode 100644
index 0000000000000..15e1279eba879
--- /dev/null
+++ b/pkgs/development/compilers/go/1.16.nix
@@ -0,0 +1,267 @@
+{ lib, stdenv, fetchurl, tzdata, iana-etc, runCommand
+, perl, which, pkg-config, patch, procps, pcre, cacert, Security, Foundation, xcbuild
+, mailcap, runtimeShell
+, buildPackages
+, pkgsBuildTarget
+, fetchpatch
+, callPackage
+}:
+
+let
+
+  inherit (lib) optionals optionalString;
+
+  go_bootstrap = callPackage ./bootstrap.nix {
+    inherit Security;
+  };
+
+  goBootstrap = runCommand "go-bootstrap" {} ''
+    mkdir $out
+    cp -rf ${go_bootstrap}/* $out/
+    chmod -R u+w $out
+    find $out -name "*.c" -delete
+    cp -rf $out/bin/* $out/share/go/bin/
+  '';
+
+  goarch = platform: {
+    "i686" = "386";
+    "x86_64" = "amd64";
+    "aarch64" = "arm64";
+    "arm" = "arm";
+    "armv5tel" = "arm";
+    "armv6l" = "arm";
+    "armv7l" = "arm";
+    "powerpc64le" = "ppc64le";
+  }.${platform.parsed.cpu.name} or (throw "Unsupported system");
+
+  # We need a target compiler which is still runnable at build time,
+  # to handle the cross-building case where build != host == target
+  targetCC = pkgsBuildTarget.targetPackages.stdenv.cc;
+in
+
+stdenv.mkDerivation rec {
+  pname = "go";
+  version = "1.16";
+
+  src = fetchurl {
+    url = "https://dl.google.com/go/go${version}.src.tar.gz";
+    sha256 = "0nn98xiw8zrvxf9f36p8dzc7ihrrkakr0g9jiy4haqb5alyhd23n";
+  };
+
+  # perl is used for testing go vet
+  nativeBuildInputs = [ perl which pkg-config patch procps ];
+  buildInputs = [ cacert pcre ]
+    ++ optionals stdenv.isLinux [ stdenv.cc.libc.out ]
+    ++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
+
+  propagatedBuildInputs = optionals stdenv.isDarwin [ xcbuild ];
+
+  depsTargetTargetPropagated = optionals stdenv.isDarwin [ Security Foundation ];
+
+  hardeningDisable = [ "all" ];
+
+  prePatch = ''
+    patchShebangs ./ # replace /bin/bash
+
+    # This source produces shell script at run time,
+    # and thus it is not corrected by patchShebangs.
+    substituteInPlace misc/cgo/testcarchive/carchive_test.go \
+      --replace '#!/usr/bin/env bash' '#!${runtimeShell}'
+
+    # Patch the mimetype database location which is missing on NixOS.
+    # but also allow static binaries built with NixOS to run outside nix
+    sed -i 's,\"/etc/mime.types,"${mailcap}/etc/mime.types\"\,\n\t&,' src/mime/type_unix.go
+
+    # Disabling the 'os/http/net' tests (they want files not available in
+    # chroot builds)
+    rm src/net/{listen,parse}_test.go
+    rm src/syscall/exec_linux_test.go
+
+    # !!! substituteInPlace does not seems to be effective.
+    # The os test wants to read files in an existing path. Just don't let it be /usr/bin.
+    sed -i 's,/usr/bin,'"`pwd`", src/os/os_test.go
+    sed -i 's,/bin/pwd,'"`type -P pwd`", src/os/os_test.go
+    # Fails on aarch64
+    sed -i '/TestFallocate/aif true \{ return\; \}' src/cmd/link/internal/ld/fallocate_test.go
+    # Skip this test since ssl patches mess it up.
+    sed -i '/TestLoadSystemCertsLoadColonSeparatedDirs/aif true \{ return\; \}' src/crypto/x509/root_unix_test.go
+    # Disable another PIE test which breaks.
+    sed -i '/TestTrivialPIE/aif true \{ return\; \}' misc/cgo/testshared/shared_test.go
+    # Disable the BuildModePie test
+    sed -i '/TestBuildmodePIE/aif true \{ return\; \}' src/cmd/go/go_test.go
+    # Disable the unix socket test
+    sed -i '/TestShutdownUnix/aif true \{ return\; \}' src/net/net_test.go
+    # Disable the hostname test
+    sed -i '/TestHostname/aif true \{ return\; \}' src/os/os_test.go
+    # ParseInLocation fails the test
+    sed -i '/TestParseInSydney/aif true \{ return\; \}' src/time/format_test.go
+    # Remove the api check as it never worked
+    sed -i '/src\/cmd\/api\/run.go/ireturn nil' src/cmd/dist/test.go
+    # Remove the coverage test as we have removed this utility
+    sed -i '/TestCoverageWithCgo/aif true \{ return\; \}' src/cmd/go/go_test.go
+    # Remove the timezone naming test
+    sed -i '/TestLoadFixed/aif true \{ return\; \}' src/time/time_test.go
+    # Remove disable setgid test
+    sed -i '/TestRespectSetgidDir/aif true \{ return\; \}' src/cmd/go/internal/work/build_test.go
+    # Remove cert tests that conflict with NixOS's cert resolution
+    sed -i '/TestEnvVars/aif true \{ return\; \}' src/crypto/x509/root_unix_test.go
+    # TestWritevError hangs sometimes
+    sed -i '/TestWritevError/aif true \{ return\; \}' src/net/writev_test.go
+    # TestVariousDeadlines fails sometimes
+    sed -i '/TestVariousDeadlines/aif true \{ return\; \}' src/net/timeout_test.go
+
+    sed -i 's,/etc/protocols,${iana-etc}/etc/protocols,' src/net/lookup_unix.go
+    sed -i 's,/etc/services,${iana-etc}/etc/services,' src/net/port_unix.go
+
+    # Disable cgo lookup tests not works, they depend on resolver
+    rm src/net/cgo_unix_test.go
+
+  '' + optionalString stdenv.isLinux ''
+    # prepend the nix path to the zoneinfo files but also leave the original value for static binaries
+    # that run outside a nix server
+    sed -i 's,\"/usr/share/zoneinfo/,"${tzdata}/share/zoneinfo/\"\,\n\t&,' src/time/zoneinfo_unix.go
+
+  '' + optionalString stdenv.isAarch32 ''
+    echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash
+  '' + optionalString stdenv.isDarwin ''
+    substituteInPlace src/race.bash --replace \
+      "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true
+    sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go
+    sed -i 's,"/etc","'"$TMPDIR"'",' src/os/os_test.go
+    sed -i 's,/_go_os_test,'"$TMPDIR"'/_go_os_test,' src/os/path_test.go
+
+    sed -i '/TestChdirAndGetwd/aif true \{ return\; \}' src/os/os_test.go
+    sed -i '/TestCredentialNoSetGroups/aif true \{ return\; \}' src/os/exec/exec_posix_test.go
+    sed -i '/TestRead0/aif true \{ return\; \}' src/os/os_test.go
+    sed -i '/TestSystemRoots/aif true \{ return\; \}' src/crypto/x509/root_darwin_test.go
+
+    sed -i '/TestGoInstallRebuildsStalePackagesInOtherGOPATH/aif true \{ return\; \}' src/cmd/go/go_test.go
+    sed -i '/TestBuildDashIInstallsDependencies/aif true \{ return\; \}' src/cmd/go/go_test.go
+
+    sed -i '/TestDisasmExtld/aif true \{ return\; \}' src/cmd/objdump/objdump_test.go
+
+    sed -i 's/unrecognized/unknown/' src/cmd/link/internal/ld/lib.go
+
+    # TestCurrent fails because Current is not implemented on Darwin
+    sed -i 's/TestCurrent/testCurrent/g' src/os/user/user_test.go
+    sed -i 's/TestLookup/testLookup/g' src/os/user/user_test.go
+
+    touch $TMPDIR/group $TMPDIR/hosts $TMPDIR/passwd
+  '';
+
+  patches = [
+    ./remove-tools-1.11.patch
+    ./ssl-cert-file-1.16.patch
+    ./remove-test-pie-1.15.patch
+    ./creds-test.patch
+    ./go-1.9-skip-flaky-19608.patch
+    ./go-1.9-skip-flaky-20072.patch
+    ./skip-external-network-tests-1.16.patch
+    ./skip-nohup-tests.patch
+    ./skip-cgo-tests-1.15.patch
+    ./go_no_vendor_checks-1.16.patch
+  ] ++ [
+    # breaks under load: https://github.com/golang/go/issues/25628
+    (if stdenv.isAarch32
+    then ./skip-test-extra-files-on-aarch32-1.14.patch
+    else ./skip-test-extra-files-on-386-1.14.patch)
+  ];
+
+  postPatch = ''
+    find . -name '*.orig' -exec rm {} ';'
+  '';
+
+  GOOS = stdenv.targetPlatform.parsed.kernel.name;
+  GOARCH = goarch stdenv.targetPlatform;
+  # GOHOSTOS/GOHOSTARCH must match the building system, not the host system.
+  # Go will nevertheless build a for host system that we will copy over in
+  # the install phase.
+  GOHOSTOS = stdenv.buildPlatform.parsed.kernel.name;
+  GOHOSTARCH = goarch stdenv.buildPlatform;
+
+  # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those
+  # to be different from CC/CXX
+  CC_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
+      "${targetCC}/bin/${targetCC.targetPrefix}cc"
+    else
+      null;
+  CXX_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
+      "${targetCC}/bin/${targetCC.targetPrefix}c++"
+    else
+      null;
+
+  GOARM = toString (lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]);
+  GO386 = "softfloat"; # from Arch: don't assume sse2 on i686
+  CGO_ENABLED = 1;
+  # Hopefully avoids test timeouts on Hydra
+  GO_TEST_TIMEOUT_SCALE = 3;
+
+  # Indicate that we are running on build infrastructure
+  # Some tests assume things like home directories and users exists
+  GO_BUILDER_NAME = "nix";
+
+  GOROOT_BOOTSTRAP="${goBootstrap}/share/go";
+
+  postConfigure = ''
+    export GOCACHE=$TMPDIR/go-cache
+    # this is compiled into the binary
+    export GOROOT_FINAL=$out/share/go
+
+    export PATH=$(pwd)/bin:$PATH
+
+    ${optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
+    # Independent from host/target, CC should produce code for the building system.
+    # We only set it when cross-compiling.
+    export CC=${buildPackages.stdenv.cc}/bin/cc
+    ''}
+    ulimit -a
+  '';
+
+  postBuild = ''
+    (cd src && ./make.bash)
+  '';
+
+  doCheck = stdenv.hostPlatform == stdenv.targetPlatform && !stdenv.isDarwin;
+
+  checkPhase = ''
+    runHook preCheck
+    (cd src && HOME=$TMPDIR GOCACHE=$TMPDIR/go-cache ./run.bash --no-rebuild)
+    runHook postCheck
+  '';
+
+  preInstall = ''
+    rm -r pkg/obj
+    # Contains the wrong perl shebang when cross compiling,
+    # since it is not used for anything we can deleted as well.
+    rm src/regexp/syntax/make_perl_groups.pl
+  '' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then ''
+    mv bin/*_*/* bin
+    rmdir bin/*_*
+    ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
+      rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH}
+    ''}
+  '' else if (stdenv.hostPlatform != stdenv.targetPlatform) then ''
+    rm -rf bin/*_*
+    ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
+      rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH}
+    ''}
+  '' else "");
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $GOROOT_FINAL
+    cp -a bin pkg src lib misc api doc $GOROOT_FINAL
+    ln -s $GOROOT_FINAL/bin $out/bin
+    runHook postInstall
+  '';
+
+  disallowedReferences = [ goBootstrap ];
+
+  meta = with lib; {
+    homepage = "http://golang.org/";
+    description = "The Go Programming language";
+    license = licenses.bsd3;
+    maintainers = teams.golang.members;
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/compilers/go/go_no_vendor_checks-1.16.patch b/pkgs/development/compilers/go/go_no_vendor_checks-1.16.patch
new file mode 100644
index 0000000000000..9edf6efa85176
--- /dev/null
+++ b/pkgs/development/compilers/go/go_no_vendor_checks-1.16.patch
@@ -0,0 +1,23 @@
+Starting from go1.14, go verifes that vendor/modules.txt matches the requirements
+and replacements listed in the main module go.mod file, and it is a hard failure if
+vendor/modules.txt is missing.
+
+Relax module consistency checks and switch back to pre go1.14 behaviour if
+vendor/modules.txt is missing regardless of go version requirement in go.mod.
+
+This has been ported from FreeBSD: https://reviews.freebsd.org/D24122
+See https://github.com/golang/go/issues/37948 for discussion.
+
+diff --git a/src/cmd/go/internal/modload/vendor.go b/src/cmd/go/internal/modload/vendor.go
+index d8fd91f1fe..8bc08e6fed 100644
+--- a/src/cmd/go/internal/modload/vendor.go
++++ b/src/cmd/go/internal/modload/vendor.go
+@@ -133,7 +133,7 @@ func checkVendorConsistency() {
+ 	readVendorList()
+
+ 	pre114 := false
+-	if semver.Compare(index.goVersionV, "v1.14") < 0 {
++	if semver.Compare(index.goVersionV, "v1.14") < 0 || (os.Getenv("GO_NO_VENDOR_CHECKS") == "1" && len(vendorMeta) == 0) {
+ 		// Go versions before 1.14 did not include enough information in
+ 		// vendor/modules.txt to check for consistency.
+ 		// If we know that we're on an earlier version, relax the consistency check.
diff --git a/pkgs/development/compilers/go/skip-external-network-tests-1.16.patch b/pkgs/development/compilers/go/skip-external-network-tests-1.16.patch
new file mode 100644
index 0000000000000..8f1eb6be7bb8e
--- /dev/null
+++ b/pkgs/development/compilers/go/skip-external-network-tests-1.16.patch
@@ -0,0 +1,33 @@
+diff --git a/src/internal/testenv/testenv.go b/src/internal/testenv/testenv.go
+index c902b1404f..66016088a2 100644
+--- a/src/internal/testenv/testenv.go
++++ b/src/internal/testenv/testenv.go
+@@ -163,13 +163,15 @@ func MustHaveExecPath(t testing.TB, path string) {
+ // HasExternalNetwork reports whether the current system can use
+ // external (non-localhost) networks.
+ func HasExternalNetwork() bool {
+-	return !testing.Short() && runtime.GOOS != "js"
++	// Nix sandbox does not external network in sandbox
++	return false
+ }
+ 
+ // MustHaveExternalNetwork checks that the current system can use
+ // external (non-localhost) networks.
+ // If not, MustHaveExternalNetwork calls t.Skip with an explanation.
+ func MustHaveExternalNetwork(t testing.TB) {
++	t.Skipf("Nix sandbox does not have networking")
+ 	if runtime.GOOS == "js" {
+ 		t.Skipf("skipping test: no external network on %s", runtime.GOOS)
+ 	}
+diff --git a/src/net/dial_test.go b/src/net/dial_test.go
+index 57cf5554ad..d00be53b2c 100644
+--- a/src/net/dial_test.go
++++ b/src/net/dial_test.go
+@@ -990,6 +990,7 @@ func TestDialerControl(t *testing.T) {
+ // except that it won't skip testing on non-mobile builders.
+ func mustHaveExternalNetwork(t *testing.T) {
+ 	t.Helper()
++	t.Skipf("Nix sandbox does not have networking")
+ 	mobile := runtime.GOOS == "android" || runtime.GOOS == "ios"
+ 	if testenv.Builder() == "" || mobile {
+ 		testenv.MustHaveExternalNetwork(t)
diff --git a/pkgs/development/compilers/go/ssl-cert-file-1.16.patch b/pkgs/development/compilers/go/ssl-cert-file-1.16.patch
new file mode 100644
index 0000000000000..f4bc16e5b8cbb
--- /dev/null
+++ b/pkgs/development/compilers/go/ssl-cert-file-1.16.patch
@@ -0,0 +1,34 @@
+diff --git a/src/crypto/x509/root.go b/src/crypto/x509/root.go
+index ac92915128..fb1d70c735 100644
+--- a/src/crypto/x509/root.go
++++ b/src/crypto/x509/root.go
+@@ -6,7 +6,11 @@ package x509
+ 
+ //go:generate go run root_ios_gen.go -version 55161.140.3
+ 
+-import "sync"
++import (
++	"io/ioutil"
++	"os"
++	"sync"
++)
+ 
+ var (
+ 	once           sync.Once
+@@ -20,6 +24,16 @@ func systemRootsPool() *CertPool {
+ }
+ 
+ func initSystemRoots() {
++	if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
++		data, err := ioutil.ReadFile(file)
++		if err == nil {
++			roots := NewCertPool()
++			roots.AppendCertsFromPEM(data)
++			systemRoots = roots
++			return
++		}
++	}
++
+ 	systemRoots, systemRootsErr = loadSystemRoots()
+ 	if systemRootsErr != nil {
+ 		systemRoots = nil
diff --git a/pkgs/development/compilers/miranda/default.nix b/pkgs/development/compilers/miranda/default.nix
index 298cb5e21ead7..ab34f833d75ed 100644
--- a/pkgs/development/compilers/miranda/default.nix
+++ b/pkgs/development/compilers/miranda/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   ];
 
   makeFlags = [
-    "CC=cc"
+    "CC=${stdenv.cc.targetPrefix}cc"
     "CFLAGS=-O2"
     "PREFIX=${placeholder "out"}"
   ];
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     patchShebangs quotehostinfo
+    substituteInPlace Makefile --replace strip '${stdenv.cc.targetPrefix}strip'
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/compilers/sbcl/2.0.9.nix b/pkgs/development/compilers/sbcl/2.0.9.nix
index ada098ec1829c..80b30ec87f487 100644
--- a/pkgs/development/compilers/sbcl/2.0.9.nix
+++ b/pkgs/development/compilers/sbcl/2.0.9.nix
@@ -1,114 +1,4 @@
-{ lib, stdenv, fetchurl, writeText, sbclBootstrap
-, sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit"
-, threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.hostPlatform.system)
-, disableImmobileSpace ? false
-  # Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die.
-  # Note that the created binaries still need `patchelf --set-interpreter ...`
-  # to get rid of ${glibc} dependency.
-, purgeNixReferences ? false
-, texinfo
-}:
-
-stdenv.mkDerivation rec {
-  pname = "sbcl";
+import ./common.nix {
   version = "2.0.9";
-
-  src = fetchurl {
-    url    = "mirror://sourceforge/project/sbcl/sbcl/${version}/${pname}-${version}-source.tar.bz2";
-    sha256 = "sha256:17wvrcwgp45z9b6arik31fjnz7908qhr5ackxq1y0gqi1hsh1xy4";
-  };
-
-  buildInputs = [texinfo];
-
-  patchPhase = ''
-    echo '"${version}.nixos"' > version.lisp-expr
-
-    pwd
-
-    # SBCL checks whether files are up-to-date in many places..
-    # Unfortunately, same timestamp is not good enough
-    sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp
-    #sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lisp
-    sed -i src/cold/slam.lisp -e \
-      '/file-write-date input/a)'
-    sed -i src/cold/slam.lisp -e \
-      '/file-write-date output/i(or (and (= 2208988801 (file-write-date output)) (= 2208988801 (file-write-date input)))'
-    sed -i src/code/target-load.lisp -e \
-      '/date defaulted-fasl/a)'
-    sed -i src/code/target-load.lisp -e \
-      '/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))'
-
-    # Fix the tests
-    sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp
-    sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp
-
-    # Use whatever `cc` the stdenv provides
-    substituteInPlace src/runtime/Config.x86-64-darwin --replace gcc cc
-
-    substituteInPlace src/runtime/Config.x86-64-darwin \
-      --replace mmacosx-version-min=10.4 mmacosx-version-min=10.5
-  ''
-  + (if purgeNixReferences
-    then
-      # This is the default location to look for the core; by default in $out/lib/sbcl
-      ''
-        sed 's@^\(#define SBCL_HOME\) .*$@\1 "/no-such-path"@' \
-          -i src/runtime/runtime.c
-      ''
-    else
-      # Fix software version retrieval
-      ''
-        sed -e "s@/bin/uname@$(command -v uname)@g" -i src/code/*-os.lisp \
-          src/code/run-program.lisp
-      ''
-    );
-
-
-  preBuild = ''
-    export INSTALL_ROOT=$out
-    mkdir -p test-home
-    export HOME=$PWD/test-home
-  '';
-
-  enableFeatures = with lib;
-    optional threadSupport "sb-thread" ++
-    optional stdenv.isAarch32 "arm";
-
-  disableFeatures = with lib;
-    optional (!threadSupport) "sb-thread" ++
-    optionals disableImmobileSpace [ "immobile-space" "immobile-code" "compact-instance-header" ];
-
-  buildPhase = ''
-    sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}" ${
-                  lib.concatStringsSep " "
-                    (builtins.map (x: "--with-${x}") enableFeatures ++
-                     builtins.map (x: "--without-${x}") disableFeatures)
-                }
-    (cd doc/manual ; make info)
-  '';
-
-  installPhase = ''
-    INSTALL_ROOT=$out sh install.sh
-  ''
-  + lib.optionalString (!purgeNixReferences) ''
-    cp -r src $out/lib/sbcl
-    cp -r contrib $out/lib/sbcl
-    cat >$out/lib/sbcl/sbclrc <<EOF
-     (setf (logical-pathname-translations "SYS")
-       '(("SYS:SRC;**;*.*.*" #P"$out/lib/sbcl/src/**/*.*")
-         ("SYS:CONTRIB;**;*.*.*" #P"$out/lib/sbcl/contrib/**/*.*")))
-    EOF
-  '';
-
-  setupHook = lib.optional purgeNixReferences (writeText "setupHook.sh" ''
-    addEnvHooks "$targetOffset" _setSbclHome
-    _setSbclHome() {
-      export SBCL_HOME='@out@/lib/sbcl/'
-    }
-  '');
-
-  meta = sbclBootstrap.meta // {
-    inherit version;
-    updateWalker = true;
-  };
+  sha256 = "17wvrcwgp45z9b6arik31fjnz7908qhr5ackxq1y0gqi1hsh1xy4";
 }
diff --git a/pkgs/development/compilers/sbcl/2.1.1.nix b/pkgs/development/compilers/sbcl/2.1.1.nix
index 53d2220faa75f..a32f8a4a28b38 100644
--- a/pkgs/development/compilers/sbcl/2.1.1.nix
+++ b/pkgs/development/compilers/sbcl/2.1.1.nix
@@ -1,114 +1,4 @@
-{ lib, stdenv, fetchurl, writeText, sbclBootstrap
-, sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit"
-, threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.hostPlatform.system)
-, disableImmobileSpace ? false
-  # Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die.
-  # Note that the created binaries still need `patchelf --set-interpreter ...`
-  # to get rid of ${glibc} dependency.
-, purgeNixReferences ? false
-, texinfo
-}:
-
-stdenv.mkDerivation rec {
-  pname = "sbcl";
+import ./common.nix {
   version = "2.1.1";
-
-  src = fetchurl {
-    url    = "mirror://sourceforge/project/sbcl/sbcl/${version}/${pname}-${version}-source.tar.bz2";
-    sha256 = "sha256:15wa66sachhzgvg5n35vihmkpasg100lh561c1d1bdrql0p8kbd9";
-  };
-
-  buildInputs = [texinfo];
-
-  patchPhase = ''
-    echo '"${version}.nixos"' > version.lisp-expr
-
-    pwd
-
-    # SBCL checks whether files are up-to-date in many places..
-    # Unfortunately, same timestamp is not good enough
-    sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp
-    #sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lisp
-    sed -i src/cold/slam.lisp -e \
-      '/file-write-date input/a)'
-    sed -i src/cold/slam.lisp -e \
-      '/file-write-date output/i(or (and (= 2208988801 (file-write-date output)) (= 2208988801 (file-write-date input)))'
-    sed -i src/code/target-load.lisp -e \
-      '/date defaulted-fasl/a)'
-    sed -i src/code/target-load.lisp -e \
-      '/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))'
-
-    # Fix the tests
-    sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp
-    sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp
-
-    # Use whatever `cc` the stdenv provides
-    substituteInPlace src/runtime/Config.x86-64-darwin --replace gcc cc
-
-    substituteInPlace src/runtime/Config.x86-64-darwin \
-      --replace mmacosx-version-min=10.4 mmacosx-version-min=10.5
-  ''
-  + (if purgeNixReferences
-    then
-      # This is the default location to look for the core; by default in $out/lib/sbcl
-      ''
-        sed 's@^\(#define SBCL_HOME\) .*$@\1 "/no-such-path"@' \
-          -i src/runtime/runtime.c
-      ''
-    else
-      # Fix software version retrieval
-      ''
-        sed -e "s@/bin/uname@$(command -v uname)@g" -i src/code/*-os.lisp \
-          src/code/run-program.lisp
-      ''
-    );
-
-
-  preBuild = ''
-    export INSTALL_ROOT=$out
-    mkdir -p test-home
-    export HOME=$PWD/test-home
-  '';
-
-  enableFeatures = with lib;
-    optional threadSupport "sb-thread" ++
-    optional stdenv.isAarch32 "arm";
-
-  disableFeatures = with lib;
-    optional (!threadSupport) "sb-thread" ++
-    optionals disableImmobileSpace [ "immobile-space" "immobile-code" "compact-instance-header" ];
-
-  buildPhase = ''
-    sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}" ${
-                  lib.concatStringsSep " "
-                    (builtins.map (x: "--with-${x}") enableFeatures ++
-                     builtins.map (x: "--without-${x}") disableFeatures)
-                }
-    (cd doc/manual ; make info)
-  '';
-
-  installPhase = ''
-    INSTALL_ROOT=$out sh install.sh
-  ''
-  + lib.optionalString (!purgeNixReferences) ''
-    cp -r src $out/lib/sbcl
-    cp -r contrib $out/lib/sbcl
-    cat >$out/lib/sbcl/sbclrc <<EOF
-     (setf (logical-pathname-translations "SYS")
-       '(("SYS:SRC;**;*.*.*" #P"$out/lib/sbcl/src/**/*.*")
-         ("SYS:CONTRIB;**;*.*.*" #P"$out/lib/sbcl/contrib/**/*.*")))
-    EOF
-  '';
-
-  setupHook = lib.optional purgeNixReferences (writeText "setupHook.sh" ''
-    addEnvHooks "$targetOffset" _setSbclHome
-    _setSbclHome() {
-      export SBCL_HOME='@out@/lib/sbcl/'
-    }
-  '');
-
-  meta = sbclBootstrap.meta // {
-    inherit version;
-    updateWalker = true;
-  };
+  sha256 = "15wa66sachhzgvg5n35vihmkpasg100lh561c1d1bdrql0p8kbd9";
 }
diff --git a/pkgs/development/compilers/sbcl/common.nix b/pkgs/development/compilers/sbcl/common.nix
new file mode 100644
index 0000000000000..2e162ed5a2ef2
--- /dev/null
+++ b/pkgs/development/compilers/sbcl/common.nix
@@ -0,0 +1,116 @@
+{ version, sha256 }:
+
+{ lib, stdenv, fetchurl, writeText, sbclBootstrap
+, sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit"
+, threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.hostPlatform.system)
+, disableImmobileSpace ? false
+  # Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die.
+  # Note that the created binaries still need `patchelf --set-interpreter ...`
+  # to get rid of ${glibc} dependency.
+, purgeNixReferences ? false
+, texinfo
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sbcl";
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${pname}-${version}-source.tar.bz2";
+    inherit sha256;
+  };
+
+  buildInputs = [texinfo];
+
+  patchPhase = ''
+    echo '"${version}.nixos"' > version.lisp-expr
+
+    pwd
+
+    # SBCL checks whether files are up-to-date in many places..
+    # Unfortunately, same timestamp is not good enough
+    sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp
+    #sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lisp
+    sed -i src/cold/slam.lisp -e \
+      '/file-write-date input/a)'
+    sed -i src/cold/slam.lisp -e \
+      '/file-write-date output/i(or (and (= 2208988801 (file-write-date output)) (= 2208988801 (file-write-date input)))'
+    sed -i src/code/target-load.lisp -e \
+      '/date defaulted-fasl/a)'
+    sed -i src/code/target-load.lisp -e \
+      '/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))'
+
+    # Fix the tests
+    sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp
+    sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp
+
+    # Use whatever `cc` the stdenv provides
+    substituteInPlace src/runtime/Config.x86-64-darwin --replace gcc cc
+
+    substituteInPlace src/runtime/Config.x86-64-darwin \
+      --replace mmacosx-version-min=10.4 mmacosx-version-min=10.5
+  ''
+  + (if purgeNixReferences
+    then
+      # This is the default location to look for the core; by default in $out/lib/sbcl
+      ''
+        sed 's@^\(#define SBCL_HOME\) .*$@\1 "/no-such-path"@' \
+          -i src/runtime/runtime.c
+      ''
+    else
+      # Fix software version retrieval
+      ''
+        sed -e "s@/bin/uname@$(command -v uname)@g" -i src/code/*-os.lisp \
+          src/code/run-program.lisp
+      ''
+    );
+
+
+  preBuild = ''
+    export INSTALL_ROOT=$out
+    mkdir -p test-home
+    export HOME=$PWD/test-home
+  '';
+
+  enableFeatures = with lib;
+    optional threadSupport "sb-thread" ++
+    optional stdenv.isAarch32 "arm";
+
+  disableFeatures = with lib;
+    optional (!threadSupport) "sb-thread" ++
+    optionals disableImmobileSpace [ "immobile-space" "immobile-code" "compact-instance-header" ];
+
+  buildPhase = ''
+    sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}" ${
+                  lib.concatStringsSep " "
+                    (builtins.map (x: "--with-${x}") enableFeatures ++
+                     builtins.map (x: "--without-${x}") disableFeatures)
+                }
+    (cd doc/manual ; make info)
+  '';
+
+  installPhase = ''
+    INSTALL_ROOT=$out sh install.sh
+  ''
+  + lib.optionalString (!purgeNixReferences) ''
+    cp -r src $out/lib/sbcl
+    cp -r contrib $out/lib/sbcl
+    cat >$out/lib/sbcl/sbclrc <<EOF
+     (setf (logical-pathname-translations "SYS")
+       '(("SYS:SRC;**;*.*.*" #P"$out/lib/sbcl/src/**/*.*")
+         ("SYS:CONTRIB;**;*.*.*" #P"$out/lib/sbcl/contrib/**/*.*")))
+    EOF
+  '';
+
+  setupHook = lib.optional purgeNixReferences (writeText "setupHook.sh" ''
+    addEnvHooks "$targetOffset" _setSbclHome
+    _setSbclHome() {
+      export SBCL_HOME='@out@/lib/sbcl/'
+    }
+  '');
+
+  meta = sbclBootstrap.meta // {
+    inherit version;
+    updateWalker = true;
+  };
+}
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index df80bb8af1d71..bbc171a8d9863 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -1,114 +1,4 @@
-{ lib, stdenv, fetchurl, writeText, sbclBootstrap
-, sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit"
-, threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.hostPlatform.system)
-, disableImmobileSpace ? false
-  # Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die.
-  # Note that the created binaries still need `patchelf --set-interpreter ...`
-  # to get rid of ${glibc} dependency.
-, purgeNixReferences ? false
-, texinfo
-}:
-
-stdenv.mkDerivation rec {
-  pname = "sbcl";
+import ./common.nix {
   version = "2.0.8";
-
-  src = fetchurl {
-    url    = "mirror://sourceforge/project/sbcl/sbcl/${version}/${pname}-${version}-source.tar.bz2";
-    sha256 = "sha256:1xwrwvps7drrpyw3wg5h3g2qajmkwqs9gz0fdw1ns9adp7vld390";
-  };
-
-  buildInputs = [texinfo];
-
-  patchPhase = ''
-    echo '"${version}.nixos"' > version.lisp-expr
-
-    pwd
-
-    # SBCL checks whether files are up-to-date in many places..
-    # Unfortunately, same timestamp is not good enough
-    sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp
-    #sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lisp
-    sed -i src/cold/slam.lisp -e \
-      '/file-write-date input/a)'
-    sed -i src/cold/slam.lisp -e \
-      '/file-write-date output/i(or (and (= 2208988801 (file-write-date output)) (= 2208988801 (file-write-date input)))'
-    sed -i src/code/target-load.lisp -e \
-      '/date defaulted-fasl/a)'
-    sed -i src/code/target-load.lisp -e \
-      '/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))'
-
-    # Fix the tests
-    sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp
-    sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp
-
-    # Use whatever `cc` the stdenv provides
-    substituteInPlace src/runtime/Config.x86-64-darwin --replace gcc cc
-
-    substituteInPlace src/runtime/Config.x86-64-darwin \
-      --replace mmacosx-version-min=10.4 mmacosx-version-min=10.5
-  ''
-  + (if purgeNixReferences
-    then
-      # This is the default location to look for the core; by default in $out/lib/sbcl
-      ''
-        sed 's@^\(#define SBCL_HOME\) .*$@\1 "/no-such-path"@' \
-          -i src/runtime/runtime.c
-      ''
-    else
-      # Fix software version retrieval
-      ''
-        sed -e "s@/bin/uname@$(command -v uname)@g" -i src/code/*-os.lisp \
-          src/code/run-program.lisp
-      ''
-    );
-
-
-  preBuild = ''
-    export INSTALL_ROOT=$out
-    mkdir -p test-home
-    export HOME=$PWD/test-home
-  '';
-
-  enableFeatures = with lib;
-    optional threadSupport "sb-thread" ++
-    optional stdenv.isAarch32 "arm";
-
-  disableFeatures = with lib;
-    optional (!threadSupport) "sb-thread" ++
-    optionals disableImmobileSpace [ "immobile-space" "immobile-code" "compact-instance-header" ];
-
-  buildPhase = ''
-    sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}" ${
-                  lib.concatStringsSep " "
-                    (builtins.map (x: "--with-${x}") enableFeatures ++
-                     builtins.map (x: "--without-${x}") disableFeatures)
-                }
-    (cd doc/manual ; make info)
-  '';
-
-  installPhase = ''
-    INSTALL_ROOT=$out sh install.sh
-  ''
-  + lib.optionalString (!purgeNixReferences) ''
-    cp -r src $out/lib/sbcl
-    cp -r contrib $out/lib/sbcl
-    cat >$out/lib/sbcl/sbclrc <<EOF
-     (setf (logical-pathname-translations "SYS")
-       '(("SYS:SRC;**;*.*.*" #P"$out/lib/sbcl/src/**/*.*")
-         ("SYS:CONTRIB;**;*.*.*" #P"$out/lib/sbcl/contrib/**/*.*")))
-    EOF
-  '';
-
-  setupHook = lib.optional purgeNixReferences (writeText "setupHook.sh" ''
-    addEnvHooks "$targetOffset" _setSbclHome
-    _setSbclHome() {
-      export SBCL_HOME='@out@/lib/sbcl/'
-    }
-  '');
-
-  meta = sbclBootstrap.meta // {
-    inherit version;
-    updateWalker = true;
-  };
+  sha256 = "1xwrwvps7drrpyw3wg5h3g2qajmkwqs9gz0fdw1ns9adp7vld390";
 }
diff --git a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
index 7e5582cca4817..9613eed287439 100644
--- a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
@@ -229,6 +229,8 @@ qtModule {
     description = "A web engine based on the Chromium web browser";
     maintainers = with maintainers; [ matthewbauer ];
     platforms = platforms.unix;
+    # This build takes a long time; particularly on slow architectures
+    timeout = 24 * 3600;
   };
 
 }
diff --git a/pkgs/development/ocaml-modules/base64/default.nix b/pkgs/development/ocaml-modules/base64/default.nix
index de0bc13e2833f..efb7f41b95dd3 100644
--- a/pkgs/development/ocaml-modules/base64/default.nix
+++ b/pkgs/development/ocaml-modules/base64/default.nix
@@ -1,20 +1,21 @@
-{ lib, fetchurl, buildDunePackage, alcotest, bos, dune-configurator }:
+{ lib, fetchurl, buildDunePackage, ocaml, alcotest, bos, rresult }:
 
 buildDunePackage rec {
   pname = "base64";
-  version = "3.4.0";
+  version = "3.5.0";
+
+  minimumOCamlVersion = "4.03";
 
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-base64/releases/download/v${version}/base64-v${version}.tbz";
-    sha256 = "0d0n5gd4nkdsz14jnxq13f1f7rzxmndg5xql039a8wfppmazd70w";
+    sha256 = "sha256-WJ3pwAV46/54QZismBjTWGxHSyMWts0+HEbMsfYq46Q=";
   };
 
-  buildInputs = [ bos dune-configurator ];
-
-  doCheck = true;
-  checkInputs = [ alcotest ];
+  # otherwise fmt breaks evaluation
+  doCheck = lib.versionAtLeast ocaml.version "4.05";
+  checkInputs = [ alcotest bos rresult ];
 
   meta = {
     homepage = "https://github.com/mirage/ocaml-base64";
diff --git a/pkgs/development/ocaml-modules/uucp/default.nix b/pkgs/development/ocaml-modules/uucp/default.nix
index 020b256c72f54..433e3f9cb1068 100644
--- a/pkgs/development/ocaml-modules/uucp/default.nix
+++ b/pkgs/development/ocaml-modules/uucp/default.nix
@@ -1,12 +1,15 @@
-{ lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, uchar, uutf, uunf }:
+{ lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, uchar, uutf, uunf, uucd }:
 
 let
   pname = "uucp";
-  version = "11.0.0";
+  version = "13.0.0";
   webpage = "https://erratique.ch/software/${pname}";
+  minimumOCamlVersion = "4.03";
+  doCheck = true;
 in
 
-assert lib.versionAtLeast ocaml.version "4.01";
+assert lib.assertMsg (lib.versionAtLeast ocaml.version minimumOCamlVersion)
+  "${pname} needs at least OCaml ${minimumOCamlVersion}";
 
 stdenv.mkDerivation {
 
@@ -14,17 +17,29 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "${webpage}/releases/${pname}-${version}.tbz";
-    sha256 = "0pidg2pmqsifmk4xx9cc5p5jprhg26xb68g1xddjm7sjzbdzhlm4";
+    sha256 = "sha256-OPpHbCOC/vMFdyHwyhCSisUv2PyO8xbeY2oq1a9HbqY=";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild topkg uutf uunf ];
 
   propagatedBuildInputs = [ uchar ];
 
-  buildPhase = "${topkg.buildPhase} --with-cmdliner false";
+  buildPhase = ''
+    runHook preBuild
+    ${topkg.buildPhase} --with-cmdliner false --tests ${lib.boolToString doCheck}
+    runHook postBuild
+  '';
 
   inherit (topkg) installPhase;
 
+  inherit doCheck;
+  checkPhase = ''
+    runHook preCheck
+    ${topkg.run} test
+    runHook postCheck
+  '';
+  checkInputs = [ uucd ];
+
   meta = with lib; {
     description = "An OCaml library providing efficient access to a selection of character properties of the Unicode character database";
     homepage = webpage;
diff --git a/pkgs/development/python-modules/configargparse/default.nix b/pkgs/development/python-modules/configargparse/default.nix
index d1dcce9699b3e..9b6e5da6263e7 100644
--- a/pkgs/development/python-modules/configargparse/default.nix
+++ b/pkgs/development/python-modules/configargparse/default.nix
@@ -1,20 +1,31 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "ConfigArgParse";
-  version = "1.2.3";
+  version = "1.3";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1p1pzpf5qpf80bfxsx1mbw9blyhhypjvhl3i60pbmhfmhvlpplgd";
+  src = fetchFromGitHub {
+    owner = "bw2";
+    repo = pname;
+    rev = version;
+    sha256 = "147x781lgahn9r3gbhayhx1pf0iysf7q1hnr3kypy3p2k9v7a9mh";
   };
 
-  # no tests in tarball
-  doCheck = false;
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "configargparse" ];
 
   meta = with lib; {
     description = "A drop-in replacement for argparse";
-    homepage = "https://github.com/zorro3/ConfigArgParse";
+    homepage = "https://github.com/bw2/ConfigArgParse";
     license = licenses.mit;
     maintainers = [ maintainers.willibutz ];
   };
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index 75f4908b63bce..d0ad132991f66 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "fonttools";
-  version = "4.19.1";
+  version = "4.20.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner  = pname;
     repo   = pname;
     rev    = version;
-    sha256 = "16jz3g4jzfdc43hs33b59vzd9m233qgflvy3ycdynifqk16lqsp2";
+    sha256 = "0yj83vsjh23g7gkmq6svbgc898x3qgygkhvpcbpycvmpwxxqxh1v";
   };
 
   # all dependencies are optional, but
diff --git a/pkgs/development/python-modules/modeled/default.nix b/pkgs/development/python-modules/modeled/default.nix
index 66fe63e3daf1c..acf8ee4c11232 100644
--- a/pkgs/development/python-modules/modeled/default.nix
+++ b/pkgs/development/python-modules/modeled/default.nix
@@ -24,9 +24,11 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook ];
 
+  pythonImportsCheck = [ "modeled" ];
+
   meta = with lib; {
     description = "Universal data modeling for Python";
-    homepage = "https://bitbucket.org/userzimmermann/python-modeled";
+    homepage = "https://github.com/modeled/modeled";
     license = licenses.lgpl3Only;
     maintainers = [ maintainers.costrouc ];
   };
diff --git a/pkgs/development/python-modules/python-engineio/3.nix b/pkgs/development/python-modules/python-engineio/3.nix
new file mode 100644
index 0000000000000..e4c71782f990b
--- /dev/null
+++ b/pkgs/development/python-modules/python-engineio/3.nix
@@ -0,0 +1,67 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, aiohttp
+, eventlet
+, iana-etc
+, libredirect
+, mock
+, requests
+, six
+, tornado
+, websocket_client
+, websockets
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "python-engineio";
+  version = "3.14.2";
+
+  src = fetchFromGitHub {
+    owner = "miguelgrinberg";
+    repo = "python-engineio";
+    rev = "v${version}";
+    sha256 = "1r3gvizrknbv036pvxid1l726wkb0l43bdaz5y879s7j3ipyb464";
+  };
+
+  propagatedBuildInputs = [
+    six
+  ];
+
+  checkInputs = [
+    aiohttp
+    eventlet
+    mock
+    requests
+    tornado
+    websocket_client
+    websockets
+    pytestCheckHook
+  ];
+
+  preCheck = lib.optionalString stdenv.isLinux ''
+    echo "nameserver 127.0.0.1" > resolv.conf
+    export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols:/etc/resolv.conf=$(realpath resolv.conf) \
+      LD_PRELOAD=${libredirect}/lib/libredirect.so
+  '';
+  postCheck = ''
+    unset NIX_REDIRECTS LD_PRELOAD
+  '';
+
+  # somehow effective log level does not change?
+  disabledTests = [ "test_logger" ];
+  pythonImportsCheck = [ "engineio" ];
+
+  meta = with lib; {
+    description = "Python based Engine.IO client and server v3.x";
+    longDescription = ''
+      Engine.IO is a lightweight transport protocol that enables real-time
+      bidirectional event-based communication between clients and a server.
+    '';
+    homepage = "https://github.com/miguelgrinberg/python-engineio/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ graham33 ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-socketio/4.nix b/pkgs/development/python-modules/python-socketio/4.nix
new file mode 100644
index 0000000000000..3a6f5d87fdd44
--- /dev/null
+++ b/pkgs/development/python-modules/python-socketio/4.nix
@@ -0,0 +1,47 @@
+{ lib
+, bidict
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, pytestCheckHook
+, python-engineio_3
+}:
+
+buildPythonPackage rec {
+  pname = "python-socketio";
+  version = "4.6.1";
+
+  src = fetchFromGitHub {
+    owner = "miguelgrinberg";
+    repo = "python-socketio";
+    rev = "v${version}";
+    sha256 = "14dijag17v84v0pp9qi89h5awb4h4i9rj0ppkixqv6is9z9lflw5";
+  };
+
+  propagatedBuildInputs = [
+    bidict
+    python-engineio_3
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "socketio" ];
+
+  # pytestCheckHook seems to change the default log level to WARNING, but the
+  # tests assert it is ERROR
+  disabledTests = [ "test_logger" ];
+
+  meta = with lib; {
+    description = "Python Socket.IO server and client 4.x";
+    longDescription = ''
+      Socket.IO is a lightweight transport protocol that enables real-time
+      bidirectional event-based communication between clients and a server.
+    '';
+    homepage = "https://github.com/miguelgrinberg/python-socketio/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ graham33 ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-socketio/default.nix b/pkgs/development/python-modules/python-socketio/default.nix
index e9c2ae146b09f..8eb58b244e145 100644
--- a/pkgs/development/python-modules/python-socketio/default.nix
+++ b/pkgs/development/python-modules/python-socketio/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
       Socket.IO is a lightweight transport protocol that enables real-time
       bidirectional event-based communication between clients and a server.
     '';
-    homepage = "https://github.com/miguelgrinberg/python-engineio/";
+    homepage = "https://github.com/miguelgrinberg/python-socketio/";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ mic92 ];
   };
diff --git a/pkgs/development/python-modules/robotframework-tools/default.nix b/pkgs/development/python-modules/robotframework-tools/default.nix
index 9b90b25bfb72f..5e8ca33fffba6 100644
--- a/pkgs/development/python-modules/robotframework-tools/default.nix
+++ b/pkgs/development/python-modules/robotframework-tools/default.nix
@@ -8,7 +8,7 @@
 , six
 , zetup
 , modeled
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -20,9 +20,7 @@ buildPythonPackage rec {
     sha256 = "0377ikajf6c3zcy3lc0kh4w9zmlqyplk2c2hb0yyc7h3jnfnya96";
   };
 
-  nativeBuildInputs = [
-    zetup
-  ];
+  nativeBuildInputs = [ zetup ];
 
   propagatedBuildInputs = [
     robotframework
@@ -32,19 +30,21 @@ buildPythonPackage rec {
     modeled
   ];
 
-  checkInputs = [
-    pytest
-  ];
-
-  checkPhase = ''
-    # tests require network
-    pytest test --ignore test/remote/test_remote.py
+  postPatch = ''
+    # Remove upstream's selfmade approach to collect the dependencies
+    # https://github.com/userzimmermann/robotframework-tools/issues/1
+    substituteInPlace setup.py --replace \
+      "setup_requires=SETUP_REQUIRES + (zfg.SETUP_REQUIRES or [])," ""
   '';
 
+  checkInputs = [ pytestCheckHook ];
+  pytestFlagsArray = [ "test" ];
+  pythonImportsCheck = [ "robottools" ];
+
   meta = with lib; {
     description = "Python Tools for Robot Framework and Test Libraries";
-    homepage = "https://bitbucket.org/userzimmermann/robotframework-tools";
-    license = licenses.gpl3;
+    homepage = "https://github.com/userzimmermann/robotframework-tools";
+    license = licenses.gpl3Plus;
     maintainers = [ maintainers.costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/uvloop/default.nix b/pkgs/development/python-modules/uvloop/default.nix
index 27f7b68fe89c6..1bc73a37734fe 100644
--- a/pkgs/development/python-modules/uvloop/default.nix
+++ b/pkgs/development/python-modules/uvloop/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "uvloop";
-  version = "0.15.0";
+  version = "0.15.1";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0rfhr84km8k5gj0036b2pznwmc8macx56vkxc3aksvns95dksl0s";
+    sha256 = "1p33xfzcy60qqca3rplzbh8h4x7x9l77vi6zbyy9md5z2a0q4ikq";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/zetup/default.nix b/pkgs/development/python-modules/zetup/default.nix
index 85e950b830e89..3862a8e757d1c 100644
--- a/pkgs/development/python-modules/zetup/default.nix
+++ b/pkgs/development/python-modules/zetup/default.nix
@@ -1,6 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi
-, setuptools_scm, pathpy, nbconvert
-, pytest }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, nbconvert
+, pathpy
+, pytestCheckHook
+, setuptools-scm
+}:
 
 buildPythonPackage rec {
   pname = "zetup";
@@ -11,18 +16,25 @@ buildPythonPackage rec {
     sha256 = "b8a9bdcfa4b705d72b55b218658bc9403c157db7b57a14158253c98d03ab713d";
   };
 
-  # Python 3.8 compatibility
+  # Python > 3.7 compatibility
   postPatch = ''
     substituteInPlace zetup/zetup_config.py \
-      --replace "'3.7']" "'3.7', '3.8']"
+      --replace "'3.7']" "'3.7', '3.8', '3.9', '3.10']"
   '';
 
   checkPhase = ''
     py.test test -k "not TestObject" --deselect=test/test_zetup_config.py::test_classifiers
   '';
 
-  checkInputs = [ pytest pathpy nbconvert ];
-  propagatedBuildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ setuptools-scm ];
+
+  checkInputs = [
+    pathpy
+    nbconvert
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "zetup" ];
 
   meta = with lib; {
     description = "Zimmermann's Extensible Tools for Unified Project setups";
diff --git a/pkgs/development/tools/chefdk/Gemfile b/pkgs/development/tools/chefdk/Gemfile
index 47451c66d27f8..0717cd32232b7 100644
--- a/pkgs/development/tools/chefdk/Gemfile
+++ b/pkgs/development/tools/chefdk/Gemfile
@@ -1,6 +1,6 @@
 source 'https://rubygems.org'
 
-gem 'chef-dk', '4.7.73'
+gem 'chef-dk', '4.13.3'
 gem 'pry'
 gem 'test-kitchen'
 gem 'inspec'
diff --git a/pkgs/development/tools/chefdk/Gemfile.lock b/pkgs/development/tools/chefdk/Gemfile.lock
index ce23018bd738d..1f71a4a713245 100644
--- a/pkgs/development/tools/chefdk/Gemfile.lock
+++ b/pkgs/development/tools/chefdk/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (5.2.4.1)
+    activesupport (5.2.4.5)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -9,166 +9,213 @@ GEM
     addressable (2.5.2)
       public_suffix (>= 2.0.2, < 4.0)
     app_conf (0.4.2)
-    ast (2.4.0)
-    aws-eventstream (1.0.3)
-    aws-partitions (1.275.0)
-    aws-sdk-apigateway (1.36.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    ast (2.4.2)
+    aws-eventstream (1.1.0)
+    aws-partitions (1.426.0)
+    aws-sdk-apigateway (1.59.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-apigatewayv2 (1.15.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-apigatewayv2 (1.31.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-athena (1.22.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-applicationautoscaling (1.49.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-autoscaling (1.22.0)
-      aws-sdk-core (~> 3, >= 3.52.1)
+    aws-sdk-athena (1.35.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-budgets (1.27.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-autoscaling (1.53.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudformation (1.30.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-batch (1.43.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudhsm (1.19.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-budgets (1.37.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudhsmv2 (1.20.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-cloudformation (1.47.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudtrail (1.20.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-cloudfront (1.48.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudwatch (1.32.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-cloudhsm (1.28.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudwatchlogs (1.28.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-cloudhsmv2 (1.32.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-codecommit (1.30.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-cloudtrail (1.33.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-codedeploy (1.27.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-cloudwatch (1.49.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-codepipeline (1.28.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-cloudwatchevents (1.40.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-configservice (1.40.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-cloudwatchlogs (1.39.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-core (3.90.1)
-      aws-eventstream (~> 1.0, >= 1.0.2)
+    aws-sdk-codecommit (1.41.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-codedeploy (1.38.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-codepipeline (1.40.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-cognitoidentity (1.29.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-cognitoidentityprovider (1.48.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-configservice (1.56.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-core (3.112.0)
+      aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.239.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-costandusagereportservice (1.18.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-costandusagereportservice (1.29.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-databasemigrationservice (1.50.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-dynamodb (1.59.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-ec2 (1.224.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-ecr (1.41.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-dynamodb (1.43.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-ecs (1.74.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-ec2 (1.144.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-efs (1.37.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-ecr (1.25.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-eks (1.47.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-ecs (1.57.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-elasticache (1.53.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-eks (1.31.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-elasticbeanstalk (1.41.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-elasticache (1.29.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-elasticloadbalancing (1.30.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-elasticbeanstalk (1.26.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-elasticloadbalancingv2 (1.59.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-elasticloadbalancing (1.19.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-elasticsearchservice (1.48.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-elasticloadbalancingv2 (1.39.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-firehose (1.36.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-elasticsearchservice (1.30.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-glue (1.82.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-firehose (1.24.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-guardduty (1.44.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-iam (1.33.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-iam (1.47.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kafka (1.17.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-kafka (1.34.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kinesis (1.20.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-kinesis (1.31.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kms (1.29.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-kms (1.42.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-lambda (1.36.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-lambda (1.59.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-organizations (1.17.0)
-      aws-sdk-core (~> 3, >= 3.39.0)
-      aws-sigv4 (~> 1.0)
-    aws-sdk-rds (1.78.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-organizations (1.55.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-redshift (1.37.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-ram (1.22.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-route53 (1.30.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-rds (1.112.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-route53domains (1.18.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-redshift (1.54.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-route53resolver (1.11.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-route53 (1.46.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.60.2)
-      aws-sdk-core (~> 3, >= 3.83.0)
+    aws-sdk-route53domains (1.29.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-route53resolver (1.23.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-s3 (1.88.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.1)
-    aws-sdk-securityhub (1.18.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
-      aws-sigv4 (~> 1.1)
-    aws-sdk-ses (1.27.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
-      aws-sigv4 (~> 1.1)
-    aws-sdk-sms (1.17.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
-      aws-sigv4 (~> 1.1)
-    aws-sdk-sns (1.21.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
-      aws-sigv4 (~> 1.1)
-    aws-sdk-sqs (1.23.1)
-      aws-sdk-core (~> 3, >= 3.71.0)
-      aws-sigv4 (~> 1.1)
-    aws-sdk-ssm (1.71.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
-      aws-sigv4 (~> 1.1)
-    aws-sigv4 (1.1.0)
-      aws-eventstream (~> 1.0, >= 1.0.2)
-    azure_graph_rbac (0.17.1)
-      ms_rest_azure (~> 0.11.0)
-    azure_mgmt_key_vault (0.17.5)
-      ms_rest_azure (~> 0.11.1)
-    azure_mgmt_resources (0.17.8)
-      ms_rest_azure (~> 0.11.1)
-    azure_mgmt_security (0.18.0)
-      ms_rest_azure (~> 0.11.1)
-    azure_mgmt_storage (0.19.2)
-      ms_rest_azure (~> 0.11.1)
-    backports (3.16.1)
-    bcrypt_pbkdf (1.0.1)
-    berkshelf (7.0.9)
-      chef (>= 13.6.52)
+    aws-sdk-secretsmanager (1.43.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-securityhub (1.40.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-servicecatalog (1.57.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-ses (1.37.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-shield (1.34.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-sms (1.28.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-sns (1.38.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-sqs (1.36.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-ssm (1.104.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-states (1.37.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-transfer (1.29.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sigv4 (1.2.2)
+      aws-eventstream (~> 1, >= 1.0.2)
+    azure_graph_rbac (0.17.2)
+      ms_rest_azure (~> 0.12.0)
+    azure_mgmt_key_vault (0.17.7)
+      ms_rest_azure (~> 0.12.0)
+    azure_mgmt_resources (0.18.1)
+      ms_rest_azure (~> 0.12.0)
+    azure_mgmt_security (0.19.0)
+      ms_rest_azure (~> 0.12.0)
+    azure_mgmt_storage (0.22.0)
+      ms_rest_azure (~> 0.12.0)
+    bcrypt_pbkdf (1.1.0)
+    berkshelf (7.1.0)
+      chef (>= 15.7.32)
       chef-config
       cleanroom (~> 1.0)
       concurrent-ruby (~> 1.0)
@@ -181,18 +228,18 @@ GEM
       solve (~> 4.0)
       thor (>= 0.20)
     builder (3.2.4)
-    chef (15.8.23)
+    chef (15.15.0)
       addressable
       bcrypt_pbkdf (~> 1.0)
       bundler (>= 1.10)
-      chef-config (= 15.8.23)
-      chef-utils (= 15.8.23)
+      chef-config (= 15.15.0)
+      chef-utils (= 15.15.0)
       chef-zero (>= 14.0.11)
       diff-lcs (~> 1.2, >= 1.2.4)
       ed25519 (~> 1.2)
       erubis (~> 2.7)
       ffi (~> 1.9, >= 1.9.25)
-      ffi-libarchive
+      ffi-libarchive (~> 1.0, >= 1.0.3)
       ffi-yajl (~> 2.2)
       highline (>= 1.6.9, < 2)
       iniparse (~> 1.4)
@@ -202,37 +249,37 @@ GEM
       mixlib-cli (>= 2.1.1, < 3.0)
       mixlib-log (>= 2.0.3, < 4.0)
       mixlib-shellout (>= 3.0.3, < 4.0)
-      net-sftp (~> 2.1, >= 2.1.2)
-      net-ssh (>= 4.2, < 6)
+      net-sftp (>= 2.1.2, < 4.0)
+      net-ssh (>= 4.2, < 7)
       net-ssh-multi (~> 1.2, >= 1.2.1)
       ohai (~> 15.0)
       plist (~> 3.2)
       proxifier (~> 1.0)
       syslog-logger (~> 1.6)
-      train-core (~> 3.1)
+      train-core (~> 3.2, >= 3.2.28)
       train-winrm (>= 0.2.5)
       tty-screen (~> 0.6)
       uuidtools (~> 2.1.5)
-    chef-cli (2.0.0)
-      addressable (>= 2.3.5, < 2.6)
-      chef (>= 14.0)
+    chef-cli (3.1.1)
+      addressable (>= 2.3.5, < 2.8)
+      chef (>= 15.0)
       cookbook-omnifetch (~> 0.5)
-      diff-lcs (~> 1.0)
+      diff-lcs (>= 1.0, < 1.4)
       ffi-yajl (>= 1.0, < 3.0)
-      license-acceptance (~> 1.0, >= 1.0.11)
+      license-acceptance (>= 1.0.11, < 3)
       minitar (~> 0.6)
       mixlib-cli (>= 1.7, < 3.0)
       mixlib-shellout (>= 2.0, < 4.0)
-      paint (~> 1.0)
+      pastel (~> 0.7)
       solve (> 2.0, < 5.0)
-    chef-config (15.8.23)
+    chef-config (15.15.0)
       addressable
-      chef-utils (= 15.8.23)
+      chef-utils (= 15.15.0)
       fuzzyurl
       mixlib-config (>= 2.2.12, < 4.0)
       mixlib-shellout (>= 2.0, < 4.0)
       tomlrb (~> 1.2)
-    chef-dk (4.7.73)
+    chef-dk (4.13.3)
       addressable (>= 2.3.5, < 2.6)
       chef (~> 15.0)
       cookbook-omnifetch (~> 0.5)
@@ -254,13 +301,12 @@ GEM
       winrm (~> 2.0)
       winrm-elevated (~> 1.0)
       winrm-fs (~> 1.0)
-    chef-telemetry (1.0.3)
+    chef-telemetry (1.0.14)
       chef-config
       concurrent-ruby (~> 1.0)
       ffi-yajl (~> 2.2)
-      http (~> 2.2)
-    chef-utils (15.8.23)
-    chef-vault (4.0.1)
+    chef-utils (15.15.0)
+    chef-vault (4.1.0)
     chef-zero (14.0.17)
       ffi-yajl (~> 2.2)
       hashie (>= 2.0, < 4.0)
@@ -270,51 +316,47 @@ GEM
     cheffish (14.0.13)
       chef-zero (~> 14.0)
       net-ssh
-    chefspec (9.1.0)
+    chefspec (9.2.1)
       chef (>= 14)
       chef-cli
       fauxhai-ng (>= 7.5)
       rspec (~> 3.0)
     cleanroom (1.0.0)
-    coderay (1.1.2)
-    concurrent-ruby (1.1.6)
-    cookbook-omnifetch (0.9.1)
+    coderay (1.1.3)
+    concurrent-ruby (1.1.8)
+    cookbook-omnifetch (0.11.1)
       mixlib-archive (>= 0.4, < 2.0)
-    cucumber-core (3.2.1)
-      backports (>= 3.8.0)
-      cucumber-tag_expressions (~> 1.1.0)
-      gherkin (~> 5.0)
-    cucumber-tag_expressions (1.1.1)
-    declarative (0.0.10)
+    declarative (0.0.20)
     declarative-option (0.1.0)
     diff-lcs (1.3)
-    diffy (3.3.0)
-    docker-api (1.34.2)
+    diffy (3.4.0)
+    docker-api (2.0.0)
       excon (>= 0.47.0)
       multi_json
     domain_name (0.5.20190701)
       unf (>= 0.0.5, < 1.0.0)
     ed25519 (1.2.4)
-    equatable (0.6.1)
-    erubi (1.9.0)
+    erubi (1.10.0)
     erubis (2.7.0)
-    excon (0.72.0)
-    faraday (0.17.3)
+    excon (0.79.0)
+    faraday (1.3.0)
+      faraday-net_http (~> 1.0)
       multipart-post (>= 1.2, < 3)
-    faraday-cookie_jar (0.0.6)
-      faraday (>= 0.7.4)
+      ruby2_keywords
+    faraday-cookie_jar (0.0.7)
+      faraday (>= 0.8.0)
       http-cookie (~> 1.0.0)
-    faraday_middleware (0.12.2)
-      faraday (>= 0.7.4, < 1.0)
-    fauxhai-ng (7.6.0)
+    faraday-net_http (1.0.1)
+    faraday_middleware (1.0.0)
+      faraday (~> 1.0)
+    fauxhai-ng (8.7.0)
       net-ssh
-    ffi (1.12.2)
-    ffi-libarchive (1.0.0)
+    ffi (1.14.2)
+    ffi-libarchive (1.0.17)
       ffi (~> 1.0)
-    ffi-yajl (2.3.3)
+    ffi-yajl (2.3.4)
       libyajl2 (~> 1.2)
-    foodcritic (16.2.0)
-      cucumber-core (>= 1.3, < 4.0)
+    foodcritic (16.3.0)
       erubis
       ffi-yajl (~> 2.0)
       nokogiri (>= 1.5, < 2.0)
@@ -322,138 +364,124 @@ GEM
       rufus-lru (~> 1.0)
       treetop (~> 1.4)
     fuzzyurl (0.9.0)
-    gherkin (5.1.0)
-    git (1.6.0)
+    git (1.8.1)
       rchardet (~> 1.8)
-    google-api-client (0.34.1)
+    google-api-client (0.52.0)
       addressable (~> 2.5, >= 2.5.1)
       googleauth (~> 0.9)
       httpclient (>= 2.8.1, < 3.0)
       mini_mime (~> 1.0)
       representable (~> 3.0)
       retriable (>= 2.0, < 4.0)
+      rexml
       signet (~> 0.12)
-    googleauth (0.10.0)
-      faraday (~> 0.12)
+    googleauth (0.14.0)
+      faraday (>= 0.17.3, < 2.0)
       jwt (>= 1.4, < 3.0)
       memoist (~> 0.16)
       multi_json (~> 1.11)
       os (>= 0.9, < 2.0)
-      signet (~> 0.12)
-    gssapi (1.3.0)
+      signet (~> 0.14)
+    gssapi (1.3.1)
       ffi (>= 1.0.1)
     gyoku (1.3.1)
       builder (>= 2.1.2)
     hashie (3.6.0)
     highline (1.7.10)
-    htmlentities (4.3.4)
-    http (2.2.2)
-      addressable (~> 2.3)
-      http-cookie (~> 1.0)
-      http-form_data (~> 1.0.1)
-      http_parser.rb (~> 0.6.0)
     http-cookie (1.0.3)
       domain_name (~> 0.5)
-    http-form_data (1.0.3)
-    http_parser.rb (0.6.0)
     httpclient (2.8.3)
-    i18n (1.8.2)
+    i18n (1.8.8)
       concurrent-ruby (~> 1.0)
     inifile (3.0.0)
-    iniparse (1.4.4)
-    inspec (4.18.85)
-      faraday_middleware (~> 0.12.2)
-      inspec-core (= 4.18.85)
+    iniparse (1.5.0)
+    inspec (4.26.4)
+      faraday_middleware (>= 0.12.2, < 1.1)
+      inspec-core (= 4.26.4)
       train (~> 3.0)
       train-aws (~> 0.1)
       train-habitat (~> 0.1)
       train-winrm (~> 0.2)
-    inspec-core (4.18.85)
+    inspec-core (4.26.4)
       addressable (~> 2.4)
       chef-telemetry (~> 1.0)
-      faraday (>= 0.9.0)
-      hashie (~> 3.4)
-      htmlentities (~> 4.3)
-      json-schema (~> 2.8)
-      license-acceptance (>= 0.2.13, < 2.0)
-      method_source (~> 0.8)
+      faraday (>= 0.9.0, < 1.4)
+      faraday_middleware (~> 1.0)
+      hashie (>= 3.4, < 5.0)
+      license-acceptance (>= 0.2.13, < 3.0)
+      method_source (>= 0.8, < 2.0)
       mixlib-log (~> 3.0)
       multipart-post (~> 2.0)
       parallel (~> 1.9)
-      parslet (~> 1.5)
-      pry (~> 0)
-      rspec (~> 3.9)
+      parslet (>= 1.5, < 2.0)
+      pry (~> 0.13)
+      rspec (>= 3.9, < 3.11)
       rspec-its (~> 1.2)
-      rubyzip (~> 1.2, >= 1.2.2)
+      rubyzip (>= 1.2.2, < 3.0)
       semverse (~> 3.0)
       sslshake (~> 1.2)
-      term-ansicolor (~> 1.7)
       thor (>= 0.20, < 2.0)
-      tomlrb (~> 1.2)
+      tomlrb (>= 1.2, < 2.1)
       train-core (~> 3.0)
       tty-prompt (~> 0.17)
       tty-table (~> 0.10)
     ipaddress (0.8.3)
-    jaro_winkler (1.5.4)
     jmespath (1.4.0)
-    json (2.3.0)
-    json-schema (2.8.1)
-      addressable (>= 2.4)
-    jwt (2.2.1)
-    kitchen-inspec (1.3.1)
-      hashie (~> 3.4)
-      inspec (>= 1.47, < 5.0)
-      test-kitchen (>= 1.6, < 3)
-    kitchen-vagrant (1.6.1)
+    json (2.5.1)
+    jwt (2.2.2)
+    kitchen-inspec (2.3.0)
+      hashie (>= 3.4, <= 5.0)
+      inspec (>= 2.2.64, < 5.0)
+      test-kitchen (>= 2.7, < 3)
+    kitchen-vagrant (1.8.0)
       test-kitchen (>= 1.4, < 3)
-    knife-spork (1.7.2)
+    knife-spork (1.7.3)
       app_conf (>= 0.4.0)
       chef (>= 11.0.0)
       diffy (>= 3.0.1)
       git (>= 1.2.5)
     libyajl2 (1.2.0)
-    license-acceptance (1.0.13)
+    license-acceptance (1.0.19)
       pastel (~> 0.7)
       tomlrb (~> 1.2)
       tty-box (~> 0.3)
       tty-prompt (~> 0.18)
     little-plugger (1.1.4)
-    logging (2.2.2)
+    logging (2.3.0)
       little-plugger (~> 1.1)
-      multi_json (~> 1.10)
+      multi_json (~> 1.14)
     memoist (0.16.2)
-    method_source (0.9.2)
+    method_source (1.0.0)
     mini_mime (1.0.2)
-    mini_portile2 (2.4.0)
+    mini_portile2 (2.5.0)
     minitar (0.9)
-    minitest (5.14.0)
-    mixlib-archive (1.0.5)
+    minitest (5.14.3)
+    mixlib-archive (1.1.4)
       mixlib-log
-    mixlib-authentication (3.0.6)
-    mixlib-cli (2.1.5)
-    mixlib-config (3.0.6)
+    mixlib-authentication (3.0.7)
+    mixlib-cli (2.1.8)
+    mixlib-config (3.0.9)
       tomlrb
-    mixlib-install (3.11.26)
+    mixlib-install (3.12.5)
       mixlib-shellout
       mixlib-versioning
       thor
-    mixlib-log (3.0.8)
-    mixlib-shellout (3.0.9)
+    mixlib-log (3.0.9)
+    mixlib-shellout (3.2.2)
+      chef-utils
     mixlib-versioning (1.2.12)
-    molinillo (0.6.6)
-    ms_rest (0.7.5)
+    molinillo (0.7.0)
+    ms_rest (0.7.6)
       concurrent-ruby (~> 1.0)
-      faraday (~> 0.9)
+      faraday (>= 0.9, < 2.0.0)
       timeliness (~> 0.3.10)
-    ms_rest_azure (0.11.1)
+    ms_rest_azure (0.12.0)
       concurrent-ruby (~> 1.0)
-      faraday (~> 0.9)
+      faraday (>= 0.9, < 2.0.0)
       faraday-cookie_jar (~> 0.0.6)
-      ms_rest (~> 0.7.4)
-      unf_ext (= 0.0.7.2)
-    multi_json (1.14.1)
+      ms_rest (~> 0.7.6)
+    multi_json (1.15.0)
     multipart-post (2.1.1)
-    necromancer (0.5.1)
     net-scp (1.2.1)
       net-ssh (>= 2.6.5)
     net-sftp (2.1.2)
@@ -464,13 +492,14 @@ GEM
     net-ssh-multi (1.2.1)
       net-ssh (>= 2.6.5)
       net-ssh-gateway (>= 1.2.0)
-    nokogiri (1.10.8)
-      mini_portile2 (~> 2.4.0)
+    nokogiri (1.11.1)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
     nori (2.6.0)
-    octokit (4.16.0)
+    octokit (4.20.0)
       faraday (>= 0.9)
       sawyer (~> 0.8.0, >= 0.5.3)
-    ohai (15.7.4)
+    ohai (15.12.0)
       chef-config (>= 12.8, < 16)
       ffi (~> 1.9)
       ffi-yajl (~> 2.2)
@@ -482,26 +511,27 @@ GEM
       plist (~> 3.1)
       systemu (~> 2.6.4)
       wmi-lite (~> 1.0)
-    os (1.0.1)
+    os (1.1.1)
     paint (1.0.1)
-    parallel (1.19.1)
-    parser (2.7.0.2)
-      ast (~> 2.4.0)
+    parallel (1.20.1)
+    parser (3.0.0.0)
+      ast (~> 2.4.1)
     parslet (1.8.2)
-    pastel (0.7.3)
-      equatable (~> 0.6)
+    pastel (0.8.0)
       tty-color (~> 0.5)
-    plist (3.5.0)
+    plist (3.6.0)
     polyglot (0.3.5)
     proxifier (1.0.3)
-    pry (0.12.2)
-      coderay (~> 1.1.0)
-      method_source (~> 0.9.0)
+    pry (0.14.0)
+      coderay (~> 1.1)
+      method_source (~> 1.0)
     public_suffix (3.1.1)
-    rack (2.2.2)
+    racc (1.5.2)
+    rack (2.2.3)
     rainbow (3.0.0)
-    rake (13.0.1)
+    rake (13.0.3)
     rchardet (1.8.0)
+    regexp_parser (2.0.3)
     representable (3.0.4)
       declarative (< 0.1.0)
       declarative-option (< 0.2.0)
@@ -509,110 +539,118 @@ GEM
     retriable (3.1.2)
     retryable (3.0.5)
     rexml (3.2.4)
-    rspec (3.9.0)
-      rspec-core (~> 3.9.0)
-      rspec-expectations (~> 3.9.0)
-      rspec-mocks (~> 3.9.0)
-    rspec-core (3.9.1)
-      rspec-support (~> 3.9.1)
-    rspec-expectations (3.9.0)
+    rspec (3.10.0)
+      rspec-core (~> 3.10.0)
+      rspec-expectations (~> 3.10.0)
+      rspec-mocks (~> 3.10.0)
+    rspec-core (3.10.1)
+      rspec-support (~> 3.10.0)
+    rspec-expectations (3.10.1)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.9.0)
+      rspec-support (~> 3.10.0)
     rspec-its (1.3.0)
       rspec-core (>= 3.0.0)
       rspec-expectations (>= 3.0.0)
-    rspec-mocks (3.9.1)
+    rspec-mocks (3.10.2)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.9.0)
-    rspec-support (3.9.2)
-    rubocop (0.80.0)
-      jaro_winkler (~> 1.5.1)
+      rspec-support (~> 3.10.0)
+    rspec-support (3.10.2)
+    rubocop (1.9.1)
       parallel (~> 1.10)
-      parser (>= 2.7.0.1)
+      parser (>= 3.0.0.0)
       rainbow (>= 2.2.2, < 4.0)
+      regexp_parser (>= 1.8, < 3.0)
       rexml
+      rubocop-ast (>= 1.2.0, < 2.0)
       ruby-progressbar (~> 1.7)
-      unicode-display_width (>= 1.4.0, < 1.7)
-    ruby-progressbar (1.10.1)
-    rubyntlm (0.6.2)
-    rubyzip (1.3.0)
+      unicode-display_width (>= 1.4.0, < 3.0)
+    rubocop-ast (1.4.1)
+      parser (>= 2.7.1.5)
+    ruby-progressbar (1.11.0)
+    ruby2_keywords (0.0.4)
+    rubyntlm (0.6.3)
+    rubyzip (2.3.0)
     rufus-lru (1.1.0)
     sawyer (0.8.2)
       addressable (>= 2.3.5)
       faraday (> 0.8, < 2.0)
     semverse (3.0.0)
-    signet (0.12.0)
+    signet (0.14.1)
       addressable (~> 2.3)
-      faraday (~> 0.9)
+      faraday (>= 0.17.3, < 2.0)
       jwt (>= 1.5, < 3.0)
       multi_json (~> 1.10)
-    solve (4.0.3)
+    solve (4.0.4)
       molinillo (~> 0.6)
       semverse (>= 1.1, < 4.0)
-    sslshake (1.3.0)
-    strings (0.1.8)
-      strings-ansi (~> 0.1)
+    sslshake (1.3.1)
+    strings (0.2.0)
+      strings-ansi (~> 0.2)
       unicode-display_width (~> 1.5)
       unicode_utils (~> 1.4)
     strings-ansi (0.2.0)
-    sync (0.5.0)
     syslog-logger (1.6.8)
     systemu (2.6.5)
-    term-ansicolor (1.7.1)
-      tins (~> 1.0)
-    test-kitchen (2.3.4)
+    test-kitchen (2.10.0)
       bcrypt_pbkdf (~> 1.0)
       ed25519 (~> 1.2)
-      license-acceptance (~> 1.0, >= 1.0.11)
+      license-acceptance (>= 1.0.11, < 3.0)
       mixlib-install (~> 3.6)
       mixlib-shellout (>= 1.2, < 4.0)
-      net-scp (>= 1.1, < 3.0)
-      net-ssh (>= 2.9, < 6.0)
+      net-scp (>= 1.1, < 4.0)
+      net-ssh (>= 2.9, < 7.0)
       net-ssh-gateway (>= 1.2, < 3.0)
-      thor (~> 0.19)
+      thor (>= 0.19, < 2.0)
       winrm (~> 2.0)
       winrm-elevated (~> 1.0)
       winrm-fs (~> 1.1)
-    thor (0.20.3)
+    thor (1.1.0)
     thread_safe (0.3.6)
     timeliness (0.3.10)
-    tins (1.24.1)
-      sync
-    tomlrb (1.2.9)
-    train (3.2.22)
-      activesupport (~> 5.2.3)
+    tomlrb (1.3.0)
+    train (3.4.9)
+      activesupport (>= 5.2.4.3, < 6.0.0)
       azure_graph_rbac (~> 0.16)
       azure_mgmt_key_vault (~> 0.17)
       azure_mgmt_resources (~> 0.15)
       azure_mgmt_security (~> 0.18)
       azure_mgmt_storage (~> 0.18)
-      docker-api (~> 1.26)
-      google-api-client (>= 0.23.9, < 0.35.0)
-      googleauth (>= 0.6.6, < 0.11.0)
-      train-core (= 3.2.22)
+      docker-api (>= 1.26, < 3.0)
+      google-api-client (>= 0.23.9, <= 0.52.0)
+      googleauth (>= 0.6.6, <= 0.14.0)
+      inifile (~> 3.0)
+      train-core (= 3.4.9)
       train-winrm (~> 0.2)
-    train-aws (0.1.15)
+    train-aws (0.1.35)
       aws-sdk-apigateway (~> 1.0)
       aws-sdk-apigatewayv2 (~> 1.0)
+      aws-sdk-applicationautoscaling (>= 1.46, < 1.50)
       aws-sdk-athena (~> 1.0)
-      aws-sdk-autoscaling (~> 1.22.0)
+      aws-sdk-autoscaling (>= 1.22, < 1.54)
+      aws-sdk-batch (>= 1.36, < 1.44)
       aws-sdk-budgets (~> 1.0)
       aws-sdk-cloudformation (~> 1.0)
+      aws-sdk-cloudfront (~> 1.0)
       aws-sdk-cloudhsm (~> 1.0)
       aws-sdk-cloudhsmv2 (~> 1.0)
       aws-sdk-cloudtrail (~> 1.8)
       aws-sdk-cloudwatch (~> 1.13)
+      aws-sdk-cloudwatchevents (>= 1.36, < 1.41)
       aws-sdk-cloudwatchlogs (~> 1.13)
       aws-sdk-codecommit (~> 1.0)
       aws-sdk-codedeploy (~> 1.0)
       aws-sdk-codepipeline (~> 1.0)
+      aws-sdk-cognitoidentity (>= 1.26, < 1.30)
+      aws-sdk-cognitoidentityprovider (>= 1.46, < 1.49)
       aws-sdk-configservice (~> 1.21)
       aws-sdk-core (~> 3.0)
       aws-sdk-costandusagereportservice (~> 1.6)
+      aws-sdk-databasemigrationservice (>= 1.42, < 1.51)
       aws-sdk-dynamodb (~> 1.31)
       aws-sdk-ec2 (~> 1.70)
       aws-sdk-ecr (~> 1.18)
       aws-sdk-ecs (~> 1.30)
+      aws-sdk-efs (~> 1.0)
       aws-sdk-eks (~> 1.9)
       aws-sdk-elasticache (~> 1.0)
       aws-sdk-elasticbeanstalk (~> 1.0)
@@ -620,68 +658,74 @@ GEM
       aws-sdk-elasticloadbalancingv2 (~> 1.0)
       aws-sdk-elasticsearchservice (~> 1.0)
       aws-sdk-firehose (~> 1.0)
+      aws-sdk-glue (>= 1.71, < 1.83)
+      aws-sdk-guardduty (~> 1.31)
       aws-sdk-iam (~> 1.13)
       aws-sdk-kafka (~> 1.0)
       aws-sdk-kinesis (~> 1.0)
       aws-sdk-kms (~> 1.13)
       aws-sdk-lambda (~> 1.0)
-      aws-sdk-organizations (~> 1.17.0)
+      aws-sdk-organizations (>= 1.17, < 1.56)
+      aws-sdk-ram (>= 1.21, < 1.23)
       aws-sdk-rds (~> 1.43)
       aws-sdk-redshift (~> 1.0)
       aws-sdk-route53 (~> 1.0)
       aws-sdk-route53domains (~> 1.0)
       aws-sdk-route53resolver (~> 1.0)
       aws-sdk-s3 (~> 1.30)
+      aws-sdk-secretsmanager (>= 1.42, < 1.44)
       aws-sdk-securityhub (~> 1.0)
+      aws-sdk-servicecatalog (>= 1.48, < 1.58)
       aws-sdk-ses (~> 1.0)
+      aws-sdk-shield (~> 1.30)
       aws-sdk-sms (~> 1.0)
       aws-sdk-sns (~> 1.9)
       aws-sdk-sqs (~> 1.10)
       aws-sdk-ssm (~> 1.0)
-    train-core (3.2.22)
+      aws-sdk-states (>= 1.35, < 1.38)
+      aws-sdk-transfer (>= 1.26, < 1.30)
+    train-core (3.4.9)
       addressable (~> 2.5)
-      inifile (~> 3.0)
+      ffi (!= 1.13.0)
       json (>= 1.8, < 3.0)
       mixlib-shellout (>= 2.0, < 4.0)
-      net-scp (>= 1.2, < 3.0)
-      net-ssh (>= 2.9, < 6.0)
-    train-habitat (0.2.13)
-    train-winrm (0.2.6)
-      winrm (~> 2.0)
+      net-scp (>= 1.2, < 4.0)
+      net-ssh (>= 2.9, < 7.0)
+    train-habitat (0.2.22)
+    train-winrm (0.2.12)
+      winrm (>= 2.3.6, < 3.0)
+      winrm-elevated (~> 1.2.2)
       winrm-fs (~> 1.0)
-    treetop (1.6.10)
+    treetop (1.6.11)
       polyglot (~> 0.3)
-    tty-box (0.5.0)
-      pastel (~> 0.7.2)
-      strings (~> 0.1.6)
+    tty-box (0.7.0)
+      pastel (~> 0.8)
+      strings (~> 0.2.0)
       tty-cursor (~> 0.7)
-    tty-color (0.5.1)
+    tty-color (0.6.0)
     tty-cursor (0.7.1)
-    tty-prompt (0.20.0)
-      necromancer (~> 0.5.0)
-      pastel (~> 0.7.0)
-      tty-reader (~> 0.7.0)
-    tty-reader (0.7.0)
+    tty-prompt (0.23.0)
+      pastel (~> 0.8)
+      tty-reader (~> 0.8)
+    tty-reader (0.9.0)
       tty-cursor (~> 0.7)
-      tty-screen (~> 0.7)
-      wisper (~> 2.0.0)
-    tty-screen (0.7.1)
-    tty-table (0.11.0)
-      equatable (~> 0.6)
-      necromancer (~> 0.5)
-      pastel (~> 0.7.2)
-      strings (~> 0.1.5)
-      tty-screen (~> 0.7)
-    tzinfo (1.2.6)
+      tty-screen (~> 0.8)
+      wisper (~> 2.0)
+    tty-screen (0.8.1)
+    tty-table (0.12.0)
+      pastel (~> 0.8)
+      strings (~> 0.2.0)
+      tty-screen (~> 0.8)
+    tzinfo (1.2.9)
       thread_safe (~> 0.1)
     uber (0.1.0)
     unf (0.1.4)
       unf_ext
-    unf_ext (0.0.7.2)
-    unicode-display_width (1.6.1)
+    unf_ext (0.0.7.7)
+    unicode-display_width (1.7.0)
     unicode_utils (1.4.0)
     uuidtools (2.1.5)
-    winrm (2.3.4)
+    winrm (2.3.6)
       builder (>= 2.1.2)
       erubi (~> 1.8)
       gssapi (~> 1.2)
@@ -689,15 +733,15 @@ GEM
       httpclient (~> 2.2, >= 2.2.0.2)
       logging (>= 1.6.1, < 3.0)
       nori (~> 2.0)
-      rubyntlm (~> 0.6.0, >= 0.6.1)
-    winrm-elevated (1.2.1)
+      rubyntlm (~> 0.6.0, >= 0.6.3)
+    winrm-elevated (1.2.3)
       erubi (~> 1.8)
       winrm (~> 2.0)
       winrm-fs (~> 1.0)
-    winrm-fs (1.3.3)
+    winrm-fs (1.3.5)
       erubi (~> 1.8)
       logging (>= 1.6.1, < 3.0)
-      rubyzip (~> 1.1)
+      rubyzip (~> 2.0)
       winrm (~> 2.0)
     wisper (2.0.1)
     wmi-lite (1.0.5)
@@ -707,7 +751,7 @@ PLATFORMS
 
 DEPENDENCIES
   berkshelf
-  chef-dk (= 4.7.73)
+  chef-dk (= 4.13.3)
   chef-provisioning
   chef-vault
   chefspec
diff --git a/pkgs/development/tools/chefdk/default.nix b/pkgs/development/tools/chefdk/default.nix
index 1a5f6c8626ade..6a1470e107497 100644
--- a/pkgs/development/tools/chefdk/default.nix
+++ b/pkgs/development/tools/chefdk/default.nix
@@ -1,7 +1,7 @@
 { lib, bundlerEnv, bundlerUpdateScript, ruby, perl, autoconf }:
 
 bundlerEnv {
-  name = "chef-dk-4.7.73";
+  name = "chef-dk-4.13.3";
 
   inherit ruby;
   gemdir = ./.;
diff --git a/pkgs/development/tools/chefdk/gemset.nix b/pkgs/development/tools/chefdk/gemset.nix
index 1f9522ba4c57f..14c81742cd2a7 100644
--- a/pkgs/development/tools/chefdk/gemset.nix
+++ b/pkgs/development/tools/chefdk/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lmlnx79sv18xv1ddm4vq7z3mwdfa4468mq5186av0k8n1k471sp";
+      sha256 = "0fp4gr3g25qgl01y3pd88wfh4pjc5zj3bz4v7rkxxwaxdjg7a9cc";
       type = "gem";
     };
-    version = "5.2.4.1";
+    version = "5.2.4.5";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -36,30 +36,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+      sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.4.2";
   };
   aws-eventstream = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "100g77a5ixg4p5zwq77f28n2pdkk0y481f7v83qrlmnj22318qq6";
+      sha256 = "0r0pn66yqrdkrfdin7qdim0yj2x75miyg4wp6mijckhzhrjb7cv5";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.1.0";
   };
   aws-partitions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bkzzk4mxsxvnd8sr5xx57vc29j69h48gj2g24fzjn7ika6az18z";
+      sha256 = "0nrqbbzykj9ckri3ci1wsksy8rhz13rigm3aznxy08gqvzv7bcy9";
       type = "gem";
     };
-    version = "1.275.0";
+    version = "1.426.0";
   };
   aws-sdk-apigateway = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -67,10 +67,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "106wn66gnn1rk9z4w84iwqb26wbyz3i2q9ck3xxabc47ly9mj03m";
+      sha256 = "15vwm6a18v1xqfpn2ipx1h5wqwd5yipgp624p4pkchcdqacb7gvm";
       type = "gem";
     };
-    version = "1.36.0";
+    version = "1.59.0";
   };
   aws-sdk-apigatewayv2 = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -78,10 +78,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x9qaxi1614pfp9hy5ywk7y76gfmk5d0iz6lj9p9qy92gfzx169c";
+      sha256 = "171v0xng5h6hk1nqrivv49rpz1f4jhj2lhq3pxk5izx3q1lf7rc7";
       type = "gem";
     };
-    version = "1.15.0";
+    version = "1.31.0";
+  };
+  aws-sdk-applicationautoscaling = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01zldlqn573bmlpg7qm562cy9miyrirzknagjbnzs4iwjnm4rgn4";
+      type = "gem";
+    };
+    version = "1.49.0";
   };
   aws-sdk-athena = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -89,10 +100,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hvskqq406vh9xa29jzyjhfpf6m834872p87a2j0ly5kh4ydldkz";
+      sha256 = "0lmbchjn30rpk311q2z5g8j96g5mi8hajc3fbzh3nam7wj4hmdbn";
       type = "gem";
     };
-    version = "1.22.0";
+    version = "1.35.0";
   };
   aws-sdk-autoscaling = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -100,10 +111,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jrz4brxbi8rxqk1jg5wcdsa1knfrgzrmx9dygfzbfi2szcfmbhv";
+      sha256 = "1vkfybjdmxn7hwsywfgkcr8mms88l4v6kwj29c8qr2k7ds4l4bsn";
       type = "gem";
     };
-    version = "1.22.0";
+    version = "1.53.0";
+  };
+  aws-sdk-batch = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14q0b84qa5mc24nw1fqns822wkg1gvlwvwbia1m7bzzmj98maikw";
+      type = "gem";
+    };
+    version = "1.43.0";
   };
   aws-sdk-budgets = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -111,10 +133,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xxgldgin1gavz7w37pmsxrhiwr8bvssjgv3lwzbwdsjqk0jd0f3";
+      sha256 = "0lm7m09fp5jlranzv1hfc3xv8fn6bmw2g3kwjsj6r094qi3nyp42";
       type = "gem";
     };
-    version = "1.27.0";
+    version = "1.37.0";
   };
   aws-sdk-cloudformation = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -122,10 +144,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bxipaq1g6c5g8zirqlbq74kmy8fglavhyrxyd91sy9yj2d9q26r";
+      sha256 = "09lcq8gpi4x7xvwy8njmbcbbgyrq6xsfbyc7hwj3m4dps9f116gw";
       type = "gem";
     };
-    version = "1.30.0";
+    version = "1.47.0";
+  };
+  aws-sdk-cloudfront = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w70d8wv5cb8p5wpyq828fjrccz0xxbvg5sk66bmwq0zjcxnvpb6";
+      type = "gem";
+    };
+    version = "1.48.0";
   };
   aws-sdk-cloudhsm = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -133,10 +166,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "096dpm87k0q1kqnvf5v0sb98gdsq41390pxvs014qphqycqjchc6";
+      sha256 = "0a4imw0rahd6bh4clcwxkcvl4lf8pmyba1sjlc1hx37jv641wlqf";
       type = "gem";
     };
-    version = "1.19.0";
+    version = "1.28.0";
   };
   aws-sdk-cloudhsmv2 = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -144,10 +177,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10cyc1brjppnkmynkb3qf7ar78a4dhngg3fmmfxnxlcrigwbrxpa";
+      sha256 = "13kdq0xnbgrvi9f9jqrig453bc5mf7by3cjcdd8jsv8aay0gqads";
       type = "gem";
     };
-    version = "1.20.0";
+    version = "1.32.0";
   };
   aws-sdk-cloudtrail = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -155,10 +188,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "034psp0g7ab9al7389y64pr2ar2jvxsg6p1djj4w53700xrj602g";
+      sha256 = "083nld91s8klfr2p0mwrdlx4lgiig9kx0cikiqrifd30lbja51wg";
       type = "gem";
     };
-    version = "1.20.0";
+    version = "1.33.0";
   };
   aws-sdk-cloudwatch = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -166,10 +199,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jvjjlcyp1sx0gsgm82h84n32sb51m8ih53ab4qq94m9jcxk49cr";
+      sha256 = "1vsb01nw85sk3zsdyw5ix0yw3n81xjhj4h0431qm60mdg9akgbs4";
       type = "gem";
     };
-    version = "1.32.0";
+    version = "1.49.0";
+  };
+  aws-sdk-cloudwatchevents = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14hhy8zbyn5x2660pg5aq02lni69clx3y7rkvzqrldcy0482863y";
+      type = "gem";
+    };
+    version = "1.40.0";
   };
   aws-sdk-cloudwatchlogs = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -177,10 +221,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bhnlh3skqw3l2yfr6nd97arlcmijpm51k664m51l5xw2971bc51";
+      sha256 = "0aravrxjnp886kaag037z45xiyfr75gz0p4psjq9x3qj6gzsjn8y";
       type = "gem";
     };
-    version = "1.28.0";
+    version = "1.39.0";
   };
   aws-sdk-codecommit = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -188,10 +232,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00mkgfywxqzbbin2qidx4qvb5xcjjl41v6am023bl2yww5x8hi5p";
+      sha256 = "1cb1bqlf3kh8akll1xybrn314ngk62jqhpli99kdjq27hxir5jq2";
       type = "gem";
     };
-    version = "1.30.0";
+    version = "1.41.0";
   };
   aws-sdk-codedeploy = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -199,10 +243,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06m5i5g2j2yylksficbla25cjsdw42y5gbzmx5ycxvxz3c4n3qh1";
+      sha256 = "117rv0hx77kyhz9zm1fqbxdbk3lhyxcbibwn27nyafch6sl1x2j4";
       type = "gem";
     };
-    version = "1.27.0";
+    version = "1.38.0";
   };
   aws-sdk-codepipeline = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -210,10 +254,32 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09dkyclanvxz77hh933ph2ad4yh7midy09hbprszfikhfkvi4z2m";
+      sha256 = "0xdkc3xmff901bjfsyg454dn27gfr6nzvgkia0kngdzgq6x4xb45";
       type = "gem";
     };
-    version = "1.28.0";
+    version = "1.40.0";
+  };
+  aws-sdk-cognitoidentity = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "122i3g320ccaqg541kzb0pawiz61zyphvbwnkv5rlqpwspca1m3b";
+      type = "gem";
+    };
+    version = "1.29.0";
+  };
+  aws-sdk-cognitoidentityprovider = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m09dxwyw01vh9rksz8dwdx36vsr8f7p5qmjmvfazjapzv3q6qmn";
+      type = "gem";
+    };
+    version = "1.48.0";
   };
   aws-sdk-configservice = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -221,10 +287,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gjw5jv4p9zhdh4cg982x7x3lpfhgi7an14gjwz1llxmmkzv15wr";
+      sha256 = "1msdg1gpq9y9maf2fdljcp2vbydbjqfk07ff9j532bvikax0qmfy";
       type = "gem";
     };
-    version = "1.40.0";
+    version = "1.56.0";
   };
   aws-sdk-core = {
     dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
@@ -232,10 +298,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q7f9jkpmpppj31kh3wnzybkphq4piy8ays3vld0zsibfjs9iw7i";
+      sha256 = "15lynby6r91p9hh5h92pg4jr8xgnjr52px5ax0p0wncdw4vz0skp";
       type = "gem";
     };
-    version = "3.90.1";
+    version = "3.112.0";
   };
   aws-sdk-costandusagereportservice = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -243,10 +309,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18yzz7av4z8qh321r0ih6m5lc1x4mh10pn67z6y70ny8syxm4kl6";
+      sha256 = "1dzbh8xf8j466gwrawmprwclslvd8sqlzzzxpzyxv4y9m09bhypk";
       type = "gem";
     };
-    version = "1.18.0";
+    version = "1.29.0";
+  };
+  aws-sdk-databasemigrationservice = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vd4a5z1q282xx7717f542yavb6x13fli64rhwnc143xij4izgpn";
+      type = "gem";
+    };
+    version = "1.50.0";
   };
   aws-sdk-dynamodb = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -254,10 +331,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06nbf297r85ix92x9ilx8ysz67sm59mprscmmdp4rsn74v78dzaj";
+      sha256 = "19k3iznglnwwgqd95i5zmim41c98l8ydf6ih9am50gs0n6bky41q";
       type = "gem";
     };
-    version = "1.43.0";
+    version = "1.59.0";
   };
   aws-sdk-ec2 = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -265,10 +342,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wnql5rzwkn97w4l3pq6k97grqdci1qs7h132pnd6lc3bx62v4h5";
+      sha256 = "1lg8vh124viba77b0qhi5j8xx8b4wxdiyycl4kaawmddwhr33zx9";
       type = "gem";
     };
-    version = "1.144.0";
+    version = "1.224.0";
   };
   aws-sdk-ecr = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -276,10 +353,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1smq30avqjq6h4yvw9h0k2gwp97c4l4868f2vdj93l84i80gh1pi";
+      sha256 = "0di8s9dpyzal5n2qpx8l3jnbkm72h6kz759l04kxfapgzd5ppwhv";
       type = "gem";
     };
-    version = "1.25.0";
+    version = "1.41.0";
   };
   aws-sdk-ecs = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -287,10 +364,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "113kwczkqr4jsyrnnxkm0kpdqs3ysc0913nclb5mdwapd5dbq3br";
+      sha256 = "0qilim7dm5hc4knhvz9090hzbmlrd24m5fywj9kr60fvhgnm0wf0";
       type = "gem";
     };
-    version = "1.57.0";
+    version = "1.74.0";
+  };
+  aws-sdk-efs = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03bf0g1nky772r4xz3w6nvpf09wf1096qifd0i8hgzp7cwirbmby";
+      type = "gem";
+    };
+    version = "1.37.0";
   };
   aws-sdk-eks = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -298,10 +386,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1h3bvqizz95lngmpsgysdpnn1fshrppfc6zq3qphv5hagpa1gj5n";
+      sha256 = "0nj666bl877n61h6s570ad9mcvjq4m2s6yink218zslfp10y03v4";
       type = "gem";
     };
-    version = "1.31.0";
+    version = "1.47.0";
   };
   aws-sdk-elasticache = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -309,10 +397,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0805g31chgr65bc74g8s33vk8id0gmyzvwpxjvf5drsrplbv1kca";
+      sha256 = "1kgpn2n1ap943q5nzxrl95v6g7fyff6bw5i4mhcw6g97gvv7p675";
       type = "gem";
     };
-    version = "1.29.0";
+    version = "1.53.0";
   };
   aws-sdk-elasticbeanstalk = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -320,10 +408,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nxrcfwngmbrvcbxh0cl6mqbvxda82k9kpjr1a0agypazapmy980";
+      sha256 = "1a9k9srp1q5qhlcwna7zyvviimri4gi9smlqshbvcfvy2lys5w2z";
       type = "gem";
     };
-    version = "1.26.0";
+    version = "1.41.0";
   };
   aws-sdk-elasticloadbalancing = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -331,10 +419,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13mc6mahnnrcgf2ah3p12sm538mfdygz6a6afgwijaar0za126l3";
+      sha256 = "1n6ssl3hqqm658k5ig667bgy457rs8gynl8vvin4xwknxws186di";
       type = "gem";
     };
-    version = "1.19.0";
+    version = "1.30.0";
   };
   aws-sdk-elasticloadbalancingv2 = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -342,10 +430,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17rvv3wlp7bm2f1cfkd8cvwz51kg6pzj8cw6jh4fvlnahx7cilr0";
+      sha256 = "0cqb2bncvqqqcqks7d6lrjb7pl06fcjizdfjpr44a7v6sjyx3bcr";
       type = "gem";
     };
-    version = "1.39.0";
+    version = "1.59.0";
   };
   aws-sdk-elasticsearchservice = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -353,10 +441,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lzm94grzggz6vrlzbk6226vlyfnxbq0rih71vdnj1h63f8gj73m";
+      sha256 = "1379lp7jqigp03zv25fgbx4bwacypjj38qbki648398r161f4bzy";
       type = "gem";
     };
-    version = "1.30.0";
+    version = "1.48.0";
   };
   aws-sdk-firehose = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -364,10 +452,32 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xpx6r6z2gfybfsndi7n6wr6zv6gqzfz9fm39wj8ljhsmbf2p2ch";
+      sha256 = "0ji75vqfprnkjsy6gdk9qci6wd9kwm7h7lycpx7jsw0fbv6hjx0p";
       type = "gem";
     };
-    version = "1.24.0";
+    version = "1.36.0";
+  };
+  aws-sdk-glue = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "026hka71fnzmqrn5yyb50pz1wa44irqncsk6kcgb476px4zxqwmd";
+      type = "gem";
+    };
+    version = "1.82.0";
+  };
+  aws-sdk-guardduty = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n963y20rafh51xanx0bff7jqbjcgg3wj5hs4js8h9sax48k97q9";
+      type = "gem";
+    };
+    version = "1.44.0";
   };
   aws-sdk-iam = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -375,10 +485,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s78ssjcp974v7r1znrgk78bqz23jhws4gy1nm659z5390zsn1fz";
+      sha256 = "16152qidkisakl2iqvghrjnccq279pahb953q5a4q0ipk5imw2c1";
       type = "gem";
     };
-    version = "1.33.0";
+    version = "1.47.0";
   };
   aws-sdk-kafka = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -386,10 +496,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k6pixxh9vfq2bhm89h1jpdzpikh600xmp1m1zqh9k8qa62g0glm";
+      sha256 = "182g1ya4bhxw90zb0jfqlb5s46r8k3mvl2dczir5jamjp2h1n24y";
       type = "gem";
     };
-    version = "1.17.0";
+    version = "1.34.0";
   };
   aws-sdk-kinesis = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -397,10 +507,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mx60qi7sgr8a2k8h1c0ify2l3dvp509hflmbwq87jgq6npz89jr";
+      sha256 = "1wsnn4303q7501xp10gfr8s15cazm4a0xy8knz5b8pmaw93x0g4b";
       type = "gem";
     };
-    version = "1.20.0";
+    version = "1.31.0";
   };
   aws-sdk-kms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -408,10 +518,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "191qnrpg9qhwj24pisha28fwqx30sqkj75ibgpqcf4q389l3a2gw";
+      sha256 = "00wgf83cdy6z77b2y0ld0aqiidfyldi71hx0z8b73gxjdlbwpq1i";
       type = "gem";
     };
-    version = "1.29.0";
+    version = "1.42.0";
   };
   aws-sdk-lambda = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -419,10 +529,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16llkc8dl88m2f58kpn81lnw37zlh0ghlb1g5bzli5hm8ygn1z5s";
+      sha256 = "15fvdqp8k5w7wjgc7f5h9syd8v14h8pzklg5ldb49n5jsr0i3n73";
       type = "gem";
     };
-    version = "1.36.0";
+    version = "1.59.0";
   };
   aws-sdk-organizations = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -430,10 +540,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0z71zxsvz1g3i6mnpvb05gzk2lay4dzrl45lby8n7acpp4wb2j1g";
+      sha256 = "00i8kbcx1vdch1g6pznvm0hg0hsz2kfd5vpdlfarbilv6zyh9mp7";
+      type = "gem";
+    };
+    version = "1.55.0";
+  };
+  aws-sdk-ram = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04n9x3nrxakx1zys0cc6vmkyqlqa83h6abdfyqaah1icxp585zjb";
       type = "gem";
     };
-    version = "1.17.0";
+    version = "1.22.0";
   };
   aws-sdk-rds = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -441,10 +562,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09ld8vrhrhywc4imvbj238pic7qi2mg1n3421s0iwd1xhf5fvakp";
+      sha256 = "1jnmk7z4ys13vv2i1r6pvpiblgaqlpvjhcslcnqyqlmjh2ydwjxk";
       type = "gem";
     };
-    version = "1.78.0";
+    version = "1.112.0";
   };
   aws-sdk-redshift = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -452,10 +573,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w8y5vlzzws2fqpjjq59gmgrf1l5whm1zcm7fhlkikxspq9iw16b";
+      sha256 = "1f54ig5vyc2cvipsv5d62n5xd6a1i9myjgayf6x6slkvnzk5xk4g";
       type = "gem";
     };
-    version = "1.37.0";
+    version = "1.54.0";
   };
   aws-sdk-route53 = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -463,10 +584,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "132c11g43zbmn2wzrnys7viymcdsznzl26igpv6ixv4jvi62r7fq";
+      sha256 = "1jxm6knx9rp5m3an93c187ds8zla4chl7zdvwnml2imna3adk4z7";
       type = "gem";
     };
-    version = "1.30.0";
+    version = "1.46.0";
   };
   aws-sdk-route53domains = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -474,10 +595,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01flbzipphp2qm4lcrxbmwqlgl7jy5w7gyj6hbgb8aich927w5qx";
+      sha256 = "0k3b37q9mhfnf4mzbhhhgx0v6y82ivq6v01g8fvdfb5n6235j0yg";
       type = "gem";
     };
-    version = "1.18.0";
+    version = "1.29.0";
   };
   aws-sdk-route53resolver = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -485,10 +606,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hlyd4h49sa3s61l1w362l2qmnm78kfj2ks6mshrjwr8l8zql1q5";
+      sha256 = "1qyb2n40v52n0xjqncaflb6cl1y0p7szlx1bzxpcnm4g5nfdcf3l";
       type = "gem";
     };
-    version = "1.11.0";
+    version = "1.23.0";
   };
   aws-sdk-s3 = {
     dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
@@ -496,10 +617,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pblkq7rw465w08hs2xy6v7w10x9n004hk43yqzswqxirki68ldz";
+      sha256 = "029iqr52fxxz8d6jb2g4k76i7nnjyspvjdlx52xah25zzhp3bx7v";
+      type = "gem";
+    };
+    version = "1.88.0";
+  };
+  aws-sdk-secretsmanager = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pv5idvap742r4mfwgi01l0sd7skz3m9iy28piy236f6xjiiqsw3";
       type = "gem";
     };
-    version = "1.60.2";
+    version = "1.43.0";
   };
   aws-sdk-securityhub = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -507,10 +639,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0a88i8bkqjy91ydj95h9v9mmlsqnx62hkinsprrx6ym0ix78kzim";
+      sha256 = "0j6wl0v5p19h3x1fphyq8db5appig7w3gsxnj6mmlm77smlkwjlq";
       type = "gem";
     };
-    version = "1.18.0";
+    version = "1.40.0";
+  };
+  aws-sdk-servicecatalog = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1awf0gcywzylqsdypx2lpib5jiy02fd4iz5q19q9qkpvxw7zj9cd";
+      type = "gem";
+    };
+    version = "1.57.0";
   };
   aws-sdk-ses = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -518,10 +661,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "046bsyj6zblcbffj15qbdz5fp8ipr6vfhrycsv6hznciy6jvpq4h";
+      sha256 = "1j45jykqll5s8y71bp4723mvcxbrihp4rhlhq1rvcyyr4y0706yy";
+      type = "gem";
+    };
+    version = "1.37.0";
+  };
+  aws-sdk-shield = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0416mrby897fnhc3iwb698m0gyih7pfgmx35h5f618i8my53alin";
       type = "gem";
     };
-    version = "1.27.0";
+    version = "1.34.0";
   };
   aws-sdk-sms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -529,10 +683,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x1x1hrs8v4vb5l79dp5qpdi0znb5cxviwk1zcx6zajpzabv7hdl";
+      sha256 = "0121bx79galz99x2wdksmzyibdy6l18k2i2nzc8lsmrgkdz22c03";
       type = "gem";
     };
-    version = "1.17.0";
+    version = "1.28.0";
   };
   aws-sdk-sns = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -540,10 +694,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vfyn7hc21qgarhrfghyw3qi550656834b51n5vnginraryk6ji8";
+      sha256 = "0cqri14igfmcxlapbagg0nmy79zzg29awzybv51gl76m3mljbafb";
       type = "gem";
     };
-    version = "1.21.0";
+    version = "1.38.0";
   };
   aws-sdk-sqs = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -551,10 +705,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c81w75ph7c3g8fkq8xxs1f5zkvv5yv0k3xy6441gjxvwkpiaih6";
+      sha256 = "07qg8awkqpdwf2r7y54183jfcffwjl1mdd98vmgsxv94617bnh4q";
       type = "gem";
     };
-    version = "1.23.1";
+    version = "1.36.0";
   };
   aws-sdk-ssm = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -562,10 +716,32 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "116vbhw7l2hk1vk3dq79czp857bcw7giw00ip4par1cgwkxym03c";
+      sha256 = "1svhxfjmvb6m8h7lm5cr7mmz6zngrhknrrkmwilnrq0lzg1wfp1r";
       type = "gem";
     };
-    version = "1.71.0";
+    version = "1.104.0";
+  };
+  aws-sdk-states = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04pdrsijckiz9fyzyvdndwci004a4fswv8mq5jm53bzmybwhndz2";
+      type = "gem";
+    };
+    version = "1.37.0";
+  };
+  aws-sdk-transfer = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ivbkfw7j83c7nagdhzdmcmwxn6ym50ak0jfkq1rdc1ppyir31dp";
+      type = "gem";
+    };
+    version = "1.29.0";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -573,10 +749,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dfc8i5cxjwlvi4b665lbpbwvks8a6wfy3vfmwr3pjdmxwdmc2cs";
+      sha256 = "1ll9382c1x2hp750cilh01h1cycgyhdr4cmmgx23k94hyyb8chv5";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.2";
   };
   azure_graph_rbac = {
     dependencies = ["ms_rest_azure"];
@@ -584,10 +760,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fq9gnsihrrljmlsg70kmryf72rxyy8kb4v9fa9z28abj0lncqgk";
+      sha256 = "0mmx8jp85xa13j3asa9xnfi6wa8a9wwlp0hz0nj70fi3ydmcpdag";
       type = "gem";
     };
-    version = "0.17.1";
+    version = "0.17.2";
   };
   azure_mgmt_key_vault = {
     dependencies = ["ms_rest_azure"];
@@ -595,10 +771,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18vcdhzndwa81lg877b1mg2804vhvvnw83qagx6v99adicjf8y8b";
+      sha256 = "0f4fai5l3453yirrwajds0jgah60gvawffx53a0jyv3b93ag88mz";
       type = "gem";
     };
-    version = "0.17.5";
+    version = "0.17.7";
   };
   azure_mgmt_resources = {
     dependencies = ["ms_rest_azure"];
@@ -606,10 +782,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "036p2d59jdjx5a49jz4swf37kfpc9ryyrb13xrdyghk1q79qli8p";
+      sha256 = "1hb9010cxrmm23v4dfrsf9wgvr53qkcd6397c4azg3wc65a6i1vc";
       type = "gem";
     };
-    version = "0.17.8";
+    version = "0.18.1";
   };
   azure_mgmt_security = {
     dependencies = ["ms_rest_azure"];
@@ -617,10 +793,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01rk0wbfbhrxnm0vv520ilxd55hv7n3w0sq5j0v17mnwjgm7pa6d";
+      sha256 = "11h2dyz4awzidvfj41h7k2q7mcqqcgzvm95fxpfxz609pbvck0g2";
       type = "gem";
     };
-    version = "0.18.0";
+    version = "0.19.0";
   };
   azure_mgmt_storage = {
     dependencies = ["ms_rest_azure"];
@@ -628,30 +804,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m1xajw39958kcv4qlhad2n19flijn9aqzxks2wx4b0k207vp87c";
+      sha256 = "0r8klsq3x7s4nn42h9w1kbqblrxnj7z7cpa8bxvc3xwv0vvql7m0";
       type = "gem";
     };
-    version = "0.19.2";
-  };
-  backports = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0sp3l5wa77klj34sqib95ppxyam53x3p57xk0y6gy2c3z29z6hs5";
-      type = "gem";
-    };
-    version = "3.16.1";
+    version = "0.22.0";
   };
   bcrypt_pbkdf = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02vssr285m7kpsr47jdmzbar1h1d0mnkmyrpr1zg828isfmwii35";
+      sha256 = "0ndamfaivnkhc6hy0yqyk2gkwr6f3bz6216lh74hsiiyk3axz445";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.0";
   };
   berkshelf = {
     dependencies = ["chef" "chef-config" "cleanroom" "concurrent-ruby" "minitar" "mixlib-archive" "mixlib-config" "mixlib-shellout" "octokit" "retryable" "solve" "thor"];
@@ -659,10 +825,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pb20i2blbj9w4cf9nxxxskbd7q5zk8rrirppsfjx8r02dywpq8f";
+      sha256 = "1mkakim23w7b38c8lw81wxqw68q6g7rlvxx82lq6bpp1hmmni64n";
       type = "gem";
     };
-    version = "7.0.9";
+    version = "7.1.0";
   };
   builder = {
     groups = ["default"];
@@ -680,21 +846,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lfx43yl77x074vjg77ixfxnxwl103ywjya55m4lj4vj0b2nxxxn";
+      sha256 = "068jzw97g40wbpzn51vcvwdp012202rkmjfafxwhx31wxjzhwy0n";
       type = "gem";
     };
-    version = "15.8.23";
+    version = "15.15.0";
   };
   chef-cli = {
-    dependencies = ["addressable" "chef" "cookbook-omnifetch" "diff-lcs" "ffi-yajl" "license-acceptance" "minitar" "mixlib-cli" "mixlib-shellout" "paint" "solve"];
+    dependencies = ["addressable" "chef" "cookbook-omnifetch" "diff-lcs" "ffi-yajl" "license-acceptance" "minitar" "mixlib-cli" "mixlib-shellout" "pastel" "solve"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05178w55vwqgrv8jaic2f77h6hx5b40lsmlaqfvdq63a459wl5sd";
+      sha256 = "1nw73p8wg67qkzx07v21fwiqljb0yndjm10z56li72d6b1hbw0sb";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "3.1.1";
   };
   chef-config = {
     dependencies = ["addressable" "chef-utils" "fuzzyurl" "mixlib-config" "mixlib-shellout" "tomlrb"];
@@ -702,10 +868,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xbl4pgn4kavi6b1m1f232xx4l9fhlz7d4ndmb11m36wb8l05hsk";
+      sha256 = "1ji166i5n7cxn69amsfxsvy3b7bf5ksgxxg985w5jfl1gp5bihfl";
       type = "gem";
     };
-    version = "15.8.23";
+    version = "15.15.0";
   };
   chef-dk = {
     dependencies = ["addressable" "chef" "cookbook-omnifetch" "diff-lcs" "ffi-yajl" "license-acceptance" "minitar" "mixlib-cli" "mixlib-shellout" "paint" "solve"];
@@ -713,10 +879,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zhfq3kwchay6aj6128pr13xabrfprs288ma9abnv9d6vz3ddpw6";
+      sha256 = "0zqznvry08pyiv8820b962fzvabzwbsmmwlyvk4ayjr2wshyi6g2";
       type = "gem";
     };
-    version = "4.7.73";
+    version = "4.13.3";
   };
   chef-provisioning = {
     dependencies = ["cheffish" "inifile" "mixlib-install" "net-scp" "net-ssh" "net-ssh-gateway" "winrm" "winrm-elevated" "winrm-fs"];
@@ -730,35 +896,35 @@
     version = "2.7.6";
   };
   chef-telemetry = {
-    dependencies = ["chef-config" "concurrent-ruby" "ffi-yajl" "http"];
+    dependencies = ["chef-config" "concurrent-ruby" "ffi-yajl"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lx85wy6d1khrya0idwqkdvh1x57qak3d8y699gwccfhl88xymg3";
+      sha256 = "0hnmqr6vkgsbnzdzcc6j6svnms14irrcd70wk8qg3p98cy359rm5";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.0.14";
   };
   chef-utils = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "149pgbybdpi9y11qfsm4bmnqm655s682yv7qkwxhzwqn2fylzb2j";
+      sha256 = "1j8rhqc6mj8iay755rl5yaf0rqs54gwcygib1s8g7dxl3vqcpwxa";
       type = "gem";
     };
-    version = "15.8.23";
+    version = "15.15.0";
   };
   chef-vault = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k0famr2cbrrarp4rpzcymqnpnwg734psbf0pxhasxdsjjg8nl6f";
+      sha256 = "1rpcgzawdgzvk60fw9s40i5alc7b1rc2phkgm89dckfmklfh6794";
       type = "gem";
     };
-    version = "4.0.1";
+    version = "4.1.0";
   };
   chef-zero = {
     dependencies = ["ffi-yajl" "hashie" "mixlib-log" "rack" "uuidtools"];
@@ -788,10 +954,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ry6707plcrj7aicadmzxzfmlvz43i2g55k2iph8m390wpxhnhcl";
+      sha256 = "15sz88xxh48phq1w3rsivzasg4r36dhqnpqna5cfi120vk28ylb2";
       type = "gem";
     };
-    version = "9.1.0";
+    version = "9.2.1";
   };
   cleanroom = {
     groups = ["default"];
@@ -808,20 +974,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "1.1.3";
   };
   concurrent-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.6";
+    version = "1.1.8";
   };
   cookbook-omnifetch = {
     dependencies = ["mixlib-archive"];
@@ -829,41 +995,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w4xh4ffcm4jd3fys9yg3rb8asngll15mvra8lfi2328alvbanvb";
-      type = "gem";
-    };
-    version = "0.9.1";
-  };
-  cucumber-core = {
-    dependencies = ["backports" "cucumber-tag_expressions" "gherkin"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1iavlh8hqj9lwljbpkw06259gdicbr1bdb6pbj5yy3n8szgr8k3c";
-      type = "gem";
-    };
-    version = "3.2.1";
-  };
-  cucumber-tag_expressions = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0cvmbljybws0qzjs1l67fvr9gqr005l8jk1ni5gcsis9pfmqh3vc";
+      sha256 = "1qw8ayyflx222igmrmp1jpgfcfhpnc4myaxv9lk3ckd5l6n3w7qh";
       type = "gem";
     };
-    version = "1.1.1";
+    version = "0.11.1";
   };
   declarative = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j";
+      sha256 = "1yczgnqrbls7shrg63y88g7wand2yp9h6sf56c9bdcksn5nds8c0";
       type = "gem";
     };
-    version = "0.0.10";
+    version = "0.0.20";
   };
   declarative-option = {
     groups = ["default"];
@@ -890,10 +1035,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qhx743lcx61r2d3925jk61c6r8clfjmpf5g93cdy5sq00ig76lh";
+      sha256 = "0nrg7kpgz6cn1gv2saj2fa5sfiykamvd7vn9lw2v625k7pjwf31l";
       type = "gem";
     };
-    version = "3.3.0";
+    version = "3.4.0";
   };
   docker-api = {
     dependencies = ["excon" "multi_json"];
@@ -901,10 +1046,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04dkbg7x2m4102dnwil2v688gblxh1skh374nkzksn18jjrivkdp";
+      sha256 = "09lkc50nl3158za0fk8kpd05zlzfxiajnf6zrxpamw1nzdw89ac9";
       type = "gem";
     };
-    version = "1.34.2";
+    version = "2.0.0";
   };
   domain_name = {
     dependencies = ["unf"];
@@ -927,25 +1072,15 @@
     };
     version = "1.2.4";
   };
-  equatable = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0fzx2ishipnp6c124ka6fiw5wk42s7c7gxid2c4c1mb55b30dglf";
-      type = "gem";
-    };
-    version = "0.6.1";
-  };
   erubi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x";
+      sha256 = "09l8lz3j00m898li0yfsnb6ihc63rdvhw3k5xczna5zrjk104f2l";
       type = "gem";
     };
-    version = "1.9.0";
+    version = "1.10.0";
   };
   erubis = {
     groups = ["default"];
@@ -962,21 +1097,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vhc5c16i8zrm3d98ppsnw514d7jvwdg0wk60kc9i1xw3797qkkd";
+      sha256 = "1759s0rz6qgsw86dds1z4jzb3fvizqsk11j5q6z7lc5n404w6i23";
       type = "gem";
     };
-    version = "0.72.0";
+    version = "0.79.0";
   };
   faraday = {
-    dependencies = ["multipart-post"];
+    dependencies = ["faraday-net_http" "multipart-post" "ruby2_keywords"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13aghksmni2sl15y7wfpx6k5l3lfd8j9gdyqi6cbw6jgc7bqyyn2";
+      sha256 = "1hmssd8pj4n7yq4kz834ylkla8ryyvhaap6q9nzymp93m1xq21kz";
       type = "gem";
     };
-    version = "0.17.3";
+    version = "1.3.0";
   };
   faraday-cookie_jar = {
     dependencies = ["faraday" "http-cookie"];
@@ -984,10 +1119,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1di4gx6446a6zdkrpj679m5k515i53wvb4yxcsqvy8d8zacxiiv6";
+      sha256 = "00hligx26w9wdnpgsrf0qdnqld4rdccy8ym6027h5m735mpvxjzk";
+      type = "gem";
+    };
+    version = "0.0.7";
+  };
+  faraday-net_http = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
       type = "gem";
     };
-    version = "0.0.6";
+    version = "1.0.1";
   };
   faraday_middleware = {
     dependencies = ["faraday"];
@@ -995,10 +1140,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p7icfl28nvl8qqdsngryz1snqic9l8x6bk0dxd7ygn230y0k41d";
+      sha256 = "0jik2kgfinwnfi6fpp512vlvs0mlggign3gkbpkg5fw1jr9his0r";
       type = "gem";
     };
-    version = "0.12.2";
+    version = "1.0.0";
   };
   fauxhai-ng = {
     dependencies = ["net-ssh"];
@@ -1006,20 +1151,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vm9hz6k8v4i7r1s5z489n58liaaxmb8bgcvklfg1hf8k3d5afdp";
+      sha256 = "0pxzmsp31lxlkq1p0205j2s9kkjqs5a9zy2qpqabbmhny0d9ri8k";
       type = "gem";
     };
-    version = "7.6.0";
+    version = "8.7.0";
   };
   ffi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "15hgiy09i8ywjihyzyvjvk42ivi3kmy6dm21s5sgg9j7y3h3zkkx";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.14.2";
   };
   ffi-libarchive = {
     dependencies = ["ffi"];
@@ -1027,10 +1172,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vs8s37lr3bgw5d3mb6vamcqy16dj61yzzq0xf453lhr3dcampkb";
+      sha256 = "1wmbwg6hirxr85c3skdq2na8xwg4ky880qbs1z1adb9aizcjbdkx";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.0.17";
   };
   ffi-yajl = {
     dependencies = ["libyajl2"];
@@ -1038,21 +1183,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11m9pkx2a1vssplzb3fwx4kc25bg5xmjf0j97l5kv6mhnhd93sik";
+      sha256 = "1pfmn0gprc3c15baxa9rx64pqllk64m60f5vg4gp0icpafkp0jx5";
       type = "gem";
     };
-    version = "2.3.3";
+    version = "2.3.4";
   };
   foodcritic = {
-    dependencies = ["cucumber-core" "erubis" "ffi-yajl" "nokogiri" "rake" "rufus-lru" "treetop"];
+    dependencies = ["erubis" "ffi-yajl" "nokogiri" "rake" "rufus-lru" "treetop"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11dzfcf6p1z75anizwqm48nadd84j5wk0vm4mp4s5a7xfqjh3psi";
+      sha256 = "1gnp8lr37cv87adr3568kh7p55vwdqp01f2hwjxlvqkwkwk3fvn4";
       type = "gem";
     };
-    version = "16.2.0";
+    version = "16.3.0";
   };
   fuzzyurl = {
     groups = ["default"];
@@ -1064,37 +1209,27 @@
     };
     version = "0.9.0";
   };
-  gherkin = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1cgcdchwwdm10rsk44frjwqd4ihprhxjbm799nscqy2q1raqfj5s";
-      type = "gem";
-    };
-    version = "5.1.0";
-  };
   git = {
     dependencies = ["rchardet"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15sbv16dlap5d6naybl8cc99zffrpzygkhjz3m6l3r5y5yrhwwjc";
+      sha256 = "0vdcv93s33d9914a9nxrn2y2qv15xk7jx94007cmalp159l08cnl";
       type = "gem";
     };
-    version = "1.6.0";
+    version = "1.8.1";
   };
   google-api-client = {
-    dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "signet"];
+    dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "rexml" "signet"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xndfscxxaw73qah484vmhcd60hlbyrr9rlh7sf2n2sjfcqikjsf";
+      sha256 = "1q1lsyyyfvff7727sr01j8qx6b30qpx6h0bna5s0bfz853fhl33b";
       type = "gem";
     };
-    version = "0.34.1";
+    version = "0.52.0";
   };
   googleauth = {
     dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
@@ -1102,10 +1237,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dnkh017ln5g7x3y0w743g61bxb2cdcyr1vax9ic3gx7vkrfj3iw";
+      sha256 = "0cm60nbmwzf83fzy06f3iyn5a6sw91siw8x9bdvpwwmjsmivana6";
       type = "gem";
     };
-    version = "0.10.0";
+    version = "0.14.0";
   };
   gssapi = {
     dependencies = ["ffi"];
@@ -1113,10 +1248,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13l6pqbfrx3vv7cw26nq9p8rnyp9br31gaz85q32wx6hnzfcriwh";
+      sha256 = "1qdfhj12aq8v0y961v4xv96a1y2z80h3xhvzrs9vsfgf884g6765";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.3.1";
   };
   gyoku = {
     dependencies = ["builder"];
@@ -1149,27 +1284,6 @@
     };
     version = "1.7.10";
   };
-  htmlentities = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
-      type = "gem";
-    };
-    version = "4.3.4";
-  };
-  http = {
-    dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1kcd9qp8vm1rkyp7gfh8j0dbl3zpi97vz2vbhpbcsdsa7l21a59r";
-      type = "gem";
-    };
-    version = "2.2.2";
-  };
   http-cookie = {
     dependencies = ["domain_name"];
     groups = ["default"];
@@ -1181,26 +1295,6 @@
     };
     version = "1.0.3";
   };
-  http-form_data = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0j8dwwbfpf8kc0lcsqcgy29lflszd1x4d7kc0f7227892m7r6y0m";
-      type = "gem";
-    };
-    version = "1.0.3";
-  };
-  "http_parser.rb" = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
-      type = "gem";
-    };
-    version = "0.6.0";
-  };
   httpclient = {
     groups = ["default"];
     platforms = [];
@@ -1217,10 +1311,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jwrd1l4mxz06iyx6053lr6hz2zy7ah2k3ranfzisvych5q19kwm";
+      sha256 = "0k7q3pwm0l1qvx6sc3d4dxmdxqx2pc63lbfjwv0k0higq94rinvs";
       type = "gem";
     };
-    version = "1.8.2";
+    version = "1.8.8";
   };
   inifile = {
     groups = ["default"];
@@ -1237,10 +1331,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xbik6838gfh5yq9ahh1m7dzszxlk0g7x5lvhb8amk60mafkrgws";
+      sha256 = "1wb1qy4i2xrrd92dc34pi7q7ibrjpapzk9y465v0n9caiplnb89n";
       type = "gem";
     };
-    version = "1.4.4";
+    version = "1.5.0";
   };
   inspec = {
     dependencies = ["faraday_middleware" "inspec-core" "train" "train-aws" "train-habitat" "train-winrm"];
@@ -1248,21 +1342,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04cyv81rgspr9xachq2dk9xgb740jrq7vpy2r88lqdzlzbpz3f4n";
+      sha256 = "0jg818r56vzzh971ckzbknv8b70da73njr3x2y7xd6jwv5pjs93m";
       type = "gem";
     };
-    version = "4.18.85";
+    version = "4.26.4";
   };
   inspec-core = {
-    dependencies = ["addressable" "chef-telemetry" "faraday" "hashie" "htmlentities" "json-schema" "license-acceptance" "method_source" "mixlib-log" "multipart-post" "parallel" "parslet" "pry" "rspec" "rspec-its" "rubyzip" "semverse" "sslshake" "term-ansicolor" "thor" "tomlrb" "train-core" "tty-prompt" "tty-table"];
+    dependencies = ["addressable" "chef-telemetry" "faraday" "faraday_middleware" "hashie" "license-acceptance" "method_source" "mixlib-log" "multipart-post" "parallel" "parslet" "pry" "rspec" "rspec-its" "rubyzip" "semverse" "sslshake" "thor" "tomlrb" "train-core" "tty-prompt" "tty-table"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ha6dmi5lywv4gldpv2pyj0zwqv4wsf422jd4x8licmkpkcrwc2r";
+      sha256 = "0nrd4ny5cyah76pchr5xyi2m9rx0lkyk9vd2sp68rjp0x1x5y3p8";
       type = "gem";
     };
-    version = "4.18.85";
+    version = "4.26.4";
   };
   ipaddress = {
     groups = ["default"];
@@ -1274,16 +1368,6 @@
     };
     version = "0.8.3";
   };
-  jaro_winkler = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh";
-      type = "gem";
-    };
-    version = "1.5.4";
-  };
   jmespath = {
     groups = ["default"];
     platforms = [];
@@ -1299,31 +1383,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "2.3.0";
-  };
-  json-schema = {
-    dependencies = ["addressable"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1yv5lfmr2nzd14af498xqd5p89f3g080q8wk0klr3vxgypsikkb5";
-      type = "gem";
-    };
-    version = "2.8.1";
+    version = "2.5.1";
   };
   jwt = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01zg1vp3lyl3flyjdkrcc93ghf833qgfgh2p1biqfhkzz11r129c";
+      sha256 = "14ynyq1q483spj20ffl4xayfqx1a8qr761mqjfxczf8lwlap392n";
       type = "gem";
     };
-    version = "2.2.1";
+    version = "2.2.2";
   };
   kitchen-inspec = {
     dependencies = ["hashie" "inspec" "test-kitchen"];
@@ -1331,10 +1404,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1v85hnmhqdbl9zxphvbqfgma9rl095mq9jz223mkffdh9q5xv282";
+      sha256 = "1fx27vkc29kx59qmkrkl53sbyigny3rkqlfp836rwlxf1wfbbdlv";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "2.3.0";
   };
   kitchen-vagrant = {
     dependencies = ["test-kitchen"];
@@ -1342,10 +1415,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01wwryb4ha6gzhnmbg7xir32rpynbw4zc2l9dch02pwizw0n669x";
+      sha256 = "1pix3n9hbr9s736n4jh8dn71ccsm5xcqvx9clwilzhr3r89qfiwg";
       type = "gem";
     };
-    version = "1.6.1";
+    version = "1.8.0";
   };
   knife-spork = {
     dependencies = ["app_conf" "chef" "diffy" "git"];
@@ -1353,10 +1426,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rcry9fbsi9kqfi8rrdda17yzmfyg21g9jv01sgzg1sj59kzb79s";
+      sha256 = "1ddgmv3j75m908ldykrgn9rdjdw09yakmxav7569f18lhxxfs9l0";
       type = "gem";
     };
-    version = "1.7.2";
+    version = "1.7.3";
   };
   libyajl2 = {
     groups = ["default"];
@@ -1374,10 +1447,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lxgpmzb9hafzx7f5fssb1mamcbzbdp87awvjr33fk6nsvyg3zaj";
+      sha256 = "03n3jpzivqxajvf3507c2z9vq2mrriqqc1yg3g0pgzacb3d38k2d";
       type = "gem";
     };
-    version = "1.0.13";
+    version = "1.0.19";
   };
   little-plugger = {
     groups = ["default"];
@@ -1395,10 +1468,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06j6iaj89h9jhkx1x3hlswqrfnqds8br05xb1qra69dpvbdmjcwn";
+      sha256 = "0pkmhcxi8lp74bq5gz9lxrvaiv5w0745kk7s4bw2b1x07qqri0n9";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "2.3.0";
   };
   memoist = {
     groups = ["default"];
@@ -1415,10 +1488,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
+      sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp";
       type = "gem";
     };
-    version = "0.9.2";
+    version = "1.0.0";
   };
   mini_mime = {
     groups = ["default"];
@@ -1435,10 +1508,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   minitar = {
     groups = ["default"];
@@ -1455,10 +1528,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz";
+      sha256 = "0ipjhdw8ds6q9h7bs3iw28bjrwkwp215hr4l3xf6215fsl80ky5j";
       type = "gem";
     };
-    version = "5.14.0";
+    version = "5.14.3";
   };
   mixlib-archive = {
     dependencies = ["mixlib-log"];
@@ -1466,30 +1539,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01c7g55x126cj2493wx03n9b83i9m1rdfx2aivg1yg8d1lmj8jdg";
+      sha256 = "0dj52irvnp1riz52kg6fddmdvl9nxsrxk3vyidr7lfzhw5sj8vdk";
       type = "gem";
     };
-    version = "1.0.5";
+    version = "1.1.4";
   };
   mixlib-authentication = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0d854b55d0hx0q12gwbycfdcpnxx88zz0jk557ngq2cqq94g96jy";
+      sha256 = "1wfyn645wnb79rl3ys83171ymv56k8zks9qvxh29vj8nicyrzr23";
       type = "gem";
     };
-    version = "3.0.6";
+    version = "3.0.7";
   };
   mixlib-cli = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yrfgg18hlm0hkg81w5bw3fbk0m89lg96a0b65q9mrrscg37rvn2";
+      sha256 = "1ydxlfgd7nnj3rp1y70k4yk96xz5cywldjii2zbnw3sq9pippwp6";
       type = "gem";
     };
-    version = "2.1.5";
+    version = "2.1.8";
   };
   mixlib-config = {
     dependencies = ["tomlrb"];
@@ -1497,10 +1570,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14lb9dg4wg86qhbd0rykdjr00arkyvmrg20a5ylf0zd6wp7w01jk";
+      sha256 = "1askip583sfnz25gywd508l3vj5wnvx9vp7gm1sfnixm7amssrwq";
       type = "gem";
     };
-    version = "3.0.6";
+    version = "3.0.9";
   };
   mixlib-install = {
     dependencies = ["mixlib-shellout" "mixlib-versioning" "thor"];
@@ -1508,30 +1581,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bsn4d0m3xw142v1vssyrxwa6y64fqd5hx2hsnm5vc1xj4xmcg0f";
+      sha256 = "0p11qf6b86dzl3q5gqi63myz484dicmn90d8v8jjb1dm51gqpajq";
       type = "gem";
     };
-    version = "3.11.26";
+    version = "3.12.5";
   };
   mixlib-log = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00kmwx7s3xpxmy44saxjk36gbhsywyxy4f8jf4gjvwwpr0ps8q0g";
+      sha256 = "0n5dm5iz90ijvjn59jfm8gb8hgsvbj0f1kpzbl38b02z0z4a4v7x";
       type = "gem";
     };
-    version = "3.0.8";
+    version = "3.0.9";
   };
   mixlib-shellout = {
+    dependencies = ["chef-utils"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c2nqa82xp0hg8sj69cypar8n7p3azl5pl2v2mjbkhgmmhqxa8km";
+      sha256 = "0y1z0phkdhpbsn8vz7a86nhkr7ra619j86z5p75amz61kfpw42z9";
       type = "gem";
     };
-    version = "3.0.9";
+    version = "3.2.2";
   };
   mixlib-versioning = {
     groups = ["default"];
@@ -1548,10 +1622,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hh40z1adl4lw16dj4hxgabx4rr28mgqycih1y1d91bwww0jjdg6";
+      sha256 = "17kvf6fijn6k886dhj89h0x39qh90c47asa2k16s913fcgn3a1n3";
       type = "gem";
     };
-    version = "0.6.6";
+    version = "0.7.0";
   };
   ms_rest = {
     dependencies = ["concurrent-ruby" "faraday" "timeliness"];
@@ -1559,31 +1633,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10mgfspn3g75mhmfprpr2pnkmav34gix8cfga43g7162d0i1pd9l";
+      sha256 = "1jiha1bda5knpjqjymwik6i41n69gb0phcrgvmgc5icl4mcisai7";
       type = "gem";
     };
-    version = "0.7.5";
+    version = "0.7.6";
   };
   ms_rest_azure = {
-    dependencies = ["concurrent-ruby" "faraday" "faraday-cookie_jar" "ms_rest" "unf_ext"];
+    dependencies = ["concurrent-ruby" "faraday" "faraday-cookie_jar" "ms_rest"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "135va1hzxwn0apb2lf7b9yi8d1czid250cgf91dm331rqz84jnvz";
+      sha256 = "06i37b84r2q206kfm5vsi9s1qiiy09091vhvc5pzb7320h0hc1ih";
       type = "gem";
     };
-    version = "0.11.1";
+    version = "0.12.0";
   };
   multi_json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr";
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
       type = "gem";
     };
-    version = "1.14.1";
+    version = "1.15.0";
   };
   multipart-post = {
     groups = ["default"];
@@ -1595,16 +1669,6 @@
     };
     version = "2.1.1";
   };
-  necromancer = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1w2y31947axs62bsf0xrpgalsw4ip1m44vpw7p8f4s9zvnayj2vd";
-      type = "gem";
-    };
-    version = "0.5.1";
-  };
   net-scp = {
     dependencies = ["net-ssh"];
     groups = ["default"];
@@ -1660,15 +1724,15 @@
     version = "1.2.1";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yi8j8hwrlc3rg5v3w52gxndmwifyk7m732q9yfbal0qajqbh1h8";
+      sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
       type = "gem";
     };
-    version = "1.10.8";
+    version = "1.11.1";
   };
   nori = {
     groups = ["default"];
@@ -1686,10 +1750,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06kx258qa5k24q5pv8i4daaw3g57gif6p5k5h3gndj3q2jk6vhkn";
+      sha256 = "1fl517ld5vj0llyshp3f9kb7xyl9iqy28cbz3k999fkbwcxzhlyq";
       type = "gem";
     };
-    version = "4.16.0";
+    version = "4.20.0";
   };
   ohai = {
     dependencies = ["chef-config" "ffi" "ffi-yajl" "ipaddress" "mixlib-cli" "mixlib-config" "mixlib-log" "mixlib-shellout" "plist" "systemu" "wmi-lite"];
@@ -1697,20 +1761,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c6c22nqg905sivr099qrwbvnwwyvm37xzxxrysvkalxglkvxr23";
+      sha256 = "0qw3mz8f9hpzfchwqa1nix7fcvy34k5n7lln91b8gsbx2l6aycs6";
       type = "gem";
     };
-    version = "15.7.4";
+    version = "15.12.0";
   };
   os = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06r55k01g32lvz4wf2s6hpjlxbbag113jsvff3w64jllfr315a73";
+      sha256 = "12fli64wz5j9868gpzv5wqsingk1jk457qyqksv9ksmq9b0zpc9x";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.1";
   };
   paint = {
     groups = ["default"];
@@ -1727,10 +1791,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12jijkap4akzdv11lm08dglsc8jmc87xcgq6947i1s3qb69f4zn2";
+      sha256 = "0055br0mibnqz0j8wvy20zry548dhkakws681bhj3ycb972awkzd";
       type = "gem";
     };
-    version = "1.19.1";
+    version = "1.20.1";
   };
   parser = {
     dependencies = ["ast"];
@@ -1738,10 +1802,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "145lv6rbbnbddbk79l10kadycjq05vyrzq5d733zswmypshpq6ni";
+      sha256 = "1jixakyzmy0j5c1rb0fjrrdhgnyryvrr6vgcybs14jfw09akv5ml";
       type = "gem";
     };
-    version = "2.7.0.2";
+    version = "3.0.0.0";
   };
   parslet = {
     groups = ["default"];
@@ -1754,25 +1818,25 @@
     version = "1.8.2";
   };
   pastel = {
-    dependencies = ["equatable" "tty-color"];
+    dependencies = ["tty-color"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m43wk7gswwkl6lfxwlliqc9v1qp8arfygihyz91jc9icf270xzm";
+      sha256 = "0xash2gj08dfjvq4hy6l1z22s5v30fhizwgs10d6nviggpxsj7a8";
       type = "gem";
     };
-    version = "0.7.3";
+    version = "0.8.0";
   };
   plist = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ra0910xxbhfsmdi0ig36pr3q0khdqzwb5da3wg7y3n8d1sh9ffp";
+      sha256 = "1whhr897z6z6av85x2cipyjk46bwh6s4wx6nbrcd3iifnzvbqs7l";
       type = "gem";
     };
-    version = "3.5.0";
+    version = "3.6.0";
   };
   polyglot = {
     groups = ["default"];
@@ -1800,10 +1864,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00rm71x0r1jdycwbs83lf9l6p494m99asakbvqxh8rz7zwnlzg69";
+      sha256 = "1shq3vfdg7c9l1wppl8slridl95wmwvnngqhga6j2571nnv50piv";
       type = "gem";
     };
-    version = "0.12.2";
+    version = "0.14.0";
   };
   public_suffix = {
     groups = ["default"];
@@ -1815,15 +1879,25 @@
     };
     version = "3.1.1";
   };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
   rack = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10mp9s48ssnw004aksq90gvhdvwczh8j6q82q2kqiqq92jd1zxbp";
+      sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "2.2.3";
   };
   rainbow = {
     groups = ["default"];
@@ -1840,10 +1914,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+      sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67";
       type = "gem";
     };
-    version = "13.0.1";
+    version = "13.0.3";
   };
   rchardet = {
     groups = ["default"];
@@ -1855,6 +1929,16 @@
     };
     version = "1.8.0";
   };
+  regexp_parser = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zm86k9q8m5jkcnpb1f93wsvc57saldfj8czxkx1aw031i95inip";
+      type = "gem";
+    };
+    version = "2.0.3";
+  };
   representable = {
     dependencies = ["declarative" "declarative-option" "uber"];
     groups = ["default"];
@@ -1902,10 +1986,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hzsig4pi9ybr0xl5540m1swiyxa74c8h09225y5sdh2rjkkg84h";
+      sha256 = "1dwai7jnwmdmd7ajbi2q0k0lx1dh88knv5wl7c34wjmf94yv8w5q";
       type = "gem";
     };
-    version = "3.9.0";
+    version = "3.10.0";
   };
   rspec-core = {
     dependencies = ["rspec-support"];
@@ -1913,10 +1997,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qzc1wdjb1qnbimjl8i1q1r1z5hdv2lmcw7ysz7jawj4d1cvpqvd";
+      sha256 = "0wwnfhxxvrlxlk1a3yxlb82k2f9lm0yn0598x7lk8fksaz4vv6mc";
       type = "gem";
     };
-    version = "3.9.1";
+    version = "3.10.1";
   };
   rspec-expectations = {
     dependencies = ["diff-lcs" "rspec-support"];
@@ -1924,10 +2008,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gjqfb39da6gywdcp4h77738r7khbrn2v4y45589z25bj4z9paf0";
+      sha256 = "1sz9bj4ri28adsklnh257pnbq4r5ayziw02qf67wry0kvzazbb17";
       type = "gem";
     };
-    version = "3.9.0";
+    version = "3.10.1";
   };
   rspec-its = {
     dependencies = ["rspec-core" "rspec-expectations"];
@@ -1946,61 +2030,82 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19vmdqym1v2g1zbdnq37zwmyj87y9yc9ijwc8js55igvbb9hx0mr";
+      sha256 = "1d13g6kipqqc9lmwz5b244pdwc97z15vcbnbq6n9rlf32bipdz4k";
       type = "gem";
     };
-    version = "3.9.1";
+    version = "3.10.2";
   };
   rspec-support = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zwpyq1na23pvgacpxs2v9nwfbjbw6x3arca5j3l1xagigqmzhc3";
+      sha256 = "15j52parvb8cgvl6s0pbxi2ywxrv6x0764g222kz5flz0s4mycbl";
       type = "gem";
     };
-    version = "3.9.2";
+    version = "3.10.2";
   };
   rubocop = {
-    dependencies = ["jaro_winkler" "parallel" "parser" "rainbow" "rexml" "ruby-progressbar" "unicode-display_width"];
+    dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06npybjypxsrz09z8ivxqfcwzpbgif6z3hwpp0ls8znqlgp3m922";
+      type = "gem";
+    };
+    version = "1.9.1";
+  };
+  rubocop-ast = {
+    dependencies = ["parser"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0adfpv76whv5dy5wr5brqkki39jfv6r08482saj64h9j4wzwcznb";
+      sha256 = "0gkf1p8yal38nlvdb39qaiy0gr85fxfr09j5dxh8qvrgpncpnk78";
       type = "gem";
     };
-    version = "0.80.0";
+    version = "1.4.1";
   };
   ruby-progressbar = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+      sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc";
       type = "gem";
     };
-    version = "1.10.1";
+    version = "1.11.0";
+  };
+  ruby2_keywords = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
+      type = "gem";
+    };
+    version = "0.0.4";
   };
   rubyntlm = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy";
+      sha256 = "0b8hczk8hysv53ncsqzx4q6kma5gy5lqc7s5yx8h64x3vdb18cjv";
       type = "gem";
     };
-    version = "0.6.2";
+    version = "0.6.3";
   };
   rubyzip = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qxc2zxwwipm6kviiar4gfhcakpx1jdcs89v6lvzivn5hq1xk78l";
+      sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "2.3.0";
   };
   rufus-lru = {
     groups = ["default"];
@@ -2039,10 +2144,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m8brljfgrxpr5j7kggv3dphqj9in3rkbf5dryx8f7nprkk85wdd";
+      sha256 = "1zmrsnrrj5j3bp9fmaa74cvlkpdwspv8gv5vpz1lclhirkiqz1xv";
       type = "gem";
     };
-    version = "0.12.0";
+    version = "0.14.1";
   };
   solve = {
     dependencies = ["molinillo" "semverse"];
@@ -2050,20 +2155,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zymaik4cxd4kmd8f4n1ij8ykrfinhnlvlhjnsdv2cv1xnqnjqmk";
+      sha256 = "059lrsf40rl5kclp1w8pb0fzz5sv8aikg073cwcvn5mndk14ayky";
       type = "gem";
     };
-    version = "4.0.3";
+    version = "4.0.4";
   };
   sslshake = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dy7pnvn0zb3qbfahgksfxqw1hxhk2i2wlw34bvr2iyzqlw04a3s";
+      sha256 = "0r3ifksx8a05yqhv7nc4cwan8bwmxgq5kyv7q7hy2h9lv5zcjs8h";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.3.1";
   };
   strings = {
     dependencies = ["strings-ansi" "unicode-display_width" "unicode_utils"];
@@ -2071,10 +2176,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "111876lcqrykh30w7zzkrl06d6rj9lq24y625m28674vgfxkkcz0";
+      sha256 = "0xgw0zmwansvmk8dnxgd83pvrj4f5y8j72bpzp409hwd6xy1hy7m";
       type = "gem";
     };
-    version = "0.1.8";
+    version = "0.2.0";
   };
   strings-ansi = {
     groups = ["default"];
@@ -2086,16 +2191,6 @@
     };
     version = "0.2.0";
   };
-  sync = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1z9qlq4icyiv3hz1znvsq1wz2ccqjb1zwd6gkvnwg6n50z65d0v6";
-      type = "gem";
-    };
-    version = "0.5.0";
-  };
   syslog-logger = {
     groups = ["default"];
     platforms = [];
@@ -2116,37 +2211,26 @@
     };
     version = "2.6.5";
   };
-  term-ansicolor = {
-    dependencies = ["tins"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1xq5kci9215skdh27npyd3y55p812v4qb4x2hv3xsjvwqzz9ycwj";
-      type = "gem";
-    };
-    version = "1.7.1";
-  };
   test-kitchen = {
     dependencies = ["bcrypt_pbkdf" "ed25519" "license-acceptance" "mixlib-install" "mixlib-shellout" "net-scp" "net-ssh" "net-ssh-gateway" "thor" "winrm" "winrm-elevated" "winrm-fs"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14wvv8vgm3lqqk9ifywjhhxlvnbx5gpl4f8zbw5gj41sq8hdqgqj";
+      sha256 = "1s5sj6x2dscd3wci7ns1m3jwfp1b7h8535q44ggdsz60gp63p974";
       type = "gem";
     };
-    version = "2.3.4";
+    version = "2.10.0";
   };
   thor = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+      sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
       type = "gem";
     };
-    version = "0.20.3";
+    version = "1.1.0";
   };
   thread_safe = {
     groups = ["default"];
@@ -2168,80 +2252,69 @@
     };
     version = "0.3.10";
   };
-  tins = {
-    dependencies = ["sync"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0nghqcdg7ak91n2h6igx8i2ykbhna93xpg33w6232451vphlwdm0";
-      type = "gem";
-    };
-    version = "1.24.1";
-  };
   tomlrb = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0njkyq5csj4km8spmw33b5902v254wvyvqq1b0f0kky5hs7bvrgg";
+      sha256 = "00x5y9h4fbvrv4xrjk4cqlkm4vq8gv73ax4alj3ac2x77zsnnrk8";
       type = "gem";
     };
-    version = "1.2.9";
+    version = "1.3.0";
   };
   train = {
-    dependencies = ["activesupport" "azure_graph_rbac" "azure_mgmt_key_vault" "azure_mgmt_resources" "azure_mgmt_security" "azure_mgmt_storage" "docker-api" "google-api-client" "googleauth" "train-core" "train-winrm"];
+    dependencies = ["activesupport" "azure_graph_rbac" "azure_mgmt_key_vault" "azure_mgmt_resources" "azure_mgmt_security" "azure_mgmt_storage" "docker-api" "google-api-client" "googleauth" "inifile" "train-core" "train-winrm"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1y7aggjyarc531a0vmh86vdqr6ws3y3h64jnkh8cavpqns4jhmjg";
+      sha256 = "09nflqvdgzxfncr8qki0jhnarfg36mii0h6hi2cd71q49613m6gk";
       type = "gem";
     };
-    version = "3.2.22";
+    version = "3.4.9";
   };
   train-aws = {
-    dependencies = ["aws-sdk-apigateway" "aws-sdk-apigatewayv2" "aws-sdk-athena" "aws-sdk-autoscaling" "aws-sdk-budgets" "aws-sdk-cloudformation" "aws-sdk-cloudhsm" "aws-sdk-cloudhsmv2" "aws-sdk-cloudtrail" "aws-sdk-cloudwatch" "aws-sdk-cloudwatchlogs" "aws-sdk-codecommit" "aws-sdk-codedeploy" "aws-sdk-codepipeline" "aws-sdk-configservice" "aws-sdk-core" "aws-sdk-costandusagereportservice" "aws-sdk-dynamodb" "aws-sdk-ec2" "aws-sdk-ecr" "aws-sdk-ecs" "aws-sdk-eks" "aws-sdk-elasticache" "aws-sdk-elasticbeanstalk" "aws-sdk-elasticloadbalancing" "aws-sdk-elasticloadbalancingv2" "aws-sdk-elasticsearchservice" "aws-sdk-firehose" "aws-sdk-iam" "aws-sdk-kafka" "aws-sdk-kinesis" "aws-sdk-kms" "aws-sdk-lambda" "aws-sdk-organizations" "aws-sdk-rds" "aws-sdk-redshift" "aws-sdk-route53" "aws-sdk-route53domains" "aws-sdk-route53resolver" "aws-sdk-s3" "aws-sdk-securityhub" "aws-sdk-ses" "aws-sdk-sms" "aws-sdk-sns" "aws-sdk-sqs" "aws-sdk-ssm"];
+    dependencies = ["aws-sdk-apigateway" "aws-sdk-apigatewayv2" "aws-sdk-applicationautoscaling" "aws-sdk-athena" "aws-sdk-autoscaling" "aws-sdk-batch" "aws-sdk-budgets" "aws-sdk-cloudformation" "aws-sdk-cloudfront" "aws-sdk-cloudhsm" "aws-sdk-cloudhsmv2" "aws-sdk-cloudtrail" "aws-sdk-cloudwatch" "aws-sdk-cloudwatchevents" "aws-sdk-cloudwatchlogs" "aws-sdk-codecommit" "aws-sdk-codedeploy" "aws-sdk-codepipeline" "aws-sdk-cognitoidentity" "aws-sdk-cognitoidentityprovider" "aws-sdk-configservice" "aws-sdk-core" "aws-sdk-costandusagereportservice" "aws-sdk-databasemigrationservice" "aws-sdk-dynamodb" "aws-sdk-ec2" "aws-sdk-ecr" "aws-sdk-ecs" "aws-sdk-efs" "aws-sdk-eks" "aws-sdk-elasticache" "aws-sdk-elasticbeanstalk" "aws-sdk-elasticloadbalancing" "aws-sdk-elasticloadbalancingv2" "aws-sdk-elasticsearchservice" "aws-sdk-firehose" "aws-sdk-glue" "aws-sdk-guardduty" "aws-sdk-iam" "aws-sdk-kafka" "aws-sdk-kinesis" "aws-sdk-kms" "aws-sdk-lambda" "aws-sdk-organizations" "aws-sdk-ram" "aws-sdk-rds" "aws-sdk-redshift" "aws-sdk-route53" "aws-sdk-route53domains" "aws-sdk-route53resolver" "aws-sdk-s3" "aws-sdk-secretsmanager" "aws-sdk-securityhub" "aws-sdk-servicecatalog" "aws-sdk-ses" "aws-sdk-shield" "aws-sdk-sms" "aws-sdk-sns" "aws-sdk-sqs" "aws-sdk-ssm" "aws-sdk-states" "aws-sdk-transfer"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dvwzk9h5kzbb9v6qm387mfysjz4nfcr56685ccl5c1jj5a59553";
+      sha256 = "014cbgkzkw1rf7652h1xqshb9crr6pn2yhlv1z41ndxlkmmdx4fg";
       type = "gem";
     };
-    version = "0.1.15";
+    version = "0.1.35";
   };
   train-core = {
-    dependencies = ["addressable" "inifile" "json" "mixlib-shellout" "net-scp" "net-ssh"];
+    dependencies = ["addressable" "ffi" "json" "mixlib-shellout" "net-scp" "net-ssh"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dfqyfi4q2vykbiw4b373n7n2aqzhq9gkn8sr3sx2w7hpd7lkd3x";
+      sha256 = "1pbfbmi9l5hxr1zly1bc72fk8a6by4d19wdap8q3mi3rlflqzbfp";
       type = "gem";
     };
-    version = "3.2.22";
+    version = "3.4.9";
   };
   train-habitat = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w642zkvgq0d1dy622lk50ngr0872v6ghd4r1g692qv8g4k6d90n";
+      sha256 = "0qdi2q5djzfl6x3fv2vrvybjdvrnx53nfh4vzrcl2h7nrf801n6v";
       type = "gem";
     };
-    version = "0.2.13";
+    version = "0.2.22";
   };
   train-winrm = {
-    dependencies = ["winrm" "winrm-fs"];
+    dependencies = ["winrm" "winrm-elevated" "winrm-fs"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0x4sv6hblq9y259aka6j868di2w669f6aj2m7ssi5jxhanaf5mqk";
+      sha256 = "0nin3qfkh173yjcihxaz0sbnskds9n1n0ciphc7y70647vpsqgrh";
       type = "gem";
     };
-    version = "0.2.6";
+    version = "0.2.12";
   };
   treetop = {
     dependencies = ["polyglot"];
@@ -2249,10 +2322,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g31pijhnv7z960sd09lckmw9h8rs3wmc8g4ihmppszxqm99zpv7";
+      sha256 = "0697qz1akblf8r3wi0s2dsjh468hfsd57fb0mrp93z35y2ni6bhh";
       type = "gem";
     };
-    version = "1.6.10";
+    version = "1.6.11";
   };
   tty-box = {
     dependencies = ["pastel" "strings" "tty-cursor"];
@@ -2260,20 +2333,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14g63v0jx87hba50rlv3c521zg9rw0f5d31cihcvym19xxa7v3l5";
+      sha256 = "12yzhl3s165fl8pkfln6mi6mfy3vg7p63r3dvcgqfhyzq6h57x0p";
       type = "gem";
     };
-    version = "0.5.0";
+    version = "0.7.0";
   };
   tty-color = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0czbnp19cfnf5zwdd22payhqjv57mgi3gj5n726s20vyq3br6bsp";
+      sha256 = "0aik4kmhwwrmkysha7qibi2nyzb4c8kp42bd5vxnf8sf7b53g73g";
       type = "gem";
     };
-    version = "0.5.1";
+    version = "0.6.0";
   };
   tty-cursor = {
     groups = ["default"];
@@ -2286,15 +2359,15 @@
     version = "0.7.1";
   };
   tty-prompt = {
-    dependencies = ["necromancer" "pastel" "tty-reader"];
+    dependencies = ["pastel" "tty-reader"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19kbxny8cfsy1r02awih1gf76mi3a7zqg3ymxpmf9720khlmziax";
+      sha256 = "0rhvwpl5wk51njrh3avm09c8pwl2z5iwc0l67h40gq3r7ix2fjk2";
       type = "gem";
     };
-    version = "0.20.0";
+    version = "0.23.0";
   };
   tty-reader = {
     dependencies = ["tty-cursor" "tty-screen" "wisper"];
@@ -2302,31 +2375,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1977ajs9sxwhd88qqmf6l1hw63dqxlvg9mx626rymsc5ap2xa1r4";
+      sha256 = "1cf2k7w7d84hshg4kzrjvk9pkyc2g1m3nx2n1rpmdcf0hp4p4af6";
       type = "gem";
     };
-    version = "0.7.0";
+    version = "0.9.0";
   };
   tty-screen = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jwgr2i3wilng3mx851xczmkzllbirmsmr42ik4amqyyvry1yzyf";
+      sha256 = "18jr6s1cg8yb26wzkqa6874q0z93rq0y5aw092kdqazk71y6a235";
       type = "gem";
     };
-    version = "0.7.1";
+    version = "0.8.1";
   };
   tty-table = {
-    dependencies = ["equatable" "necromancer" "pastel" "strings" "tty-screen"];
+    dependencies = ["pastel" "strings" "tty-screen"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1y07yikpk65jqmxinw8l4c45pbw1b2h4fv9fikb43a7sdlr6sn69";
+      sha256 = "0fcrbfb0hjd9vkkazkksri93dv9wgs2hp6p1xwb1lp43a13pmhpx";
       type = "gem";
     };
-    version = "0.11.0";
+    version = "0.12.0";
   };
   tzinfo = {
     dependencies = ["thread_safe"];
@@ -2334,10 +2407,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04f18jdv6z3zn3va50rqq35nj3izjpb72fnf21ixm7vanq6nc4fp";
+      sha256 = "0zwqqh6138s8b321fwvfbywxy00lw1azw4ql3zr0xh1aqxf8cnvj";
       type = "gem";
     };
-    version = "1.2.6";
+    version = "1.2.9";
   };
   uber = {
     groups = ["default"];
@@ -2365,20 +2438,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04d13bp6lyg695x94whjwsmzc2ms72d94vx861nx1y40k3817yp8";
+      sha256 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4";
       type = "gem";
     };
-    version = "0.0.7.2";
+    version = "0.0.7.7";
   };
   unicode-display_width = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pppclzq4qb26g321553nm9xqca3zgllvpwb2kqxsdadwj51s09x";
+      sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
       type = "gem";
     };
-    version = "1.6.1";
+    version = "1.7.0";
   };
   unicode_utils = {
     groups = ["default"];
@@ -2406,10 +2479,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13c0vf32vinkp3ia86rvq779dacl37v4v2814v4g9qrk3liv0dym";
+      sha256 = "0nxf6a47d1xf1nvi7rbfbzjyyjhz0iakrnrsr2hj6y24a381sd8i";
       type = "gem";
     };
-    version = "2.3.4";
+    version = "2.3.6";
   };
   winrm-elevated = {
     dependencies = ["erubi" "winrm" "winrm-fs"];
@@ -2417,10 +2490,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yawwrs3pnvbbm9xn0nbzvyl92kgf1jr439qfbqx0mb8zzkyi2dv";
+      sha256 = "1lmlaii8qapn84wxdg5d82gbailracgk67d0qsnbdnffcg8kswzd";
       type = "gem";
     };
-    version = "1.2.1";
+    version = "1.2.3";
   };
   winrm-fs = {
     dependencies = ["erubi" "logging" "rubyzip" "winrm"];
@@ -2428,10 +2501,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0phhzliw47hmpi3ddygs500kfxa7il5yzmp7dw4ix2dvhrxrj7s6";
+      sha256 = "0gb91k6s1yjqw387x4w1nkpnxblq3pjdqckayl0qvz5n3ygdsb0d";
       type = "gem";
     };
-    version = "1.3.3";
+    version = "1.3.5";
   };
   wisper = {
     groups = ["default"];
diff --git a/pkgs/development/tools/skaffold/default.nix b/pkgs/development/tools/skaffold/default.nix
index fc1f5c3f31736..1599c4213a17b 100644
--- a/pkgs/development/tools/skaffold/default.nix
+++ b/pkgs/development/tools/skaffold/default.nix
@@ -1,13 +1,21 @@
-{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "skaffold";
-  version = "1.17.2";
+  version = "1.20.0";
+
+  src = fetchFromGitHub {
+    owner = "GoogleContainerTools";
+    repo = "skaffold";
+    rev = "v${version}";
+    sha256 = "080zhksznwsyi0w1ban90vgh8y1q2703h3h4fvkwg695prd9ij66";
+  };
+
+  vendorSha256 = "1jvrk5jhjzg0dq0zg7p4hvjwda2289cmwh0ldz3269y8g3l113x8";
 
-  goPackagePath = "github.com/GoogleContainerTools/skaffold";
   subPackages = ["cmd/skaffold"];
 
-  buildFlagsArray = let t = "${goPackagePath}/pkg/skaffold"; in  ''
+  buildFlagsArray = let t = "github.com/GoogleContainerTools/skaffold/pkg/skaffold"; in  ''
     -ldflags=
       -s -w
       -X ${t}/version.version=v${version}
@@ -15,24 +23,24 @@ buildGoPackage rec {
       -X ${t}/version.buildDate=unknown
   '';
 
-  src = fetchFromGitHub {
-    owner = "GoogleContainerTools";
-    repo = "skaffold";
-    rev = "v${version}";
-    sha256 = "1sn4pmikap93kpdgcalgb3nam7zp60ck6wmynsv8dnzihrr7ycm3";
-  };
-
   nativeBuildInputs = [ installShellFiles ];
+
   postInstall = ''
-    for shell in bash zsh; do
-      $out/bin/skaffold completion $shell > skaffold.$shell
-      installShellCompletion skaffold.$shell
-    done
+    installShellCompletion --cmd skaffold \
+      --bash <($out/bin/skaffold completion bash) \
+      --zsh <($out/bin/skaffold completion zsh)
   '';
 
   meta = with lib; {
-    description = "Easy and Repeatable Kubernetes Development";
     homepage = "https://skaffold.dev/";
+    changelog = "https://github.com/GoogleContainerTools/skaffold/releases/tag/v${version}";
+    description = "Easy and Repeatable Kubernetes Development";
+    longDescription = ''
+      Skaffold is a command line tool that facilitates continuous development for Kubernetes applications.
+      You can iterate on your application source code locally then deploy to local or remote Kubernetes clusters.
+      Skaffold handles the workflow for building, pushing and deploying your application.
+      It also provides building blocks and describe customizations for a CI/CD pipeline.
+    '';
     license = licenses.asl20;
     maintainers = with maintainers; [ vdemeester ];
   };
diff --git a/pkgs/misc/emulators/dlx/default.nix b/pkgs/misc/emulators/dlx/default.nix
index 3360d45ccc83d..7ba4516a49864 100644
--- a/pkgs/misc/emulators/dlx/default.nix
+++ b/pkgs/misc/emulators/dlx/default.nix
@@ -8,9 +8,9 @@ stdenv.mkDerivation {
     sha256 = "0q5hildq2xcig7yrqi26n7fqlanyssjirm7swy2a9icfxpppfpkn";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
-  makeFlags = [ "LINK=gcc" "CFLAGS=-O2" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "LINK=${stdenv.cc.targetPrefix}cc" "CFLAGS=-O2" ];
 
   hardeningDisable = [ "format" ];
 
@@ -26,6 +26,6 @@ stdenv.mkDerivation {
     homepage = "http://www.davidviner.com/dlx.php";
     description = "DLX Simulator";
     license = lib.licenses.gpl2;
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix
index a4a7adeb8b791..6c034e1c2af0c 100644
--- a/pkgs/os-specific/linux/busybox/default.nix
+++ b/pkgs/os-specific/linux/busybox/default.nix
@@ -118,9 +118,11 @@ stdenv.mkDerivation rec {
     logger() { '$out'/bin/logger "$@"; }\
     ' ${debianDispatcherScript} > ${outDispatchPath}
     chmod 555 ${outDispatchPath}
-    PATH=$out/bin patchShebangs ${outDispatchPath}
+    HOST_PATH=$out/bin patchShebangs --host ${outDispatchPath}
   '';
 
+  strictDeps = true;
+
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
   buildInputs = lib.optionals (enableStatic && !useMusl && stdenv.cc.libc ? static) [ stdenv.cc.libc stdenv.cc.libc.static ];
diff --git a/pkgs/shells/fish/wrapper.nix b/pkgs/shells/fish/wrapper.nix
index 053568bc6b9bb..6713a69d560ea 100644
--- a/pkgs/shells/fish/wrapper.nix
+++ b/pkgs/shells/fish/wrapper.nix
@@ -14,12 +14,12 @@ let
   complPath = completionDirs ++ map (vendorDir "completions") pluginPkgs;
   funcPath = functionDirs ++ map (vendorDir "functions") pluginPkgs;
   confPath = confDirs ++ map (vendorDir "conf") pluginPkgs;
-  safeConfPath = map escapeShellArg confPath;
 
 in writeShellScriptBin "fish" ''
   ${fish}/bin/fish --init-command "
     set --prepend fish_complete_path ${escapeShellArgs complPath}
     set --prepend fish_function_path ${escapeShellArgs funcPath}
-    for c in {${concatStringsSep "," safeConfPath}}/*; source $c; end
+    set --local fish_conf_source_path ${escapeShellArgs confPath}
+    for c in $fish_conf_source_path/*; source $c; end
   " "$@"
 '')
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index 8766e957aaf3e..f040b17f89226 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -30,11 +30,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "tor";
-  version = "0.4.4.7";
+  version = "0.4.5.6";
 
   src = fetchurl {
     url = "https://dist.torproject.org/${pname}-${version}.tar.gz";
-    sha256 = "1vh5kdx7s74il8a6gr7jydbpv0an01nla4y2r8w7h33z2wk2jv9j";
+    sha256 = "0cz78pjw2bc3kl3ziip1nhhbq89crv315rf1my3zmmgd9xws7jr2";
   };
 
   outputs = [ "out" "geoip" ];
diff --git a/pkgs/tools/system/auto-cpufreq/default.nix b/pkgs/tools/system/auto-cpufreq/default.nix
index b4bef5fc5e397..f86ac47fdde61 100644
--- a/pkgs/tools/system/auto-cpufreq/default.nix
+++ b/pkgs/tools/system/auto-cpufreq/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "auto-cpufreq";
-  version = "1.5.3";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "AdnanHodzic";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-NDIdQ4gUN2jG+VWXsv3fdUogZxOOiNtnbekD30+jx6M=";
+    sha256 = "sha256-oz3C1150CPfT0kkx1x7VIX/Rm06dkjyxeDPFCRJaWNc=";
   };
 
   propagatedBuildInputs = with python3Packages; [ click distro psutil ];
diff --git a/pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch b/pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch
index 232ac780341a8..7f86f6eda0e2c 100644
--- a/pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch
+++ b/pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch
@@ -1,8 +1,17 @@
 diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py
-index 482a544..d142013 100644
+index a685db8..1ca1ca1 100644
 --- a/auto_cpufreq/core.py
 +++ b/auto_cpufreq/core.py
-@@ -163,31 +163,13 @@ def get_current_gov():
+@@ -72,7 +72,7 @@ def app_version():
+             print("Git commit:", check_output(["git", "describe", "--always"]).strip().decode())
+         else:
+             print(getoutput("pacman -Qi auto-cpufreq | grep Version"))
+-    else:        
++    else:
+         # source code (auto-cpufreq-installer)
+         try:
+             print("Git commit:", check_output(["git", "describe", "--always"]).strip().decode())
+@@ -179,31 +179,13 @@ def get_current_gov():
      return print("Currently using:", getoutput("cpufreqctl.auto-cpufreq --governor").strip().split(" ")[0], "governor")
  
  def cpufreqctl():
@@ -38,8 +47,8 @@ index 482a544..d142013 100644
  
  def footer(l=79):
      print("\n" + "-" * l + "\n")
-@@ -212,74 +194,12 @@ def remove_complete_msg():
- 
+@@ -233,74 +215,12 @@ def remove_complete_msg():
+     footer()
  
  def deploy_daemon():
 -    print("\n" + "-" * 21 + " Deploying auto-cpufreq as a daemon " + "-" * 22 + "\n")
@@ -60,7 +69,7 @@ index 482a544..d142013 100644
 -    except:
 -        print("\nERROR:\nWas unable to turn off bluetooth on boot")
 -
--    auto_cpufreq_log_path.touch(exist_ok=True)
+-    auto_cpufreq_stats_path.touch(exist_ok=True)
 -
 -    print("\n* Deploy auto-cpufreq install script")
 -    shutil.copy(SCRIPTS_DIR / "auto-cpufreq-install.sh", "/usr/bin/auto-cpufreq-install")
@@ -102,12 +111,12 @@ index 482a544..d142013 100644
 -    # remove auto-cpufreq-remove
 -    os.remove("/usr/bin/auto-cpufreq-remove")
 -
--    # delete log file
--    if auto_cpufreq_log_path.exists():
--        if auto_cpufreq_log_file is not None:
--            auto_cpufreq_log_file.close()
+-    # delete stats file
+-    if auto_cpufreq_stats_path.exists():
+-        if auto_cpufreq_stats_file is not None:
+-            auto_cpufreq_stats_file.close()
 -
--        auto_cpufreq_log_path.unlink()
+-        auto_cpufreq_stats_path.unlink()
 -
 -    # restore original cpufrectl script
 -    cpufreqctl_restore()
@@ -116,6 +125,15 @@ index 482a544..d142013 100644
  
  def gov_check():
      for gov in get_avail_gov():
+@@ -331,7 +251,7 @@ def countdown(s):
+     if auto_cpufreq_stats_file is not None:
+         auto_cpufreq_stats_file.seek(0)
+         auto_cpufreq_stats_file.truncate(0)
+-                
++
+         # execution timestamp
+         from datetime import datetime
+         now = datetime.now()
 diff --git a/scripts/cpufreqctl.sh b/scripts/cpufreqctl.sh
 index 63a2b5b..e157efe 100755
 --- a/scripts/cpufreqctl.sh
diff --git a/pkgs/tools/misc/clipman/default.nix b/pkgs/tools/wayland/clipman/default.nix
index 80a0afe68d363..3a2c2ca6015cb 100644
--- a/pkgs/tools/misc/clipman/default.nix
+++ b/pkgs/tools/wayland/clipman/default.nix
@@ -1,4 +1,9 @@
-{ buildGoModule, fetchFromGitHub, lib, wl-clipboard, makeWrapper }:
+{ buildGoModule
+, fetchFromGitHub
+, lib
+, wl-clipboard
+, makeWrapper
+}:
 
 buildGoModule rec {
   pname = "clipman";
@@ -24,9 +29,9 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/yory8/clipman";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ ma27 ];
     description = "A simple clipboard manager for Wayland";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ ma27 ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/kanshi/default.nix b/pkgs/tools/wayland/kanshi/default.nix
index 90ee2a3446b57..c661c98a24bbe 100644
--- a/pkgs/tools/misc/kanshi/default.nix
+++ b/pkgs/tools/wayland/kanshi/default.nix
@@ -1,4 +1,12 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, scdoc, wayland }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, scdoc
+, wayland
+}:
 
 stdenv.mkDerivation rec {
   pname = "kanshi";
@@ -15,6 +23,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ wayland ];
 
   meta = with lib; {
+    homepage = "https://github.com/emersion/kanshi";
     description = "Dynamic display configuration tool";
     longDescription = ''
       kanshi allows you to define output profiles that are automatically enabled
@@ -24,8 +33,6 @@ stdenv.mkDerivation rec {
       kanshi can be used on Wayland compositors supporting the
       wlr-output-management protocol.
     '';
-    homepage = "https://github.com/emersion/kanshi";
-    downloadPage = "https://github.com/emersion/kanshi";
     license = licenses.mit;
     maintainers = with maintainers; [ balsoft ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/wayland/oguri/default.nix b/pkgs/tools/wayland/oguri/default.nix
new file mode 100644
index 0000000000000..458ea310a01df
--- /dev/null
+++ b/pkgs/tools/wayland/oguri/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, meson
+, ninja
+, cairo
+, gdk-pixbuf
+, wayland
+, wayland-protocols
+}:
+
+stdenv.mkDerivation rec {
+  pname = "oguri";
+  version = "unstable-2020-12-19";
+
+  src = fetchFromGitHub {
+    owner = "vilhalmer";
+    repo = pname;
+    rev = "6937fee10a9b0ef3ad8f94f606c0e0d9e7dec564";
+    sha256 = "sXNvpI/YPDPd2cXQAfRO4ut21gSCXxbo1DpaZmHJDYQ=";
+  };
+
+  nativeBuildInputs = [ pkg-config meson ninja ];
+  buildInputs = [
+    cairo
+    gdk-pixbuf
+    wayland
+    wayland-protocols
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/vilhalmer/oguri/";
+    description = "A very nice animated wallpaper daemon for Wayland compositors";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/misc/slurp/default.nix b/pkgs/tools/wayland/slurp/default.nix
index ed4bb0037fbea..107ef68da5654 100644
--- a/pkgs/tools/misc/slurp/default.nix
+++ b/pkgs/tools/wayland/slurp/default.nix
@@ -1,5 +1,13 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config
-, cairo, libxkbcommon, wayland, wayland-protocols
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, cairo
+, libxkbcommon
+, wayland
+, wayland-protocols
 , buildDocs ? true, scdoc
 }:
 
@@ -33,7 +41,7 @@ stdenv.mkDerivation rec {
     description = "Select a region in a Wayland compositor";
     homepage = "https://github.com/emersion/slurp";
     license = licenses.mit;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ buffet ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/wev/default.nix b/pkgs/tools/wayland/wev/default.nix
index c1debfd924da8..83e4113f7ea2a 100644
--- a/pkgs/tools/misc/wev/default.nix
+++ b/pkgs/tools/wayland/wev/default.nix
@@ -1,6 +1,11 @@
-{ lib, stdenv, fetchurl
-, pkg-config, scdoc, wayland
-, wayland-protocols, libxkbcommon
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, scdoc
+, wayland
+, wayland-protocols
+, libxkbcommon
 }:
 
 stdenv.mkDerivation rec {
@@ -18,14 +23,14 @@ stdenv.mkDerivation rec {
   installFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
+    homepage = "https://git.sr.ht/~sircmpwn/wev";
     description = "Wayland event viewer";
     longDescription = ''
       This is a tool for debugging events on a Wayland window, analagous to the
       X11 tool xev.
     '';
-    homepage = "https://git.sr.ht/~sircmpwn/wev";
     license = licenses.mit;
-    platforms = platforms.unix;
     maintainers = with maintainers; [ primeos ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/wl-clipboard/default.nix b/pkgs/tools/wayland/wl-clipboard/default.nix
index 676ff03ad9b4f..0bc195e962608 100644
--- a/pkgs/tools/misc/wl-clipboard/default.nix
+++ b/pkgs/tools/wayland/wl-clipboard/default.nix
@@ -1,5 +1,12 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config
-, wayland, wayland-protocols }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, wayland
+, wayland-protocols
+}:
 
 stdenv.mkDerivation rec {
   pname = "wl-clipboard";
@@ -16,10 +23,11 @@ stdenv.mkDerivation rec {
   buildInputs = [ wayland ];
 
   meta = with lib; {
-    description = "Command-line copy/paste utilities for Wayland";
     homepage = "https://github.com/bugaevc/wl-clipboard";
-    license = licenses.gpl3;
+    description = "Command-line copy/paste utilities for Wayland";
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dywedir ];
     platforms = platforms.linux;
   };
 }
+# TODO: is wayland-protocols a nativeBuildInput or a buildInput?
diff --git a/pkgs/tools/wayland/wlogout/default.nix b/pkgs/tools/wayland/wlogout/default.nix
new file mode 100644
index 0000000000000..2625405808cce
--- /dev/null
+++ b/pkgs/tools/wayland/wlogout/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, meson
+, ninja
+, scdoc
+, gtk3
+, libxkbcommon
+, wayland
+, wayland-protocols
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wlogout";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "ArtsyMacaw";
+    repo = "wlogout";
+    rev = version;
+    sha256 = "cTscfx+erHVFHwwYpN7pADQWt5sq75sQSyXSP/H8kOs=";
+  };
+
+  nativeBuildInputs = [ pkg-config meson ninja scdoc ];
+  buildInputs = [
+    gtk3
+    libxkbcommon
+    wayland
+    wayland-protocols
+  ];
+
+  postPatch = ''
+    substituteInPlace style.css \
+      --replace "/usr/share/wlogout" "$out/share/${pname}"
+
+    substituteInPlace main.c \
+      --replace "/etc/wlogout" "$out/etc/${pname}"
+  '';
+
+  mesonFlags = [
+    "--datadir=${placeholder "out"}/share"
+    "--sysconfdir=${placeholder "out"}/etc"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/ArtsyMacaw/wlogout";
+    description = "A wayland based logout menu";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
+# TODO: shell completions
diff --git a/pkgs/tools/misc/wlr-randr/default.nix b/pkgs/tools/wayland/wlr-randr/default.nix
index b635316bf777b..e2c941998a99c 100644
--- a/pkgs/tools/misc/wlr-randr/default.nix
+++ b/pkgs/tools/wayland/wlr-randr/default.nix
@@ -1,4 +1,11 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, cmake, pkg-config, wayland }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, wayland
+}:
 
 stdenv.mkDerivation rec {
   pname = "wlr-randr";
@@ -11,13 +18,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-JeSxFXSFxcTwJz9EaLb18wtD4ZIT+ATeYM5OyDTJhDQ=";
   };
 
-  nativeBuildInputs = [ meson ninja cmake pkg-config ];
+  nativeBuildInputs = [ meson ninja pkg-config ];
   buildInputs = [ wayland ];
 
   meta = with lib; {
-    license = licenses.mit;
     description = "An xrandr clone for wlroots compositors";
     homepage = "https://github.com/emersion/wlr-randr";
+    license = licenses.mit;
     maintainers = with maintainers; [ ma27 ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/wob/default.nix b/pkgs/tools/wayland/wob/default.nix
index e0622e5416aae..3567ed6eea41d 100644
--- a/pkgs/tools/misc/wob/default.nix
+++ b/pkgs/tools/wayland/wob/default.nix
@@ -1,6 +1,13 @@
-{ lib, stdenv, fetchFromGitHub
-, meson, ninja, pkg-config, scdoc, wayland # wayland-scanner
-, wayland-protocols, libseccomp
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, scdoc
+, libseccomp
+, wayland # wayland-scanner
+, wayland-protocols
 }:
 
 stdenv.mkDerivation rec {
@@ -21,15 +28,15 @@ stdenv.mkDerivation rec {
   mesonFlags = lib.optional stdenv.isLinux "-Dseccomp=enabled";
 
   meta = with lib; {
+    inherit (src.meta) homepage;
     description = "A lightweight overlay bar for Wayland";
     longDescription = ''
       A lightweight overlay volume/backlight/progress/anything bar for Wayland,
       inspired by xob.
     '';
-    inherit (src.meta) homepage;
     changelog = "https://github.com/francma/wob/releases/tag/${version}";
     license = licenses.isc;
-    platforms = platforms.unix;
     maintainers = with maintainers; [ primeos ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 5720e098ca599..cf905a4bd40ca 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1964,7 +1964,33 @@ in
 
   chntpw = callPackage ../tools/security/chntpw { };
 
-  clipman = callPackage ../tools/misc/clipman { };
+  clipman = callPackage ../tools/wayland/clipman { };
+
+  kanshi = callPackage ../tools/wayland/kanshi { };
+
+  oguri = callPackage  ../tools/wayland/oguri { };
+
+  slurp = callPackage ../tools/wayland/slurp { };
+
+  wayland-utils = callPackage ../tools/wayland/wayland-utils { };
+
+  wev = callPackage ../tools/wayland/wev { };
+
+  wl-clipboard = callPackage ../tools/wayland/wl-clipboard { };
+
+  wlogout = callPackage ../tools/wayland/wlogout { };
+
+  wlr-randr = callPackage ../tools/wayland/wlr-randr { };
+
+  wlsunset = callPackage ../tools/wayland/wlsunset { };
+
+  wob = callPackage ../tools/wayland/wob { };
+
+  wshowkeys = callPackage ../tools/wayland/wshowkeys { };
+
+  wtype = callPackage ../tools/wayland/wtype { };
+
+  ydotool = callPackage ../tools/wayland/ydotool { };
 
   clipster = callPackage ../tools/misc/clipster { };
 
@@ -3850,22 +3876,8 @@ in
 
   wallutils = callPackage ../tools/graphics/wallutils { };
 
-  wayland-utils = callPackage ../tools/wayland/wayland-utils { };
-
-  wev = callPackage ../tools/misc/wev { };
-
-  wl-clipboard = callPackage ../tools/misc/wl-clipboard { };
-
-  wlsunset = callPackage ../tools/wayland/wlsunset { };
-
-  wob = callPackage ../tools/misc/wob { };
-
-  wtype = callPackage ../tools/wayland/wtype { };
-
   wrangler = callPackage ../development/tools/wrangler { };
 
-  wshowkeys = callPackage ../tools/wayland/wshowkeys { };
-
   wsl-open = callPackage ../tools/misc/wsl-open { };
 
   xkcdpass = with python3Packages; toPythonApplication xkcdpass;
@@ -10163,6 +10175,13 @@ in
     buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
   });
 
+  go_1_16 = callPackage ../development/compilers/go/1.16.nix ({
+    inherit (darwin.apple_sdk.frameworks) Security Foundation;
+  } // lib.optionalAttrs (stdenv.cc.isGNU && stdenv.isAarch64) {
+    stdenv = gcc8Stdenv;
+    buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
+  });
+
   go_2-dev = callPackage ../development/compilers/go/2-dev.nix ({
     inherit (darwin.apple_sdk.frameworks) Security Foundation;
   } // lib.optionalAttrs (stdenv.cc.isGNU && stdenv.isAarch64) {
@@ -17322,8 +17341,6 @@ in
 
   yder = callPackage ../development/libraries/yder { };
 
-  ydotool = callPackage ../tools/wayland/ydotool { };
-
   yojimbo = callPackage ../development/libraries/yojimbo { };
 
   yubioath-desktop = libsForQt5.callPackage ../applications/misc/yubioath-desktop { };
@@ -17483,6 +17500,9 @@ in
   buildGo115Package = callPackage ../development/go-packages/generic {
     go = buildPackages.go_1_15;
   };
+  buildGo116Package = callPackage ../development/go-packages/generic {
+    go = buildPackages.go_1_16;
+  };
 
   buildGoPackage = buildGo115Package;
 
@@ -17492,6 +17512,9 @@ in
   buildGo115Module = callPackage ../development/go-modules/generic {
     go = buildPackages.go_1_15;
   };
+  buildGo116Module = callPackage ../development/go-modules/generic {
+    go = buildPackages.go_1_16;
+  };
 
   buildGoModule = buildGo115Module;
 
@@ -22826,8 +22849,6 @@ in
 
   super-productivity = callPackage ../applications/networking/super-productivity { };
 
-  wlr-randr = callPackage ../tools/misc/wlr-randr { };
-
   wlroots = callPackage ../development/libraries/wlroots { };
 
   sway-unwrapped = callPackage ../applications/window-managers/sway { };
@@ -23134,8 +23155,6 @@ in
 
   kanboard = callPackage ../applications/misc/kanboard { };
 
-  kanshi = callPackage ../tools/misc/kanshi { };
-
   kapitonov-plugins-pack = callPackage ../applications/audio/kapitonov-plugins-pack { };
 
   kapow = libsForQt5.callPackage ../applications/misc/kapow { };
@@ -23926,6 +23945,8 @@ in
 
   qbec = callPackage ../applications/networking/cluster/qbec { };
 
+  qemacs = callPackage ../applications/editors/qemacs { };
+
   rssguard = libsForQt5.callPackage ../applications/networking/feedreaders/rssguard { };
 
   scudcloud = callPackage ../applications/networking/instant-messengers/scudcloud { };
@@ -24835,8 +24856,6 @@ in
 
   slrn = callPackage ../applications/networking/newsreaders/slrn { };
 
-  slurp = callPackage ../tools/misc/slurp { };
-
   sniproxy = callPackage ../applications/networking/sniproxy { };
 
   sooperlooper = callPackage ../applications/audio/sooperlooper { };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 5188275295811..c4fb9b2aabd56 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -6144,6 +6144,10 @@ let
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
     buildInputs = [ TestDifferences ];
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/*
+    '';
   };
 
   DevelOverloadInfo = buildPerlPackage {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 9e0922addd44f..9c3d36efba58e 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -6316,6 +6316,8 @@ in {
 
   python-engineio = callPackage ../development/python-modules/python-engineio { };
 
+  python-engineio_3 = callPackage ../development/python-modules/python-engineio/3.nix { };
+
   python-etcd = callPackage ../development/python-modules/python-etcd { };
 
   python_fedora = callPackage ../development/python-modules/python_fedora { };
@@ -6456,6 +6458,8 @@ in {
 
   python-socketio = callPackage ../development/python-modules/python-socketio { };
 
+  python-socketio_4 = callPackage ../development/python-modules/python-socketio/4.nix { };
+
   python-sql = callPackage ../development/python-modules/python-sql { };
 
   python_statsd = callPackage ../development/python-modules/python_statsd { };