From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by arlo.cworth.org (Postfix) with ESMTP id B2FCB6DE1F59 for ; Fri, 14 Jul 2017 06:12:16 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at cworth.org X-Spam-Flag: NO X-Spam-Score: 0 X-Spam-Level: X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[AWL=0.000] autolearn=disabled Received: from arlo.cworth.org ([127.0.0.1]) by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id N-EcV95Dso8d for ; Fri, 14 Jul 2017 06:12:16 -0700 (PDT) Received: from che.mayfirst.org (che.mayfirst.org [162.247.75.118]) by arlo.cworth.org (Postfix) with ESMTP id 8F5996DE25E9 for ; Fri, 14 Jul 2017 06:12:15 -0700 (PDT) Received: from fifthhorseman.net (38.200.broadband6.iol.cz [88.101.200.38]) by che.mayfirst.org (Postfix) with ESMTPSA id CE206F999 for ; Fri, 14 Jul 2017 09:12:13 -0400 (EDT) Received: by fifthhorseman.net (Postfix, from userid 1000) id D8792203E3; Fri, 14 Jul 2017 15:12:02 +0200 (CEST) From: Daniel Kahn Gillmor To: Notmuch Mail Subject: [PATCH 1/3] config: deprecate/drop crypto.gpg_path under gmime 2.6/3.0 Date: Fri, 14 Jul 2017 15:12:00 +0200 Message-Id: <20170714131202.24966-1-dkg@fifthhorseman.net> X-Mailer: git-send-email 2.13.2 In-Reply-To: <20170603174754.16911-24-david@tethera.net> References: <20170603174754.16911-24-david@tethera.net> X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.23 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: Fri, 14 Jul 2017 13:12:16 -0000 gmime 3.0 no longer offers a means to set the path for gpg. Users can set $PATH anyway if they want to pick a differently-installed gpg (e.g. /usr/local/bin/gpg), so this isn't much of a reduction in functionality. The one main difference is for people who have tried to use "gpg2" to make use of gpg 2.1, but that isn't usefully co-installable anyway. --- doc/man1/notmuch-config.rst | 4 +++- notmuch-client.h | 4 ++++ notmuch-config.c | 20 +++++++++++++++++--- notmuch-reply.c | 2 ++ notmuch-show.c | 2 ++ test/T030-config.sh | 9 +++++++-- test/T040-setup.sh | 8 +++++++- 7 files changed, 42 insertions(+), 7 deletions(-) diff --git a/doc/man1/notmuch-config.rst b/doc/man1/notmuch-config.rst index 7483b75f..6a51e64f 100644 --- a/doc/man1/notmuch-config.rst +++ b/doc/man1/notmuch-config.rst @@ -128,7 +128,9 @@ The available configuration items are described below. **crypto.gpg_path** Name (or full path) of gpg binary to use in verification and - decryption of PGP/MIME messages. + decryption of PGP/MIME messages. NOTE: This configuration + item is deprecated, and will be ignored if notmuch is built + against GMime 3.0 or later. Default: ``gpg``. diff --git a/notmuch-client.h b/notmuch-client.h index 77b34184..11aefbb4 100644 --- a/notmuch-client.h +++ b/notmuch-client.h @@ -76,7 +76,9 @@ typedef struct notmuch_crypto { notmuch_crypto_context_t* pkcs7ctx; notmuch_bool_t verify; notmuch_bool_t decrypt; +#if (GMIME_MAJOR_VERSION < 3) const char *gpgpath; +#endif } notmuch_crypto_t; typedef struct notmuch_show_params { @@ -289,12 +291,14 @@ void notmuch_config_set_database_path (notmuch_config_t *config, const char *database_path); +#if (GMIME_MAJOR_VERSION < 3) const char * notmuch_config_get_crypto_gpg_path (notmuch_config_t *config); void notmuch_config_set_crypto_gpg_path (notmuch_config_t *config, const char *gpg_path); +#endif const char * notmuch_config_get_user_name (notmuch_config_t *config); diff --git a/notmuch-config.c b/notmuch-config.c index e4aaef61..cb9529b9 100644 --- a/notmuch-config.c +++ b/notmuch-config.c @@ -104,10 +104,20 @@ static const char search_config_comment[] = static const char crypto_config_comment[] = " Cryptography related configuration\n" "\n" - " The following option is supported here:\n" +#if (GMIME_MAJOR_VERSION < 3) + " The following *deprecated* option is currently supported:\n" "\n" "\tgpg_path\n" - "\t\tbinary name or full path to invoke gpg.\n"; + "\t\tbinary name or full path to invoke gpg.\n" + "\t\tNOTE: In a future build, this option will be ignored.\n" +#else + " The following old option is now ignored:\n" + "\n" + "\tgpgpath\n" + "\t\tThis option was used by older builds of notmuch to choose\n" + "\t\tthe version of gpg to use.\n" +#endif + "\t\tSetting $PATH is a better approach.\n"; struct _notmuch_config { char *filename; @@ -460,10 +470,12 @@ notmuch_config_open (void *ctx, g_error_free (error); } +#if (GMIME_MAJOR_VERSION < 3) if (notmuch_config_get_crypto_gpg_path (config) == NULL) { notmuch_config_set_crypto_gpg_path (config, "gpg"); } - +#endif + /* Whenever we know of configuration sections that don't appear in * the configuration file, we add some comments to help the user * understand what can be done. */ @@ -752,6 +764,7 @@ notmuch_config_set_search_exclude_tags (notmuch_config_t *config, &(config->search_exclude_tags)); } +#if (GMIME_MAJOR_VERSION < 3) const char * notmuch_config_get_crypto_gpg_path (notmuch_config_t *config) { @@ -764,6 +777,7 @@ notmuch_config_set_crypto_gpg_path (notmuch_config_t *config, { _config_set (config, &config->crypto_gpg_path, "crypto", "gpg_path", gpg_path); } +#endif /* Given a configuration item of the form . return the diff --git a/notmuch-reply.c b/notmuch-reply.c index 4c1dd560..b4a55362 100644 --- a/notmuch-reply.c +++ b/notmuch-reply.c @@ -740,7 +740,9 @@ notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[]) return EXIT_FAILURE; } +#if (GMIME_MAJOR_VERSION < 3) params.crypto.gpgpath = notmuch_config_get_crypto_gpg_path (config); +#endif if (notmuch_database_open (notmuch_config_get_database_path (config), NOTMUCH_DATABASE_MODE_READ_ONLY, ¬much)) diff --git a/notmuch-show.c b/notmuch-show.c index 71799c75..6c135278 100644 --- a/notmuch-show.c +++ b/notmuch-show.c @@ -1199,7 +1199,9 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[]) return EXIT_FAILURE; } +#if (GMIME_MAJOR_VERSION < 3) params.crypto.gpgpath = notmuch_config_get_crypto_gpg_path (config); +#endif if (notmuch_database_open (notmuch_config_get_database_path (config), NOTMUCH_DATABASE_MODE_READ_ONLY, ¬much)) diff --git a/test/T030-config.sh b/test/T030-config.sh index 0915abdb..2cee6ed0 100755 --- a/test/T030-config.sh +++ b/test/T030-config.sh @@ -44,6 +44,12 @@ test_expect_equal "$(notmuch config get foo.nonexistent)" "" test_begin_subtest "List all items" notmuch config list 2>&1 | notmuch_config_sanitize > OUTPUT + +if [ "${NOTMUCH_GMIME_MAJOR}" -lt 3 ]; then + config_gpg_path="crypto.gpg_path=gpg +" +fi + cat < EXPECTED Error opening database at MAIL_DIR/.notmuch: No such file or directory database.path=MAIL_DIR @@ -54,8 +60,7 @@ new.tags=unread;inbox; new.ignore= search.exclude_tags= maildir.synchronize_flags=true -crypto.gpg_path=gpg -foo.string=this is another string value +${config_gpg_path}foo.string=this is another string value foo.list=this;is another;list value; built_with.compact=something built_with.field_processor=something diff --git a/test/T040-setup.sh b/test/T040-setup.sh index 021f2d0b..8e0e3b13 100755 --- a/test/T040-setup.sh +++ b/test/T040-setup.sh @@ -19,6 +19,12 @@ another.suite@example.com foo bar baz EOF + +if [ "${NOTMUCH_GMIME_MAJOR}" -lt 3 ]; then + config_gpg_path="crypto.gpg_path=gpg +" +fi + output=$(notmuch --config=new-notmuch-config config list | notmuch_built_with_sanitize) test_expect_equal "$output" "\ database.path=/path/to/maildir @@ -29,7 +35,7 @@ new.tags=foo;bar; new.ignore= search.exclude_tags=baz; maildir.synchronize_flags=true -crypto.gpg_path=gpg +"${config_gpg_path}"\ built_with.compact=something built_with.field_processor=something built_with.retry_lock=something" -- 2.13.2