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

[PATCH 0/3] meson: wire up gitk and git-gui

From
Patrick Steinhardt <ps@pks.im>
Date
Aug 19, 2025, 08:18 UTC
Message-ID
<20250819-b4-pks-meson-tcl-tk-v1-0-6bcaff0bc0a0@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.

To the best of my knowledge this is the last missing piece for feature compatibility with our Makefile. As such, from my point of view, I think that we can stop treating the Meson build system as experimental and instead officially endorse it. Once merged I'll thus send another patch series that updates our documentation in various different places to also mention how to build Git with Meson.

Thanks!
Patrick

[1]: https://github.com/j6t/gitk/pull/8 [2]: https://github.com/j6t/git-gui/pull/9

---
Patrick Steinhardt (3):
      git-gui: move into "subprojects/"
      gitk: move into "subprojects/"
      meson: wire up gitk and git-gui
 Documentation/SubmittingPatches                       |   4 ++--
 Documentation/gitk.adoc                               |   2 +-
 Makefile                                              |  18 +++++++++---------
 meson.build                                           |  14 ++++++++++++++
 meson_options.txt                                     |   4 ++++
 subprojects/.gitignore                                |   2 ++
 {git-gui => subprojects/git-gui}/.gitattributes       |   0
 {git-gui => subprojects/git-gui}/.gitignore           |   0
 .../git-gui}/GIT-GUI-BUILD-OPTIONS.in                 |   0
 {git-gui => subprojects/git-gui}/GIT-VERSION-GEN      |   0
 {git-gui => subprojects/git-gui}/Makefile             |   0
 {git-gui => subprojects/git-gui}/README.md            |   0
 {git-gui => subprojects/git-gui}/generate-git-gui.sh  |   0
 {git-gui => subprojects/git-gui}/generate-script.sh   |   0
 {git-gui => subprojects/git-gui}/generate-tclindex.sh |   0
 {git-gui => subprojects/git-gui}/git-gui--askpass.sh  |   0
 {git-gui => subprojects/git-gui}/git-gui.sh           |   0
 {git-gui => subprojects/git-gui}/lib/about.tcl        |   0
 {git-gui => subprojects/git-gui}/lib/blame.tcl        |   0
 {git-gui => subprojects/git-gui}/lib/branch.tcl       |   0
 .../git-gui}/lib/branch_checkout.tcl                  |   0
 .../git-gui}/lib/branch_create.tcl                    |   0
 .../git-gui}/lib/branch_delete.tcl                    |   0
 .../git-gui}/lib/branch_rename.tcl                    |   0
 {git-gui => subprojects/git-gui}/lib/browser.tcl      |   0
 {git-gui => subprojects/git-gui}/lib/checkout_op.tcl  |   0
 {git-gui => subprojects/git-gui}/lib/choose_font.tcl  |   0
 .../git-gui}/lib/choose_repository.tcl                |   0
 {git-gui => subprojects/git-gui}/lib/choose_rev.tcl   |   0
 {git-gui => subprojects/git-gui}/lib/chord.tcl        |   0
 {git-gui => subprojects/git-gui}/lib/class.tcl        |   0
 {git-gui => subprojects/git-gui}/lib/commit.tcl       |   0
 {git-gui => subprojects/git-gui}/lib/console.tcl      |   0
 {git-gui => subprojects/git-gui}/lib/database.tcl     |   0
 {git-gui => subprojects/git-gui}/lib/date.tcl         |   0
 {git-gui => subprojects/git-gui}/lib/diff.tcl         |   0
 {git-gui => subprojects/git-gui}/lib/encoding.tcl     |   0
 {git-gui => subprojects/git-gui}/lib/error.tcl        |   0
 {git-gui => subprojects/git-gui}/lib/git-gui.ico      | Bin
 {git-gui => subprojects/git-gui}/lib/index.tcl        |   0
 {git-gui => subprojects/git-gui}/lib/line.tcl         |   0
 {git-gui => subprojects/git-gui}/lib/logo.tcl         |   0
 {git-gui => subprojects/git-gui}/lib/merge.tcl        |   0
 {git-gui => subprojects/git-gui}/lib/mergetool.tcl    |   0
 {git-gui => subprojects/git-gui}/lib/meson.build      |   0
 {git-gui => subprojects/git-gui}/lib/option.tcl       |   0
 {git-gui => subprojects/git-gui}/lib/remote.tcl       |   0
 {git-gui => subprojects/git-gui}/lib/remote_add.tcl   |   0
 .../git-gui}/lib/remote_branch_delete.tcl             |   0
 {git-gui => subprojects/git-gui}/lib/search.tcl       |   0
 {git-gui => subprojects/git-gui}/lib/shortcut.tcl     |   0
 {git-gui => subprojects/git-gui}/lib/spellcheck.tcl   |   0
 {git-gui => subprojects/git-gui}/lib/sshkey.tcl       |   0
 {git-gui => subprojects/git-gui}/lib/status_bar.tcl   |   0
 {git-gui => subprojects/git-gui}/lib/themed.tcl       |   0
 {git-gui => subprojects/git-gui}/lib/tools.tcl        |   0
 {git-gui => subprojects/git-gui}/lib/tools_dlg.tcl    |   0
 {git-gui => subprojects/git-gui}/lib/transport.tcl    |   0
 {git-gui => subprojects/git-gui}/lib/win32.tcl        |   0
 .../git-gui}/lib/win32_shortcut.js                    |   0
 {git-gui => subprojects/git-gui}/meson.build          |   0
 {git-gui => subprojects/git-gui}/po/.gitignore        |   0
 {git-gui => subprojects/git-gui}/po/README            |   0
 {git-gui => subprojects/git-gui}/po/bg.po             |   0
 {git-gui => subprojects/git-gui}/po/de.po             |   0
 {git-gui => subprojects/git-gui}/po/el.po             |   0
 {git-gui => subprojects/git-gui}/po/fr.po             |   0
 {git-gui => subprojects/git-gui}/po/glossary/Makefile |   0
 {git-gui => subprojects/git-gui}/po/glossary/bg.po    |   0
 {git-gui => subprojects/git-gui}/po/glossary/de.po    |   0
 {git-gui => subprojects/git-gui}/po/glossary/el.po    |   0
 {git-gui => subprojects/git-gui}/po/glossary/fr.po    |   0
 .../git-gui}/po/glossary/git-gui-glossary.pot         |   0
 .../git-gui}/po/glossary/git-gui-glossary.txt         |   0
 {git-gui => subprojects/git-gui}/po/glossary/it.po    |   0
 {git-gui => subprojects/git-gui}/po/glossary/pt_br.po |   0
 {git-gui => subprojects/git-gui}/po/glossary/pt_pt.po |   0
 .../git-gui}/po/glossary/txt-to-pot.sh                |   0
 {git-gui => subprojects/git-gui}/po/glossary/zh_cn.po |   0
 {git-gui => subprojects/git-gui}/po/hu.po             |   0
 {git-gui => subprojects/git-gui}/po/it.po             |   0
 {git-gui => subprojects/git-gui}/po/ja.po             |   0
 {git-gui => subprojects/git-gui}/po/meson.build       |   0
 {git-gui => subprojects/git-gui}/po/nb.po             |   0
 {git-gui => subprojects/git-gui}/po/po2msg.sh         |   0
 {git-gui => subprojects/git-gui}/po/pt_br.po          |   0
 {git-gui => subprojects/git-gui}/po/pt_pt.po          |   0
 {git-gui => subprojects/git-gui}/po/ru.po             |   0
 {git-gui => subprojects/git-gui}/po/sv.po             |   0
 {git-gui => subprojects/git-gui}/po/vi.po             |   0
 {git-gui => subprojects/git-gui}/po/zh_cn.po          |   0
 {git-gui => subprojects/git-gui}/windows/git-gui.sh   |   0
 {gitk-git => subprojects/gitk}/.gitignore             |   0
 {gitk-git => subprojects/gitk}/Makefile               |   0
 {gitk-git => subprojects/gitk}/generate-tcl.sh        |   0
 {gitk-git => subprojects/gitk}/gitk                   |   0
 {gitk-git => subprojects/gitk}/meson.build            |   0
 {gitk-git => subprojects/gitk}/po/.gitignore          |   0
 {gitk-git => subprojects/gitk}/po/bg.po               |   0
 {gitk-git => subprojects/gitk}/po/ca.po               |   0
 {gitk-git => subprojects/gitk}/po/de.po               |   0
 {gitk-git => subprojects/gitk}/po/es.po               |   0
 {gitk-git => subprojects/gitk}/po/fr.po               |   0
 {gitk-git => subprojects/gitk}/po/hu.po               |   0
 {gitk-git => subprojects/gitk}/po/it.po               |   0
 {gitk-git => subprojects/gitk}/po/ja.po               |   0
 {gitk-git => subprojects/gitk}/po/meson.build         |   0
 {gitk-git => subprojects/gitk}/po/po2msg.sh           |   0
 {gitk-git => subprojects/gitk}/po/pt_br.po            |   0
 {gitk-git => subprojects/gitk}/po/pt_pt.po            |   0
 {gitk-git => subprojects/gitk}/po/ru.po               |   0
 {gitk-git => subprojects/gitk}/po/sv.po               |   0
 {gitk-git => subprojects/gitk}/po/ta.po               |   0
 {gitk-git => subprojects/gitk}/po/vi.po               |   0
 {gitk-git => subprojects/gitk}/po/zh_cn.po            |   0
 115 files changed, 32 insertions(+), 12 deletions(-)

--- base-commit: c44beea485f0f2feaf460e2ac87fdd5608d63cf0 change-id: 20250703-b4-pks-meson-tcl-tk-bb75616c8048

Next: Patrick Steinhardt
Message 1 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.