about summary refs log tree commit diff
path: root/nixpkgs/pkgs/shells
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2022-12-06 19:57:55 +0000
committerAlyssa Ross <hi@alyssa.is>2023-02-08 13:48:30 +0000
commitbf3aadfdd39aa197e18bade671fab6726349ffa4 (patch)
tree698567af766ed441d757b57a7b21e68d4a342a2b /nixpkgs/pkgs/shells
parentf4afc5a01d9539ce09e47494e679c51f80723d07 (diff)
parent99665eb45f58d959d2cb9e49ddb960c79d596f33 (diff)
downloadnixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.gz
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.bz2
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.lz
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.xz
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.zst
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.zip
Merge commit '99665eb45f58d959d2cb9e49ddb960c79d596f33'
Diffstat (limited to 'nixpkgs/pkgs/shells')
-rw-r--r--nixpkgs/pkgs/shells/any-nix-shell/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/bash/5.1.nix3
-rw-r--r--nixpkgs/pkgs/shells/bash/bash-completion/default.nix3
-rw-r--r--nixpkgs/pkgs/shells/bash/blesh/default.nix58
-rw-r--r--nixpkgs/pkgs/shells/bash/fzf-obc/default.nix30
-rw-r--r--nixpkgs/pkgs/shells/bash/nix-bash-completions/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/bash/undistract-me/default.nix2
-rw-r--r--nixpkgs/pkgs/shells/bash/yarn-completion/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/dash/default.nix5
-rw-r--r--nixpkgs/pkgs/shells/dgsh/default.nix3
-rw-r--r--nixpkgs/pkgs/shells/elvish/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/es/default.nix8
-rw-r--r--nixpkgs/pkgs/shells/fish/default.nix16
-rw-r--r--nixpkgs/pkgs/shells/fish/oh-my-fish/default.nix26
-rw-r--r--nixpkgs/pkgs/shells/fish/plugins/autopair-fish.nix20
-rw-r--r--nixpkgs/pkgs/shells/fish/plugins/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/fish/plugins/fzf-fish.nix4
-rw-r--r--nixpkgs/pkgs/shells/fish/plugins/grc.nix20
-rw-r--r--nixpkgs/pkgs/shells/fish/plugins/hydro.nix2
-rw-r--r--nixpkgs/pkgs/shells/hilbish/default.nix17
-rw-r--r--nixpkgs/pkgs/shells/jush/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/liquidprompt/default.nix5
-rw-r--r--nixpkgs/pkgs/shells/loksh/default.nix36
-rw-r--r--nixpkgs/pkgs/shells/mksh/default.nix5
-rw-r--r--nixpkgs/pkgs/shells/mrsh/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/nushell/default.nix41
-rw-r--r--nixpkgs/pkgs/shells/nushell/use-system-zstd-lib.diff32
-rw-r--r--nixpkgs/pkgs/shells/oh/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/oil/default.nix5
-rw-r--r--nixpkgs/pkgs/shells/oksh/default.nix14
-rw-r--r--nixpkgs/pkgs/shells/pash/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/powershell/default.nix19
-rwxr-xr-xnixpkgs/pkgs/shells/powershell/getHashes.sh36
-rw-r--r--nixpkgs/pkgs/shells/rc/default.nix41
-rw-r--r--nixpkgs/pkgs/shells/rush/default.nix17
-rw-r--r--nixpkgs/pkgs/shells/scponly/default.nix11
-rw-r--r--nixpkgs/pkgs/shells/tcsh/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/xonsh/default.nix13
-rw-r--r--nixpkgs/pkgs/shells/yash/default.nix5
-rw-r--r--nixpkgs/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix32
-rw-r--r--nixpkgs/pkgs/shells/zsh/antigen/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/default.nix17
-rw-r--r--nixpkgs/pkgs/shells/zsh/fzf-zsh/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/gradle-completion/default.nix2
-rw-r--r--nixpkgs/pkgs/shells/zsh/grml-zsh-config/default.nix5
-rw-r--r--nixpkgs/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/nix-zsh-completions/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix11
-rw-r--r--nixpkgs/pkgs/shells/zsh/pure-prompt/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/spaceship-prompt/default.nix5
-rw-r--r--nixpkgs/pkgs/shells/zsh/zinit/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/zplug/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-autocomplete/default.nix3
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-autopair/default.nix2
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-autosuggestions/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-bd/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-better-npm-completion/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-clipboard/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-command-time/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix12
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-deer/default.nix2
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-fast-syntax-highlighting/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/darwin.patch11
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/default.nix9
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-history-search-multi-word/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-history-substring-search/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-history/default.nix16
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-nix-shell/default.nix8
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix5
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-powerlevel9k/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-prezto/default.nix11
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-syntax-highlighting/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-system-clipboard/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-vi-mode/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-z/default.nix1
76 files changed, 490 insertions, 203 deletions
diff --git a/nixpkgs/pkgs/shells/any-nix-shell/default.nix b/nixpkgs/pkgs/shells/any-nix-shell/default.nix
index 3bd41a53844c..095347a3ca99 100644
--- a/nixpkgs/pkgs/shells/any-nix-shell/default.nix
+++ b/nixpkgs/pkgs/shells/any-nix-shell/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper, bash }:
 
 stdenv.mkDerivation rec {
   pname = "any-nix-shell";
@@ -11,7 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "0q27rhjhh7k0qgcdcfm8ly5za6wm4rckh633d0sjz87faffkp90k";
   };
 
+  strictDeps = true;
   nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ bash ];
   installPhase = ''
     mkdir -p $out/bin
     cp -r bin $out
diff --git a/nixpkgs/pkgs/shells/bash/5.1.nix b/nixpkgs/pkgs/shells/bash/5.1.nix
index a30c9a4a5072..7cd7fb6905cb 100644
--- a/nixpkgs/pkgs/shells/bash/5.1.nix
+++ b/nixpkgs/pkgs/shells/bash/5.1.nix
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
     "--disable-nls"
   ];
 
+  strictDeps = true;
   # Note: Bison is needed because the patches above modify parse.y.
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ bison ]
@@ -98,7 +99,7 @@ stdenv.mkDerivation rec {
     if interactive
     then ''
       substituteInPlace "$out/bin/bashbug" \
-        --replace '${stdenv.shell}' "$out/bin/bash"
+        --replace '#!/bin/sh' "#!$out/bin/bash"
     ''
     # most space is taken by locale data
     else ''
diff --git a/nixpkgs/pkgs/shells/bash/bash-completion/default.nix b/nixpkgs/pkgs/shells/bash/bash-completion/default.nix
index 6571d572a429..d73afa7e2a97 100644
--- a/nixpkgs/pkgs/shells/bash/bash-completion/default.nix
+++ b/nixpkgs/pkgs/shells/bash/bash-completion/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     sha256 = "1b0iz7da1sgifx1a5wdyx1kxbzys53v0kyk8nhxfipllmm5qka3k";
   };
 
+  strictDeps = true;
   nativeBuildInputs = [ autoreconfHook ];
 
   # tests are super flaky unfortunately, and regularily break.
