lol
1{ lib
2, stdenv
3, fetchFromGitHub
4, autoreconfHook
5, pkg-config
6, indent
7, perl
8, argp-standalone
9, fmt_9
10, libev
11, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, systemd
12, withUsb ? stdenv.isLinux, libusb1
13}:
14
15stdenv.mkDerivation rec {
16 pname = "knxd";
17 version = "0.14.59";
18
19 src = fetchFromGitHub {
20 owner = "knxd";
21 repo = "knxd";
22 rev = version;
23 hash = "sha256-m3119aD23XTViQJ2s7hwnJZ1ct4bcEFWuyUQajmqySQ=";
24 };
25
26 postPatch = ''
27 sed -i '2i echo ${version}; exit' tools/version.sh
28 sed -i '2i exit' tools/get_libfmt
29 '';
30
31 nativeBuildInputs = [ autoreconfHook pkg-config indent perl ];
32
33 buildInputs = [ fmt_9 libev ]
34 ++ lib.optional withSystemd systemd
35 ++ lib.optional withUsb libusb1
36 ++ lib.optional stdenv.isDarwin argp-standalone;
37
38 configureFlags = lib.optional (!withSystemd) "--disable-systemd"
39 ++ lib.optional (!withUsb) "--disable-usb";
40
41 installFlags = lib.optionals withSystemd [
42 "systemdsystemunitdir=$(out)/lib/systemd/system"
43 "systemdsysusersdir=$(out)/lib/sysusers.d"
44 ];
45
46 meta = with lib; {
47 description = "Advanced router/gateway for KNX";
48 homepage = "https://github.com/knxd/knxd";
49 license = licenses.gpl2Plus;
50 maintainers = with maintainers; [ sikmir ];
51 platforms = platforms.unix;
52 };
53}
54