about summary refs log tree commit diff
path: root/pkgs/servers/monitoring/lcdproc/default.nix
blob: e469ee6b40822f260c75e0041bab766aa2986cc0 (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
{ stdenv, fetchFromGitHub, autoreconfHook, makeWrapper, pkgconfig
, doxygen, freetype, libX11, libftdi, libusb-compat-0_1, libusb1, ncurses, perl }:

stdenv.mkDerivation rec {
  pname = "lcdproc";
  version = "0.5.9";

  src = fetchFromGitHub {
    owner  = "lcdproc";
    repo   = "lcdproc";
    rev    = "v${version}";
    sha256 = "1r885zv1gsh88j43x6fvzbdgfkh712a227d369h4fdcbnnfd0kpm";
  };

  patches = [
    ./hardcode_mtab.patch
  ];

  configureFlags = [
    "--enable-lcdproc-menus"
    "--enable-drivers=all"
    "--with-pidfile-dir=/run"
  ];

  buildInputs = [ freetype libX11 libftdi libusb-compat-0_1 libusb1 ncurses ];
  nativeBuildInputs = [ autoreconfHook doxygen makeWrapper pkgconfig ];

  # In 0.5.9: gcc: error: libbignum.a: No such file or directory
  enableParallelBuilding = false;

  postFixup = ''
    for f in $out/bin/*.pl ; do
      substituteInPlace $f \
        --replace /usr/bin/perl ${stdenv.lib.getBin perl}/bin/perl
    done

    # NixOS will not use this file anyway but at least we can now execute LCDd
    substituteInPlace $out/etc/LCDd.conf \
      --replace server/drivers/ $out/lib/lcdproc/
  '';

  meta = with stdenv.lib; {
    description = "Client/server suite for controlling a wide variety of LCD devices";
    homepage    = "http://lcdproc.org/";
    license     = licenses.gpl2;
    maintainers = with maintainers; [ peterhoeg ];
    platforms   = platforms.unix;
  };
}