From bf3ca4cb484cdd9d1767f5cd6ef41704e8998009 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 4 Feb 2014 17:12:39 -0600 Subject: [PATCH] fish: Fix propagatedBuildInputs and other assorted changes Currently, fish does not depend on python27 which is necessary for many of the built in commands such as the manpage completion generator and the web configuration sevice. This patch adds support for python27 as well as man_db for the manpage completion generator. It also attempts to replace more shell functions with binaries contained in the nix store. --- pkgs/shells/fish/default.nix | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix index 27f2b032476..7b70e98d2cd 100644 --- a/pkgs/shells/fish/default.nix +++ b/pkgs/shells/fish/default.nix @@ -1,34 +1,35 @@ -{ stdenv, fetchurl, autoconf, ncurses, which, groff, gettext }: +{ stdenv, fetchurl, ncurses, python27, which, groff, gettext, man_db, bc }: stdenv.mkDerivation rec { - name = "fish-2.1.0"; + name = "fish-${version}"; + version = "2.1.0"; src = fetchurl { - url = http://fishshell.com/files/2.1.0/fish-2.1.0.tar.gz; - sha1 = "b1764cba540055cb8e2a96a7ea4c844b04a32522"; + url = "http://fishshell.com/files/${version}/${name}.tar.gz"; + sha256 = "0i7h3hx8iszli3d4kphw79sz9m07f2lc2c9hr9smdps5s7wpllmg"; }; - nativeBuildInputs = [ autoconf ]; + buildInputs = [ ncurses ]; - buildInputs = [ ncurses which ]; - - preConfigure = '' - autoconf - ''; + # Required binaries during execution + # Python27: Autocompletion generated from manpages and config editing + propagatedBuildInputs = [ python27 which groff gettext man_db bc ]; postInstall = '' - sed -i "s|which |command -v |" "$out/share/fish/functions/type.fish" + sed -i "s|bc|${bc}/bin/bc|" "$out/share/fish/functions/seq.fish" + sed -i "s|which |${which}/bin/which |" "$out/share/fish/functions/type.fish" sed -i "s|nroff |${groff}/bin/nroff |" "$out/share/fish/functions/__fish_print_help.fish" sed -e "s|gettext |${gettext}/bin/gettext |" \ - -e "s|which |command -v |" \ + -e "s|which |${which}/bin/which |" \ -i "$out/share/fish/functions/_.fish" + sed -i "s|Popen(\['manpath'|Popen(\['${man_db}/bin/manpath'|" "$out/share/fish/tools/create_manpage_completions.py" ''; meta = with stdenv.lib; { description = "Smart and user-friendly command line shell"; - homepage = http://fishshell.com/; + homepage = "http://fishshell.com/"; license = licenses.gpl2; platforms = platforms.linux; - maintainers = [ stdenv.lib.maintainers.ocharles ]; + maintainers = with maintainers; [ ocharles ]; }; }