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.
This commit is contained in:
William A. Kennington III 2014-02-04 17:12:39 -06:00 committed by Bjørn Forsman
parent 42358f0cd0
commit bf3ca4cb48

View File

@ -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 ];
};
}