From: Jani Nikula Date: Sat, 7 Mar 2015 17:13:04 +0000 (+0200) Subject: Re: [PATCH 1/2] CLI: set up infrastructure to make path to gpg configurable. X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=bc0df93afe473ced4fb586bd4aae5840b90613c3;p=notmuch-archives.git Re: [PATCH 1/2] CLI: set up infrastructure to make path to gpg configurable. --- diff --git a/e3/4fa8e3e9eba4c42ec09558a6689bb94f0dcc7f b/e3/4fa8e3e9eba4c42ec09558a6689bb94f0dcc7f new file mode 100644 index 000000000..4fefc2242 --- /dev/null +++ b/e3/4fa8e3e9eba4c42ec09558a6689bb94f0dcc7f @@ -0,0 +1,180 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id 07EE1431FBC + for ; Sat, 7 Mar 2015 09:12:50 -0800 (PST) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: 1.738 +X-Spam-Level: * +X-Spam-Status: No, score=1.738 tagged_above=-999 required=5 + tests=[DNS_FROM_AHBL_RHSBL=2.438, RCVD_IN_DNSWL_LOW=-0.7] + autolearn=disabled +Received: from olra.theworths.org ([127.0.0.1]) + by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id 7BJFOq26zaCL for ; + Sat, 7 Mar 2015 09:12:46 -0800 (PST) +Received: from mail-we0-f172.google.com (mail-we0-f172.google.com + [74.125.82.172]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) + (No client certificate requested) + by olra.theworths.org (Postfix) with ESMTPS id 91C5B431FAE + for ; Sat, 7 Mar 2015 09:12:46 -0800 (PST) +Received: by wesx3 with SMTP id x3so18909626wes.4 + for ; Sat, 07 Mar 2015 09:12:45 -0800 (PST) +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20130820; + h=x-gm-message-state:from:to:subject:in-reply-to:references + :user-agent:date:message-id:mime-version:content-type; + bh=gO5dUaFmQs1pXsQZeidoujnJ6+EhEA7uNgIkhm2hr/8=; + b=iph0QuAe6Z96z6DqyehCmWEfqPdLMPwNOEAE8zANDvGCM5/d8mIyi6luTV9ltnaGgP + EugnIo2Sl+uWe4Mf8bFSMKmYrq1SjkOwm4XsqRrjRYc06MH7SnqwymEYa8TjjQILw8ZC + 0RsUdkRpH6CwEuUrGVGtdVwjyeEhBmlgKzgfInb3Qrza01SQRrgevpLZwtfd6CMd1QyG + Xzlk7ndgP4OrV8nPSMiGvCcq/3yY0TACb+KJOBoUd7eY40pnKpkak3hMPrPtIZmQvhak + VPFzxEQvKo1S1n13rzkoYtegeLZnzfr/F4KPtzlDBMS1y7c3qEWHDMPbpFJW1D72DVTc + dZxg== +X-Gm-Message-State: + ALoCoQk1LneNBp3ek1Ec2YiI55vncAzIsJA1fmrYnUtagMlZZDd53cI5BoaUZ7LsYDOQZlVuzmUi +X-Received: by 10.194.60.104 with SMTP id g8mr40443510wjr.96.1425748365704; + Sat, 07 Mar 2015 09:12:45 -0800 (PST) +Received: from localhost (mobile-internet-bcee3b-76.dhcp.inet.fi. + [188.238.59.76]) + by mx.google.com with ESMTPSA id ga8sm7414890wib.11.2015.03.07.09.12.44 + (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); + Sat, 07 Mar 2015 09:12:44 -0800 (PST) +From: Jani Nikula +To: David Bremner , notmuch@notmuchmail.org +Subject: Re: [PATCH 1/2] CLI: set up infrastructure to make path to + gpg configurable. +In-Reply-To: <1418155271-23704-1-git-send-email-david@tethera.net> +References: <1418155271-23704-1-git-send-email-david@tethera.net> +User-Agent: Notmuch/0.19+74~g6aeef2e (http://notmuchmail.org) Emacs/24.4.1 + (x86_64-pc-linux-gnu) +Date: Sat, 07 Mar 2015 19:13:04 +0200 +Message-ID: <87fv9givdr.fsf@nikula.org> +MIME-Version: 1.0 +Content-Type: text/plain +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Sat, 07 Mar 2015 17:12:50 -0000 + +On Tue, 09 Dec 2014, David Bremner wrote: +> GMIME takes a path to gpg, but we hardcode that path. In this commit +> we push hardcoding all the way up to the top level of a notmuch +> command, where we can later make it configurable. + +Mmmh, to be pedantic, this does not push the hardcoding to the top +level, since "gpg" still remains at the lowest level. But it allows +specifying the path at the top level. Which I think is fine. + +LGTM. + + +> --- +> crypto.c | 10 +++++----- +> notmuch-client.h | 1 + +> notmuch-reply.c | 3 ++- +> notmuch-show.c | 3 ++- +> 4 files changed, 10 insertions(+), 7 deletions(-) +> +> diff --git a/crypto.c b/crypto.c +> index 6f4a6db..026640f 100644 +> --- a/crypto.c +> +++ b/crypto.c +> @@ -24,12 +24,12 @@ +> +> /* Create a GPG context (GMime 2.6) */ +> static notmuch_crypto_context_t * +> -create_gpg_context (void) +> +create_gpg_context (const char *gpgpath) +> { +> notmuch_crypto_context_t *gpgctx; +> +> /* TODO: GMimePasswordRequestFunc */ +> - gpgctx = g_mime_gpg_context_new (NULL, "gpg"); +> + gpgctx = g_mime_gpg_context_new (NULL, gpgpath ? gpgpath : "gpg"); +> if (! gpgctx) +> return NULL; +> +> @@ -43,13 +43,13 @@ create_gpg_context (void) +> +> /* Create a GPG context (GMime 2.4) */ +> static notmuch_crypto_context_t * +> -create_gpg_context (void) +> +create_gpg_context (const char* gpgpath) +> { +> GMimeSession *session; +> notmuch_crypto_context_t *gpgctx; +> +> session = g_object_new (g_mime_session_get_type (), NULL); +> - gpgctx = g_mime_gpg_context_new (session, "gpg"); +> + gpgctx = g_mime_gpg_context_new (session, gpgpath ? gpgpath : "gpg"); +> g_object_unref (session); +> +> if (! gpgctx) +> @@ -83,7 +83,7 @@ notmuch_crypto_get_context (notmuch_crypto_t *crypto, const char *protocol) +> if (strcasecmp (protocol, "application/pgp-signature") == 0 || +> strcasecmp (protocol, "application/pgp-encrypted") == 0) { +> if (! crypto->gpgctx) { +> - crypto->gpgctx = create_gpg_context (); +> + crypto->gpgctx = create_gpg_context (crypto->gpgpath); +> if (! crypto->gpgctx) +> fprintf (stderr, "Failed to construct gpg context.\n"); +> } +> diff --git a/notmuch-client.h b/notmuch-client.h +> index 5e0d475..c25c4ea 100644 +> --- a/notmuch-client.h +> +++ b/notmuch-client.h +> @@ -80,6 +80,7 @@ typedef struct notmuch_crypto { +> notmuch_crypto_context_t* gpgctx; +> notmuch_bool_t verify; +> notmuch_bool_t decrypt; +> + const char *gpgpath; +> } notmuch_crypto_t; +> +> typedef struct notmuch_show_params { +> diff --git a/notmuch-reply.c b/notmuch-reply.c +> index 7c1c809..e18370f 100644 +> --- a/notmuch-reply.c +> +++ b/notmuch-reply.c +> @@ -769,7 +769,8 @@ notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[]) +> .part = -1, +> .crypto = { +> .verify = FALSE, +> - .decrypt = FALSE +> + .decrypt = FALSE, +> + .gpgpath = NULL +> } +> }; +> int format = FORMAT_DEFAULT; +> diff --git a/notmuch-show.c b/notmuch-show.c +> index d416fbd..d292f29 100644 +> --- a/notmuch-show.c +> +++ b/notmuch-show.c +> @@ -1082,7 +1082,8 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[]) +> .output_body = TRUE, +> .crypto = { +> .verify = FALSE, +> - .decrypt = FALSE +> + .decrypt = FALSE, +> + .gpgpath = NULL +> }, +> .include_html = FALSE +> }; +> -- +> 2.1.3 +> +> _______________________________________________ +> notmuch mailing list +> notmuch@notmuchmail.org +> http://notmuchmail.org/mailman/listinfo/notmuch