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