1{ lib, stdenv
2, fetchFromGitLab
3, pkg-config
4, meson
5, python3
6, ninja
7, gusb
8, pixman
9, glib
10, nss
11, gobject-introspection
12, coreutils
13, cairo
14, libgudev
15, gtk-doc
16, docbook-xsl-nons
17, docbook_xml_dtd_43
18}:
19
20stdenv.mkDerivation rec {
21 pname = "libfprint";
22 version = "1.94.6";
23 outputs = [ "out" "devdoc" ];
24
25 src = fetchFromGitLab {
26 domain = "gitlab.freedesktop.org";
27 owner = "libfprint";
28 repo = pname;
29 rev = "v${version}";
30 hash = "sha256-lDnAXWukBZSo8X6UEVR2nOMeVUi/ahnJgx2cP+vykZ8=";
31 };
32
33 postPatch = ''
34 patchShebangs \
35 tests/test-runner.sh \
36 tests/unittest_inspector.py \
37 tests/virtual-image.py \
38 tests/umockdev-test.py \
39 tests/test-generated-hwdb.sh
40 '';
41
42 nativeBuildInputs = [
43 pkg-config
44 meson
45 ninja
46 gtk-doc
47 docbook-xsl-nons
48 docbook_xml_dtd_43
49 gobject-introspection
50 ];
51
52 buildInputs = [
53 gusb
54 pixman
55 glib
56 nss
57 cairo
58 libgudev
59 ];
60
61 mesonFlags = [
62 "-Dudev_rules_dir=${placeholder "out"}/lib/udev/rules.d"
63 # Include virtual drivers for fprintd tests
64 "-Ddrivers=all"
65 "-Dudev_hwdb_dir=${placeholder "out"}/lib/udev/hwdb.d"
66 ];
67
68 nativeInstallCheckInputs = [
69 (python3.withPackages (p: with p; [ pygobject3 ]))
70 ];
71
72 # We need to run tests _after_ install so all the paths that get loaded are in
73 # the right place.
74 doCheck = false;
75
76 doInstallCheck = true;
77
78 installCheckPhase = ''
79 runHook preInstallCheck
80
81 ninjaCheckPhase
82
83 runHook postInstallCheck
84 '';
85
86 meta = with lib; {
87 homepage = "https://fprint.freedesktop.org/";
88 description = "A library designed to make it easy to add support for consumer fingerprint readers";
89 license = licenses.lgpl21Only;
90 platforms = platforms.linux;
91 maintainers = with maintainers; [ abbradar ];
92 };
93}