forked from mirrors/nixpkgs
70246d7cfa
This allows to override the directory where PCSC-Lite searches for USB drivers at runtime and should make our NixOS module much more clean so that we don't need to imperatively stitch together plugin directories anymore. I'm using a GNU extension for the ternary operator to avoid computing getenv("PCSCLITE_HP_DROPDIR") twice: https://gcc.gnu.org/onlinedocs/gcc/Conditionals.html#Conditionals Signed-off-by: aszlig <aszlig@redmoonstudios.org> Cc: @viric, @wkennington
37 lines
1.2 KiB
Nix
37 lines
1.2 KiB
Nix
{ stdenv, fetchurl, pkgconfig, udev, dbus_libs, perl, python2 }:
|
|
|
|
stdenv.mkDerivation rec {
|
|
name = "pcsclite-1.8.16";
|
|
|
|
src = fetchurl {
|
|
url = "https://alioth.debian.org/frs/download.php/file/4164/pcsc-lite-1.8.16.tar.bz2";
|
|
sha256 = "12k8q0ckyy1fqcfh7x0b7kfrlfiscrqaqmidcggnzs4pi2iqml77";
|
|
};
|
|
|
|
patches = [ ./no-dropdir-literals.patch ];
|
|
|
|
configureFlags = [
|
|
# The OS should care on preparing the drivers into this location
|
|
"--enable-usbdropdir=/var/lib/pcsc/drivers"
|
|
"--enable-confdir=/etc"
|
|
] ++ stdenv.lib.optional stdenv.isLinux
|
|
"--with-systemdsystemunitdir=\${out}/etc/systemd/system";
|
|
|
|
postConfigure = ''
|
|
sed -i -re '/^#define *PCSCLITE_HP_DROPDIR */ {
|
|
s/(DROPDIR *)(.*)/\1(getenv("PCSCLITE_HP_DROPDIR") ? : \2)/
|
|
}' config.h
|
|
'';
|
|
|
|
nativeBuildInputs = [ pkgconfig perl python2 ];
|
|
buildInputs = stdenv.lib.optionals stdenv.isLinux [ udev dbus_libs ];
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "Middleware to access a smart card using SCard API (PC/SC)";
|
|
homepage = http://pcsclite.alioth.debian.org/;
|
|
license = licenses.bsd3;
|
|
maintainers = with maintainers; [ viric wkennington ];
|
|
platforms = with platforms; unix;
|
|
};
|
|
}
|