From 8c9dc6df6107b1dcc0ebf99c642b414ca785bc75 Mon Sep 17 00:00:00 2001 From: Elyhaka <57923898+Elyhaka@users.noreply.github.com> Date: Tue, 19 May 2020 14:02:39 +0200 Subject: [PATCH 1/3] libpam-wrapper: init at 1.1.3 --- .../libraries/libpam-wrapper/default.nix | 33 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ pkgs/top-level/python-packages.nix | 5 +++ 3 files changed, 40 insertions(+) create mode 100644 pkgs/development/libraries/libpam-wrapper/default.nix diff --git a/pkgs/development/libraries/libpam-wrapper/default.nix b/pkgs/development/libraries/libpam-wrapper/default.nix new file mode 100644 index 000000000000..f8359cded93a --- /dev/null +++ b/pkgs/development/libraries/libpam-wrapper/default.nix @@ -0,0 +1,33 @@ +{ stdenv +, fetchgit +, cmake +, linux-pam +, enablePython ? false +, python ? null +}: + +assert enablePython -> python != null; + +stdenv.mkDerivation rec { + pname = "libpam-wrapper"; + version = "1.1.3"; + + src = fetchgit { + url = "git://git.samba.org/pam_wrapper.git"; + rev = "pam_wrapper-${version}"; + sha256 = "00mqhsashx7njrvxz085d0b88nizhdy7m3x17ip5yhvwsl63km6p"; + }; + + nativeBuildInputs = [ cmake ] ++ stdenv.lib.optional enablePython [ python ]; + + # We must use linux-pam, using openpam will result in broken fprintd. + buildInputs = [ linux-pam ]; + + meta = with stdenv.lib; { + description = "Wrapper for testing PAM modules"; + homepage = "https://cwrap.org/pam_wrapper.html"; + license = licenses.gpl3Plus; + maintainers = [ maintainers.elyhaka ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7e32522158ce..c6943b8edbc6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13262,6 +13262,8 @@ in libp11 = callPackage ../development/libraries/libp11 { }; + libpam-wrapper = callPackage ../development/libraries/libpam-wrapper { }; + libpar2 = callPackage ../development/libraries/libpar2 { }; libpcap = callPackage ../development/libraries/libpcap { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 513b5876bf0f..58923066fc4a 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7042,6 +7042,11 @@ in { pytoml = callPackage ../development/python-modules/pytoml { }; + pypamtest = pkgs.libpam-wrapper.override { + enablePython = true; + inherit python; + }; + pypandoc = callPackage ../development/python-modules/pypandoc { }; yamllint = callPackage ../development/python-modules/yamllint { }; From c7c90540dddfdf489d6e5b66da6e9451e619af04 Mon Sep 17 00:00:00 2001 From: Elyhaka <57923898+Elyhaka@users.noreply.github.com> Date: Tue, 19 May 2020 14:03:13 +0200 Subject: [PATCH 2/3] libfprint: 1.0 -> 1.90.1 --- .../libraries/libfprint/default.nix | 52 ++++++------------- pkgs/top-level/all-packages.nix | 3 -- 2 files changed, 17 insertions(+), 38 deletions(-) diff --git a/pkgs/development/libraries/libfprint/default.nix b/pkgs/development/libraries/libfprint/default.nix index e886baa47976..e2552ba713e0 100644 --- a/pkgs/development/libraries/libfprint/default.nix +++ b/pkgs/development/libraries/libfprint/default.nix @@ -1,41 +1,31 @@ -{ thinkpad ? false -, stdenv -, fetchFromGitHub -, fetchurl +{ stdenv +, fetchFromGitLab , pkgconfig , meson , ninja -, libusb1 +, gusb , pixman , glib , nss -, gtk3 +, gobject-introspection , coreutils , gtk-doc , docbook_xsl , docbook_xml_dtd_43 -, openssl ? null }: -assert thinkpad -> openssl != null; - stdenv.mkDerivation rec { - pname = "libfprint" + stdenv.lib.optionalString thinkpad "-thinkpad"; - version = "1.0"; + pname = "libfprint"; + version = "1.90.1"; + outputs = [ "out" "devdoc" ]; - src = { - libfprint-thinkpad = - fetchFromGitHub { - owner = "3v1n0"; - repo = "libfprint"; - rev = "2e2e3821717e9042e93a995bdbd3d00f2df0be9c"; - sha256 = "1vps1wrp7hskf13f7jrv0dwry2fcid76x2w463wplngp63cj7b3b"; - }; - libfprint = fetchurl { - url = "https://gitlab.freedesktop.org/libfprint/libfprint/uploads/aff93e9921d1cff53d7c070944952ff9/libfprint-${version}.tar.xz"; - sha256 = "0v84pd12v016m8iimhq39fgzamlarqccsr7d98cvrrwrzrgcixrd"; - }; - }.${pname}; + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "libfprint"; + repo = pname; + rev = "v${version}"; + sha256 = "0fdaak7qjr9b4482g7fhhqpyfdqpxq5kpmyzkp7f5i7qq2ynb78a"; + }; nativeBuildInputs = [ pkgconfig @@ -44,28 +34,20 @@ stdenv.mkDerivation rec { gtk-doc docbook_xsl docbook_xml_dtd_43 + gobject-introspection ]; buildInputs = [ - libusb1 # drop in 2.0 for gusb + gusb pixman glib nss - gtk3 - ] - ++ stdenv.lib.optional thinkpad openssl - ; + ]; mesonFlags = [ "-Dudev_rules_dir=${placeholder "out"}/lib/udev/rules.d" - "-Dx11-examples=false" ]; - postPatch = '' - substituteInPlace libfprint/meson.build \ - --replace /bin/echo ${coreutils}/bin/echo - ''; - meta = with stdenv.lib; { homepage = "https://fprint.freedesktop.org/"; description = "A library designed to make it easy to add support for consumer fingerprint readers"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c6943b8edbc6..479798d251b3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12774,9 +12774,6 @@ in }; libfprint = callPackage ../development/libraries/libfprint { }; - libfprint-thinkpad = libfprint.override { - thinkpad = true; - }; libfpx = callPackage ../development/libraries/libfpx { }; From 131a28e9f2e5f51e37a60af25379cc236f6b71c7 Mon Sep 17 00:00:00 2001 From: Elyhaka <57923898+Elyhaka@users.noreply.github.com> Date: Tue, 19 May 2020 14:03:31 +0200 Subject: [PATCH 3/3] fprintd: 0.9.0 -> 1.90.1 --- nixos/modules/services/security/fprintd.nix | 1 - pkgs/tools/security/fprintd/default.nix | 106 ++++++++++++++------ pkgs/top-level/all-packages.nix | 3 - 3 files changed, 77 insertions(+), 33 deletions(-) diff --git a/nixos/modules/services/security/fprintd.nix b/nixos/modules/services/security/fprintd.nix index 8ece1ca19013..cbac4ef05b8d 100644 --- a/nixos/modules/services/security/fprintd.nix +++ b/nixos/modules/services/security/fprintd.nix @@ -29,7 +29,6 @@ in type = types.package; default = pkgs.fprintd; defaultText = "pkgs.fprintd"; - example = "pkgs.fprintd-thinkpad"; description = '' fprintd package to use. ''; diff --git a/pkgs/tools/security/fprintd/default.nix b/pkgs/tools/security/fprintd/default.nix index b119a6ed29ff..62f5dda17f67 100644 --- a/pkgs/tools/security/fprintd/default.nix +++ b/pkgs/tools/security/fprintd/default.nix @@ -1,42 +1,70 @@ -{ thinkpad ? false -, stdenv -, fetchurl +{ stdenv +, fetchFromGitLab , fetchpatch , pkgconfig -, intltool -, libfprint-thinkpad ? null -, libfprint ? null +, meson +, ninja +, perl +, gettext +, cairo +, gtk-doc +, libxslt +, docbook-xsl-nons +, docbook_xml_dtd_412 , glib +, dbus , dbus-glib , polkit , nss , pam , systemd -, autoreconfHook -, gtk-doc +, libfprint +, python3 }: stdenv.mkDerivation rec { - pname = "fprintd" + stdenv.lib.optionalString thinkpad "-thinkpad"; - version = "0.9.0"; + pname = "fprintd"; + version = "1.90.1"; + outputs = [ "out" "devdoc" ]; - src = fetchurl { - url = "https://gitlab.freedesktop.org/libfprint/fprintd/uploads/9dec4b63d1f00e637070be1477ce63c0/fprintd-${version}.tar.xz"; - sha256 = "182gcnwb6zjwmk0dn562rjmpbk7ac7dhipbfdhfic2sn1jzis49p"; + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "libfprint"; + repo = pname; + rev = version; + sha256 = "0mbzk263x7f58i9cxhs44mrngs7zw5wkm62j5r6xlcidhmfn03cg"; }; patches = [ + # Fixes issue with ":" when there is multiple paths (might be the case on NixOS) + # https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/50 (fetchpatch { - url = "https://gitlab.freedesktop.org/libfprint/fprintd/merge_requests/16.patch"; - sha256 = "1y39zsmxjll9hip8464qwhq5qg06c13pnafyafgxdph75lvhdll7"; + url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/d7fec03f24d10f88d34581c72f0eef201f5eafac.patch"; + sha256 = "QNN05WF4YZ0XiTwm5NkfqZDuQpyXlnrh+RJF9SNsCDk="; + }) + + # Fix locating libpam_wrapper for tests + (fetchpatch { + url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/40.patch"; + sha256 = "43uPihK6HhygHw1Qplwci80Wseq/S77VUp+OdEECHmM="; + }) + (fetchpatch { + url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/f401f399a85dbeb2de165b9b9162eb552ab6eea7.patch"; + sha256 = "Pga+/QEkln8DOwGZfKM1r2urJX4Y3X0bozWWxKZ5ia0="; }) ]; nativeBuildInputs = [ - intltool pkgconfig - autoreconfHook # Drop with above patch - gtk-doc # Drop with above patch + meson + ninja + perl + gettext + gtk-doc + libxslt + dbus + docbook-xsl-nons + docbook_xml_dtd_412 ]; buildInputs = [ @@ -46,23 +74,43 @@ stdenv.mkDerivation rec { nss pam systemd - ] - ++ stdenv.lib.optional thinkpad libfprint-thinkpad - ++ stdenv.lib.optional (!thinkpad) libfprint - ; - - configureFlags = [ - # is hardcoded to /var/lib/fprint, this is for the StateDirectory install target - "--localstatedir=${placeholder "out"}/var" - "--sysconfdir=${placeholder "out"}/etc" - "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system" + libfprint ]; + checkInputs = with python3.pkgs; [ + python-dbusmock + dbus-python + pygobject3 + pycairo + pypamtest + ]; + + mesonFlags = [ + "-Dgtk_doc=true" + "-Dpam_modules_dir=${placeholder "out"}/lib/security" + "-Dsysconfdir=${placeholder "out"}/etc" + "-Ddbus_service_dir=${placeholder "out"}/share/dbus-1/system-services" + "-Dsystemd_system_unit_dir=${placeholder "out"}/lib/systemd/system" + ]; + + PKG_CONFIG_DBUS_1_INTERFACES_DIR = "${placeholder "out"}/share/dbus-1/interfaces"; + PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "${placeholder "out"}/share/polkit-1/actions"; + PKG_CONFIG_DBUS_1_DATADIR = "${placeholder "out"}/share"; + + # FIXME: Ugly hack for tests to find libpam_wrapper.so + LIBRARY_PATH = stdenv.lib.makeLibraryPath [ python3.pkgs.pypamtest ]; + + doCheck = true; + + postPatch = '' + patchShebangs po/check-translations.sh + ''; + meta = with stdenv.lib; { homepage = "https://fprint.freedesktop.org/"; description = "D-Bus daemon that offers libfprint functionality over the D-Bus interprocess communication bus"; license = licenses.gpl2; platforms = platforms.linux; - maintainers = with maintainers; [ abbradar ]; + maintainers = with maintainers; [ abbradar elyhaka ]; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 479798d251b3..37d7e0c7a84f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3512,9 +3512,6 @@ in fprot = callPackage ../tools/security/fprot { }; fprintd = callPackage ../tools/security/fprintd { }; - fprintd-thinkpad = fprintd.override { - thinkpad = true; - }; franz = callPackage ../applications/networking/instant-messengers/franz { };