Make GnuPG automatically find a pinentry installed by Guix. Try using $HOME or, if that variable is not set, use the system password database, or fall back to looking in "/". More information: https://bugs.gnu.org/24076 diff --git a/common/homedir.c b/common/homedir.c index 4b6e46e88..f7ae68ba5 100644 --- a/common/homedir.c +++ b/common/homedir.c @@ -33,6 +33,7 @@ #include #include #include +#include #ifdef HAVE_W32_SYSTEM #include /* Due to the stupid mingw64 requirement to @@ -67,6 +68,10 @@ * gnupg_homedir and gnupg_set_homedir. Malloced. */ static char *the_gnupg_homedir; +/* The user's home directory. Used in Guix to help GnuPG find the + * pinentry. */ +static char *the_user_homedir; + /* Flag indicating that home directory is not the default one. */ static byte non_default_homedir; @@ -509,6 +514,25 @@ gnupg_homedir (void) return the_gnupg_homedir; } +/* Return the user's home directory */ +const char * +user_homedir (void) +{ + const char *dir; + dir = getenv("HOME"); + if (dir == NULL) + { + struct passwd *pw = NULL; + pw = getpwuid (getuid ()); + if (pw != NULL) + dir = pw->pw_dir; + else + dir = "/"; + } + if (!the_user_homedir) + the_user_homedir = make_absfilename (dir, NULL); + return the_user_homedir; +} /* Return whether the home dir is the default one. */ int @@ -971,6 +995,7 @@ get_default_pinentry_name (int reset) } names[] = { /* The first entry is what we return in case we found no other pinentry. */ + { user_homedir, "/.guix-profile/bin/pinentry" }, { gnupg_bindir, DIRSEP_S "pinentry" EXEEXT_S }, #ifdef HAVE_W32_SYSTEM /* Try Gpg4win directory (with bin and without.) */ 'txt' type='search' size='10' name='q' value=''/>
AgeCommit message (Expand)Author
2023-10-22gnu: patman: Apply patch for new Change-Id setting....* gnu/packages/bootloaders.scm (u-boot) [source]: Apply patch. * gnu/packages/patches/u-boot-patman-change-id.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * .patman (keep_change_id): Use it. Series-changes: 3 - New commit Change-Id: I33c03013f6a260b5f5d80212b7b6ebe8a3f97efa Maxim Cournoyer
2023-05-01.patman: Remove get_maintainer_script option....This is now handled at the level of git via its new '--header-cmd' option, which produces X-Debbugs-CC headers. * .patman (get_maintainer_script): Delete option. Maxim Cournoyer
2023-02-25.patman: Ignore bad tags....The feature is not used in Guix, and it produces extraneous warnings. * .patman (ignore_bad_tags): Set option to True. Maxim Cournoyer
2022-12-28.patman: New configuration file....* .patman: New file. Series-to: 60218@debbugs.gnu.org Series-cc: rekado@elephly.net, othacehe@gnu.org Series-version: 2 Maxim Cournoyer