From a8c738713bd13f13987bde696f1e811bc253e884 Mon Sep 17 00:00:00 2001 From: Daniel Fullmer Date: Sun, 19 Feb 2017 22:30:01 -0500 Subject: [PATCH] gnupg21: Fix scdaemon for usb smartcards (#22891) The use of smartcard functionality for yubikeys (and presumably other usb smartcards) was broken in gnupg 2.1.18. This has apparently already been fixed in gnupg master, and debian backports the included patches for 2.1.18. See also: https://bugs.gnupg.org/gnupg/issue2933 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=852702 https://github.com/NixOS/nixpkgs/pull/21991 --- pkgs/tools/security/gnupg/21.nix | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/security/gnupg/21.nix b/pkgs/tools/security/gnupg/21.nix index a301cf0c569..f7968e47b1c 100644 --- a/pkgs/tools/security/gnupg/21.nix +++ b/pkgs/tools/security/gnupg/21.nix @@ -1,5 +1,5 @@ -{ fetchurl, stdenv, pkgconfig, libgcrypt, libassuan, libksba, libiconv, npth -, gettext, texinfo, pcsclite, sqlite +{ fetchurl, fetchpatch, stdenv, pkgconfig, libgcrypt, libassuan, libksba +, libiconv, npth, gettext, texinfo, pcsclite, sqlite # Each of the dependencies below are optional. # Gnupg can be built without them at the cost of reduced functionality. @@ -29,7 +29,20 @@ stdenv.mkDerivation rec { NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl"; - patches = [ ./fix-libusb-include-path.patch ]; + patches = [ + ./fix-libusb-include-path.patch + # TODO: Remove the following two patches on the next gnupg release after 2.1.18 + (fetchpatch { + name = "scd-Backport-two-fixes-from-master"; + url = "https://anonscm.debian.org/git/pkg-gnupg/gnupg2.git/plain/debian/patches/0028-scd-Backport-two-fixes-from-master.patch?h=debian/2.1.18-6"; + sha256 = "01l2s4s7kp6j2f3qd371arq7pfphvncc9k1m63rqm0kyzy9jk20k"; + }) + (fetchpatch { + name = "scd-Fix-use-case-of-PC-SC"; + url = "https://anonscm.debian.org/git/pkg-gnupg/gnupg2.git/plain/debian/patches/0029-scd-Fix-use-case-of-PC-SC.patch?h=debian/2.1.18-6"; + sha256 = "0lxqj614fialbqs2x0z13q5ikq2rc9xwphmkly179qs03d4mawsz"; + }) + ]; postPatch = stdenv.lib.optionalString stdenv.isLinux '' sed -i 's,"libpcsclite\.so[^"]*","${pcsclite}/lib/libpcsclite.so",g' scd/scdaemon.c ''; #" fix Emacs syntax highlighting :-(