{ lib , stdenv , fetchurl , fetchpatch , autoreconfHook , yodl , perl , groff , util-linux , texinfo , ncurses , pcre , buildPackages }: let version = "5.8"; in stdenv.mkDerivation { pname = "zsh"; inherit version; src = fetchurl { url = "mirror://sourceforge/zsh/zsh-${version}.tar.xz"; sha256 = "09yyaadq738zlrnlh1hd3ycj1mv3q5hh4xl1ank70mjnqm6bbi6w"; }; patches = [ # fix location of timezone data for TZ= completion ./tz_completion.patch # This commit will be released with the next version of zsh (fetchpatch { name = "fix-git-stash-drop-completions.patch"; url = "https://github.com/zsh-users/zsh/commit/754658aff38e1bdf487c58bec6174cbecd019d11.patch"; sha256 = "sha256-ud/rLD+SqvyTzT6vwOr+MWH+LY5o5KACrU1TpmL15Lo="; excludes = [ "ChangeLog" ]; }) ]; nativeBuildInputs = [ autoreconfHook perl groff texinfo ] ++ lib.optionals stdenv.isLinux [ util-linux yodl ]; buildInputs = [ ncurses pcre ]; configureFlags = [ "--enable-maildir-support" "--enable-multibyte" "--with-tcsetpgrp" "--enable-pcre" "--enable-zprofile=${placeholder "out"}/etc/zprofile" "--disable-site-fndir" ]; # the zsh/zpty module is not available on hydra # so skip groups Y Z 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 '' make install.info install.html '' + '' mkdir -p $out/etc/ cat > $out/etc/zprofile <