summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/gnupg.scm5
-rw-r--r--gnu/packages/patches/gnupg-default-pinentry.patch15
3 files changed, 19 insertions, 2 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 5a51c474ed..07b159c4fe 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -972,6 +972,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gmp-faulty-test.patch			\
   %D%/packages/patches/gnome-shell-theme.patch			\
   %D%/packages/patches/gnome-tweaks-search-paths.patch		\
+  %D%/packages/patches/gnupg-default-pinentry.patch		\
   %D%/packages/patches/gnutls-skip-trust-store-test.patch	\
   %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
   %D%/packages/patches/gobject-introspection-cc.patch		\
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 856c01a6d8..fc5b4fbc63 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013, 2015, 2018 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
@@ -254,7 +254,8 @@ compatible to GNU Pth.")
                                   ".tar.bz2"))
               (sha256
                (base32
-                "0c6a4v9p6qzhsw1pfcwc459bxpc8hma0w9z8iqb9khvligack9q4"))))
+                "0c6a4v9p6qzhsw1pfcwc459bxpc8hma0w9z8iqb9khvligack9q4"))
+              (patches (search-patches "gnupg-default-pinentry.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/patches/gnupg-default-pinentry.patch b/gnu/packages/patches/gnupg-default-pinentry.patch
new file mode 100644
index 0000000000..272f4b53dc
--- /dev/null
+++ b/gnu/packages/patches/gnupg-default-pinentry.patch
@@ -0,0 +1,15 @@
+Default to the pinentry program installed in ~/.guix-profile.
+
+diff --git a/common/homedir.c b/common/homedir.c
+index e9e75d0..74e0aaf 100644
+--- a/common/homedir.c
++++ b/common/homedir.c
+@@ -968,7 +968,7 @@ get_default_pinentry_name (int reset)
+   } names[] = {
+     /* The first entry is what we return in case we found no
+        other pinentry.  */
+-    { gnupg_bindir, DIRSEP_S "pinentry" EXEEXT_S },
++    { gnupg_homedir, "/.guix-profile/bin/pinentry" },
+ #ifdef HAVE_W32_SYSTEM
+     /* Try Gpg4win directory (with bin and without.) */
+     { w32_rootdir, "\\..\\Gpg4win\\bin\\pinentry.exe" },