#550299 gitk: package depends explicitly on tk, wish may be more appropriate

Package:
gitk
Source:
git
Submitter:
Steffen Moeller
Date:
2011-07-06 21:57:09 UTC
Severity:
wishlist
#550299#5
Date:
2009-10-08 22:31:00 UTC
From:
To:
Hello,

I would like to remove tk8.4 from my system, but the package tk depends on it, which in turn gitk depends on. Since gitk apparently als works with tk8.5, and the gitk start script is version-independent, the explicit dependency tk should be weakened. I suggest to either just depend on "wish", which is provided both by tk8.4 and tk8.5 or to at least allow dependencies to either tk|tk8.5.

Many thanks

Steffen

#550299#10
Date:
2009-10-09 11:21:57 UTC
From:
To:
Hi, please see http://bugs.debian.org/503113

Regards, Gerrit.

#550299#15
Date:
2009-10-09 11:31:56 UTC
From:
To:
Hi Gerrit,

Gerrit Pape wrote:

I should have reopened that bug probably. With tk8.4 remaining unremovable for
gitk, and  r-core-dev depending on tk8.5, and me wanting to use the newer
version, I still suggest to somehow change the dependency. How about
tk(>=8.4)|tk8.5 ?

Best,

Steffen.

#550299#20
Date:
2009-10-09 12:10:50 UTC
From:
To:
Hmm, the report above suggest that you can remove tk8.4:

Was that wrong advice?

Thanks, Gerrit.

#550299#25
Date:
2009-10-09 13:45:57 UTC
From:
To:
Gerrit Pape wrote:

$ LANG=C sudo dpkg --purge tk8.4 tk
dpkg: dependency problems prevent removal of tk:
 gitk depends on tk (>= 8.4).
dpkg: error processing tk (--purge):
 dependency problems - not removing
dpkg: dependency problems prevent removal of tk8.4:
 tk depends on tk8.4 (>= 8.4.16-2).
dpkg: error processing tk8.4 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 tk
 tk8.4

You may argue that the problem is with the tk package, which should also allow
newer version of tk. For the moment it does not:

$ apt-cache show tk | grep Depends
Depends: tcl (= 8.4.16-2), tk8.4 (>= 8.4.16-2)

This is probably intentional, since it grants a guarantee for the availability
of a well-known version of tk. I personally find the explicit dependency on tcl
 wrong, though and would prefer for the tk package something like

Depends: tk8.4 (>= 8.4.16-2) | tk8.5 (>= 8.5.7-1)

I am CCing the tk maintainers mailing list, who have more of an oversight on
the issue than me.

Cheers,

Steffen

#550299#30
Date:
2009-10-11 04:33:36 UTC
From:
To:
This is intentional to ensure having _one_ reference version of tcl/tk.
Packages should depend on that, if it is not strictly required a major
version. Anyway, it is moving to 8.5 within the squeeze release cycle.

#550299#35
Date:
2010-02-17 03:33:57 UTC
From:
To:
tags 550299 + wontfix
thanks

Hi Steffen,

Steffen Moeller wrote:
[...]

Aggh, yes.  I am not all a fan of how the tk packages are set up.

Yep.  I do not want to create more hacks, so I think this is in the
hands of the tk maintainers now.  See #570164 (gitk bug) and #516178
(tk bug).

A dependency on wish would be satisfied by tk8.3, which I think makes
it a nonstarter.  Marking wontfix.

Still, thanks for working towards a smaller disk footprint for Debian.
I do hope this gets fixed.

Jonathan

#550299#42
Date:
2010-02-19 09:07:10 UTC
From:
To:
It is not clear to me what you are trying to obtain. You must have the default
tcl/tk version installed (currently 8.4). Also you can have 8.5 installed, but
you can remove it if you had not installed packages that depend on 8.5 strictly.
It is exactly the same you get with gcc default and gcc-X.Y versions. So what?
The only true problem is the historical presence of alternatives, which should
be dropped. Default Tcl/Tk version is not something the admin should be able
to set, because it is error prone. At the same time, IMHO depending on wish
is an error. It is much better depending on default tk. Also that kind of
dependencies should be dropped. Please cfr:

http://pkg-tcltk.alioth.debian.org/tcltk-policy.html/ch-module_packages.html#s-dependencies

#550299#47
Date:
2010-02-19 09:43:18 UTC
From:
To:
Hi Francesco,

Francesco P. Lovergine wrote:

I don’t think the analogy is perfect.  Steffen reported that he uses
gitk and would prefer to use it with tk8.5 (if I remember correctly).
This makes sense to me, because in many ways, tk8.5 is simply better
than tk8.4.  With the current system, most packages that depend on tk
use wish rather than using wish-default directly, meaning that if the
admin has set wish to point elsewhere, the tk8.4 installation is
wasted space.

Now compare the gcc situation.  IIUC the packaging strategy is to
roughly mimic what upstream provides.  That is, there is one current
release, old releases kept for compatibility, and new releases
provided for experimentation.  gcc-4.5 and gcc-snapshot are likely to
be broken occasionally, so it is foolish for packages to use them
without a good reason.  gcc-4.4 is what the rest of the world is
already using, and it is easy for Debian to standardize on it for now.
When we have various packages depending on different GCC versions,
forcing the admin to have several installed, that is a symptom of a
problem: for example, for copyright reasons it took a while to switch
to GCC 4.4, and so impatient package maintainers with reason to
upgrade switched individually.

No argument here, provided the default version does not fall way out
of date too often.  Actually, I would encourage (for squeeze+1) just
having one tcl and one tk source package (plus maybe a tcltk-snapshot
package for testers).  IMHO there are not enough packages using Tcl/Tk
in crazy ways to make multiple co-installable versions worth the
trouble.

Then using alternatives is a bug.  It is not at all analogous to
letting the admin install a symlink in /usr/local/bin; providing
alternatives is advertising that it will work.

I suspect dropping alternatives support would leave some people
unhappy because they are used to tk8.5 or 8.6 and don’t want to go
back to 8.4.  One bug masks the other.

Because of Bug#544460, gitk probably needs to depend on tk (>= 8.5.7).
Which is unsatisfiable.  *sigh*

Jonathan

#550299#52
Date:
2010-02-19 10:06:48 UTC
From:
To:
This is a non problem because 8.5 should be the default for squeeze.

As above.