From b29ed560497abcbb31ad4cf72163fb9e336de2e5 Mon Sep 17 00:00:00 2001 From: Yurii Matsiuk Date: Mon, 29 Mar 2021 12:27:51 +0200 Subject: [PATCH 1/2] nixos/fprintd: add TOD support Co-authored-by: Sandro Signed-off-by: Yurii Matsiuk --- nixos/modules/services/security/fprintd.nix | 30 ++++++++++++------- .../libfprint-2-tod1-goodix/default.nix | 2 ++ 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/nixos/modules/services/security/fprintd.nix b/nixos/modules/services/security/fprintd.nix index 48f8a9616c3..fe0fba5b45d 100644 --- a/nixos/modules/services/security/fprintd.nix +++ b/nixos/modules/services/security/fprintd.nix @@ -5,6 +5,7 @@ with lib; let cfg = config.services.fprintd; + fprintdPkg = if cfg.tod.enable then pkgs.fprintd-tod else pkgs.fprintd; in @@ -17,25 +18,30 @@ 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. + ''; + }; + }; + }; }; @@ -49,6 +55,10 @@ in systemd.packages = [ cfg.package ]; + systemd.services.fprintd.environment = mkIf cfg.tod.enable { + FP_TOD_DRIVERS_DIR = "${cfg.tod.driver}${cfg.tod.driver.driverPath}"; + }; + }; } diff --git a/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix b/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix index 3fa68353969..347bf6fc48c 100644 --- a/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix +++ b/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix @@ -25,6 +25,8 @@ stdenv.mkDerivation { cp lib/udev/rules.d/60-libfprint-2-tod1-goodix.rules "$out/usr/lib/udev/rules.d/" ''; + passthru.driverPath = "/usr/lib/libfprint-2/tod-1"; + 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/"; From 1c552c29ca9b5af13070f1959b88c4f8d1f8c788 Mon Sep 17 00:00:00 2001 From: Yurii Matsiuk Date: Mon, 12 Apr 2021 12:25:45 +0200 Subject: [PATCH 2/2] libfprint-2-tod1-goodix: fix driver path Signed-off-by: Yurii Matsiuk --- .../libraries/libfprint-2-tod1-goodix/default.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix b/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix index 347bf6fc48c..e4121bc9e90 100644 --- a/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix +++ b/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { 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="; }; @@ -18,14 +18,14 @@ stdenv.mkDerivation { ''; 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 = "/usr/lib/libfprint-2/tod-1"; + passthru.driverPath = "/lib/libfprint-2/tod-1"; meta = with lib; { description = "Goodix driver module for libfprint-2-tod Touch OEM Driver";