{ lib, stdenv, fetchFromGitLab, pkg-config, meson, python3, ninja, gusb, pixman, glib, gobject-introspection, cairo, libgudev, udevCheckHook, gtk-doc, docbook-xsl-nons, docbook_xml_dtd_43, openssl, }: stdenv.mkDerivation (finalAttrs: { pname = "libfprint"; version = "1.94.9"; outputs = [ "out" "devdoc" ]; src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "libfprint"; repo = "libfprint"; rev = "v${finalAttrs.version}"; hash = "sha256-UiUdZokgi27LlyO419dd+NIcQD2RSUfdsC08sW3qzko="; }; postPatch = '' patchShebangs \ tests/test-runner.sh \ tests/unittest_inspector.py \ tests/virtual-image.py \ tests/umockdev-test.py \ tests/test-generated-hwdb.sh ''; nativeBuildInputs = [ pkg-config meson ninja gtk-doc docbook-xsl-nons docbook_xml_dtd_43 gobject-introspection udevCheckHook ]; buildInputs = [ gusb pixman glib cairo libgudev openssl ]; mesonFlags = [ "-Dudev_rules_dir=${placeholder "out"}/lib/udev/rules.d" # Include virtual drivers for fprintd tests "-Ddrivers=all" "-Dudev_hwdb_dir=${placeholder "out"}/lib/udev/hwdb.d" ]; nativeInstallCheckInputs = [ (python3.withPackages (p: with p; [ pygobject3 ])) ]; # We need to run tests _after_ install so all the paths that get loaded are in # the right place. doCheck = false; doInstallCheck = true; installCheckPhase = '' runHook preInstallCheck ninjaCheckPhase runHook postInstallCheck ''; meta = { homepage = "https://fprint.freedesktop.org/"; description = "Library designed to make it easy to add support for consumer fingerprint readers"; license = lib.licenses.lgpl21Only; platforms = lib.platforms.linux; maintainers = [ ]; }; })