pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / applications / editors / vim / default.nix
blobb9c5f4ff7bbcc1f09b6c5b33638e8da82a7205c4
1 { lib, stdenv, fetchurl, callPackage, ncurses, bash, gawk, gettext, pkg-config
2 # default vimrc
3 , vimrc ? fetchurl {
4     name = "default-vimrc";
5     url = "https://raw.githubusercontent.com/archlinux/svntogit-packages/68f6d131750aa778807119e03eed70286a17b1cb/trunk/archlinux.vim";
6     sha256 = "18ifhv5q9prd175q3vxbqf6qyvkk6bc7d2lhqdk0q78i68kv9y0c";
7   }
8 # apple frameworks
9 , Carbon, Cocoa
12 let
13   common = callPackage ./common.nix {};
15 stdenv.mkDerivation {
16   pname = "vim";
18   inherit (common) version outputs src postPatch hardeningDisable enableParallelBuilding enableParallelInstalling postFixup meta;
20   nativeBuildInputs = [ gettext pkg-config ];
21   buildInputs = [ ncurses bash gawk ]
22     ++ lib.optionals stdenv.hostPlatform.isDarwin [ Carbon Cocoa ];
24   strictDeps = true;
26   configureFlags = [
27     "--enable-multibyte"
28     "--enable-nls"
29   ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) ([
30     "vim_cv_toupper_broken=no"
31     "--with-tlib=ncurses"
32     "vim_cv_terminfo=yes"
33     "vim_cv_tgetent=zero" # it does on native anyway
34     "vim_cv_tty_group=tty"
35     "vim_cv_tty_mode=0660"
36     "vim_cv_getcwd_broken=no"
37     "vim_cv_stat_ignores_slash=yes"
38     "vim_cv_memmove_handles_overlap=yes"
39   ] ++ lib.optionals stdenv.hostPlatform.isFreeBSD [
40     "vim_cv_timer_create=no"
41     "vim_cv_timer_create_with_lrt=yes"
42   ] ++ lib.optionals (!stdenv.hostPlatform.isFreeBSD) [
43     "vim_cv_timer_create=yes"
44   ]);
46   # which.sh is used to for vim's own shebang patching, so make it find
47   # binaries for the host platform.
48   preConfigure = ''
49     export HOST_PATH
50     substituteInPlace src/which.sh --replace '$PATH' '$HOST_PATH'
51   '';
53   postInstall = ''
54     ln -s $out/bin/vim $out/bin/vi
55     mkdir -p $out/share/vim
56     cp "${vimrc}" $out/share/vim/vimrc
58     # Prevent bugs in the upstream makefile from silently failing and missing outputs.
59     # Some of those are build-time requirements for other packages.
60     for tool in ex xxd vi view vimdiff; do
61       if [ ! -e "$out/bin/$tool" ]; then
62         echo "ERROR: install phase did not install '$tool'."
63         exit 1
64       fi
65     done
66   '';
68   __impureHostDeps = [ "/dev/ptmx" ];