nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 fetchurl,
3 lib,
4 stdenv,
5 ncurses,
6}:
7
8stdenv.mkDerivation rec {
9 pname = "readline";
10 version = "7.0p${toString (builtins.length upstreamPatches)}";
11
12 src = fetchurl {
13 url = "mirror://gnu/readline/readline-${meta.branch}.tar.gz";
14 sha256 = "0d13sg9ksf982rrrmv5mb6a2p4ys9rvg9r71d6il0vr8hmql63bm";
15 };
16
17 outputs = [
18 "out"
19 "dev"
20 "man"
21 "doc"
22 "info"
23 ];
24
25 strictDeps = true;
26 propagatedBuildInputs = [ ncurses ];
27
28 patchFlags = [ "-p0" ];
29
30 upstreamPatches = (
31 let
32 patch =
33 nr: sha256:
34 fetchurl {
35 url = "mirror://gnu/readline/readline-${meta.branch}-patches/readline70-${nr}";
36 inherit sha256;
37 };
38 in
39 import ./readline-7.0-patches.nix patch
40 );
41
42 patches = [
43 ./link-against-ncurses.patch
44 ./no-arch_only-6.3.patch
45 ]
46 ++ upstreamPatches;
47
48 env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-std=gnu17";
49
50 meta = {
51 description = "Library for interactive line editing";
52
53 longDescription = ''
54 The GNU Readline library provides a set of functions for use by
55 applications that allow users to edit command lines as they are
56 typed in. Both Emacs and vi editing modes are available. The
57 Readline library includes additional functions to maintain a
58 list of previously-entered command lines, to recall and perhaps
59 reedit those lines, and perform csh-like history expansion on
60 previous commands.
61
62 The history facilities are also placed into a separate library,
63 the History library, as part of the build process. The History
64 library may be used without Readline in applications which
65 desire its capabilities.
66 '';
67
68 homepage = "https://savannah.gnu.org/projects/readline/";
69
70 license = lib.licenses.gpl3Plus;
71
72 maintainers = [ ];
73
74 platforms = lib.platforms.unix;
75 branch = "7.0";
76 };
77}