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

Re: [-SPAM-] [PATCH RFC v7 00/22] Modernize the build system

From
Patrick Steinhardt <ps@pks.im>
Date
Nov 18, 2024, 13:05 UTC
Message-ID
<Zzs7gerRLH0WlM-j@pks.im>
In-Reply-To
<xmqqfrnok8s9.fsf@gitster.g>
On Mon, Nov 18, 2024 at 09:48:06PM +0900, Junio C Hamano wrote:
Show 20 quoted lines
> Patrick Steinhardt <ps@pks.im> writes:
> 
> > Now there will be exceptions where it does make sense to make something
> > a build option, due to whatever reason. But I'm in the camp of adding
> > them as-needed and not proactively so that we don't end up with hundreds
> > of options.
> 
> Surely, your system may have openssl installed, but for
> non-technical reasons you may not want your Git to link with it,
> which is impossible to auto-detect, of course.
> 
> To be quite honest, while I am very much sympathetic to the above,
> in practice, I am afraid that these knobs we _already_ have in our
> Makefile are exceptions that was added due to whatever reason "as
> needed".  Dropping any of them would mean that you are declaring
> this: by default, all the past exceptions we made are nullified and
> you have to resubmit for requalification if you want to keep your
> favourite one.
> 
> That's not a very nice way to run the project, though.

There is a difference though: you are talking about actual features wired into Git, whereas I'm talking about other things like "Does the system have `uintmax_t`?".

The former is a strong must to be toggled by the user, and it is already wired up like this: you can choose to compile without OpenSSL and any other optional library with Meson. All toggles we have in this context in our Makefile must be supported by Meson. While auto-detection is nice to have, it is mandatory that the detection can be disabled.

But for the second group I'm sceptical whether these really should be configurable by the developer. Why would you care whether you use `uintmax_t` provided by the system or by Git as a compat macro? I don't see a strong reason to let the developer override this in a build system that knows to auto-detect the availability of such features.

Now as said, there may be cases where it indeed is useful, but in general I don't think it is.

Patrick
Previous: Junio C HamanoNext: Junio C Hamano
Message 30 of 31 in “Modernize the build system”
  1. 00/22 Modernize the build systemPatrick Steinhardt, Nov 15, 2024
  2. 01/22 Makefile: use common template for GIT-BUILD-OPTIONSPatrick Steinhardt, Nov 15, 2024
  3. 02/22 Makefile: consistently use @PLACEHOLDER@ to substitutePatrick Steinhardt, Nov 15, 2024
  4. 03/22 Makefile: refactor GIT-VERSION-GEN to be reusablePatrick Steinhardt, Nov 15, 2024
  5. 04/22 Makefile: propagate Git version via generated headerPatrick Steinhardt, Nov 15, 2024
  6. 05/22 Makefile: generate "git.rc" via GIT-VERSION-GENPatrick Steinhardt, Nov 15, 2024
  7. 06/22 Makefile: consistently use PERL_PATHPatrick Steinhardt, Nov 15, 2024
  8. 07/22 Makefile: extract script to massage Perl scriptsPatrick Steinhardt, Nov 15, 2024
  9. 08/22 Makefile: use "generate-perl.sh" to massage Perl libraryPatrick Steinhardt, Nov 15, 2024
  10. 10/22 Makefile: extract script to generate gitweb.cgiPatrick Steinhardt, Nov 15, 2024
  11. 09/22 Makefile: extract script to massage Shell scriptsPatrick Steinhardt, Nov 15, 2024
  12. 11/22 Makefile: extract script to generate gitweb.jsPatrick Steinhardt, Nov 15, 2024
  13. 12/22 Makefile: refactor generators to be PWD-independentPatrick Steinhardt, Nov 15, 2024
  14. 13/22 Makefile: allow "bin-wrappers/" directory to existPatrick Steinhardt, Nov 15, 2024
  15. 14/22 Makefile: simplify building of templatesPatrick Steinhardt, Nov 15, 2024
  16. 16/22 Documentation: teach "cmd-list.perl" about out-of-tree buildsPatrick Steinhardt, Nov 15, 2024
  17. 15/22 Documentation: allow sourcing generated includes from separate dirPatrick Steinhardt, Nov 15, 2024
  18. 17/22 Documentation: extract script to generate a list of mergetoolsPatrick Steinhardt, Nov 15, 2024
  19. 19/22 t: allow overriding build dirPatrick Steinhardt, Nov 15, 2024
  20. 18/22 t: better support for out-of-tree buildsPatrick Steinhardt, Nov 15, 2024
  21. 20/22 Documentation: add comparison of build systemsPatrick Steinhardt, Nov 15, 2024
  22. 21/22 Introduce support for the Meson build systemPatrick Steinhardt, Nov 15, 2024
  23. Christian CouderNov 15, 2024
  24. Patrick SteinhardtNov 18, 2024
  25. 22/22 meson: fix conflicts with in-flight topicsPatrick Steinhardt, Nov 15, 2024
  26. Patrick SteinhardtNov 15, 2024
  27. Ramsay JonesNov 16, 2024
  28. Patrick SteinhardtNov 18, 2024
  29. Junio C HamanoNov 18, 2024
  30. Patrick SteinhardtNov 18, 2024
  31. Junio C HamanoNov 18, 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.