biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / misc / iptsd / default.nix
blob98c901da126589a81251776502199a31df4092e5
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cmake
5 , meson
6 , ninja
7 , pkg-config
8 , cli11
9 , eigen
10 , hidrd
11 , inih
12 , microsoft-gsl
13 , spdlog
14 , systemd
17 stdenv.mkDerivation rec {
18   pname = "iptsd";
19   version = "3";
21   src = fetchFromGitHub {
22     owner = "linux-surface";
23     repo = "iptsd";
24     rev = "refs/tags/v${version}";
25     hash = "sha256-3z3A9qywmsSW1tlJ6LePC5wudM/FITTAFyuPkbHlid0=";
26   };
28   nativeBuildInputs = [
29     cmake
30     meson
31     ninja
32     pkg-config
33   ];
35   dontUseCmakeConfigure = true;
37   buildInputs = [
38     cli11
39     eigen
40     hidrd
41     inih
42     microsoft-gsl
43     spdlog
44     systemd
45   ];
47   # Original installs udev rules and service config into global paths
48   postPatch = ''
49     substituteInPlace etc/meson.build \
50       --replace-fail "install_dir: unitdir" "install_dir: '$out/etc/systemd/system'" \
51       --replace-fail "install_dir: rulesdir" "install_dir: '$out/etc/udev/rules.d'"
52     substituteInPlace etc/scripts/iptsd-find-service \
53       --replace-fail "systemd-escape" "${lib.getExe' systemd "systemd-escape"}"
54     substituteInPlace etc/udev/50-iptsd.rules.in \
55       --replace-fail "/bin/systemd-escape" "${lib.getExe' systemd "systemd-escape"}"
56   '';
58   mesonFlags = [
59     "-Dservice_manager=systemd"
60     "-Dsample_config=false"
61     "-Ddebug_tools="
62     "-Db_lto=false"  # plugin needed to handle lto object -> undefined reference to ...
63   ];
65   meta = with lib; {
66     changelog = "https://github.com/linux-surface/iptsd/releases/tag/${lib.removePrefix "refs/tags/" src.rev}";
67     description = "Userspace daemon for Intel Precise Touch & Stylus";
68     homepage = "https://github.com/linux-surface/iptsd";
69     license = licenses.gpl2Plus;
70     mainProgram = "iptsd";
71     maintainers = with maintainers; [ tomberek dotlambda ];
72     platforms = platforms.linux;
73   };