summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-03-26 12:16:45 +0100
committerLudovic Courtès <ludo@gnu.org>2020-03-26 13:07:19 +0100
commitc7af9d0b5ebaa1fdb08ff5d8a56004998bcd8103 (patch)
tree12d0c4677691c287fb784e1f65a08d35672a04fe
parent315b98b9eb71e1a56de6a49ffbfed0af3c92be7e (diff)
gnu: gnupg: Use ~/.guix-profile/bin/pinentry by default.
Fixes <https://bugs.gnu.org/24076>. Reported by Danny Milosavljevic <dannym@scratchpost.org>. * gnu/packages/patches/gnupg-default-pinentry.patch: New file. * gnu/packages/gnupg.scm (gnupg)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add it.
-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" },