# README update proposition

2 messages from 2026-01-16 to 2026-01-16. Participants: Oskar Jaskólski, Junio C Hamano.
Thread: https://gitlist.dev/t/64819

## Oskar Jaskólski, 2026-01-16 11:22

Subject: README update proposition
Message-ID: <CAFp-0Pz_BdZwA4Pn=jUxvYu1prj0F85q+3GWSW-G6LF=cSHn8A@mail.gmail.com>
URL: https://gitlist.dev/e/CAFp-0Pz_BdZwA4Pn%3DjUxvYu1prj0F85q%2B3GWSW-G6LF%3DcSHn8A%40mail.gmail.com

```
Hello everyone!

Is it possible to apply the attached patch? I was trying to "build" git-gui,
but I was seeing the Tcl/Tk for the first time.. Now I know that `Tk` is
used to generate the GUI, and `Tcl` is the scripting language used by `Tk`.
The `wish` command is used to execute the `Tk` code.

I was thinking that I have to install all three dependencies but it turned
out that I need just to install one `tcl/tk` package.

Greetings,
Oskar Jaskólski


From 3c422f664032989a230ba3f4303485ccfa034660 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Oskar=20Jask=C3=B3lski?= <oskarrro90@gmail.com>
Date: Fri, 16 Jan 2026 12:08:21 +0100
Subject: [PATCH] git-gui: update README to clarify Tcl/Tk dependencies and
 build process
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Oskar Jaskólski <oskarrro90@gmail.com>
---
 README.md | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/README.md b/README.md
index 948e925..0efe1bb 100644
--- a/README.md
+++ b/README.md
@@ -16,15 +16,20 @@ standard Git installation.
 You need to have the following dependencies installed before you begin:
 
 - Git
-- Tcl
-- Tk
-- wish
-- Gitk (needed for browsing history)
+- wish (Tcl/Tk runtime required to run the Git GUI)
+- Gitk (optional, needed for browsing history)
 - msgfmt
 
-Most of Git GUI is written in Tcl, so there is no compilation involved. Still,
-some things do need to be done (mostly some substitutions), so you do need to
-"build" it.
+Git GUI is implemented in Tcl/Tk and is executed as a script via the `wish`
+runtime. If `wish` is available in your PATH, no separate Tcl or Tk installation
+is required.
+
+On most systems, `wish` is provided by the system Tcl/Tk package. If it is not
+available, see https://www.tcl-lang.org/software/tcltk/ for installation
+options.
+
+There is no compilation involved. The build step only performs minor
+substitutions.
 
 You can build Git GUI using:
 
-- 
2.43.0


```

## Junio C Hamano, 2026-01-16 17:09

Subject: Re: README update proposition
Message-ID: <xmqq7btha3ha.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqq7btha3ha.fsf%40gitster.g
In-Reply-To: <CAFp-0Pz_BdZwA4Pn=jUxvYu1prj0F85q+3GWSW-G6LF=cSHn8A@mail.gmail.com>

```
Oskar Jaskólski <oskarrro90@gmail.com> writes:

> @@ -16,15 +16,20 @@ standard Git installation.
>  You need to have the following dependencies installed before you begin:
>  
>  - Git
> -- Tcl
> -- Tk
> -- wish
> -- Gitk (needed for browsing history)
> +- wish (Tcl/Tk runtime required to run the Git GUI)
> +- Gitk (optional, needed for browsing history)

Hiding the mention of Tcl/Tk may be a small regression for users
depending on what distribution is on.  On Debian based systems,
"wish" is merely a virtual package and the package to install is
"tk", for example.

Is Gitk truly "optional"?  When running git-gui there are a few menu
items that invoke gitk.  Does the rest of the document inform users
well enough to avoid touching these features?  I'd think that we
would rather want the README talk about giving a fairly complete
installation without such limitation.

The parenthesized explanation on "wish" is a good addition, though,
and we may want to keep it even if we were to drop everything else
in this patch.

> -Most of Git GUI is written in Tcl, so there is no compilation involved. Still,
> -some things do need to be done (mostly some substitutions), so you do need to
> -"build" it.
> +Git GUI is implemented in Tcl/Tk and is executed as a script via the `wish`
> +runtime. If `wish` is available in your PATH, no separate Tcl or Tk installation
> +is required.

If this were in the end-user instruction, being clear and concise
like the updated text is a very good thing, BUT because this is in
the building-and-installing section, I doubt this is a good change.

The build procedure (in git-gui/Makefile), would try to run "tclsh"
which is often found in the Tcl package, when it needs to use po2msg
on a system without msgfmt, which are all part of the install/build
procedure.  Again, if somebody already built git-gui for you, I
agree that all you need to have is "wish" and "gitk", but that is
not the target audience of this section, is it?

```
