git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 4/6] imap-send: make --curl no-optional

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Feb 2, 2023, 09:44 UTC
Message-ID
<patch-v2-4.6-e9cc9bbed1e-20230202T093706Z-avarab@gmail.com>
In-Reply-To
<cover-v2-0.6-00000000000-20230202T093706Z-avarab@gmail.com>

In the preceding commit the old "USE_CURL_FOR_IMAP_SEND" define became always true, as we now require libcurl for git-imap-send.

But as we require OpenSSL for the "tunnel" mode we still need to keep the OpenSSL codepath around (ee [1] for an attempt to remove it). But we don't need to keep supporting "--no-curl" to bypass the curl codepath for the non-tunnel mode.

As almost all users of "git" use a version of it built with libcurl we're making what's already the preferred & default codepath mandatory.

The "imap.authMethod" documentation being changed here has always been incomplete. It only mentioned "--no-curl", but omitted mentioning that the same applied for "imap.tunnel". Let's fix it as we're amending it to be correct, now (as before) with "imap.tunnel" only "imap.authMethod=CRAM-MD5" is supported.

1. https://lore.kernel.org/git/ab866314-608b-eaca-b335-12cffe165526@morey-chaisemartin.com/
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 Documentation/config/imap.txt   |  4 ++--
 Documentation/git-imap-send.txt | 10 ----------
 imap-send.c                     | 15 ++++-----------
 3 files changed, 6 insertions(+), 23 deletions(-)
diff --git a/Documentation/config/imap.txt b/Documentation/config/imap.txt
index 7f30080c409..5cc46d87216 100644
--- a/Documentation/config/imap.txt
+++ b/Documentation/config/imap.txt
@@ -37,6 +37,6 @@ imap.preformattedHTML::
 
 imap.authMethod::
 	Specify authenticate method for authentication with IMAP server.
-	If you're running git-imap-send with the `--no-curl`
-	option, the only supported method is 'CRAM-MD5'. If this is not set
+	If you're using imap.tunnel, the only supported method is 'CRAM-MD5'.
+	If this is not set
 	then 'git imap-send' uses the basic IMAP plaintext LOGIN command.
diff --git a/Documentation/git-imap-send.txt b/Documentation/git-imap-send.txt
index 202e3e59094..ddbbe819315 100644
--- a/Documentation/git-imap-send.txt
+++ b/Documentation/git-imap-send.txt
@@ -37,16 +37,6 @@ OPTIONS
 --quiet::
 	Be quiet.
 
---curl::
-	Use libcurl to communicate with the IMAP server, unless tunneling
-	into it.  Ignored if Git was built without the USE_CURL_FOR_IMAP_SEND
-	option set.
-
---no-curl::
-	Talk to the IMAP server using git's own IMAP routines instead of
-	using libcurl.
-
-
 CONFIGURATION
 -------------
 
diff --git a/imap-send.c b/imap-send.c
index 26f8f01e97a..9d7cb22285d 100644
--- a/imap-send.c
+++ b/imap-send.c
@@ -39,7 +39,7 @@ static const char * const imap_send_usage[] = { "git imap-send [-v] [-q] [--[no-
 
 static struct option imap_send_options[] = {
 	OPT__VERBOSITY(&verbosity),
-	OPT_BOOL(0, "curl", &use_curl, "use libcurl to communicate with the IMAP server"),
+	OPT_HIDDEN_BOOL(0, "curl", &use_curl, "use libcurl to communicate with the IMAP server"),
 	OPT_END()
 };
 
@@ -1519,12 +1519,8 @@ int cmd_main(int argc, const char **argv)
 	if (argc)
 		usage_with_options(imap_send_usage, imap_send_options);
 
-#if defined(NO_OPENSSL)
-	if (!use_curl) {
-		warning("--no-curl not supported in this build");
-		use_curl = 1;
-	}
-#endif
+	if (!use_curl)
+		die(_("the --no-curl option to imap-send has been deprecated"));
 
 	if (!server.port)
 		server.port = server.use_ssl ? 993 : 143;
@@ -1560,10 +1556,7 @@ int cmd_main(int argc, const char **argv)
 
 	/* write it to the imap server */
 
-	if (server.tunnel)
-		return append_msgs_to_imap(&server, &all_msgs, total);
-
-	if (use_curl)
+	if (!server.tunnel)
 		return curl_append_msgs_to_imap(&server, &all_msgs, total);
 
 	return append_msgs_to_imap(&server, &all_msgs, total);
-- 
2.39.1.1392.g63e6d408230
Previous: Junio C HamanoNext: Junio C Hamano
Message 15 of 37 in “Makefile: not use mismatched curl_config to check version”
  1. 1/2 Makefile: not use mismatched curl_config to check versionJiang Xin, Feb 1, 2023
  2. 2/2 imap-send: not define USE_CURL_FOR_IMAP_SEND in MakefileJiang Xin, Feb 1, 2023
  3. imap-send: replace auto-probe libcurl with hard dependencyÆvar Arnfjörð Bjarmason, Feb 1, 2023
  4. Junio C HamanoFeb 1, 2023
  5. Jeff KingFeb 1, 2023
  6. Ævar Arnfjörð BjarmasonFeb 2, 2023
  7. Ævar Arnfjörð BjarmasonFeb 1, 2023
  8. Junio C HamanoFeb 2, 2023
  9. 0/6 imap-send: replace auto-probe libcurl with hard dependencyÆvar Arnfjörð Bjarmason, Feb 2, 2023
  10. 1/6 imap-send: note "auth_method", not "host" on auth method failureÆvar Arnfjörð Bjarmason, Feb 2, 2023
  11. Junio C HamanoFeb 2, 2023
  12. 2/6 imap-send doc: the imap.sslVerify is used with imap.tunnelÆvar Arnfjörð Bjarmason, Feb 2, 2023
  13. 3/6 imap-send: replace auto-probe libcurl with hard dependencyÆvar Arnfjörð Bjarmason, Feb 2, 2023
  14. Junio C HamanoFeb 2, 2023
  15. 4/6 imap-send: make --curl no-optionalÆvar Arnfjörð Bjarmason, Feb 2, 2023
  16. Junio C HamanoFeb 2, 2023
  17. Ævar Arnfjörð BjarmasonFeb 3, 2023
  18. Junio C HamanoFeb 4, 2023
  19. 6/6 imap-send: correctly report "host" when using "tunnel"Ævar Arnfjörð Bjarmason, Feb 2, 2023
  20. Junio C HamanoFeb 2, 2023
  21. Jeff KingFeb 3, 2023
  22. Ævar Arnfjörð BjarmasonFeb 3, 2023
  23. Jeff KingFeb 4, 2023
  24. Ævar Arnfjörð BjarmasonFeb 5, 2023
  25. Jeff KingFeb 7, 2023
  26. Ævar Arnfjörð BjarmasonFeb 7, 2023
  27. Junio C HamanoFeb 7, 2023
  28. Ævar Arnfjörð BjarmasonFeb 7, 2023
  29. Jeff KingFeb 7, 2023
  30. Jeff KingFeb 7, 2023
  31. Junio C HamanoFeb 7, 2023
  32. Ævar Arnfjörð BjarmasonFeb 8, 2023
  33. Jeff KingFeb 17, 2023
  34. Junio C HamanoFeb 6, 2023
  35. 5/6 imap-send: remove old --no-curl codepathÆvar Arnfjörð Bjarmason, Feb 2, 2023
  36. Junio C HamanoFeb 2, 2023
  37. Junio C HamanoFeb 1, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.