1{ stdenv
2, lib
3, fetchFromGitHub
4, meson
5, ninja
6, glib
7, pkg-config
8, udev
9, libgudev
10, python3
11, valgrind
12}:
13
14stdenv.mkDerivation rec {
15 pname = "libwacom";
16 version = "2.8.0";
17
18 outputs = [ "out" "dev" ];
19
20 src = fetchFromGitHub {
21 owner = "linuxwacom";
22 repo = "libwacom";
23 rev = "libwacom-${version}";
24 hash = "sha256-VjFZBlOIG1L4dXPJ8DWxrbfVqdQC+X7zVXFryo43FFc=";
25 };
26
27 postPatch = ''
28 patchShebangs test/check-files-in-git.sh
29 '';
30
31 nativeBuildInputs = [
32 pkg-config
33 meson
34 ninja
35 python3
36 ];
37
38 buildInputs = [
39 glib
40 udev
41 libgudev
42 ];
43
44 doCheck = stdenv.hostPlatform == stdenv.buildPlatform && lib.meta.availableOn stdenv.hostPlatform valgrind;
45
46 mesonFlags = [
47 "-Dtests=${if doCheck then "enabled" else "disabled"}"
48 ];
49
50 nativeCheckInputs = [
51 valgrind
52 ] ++ (with python3.pkgs; [
53 libevdev
54 pytest
55 pyudev
56 ]);
57
58 meta = with lib; {
59 platforms = platforms.linux;
60 homepage = "https://linuxwacom.github.io/";
61 changelog = "https://github.com/linuxwacom/libwacom/blob/${src.rev}/NEWS";
62 description = "Libraries, configuration, and diagnostic tools for Wacom tablets running under Linux";
63 maintainers = teams.freedesktop.members;
64 license = licenses.mit;
65 };
66}