Subject: Re: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed

From: Junio C Hamano <[email-masked]>
Date: Wed, 04 Jun 2025 08:17:31 -0700

Todd Zullinger <[email-masked]> writes:

> [email-masked] wrote:
>>>I hit a new issue during the test phase.
>>>
>>>Makefile:200: recipe for target 'lib/tclIndex' failed
>>>
>>>Is there any way to suppress this? I don't think we need TCL - don't have it anyway
>>>on NonStop.
>> 
>> More info:
>> 
>> The actual more complete error is:
>> 
>> /usr/coreutils/bin/bash generate-git-gui.sh "git-gui.sh" "git-gui" ./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE
>> /usr/coreutils/bin/bash generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS 
>> usage: generate-tclindex.sh <BUILD_DIR> <BUILD_OPTIONS> <LIBFILE> [<LIBFILE>...]
>> Makefile:200: recipe for target 'lib/tclIndex' failed
>> 
>> This seems like a legit problem to be fixed rather than ignored.
>
> If you don't have TCL, are you not setting NO_TCLTK for your
> builds?
>
> I don't think that's changed in ages, but perhaps something
> has changed in the build process or your build system which
> now exposes that you aren't setting it, which then tries to
> build git-gui (and would surely try to build gitk as well).

Curious.

$ git diff --name-status v2.50.0-rc0 v2.50.0-rc1 -- git-gui/ gitk-git/
M	git-gui/.gitattributes
M	git-gui/.gitignore
A	git-gui/GIT-GUI-BUILD-OPTIONS.in
M	git-gui/GIT-VERSION-GEN
M	git-gui/Makefile
A	git-gui/generate-git-gui.sh
A	git-gui/generate-macos-app.sh
A	git-gui/generate-macos-wrapper.sh
A	git-gui/generate-tclindex.sh
A	git-gui/lib/meson.build
A	git-gui/meson.build
A	git-gui/po/meson.build
M	gitk-git/Makefile
M	gitk-git/gitk
$ git diff --stat v2.50.0-rc0 v2.50.0-rc1 -- git-gui/ gitk-git/
 git-gui/.gitattributes            |   1 +
 git-gui/.gitignore                |   2 +-
 git-gui/GIT-GUI-BUILD-OPTIONS.in  |   7 ++
 git-gui/GIT-VERSION-GEN           |  44 ++++++++----
 git-gui/Makefile                  | 115 ++++++++---------------------
 git-gui/generate-git-gui.sh       |  29 ++++++++
 git-gui/generate-macos-app.sh     |  30 ++++++++
 git-gui/generate-macos-wrapper.sh |  35 +++++++++
 git-gui/generate-tclindex.sh      |  32 +++++++++
 git-gui/lib/meson.build           |  74 +++++++++++++++++++
 git-gui/meson.build               | 148 ++++++++++++++++++++++++++++++++++++++
 git-gui/po/meson.build            |  38 ++++++++++
 gitk-git/Makefile                 |   2 +-
 gitk-git/gitk                     |  10 ++-
 14 files changed, 458 insertions(+), 109 deletions(-)

So the build procedure for git-gui (but not gitk) has changed rather
extensively after we tagged the preview before -rc1?  Honestly, I
would have preferred to see a change with this impact go through the
regular 'seen' to 'next' to 'master' way before -rc0, but that is
water under the bridge.

We are in an exciting cycle X-<.

J6t?

I do not spot anything obviously wrong (and it is not expected that
I would---we wouldn't have this code sent to me in the first place
if this is something I can immediately notice).  git-gui/Makefile
sets ALL_LIBFILES to $(wildcard lib/*.tcl) and then does

    $(SHELL_PATH) generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS $(ALL_LIBFILES)

So the error message in Becker's message, i.e.

> /usr/coreutils/bin/bash generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS 
> usage: generate-tclindex.sh <BUILD_DIR> <BUILD_OPTIONS> <LIBFILE> [<LIBFILE>...]
> Makefile:200: recipe for target 'lib/tclIndex' failed

suggests that $(wildcard lib/*tcl) expanded to *nothing*, which
sounds horribly wrong.  They are source material and should exist in
an unmodified checkout or a tarball extract.