Upcoming changes in Tcl/Tk packaging
Hi fellow developers,
I would like to introduce a few significant changes into Debian Tcl/Tk
packages. Some of them have quite significant impact on their reverse
dependencies which will need a transition, I think. The proposed
changes are already in the experimental branch, so anyone could try
and break things.
The changes are (I use Tcl/Tk 8.5 as an example, but the same changes
are applied to 8.4 and 8.6 as well):
1. Multiarchifying Tcl/Tk. This means splitting out the libtcl8.5
package with libraries moved to /usr/lib/<triplet> and with common Tcl
code in /usr/share/tcltk/tcl8.5. The same is for Tk (libtk8.5 is the
new package name). This change doesn't cause any impact on the reverse
2. Renaming tcl8.5-dev and tk8.5-dev into libtcl8.5-dev and
libtk8.5-dev respectively (the latter packages still provide the
former as virtual packages to break as few packages as it could be).
This change is not strictly necessary, but the new names follow the
common convention for development libraries. Only 4 packages break
because of this change. They either have versioned depends or
build-depends on tcl8.*-dev or tk8.*-dev. (cableswig, netgen, tix,
3. Renaming tcl-dev and tk-dev into libtcl-dev and libtk-dev. Since
too many packages have versioned build-dependencies on tcl-dev or
tk-dev, I chose to retain tcl-dev and tk-dev packages (as
meta-packages which depend on libtcl-dev and libtk-dev). Switching to
libtcl-dev and libtk-dev can be gradual. Would adding a lintian
warning discouraging to use the old names possible?
And the last but the most significant change:
4. Dropping /usr/bin/tclsh and /usr/bin/wish alternatives. Currently,
any tcl8.* package offers /usr/bin/tclsh and any tk8.* package gives
/usr/bin/wish via alternatives mechanism. I want to drop it and
provide /usr/bin/tclsh and /usr/bin/wish as symlinks in tcl and tk
packages respectively (similar to python packages). This change is
very invasive. It makes about 40 packages FTBFS, and I don't know how
many packages will break silently. The problem is that currently
packages which depend on tcl8.5 (or tcl8.4, or tcl8.6) assumes that
/usr/bin/tclsh exists (and the same is for tk8.5 and /usr/bin/wish).
Though for many of them (those which depend on tcl8.5 or tk8.5) the
fix will be trivial - to change dependency to tcl or tk, which provide
/usr/bin/tclsh and /usr/bin/wish symlinks.
These changes will require revision for the Debian Tcl/Tk policy. The
new draft isn't published yet. It's still preparing in SVN:
svn+ssh://svn.debian.org/svn/pkg-tcltk/policy/trunk (Is there
anonymous access to it?)
So, I'd like to start reporting bugs on found FTBFS and
#!/usr/bin/tclsh or #!/usr/bin/wish shebangs without tcl or tk
dependencies. Then I'll upload the changed Tcl/Tk packages to
Also, current stable upstream Tcl/Tk version is 8.6.1, but I wouldn't
like to switch to it now because it'll complicate the process of
removing alternatives a lot. But later I'd like to have another
transition (switching to 8.6 as default Tcl/Tk version).
Any questions, comments. Anything I've missed?