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

[PATCH 1/4] meson: fix handling of '-Dcurl=auto'

From
Patrick Steinhardt <ps@pks.im>
Date
Mar 28, 2025, 08:38 UTC
Message-ID
<20250328-b4-pks-collect-build-fixes-v1-1-ead9deda3fbc@pks.im>
In-Reply-To
<20250328-b4-pks-collect-build-fixes-v1-0-ead9deda3fbc@pks.im>

The "curl" option controls whether or not a couple of features that depend on curl shall be included. Most importantly, these features include the HTTP remote helpers, which are rather quintessential for a well-functioning Git installation. So while the dependency can in theory be dropped, most users wouldn't consider the resulting installation to be fully functional.

The "curl" option is defined as a feature, which means that it can be "enabled", "disabled" or "auto", which has the effect that the feature will be enabled if the dependency itself has been found. While most of the other features have "auto" as default value, the "curl" option is set to "enabled" by default due to it being so important. Consequently, autoconfiguration of Git will fail by default if the library cannot be found.

There is a bug though with how we handle the option in case the user overrides the feature with `meson setup -Dcurl=auto`: while we will try to find the library in that case, we won't ever use it because we later on check for `get_option('curl').enabled()` when deciding whether or not we want to build dependent sources. But `enabled()` only returns true if the option has the value "enabled", for "auto" it will return false.

Fix the issue by instead checking for `curl.found()`, which is only true if the library has been found. And as we only try to find the library when `get_option('curl')` returns "true" or "auto" this is exactly what we want.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
---
 meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index efe2871c9db..a8d1e63ccc6 100644
--- a/meson.build
+++ b/meson.build
@@ -1686,7 +1686,7 @@ bin_wrappers += executable('scalar',
   install_dir: get_option('libexecdir') / 'git-core',
 )
 
-if get_option('curl').enabled()
+if curl.found()
   libgit_curl = declare_dependency(
     sources: [
       'http.c',
-- 
2.49.0.472.ge94155a9ec.dirty
Previous: Patrick SteinhardtNext: Patrick Steinhardt
Message 2 of 22 in “Collection of build fixes”
  1. 0/4 Collection of build fixesPatrick Steinhardt, Mar 28, 2025
  2. 1/4 meson: fix handling of '-Dcurl=auto'Patrick Steinhardt, Mar 28, 2025
  3. 2/4 gitweb: fix generation of "gitweb.js"Patrick Steinhardt, Mar 28, 2025
  4. 3/4 meson: require Perl when building docsPatrick Steinhardt, Mar 28, 2025
  5. Junio C HamanoMar 29, 2025
  6. Patrick SteinhardtMar 31, 2025
  7. 4/4 meson: respect 'tests' build option in contribPatrick Steinhardt, Mar 28, 2025
  8. Sam JamesMar 28, 2025
  9. 0/5 Collection of build fixesPatrick Steinhardt, Mar 31, 2025
  10. 1/5 meson: fix handling of '-Dcurl=auto'Patrick Steinhardt, Mar 31, 2025
  11. Karthik NayakApr 3, 2025
  12. 2/5 gitweb: fix generation of "gitweb.js"Patrick Steinhardt, Mar 31, 2025
  13. Johannes SchindelinApr 1, 2025
  14. Patrick SteinhardtApr 2, 2025
  15. Toon ClaesApr 1, 2025
  16. 3/5 meson: respect 'tests' build option in contribPatrick Steinhardt, Mar 31, 2025
  17. Johannes SchindelinApr 1, 2025
  18. 5/5 ci: use Visual Studio for win+meson job on GitHub WorkflowsPatrick Steinhardt, Mar 31, 2025
  19. 4/5 meson: distinguish build and target host binariesPatrick Steinhardt, Mar 31, 2025
  20. Karthik NayakApr 3, 2025
  21. Johannes SchindelinApr 1, 2025
  22. Karthik NayakApr 3, 2025

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.