pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / by-name / tx / txr / package.nix
blob6748b8ee341407d12bf5b9c6aa6db790afc8ded4
1 { lib
2 , stdenv
3 , fetchurl
4 , coreutils
5 , libffi
6 }:
8 stdenv.mkDerivation (finalAttrs: {
9   pname = "txr";
10   version = "296";
12   src = fetchurl {
13     url = "https://www.kylheku.com/cgit/txr/snapshot/txr-${finalAttrs.version}.tar.bz2";
14     hash = "sha256-dT50wfEcEJpSNYVrXlgAkSuCZ+CCV6GibxfnTv1cKRc=";
15   };
17   buildInputs = [ libffi ];
19   enableParallelBuilding = true;
21   doCheck = true;
22   checkTarget = "tests";
24   postPatch = ''
25     substituteInPlace tests/017/realpath.tl --replace /usr/bin /bin
26     substituteInPlace tests/017/realpath.expected --replace /usr/bin /bin
28     substituteInPlace tests/018/process.tl --replace /usr/bin/env ${lib.getBin coreutils}/bin/env
29   '';
31   preCheck = let
32     disabledTests = lib.concatStringsSep " " [
33       # - tries to set sticky bits
34       "tests/018/chmod.tl"
35       # - warning: unbound function crypt
36       "tests/018/crypt.tl"
37     ];
38   in ''
39     rm ${disabledTests}
40   '';
42   postInstall = ''
43     mkdir -p $out/share/vim-plugins/txr/{syntax,ftdetect}
45     cp {tl,txr}.vim $out/share/vim-plugins/txr/syntax/
47     cat > $out/share/vim-plugins/txr/ftdetect/txr.vim <<EOF
48       au BufRead,BufNewFile *.txr set filetype=txr | set lisp
49       au BufRead,BufNewFile *.tl,*.tlo set filetype=tl | set lisp
50     EOF
51     mkdir -p $out/share/nvim
52     ln -s $out/share/vim-plugins/txr $out/share/nvim/site
53   '';
55   meta = {
56     homepage = "https://nongnu.org/txr";
57     description = "Original, New Programming Language for Convenient Data Munging";
58     longDescription = ''
59       TXR is a general-purpose, multi-paradigm programming language. It
60       comprises two languages integrated into a single tool: a text scanning and
61       extraction language referred to as the TXR Pattern Language (sometimes
62       just "TXR"), and a general-purpose dialect of Lisp called TXR Lisp.
64       TXR can be used for everything from "one liner" data transformation tasks
65       at the command line, to data scanning and extracting scripts, to full
66       application development in a wide range of areas.
67     '';
68     changelog = "https://www.kylheku.com/cgit/txr/tree/RELNOTES?h=txr-${finalAttrs.version}";
69     license = lib.licenses.bsd2;
70     maintainers = with lib.maintainers; [ AndersonTorres dtzWill ];
71     platforms = lib.platforms.all;
72   };