Thread (8 messages) flat view 8 messages, 3 authors, 2017-11-27

Re: [PATCH] Makefile: check that tcl/tk is installed

From: Jonathan Nieder <hidden>
Date: 2017-11-20 19:20:04

Hi,

Christian Couder wrote:
By default running `make install` in the root directory of the
project will set TCLTK_PATH to `wish` and then go into the "git-gui"
and "gitk-git" sub-directories to build and install these 2
sub-projects.

When Tcl/Tk is not installed, the above will succeed if gettext
is installed, as Tcl/Tk is only required as a substitute for msgfmt
when msgfmt is not installed. But then running the installed gitk
and git-gui will fail.
Hm, I am not sure I understand the point of this change.  E.g.
if I run "make install" for git and install tk later, wouldn't I
want gitk to work?

Can you say more about where this comes up? gitk is a wrapper
script

	#!/bin/sh
	# Tcl ignores the next line -*- tcl -*- \
	exec wish "$0" -- "$@"

Would some error handling there help?  E.g. something like

	#!/bin/sh
	# Tcl ignores the next line -*- tcl -*- \
	exec wish "$0" -- "$@" || \
	{ echo >&2 "Cannot run gitk without tk"; exit 127; }
If neither Tcl/Tk nor gettext are installed, then processing po
files will fail in the git-gui directory. The error message when
this happens is very confusing to new comers as it is difficult
to understand that we tried to use Tcl/Tk as a substitute for
msgfmt, and that the solution is to either install gettext or
Tcl/Tk, or to set both NO_GETTEXT and NO_TCLTK.
Hm, is this the motivating problem?  This is a condition where
the rationale for failing the build seems clearer.
To improve the current behavior when Tcl/Tk is not installed,
let's just check that TCLTK_PATH points to something and error
out right away if this is not the case.
At first glance I had thought this might set NO_TCLTK automatically,
which I think would be problematic for the reasons mentioned above.

Erroring out like this patch does and asking the user to explicitly
confirm that they want to install gitk without Tcl/Tk is less
problematic, so I am not *against* this patch, just interested in more
background.

Thanks and hope that helps,
Jonathan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help