[Pkg-tcltk-devel] Tcl/Tk help needed (Was: Bug#767145: autodocktools: fails to start the GUI)

Sergei Golovan sgolovan at nes.ru
Thu Dec 24 07:52:27 UTC 2015


Hi Andreas,

On Wed, Dec 23, 2015 at 11:42 PM, Andreas Tille <andreas at an3as.eu> wrote:
> Hi Tcl/Tk packaging team,
>
> unfortunately I got no help on debian-mentors and since we somehow need
> to tackle bug  #767144 I wonder if you Tcl/Tk experts might be able to
> provide some help.

As far as I can see, you've stumbled on the change between Tcl/Tk 8.5
and 8.6. In Tcl/Tk 8.5 one could mix grid and pack geometry managers
in one master window. It often works but sometimes leads to
unpredictable results, sometimes an application which does that just
hangs. In Tcl/Tk 8.6 this mixing of grid and pack was explicitly
forbidden, hence this error message.

I don't think that there is an easy way to fix this. You can't just
revert to using Tcl/Tk 8.5 because Tkinter in Debian is already
switched to Tk 8.6 (and I guess using custom Tkinter is not an
option). So, one has to carefully find all mixed up packs and grids
and make sure that only one of them is used in every particular master
window. In plain Tcl/Tk I'd override the [pack] and [grid] routines to
print some debug information (something like

rename pack pack:orig
proc pack {args} {
    puts stderr "pack: [info level -1] $args"
    pack:orig {*}$args
}

and similar for grid). This would help to trace where exactly the
mixed geometry master windows appear. I don't know how you can do
something similar in Python, but I'm pretty sure it's possible.

Cheers!
-- 
Sergei Golovan



More information about the Pkg-tcltk-devel mailing list