nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchurl,
5 boehmgc,
6 glib,
7 help2man,
8 libgee,
9 ncurses,
10 perl,
11 pkg-config,
12 vala,
13}:
14
15stdenv.mkDerivation rec {
16 pname = "zile";
17 version = "2.6.4";
18
19 src = fetchurl {
20 url = "mirror://gnu/zile/${pname}-${version}.tar.gz";
21 hash = "sha256-1dRLhctJBkPQcH4aIYbzoymYwvbquqlIFHm2XK7uV8A=";
22 };
23
24 buildInputs = [
25 boehmgc
26 glib
27 libgee
28 ncurses
29 ];
30 nativeBuildInputs = [
31 perl
32 pkg-config
33 vala
34 ]
35 # `help2man' wants to run Zile, which won't work when the
36 # newly-produced binary can't be run at build-time.
37 ++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) help2man;
38
39 # Tests can't be run because most of them rely on the ability to
40 # fiddle with the terminal.
41 doCheck = false;
42
43 env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types";
44
45 # XXX: Work around cross-compilation-unfriendly `gl_FUNC_FSTATAT' macro.
46 gl_cv_func_fstatat_zero_flag = "yes";
47
48 meta = {
49 homepage = "https://www.gnu.org/software/zile/";
50 changelog = "https://git.savannah.gnu.org/cgit/zile.git/plain/NEWS?h=v${version}";
51 description = "Zile Implements Lua Editors";
52 longDescription = ''
53 GNU Zile is a text editor development kit, so that you can (relatively)
54 quickly develop your own ideal text editor without reinventing the wheel
55 for many of the common algorithms and data-structures needed to do so.
56
57 It comes with an example implementation of a lightweight Emacs clone,
58 called Zemacs. Every Emacs user should feel at home with Zemacs. Zemacs is
59 aimed at small footprint systems and quick editing sessions (it starts up
60 and shuts down instantly).
61
62 More editors implemented over the Zile frameworks are forthcoming as the
63 data-structures and interfaces improve: Zz an emacs inspired editor using
64 Lua as an extension language; Zee a minimalist non-modal editor; Zi a
65 lightweight vi clone; and more...
66
67 Zile is a collection of algorithms and data-structures that currently
68 support all basic Emacs-like editing features: it is 8-bit clean (though
69 Unicode support is not ready yet), and the number of editing buffers and
70 windows is only limited by available memoryand screen space
71 respectively. Registers, minibuffer completion and auto fill are
72 available.
73
74 Zemacs implements a subset of Emacs with identical function and variable
75 names, continuing the spirit of the earlier Zile editor implemented in C.
76 GNU Zile, which is a lightweight Emacs clone. Zile is short for Zile Is
77 Lossy Emacs. Zile has been written to be as similar as possible to Emacs;
78 every Emacs user should feel at home.
79 '';
80 license = lib.licenses.gpl3Plus;
81 maintainers = with lib.maintainers; [ pSub ];
82 platforms = lib.platforms.unix;
83 mainProgram = "zile";
84 };
85}