1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 fetchpatch,
6 makeWrapper,
7 perl,
8 ncurses5,
9 taskwarrior2,
10}:
11
12stdenv.mkDerivation rec {
13 version = "2020-12-17";
14 pname = "tasknc";
15
16 src = fetchFromGitHub {
17 owner = "lharding";
18 repo = "tasknc";
19 rev = "a182661fbcc097a933d5e8cce3922eb1734a563e";
20 sha256 = "0jrv2k1yizfdjndbl06lmy2bb62ky2rjdk308967j31c5kqqnw56";
21 };
22
23 # Pull pending upstream inclusion for ncurses-6.3:
24 # https://github.com/lharding/tasknc/pull/57
25 patches = [
26 (fetchpatch {
27 name = "ncurses-6.3.patch";
28 url = "https://github.com/lharding/tasknc/commit/f74ea0641e9bf287acf22fac9f6eeea571b01800.patch";
29 sha256 = "18a90zj85sw2zfnfcv055nvi0lx3h8lcgsyabdfk94ksn78pygrv";
30 })
31 ];
32
33 nativeBuildInputs = [
34 makeWrapper
35 perl # For generating the man pages with pod2man
36 ];
37
38 buildInputs = [ ncurses5 ];
39
40 hardeningDisable = [ "format" ];
41
42 buildFlags = [ "VERSION=${version}" ];
43
44 installPhase = ''
45 mkdir -p $out/bin/
46 mkdir -p $out/share/man/man1
47 mkdir -p $out/share/tasknc
48
49 DESTDIR=$out PREFIX= MANPREFIX=/share/man make install
50
51 wrapProgram $out/bin/tasknc --prefix PATH : ${taskwarrior2}/bin
52 '';
53
54 meta = with lib; {
55 homepage = "https://github.com/lharding/tasknc";
56 description = "Ncurses wrapper around taskwarrior";
57 mainProgram = "tasknc";
58 maintainers = with maintainers; [ matthiasbeyer ];
59 platforms = platforms.linux; # Cannot test others
60 license = licenses.mit;
61 };
62}