From: Patrick Steinhardt Date: Tue, 10 Feb 2026 13:26:28 GMT Subject: Re: What's cooking in git.git (Feb 2026, #03) Message-ID: In-Reply-To: On Mon, Feb 09, 2026 at 07:41:30PM +0000, Ramsay Jones wrote: > On 09/02/2026 9:14 am, Patrick Steinhardt wrote: > > On Sat, Feb 07, 2026 at 03:15:51PM -0800, Junio C Hamano wrote: > [snip] > > > >> * ps/meson-gitk-git-gui (2026-02-04) 1 commit > >> - meson: wire up gitk and git-gui > >> > >> Plumb gitk/git-gui build and install procedure in meson based > >> builds. > >> > >> Expecting a reroll. > >> source: <20260204-b4-pks-meson-tcl-tk-v2-1-5bc3ccf3a8ce@pks.im> > > > > Probably makes more sense to say that this is waiting on a pull request > > of gitk, as the patch series itself doesn't need to change. > > > > So, I should probably wait until Junio pulls from Johannes Sixt, but as it stands > on the seen branch (@203d64cf67), I have warning against 'git-gui' on Linux (but > not cygwin). On Linux, I see: > > $ cat build/meson-logs/meson-log.txt > ... > Executing subproject git-gui > > Project name: git-gui > Project version: undefined > Program sh found: YES (/usr/bin/sh) > Program tclsh found: YES (/usr/bin/tclsh) > Program wish found: YES (/usr/bin/wish) > Configuring GIT-GUI-BUILD-OPTIONS using configuration > Program msgfmt found: YES (/usr/bin/msgfmt) > Build targets in project: 694 > NOTICE: Future-deprecated features used: > * 0.64.0: {'copy arg in configure_file'} > Subproject git-gui finished. > ... > $ > > Note that on cygwin I don't get the warning and the number of build targets > is 693, rather than 694 (I don't know if that's relevant). Also the version > of meson on linux is 1.3.2, but on cygwin is 1.5.2 (so, I would have thought > that the deprecation warning would also appear on cygwin! ;) ). If I remember correctly this particular deprecation was rolled back eventually. *goes double checking* Yup, it's been deprecated in Meson 0.64.0, but that deprecation has been rolled back in 0c802d260 (remove deprecation warning for `configure_file` kwarg 'copy', 2024-05-24), released as part of Meson 1.5.0. So I'm not sure whether this really needs addressing. We _could_ make this conditional and use `fs.copyfile()` on Meson newer or equal to 0.63.0 and older than 1.5.0. But whether that's worth it... dunno. Probably not. > The make and meson builds appear very similar, although some paths and version > numbers differ: > > $ diff build/subprojects/git-gui/git-gui git-gui/git-gui > 1c1 > < #!/usr/bin/sh > --- > > #!/bin/sh > 6c6 > < echo 'git-gui version 0.21.GITGUI'; \ > --- > > echo 'git-gui version 0.21.0.257.g1a729'; \ > 10c10 > < exec '/usr/bin/wish' "$argv0" -- "$@" > --- > > exec 'wish' "$argv0" -- "$@" > 12c12 > < set appvers {0.21.GITGUI} > --- > > set appvers {0.21.0.257.g1a729} > 378c378 > < set _shellpath {/usr/bin/sh} > --- > > set _shellpath {/bin/sh} > $ I guess the /bin/sh thing is something I'll want to address so that we prefer "/bin/sh" over "/usr/bin/sh". We did the same fix in Git itself eventually. The wish shell feels sensible though, I don't think we need to fix that part. The version thing is actually a bug. The problem is that we have started to set GIT_CEILING_DIRECTORIES, but we set it to the directory of git-gui itself. That of course works as long as git-gui is compiled standalone, but doesn't work anymore in case git-gui is embedded as a subproject. So why does it work for our Makefile? That's because we define the SOURCE_DIR as ".", and as a result we define the ceiling directory as "./..". And that seems to not restrict our discovery process. I don't really know why that is, to be honest. I have created [1] to address these issues. Thanks for testing! Patrick [1]: https://github.com/j6t/git-gui/pull/31