Merge pull request #117928 from ymatsiuk/fprintd-tod

nixos/fprintd: add TOD support

Changed files
+27 -15
nixos
modules
services
security
pkgs
development
libraries
libfprint-2-tod1-goodix
+20 -10
nixos/modules/services/security/fprintd.nix
···
let
cfg = config.services.fprintd;
+
fprintdPkg = if cfg.tod.enable then pkgs.fprintd-tod else pkgs.fprintd;
in
···
services.fprintd = {
-
enable = mkOption {
-
type = types.bool;
-
default = false;
-
description = ''
-
Whether to enable fprintd daemon and PAM module for fingerprint readers handling.
-
'';
-
};
+
enable = mkEnableOption "fprintd daemon and PAM module for fingerprint readers handling";
package = mkOption {
type = types.package;
-
default = pkgs.fprintd;
-
defaultText = "pkgs.fprintd";
+
default = fprintdPkg;
+
defaultText = "if cfg.tod.enable then pkgs.fprintd-tod else pkgs.fprintd";
description = ''
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.
+
'';
+
};
+
};
+
};
};
···
environment.systemPackages = [ 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}";
+
};
};
+7 -5
pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix
···
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
+
rev = "882735c6366fbe30149eea5cfd6d0ddff880f0e4"; # droped-lp1880058 on 2020-11-25
sha256 = "sha256-Uv+Rr4V31DyaZFOj79Lpyfl3G6zVWShh20roI0AvMPU=";
};
···
'';
installPhase = ''
-
mkdir -p "$out/usr/lib/libfprint-2/tod-1/"
-
mkdir -p "$out/usr/lib/udev/rules.d/"
+
mkdir -p "$out/lib/libfprint-2/tod-1/"
+
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 lib/udev/rules.d/60-libfprint-2-tod1-goodix.rules "$out/usr/lib/udev/rules.d/"
+
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/lib/udev/rules.d/"
'';
+
+
passthru.driverPath = "/lib/libfprint-2/tod-1";
meta = with lib; {
description = "Goodix driver module for libfprint-2-tod Touch OEM Driver";