diff --git a/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix b/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix new file mode 100644 index 00000000000..3fa68353969 --- /dev/null +++ b/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix @@ -0,0 +1,35 @@ +{ stdenv, lib, fetchgit, libfprint-tod }: +stdenv.mkDerivation { + pname = "libfprint-2-tod1-goodix"; + version = "0.0.6"; + + src = fetchgit { + url = "https://git.launchpad.net/~oem-solutions-engineers/libfprint-2-tod1-goodix/+git/libfprint-2-tod1-goodix"; + rev = "882735c6366fbe30149eea5cfd6d0ddff880f0e4"; # droped-lp1880058 on 20202-11-25 + sha256 = "sha256-Uv+Rr4V31DyaZFOj79Lpyfl3G6zVWShh20roI0AvMPU="; + }; + + buildPhase = '' + patchelf \ + --set-rpath ${lib.makeLibraryPath [ libfprint-tod ]} \ + usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-tod-goodix-53xc-0.0.6.so + + ldd usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-tod-goodix-53xc-0.0.6.so + ''; + + installPhase = '' + mkdir -p "$out/usr/lib/libfprint-2/tod-1/" + mkdir -p "$out/usr/lib/udev/rules.d/" + + cp usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-tod-goodix-53xc-$version.so "$out/usr/lib/libfprint-2/tod-1/" + cp lib/udev/rules.d/60-libfprint-2-tod1-goodix.rules "$out/usr/lib/udev/rules.d/" + ''; + + meta = with lib; { + description = "Goodix driver module for libfprint-2-tod Touch OEM Driver"; + homepage = "https://git.launchpad.net/~oem-solutions-engineers/libfprint-2-tod1-goodix/+git/libfprint-2-tod1-goodix/"; + license = licenses.unfree; + platforms = platforms.linux; + maintainers = with maintainers; [ grahamc ]; + }; +} diff --git a/pkgs/development/libraries/libfprint-tod/default.nix b/pkgs/development/libraries/libfprint-tod/default.nix new file mode 100644 index 00000000000..8d7df57896d --- /dev/null +++ b/pkgs/development/libraries/libfprint-tod/default.nix @@ -0,0 +1,40 @@ +{ lib +, libfprint +, fetchFromGitLab +}: + +# for the curious, "tod" means "Touch OEM Drivers" meaning it can load +# external .so's. +libfprint.overrideAttrs ({ postPatch ? "", mesonFlags ? [], ... }: let + version = "1.90.7+git20210222+tod1"; +in { + pname = "libfprint-tod"; + inherit version; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "3v1n0"; + repo = "libfprint"; + rev = "v${version}"; + sha256 = "0cj7iy5799pchyzqqncpkhibkq012g3bdpn18pfb19nm43svhn4j"; + }; + + mesonFlags = mesonFlags ++ [ + "-Dudev_hwdb_dir=${placeholder "out"}/lib/udev/hwdb.d" + ]; + + + postPatch = '' + ${postPatch} + patchShebangs ./tests/*.py ./tests/*.sh + ''; + + + meta = with lib; { + homepage = "https://gitlab.freedesktop.org/3v1n0/libfprint"; + description = "A library designed to make it easy to add support for consumer fingerprint readers, with support for loaded drivers"; + license = licenses.lgpl21; + platforms = platforms.linux; + maintainers = with maintainers; [ grahamc ]; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index de21bb1d8fd..c4e28880bf9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4473,6 +4473,10 @@ in fprintd = callPackage ../tools/security/fprintd { }; + fprintd-tod = callPackage ../tools/security/fprintd { + libfprint = libfprint-tod; + }; + ferdi = callPackage ../applications/networking/instant-messengers/ferdi { mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { }; }; @@ -15237,6 +15241,10 @@ in libfprint = callPackage ../development/libraries/libfprint { }; + libfprint-tod = callPackage ../development/libraries/libfprint-tod { }; + + libfprint-2-tod1-goodix = callPackage ../development/libraries/libfprint-2-tod1-goodix { }; + libfpx = callPackage ../development/libraries/libfpx { }; libgadu = callPackage ../development/libraries/libgadu { };