From 394b43f1fd8a937798c99a9eb4a380f479c39d5b Mon Sep 17 00:00:00 2001 From: Elmo Todurov Date: Wed, 15 May 2019 21:52:42 +0300 Subject: [PATCH 1/2] libfprint: added option to use fork for Lenovo ThinkPad --- .../libraries/libfprint/default.nix | 29 ++++++++++++++----- pkgs/top-level/all-packages.nix | 3 ++ 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/pkgs/development/libraries/libfprint/default.nix b/pkgs/development/libraries/libfprint/default.nix index 3f3062e3c08..410496a7bb7 100644 --- a/pkgs/development/libraries/libfprint/default.nix +++ b/pkgs/development/libraries/libfprint/default.nix @@ -1,16 +1,29 @@ -{ stdenv, fetchurl, pkgconfig, meson, ninja, libusb, pixman, glib, nss, gtk3 -, coreutils, gtk-doc, docbook_xsl, docbook_xml_dtd_43 }: +{ thinkpad ? false, stdenv, fetchFromGitHub, fetchurl, pkgconfig, meson, ninja, libusb, pixman, glib, nss, gtk3 +, coreutils, gtk-doc, docbook_xsl, docbook_xml_dtd_43, openssl ? null }: + +assert thinkpad -> openssl != null; stdenv.mkDerivation rec { - name = "libfprint-${version}"; + pname = "libfprint" + stdenv.lib.optionalString thinkpad "-thinkpad"; version = "0.99.0"; - src = fetchurl { - url = "https://gitlab.freedesktop.org/libfprint/libfprint/uploads/82ba3cef5bdf72997df711eacdb13c0f/libfprint-${version}.tar.xz"; - sha256 = "16r4nl40y0jri57jiqmdz4s87byblx22lbhyvqpljd6mqm5rg187"; - }; + src = { + libfprint-thinkpad = + fetchFromGitHub { + owner = "3v1n0"; + repo = "libfprint"; + rev = "2e2e3821717e9042e93a995bdbd3d00f2df0be9c"; + sha256 = "1vps1wrp7hskf13f7jrv0dwry2fcid76x2w463wplngp63cj7b3b"; + }; + libfprint = fetchurl { + url = "https://gitlab.freedesktop.org/libfprint/libfprint/uploads/82ba3cef5bdf72997df711eacdb13c0f/libfprint-${version}.tar.xz"; + sha256 = "16r4nl40y0jri57jiqmdz4s87byblx22lbhyvqpljd6mqm5rg187"; + }; + }.${pname}; + + buildInputs = [ libusb pixman glib nss gtk3 ] + ++ stdenv.lib.optional thinkpad openssl; - buildInputs = [ libusb pixman glib nss gtk3 ]; nativeBuildInputs = [ pkgconfig meson ninja gtk-doc docbook_xsl docbook_xml_dtd_43 ]; mesonFlags = [ "-Dudev_rules_dir=lib/udev/rules.d" "-Dx11-examples=false" ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f2dab6fdba3..f9655363a90 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11299,6 +11299,9 @@ in }; libfprint = callPackage ../development/libraries/libfprint { }; + libfprint-thinkpad = libfprint.override { + thinkpad = true; + }; libfpx = callPackage ../development/libraries/libfpx { }; From 432944cdb375a19493970010a77146711c02e753 Mon Sep 17 00:00:00 2001 From: Elmo Todurov Date: Wed, 15 May 2019 23:56:58 +0300 Subject: [PATCH 2/2] fprintd: added option to use fork for Lenovo ThinkPad --- nixos/modules/services/security/fprintd.nix | 12 +++++++++++- pkgs/tools/security/fprintd/default.nix | 12 ++++++++---- pkgs/top-level/all-packages.nix | 3 +++ 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/nixos/modules/services/security/fprintd.nix b/nixos/modules/services/security/fprintd.nix index 9ed7f2a2efd..8ece1ca1901 100644 --- a/nixos/modules/services/security/fprintd.nix +++ b/nixos/modules/services/security/fprintd.nix @@ -25,6 +25,16 @@ in ''; }; + package = mkOption { + type = types.package; + default = pkgs.fprintd; + defaultText = "pkgs.fprintd"; + example = "pkgs.fprintd-thinkpad"; + description = '' + fprintd package to use. + ''; + }; + }; }; @@ -38,7 +48,7 @@ in environment.systemPackages = [ pkgs.fprintd ]; - systemd.packages = [ pkgs.fprintd ]; + systemd.packages = [ cfg.package ]; }; diff --git a/pkgs/tools/security/fprintd/default.nix b/pkgs/tools/security/fprintd/default.nix index 65eec89a09f..b43be1a6924 100644 --- a/pkgs/tools/security/fprintd/default.nix +++ b/pkgs/tools/security/fprintd/default.nix @@ -1,8 +1,9 @@ -{ stdenv, fetchurl, pkgconfig, intltool -, libfprint, glib, dbus-glib, polkit, nss, pam, systemd }: +{ thinkpad ? false +, stdenv, fetchurl, pkgconfig, intltool, libfprint-thinkpad ? null +, libfprint ? null, glib, dbus-glib, polkit, nss, pam, systemd }: stdenv.mkDerivation rec { - name = "fprintd-${version}"; + pname = "fprintd" + stdenv.lib.optionalString thinkpad "-thinkpad"; version = "0.8.1"; src = fetchurl { @@ -10,7 +11,10 @@ stdenv.mkDerivation rec { sha256 = "124s0g9syvglgsmqnavp2a8c0zcq8cyaph8p8iyvbla11vfizs9l"; }; - buildInputs = [ libfprint glib dbus-glib polkit nss pam systemd ]; + buildInputs = [ glib dbus-glib polkit nss pam systemd ] + ++ stdenv.lib.optional thinkpad libfprint-thinkpad + ++ stdenv.lib.optional (!thinkpad) libfprint; + nativeBuildInputs = [ pkgconfig intltool ]; configureFlags = [ "--with-systemdsystemunitdir=$(out)/lib/systemd/system" "--localstatedir=/var" ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f9655363a90..fb8c8be60a9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2981,6 +2981,9 @@ in fprot = callPackage ../tools/security/fprot { }; fprintd = callPackage ../tools/security/fprintd { }; + fprintd-thinkpad = fprintd.override { + thinkpad = true; + }; franz = callPackage ../applications/networking/instant-messengers/franz { };