Subject: RE: [PATCH v0 1/1] Teach git version --build-options about zlib+libcurl

From: <[email-masked]>
Date: Tue, 25 Jun 2024 15:29:03 -0400

On Saturday, June 22, 2024 1:11 AM, Junio C Hamano wrote:
>Junio C Hamano <[email-masked]> writes:
>
>> Unfortunately, we cannot use the same trick, i.e. "Makefile knows not
>> to even compile when NO_CURL is set", as this change is to help.c and
>> we cannot say "if you do not have libcURL, you do not get any help"
>> ;-)
>>
>>         #ifndef NO_CURL
>>         #include "git-curl-compat.h"
>>         #endif
>>
>> may be a simplest workaround, as Makefile does this:
>>
>>         ifdef NO_CURL
>>                 BASIC_CFLAGS += -DNO_CURL
>> 		...
>
>So, the version I queued looks like so:
>
>        diff --git a/help.c b/help.c
>        index ce55aaa2c0..92bfef140b 100644
>        --- a/help.c
>        +++ b/help.c
>        @@ -15,6 +15,10 @@
>         #include "prompt.h"
>         #include "fsmonitor-ipc.h"
>
>        +#ifndef NO_CURL
>        +#include "git-curl-compat.h" /* For LIBCURL_VERSION only */
>        +#endif
>        +
>         struct category_description {
>                uint32_t category;
>                const char *desc;
>        @@ -757,6 +761,9 @@ void get_version_info(struct strbuf ...
>
>                        if (fsmonitor_ipc__is_supported())
>                                strbuf_addstr(buf, "feature:
fsmonitor--daemon\n");
>        +#if defined LIBCURL_VERSION
>        +		strbuf_addf(buf, "libcurl: %s\n", LIBCURL_VERSION);
>        +#endif
>         #if defined OPENSSL_VERSION_TEXT
>                        strbuf_addf(buf, "OpenSSL: %s\n",
OPENSSL_VERSION_TEXT);
>         #endif
>
>but then there are a few "side builds" at GitHub CI, one of which is
"minimum
>fuzzer" build.  It compiles bunch of object files without giving much build
options
>but the final target of the build is not "git" but something else [*].  And
because the
>job is not interesting in building a working "git", the environment does
not install
>libcURL, leading to a failed build.
>
>I sent a separate patch to address this build failure, which is found at
>https://lore.kernel.org/git/[email-masked]/

My take on the separate patches and discussion about reporting run-time
values of libcurl, zlib, and OpenSSL, is that these are being added to
--build-options not --runtime-options (does not exist yet). I think that
grabbing run-time values could be confusing to users who expect the
--build-options even if comparing the two values.
--Randall