Merge pull request #117928 from ymatsiuk/fprintd-tod

nixos/fprintd: add TOD support
This commit is contained in:
Graham Christensen 2021-04-15 11:51:09 -04:00 committed by GitHub
commit ffd29c76f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 15 deletions

View File

@ -5,6 +5,7 @@ with lib;
let let
cfg = config.services.fprintd; cfg = config.services.fprintd;
fprintdPkg = if cfg.tod.enable then pkgs.fprintd-tod else pkgs.fprintd;
in in
@ -17,25 +18,30 @@ in
services.fprintd = { services.fprintd = {
enable = mkOption { enable = mkEnableOption "fprintd daemon and PAM module for fingerprint readers handling";
type = types.bool;
default = false;
description = ''
Whether to enable fprintd daemon and PAM module for fingerprint readers handling.
'';
};
package = mkOption { package = mkOption {
type = types.package; type = types.package;
default = pkgs.fprintd; default = fprintdPkg;
defaultText = "pkgs.fprintd"; defaultText = "if cfg.tod.enable then pkgs.fprintd-tod else pkgs.fprintd";
description = '' description = ''
fprintd package to use. fprintd package to use.
''; '';
}; };
}; tod = {
enable = mkEnableOption "Touch OEM Drivers library support";
driver = mkOption {
type = types.package;
example = literalExample "pkgs.libfprint-2-tod1-goodix";
description = ''
Touch OEM Drivers (TOD) package to use.
'';
};
};
};
}; };
@ -49,6 +55,10 @@ in
systemd.packages = [ cfg.package ]; systemd.packages = [ cfg.package ];
systemd.services.fprintd.environment = mkIf cfg.tod.enable {
FP_TOD_DRIVERS_DIR = "${cfg.tod.driver}${cfg.tod.driver.driverPath}";
};
}; };
} }

View File

@ -5,7 +5,7 @@ stdenv.mkDerivation {
src = fetchgit { src = fetchgit {
url = "https://git.launchpad.net/~oem-solutions-engineers/libfprint-2-tod1-goodix/+git/libfprint-2-tod1-goodix"; 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 rev = "882735c6366fbe30149eea5cfd6d0ddff880f0e4"; # droped-lp1880058 on 2020-11-25
sha256 = "sha256-Uv+Rr4V31DyaZFOj79Lpyfl3G6zVWShh20roI0AvMPU="; sha256 = "sha256-Uv+Rr4V31DyaZFOj79Lpyfl3G6zVWShh20roI0AvMPU=";
}; };
@ -18,13 +18,15 @@ stdenv.mkDerivation {
''; '';
installPhase = '' installPhase = ''
mkdir -p "$out/usr/lib/libfprint-2/tod-1/" mkdir -p "$out/lib/libfprint-2/tod-1/"
mkdir -p "$out/usr/lib/udev/rules.d/" mkdir -p "$out/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 usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-tod-goodix-53xc-$version.so "$out/lib/libfprint-2/tod-1/"
cp lib/udev/rules.d/60-libfprint-2-tod1-goodix.rules "$out/usr/lib/udev/rules.d/" cp lib/udev/rules.d/60-libfprint-2-tod1-goodix.rules "$out/lib/udev/rules.d/"
''; '';
passthru.driverPath = "/lib/libfprint-2/tod-1";
meta = with lib; { meta = with lib; {
description = "Goodix driver module for libfprint-2-tod Touch OEM Driver"; 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/"; homepage = "https://git.launchpad.net/~oem-solutions-engineers/libfprint-2-tod1-goodix/+git/libfprint-2-tod1-goodix/";