From 2b93e96d0bdf5cd98c6d7bd60af6e4dded4ab3d1 Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Tue, 8 Sep 2020 20:32:01 +0800 Subject: [PATCH] pcsclite: add policy kit support --- pkgs/tools/security/pcsclite/default.nix | 38 +++++++++++++++++++----- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/pkgs/tools/security/pcsclite/default.nix b/pkgs/tools/security/pcsclite/default.nix index 2a75c409305..71bd13c4a72 100644 --- a/pkgs/tools/security/pcsclite/default.nix +++ b/pkgs/tools/security/pcsclite/default.nix @@ -1,4 +1,15 @@ -{ lib, stdenv, fetchurl, pkg-config, udev, dbus, perl, python3, IOKit }: +{ stdenv +, lib +, fetchurl +, autoreconfHook +, pkg-config +, perl +, python3 +, dbus +, polkit +, systemd +, IOKit +}: stdenv.mkDerivation rec { pname = "pcsclite"; @@ -13,14 +24,23 @@ stdenv.mkDerivation rec { patches = [ ./no-dropdir-literals.patch ]; + postPatch = '' + sed -i configure.ac \ + -e "s@polkit_policy_dir=.*@polkit_policy_dir=$bin/share/polkit-1/actions@" + ''; + configureFlags = [ + "--enable-confdir=/etc" # The OS should care on preparing the drivers into this location "--enable-usbdropdir=/var/lib/pcsc/drivers" - "--enable-confdir=/etc" - ] ++ lib.optional stdenv.isLinux - "--with-systemdsystemunitdir=\${out}/etc/systemd/system" - ++ lib.optional (!stdenv.isLinux) - "--disable-libsystemd"; + ] + ++ (if stdenv.isLinux then [ + "--enable-ipcdir=/run/pcscd" + "--enable-polkit" + "--with-systemdsystemunitdir=${placeholder "bin"}/lib/systemd/system" + ] else [ + "--disable-libsystemd" + ]); postConfigure = '' sed -i -re '/^#define *PCSCLITE_HP_DROPDIR */ { @@ -33,10 +53,12 @@ stdenv.mkDerivation rec { moveToOutput bin/pcsc-spy "$dev" ''; - nativeBuildInputs = [ pkg-config perl ]; + enableParallelBuilding = true; + + nativeBuildInputs = [ autoreconfHook pkg-config perl ]; buildInputs = [ python3 ] - ++ lib.optionals stdenv.isLinux [ udev dbus ] + ++ lib.optionals stdenv.isLinux [ dbus polkit systemd ] ++ lib.optionals stdenv.isDarwin [ IOKit ]; meta = with lib; {