|
1 | | -{ fetchurl, fetchpatch, lib, stdenv, ncurses }: |
| 1 | +{ |
| 2 | + lib, |
| 3 | + fetchurl, |
| 4 | + fetchpatch, |
| 5 | + installShellFiles, |
| 6 | + ncurses, |
| 7 | + stdenv, |
| 8 | +}: |
2 | 9 |
|
3 | | -stdenv.mkDerivation rec { |
| 10 | +stdenv.mkDerivation (finalAttrs: { |
4 | 11 | pname = "elvis"; |
5 | 12 | version = "2.2_0"; |
6 | 13 |
|
7 | 14 | src = fetchurl { |
8 | | - url = "http://www.the-little-red-haired-girl.org/pub/elvis/elvis-${version}.tar.gz"; |
9 | | - sha256 = "182fj9qzyq6cjq1r849gpam6nq9smwv9f9xwaq84961p56r6d14s"; |
| 15 | + urls = [ |
| 16 | + "http://www.the-little-red-haired-girl.org/pub/elvis/elvis-${finalAttrs.version}.tar.gz" |
| 17 | + "http://www.the-little-red-haired-girl.org/pub/elvis/old/elvis-${finalAttrs.version}.tar.gz" |
| 18 | + ]; |
| 19 | + hash = "sha256-moRmsik3mEQQVrwnlzavOmFrqrovEZQDlsxg/3GSTqA="; |
10 | 20 | }; |
11 | 21 |
|
12 | | - buildInputs = [ ncurses ]; |
13 | | - |
14 | 22 | patches = [ |
15 | 23 | (fetchpatch { |
| 24 | + name = "0000-resolve-stdio-getline-naming-conflict.patch"; |
16 | 25 | url = "https://github.com/mbert/elvis/commit/076cf4ad5cc993be0c6195ec0d5d57e5ad8ac1eb.patch"; |
17 | | - sha256 = "0yzkc1mxjwg09mfmrk20ksa0vfnb2x83ndybwvawq4xjm1qkcahc"; |
| 26 | + hash = "sha256-DCo2caiyE8zV5ss3O1AXy7oNlJ5AzFxdTeBx2Wtg83s="; |
18 | 27 | }) |
19 | 28 | ]; |
20 | 29 |
|
| 30 | + outputs = [ |
| 31 | + "out" |
| 32 | + "man" |
| 33 | + ]; |
| 34 | + |
| 35 | + nativeBuildInputs = [ installShellFiles ]; |
| 36 | + |
| 37 | + buildInputs = [ ncurses ]; |
| 38 | + |
| 39 | + configureFlags = [ "--ioctl=termios" ]; |
| 40 | + |
| 41 | + strictDeps = false; |
| 42 | + |
21 | 43 | postPatch = '' |
22 | 44 | substituteInPlace configure \ |
23 | | - --replace '-lcurses' '-lncurses' |
24 | | - ''; |
25 | | - |
26 | | - preConfigure = '' |
27 | | - mkdir -p $out/share/man/man1 |
| 45 | + --replace-fail '-lcurses' '-lncurses' |
28 | 46 | ''; |
29 | 47 |
|
30 | 48 | installPhase = '' |
31 | | - mkdir -p $out/bin $out/share/elvis $out/share/elvis/doc |
32 | | - cp elvis ref elvtags elvfmt $out/bin |
33 | | - cp -R data/* $out/share/elvis |
34 | | - cp doc/* $out/share/elvis/doc |
35 | | -
|
36 | | - mkdir -p $out/share/man/man1 |
37 | | - for a in doc/*.man; do |
38 | | - cp $a $out/share/man/man1/`basename $a .man`.1 |
| 49 | + runHook preInstall |
| 50 | +
|
| 51 | + installBin elvis ref elvtags elvfmt |
| 52 | +
|
| 53 | + pushd doc |
| 54 | + for page in *.man; do |
| 55 | + installManPage $page |
| 56 | + rm $page |
39 | 57 | done |
40 | | - ''; |
| 58 | + popd |
41 | 59 |
|
42 | | - configureFlags = [ "--ioctl=termios" ]; |
| 60 | + mkdir -p $out/share/doc/elvis-${finalAttrs.version}/ $out/share/elvis/ |
| 61 | + cp -R data/* $out/share/elvis/ |
| 62 | + cp doc/* $out/share/doc/elvis-${finalAttrs.version}/ |
| 63 | +
|
| 64 | + runHook postInstall |
| 65 | + ''; |
43 | 66 |
|
44 | 67 | meta = { |
45 | 68 | homepage = "http://elvis.the-little-red-haired-girl.org/"; |
46 | 69 | description = "Vi clone for Unix and other operating systems"; |
47 | 70 | license = lib.licenses.free; |
| 71 | + mainProgram = "elvis"; |
| 72 | + maintainers = with lib.maintainers; [ AndersonTorres ]; |
| 73 | + platforms = lib.platforms.unix; |
48 | 74 | }; |
49 | | -} |
| 75 | +}) |
0 commit comments