Package: mutt Version: 1.5.11-5 Tags: patch When I use Mutt with gnome-gpg, it still prompts me for the passphrase. It shouldn't do so, since gnome-gpg takes care of reading and caching the passphrase.
The attached patch adds a pgp_use_gnome_gpg configuration flag that, when set, prevents Mutt from prompting for the passphrase. -- Matt
diff -ru mutt-1.5.11/init.h mutt-1.5.11/init.h --- mutt-1.5.11/init.h 2006-01-24 23:01:39.000000000 -0800 +++ mutt-1.5.11/init.h 2006-01-24 22:56:21.000000000 -0800 @@ -1464,6 +1464,12 @@ ** you may unset this setting. ** (Crypto only) */ + { "pgp_use_gnome_gpg", DT_BOOL, R_NONE, OPTUSEGNOMEGPG, 0}, + /* + ** .pp + ** If set, mutt will use gnome-gpg process. + ** (PGP only) + */ { "pgp_use_gpg_agent", DT_BOOL, R_NONE, OPTUSEGPGAGENT, 0}, /* ** .pp diff -ru mutt-1.5.11/mutt.h mutt-1.5.11/mutt.h --- mutt-1.5.11/mutt.h 2006-01-24 23:01:38.000000000 -0800 +++ mutt-1.5.11/mutt.h 2006-01-24 22:55:15.000000000 -0800 @@ -441,6 +441,7 @@ OPTUSE8BITMIME, OPTUSEDOMAIN, OPTUSEFROM, + OPTUSEGNOMEGPG, OPTUSEGPGAGENT, #ifdef HAVE_LIBIDN OPTUSEIDN, diff -ru mutt-1.5.11/pgp.c mutt-1.5.11/pgp.c --- mutt-1.5.11/pgp.c 2006-01-24 23:01:38.000000000 -0800 +++ mutt-1.5.11/pgp.c 2006-01-24 22:59:34.000000000 -0800 @@ -75,7 +75,7 @@ { time_t now = time (NULL); - if (pgp_use_gpg_agent()) + if (pgp_use_gpg_agent() || pgp_use_gnome_gpg()) { *PgpPass = 0; return 1; /* handled by gpg-agent */ @@ -117,6 +117,11 @@ return 1; } +int pgp_use_gnome_gpg (void) +{ + return option (OPTUSEGNOMEGPG); +} + char *pgp_keyid(pgp_key_t k) { if((k->flags & KEYFLAG_SUBKEY) && k->parent && option(OPTPGPIGNORESUB)) @@ -358,7 +363,7 @@ if (needpass) { if (!pgp_valid_passphrase ()) pgp_void_passphrase(); - if (pgp_use_gpg_agent()) + if (pgp_use_gnome_gpg() || pgp_use_gpg_agent()) *PgpPass = 0; fprintf (pgpin, "%s\n", PgpPass); } @@ -810,7 +815,7 @@ /* send the PGP passphrase to the subprocess. Never do this if the agent is active, because this might lead to a passphrase send as the message. */ - if (!pgp_use_gpg_agent()) + if (!pgp_use_gnome_gpg && !pgp_use_gpg_agent()) fputs (PgpPass, pgpin); fputc ('\n', pgpin); fclose(pgpin); @@ -1029,7 +1034,7 @@ return NULL; } - if (!pgp_use_gpg_agent()) + if (!pgp_use_gnome_gpg() && !pgp_use_gpg_agent()) fputs(PgpPass, pgpin); fputc('\n', pgpin); fclose(pgpin); @@ -1295,7 +1300,7 @@ if (sign) { - if (!pgp_use_gpg_agent()) + if (!pgp_use_gnome_gpg() && !pgp_use_gpg_agent()) fputs (PgpPass, pgpin); fputc ('\n', pgpin); } @@ -1468,7 +1473,7 @@ return NULL; } - if (pgp_use_gpg_agent()) + if (pgp_use_gnome_gpg() || pgp_use_gpg_agent()) *PgpPass = 0; if (flags & SIGN) fprintf (pgpin, "%s\n", PgpPass);
signature.asc
Description: Digital signature