2009-11-18 10:39:59 +01:00
|
|
|
{ stdenv, fetchurl, ncurses, coreutils }:
|
|
|
|
|
|
|
|
let
|
|
|
|
|
2014-04-09 12:16:43 +02:00
|
|
|
version = "5.0.5";
|
2009-11-18 10:39:59 +01:00
|
|
|
|
|
|
|
documentation = fetchurl {
|
2008-11-22 17:57:16 +01:00
|
|
|
url = "mirror://sourceforge/zsh/zsh-${version}-doc.tar.bz2";
|
2014-04-09 12:16:43 +02:00
|
|
|
sha256 = "1wljqii2lkz5kc4y3xs65isnahvnlj678b9zv31bn444mapjpwp4";
|
2008-11-22 17:57:16 +01:00
|
|
|
};
|
2014-04-09 12:16:43 +02:00
|
|
|
|
2008-11-22 17:57:16 +01:00
|
|
|
in
|
2009-11-18 10:39:59 +01:00
|
|
|
|
2008-11-22 17:57:16 +01:00
|
|
|
stdenv.mkDerivation {
|
|
|
|
name = "zsh-${version}";
|
|
|
|
|
|
|
|
src = fetchurl {
|
|
|
|
url = "mirror://sourceforge/zsh/zsh-${version}.tar.bz2";
|
2014-04-09 12:16:43 +02:00
|
|
|
sha256 = "1bwfz9n850pclzmzrb437icfhzv1s5pgh2dhs92f194gdkxx4936";
|
2008-11-22 17:57:16 +01:00
|
|
|
};
|
2014-04-09 12:16:43 +02:00
|
|
|
|
2011-12-29 20:46:47 +01:00
|
|
|
buildInputs = [ ncurses coreutils ];
|
|
|
|
|
|
|
|
preConfigure = ''
|
|
|
|
configureFlags="--enable-maildir-support --enable-multibyte --enable-zprofile=$out/etc/zprofile --with-tcsetpgrp"
|
|
|
|
'';
|
2008-11-22 17:57:16 +01:00
|
|
|
|
2011-12-29 20:46:47 +01:00
|
|
|
# XXX: think/discuss about this, also with respect to nixos vs nix-on-X
|
2008-11-22 17:57:16 +01:00
|
|
|
postInstall = ''
|
2012-01-18 21:16:00 +01:00
|
|
|
mkdir -p $out/share/
|
2008-11-22 17:57:16 +01:00
|
|
|
tar xf ${documentation} -C $out/share
|
2012-01-18 21:16:00 +01:00
|
|
|
mkdir -p $out/etc/
|
2011-12-29 20:46:47 +01:00
|
|
|
cat > $out/etc/zprofile <<EOF
|
2011-12-29 21:09:30 +01:00
|
|
|
if test -e /etc/NIXOS; then
|
|
|
|
if test -r /etc/zprofile; then
|
|
|
|
. /etc/zprofile
|
|
|
|
else
|
|
|
|
emulate bash
|
|
|
|
alias shopt=false
|
|
|
|
. /etc/profile
|
|
|
|
unalias shopt
|
|
|
|
emulate zsh
|
|
|
|
fi
|
|
|
|
if test -r /etc/zprofile.local; then
|
|
|
|
. /etc/zprofile.local
|
|
|
|
fi
|
2011-12-29 20:46:47 +01:00
|
|
|
else
|
2011-12-29 21:09:30 +01:00
|
|
|
# on non-nixos we just source the global /etc/zprofile as if we did
|
|
|
|
# not use the configure flag
|
|
|
|
if test -r /etc/zprofile; then
|
|
|
|
. /etc/zprofile
|
|
|
|
fi
|
2011-12-29 20:46:47 +01:00
|
|
|
fi
|
|
|
|
EOF
|
|
|
|
$out/bin/zsh -c "zcompile $out/etc/zprofile"
|
|
|
|
mv $out/etc/zprofile $out/etc/zprofile_zwc_is_used
|
2008-11-22 17:57:16 +01:00
|
|
|
'';
|
2011-12-29 20:46:47 +01:00
|
|
|
# XXX: patch zsh to take zwc if newer _or equal_
|
2011-12-29 20:46:43 +01:00
|
|
|
|
|
|
|
meta = {
|
2014-06-23 13:07:28 +02:00
|
|
|
description = "The Z shell";
|
|
|
|
longDescription = ''
|
|
|
|
Zsh is a UNIX command interpreter (shell) usable as an interactive login
|
|
|
|
shell and as a shell script command processor. Of the standard shells,
|
|
|
|
zsh most closely resembles ksh but includes many enhancements. Zsh has
|
|
|
|
command line editing, builtin spelling correction, programmable command
|
|
|
|
completion, shell functions (with autoloading), a history mechanism, and
|
|
|
|
a host of other features.
|
|
|
|
'';
|
2011-12-29 20:46:43 +01:00
|
|
|
license = "MIT-like";
|
|
|
|
homePage = "http://www.zsh.org/";
|
|
|
|
maintainers = with stdenv.lib.maintainers; [ chaoflow ];
|
2014-07-18 00:38:19 +02:00
|
|
|
platforms = stdenv.lib.platforms.unix;
|
2011-12-29 20:46:43 +01:00
|
|
|
};
|
2008-11-22 17:57:16 +01:00
|
|
|
}
|