#632905 gitk requires 'tcl' even when 'tcl8.4' and 'tcl8.5' are installed

#632905#5
Date:
2011-07-06 21:30:18 UTC
From:
To:
Hello,

While trying to install the package "gitk", I was asked to install the required package "tcl" and "tk". This is not right in my case, because:
 - I already have both "tcl8.4" and "tcl8.5" installed, so it should be happy with any of them;
 - this would create a conflict, because "tcl" is actually "tcl 8.4.16" and "tcl8.4" is "tcl8.4.19"

Maybe the dependancy should be changed to require any one of the 3 package?

#632905#10
Date:
2011-07-06 21:46:37 UTC
From:
To:
Hi Debian tcl/tk developers,

Christophe wrote:

See below[*].

This is why we shouldn't support more than one version of the
(threaded) interpreter in a given suite at a time. :)

In an ideal world, I imagine the tcl binary would be in a "tcl"
package and only a separate libtcl package would be versioned.  I'd
be happy to work on that.  Can you imagine problems that would arise
from it?

Regards,
Jonathan

[*] The tcl package I am using has

	tcl8.6 (>= 8.6.0~b1-4)

In particular, the version it depends on is an inequality --- it does
not require any specific tcl patch level.  Christophe, is your tcl
package different?  What happens if you try "apt-get install tcl"?

#632905#15
Date:
2011-07-06 21:55:17 UTC
From:
To:
forcemerge 550299 632905
quit

Hi,

Christophe wrote:

I think the gitk package is using those metapackages correctly.  I've
sent a message to check by asking the Debian tcl/tk maintainers.

The report as written doesn't explain how this affects the package's
usefulness --- if the default version of "tk" is different from the
version you prefer, that's unfortunate, but it would not break git:

	apt-get install tcl tk
	update-alternatives --config tclsh
	update-alternatives --config wish

So it is not clear to me yet what the purpose of the proposed change
is.  Still, thanks for reporting it, and I'd be glad to help in any
way I can.

Regards,
Jonathan

#632905#22
Date:
2011-07-06 22:21:41 UTC
From:
To:
Hi Jonathan,

From the feedback in your two mails, I would tend to think that the problem is
only in Debian squeeze in which I am stuck for now (I did not find courage to
switch to testing at the time squeeze froze).

In my case:
 - tcl is *not* a meta-package
 - actually, it is even an older version of tcl than the version provided in
the package "tcl8.4" !

I confirm you that the tcl/tk version is, as expected, not an issue for gitk:
I choose the hacky-way to work around this, and downloaded manually the deb,
modified the depends to include tk8.4 | tk8.5, and here it goes!

By the way, tcl8.6 does not exist in squeeze, but that's probably ok as it is
still a beta (and not to be released soon if I believe the discussions on the
mailing list...); On the other hand 8.5.10 got released a few weeks ago so it
might also be an opportunity to upgrade the tcl8.5 package still in 8.5.8?

Regards,
Christophe.

#632905#27
Date:
2011-07-06 22:40:49 UTC
From:
To:
Christophe CURIS wrote:

Ah, that makes a lot of sense.  Thanks for clarifying.

Looking at the package description, I see:

	This package is a dependency package, which depends on
	Debian's default Tcl version (currently 8.4).

You're right that that's not the full story --- actually, the package
contains a symlink

	/usr/bin/tclsh-default -> tclsh8.4

In any event, it relies on tcl8.4 for functionality.

You're right to point out that tk8.5 works much better for gitk, and
it's unfortunate that squeeze was released with tk8.4 as the default
version.  The only workarounds I know of are to grab the "tcl" and
"tk" packages from wheezy, to use update-alternatives to override the
target of the /usr/bin/wish symlink, or to put a custom wish symlink
somewhere with higher precedence on the $PATH (e.g., in ~/bin when on
a multiuser system you don't control).

Hopefully the above discussion can help the next person who comes
across this.  I'll also look into adding a note to README.Debian
(suggested wording always welcome, of course).

Cheers,
Jonathan