diff --git a/nixos/doc/manual/release-notes/rl-1903.xml b/nixos/doc/manual/release-notes/rl-1903.xml
index d99c88817279..c823d8fcf264 100644
--- a/nixos/doc/manual/release-notes/rl-1903.xml
+++ b/nixos/doc/manual/release-notes/rl-1903.xml
@@ -343,6 +343,13 @@
.text]]>.
+
+
+ fish has been upgraded to 3.0.
+ It comes with a number of improvements and backwards incompatible changes.
+ See the fish release notes for more information.
+
+
diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix
index 2ef0480942c4..e79f756e522d 100644
--- a/pkgs/shells/fish/default.nix
+++ b/pkgs/shells/fish/default.nix
@@ -1,7 +1,8 @@
{ stdenv, fetchurl, coreutils, utillinux,
- nettools, bc, which, gnused, gnugrep,
+ which, gnused, gnugrep,
groff, man-db, getent, libiconv, pcre2,
- gettext, ncurses, python3
+ gettext, ncurses, python3,
+ cmake
, writeText
@@ -88,7 +89,7 @@ let
fish = stdenv.mkDerivation rec {
name = "fish-${version}";
- version = "2.7.1";
+ version = "3.0.0";
etcConfigAppendix = builtins.toFile "etc-config.appendix.fish" etcConfigAppendixText;
@@ -96,26 +97,27 @@ let
# There are differences between the release tarball and the tarball github packages from the tag
# Hence we cannot use fetchFromGithub
url = "https://github.com/fish-shell/fish-shell/releases/download/${version}/${name}.tar.gz";
- sha256 = "0nhc3yc5lnnan7zmxqqxm07rdpwjww5ijy45ll2njdc6fnfb2az4";
+ sha256 = "1kzjd0n0sfslkd36lzrvvvgy3qwkd9y466bkrqlnhd5h9dhx77ga";
};
+ nativeBuildInputs = [ cmake ];
buildInputs = [ ncurses libiconv pcre2 ];
configureFlags = [ "--without-included-pcre2" ];
+ preConfigure = ''
+ patchShebangs ./build_tools/git_version_gen.sh
+ '';
+
# Required binaries during execution
# Python: Autocompletion generated from manpages and config editing
propagatedBuildInputs = [
- coreutils gnugrep gnused bc
+ coreutils gnugrep gnused
python3 groff gettext
] ++ optional (!stdenv.isDarwin) man-db;
postInstall = ''
sed -r "s|command grep|command ${gnugrep}/bin/grep|" \
-i "$out/share/fish/functions/grep.fish"
- sed -e "s|bc|${bc}/bin/bc|" \
- -e "s|/usr/bin/seq|${coreutils}/bin/seq|" \
- -i "$out/share/fish/functions/seq.fish" \
- "$out/share/fish/functions/math.fish"
sed -i "s|which |${which}/bin/which |" \
"$out/share/fish/functions/type.fish"
sed -e "s|\|cut|\|${coreutils}/bin/cut|" \
@@ -147,8 +149,6 @@ let
done
'' + optionalString (!stdenv.isDarwin) ''
- sed -i "s|(hostname\||(${nettools}/bin/hostname\||" \
- "$out/share/fish/functions/fish_prompt.fish"
sed -i "s|Popen(\['manpath'|Popen(\['${man-db}/bin/manpath'|" \
"$out/share/fish/tools/create_manpage_completions.py"
sed -i "s|command manpath|command ${man-db}/bin/manpath|" \