From: Jiang Xin <worldhello.net@gmail.com>
To: Git List <git@vger.kernel.org>,
Junio C Hamano <gitster@pobox.com>,
Bernhard Reiter <ockham@raz.or.at>,
Remi Pommarel <repk@triplefau.lt>
Cc: Jiang Xin <zhiyou.jx@alibaba-inc.com>,
Jiang Xin <worldhello.net@gmail.com>
Subject: [PATCH 2/2] imap-send: not define USE_CURL_FOR_IMAP_SEND in Makefile
Date: Wed, 1 Feb 2023 19:31:33 +0800 [thread overview]
Message-ID: <20230201113133.10195-2-worldhello.net@gmail.com> (raw)
In-Reply-To: <20230201113133.10195-1-worldhello.net@gmail.com>
From: Jiang Xin <zhiyou.jx@alibaba-inc.com>
The definition and using of macro "USE_CURL_FOR_IMAP_SEND" are at
different locations. It is defined in Makefile and is used in file
"imap-send.c". Even though we have fixed the mismatched "curl_config"
issue in Makefile in the previous commit, moving the definition of the
macro "USE_CURL_FOR_IMAP_SEND" to souce code "imap-send.c" seems more
nature and may help us to use curl in imap-send by force in future by
removing "USE_CURL_FOR_IMAP_SEND".
The side effect of this change is that the "git-imap-send" program may
be larger than necessary if we have a lower version of libcurl
installed.
Signed-off-by: Jiang Xin <zhiyou.jx@alibaba-inc.com>
---
Makefile | 11 ++---------
contrib/buildsystems/CMakeLists.txt | 3 ---
imap-send.c | 29 +++++++++++++++++------------
3 files changed, 19 insertions(+), 24 deletions(-)
diff --git a/Makefile b/Makefile
index f4eaf22523..83721216fc 100644
--- a/Makefile
+++ b/Makefile
@@ -1621,15 +1621,8 @@ else
ifndef NO_EXPAT
PROGRAM_OBJS += http-push.o
endif
- curl_check := $(shell (echo 072200; $(CURL_CONFIG) --vernum | sed -e '/^70[BC]/s/^/0/') 2>/dev/null | sort -r | sed -ne 2p)
- ifeq "$(curl_check)" "072200"
- USE_CURL_FOR_IMAP_SEND = YesPlease
- endif
- ifdef USE_CURL_FOR_IMAP_SEND
- BASIC_CFLAGS += -DUSE_CURL_FOR_IMAP_SEND
- IMAP_SEND_BUILDDEPS = http.o
- IMAP_SEND_LDFLAGS += $(CURL_LIBCURL)
- endif
+ IMAP_SEND_BUILDDEPS = http.o
+ IMAP_SEND_LDFLAGS += $(CURL_LIBCURL)
ifndef NO_EXPAT
ifdef EXPATDIR
BASIC_CFLAGS += -I$(EXPATDIR)/include
diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt
index 2f6e0197ff..d508db4d29 100644
--- a/contrib/buildsystems/CMakeLists.txt
+++ b/contrib/buildsystems/CMakeLists.txt
@@ -622,9 +622,6 @@ if(NOT CURL_FOUND)
message(WARNING "git-http-push and git-http-fetch will not be built")
else()
list(APPEND PROGRAMS_BUILT git-http-fetch git-http-push git-imap-send git-remote-http)
- if(CURL_VERSION_STRING VERSION_GREATER_EQUAL 7.34.0)
- add_compile_definitions(USE_CURL_FOR_IMAP_SEND)
- endif()
endif()
if(NOT EXPAT_FOUND)
diff --git a/imap-send.c b/imap-send.c
index a50af56b82..c0a2c2b4e6 100644
--- a/imap-send.c
+++ b/imap-send.c
@@ -30,20 +30,25 @@
#if defined(NO_OPENSSL) && !defined(HAVE_OPENSSL_CSPRNG)
typedef void *SSL;
#endif
-#ifdef USE_CURL_FOR_IMAP_SEND
+#ifdef NO_CURL
+#define USE_CURL_FOR_IMAP_SEND 0
+#else
#include "http.h"
-#endif
-
-#if defined(USE_CURL_FOR_IMAP_SEND)
-/* Always default to curl if it's available. */
-#define USE_CURL_DEFAULT 1
+/*
+ * Since version 7.30.0, libcurl's API has been able to communicate with
+ * IMAP servers, and curl's CURLOPT_LOGIN_OPTIONS (enabling IMAP
+ * authentication) parameter is available if curl's version is >= 7.34.0,
+ * Always use curl if there is a matching libcurl.
+ */
+#if LIBCURL_VERSION_NUM >= 0x072200
+#define USE_CURL_FOR_IMAP_SEND 1
#else
-/* We don't have curl, so continue to use the historical implementation */
-#define USE_CURL_DEFAULT 0
+#define USE_CURL_FOR_IMAP_SEND 0
+#endif
#endif
static int verbosity;
-static int use_curl = USE_CURL_DEFAULT;
+static int use_curl = USE_CURL_FOR_IMAP_SEND;
static const char * const imap_send_usage[] = { "git imap-send [-v] [-q] [--[no-]curl] < <mbox>", NULL };
@@ -1396,7 +1401,7 @@ static int append_msgs_to_imap(struct imap_server_conf *server,
return 0;
}
-#ifdef USE_CURL_FOR_IMAP_SEND
+#if USE_CURL_FOR_IMAP_SEND
static CURL *setup_curl(struct imap_server_conf *srvc, struct credential *cred)
{
CURL *curl;
@@ -1531,7 +1536,7 @@ int cmd_main(int argc, const char **argv)
if (argc)
usage_with_options(imap_send_usage, imap_send_options);
-#ifndef USE_CURL_FOR_IMAP_SEND
+#if !USE_CURL_FOR_IMAP_SEND
if (use_curl) {
warning("--curl not supported in this build");
use_curl = 0;
@@ -1580,7 +1585,7 @@ int cmd_main(int argc, const char **argv)
if (server.tunnel)
return append_msgs_to_imap(&server, &all_msgs, total);
-#ifdef USE_CURL_FOR_IMAP_SEND
+#if USE_CURL_FOR_IMAP_SEND
if (use_curl)
return curl_append_msgs_to_imap(&server, &all_msgs, total);
#endif
--
2.38.2.109.g8b8c02ffae.agit.6.7.7.dev
next prev parent reply other threads:[~2023-02-01 11:31 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-01 11:31 [PATCH 1/2] Makefile: not use mismatched curl_config to check version Jiang Xin
2023-02-01 11:31 ` Jiang Xin [this message]
2023-02-01 23:04 ` [PATCH] imap-send: replace auto-probe libcurl with hard dependency Ævar Arnfjörð Bjarmason
2023-02-01 23:22 ` Junio C Hamano
2023-02-01 23:56 ` Ævar Arnfjörð Bjarmason
2023-02-02 1:32 ` Junio C Hamano
2023-02-01 23:59 ` Jeff King
2023-02-02 0:20 ` Ævar Arnfjörð Bjarmason
2023-02-02 9:44 ` [PATCH v2 0/6] " Ævar Arnfjörð Bjarmason
2023-02-02 9:44 ` [PATCH v2 1/6] imap-send: note "auth_method", not "host" on auth method failure Ævar Arnfjörð Bjarmason
2023-02-02 19:11 ` Junio C Hamano
2023-02-02 9:44 ` [PATCH v2 2/6] imap-send doc: the imap.sslVerify is used with imap.tunnel Ævar Arnfjörð Bjarmason
2023-02-02 9:44 ` [PATCH v2 3/6] imap-send: replace auto-probe libcurl with hard dependency Ævar Arnfjörð Bjarmason
2023-02-02 19:33 ` Junio C Hamano
2023-02-02 9:44 ` [PATCH v2 4/6] imap-send: make --curl no-optional Ævar Arnfjörð Bjarmason
2023-02-02 20:42 ` Junio C Hamano
2023-02-03 21:46 ` Ævar Arnfjörð Bjarmason
2023-02-04 5:22 ` Junio C Hamano
2023-02-02 9:44 ` [PATCH v2 5/6] imap-send: remove old --no-curl codepath Ævar Arnfjörð Bjarmason
2023-02-02 20:43 ` Junio C Hamano
2023-02-02 9:44 ` [PATCH v2 6/6] imap-send: correctly report "host" when using "tunnel" Ævar Arnfjörð Bjarmason
2023-02-02 20:56 ` Junio C Hamano
2023-02-03 17:53 ` Jeff King
2023-02-03 21:12 ` Ævar Arnfjörð Bjarmason
2023-02-04 11:09 ` Jeff King
2023-02-05 21:51 ` Ævar Arnfjörð Bjarmason
2023-02-07 18:30 ` Jeff King
2023-02-07 20:39 ` Ævar Arnfjörð Bjarmason
2023-02-07 21:26 ` Junio C Hamano
2023-02-07 22:04 ` Ævar Arnfjörð Bjarmason
2023-02-07 22:16 ` Jeff King
2023-02-07 22:15 ` Jeff King
2023-02-07 22:24 ` Junio C Hamano
2023-02-08 1:06 ` Ævar Arnfjörð Bjarmason
2023-02-17 20:50 ` Jeff King
2023-02-06 21:41 ` Junio C Hamano
2023-02-01 18:06 ` [PATCH 1/2] Makefile: not use mismatched curl_config to check version Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230201113133.10195-2-worldhello.net@gmail.com \
--to=worldhello.net@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=ockham@raz.or.at \
--cc=repk@triplefau.lt \
--cc=zhiyou.jx@alibaba-inc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.