@@ -45,7 +46,7 @@ stdenv.mkDerivation rec {
   # - ignore test_screen because it assumes vt terminals exist
   checkPhase = ''
     pytest . \
-      ${lib.optionalString (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isAarch32) "--ignore=test/t/test_gcc.py"} \
+      ${lib.optionalString stdenv.hostPlatform.isAarch "--ignore=test/t/test_gcc.py"} \
       --ignore=test/t/test_chsh.py \
       --ignore=test/t/test_ether_wake.py \
       --ignore=test/t/test_ifdown.py \
diff --git a/nixpkgs/pkgs/shells/bash/blesh/default.nix b/nixpkgs/pkgs/shells/bash/blesh/default.nix
new file mode 100644
index 000000000000..f342f408540f
--- /dev/null
+++ b/nixpkgs/pkgs/shells/bash/blesh/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, git
+, bashInteractive
+, glibcLocales
+, runtimeShell
+}:
+
+stdenvNoCC.mkDerivation rec {
+  name = "blesh";
+  version = "unstable-2022-07-24";
+
+  src = fetchFromGitHub {
+    owner = "akinomyoga";
+    repo = "ble.sh";
+    rev = "0b95d5d900b79a63e7f0834da5aa7276b8332a44";
+    hash = "sha256-s/RQKcAFcCUB3Xd/4uOsIgigOE0lCCeVC9K3dfnP/EQ=";
+    fetchSubmodules = true;
+    leaveDotGit = true;
+  };
+
+  nativeBuildInputs = [ git ];
+
+  doCheck = true;
+  checkInputs = [ bashInteractive glibcLocales ];
+  preCheck = "export LC_ALL=en_US.UTF-8";
+
+  installFlags = [ "INSDIR=$(out)/share" ];
+  postInstall = ''
+    mkdir -p "$out/bin"
+    cat <<EOF >"$out/bin/blesh-share"
+    #!${runtimeShell}
+    # Run this script to find the ble.sh shared folder
+    # where all the shell scripts are living.
+    echo "$out/share/ble.sh"
+    EOF
+    chmod +x "$out/bin/blesh-share"
+
+    mkdir -p "$out/share/lib"
+    cat <<EOF >"$out/share/lib/_package.sh"
+    _ble_base_package_type=nix
+
+    function ble/base/package:nix/update {
+      echo "Ble.sh is installed by Nix. You can update it there." >/dev/stderr
+      return 1
+    }
+    EOF
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/akinomyoga/ble.sh";
+    description = "Bash Line Editor -- a full-featured line editor written in pure Bash";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ aiotter ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/shells/bash/fzf-obc/default.nix b/nixpkgs/pkgs/shells/bash/fzf-obc/default.nix
new file mode 100644
index 000000000000..7621ae8c73c0
--- /dev/null
+++ b/nixpkgs/pkgs/shells/bash/fzf-obc/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "fzf-obc";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "rockandska";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-KIAlDpt1Udl+RLp3728utgQ9FCjZz/OyoG92MOJmgPI=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/share/fzf-obc/{bin,lib/fzf-obc,plugins/{kill,gradle}}
+    install -m644 bin/* $out/share/fzf-obc/bin
+    install -m644 lib/fzf-obc/* $out/share/fzf-obc/lib/fzf-obc
+    install -m644 plugins/kill/* $out/share/fzf-obc/plugins/kill
+    install -m644 plugins/gradle/* $out/share/fzf-obc/plugins/gradle
+  '';
+
+  meta = with lib; {
+    homepage = "https://fzf-obc.readthedocs.io";
+    description = "Completion script adding fzf over all know bash completion functions";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ loicreynier ];
+  };
+}
diff --git a/nixpkgs/pkgs/shells/bash/nix-bash-completions/default.nix b/nixpkgs/pkgs/shells/bash/nix-bash-completions/default.nix
index 089e5dfc702f..c4282ab0f646 100644
--- a/nixpkgs/pkgs/shells/bash/nix-bash-completions/default.nix
+++ b/nixpkgs/pkgs/shells/bash/nix-bash-completions/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1n5zs6xcnv4bv1hdaypmz7fv4j7dsr4a0ifah99iyj4p5j85i1bc";
   };
 
+  strictDeps = true;
   # To enable lazy loading via. bash-completion we need a symlink to the script
   # from every command name.
   installPhase = ''
diff --git a/nixpkgs/pkgs/shells/bash/undistract-me/default.nix b/nixpkgs/pkgs/shells/bash/undistract-me/default.nix
index 9ed5544713d7..b15903e779ea 100644
--- a/nixpkgs/pkgs/shells/bash/undistract-me/default.nix
+++ b/nixpkgs/pkgs/shells/bash/undistract-me/default.nix
@@ -43,6 +43,8 @@ stdenvNoCC.mkDerivation rec {
     })
   ];
 
+  strictDeps = true;
+
   # Patch in dependencies. Can't use makeWrapper because the bash
   # functions will be sourced and invoked in a different environment
   # for each command invocation.
diff --git a/nixpkgs/pkgs/shells/bash/yarn-completion/default.nix b/nixpkgs/pkgs/shells/bash/yarn-completion/default.nix
index fabfc0a1ce23..48d1f42b5ced 100644
--- a/nixpkgs/pkgs/shells/bash/yarn-completion/default.nix
+++ b/nixpkgs/pkgs/shells/bash/yarn-completion/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
     sha256 = "0xflbrbwskjqv3knvc8jqygpvfxh5ak66q7w22d1ng8gwrfqzcng";
   };
 
+  strictDeps = true;
   nativeBuildInputs = [ installShellFiles ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/shells/dash/default.nix b/nixpkgs/pkgs/shells/dash/default.nix
index a1f789dc3a33..3b362b4bdeee 100644
--- a/nixpkgs/pkgs/shells/dash/default.nix
+++ b/nixpkgs/pkgs/shells/dash/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dash";
-  version = "0.5.11.4";
+  version = "0.5.11.5";
 
   src = fetchurl {
     url = "http://gondor.apana.org.au/~herbert/dash/files/${pname}-${version}.tar.gz";
-    sha256 = "13g06zqfy4n7jkrbb5l1vw0xcnjvq76i16al8fjc5g33afxbf5af";
+    sha256 = "sha256-23eBEIkfeTeYXym/I0EP4cXWaVAnYPWE5U4OeynhI70=";
   };
 
   hardeningDisable = [ "format" ];
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  strictDeps = true;
   # configure.ac patched; remove on next release
   nativeBuildInputs = [ autoreconfHook ];
 
diff --git a/nixpkgs/pkgs/shells/dgsh/default.nix b/nixpkgs/pkgs/shells/dgsh/default.nix
index 7a6ae67c3ae8..2c98938b46d7 100644
--- a/nixpkgs/pkgs/shells/dgsh/default.nix
+++ b/nixpkgs/pkgs/shells/dgsh/default.nix
@@ -41,5 +41,8 @@ stdenv.mkDerivation {
     license = with licenses; asl20;
     maintainers = with maintainers; [ vrthra ];
     platforms = with platforms; all;
+    # lib/freadseek.c:68:3: error: #error "Please port gnulib freadseek.c to your platform! Look at the definition of getc, getc_unlocked on your >
+    # 68 |  #error "Please port gnulib freadseek.c to your platform! Look at the definition of getc, getc_unlocked on your system, then report >
+    broken = true; # marked 2022-05-06
   };
 }
diff --git a/nixpkgs/pkgs/shells/elvish/default.nix b/nixpkgs/pkgs/shells/elvish/default.nix
index fc61efc3006c..f0c5611e3b3c 100644
--- a/nixpkgs/pkgs/shells/elvish/default.nix
+++ b/nixpkgs/pkgs/shells/elvish/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-iuklI7XEQUgZ2ObYRROxyiccZ1JkajK5OJA7hIcpRZQ=";
 
+  strictDeps = true;
   doCheck = false;
 
   doInstallCheck = true;
diff --git a/nixpkgs/pkgs/shells/es/default.nix b/nixpkgs/pkgs/shells/es/default.nix
index 52131a214a5e..308a684e6f68 100644
--- a/nixpkgs/pkgs/shells/es/default.nix
+++ b/nixpkgs/pkgs/shells/es/default.nix
@@ -3,11 +3,11 @@
 stdenv.mkDerivation rec {
 
   pname = "es";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchurl {
     url = "https://github.com/wryun/es-shell/releases/download/v${version}/es-${version}.tar.gz";
-    sha256 = "1fplzxc6lncz2lv2fyr2ig23rgg5j96rm2bbl1rs28mik771zd5h";
+    sha256 = "sha256-ySZIK0IITpA+uHHuHrDO/Ana5vGt64QI3Z6TMDXE9d0=";
   };
 
   # The distribution tarball does not have a single top-level directory.
@@ -17,7 +17,9 @@ stdenv.mkDerivation rec {
     sourceRoot=.
   '';
 
-  buildInputs = [ readline bison ];
+  strictDeps = true;
+  nativeBuildInputs = [ bison ];
+  buildInputs = [ readline ];
 
   configureFlags = [ "--with-readline" ];
 
diff --git a/nixpkgs/pkgs/shells/fish/default.nix b/nixpkgs/pkgs/shells/fish/default.nix
index 4c45fd3a75f4..4f53883cb77a 100644
--- a/nixpkgs/pkgs/shells/fish/default.nix
+++ b/nixpkgs/pkgs/shells/fish/default.nix
@@ -25,6 +25,7 @@
 , runCommand
 , writeText
 , nixosTests
+, nix-update-script
 , useOperatingSystemEtc ? true
   # An optional string containing Fish code that initializes the environment.
   # This is run at the very beginning of initialization. If it sets $NIX_PROFILES
@@ -134,7 +135,7 @@ let
 
   fish = stdenv.mkDerivation rec {
     pname = "fish";
-    version = "3.4.1";
+    version = "3.5.1";
 
     src = fetchurl {
       # There are differences between the release tarball and the tarball GitHub
@@ -144,7 +145,7 @@ let
       # --version`), as well as the local documentation for all builtins (and
       # maybe other things).
       url = "https://github.com/fish-shell/fish-shell/releases/download/${version}/${pname}-${version}.tar.xz";
-      sha256 = "sha256-tvI7OEOwTbawqQ/qH28NDkDMAntKcyCYIAhj8oZKlOo=";
+      sha256 = "sha256-ptRbPcWkXdMXcuf439/sq8BjmG6PZ9YL18pgzIHbaSg=";
     };
 
     # Fix FHS paths in tests
@@ -180,12 +181,14 @@ let
       rm tests/pexpects/exit.py
       rm tests/pexpects/job_summary.py
       rm tests/pexpects/signals.py
-    '' + lib.optionalString (stdenv.isLinux && stdenv.isAarch64) ''
-      # pexpect tests are flaky on aarch64-linux
+    '' + lib.optionalString stdenv.isLinux ''
+      # pexpect tests are flaky on aarch64-linux (also x86_64-linux)
       # See https://github.com/fish-shell/fish-shell/issues/8789
       rm tests/pexpects/exit_handlers.py
     '';
 
+    outputs = [ "out" "doc" ];
+    strictDeps = true;
     nativeBuildInputs = [
       cmake
       gettext
@@ -198,7 +201,7 @@ let
     ];
 
     cmakeFlags = [
-      "-DCMAKE_INSTALL_DOCDIR=${placeholder "out"}/share/doc/fish"
+      "-DCMAKE_INSTALL_DOCDIR=${placeholder "doc"}/share/doc/fish"
     ] ++ lib.optionals stdenv.isDarwin [
       "-DMAC_CODESIGN_ID=OFF"
     ];
@@ -285,7 +288,7 @@ let
       homepage = "https://fishshell.com/";
       license = licenses.gpl2;
       platforms = platforms.unix;
-      maintainers = with maintainers; [ cole-h ];
+      maintainers = with maintainers; [ cole-h winter srapenne ];
     };
 
     passthru = {
@@ -324,6 +327,7 @@ let
             ${fish}/bin/fish ${fishScript} && touch $out
           '';
       };
+      updateScript = nix-update-script { attrPath = pname; };
     };
   };
 in
diff --git a/nixpkgs/pkgs/shells/fish/oh-my-fish/default.nix b/nixpkgs/pkgs/shells/fish/oh-my-fish/default.nix
index e0dca9419ebc..6c09599972d1 100644
--- a/nixpkgs/pkgs/shells/fish/oh-my-fish/default.nix
+++ b/nixpkgs/pkgs/shells/fish/oh-my-fish/default.nix
@@ -6,17 +6,18 @@
 , writeShellScript
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "oh-my-fish";
-  version = "7+unstable=2021-03-03";
+  version = "unstable-2022-03-27";
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
-    rev = "0b1396ad7962073fa25615bf03c43b53eddc2d56";
-    hash = "sha256-lwMo4+PcYR9kYJPWK+ALiMfBdxFSgB2vjtSn8QrmmEA=";
+    owner = finalAttrs.pname;
+    repo = finalAttrs.pname;
+    rev = "d428b723c8c18fef3b2a00b8b8b731177f483ad8";
+    hash = "sha256-msItKEPe7uSUpDAfCfdYZjt5NyfM3KtOrLUTO9NGqlg=";
   };
 
+  strictDeps = true;
   buildInputs = [
     fish
   ];
@@ -27,21 +28,21 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
 
-    mkdir -pv $out/bin $out/share/${pname}
-    cp -vr * $out/share/${pname}
+    mkdir -pv $out/bin $out/share/${finalAttrs.pname}
+    cp -vr * $out/share/${finalAttrs.pname}
 
     cat << EOF > $out/bin/omf-install
     #!${runtimeShell}
 
     ${fish}/bin/fish \\
-      $out/share/${pname}/bin/install \\
+      $out/share/${finalAttrs.pname}/bin/install \\
       --noninteractive \\
-      --offline=$out/share/${pname}
+      --offline=$out/share/${finalAttrs.pname}
 
     EOF
     chmod +x $out/bin/omf-install
 
-    runHook PostInstall
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -54,7 +55,8 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres ];
+    mainProgram = "omf-install";
     platforms = fish.meta.platforms;
   };
-}
+})
 # TODO: customize the omf-install script
diff --git a/nixpkgs/pkgs/shells/fish/plugins/autopair-fish.nix b/nixpkgs/pkgs/shells/fish/plugins/autopair-fish.nix
new file mode 100644
index 000000000000..292d492f2046
--- /dev/null
+++ b/nixpkgs/pkgs/shells/fish/plugins/autopair-fish.nix
@@ -0,0 +1,20 @@
+{ lib, stdenv, buildFishPlugin, fetchFromGitHub }:
+
+buildFishPlugin rec {
+  pname = "autopair.fish";
+  version = "1.0.4";
+
+  src = fetchFromGitHub {
+    owner = "jorgebucaran";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-s1o188TlwpUQEN3X5MxUlD/2CFCpEkWu83U9O+wg3VU=";
+  };
+
+  meta = with lib; {
+    description = "Auto-complete matching pairs in the Fish command line.";
+    homepage = "https://github.com/jorgebucaran/autopair.fish";
+    license = licenses.mit;
+    maintainers = with maintainers; [ thehedgeh0g ];
+  };
+}
diff --git a/nixpkgs/pkgs/shells/fish/plugins/default.nix b/nixpkgs/pkgs/shells/fish/plugins/default.nix
index 98b41f6cc189..0cc6eb6b89ed 100644
--- a/nixpkgs/pkgs/shells/fish/plugins/default.nix
+++ b/nixpkgs/pkgs/shells/fish/plugins/default.nix
@@ -2,6 +2,8 @@
 
 lib.makeScope newScope (self: with self; {
 
+  autopair-fish = callPackage ./autopair-fish.nix { };
+
   buildFishPlugin = callPackage ./build-fish-plugin.nix { };
 
   clownfish = callPackage ./clownfish.nix { };
@@ -19,6 +21,8 @@ lib.makeScope newScope (self: with self; {
 
   fzf-fish = callPackage ./fzf-fish.nix { };
 
+  grc = callPackage ./grc.nix { };
+
   hydro = callPackage ./hydro.nix { };
 
   pisces = callPackage ./pisces.nix { };
diff --git a/nixpkgs/pkgs/shells/fish/plugins/fzf-fish.nix b/nixpkgs/pkgs/shells/fish/plugins/fzf-fish.nix
index 346761308583..5f55808cb514 100644
--- a/nixpkgs/pkgs/shells/fish/plugins/fzf-fish.nix
+++ b/nixpkgs/pkgs/shells/fish/plugins/fzf-fish.nix
@@ -2,13 +2,13 @@
 
 buildFishPlugin rec {
   pname = "fzf.fish";
-  version = "8.1";
+  version = "9.2";
 
   src = fetchFromGitHub {
     owner = "PatrickF1";
     repo = "fzf.fish";
     rev = "v${version}";
-    sha256 = "sha256-uqYVbRdrcO6StaIim9S8xmb9P67CmXnLEywSeILn4yQ=";
+    sha256 = "sha256-XmRGe39O3xXmTvfawwT2mCwLIyXOlQm7f40mH5tzz+s=";
   };
 
   checkInputs = [ fzf fd util-linux ];
diff --git a/nixpkgs/pkgs/shells/fish/plugins/grc.nix b/nixpkgs/pkgs/shells/fish/plugins/grc.nix
new file mode 100644
index 000000000000..f506ba36c13c
--- /dev/null
+++ b/nixpkgs/pkgs/shells/fish/plugins/grc.nix
@@ -0,0 +1,20 @@
+{ lib, buildFishPlugin, fetchFromGitHub }:
+
+buildFishPlugin {
+  pname = "grc";
+  version = "unstable-2022-05-24";
+
+  src = fetchFromGitHub {
+    owner = "oh-my-fish";
+    repo = "plugin-grc";
+    rev = "61de7a8a0d7bda3234f8703d6e07c671992eb079";
+    sha256 = "sha256-NQa12L0zlEz2EJjMDhWUhw5cz/zcFokjuCK5ZofTn+Q=";
+  };
+
+  meta = with lib; {
+    description = "grc Colourizer for some commands on Fish shell";
+    license = licenses.mit;
+    maintainers = with maintainers; [ onny ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/shells/fish/plugins/hydro.nix b/nixpkgs/pkgs/shells/fish/plugins/hydro.nix
index eddb88a225d2..cd8705d54716 100644
--- a/nixpkgs/pkgs/shells/fish/plugins/hydro.nix
+++ b/nixpkgs/pkgs/shells/fish/plugins/hydro.nix
@@ -15,6 +15,6 @@ buildFishPlugin rec {
     description = "Ultra-pure, lag-free prompt with async Git status";
     homepage = "https://github.com/jorgebucaran/hydro";
     license = licenses.mit;
-    maintainers = with maintainers; [ mrhedgehog ];
+    maintainers = with maintainers; [ thehedgeh0g ];
   };
 }
diff --git a/nixpkgs/pkgs/shells/hilbish/default.nix b/nixpkgs/pkgs/shells/hilbish/default.nix
index c3f5d3516cb8..c956f0fc44a7 100644
--- a/nixpkgs/pkgs/shells/hilbish/default.nix
+++ b/nixpkgs/pkgs/shells/hilbish/default.nix
@@ -1,18 +1,20 @@
-{ lib, buildGoModule, fetchFromGitHub, readline }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "hilbish";
-  version = "1.0.4";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "Rosettea";
     repo = "Hilbish";
     rev = "v${version}";
-    sha256 = "sha256-JVAyE6iSfRres2YalQF3CWK5Jtn5HoW6p6RHVbwzoVQ=";
+    sha256 = "sha256-fUGeQM+7FRGTRL3J4c2+c+NTwrM6d99F2ucKsou2kRk=";
     fetchSubmodules = true;
   };
 
-  vendorSha256 = "sha256-Bmst1oJMuSXGvL8Syw6v2BqrbO5McHKkTufFs6iuxzs=";
+  subPackages = [ "." ];
+
+  vendorSha256 = "sha256-j7YAt7+kUJXdd/9LaRZny3MxYdd+0n5G3AffeDMo5DY=";
 
   ldflags = [
     "-s"
@@ -24,13 +26,9 @@ buildGoModule rec {
     mkdir -p "$out/share/hilbish"
 
     cp .hilbishrc.lua $out/share/hilbish/
-    cp -r docs -t $out/share/hilbish
+    cp -r docs -t $out/share/hilbish/
     cp -r libs -t $out/share/hilbish/
     cp -r prelude/ $out/share/hilbish/
-
-    # segfaults and it's already been generated upstream
-    # we copy the docs over with the above cp command
-    rm $out/bin/docgen
   '';
 
   meta = with lib; {
@@ -39,6 +37,5 @@ buildGoModule rec {
     homepage = "https://github.com/Rosettea/Hilbish";
     maintainers = with maintainers; [ fortuneteller2k ];
     license = licenses.mit;
-    platforms = platforms.linux; # only officially supported on Linux
   };
 }
diff --git a/nixpkgs/pkgs/shells/jush/default.nix b/nixpkgs/pkgs/shells/jush/default.nix
index 12cd6c935c05..a09024608bb6 100644
--- a/nixpkgs/pkgs/shells/jush/default.nix
+++ b/nixpkgs/pkgs/shells/jush/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1azvghrh31gawd798a254ml4id642qvbva64zzg30pjszh1087n8";
   };
 
+  strictDeps = true;
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   buildInputs = [ editline ];
diff --git a/nixpkgs/pkgs/shells/liquidprompt/default.nix b/nixpkgs/pkgs/shells/liquidprompt/default.nix
index 8575f6439b9c..47e2e72c7ab7 100644
--- a/nixpkgs/pkgs/shells/liquidprompt/default.nix
+++ b/nixpkgs/pkgs/shells/liquidprompt/default.nix
@@ -2,15 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "liquidprompt";
-  version = "2.0.4";
+  version = "2.1.2";
 
   src = fetchFromGitHub {
     owner = "nojhan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ntCfXJUOQqL63HWoG+WJr9a+qB16AaL5zf58039t7GU=";
+    sha256 = "sha256-7mnrXLqnCdOuS2aRs4tVLfO8SRFrqZHNM40gWE/CVFI=";
   };
 
+  strictDeps = true;
   installPhase = ''
     install -D -m 0444 liquidprompt $out/bin/liquidprompt
     install -D -m 0444 liquidpromptrc-dist $out/share/doc/liquidprompt/liquidpromptrc-dist
diff --git a/nixpkgs/pkgs/shells/loksh/default.nix b/nixpkgs/pkgs/shells/loksh/default.nix
index b9f7d5ef7e7f..00e352cfe6bb 100644
--- a/nixpkgs/pkgs/shells/loksh/default.nix
+++ b/nixpkgs/pkgs/shells/loksh/default.nix
@@ -1,22 +1,22 @@
 { lib
 , stdenv
+, fetchFromGitHub
 , meson
+, ncurses
 , ninja
 , pkg-config
-, ncurses
-, fetchFromGitHub
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "loksh";
-  version = "7.0";
+  version = "7.1";
 
   src = fetchFromGitHub {
     owner = "dimkr";
-    repo = pname;
-    rev = version;
+    repo = finalAttrs.pname;
+    rev = finalAttrs.version;
     fetchSubmodules = true;
-    sha256 = "sha256-q5RiY9/xEFCk+oHlxgNwDOB+TNjRWHKzU2kQH2LjCWY=";
+    sha256 = "sha256-APjY7wQUfUTXe3TRKWkDmMZuax0MpuU/KmgZfogdAGU=";
   };
 
   nativeBuildInputs = [
@@ -29,22 +29,32 @@ stdenv.mkDerivation rec {
     ncurses
   ];
 
+  strictDeps = true;
+
   postInstall = ''
     mv $out/bin/ksh $out/bin/loksh
     mv $out/share/man/man1/ksh.1 $out/share/man/man1/loksh.1
     mv $out/share/man/man1/sh.1 $out/share/man/man1/loksh-sh.1
   '';
 
-  passthru = {
-    shellPath = "/bin/loksh";
-  };
-
   meta = with lib; {
-    description = "Linux port of OpenBSD's ksh";
     homepage = "https://github.com/dimkr/loksh";
+    description = "Linux port of OpenBSD's ksh";
+    longDescription = ''
+      loksh is a Linux port of OpenBSD's ksh.
+
+      Unlike other ports of ksh, loksh targets only one platform, follows
+      upstream closely and keeps changes to a minimum. loksh does not add any
+      extra features; this reduces the risk of introducing security
+      vulnerabilities and makes loksh a good fit for resource-constrained
+      systems.
+    '';
     license = licenses.publicDomain;
     maintainers = with maintainers; [ cameronnemo ];
     platforms = platforms.linux;
   };
-}
 
+  passthru = {
+    shellPath = "/bin/loksh";
+  };
+})
diff --git a/nixpkgs/pkgs/shells/mksh/default.nix b/nixpkgs/pkgs/shells/mksh/default.nix
index 360380e19b34..3e4791e2b8a3 100644
--- a/nixpkgs/pkgs/shells/mksh/default.nix
+++ b/nixpkgs/pkgs/shells/mksh/default.nix
@@ -10,12 +10,13 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     urls = [
-      "https://www.mirbsd.org/MirOS/dist/mir/mksh/${pname}-R${version}.tgz"
+      "http://www.mirbsd.org/MirOS/dist/mir/mksh/${pname}-R${version}.tgz"
       "http://pub.allbsd.org/MirOS/dist/mir/mksh/${pname}-R${version}.tgz"
     ];
     hash = "sha256-d64WZaM38cSMYda5Yds+UhGbOOWIhNHIloSvMfh7xQY=";
   };
 
+  strictDeps = true;
   nativeBuildInputs = [
     installShellFiles
   ];
@@ -37,6 +38,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
+    homepage = "http://www.mirbsd.org/mksh.htm";
     description = "MirBSD Korn Shell";
     longDescription = ''
       The MirBSD Korn Shell is a DFSG-free and OSD-compliant (and OSI
@@ -45,7 +47,6 @@ stdenv.mkDerivation rec {
       also to be readily available under other UNIX(R)-like operating
       systems.
     '';
-    homepage = "https://www.mirbsd.org/mksh.htm";
     license = with licenses; [ miros isc unicode-dfs-2016 ];
     maintainers = with maintainers; [ AndersonTorres joachifm ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/shells/mrsh/default.nix b/nixpkgs/pkgs/shells/mrsh/default.nix
index be87b97ebd72..2b9bc4e3e22e 100644
--- a/nixpkgs/pkgs/shells/mrsh/default.nix
+++ b/nixpkgs/pkgs/shells/mrsh/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0vvdwzw3fq74lwgmy6xxkk01sd68fzhsw84c750lm1dma22xhjci";
   };
 
+  strictDeps = true;
   nativeBuildInputs = [ meson ninja pkg-config ];
   buildInputs = [ readline ];
 
diff --git a/nixpkgs/pkgs/shells/nushell/default.nix b/nixpkgs/pkgs/shells/nushell/default.nix
index 51261ac1de8b..08445c4176a4 100644
--- a/nixpkgs/pkgs/shells/nushell/default.nix
+++ b/nixpkgs/pkgs/shells/nushell/default.nix
@@ -13,21 +13,40 @@
 , Security
 , nghttp2
 , libgit2
+, cargo-edit
 , withExtraFeatures ? true
+, testers
+, nushell
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "nushell";
-  version = "0.44.0";
+  version = "0.65.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-LMG72XfDHA9dKiBbaB09v0rDdUKRy/Czu/lsYw6jUog=";
+    sha256 = "sha256-KgXhmAOJaAvmNuDqSaW+h6GF5rWYgj8/wn+vz9V9S7M=";
   };
 
-  cargoSha256 = "sha256-wgaRTf+ZQ7alibCdeCjSQhhR9MC77qM1n0jakDgr114=";
+  cargoSha256 = "sha256-YqtM/1p6oP0+E0rYSFPeCbof06E81eC2PZIwkU7J0I4=";
+  # Since 0.34, nu has an indirect dependency on `zstd-sys` (via `polars` and
+  # `parquet`, for dataframe support), which by default has an impure build
+  # (git submodule for the `zstd` C library). The `pkg-config` feature flag
+  # fixes this, but it's hard to invoke this in the right place, because of
+  # the indirect dependencies. So add a direct dependency on `zstd-sys` here
+  # at the top level, along with this feature flag, to ensure that when
+  # `zstd-sys` is transitively invoked, it triggers a pure build using the
+  # system `zstd` library provided above.
+  depsExtraArgs = { nativeBuildInputs = [ cargo-edit ]; };
+  # cargo add has been merged in to cargo so the above can be removed once 1.62.0 is available in nixpkgs
+  # https://github.com/rust-lang/cargo/pull/10472
+  cargoUpdateHook = ''
+    cargo add zstd-sys --features pkg-config --offline
+    # write the change to the lockfile
+    cargo update --package zstd-sys --offline
+  '';
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optionals (withExtraFeatures && stdenv.isLinux) [ python3 ];
@@ -39,19 +58,6 @@ rustPlatform.buildRustPackage rec {
 
   buildFeatures = lib.optional withExtraFeatures "extra";
 
-  # Since 0.34, nu has an indirect dependency on `zstd-sys` (via `polars` and
-  # `parquet`, for dataframe support), which by default has an impure build
-  # (git submodule for the `zstd` C library). The `pkg-config` feature flag
-  # fixes this, but it's hard to invoke this in the right place, because of
-  # the indirect dependencies. So add a direct dependency on `zstd-sys` here
-  # at the top level, along with this feature flag, to ensure that when
-  # `zstd-sys` is transitively invoked, it triggers a pure build using the
-  # system `zstd` library provided above.
-  #
-  # (If this patch needs updating, in a nushell repo add the zstd-sys line to
-  # Cargo.toml, then `cargo update --package zstd-sys` to update Cargo.lock.)
-  cargoPatches = [ ./use-system-zstd-lib.diff ];
-
   # TODO investigate why tests are broken on darwin
   # failures show that tests try to write to paths
   # outside of TMPDIR
@@ -74,5 +80,8 @@ rustPlatform.buildRustPackage rec {
 
   passthru = {
     shellPath = "/bin/nu";
+    tests.version = testers.testVersion {
+      package = nushell;
+    };
   };
 }
diff --git a/nixpkgs/pkgs/shells/nushell/use-system-zstd-lib.diff b/nixpkgs/pkgs/shells/nushell/use-system-zstd-lib.diff
deleted file mode 100644
index 271ad6c692ed..000000000000
--- a/nixpkgs/pkgs/shells/nushell/use-system-zstd-lib.diff
+++ /dev/null
@@ -1,32 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-index 8833c3e5..0c90d2fe 100644
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -3188,6 +3188,7 @@ dependencies = [
-  "nu_plugin_xpath",
-  "rstest",
-  "serial_test",
-+ "zstd-sys",
- ]
-
- [[package]]
-@@ -6954,4 +6955,5 @@ checksum = "615120c7a2431d16cf1cf979e7fc31ba7a5b5e5707b29c8a99e5dbf8a8392a33"
- dependencies = [
-  "cc",
-  "libc",
-+ "pkg-config",
- ]
-diff --git a/Cargo.toml b/Cargo.toml
-index 89e8a311..4cc2331a 100644
---- a/Cargo.toml
-+++ b/Cargo.toml
-@@ -63,6 +63,9 @@ serial_test = "0.5.1"
- hamcrest2 = "0.3.0"
- rstest = "0.10.0"
-
-+# Specify that the indirect dependency ztsd-sys should pick up the system zstd C library
-+zstd-sys = { version = "1", features = [ "pkg-config" ] }
-+
- [build-dependencies]
-
- [features]
diff --git a/nixpkgs/pkgs/shells/oh/default.nix b/nixpkgs/pkgs/shells/oh/default.nix
index 68f34fe8eb17..e9a09c8c2888 100644
--- a/nixpkgs/pkgs/shells/oh/default.nix
+++ b/nixpkgs/pkgs/shells/oh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "oh";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "michaelmacinnis";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0sdpk77i5mfamkdqldybl9znzz92hqgi4xvby5j28m0a5gw46kj0";
+    sha256 = "sha256-DMxC5fv5ZLDv7gMajC/eyJd2YpO+OXFdvwAPYotnczw=";
   };
 
-  vendorSha256 = "12vlvh37hvi8c1i9arppm5wj4v9c98s7myxra10q6qpdqssgc8a0";
+  vendorSha256 = "sha256-f4rqXOu6yXUzNsseSaV9pb8c2KXItYOalB5pfH3Acnc=";
 
   meta = with lib; {
     homepage = "https://github.com/michaelmacinnis/oh";
diff --git a/nixpkgs/pkgs/shells/oil/default.nix b/nixpkgs/pkgs/shells/oil/default.nix
index 516d4c43f6fa..8702e83cae90 100644
--- a/nixpkgs/pkgs/shells/oil/default.nix
+++ b/nixpkgs/pkgs/shells/oil/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "oil";
-  version = "0.9.8";
+  version = "0.12.3";
 
   src = fetchurl {
     url = "https://www.oilshell.org/download/oil-${version}.tar.xz";
-    sha256 = "sha256-OsrxfJ5dF9Anpg1r6Hj+aD194l99X9Yh4vIZ+R+aH8E=";
+    hash = "sha256-M8gklc9crdVkQk9vzxO4tG809O0uHOPvvq1l1tzoPt8=";
   };
 
   postPatch = ''
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     mkdir -p $out/bin
   '';
 
+  strictDeps = true;
   buildInputs = lib.optional withReadline readline;
   configureFlags = lib.optional withReadline "--with-readline";
 
diff --git a/nixpkgs/pkgs/shells/oksh/default.nix b/nixpkgs/pkgs/shells/oksh/default.nix
index 9ea851adbbf6..79fc1e481c02 100644
--- a/nixpkgs/pkgs/shells/oksh/default.nix
+++ b/nixpkgs/pkgs/shells/oksh/default.nix
@@ -1,16 +1,24 @@
-{ stdenv, lib, fetchFromGitHub }:
+{ stdenv, lib, fetchFromGitHub, buildPackages }:
 
 stdenv.mkDerivation rec {
   pname = "oksh";
-  version = "7.0";
+  version = "7.1";
 
   src = fetchFromGitHub {
     owner = "ibara";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "sha256-076nD0aPps6n5qkR3LQJ6Kn2g3mkov+/M0qSvxNLZ6o=";
+    sha256 = "sha256-cRUL4JwwZ1Nfs9exzleEvJYCZz6knKbjnC9xeRMvClA=";
   };
 
+  strictDeps = true;
+
+  postPatch = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    substituteInPlace configure --replace "./conftest" "echo"
+  '';
+
+  configureFlags = [ "--no-strip" ];
+
   meta = with lib; {
     description = "Portable OpenBSD ksh, based on the Public Domain Korn Shell (pdksh)";
     homepage = "https://github.com/ibara/oksh";
diff --git a/nixpkgs/pkgs/shells/pash/default.nix b/nixpkgs/pkgs/shells/pash/default.nix
index 431091bf8d1c..c9150fda18ae 100644
--- a/nixpkgs/pkgs/shells/pash/default.nix
+++ b/nixpkgs/pkgs/shells/pash/default.nix
@@ -11,6 +11,7 @@ buildDotnetPackage {
     sha256 = "0c4wa8qi1zs01p9ck171jkw0n1rsymsrhpsb42gl7warwhpmv59f";
   };
 
+  strictDeps = true;
   preConfigure = "rm -rvf $src/Source/PashConsole/bin/*";
 
   outputFiles = [ "Source/PashConsole/bin/Release/*" ];
diff --git a/nixpkgs/pkgs/shells/powershell/default.nix b/nixpkgs/pkgs/shells/powershell/default.nix
index 4efa2cd88a72..435f54cdf4af 100644
--- a/nixpkgs/pkgs/shells/powershell/default.nix
+++ b/nixpkgs/pkgs/shells/powershell/default.nix
@@ -7,10 +7,10 @@ let archString = if stdenv.isAarch64 then "arm64"
     platformString = if stdenv.isDarwin then "osx"
                      else if stdenv.isLinux then "linux"
                      else throw "unsupported platform";
-    platformSha = if (stdenv.isDarwin && stdenv.isx86_64) then "sha256-h5zjn8wtgHmsJFiGq1rja6kZTZj3Q72W2kH3AexRDQs="
-                     else if (stdenv.isDarwin && stdenv.isAarch64) then "sha256-NHM9ZUpBJb59Oq0Ke7DcvaN+bZ9MjSpXBRu5Ng9OVZ0="
-                     else if (stdenv.isLinux && stdenv.isx86_64) then "sha256-kidPtDMkEZ/1r4WIApPZ/BsdJkolpSZ3f72JyDv3798="
-                     else if (stdenv.isLinux && stdenv.isAarch64) then "sha256-bUacA4DwjDNlIG7yooXxUGL9AysAogNWuQDvcTqo1sE="
+    platformSha = if (stdenv.isDarwin && stdenv.isx86_64) then "sha256-bcLyf/sIaFoS1xS4RLPPC9lVFa94IfQlWeXhyXUTsd0="
+                     else if (stdenv.isDarwin && stdenv.isAarch64) then "sha256-2UACjUtyQ611iXmwyiWrGwRVA0FT1cLLMKnY0y4SgoQ="
+                     else if (stdenv.isLinux && stdenv.isx86_64) then "sha256-5AZGwxpEqn3X20rCxPcvuqcQib689ui+e0jvri92EdA="
+                     else if (stdenv.isLinux && stdenv.isAarch64) then "sha256-90Sz32hm+EcK3nFJOGGCSqIEtW7w48G8mizXvcLb8WU="
                      else throw "unsupported platform";
     platformLdLibraryPath = if stdenv.isDarwin then "DYLD_FALLBACK_LIBRARY_PATH"
                      else if stdenv.isLinux then "LD_LIBRARY_PATH"
@@ -20,7 +20,7 @@ let archString = if stdenv.isAarch64 then "arm64"
 in
 stdenv.mkDerivation rec {
   pname = "powershell";
-  version = "7.2.1";
+  version = "7.2.4";
 
   src = fetchzip {
     url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-${platformString}-${archString}.tar.gz";
@@ -28,8 +28,10 @@ stdenv.mkDerivation rec {
     stripRoot = false;
   };
 
+  strictDeps = true;
   buildInputs = [ less ] ++ libraries;
-  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ]
+    ++ lib.optional stdenv.isLinux autoPatchelfHook;
 
   installPhase =
   let
@@ -72,7 +74,12 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Powerful cross-platform (Windows, Linux, and macOS) shell and scripting language based on .NET";
     homepage = "https://github.com/PowerShell/PowerShell";
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     maintainers = with maintainers; [ yrashk srgom p3psi ];
+    mainProgram = "pwsh";
     platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-linux" "aarch64-darwin" ];
     license = with licenses; [ mit ];
   };
diff --git a/nixpkgs/pkgs/shells/powershell/getHashes.sh b/nixpkgs/pkgs/shells/powershell/getHashes.sh
new file mode 100755
index 000000000000..4453d0703f12
--- /dev/null
+++ b/nixpkgs/pkgs/shells/powershell/getHashes.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p bash wget coreutils gnutar nix
+version=$1
+
+if [[ -z $version ]]
+then
+    echo "Pass the version to get hashes for as an argument"
+    exit 1
+fi
+
+allOutput=""
+
+dlDest=$(mktemp)
+exDest=$(mktemp -d)
+
+trap 'rm $dlDest; rm -r $exDest' EXIT
+
+for plat in osx linux; do
+    for arch in x64 arm64; do
+
+        URL="https://github.com/PowerShell/PowerShell/releases/download/v$version/powershell-$version-$plat-$arch.tar.gz"
+        wget $URL -O $dlDest >&2
+
+        tar -xzf $dlDest -C $exDest >&2
+
+        hash=$(nix hash path $exDest)
+
+        allOutput+="
+variant: $plat $arch
+hash: $hash
+"
+
+    done
+done
+
+echo "$allOutput"
diff --git a/nixpkgs/pkgs/shells/rc/default.nix b/nixpkgs/pkgs/shells/rc/default.nix
index af43c42dd4bd..5783607751ad 100644
--- a/nixpkgs/pkgs/shells/rc/default.nix
+++ b/nixpkgs/pkgs/shells/rc/default.nix
@@ -1,42 +1,45 @@
-{ lib, stdenv, fetchurl, autoreconfHook
-, ncurses #acinclude.m4 wants headers for tgetent().
-, historySupport ? false
-, readline ? null
-}:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, byacc
+, ncurses, readline
+, historySupport ? false, readlineSupport ? true }:
 
 stdenv.mkDerivation rec {
   pname = "rc";
-  version = "1.7.4";
+  version = "unstable-2021-08-03";
 
-  src = fetchurl {
-    url = "http://static.tobold.org/rc/rc-${version}.tar.gz";
-    sha256 = "1n5zz6d6z4z6s3fwa0pscqqawy561k4xfnmi91i626hcvls67ljy";
+  src = fetchFromGitHub {
+    owner = "rakitzis";
+    repo = "rc";
+    rev = "8ca9ab1305c3e30cd064290081d6e5a1fa841d26";
+    sha256 = "0744ars6y9zzsjr9xazms91qy6bi7msg2gg87526waziahfh4s4z";
   };
 
-  nativeBuildInputs = [ autoreconfHook ];
+  strictDeps = true;
+  nativeBuildInputs = [ autoreconfHook byacc ];
+
+  # acinclude.m4 wants headers for tgetent().
   buildInputs = [ ncurses ]
-    ++ lib.optionals (readline != null) [ readline ];
+    ++ lib.optionals readlineSupport [ readline ];
 
   configureFlags = [
     "--enable-def-interp=${stdenv.shell}" #183
     ] ++ lib.optionals historySupport [ "--with-history" ]
-    ++ lib.optionals (readline != null) [ "--with-edit=readline" ];
+    ++ lib.optionals readlineSupport [ "--with-edit=readline" ];
 
-  prePatch = ''
+  #reproducible-build
+  postPatch = ''
     substituteInPlace configure.ac \
-      --replace "date -I" "echo 2015-05-13" #reproducible-build
+      --replace "$(git describe || echo '(git description unavailable)')" "${builtins.substring 0 7 src.rev}"
   '';
 
-  passthru = {
-    shellPath = "/bin/rc";
-  };
+  passthru.shellPath = "/bin/rc";
 
   meta = with lib; {
     description = "The Plan 9 shell";
-    longDescription = "Byron Rakitzis' UNIX reimplementation of Tom Duff's Plan 9 shell.";
-    homepage = "http://tobold.org/article/rc";
+    longDescription = "Byron Rakitzis' UNIX reimplementation of Tom Duff's Plan 9 shell";
+    homepage = "https://web.archive.org/web/20180820053030/tobold.org/article/rc";
     license = with licenses; zlib;
     maintainers = with maintainers; [ ramkromberg ];
+    mainProgram = "rc";
     platforms = with platforms; all;
   };
 }
diff --git a/nixpkgs/pkgs/shells/rush/default.nix b/nixpkgs/pkgs/shells/rush/default.nix
index d840c3b77a5c..6e7e256561b6 100644
--- a/nixpkgs/pkgs/shells/rush/default.nix
+++ b/nixpkgs/pkgs/shells/rush/default.nix
@@ -1,17 +1,26 @@
-{ fetchurl, lib, stdenv }:
+{ fetchurl, lib, stdenv, bash, perl }:
 
 stdenv.mkDerivation rec {
   pname = "rush";
-  version = "2.2";
+  version = "2.3";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-ld5TdpF7siprQCbhE4oxYhH40x3QZ5NCQlD3zRaNmM0=";
+    sha256 = "sha256-57gBYfZsKdK1moXBC52KgxKv/MIeQK6tDu+fznXLZ+Y=";
   };
 
+  strictDeps = true;
+  buildInputs = [ bash ];
+
+  postInstall = ''
+    substituteInPlace $out/bin/rush-po \
+      --replace "exec perl" "exec ${lib.getExe perl}"
+  '';
+
   doCheck = true;
 
   meta = {
+    broken = stdenv.isDarwin;
     description = "Restricted User Shell";
 
     longDescription =
@@ -31,7 +40,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.gnu.org/software/rush/";
     license = lib.licenses.gpl3Plus;
 
-    maintainers = [ lib.maintainers.bjg ];
+    maintainers = [ ];
     platforms = lib.platforms.all;
   };
 
diff --git a/nixpkgs/pkgs/shells/scponly/default.nix b/nixpkgs/pkgs/shells/scponly/default.nix
index c0c39d8e3164..f15f04cfe227 100644
--- a/nixpkgs/pkgs/shells/scponly/default.nix
+++ b/nixpkgs/pkgs/shells/scponly/default.nix
@@ -13,14 +13,15 @@ stdenv.mkDerivation {
 
   patches = [ ./scponly-fix-make.patch ];
 
-  buildInputs = [ openssh ];
-
-  # Add path to sftp-server so configure finds it
-  preConfigure = "export PATH=$PATH:${openssh}/libexec";
+  strictDeps = true;
 
   # chroot doesn't seem to work, so not enabling
   # rsync could also be optionally enabled
-  configureFlags = [ "--enable-winscp-compat" ];
+  configureFlags = [
+    "--enable-winscp-compat"
+    "scponly_PROG_SFTP_SERVER=${lib.getBin openssh}/libexec/sftp-server"
+    "scponly_PROG_SCP=${lib.getBin openssh}/bin/scp"
+  ];
 
   postInstall = lib.optionalString (debugLevel > 0) ''
     mkdir -p $out/etc/scponly && echo ${
diff --git a/nixpkgs/pkgs/shells/tcsh/default.nix b/nixpkgs/pkgs/shells/tcsh/default.nix
index 4357ca605b17..4fac6eb13d64 100644
--- a/nixpkgs/pkgs/shells/tcsh/default.nix
+++ b/nixpkgs/pkgs/shells/tcsh/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
     hash = "sha256-YL4sUEvY8fpuQksZVkldfnztUqKslNtf0n9La/yPdPA=";
   };
 
+  strictDeps = true;
   buildInputs = [
     ncurses
   ];
diff --git a/nixpkgs/pkgs/shells/xonsh/default.nix b/nixpkgs/pkgs/shells/xonsh/default.nix
index 4fa5d9b087be..6c7132b46c91 100644
--- a/nixpkgs/pkgs/shells/xonsh/default.nix
+++ b/nixpkgs/pkgs/shells/xonsh/default.nix
@@ -8,14 +8,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "xonsh";
-  version = "0.11.0";
+  version = "0.13.1";
 
   # fetch from github because the pypi package ships incomplete tests
   src = fetchFromGitHub {
     owner = "xonsh";
     repo = "xonsh";
     rev = version;
-    sha256 = "sha256-jfxQMEVABTOhx679V0iGVX9RisuY42lSdztYXMLwdcw=";
+    sha256 = "sha256-Q9FJXccpTW3nPUOCf5UD8ZWJW25QX8PNHHpsVYjesYE=";
   };
 
   LC_ALL = "en_US.UTF-8";
@@ -40,7 +40,7 @@ python3Packages.buildPythonApplication rec {
   ];
 
   postInstall = ''
-    wrapProgram $out/bin/xon.sh \
+    wrapProgram $out/bin/xonsh \
       $makeWrapperArgs
   '';
 
@@ -49,6 +49,8 @@ python3Packages.buildPythonApplication rec {
     "test_colorize_file"
     "test_loading_correctly"
     "test_no_command_path_completion"
+    "test_bsd_man_page_completions"
+    "test_xonsh_activator"
     # fails on non-interactive shells
     "test_capture_always"
     "test_casting"
@@ -56,9 +58,14 @@ python3Packages.buildPythonApplication rec {
     "test_dirty_working_directory"
     "test_man_completion"
     "test_vc_get_branch"
+    "test_bash_and_is_alias_is_only_functional_alias"
   ];
 
   disabledTestPaths = [
+    # fails on sandbox
+    "tests/completers/test_command_completers.py"
+    "tests/test_ptk_highlight.py"
+    "tests/test_ptk_shell.py"
     # fails on non-interactive shells
     "tests/prompt/test_gitstatus.py"
     "tests/completers/test_bash_completer.py"
diff --git a/nixpkgs/pkgs/shells/yash/default.nix b/nixpkgs/pkgs/shells/yash/default.nix
index 44faf5c4e027..773801eca17e 100644
--- a/nixpkgs/pkgs/shells/yash/default.nix
+++ b/nixpkgs/pkgs/shells/yash/default.nix
@@ -6,14 +6,15 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://osdn.net/dl/yash/yash-${version}.tar.xz";
-    sha256 = "sha256:1jdmj4cyzwxxyyqf20y1zi578h7md860ryffp02qi143zpppn4sm";
+    hash = "sha256-VRN77/2DhIgFuM75DAxq9UB0SvzBA+Gw973z7xmRtck=";
   };
 
+  strictDeps = true;
   buildInputs = [ gettext ncurses ];
 
   meta = with lib; {
-    description = "Yet another POSIX-compliant shell";
     homepage = "https://yash.osdn.jp/index.html.en";
+    description = "Yet another POSIX-compliant shell";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ qbit ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix b/nixpkgs/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix
new file mode 100644
index 000000000000..5f9573b71aa7
--- /dev/null
+++ b/nixpkgs/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix
@@ -0,0 +1,32 @@
+{ stdenvNoCC, lib, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "agkozak-zsh-prompt";
+  version = "3.11.1";
+
+  src = fetchFromGitHub {
+    owner = "agkozak";
+    repo = "agkozak-zsh-prompt";
+    rev = "v${version}";
+    sha256 = "sha256-TOfAWxw1uIV0hKV9o4EJjOlp+jmGWCONDex86ipegOY=";
+  };
+
+  strictDeps = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    plugindir="$out/share/zsh/site-functions"
+
+    mkdir -p "$plugindir"
+    cp -r -- lib/*.zsh agkozak-zsh-prompt.plugin.zsh prompt_agkozak-zsh-prompt_setup "$plugindir"/
+  '';
+
+  meta = with lib; {
+    description = "A fast, asynchronous Zsh prompt";
+    homepage = "https://github.com/agkozak/agkozak-zsh-prompt";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ambroisie ];
+  };
+}
diff --git a/nixpkgs/pkgs/shells/zsh/antigen/default.nix b/nixpkgs/pkgs/shells/zsh/antigen/default.nix
index 9a69f90dca34..ca5fbee6e368 100644
--- a/nixpkgs/pkgs/shells/zsh/antigen/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/antigen/default.nix
@@ -9,6 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1bmp3qf14509swpxin4j9f98n05pdilzapjm0jdzbv0dy3hn20ix";
   };
 
+  strictDeps = true;
   dontUnpack = true;
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/shells/zsh/default.nix b/nixpkgs/pkgs/shells/zsh/default.nix
index 5a2c0d050ce0..7e177a1744cd 100644
--- a/nixpkgs/pkgs/shells/zsh/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/default.nix
@@ -13,16 +13,17 @@
 , buildPackages }:
 
 let
-  version = "5.8.1";
+  version = "5.9";
 in
 
 stdenv.mkDerivation {
   pname = "zsh";
   inherit version;
+  outputs = [ "out" "doc" "info" "man" ];
 
   src = fetchurl {
     url = "mirror://sourceforge/zsh/zsh-${version}.tar.xz";
-    sha256 = "sha256-tpc1ILrOYAtHeSACabHl155fUFrElSBYwRrVu/DdmRk=";
+    sha256 = "sha256-m40ezt1bXoH78ZGOh2dSp92UjgXBoNuhCrhjhC1FrNU=";
   };
 
   patches = [
@@ -30,7 +31,8 @@ stdenv.mkDerivation {
     ./tz_completion.patch
   ];
 
-  nativeBuildInputs = [ autoreconfHook perl groff texinfo ]
+  strictDeps = true;
+  nativeBuildInputs = [ autoreconfHook perl groff texinfo pcre]
                       ++ lib.optionals stdenv.isLinux [ util-linux yodl ];
 
   buildInputs = [ ncurses pcre ];
@@ -49,9 +51,8 @@ stdenv.mkDerivation {
   checkFlags = map (T: "TESTNUM=${T}") (lib.stringToCharacters "ABCDEVW");
 
   # XXX: think/discuss about this, also with respect to nixos vs nix-on-X
-  postInstall = lib.optionalString stdenv.isLinux ''
+  postInstall = ''
     make install.info install.html
-    '' + ''
     mkdir -p $out/etc/
     cat > $out/etc/zprofile <<EOF
 if test -e /etc/NIXOS; then
@@ -81,6 +82,10 @@ EOF
       ${lib.getBin buildPackages.zsh}/bin/zsh -c "zcompile $out/etc/zprofile"
     ''}
     mv $out/etc/zprofile $out/etc/zprofile_zwc_is_used
+
+    rm $out/bin/zsh-${version}
+    mkdir -p $out/share/doc/
+    mv $out/share/zsh/htmldoc $out/share/doc/zsh-$version
   '';
   # XXX: patch zsh to take zwc if newer _or equal_
 
@@ -96,7 +101,7 @@ EOF
     '';
     license = "MIT-like";
     homepage = "https://www.zsh.org/";
-    maintainers = with lib.maintainers; [ pSub ];
+    maintainers = with lib.maintainers; [ pSub artturin ];
     platforms = lib.platforms.unix;
   };
 
diff --git a/nixpkgs/pkgs/shells/zsh/fzf-zsh/default.nix b/nixpkgs/pkgs/shells/zsh/fzf-zsh/default.nix
index ac5cab94d4cb..aa5af013e43e 100644
--- a/nixpkgs/pkgs/shells/zsh/fzf-zsh/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/fzf-zsh/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1irjmxhcg1fm4g8p3psjqk7sz5qhj5kw73pyhv91njvpdhn9l26z";
   };
 
+  strictDeps = true;
   postPatch = ''
     substituteInPlace fzf-zsh.plugin.zsh \
       --replace \
diff --git a/nixpkgs/pkgs/shells/zsh/gradle-completion/default.nix b/nixpkgs/pkgs/shells/zsh/gradle-completion/default.nix
index bf5969d1300a..fa40db3603b9 100644
--- a/nixpkgs/pkgs/shells/zsh/gradle-completion/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/gradle-completion/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "15b0692i3h8h7b95465b2aw9qf5qjmjag5n62347l8yl7zbhv3l2";
   };
 
+  strictDeps = true;
+
   # we just move two files into $out,
   # this shouldn't bother Hydra.
   preferLocalBuild = true;
diff --git a/nixpkgs/pkgs/shells/zsh/grml-zsh-config/default.nix b/nixpkgs/pkgs/shells/zsh/grml-zsh-config/default.nix
index fb0d8b238c9f..5278f726fd48 100644
--- a/nixpkgs/pkgs/shells/zsh/grml-zsh-config/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/grml-zsh-config/default.nix
@@ -2,15 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "grml-zsh-config";
-  version = "0.19.1";
+  version = "0.19.2";
 
   src = fetchFromGitHub {
     owner = "grml";
     repo = "grml-etc-core";
     rev = "v${version}";
-    sha256 = "sha256-GEuBYN6HVAjiAbusVuEA7zBG9fIVZHLV628Jt6Cv5cM=";
+    sha256 = "sha256-9BknWrYgLv9xx9TlVAJxRzVUmbz5v6f7swPDsE4P6WY=";
   };
 
+  strictDeps = true;
   nativeBuildInputs = [ txt2tags ];
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix b/nixpkgs/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix
index e8d00d73d1aa..eae5f77904b5 100644
--- a/nixpkgs/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation {
     sha256 = "0fvxnvgbcvwii7ghvpj5l43frllq71wwjvfg7cqfmic727z001dh";
   };
 
+  strictDeps = true;
   installPhase = ''
     install -Dm0644 lambda-mod.zsh-theme $out/share/zsh/themes/lambda-mod.zsh-theme
   '';
diff --git a/nixpkgs/pkgs/shells/zsh/nix-zsh-completions/default.nix b/nixpkgs/pkgs/shells/zsh/nix-zsh-completions/default.nix
index 472cc47459cf..dab73419ab55 100644
--- a/nixpkgs/pkgs/shells/zsh/nix-zsh-completions/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/nix-zsh-completions/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1n9whlys95k4wc57cnz3n07p7zpkv796qkmn68a50ygkx6h3afqf";
   };
 
+  strictDeps = true;
   installPhase = ''
     mkdir -p $out/share/zsh/{site-functions,plugins/nix}
     cp _* $out/share/zsh/site-functions
diff --git a/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
index 82f231405a90..9ce36876e57b 100644
--- a/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -2,20 +2,23 @@
 #
 #   https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=oh-my-zsh-git
 { lib, stdenv, fetchFromGitHub, nixosTests, writeScript, common-updater-scripts
-, git, nix, nixfmt, jq, coreutils, gnused, curl, cacert }:
+, git, nix, nixfmt, jq, coreutils, gnused, curl, cacert, bash }:
 
 stdenv.mkDerivation rec {
-  version = "2022-03-28";
+  version = "2022-08-10";
   pname = "oh-my-zsh";
-  rev = "3f214329d631b3ae39d6b283262c77819a0078de";
+  rev = "835a0a5d17765243cabee782acb5905a9aab33c3";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "ohmyzsh";
     repo = "ohmyzsh";
-    sha256 = "rmSS8RnTbraA8yoU70/Mwx7wZ+uGuxkw4MO4BeuLulM=";
+    sha256 = "dPFoa5dgU5+A3wRJQShD42AkZ0n3mm3+6j4tzc7mucQ=";
   };
 
+  strictDeps = true;
+  buildInputs = [ bash ];
+
   installPhase = ''
     runHook preInstall
 
diff --git a/nixpkgs/pkgs/shells/zsh/pure-prompt/default.nix b/nixpkgs/pkgs/shells/zsh/pure-prompt/default.nix
index 09be79d6fbcc..994f223b58da 100644
--- a/nixpkgs/pkgs/shells/zsh/pure-prompt/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/pure-prompt/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-iuLi0o++e0PqK81AKWfIbCV0CTIxq2Oki6U2oEYsr68=";
   };
 
+  strictDeps = true;
   installPhase = ''
     OUTDIR="$out/share/zsh/site-functions"
     mkdir -p "$OUTDIR"
diff --git a/nixpkgs/pkgs/shells/zsh/spaceship-prompt/default.nix b/nixpkgs/pkgs/shells/zsh/spaceship-prompt/default.nix
index 9c3843a7cefd..e5187658eeb9 100644
--- a/nixpkgs/pkgs/shells/zsh/spaceship-prompt/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/spaceship-prompt/default.nix
@@ -2,15 +2,16 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "spaceship-prompt";
-  version = "3.16.3";
+  version = "3.16.7";
 
   src = fetchFromGitHub {
     owner = "denysdovhan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-eIvNfs9c8Ftcnbtg7lNNc2d3OWWpse91yTzcLqoeFqI=";
+    sha256 = "sha256-dMP7mDzb0xLCP2l9j4SOP47bcpuBNSoXsDecVOvZaL8=";
   };
 
+  strictDeps = true;
   dontBuild = true;
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/shells/zsh/zinit/default.nix b/nixpkgs/pkgs/shells/zsh/zinit/default.nix
index 9946d7d0c3a5..ca8b7ea2e46a 100644
--- a/nixpkgs/pkgs/shells/zsh/zinit/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zinit/default.nix
@@ -11,6 +11,7 @@ stdenvNoCC.mkDerivation rec {
   };
   # adapted from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=zsh-zplugin-git
   dontBuild = true;
+  strictDeps = true;
   nativeBuildInputs = [ installShellFiles ];
   installPhase = ''
     outdir="$out/share/$pname"
diff --git a/nixpkgs/pkgs/shells/zsh/zplug/default.nix b/nixpkgs/pkgs/shells/zsh/zplug/default.nix
index d35eb345dda9..c6c80ba6a134 100644
--- a/nixpkgs/pkgs/shells/zsh/zplug/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zplug/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0hci1pbs3k5icwfyfw5pzcgigbh9vavprxxvakg1xm19n8zb61b3";
   };
 
+  strictDeps = true;
   dontConfigure = true;
   dontBuild = true;
   dontPatch = true;
@@ -24,7 +25,8 @@ stdenv.mkDerivation rec {
     description = "A next-generation plugin manager for zsh";
     homepage = "https://github.com/zplug/zplug";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = [ maintainers.s1341 ];
+    mainProgram = "zplug-env";
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-autocomplete/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-autocomplete/default.nix
index 14ea0ec8f63c..a818228093f9 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-autocomplete/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-autocomplete/default.nix
@@ -11,6 +11,7 @@ stdenvNoCC.mkDerivation rec {
     sha256 = "sha256-+UziTYsjgpiumSulrLojuqHtDrgvuG91+XNiaMD7wIs=";
   };
 
+  strictDeps = true;
   installPhase = ''
     install -D zsh-autocomplete.plugin.zsh $out/share/zsh-autocomplete/zsh-autocomplete.plugin.zsh
     cp -R scripts $out/share/zsh-autocomplete/scripts
@@ -22,6 +23,6 @@ stdenvNoCC.mkDerivation rec {
     homepage = "https://github.com/marlonrichert/zsh-autocomplete/";
     license = licenses.mit;
     platforms = platforms.unix;
-    maintainers = [ maintainers.em0lar ];
+    maintainers = [ maintainers.leona ];
   };
 }
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-autopair/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-autopair/default.nix
index 0cc1535e53ae..73b70c00405a 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-autopair/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-autopair/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "1h0vm2dgrmb8i2pvsgis3lshc5b0ad846836m62y8h3rdb3zmpy1";
   };
 
+  strictDeps = true;
+
   installPhase = ''
     install -D autopair.zsh $out/share/zsh/${pname}/autopair.zsh
   '';
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-autosuggestions/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-autosuggestions/default.nix
index 211fde7b0f15..6445b0d31e73 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-autosuggestions/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-autosuggestions/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "1g3pij5qn2j7v7jjac2a63lxd97mcsgw6xq6k5p7835q9fjiid98";
   };
 
+  strictDeps = true;
   nativeBuildInputs = [ zsh ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-bd/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-bd/default.nix
index f2c2dc90fb4e..ebfa55ecd229 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-bd/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-bd/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "020f8nq86g96cps64hwrskppbh2dapfw2m9np1qbs5pgh16z4fcb";
   };
 
+  strictDeps = true;
   dontBuild = true;
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-better-npm-completion/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-better-npm-completion/default.nix
index 372d49eaeb7e..d9a813bbbfdd 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-better-npm-completion/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-better-npm-completion/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "16z7k5n1rcl9i61lrm7i5dsqsmhvdp1y4y5ii6hv2xpp470addgy";
   };
 
+  strictDeps = true;
   installPhase = ''
     install -Dm 0644 zsh-better-npm-completion.plugin.zsh $out/share/zsh-better-npm-completion
   '';
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-clipboard/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-clipboard/default.nix
index 114e0bfd7dc5..eb395d744728 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-clipboard/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-clipboard/default.nix
@@ -6,6 +6,7 @@ stdenv.mkDerivation rec {
 
   src = ./.;
 
+  strictDeps = true;
   dontBuild = true;
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-command-time/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-command-time/default.nix
index b92ced6be71c..c10b67c2b3de 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-command-time/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-command-time/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
     sha256 = "1bvyjgz6bhgg1nwr56r50p6fblgah6yiql55pgm5abnn2h876fjq";
   };
 
+  strictDeps = true;
   dontUnpack = true;
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix
index 249826a2a25f..a108473d373c 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix
@@ -1,18 +1,22 @@
-{ lib, stdenv, fetchFromGitHub}:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "zsh-completions";
-  version = "0.33.0";
+  version = "0.34.0";
 
   src = fetchFromGitHub {
     owner = "zsh-users";
     repo = pname;
     rev = version;
-    sha256 = "0vs14n29wvkai84fvz3dz2kqznwsq2i5fzbwpv8nsfk1126ql13i";
+    sha256 = "sha256-qSobM4PRXjfsvoXY6ENqJGI9NEAaFFzlij6MPeTfT0o=";
   };
 
-  installPhase= ''
+  strictDeps = true;
+  installPhase = ''
     install -D --target-directory=$out/share/zsh/site-functions src/*
+
+    # tmuxp install it so avoid collision
+    rm $out/share/zsh/site-functions/_tmuxp
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-deer/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-deer/default.nix
index ab544d7c3147..0d3a6bc9ee61 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-deer/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-deer/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "1xnbnbi0zk2xsyn8dqsmyxqlfnl36pb1wwibnlp0dxixw6sfymyl";
   };
 
+  strictDeps = true;
+
   prePatch = ''
     substituteInPlace deer \
       --replace " perl " " ${perl}/bin/perl "
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-fast-syntax-highlighting/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-fast-syntax-highlighting/default.nix
index 5b77978c0221..68f09828b456 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-fast-syntax-highlighting/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-fast-syntax-highlighting/default.nix
@@ -11,6 +11,7 @@ stdenvNoCC.mkDerivation rec {
     sha256 = "0h7f27gz586xxw7cc0wyiv3bx0x3qih2wwh05ad85bh2h834ar8d";
   };
 
+  strictDeps = true;
   dontConfigure = true;
   dontBuild = true;
 
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/darwin.patch b/nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/darwin.patch
deleted file mode 100644
index 54b6ce26138a..000000000000
--- a/nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/darwin.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/modules/Src/aloxaf/fzftab.c b/modules/Src/aloxaf/fzftab.c
-index 60b6330..91975d8 100644
---- a/modules/Src/aloxaf/fzftab.c
-+++ b/modules/Src/aloxaf/fzftab.c
-@@ -1,6 +1,5 @@
- #include "fzftab.mdh"
- #include "fzftab.pro"
--#include <malloc.h>
- #include <stdarg.h>
- #include <stdlib.h>
- #include <sys/stat.h>
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/default.nix
index 6d8ea1a9de9d..5e1fdd6e8fc3 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/default.nix
@@ -4,19 +4,18 @@ let
   INSTALL_PATH="${placeholder "out"}/share/fzf-tab";
 in stdenv.mkDerivation rec {
   pname = "zsh-fzf-tab";
-  version = "unstable-2022-02-10";
+  version = "unstable-2022-08-11";
 
   src = fetchFromGitHub {
     owner = "Aloxaf";
     repo = "fzf-tab";
-    rev = "e8145d541a35d8a03df49fbbeefa50c4a0076bbf";
-    sha256 = "h/3XP/BiNnUgQI29gEBl6RFee77WDhFyvsnTi1eRbKg=";
+    rev = "1efe7e3960caeba27e24dd7b546ee5c3545f68bc";
+    sha256 = "sha256-GI1+uEpxiMGYiXxfWr1+XtJroFRyX0LhpD7q3zft1E4=";
   };
 
+  strictDeps = true;
   buildInputs = [ ncurses ];
 
-  patches = lib.optionals stdenv.isDarwin [ ./darwin.patch ];
-
   postConfigure = ''
     pushd modules
     ./configure --disable-gdbm --without-tcsetpgrp
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-history-search-multi-word/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-history-search-multi-word/default.nix
index 09d2136ea26c..30d26c967662 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-history-search-multi-word/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-history-search-multi-word/default.nix
@@ -11,6 +11,7 @@ stdenvNoCC.mkDerivation rec {
     sha256 = "11r2mmy6bg3b6pf6qc0ml3idh333cj8yz754hrvd1sc4ipfkkqh7";
   };
 
+  strictDeps = true;
   dontConfigure = true;
   dontBuild = true;
 
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-history-substring-search/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-history-substring-search/default.nix
index 9890993eed64..63e5fe8281e3 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-history-substring-search/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-history-substring-search/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0y8va5kc2ram38hbk2cibkk64ffrabfv1sh4xm7pjspsba9n5p1y";
   };
 
+  strictDeps = true;
   installPhase = ''
     install -D zsh-history-substring-search.zsh \
       "$out/share/zsh-history-substring-search/zsh-history-substring-search.zsh"
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-history/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-history/default.nix
index be5c66505577..604d593a0bd4 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-history/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-history/default.nix
@@ -11,9 +11,9 @@ buildGoModule rec {
     sha256 = "13n643ik1zjvpk8h9458yd9ffahhbdnigmbrbmpn7b7g23wqqsi3";
   };
 
-  nativeBuildInputs = [ installShellFiles ];
+  vendorSha256 = "sha256-n5QFN1B2GjbzylFuW9Y4r0+ioIJlfKwcGK8X3ZwKLI8=";
 
-  vendorSha256 = "1863ad97y82fx0an1ysalkxnqjz3zfz228wag9a92wdssl1vwzws";
+  nativeBuildInputs = [ installShellFiles ];
 
   doCheck = false;
 
@@ -23,15 +23,15 @@ buildGoModule rec {
     installShellCompletion --zsh --name _history $out/share/zsh/completions/_history
   '';
 
+  passthru.tests = {
+    zsh-history-shell-integration = nixosTests.zsh-history;
+  };
+
   meta = with lib; {
     description = "A CLI to provide enhanced history for your ZSH shell";
-    license = licenses.mit;
     homepage = "https://github.com/b4b4r07/history";
-    platforms = platforms.unix;
+    license = licenses.mit;
     maintainers = with maintainers; [ ];
-  };
-
-  passthru.tests = {
-    zsh-history-shell-integration = nixosTests.zsh-history;
+    mainProgram = "history";
   };
 }
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-nix-shell/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-nix-shell/default.nix
index 8b463eda573e..88b6b98117e9 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-nix-shell/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-nix-shell/default.nix
@@ -1,19 +1,21 @@
-{ lib, stdenv, fetchFromGitHub, pkgs }:
+{ lib, stdenv, fetchFromGitHub, bash }:
 
 # To make use of this derivation, use
 # `programs.zsh.interactiveShellInit = "source ${pkgs.zsh-nix-shell}/share/zsh-nix-shell/nix-shell.plugin.zsh";`
 
 stdenv.mkDerivation rec {
   pname = "zsh-nix-shell";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "chisui";
     repo = "zsh-nix-shell";
     rev = "v${version}";
-    sha256 = "sha256-719lVo6p55G1tt3+6nMhZ904nyvlq0Q5exb0il36/Aw=";
+    sha256 = "sha256-IT3wpfw8zhiNQsrw59lbSWYh0NQ1CUdUtFzRzHlURH0=";
   };
 
+  strictDeps = true;
+  buildInputs = [ bash ];
   installPhase = ''
     install -D nix-shell.plugin.zsh --target-directory=$out/share/zsh-nix-shell
     install -D scripts/* --target-directory=$out/share/zsh-nix-shell/scripts
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
index 19d3e70c0a3a..cdda7d81f41d 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, substituteAll, pkgs }:
+{ lib, stdenv, fetchFromGitHub, substituteAll, pkgs, bash }:
 
 # To make use of this derivation, use
 # `programs.zsh.promptInit = "source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme";`
@@ -28,6 +28,9 @@ stdenv.mkDerivation rec {
     sha256 = "0fkfh8j7rd8mkpgz6nsx4v7665d375266shl1aasdad8blgqmf0c";
   };
 
+  strictDeps = true;
+  buildInputs = [ bash ];
+
   patches = [
     (substituteAll {
       src = ./gitstatusd.patch;
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-powerlevel9k/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-powerlevel9k/default.nix
index b681dc2d3a3a..27e3a648e2b3 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-powerlevel9k/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-powerlevel9k/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation {
     sha256 = "0v1dqg9hvycdkcvklg2njff97xwr8rah0nyldv4xm39r77f4yfvq";
   };
 
+  strictDeps = true;
   installPhase= ''
     install -D powerlevel9k.zsh-theme --target-directory=$out/share/zsh-powerlevel9k
     install -D functions/* --target-directory=$out/share/zsh-powerlevel9k/functions
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-prezto/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-prezto/default.nix
index 226b920b8f53..6201e42c0c02 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-prezto/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-prezto/default.nix
@@ -1,17 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, unstableGitUpdater }:
+{ lib, stdenv, fetchFromGitHub, unstableGitUpdater, bash }:
 
 stdenv.mkDerivation rec {
   pname = "zsh-prezto";
-  version = "unstable-2021-11-16";
+  version = "unstable-2022-04-05";
 
   src = fetchFromGitHub {
     owner = "sorin-ionescu";
     repo = "prezto";
-    rev = "ecaed1cfa7591d2304d7eb5d69b42b54961a7145";
-    sha256 = "+7KYBHmzXkdMgyj/x7o7Bf8f1DDFJ6nUMWe8vLUxbZo=";
+    rev = "2c663313168490d28f607738e962aa45ada0e26b";
+    sha256 = "05n2801xqdxc5nx0709mak1pr73l7aq5azd9adm0ym7si3vl59sj";
     fetchSubmodules = true;
   };
 
+  strictDeps = true;
+  buildInputs = [ bash ];
+
   postPatch = ''
     # make zshrc aware of where zsh-prezto is installed
     sed -i -e "s|\''${ZDOTDIR:\-\$HOME}/.zprezto/|$out/share/zsh-prezto/|g" runcoms/zshrc
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-syntax-highlighting/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-syntax-highlighting/default.nix
index 4fc8d5d0dc38..86723354ba6c 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-syntax-highlighting/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-syntax-highlighting/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "03r6hpb5fy4yaakqm3lbf4xcvd408r44jgpv4lnzl9asp4sb9qc0";
   };
 
+  strictDeps = true;
   nativeBuildInputs = [ zsh ];
 
   installFlags = [ "PREFIX=$(out)" ];
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-system-clipboard/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-system-clipboard/default.nix
index b4d407a70bc9..6e875b6ee086 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-system-clipboard/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-system-clipboard/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "09lqav1mz5zajklr3xa0iaivhpykv3azkjb7yj9wyp0hq3vymp8i";
   };
 
+  strictDeps = true;
   installPhase = ''
     install -D zsh-system-clipboard.zsh $out/share/zsh/${pname}/zsh-system-clipboard.zsh
   '';
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-vi-mode/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-vi-mode/default.nix
index 32f1e9c024ac..73eae88b71df 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-vi-mode/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-vi-mode/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "EOYqHh0rcgoi26eopm6FTl81ehak5kXMmzNcnJDH8/E=";
   };
 
+  strictDeps = true;
   dontBuild = true;
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix
index 8019e75a8594..95cdb3273c54 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1dz48rd66priqhxx7byndqhbmlwxi1nfw8ik25k0z5k7k754brgy";
   };
 
+  strictDeps = true;
   dontBuild = true;
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-z/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-z/default.nix
index 9623ff6648cd..a03b81cb6bfd 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-z/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-z/default.nix
@@ -11,6 +11,7 @@ stdenvNoCC.mkDerivation rec {
     sha256 = "sha256-HnwUWqzwavh/Qox+siOe5lwTp7PBdiYx+9M0NMNFx00=";
   };
 
+  strictDeps = true;
   dontBuild = true;
 
   installPhase = ''