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

Re: [PATCH v2] meson: wire up gitk and git-gui

From
Karthik Nayak <karthik.188@gmail.com>
Date
Feb 4, 2026, 10:00 UTC
Message-ID
<CAOLa=ZSeyKJD07xHKezQzry6KuwNnB=DzwE81Sx0A+b2u41rjA@mail.gmail.com>
In-Reply-To
<20260204-b4-pks-meson-tcl-tk-v2-1-5bc3ccf3a8ce@pks.im>
Patrick Steinhardt <ps@pks.im> writes:
Show 23 quoted lines
> Wire up both gitk and git-gui in Meson as subprojects. These two
> programs should be the last missing pieces for feature compatibility
> with our Makefile for distributors.
>
> Note that Meson expects subprojects to live in the "subprojects/"
> directory. Create symlinks to fulfill this requirement.
>
> Signed-off-by: Patrick Steinhardt <ps@pks.im>
> ---
> Hi,
>
> I have upstreamed support for Meson into both gitk [1] and git-gui [2].
> This small patch series wires up support in Git.
>
> Changes in v2:
>   - Use symlinks instead of moving both gitk and git-gui into the
>     "subprojects/" directory.
>   - Rebased on v2.53.0, as it's been a while since v1 :)
>   - Link to v1: https://lore.kernel.org/r/20250819-b4-pks-meson-tcl-tk-v1-0-6bcaff0bc0a0@pks.im
>
> Thanks!
>
> Patrick

So in the previous version, we moved these projects into 'subprojects/', but we now use symlinks instead. Do you know if there is perhaps an issue in Meson to support configurable subproject paths? If so, we could eventually drop the symlink.

Show 38 quoted lines
>
> [1]: https://github.com/j6t/gitk/pull/8
> [2]: https://github.com/j6t/git-gui/pull/9
> ---
>  meson.build         | 14 ++++++++++++++
>  meson_options.txt   |  4 ++++
>  subprojects/git-gui |  1 +
>  subprojects/gitk    |  1 +
>  4 files changed, 20 insertions(+)
>
> diff --git a/meson.build b/meson.build
> index dd52efd1c8..e96953afec 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -239,7 +239,9 @@ git = find_program('git', dirs: program_path, native: true, required: false)
>  sed = find_program('sed', dirs: program_path, native: true)
>  shell = find_program('sh', dirs: program_path, native: true)
>  tar = find_program('tar', dirs: program_path, native: true)
> +tclsh = find_program('tclsh', required: get_option('git_gui'), native: false)
>  time = find_program('time', dirs: program_path, required: get_option('benchmarks'))
> +wish = find_program('wish', required: get_option('git_gui').enabled() or get_option('gitk').enabled(), native: false)
>
>  # Detect the target shell that is used by Git at runtime. Note that we prefer
>  # "/bin/sh" over a PATH-based lookup, which provides a working shell on most
> @@ -2250,6 +2252,16 @@ configure_file(
>    configuration: build_options_config,
>  )
>
> +gitk_option = get_option('gitk').disable_auto_if(not wish.found())
> +if gitk_option.allowed()
> +  subproject('gitk')
> +endif
> +
> +git_gui_option = get_option('git_gui').disable_auto_if(not tclsh.found() or not wish.found())
> +if git_gui_option.allowed()
> +  subproject('git-gui')
> +endif
> +

So gitk requires 'wish' to exist, whereas 'git_gui' also requires 'tclsh'. Looks good.

[snip]
Previous: Patrick SteinhardtNext: Patrick Steinhardt
Message 18 of 29 in “meson: wire up gitk and git-gui”
  1. 0/3 meson: wire up gitk and git-guiPatrick Steinhardt, Aug 19, 2025
  2. 1/3 git-gui: move into "subprojects/"Patrick Steinhardt, Aug 19, 2025
  3. Karthik NayakAug 19, 2025
  4. 2/3 gitk: move into "subprojects/"Patrick Steinhardt, Aug 19, 2025
  5. doc/gitk: update reference to the external projectJohannes Sixt, Aug 20, 2025
  6. doc/gitk: update reference to the external projectJohannes Sixt, Aug 20, 2025
  7. Junio C HamanoAug 20, 2025
  8. 3/3 meson: wire up gitk and git-guiPatrick Steinhardt, Aug 19, 2025
  9. Karthik NayakAug 19, 2025
  10. Patrick SteinhardtAug 24, 2025
  11. Junio C HamanoAug 19, 2025
  12. Patrick SteinhardtAug 24, 2025
  13. Junio C HamanoAug 26, 2025
  14. Patrick SteinhardtSep 2, 2025
  15. Ramsay JonesAug 19, 2025
  16. Patrick SteinhardtAug 24, 2025
  17. meson: wire up gitk and git-guiPatrick Steinhardt, Feb 4, 2026
  18. Karthik NayakFeb 4, 2026
  19. Patrick SteinhardtFeb 4, 2026
  20. Junio C HamanoFeb 4, 2026
  21. Patrick SteinhardtFeb 5, 2026
  22. Jeff KingFeb 5, 2026
  23. Patrick SteinhardtFeb 5, 2026
  24. Patrick SteinhardtFeb 6, 2026
  25. Junio C HamanoFeb 6, 2026
  26. Patrick SteinhardtFeb 9, 2026
  27. Junio C HamanoFeb 11, 2026
  28. Johannes SixtFeb 11, 2026
  29. Junio C HamanoFeb 11, 2026

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.