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

RE: [PATCH v2 1/2] Teach git version --build-options about libcurl

From
Randall Becker <randall.becker@nexbridge.ca>
Date
Jun 24, 2024, 14:33 UTC
Message-ID
<DS0PR17MB603115E943565C4281FBE199F4D42@DS0PR17MB6031.namprd17.prod.outlook.com>
In-Reply-To
<f44f1e25-41ca-0784-3186-f9e1bdae0d4f@gmx.de>
On Monday, June 24, 2024 10:13 AM, Johannes Schindelin wrote:
Show 34 quoted lines
>On Fri, 21 Jun 2024, Randall S. Becker wrote:
>
>> This change uses the libcurl LIBCURL_VERSION #define text macro. No
>> stringification is required for the variable's use. If the #define is
>> not present, that version is not reported.
>>
>> Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
>> ---
>>  help.c | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/help.c b/help.c
>> index 1d057aa607..bf74e935b9 100644
>> --- a/help.c
>> +++ b/help.c
>> @@ -1,4 +1,5 @@
>>  #include "git-compat-util.h"
>> +#include "git-curl-compat.h" /* For LIBCURL_VERSION only */
>>  #include "config.h"
>>  #include "builtin.h"
>>  #include "exec-cmd.h"
>> @@ -757,6 +758,9 @@ void get_version_info(struct strbuf *buf, int
>> show_build_options)
>>
>>  		if (fsmonitor_ipc__is_supported())
>>  			strbuf_addstr(buf, "feature: fsmonitor--daemon\n");
>> +#if defined LIBCURL_VERSION
>> +		strbuf_addf(buf, "libcurl: %s\n", LIBCURL_VERSION);
>
>I am not sure that this is the most helpful information Git can provide:
>It reports the version against which Git was _compiled_, whereas the version it is
>_running against_ might be quite different.
>
>Wouldn't calling `curl_version()` make more sense here?
I think the more important information is the build used. My reasoning is that one can call run curl --version to see the current curl install. However, different versions of curl have potential API changes - same argument with OpenSSL. What initiated this for me (the use case) started with a customer who incorrectly installed a git build for OpenSSL 3.2 (and its libcurl friend). Git would then get a compatibility issue when attempting to use either library. The customer did not know (!) they had the git for OpenSSL 3.2 version and I had no way to determine which one they had without seeing their path - hard in an email support situation. Having git version --build-options report what was used for the build *at a compatibility level* would have easily shown that the available library (after running openssl version or curl --version) reported different values. Otherwise, we are back to guessing what they installed. The goal is to compare what git expects with what git has available. The above series makes this comparative information available.
Show 9 quoted lines
>Ciao,
>Johannes
>
>> +#endif
>>  	}
>>  }
>>
>> --
>> 2.43.0
Previous: Johannes SchindelinNext: Dragan Simic
Message 4 of 26 in “Teach git version --build-options about zlib+libcurl”
  1. 0/2 Teach git version --build-options about zlib+libcurlRandall S. Becker, Jun 21, 2024
  2. 1/2 Teach git version --build-options about libcurlRandall S. Becker, Jun 21, 2024
  3. Johannes SchindelinJun 24, 2024
  4. Randall BeckerJun 24, 2024
  5. Dragan SimicJun 24, 2024
  6. rsbecker@nexbridge.comJun 24, 2024
  7. Dragan SimicJun 24, 2024
  8. Randall BeckerJun 24, 2024
  9. Johannes SchindelinJul 24, 2024
  10. Jeff KingJun 24, 2024
  11. Junio C HamanoJun 24, 2024
  12. Jeff KingJun 24, 2024
  13. Junio C HamanoJun 25, 2024
  14. Johannes SchindelinJul 24, 2024
  15. Jeff KingJul 24, 2024
  16. Johannes SchindelinJul 24, 2024
  17. Jeff KingJul 25, 2024
  18. Junio C HamanoJul 25, 2024
  19. Jeff KingJul 26, 2024
  20. 2/2 Teach git version --build-options about zlib versions.Randall S. Becker, Jun 21, 2024
  21. Johannes SchindelinJun 24, 2024
  22. Randall BeckerJun 24, 2024
  23. Johannes SchindelinJul 24, 2024
  24. Randall BeckerJul 24, 2024
  25. Junio C HamanoJul 24, 2024
  26. rsbecker@nexbridge.comJul 24, 2024

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.