about summary refs log tree commit diff
path: root/pkgs/applications/editors/edbrowse/default.nix
blob: 5b37b86556b7f8b26386fa5162dcfa095581c783 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
{ lib
, stdenv
, fetchFromGitHub
, curl
, duktape
, html-tidy
, openssl
, pcre
, perl
, pkg-config
, quickjs
, readline
, which
}:

stdenv.mkDerivation rec {
  pname = "edbrowse";
  version = "3.8.0";

  src = fetchFromGitHub {
    owner = "CMB";
    repo = pname;
    rev = "v${version}";
    hash = "sha256-ZXxzQBAmu7kM3sjqg/rDLBXNucO8sFRFKXV8UxQVQZU=";
  };

  nativeBuildInputs = [
    pkg-config
    which
  ];
  buildInputs = [
    curl
    duktape
    html-tidy
    openssl
    pcre
    perl
    quickjs
    readline
  ];

  patches = [
    # Fixes some small annoyances on src/makefile
    ./0001-small-fixes.patch
  ];

  postPatch = ''
    substituteInPlace src/makefile --replace\
      '-L/usr/local/lib/quickjs' '-L${quickjs}/lib/quickjs'
    for i in $(find ./tools/ -type f ! -name '*.c'); do
      patchShebangs $i
    done
  '';

  makeFlags = [
    "-C" "src"
    "PREFIX=${placeholder "out"}"
  ];

  meta = with lib; {
    homepage = "https://edbrowse.org/";
    description = "Command Line Editor Browser";
    longDescription = ''
      Edbrowse is a combination editor, browser, and mail client that is 100%
      text based. The interface is similar to /bin/ed, though there are many
      more features, such as editing multiple files simultaneously, and
      rendering html. This program was originally written for blind users, but
      many sighted users have taken advantage of the unique scripting
      capabilities of this program, which can be found nowhere else. A batch
      job, or cron job, can access web pages on the internet, submit forms, and
      send email, with no human intervention whatsoever. edbrowse can also tap
      into databases through odbc. It was primarily written by Karl Dahlke.
    '';
    license = licenses.gpl1Plus;
    maintainers = with maintainers; [ schmitthenner vrthra equirosa ];
    platforms = platforms.linux;
  };
}
# TODO: send the patch to upstream developers