[issue10907] OS X installer: warn users of buggy Tcl/Tk in OS X 10.6
report at bugs.python.org
Fri Jan 14 16:52:42 CET 2011
New submission from Ned Deily <nad at acm.org>:
With 2.7 and now 3.2, we have been supplying two variants of OS X installers: the traditional 32-bit only version dynamically linked with Tk 8.4, the only version available across all supported OS X releases; and a new 64-bit/32-bit version dynamically linked with Tk 8.5 for 10.6 only. The Tcl/Tk 8.5 version supplied by Apple in OS X 10.6 has proven to work badly with IDLE and other Tkinter applications; issues reported include hangs when pasting text or opening new editor windows or after syntax errors. Until recently, it was the only standard version of non-X11 Tcl/Tk that was supported for both 64-bit and 32-bit executables. Recently, ActiveState has released a newer version of Tk 8.5 that is ABI-compatible with the Apple 10.6 one but which behaves much better with IDLE and Tkinter, with none of the previously reproducible hangs detected so far. Since the Python OS X installer depends on an external source for Tk, either the default Apple-suppled one or, now, an optional 3rd-party install like those from ActiveState, it is important that users are aware that there are options and that they can avoid bad experiences with IDLE crashing, etc. Because we are dependent on dynamic libraries, it is possible that the situation could change over the lifetime of the Python release, i.e. the Apple could update Tk in 10.6 or new problems could be found. So the solution here should allow for that.
The attached patches take the following approach:
1. Define a canonical URL on the Python web site for a page that provides the latest status information on supported and recommended Tcl/Tk versions for all recent Python OS X installers. The URL chosen is: http://www.python.org/download/mac/tcltk/
2. Add to the OS X Installer Welcome message and ReadMe files prominent references to the new web page.
3. Add an OS X only check in IDLE initialization to see if tkinter is running with the known buggy Apple version. If so, output a warning message via a print statement executed in the IDLE shell window:
WARNING: The version of Tcl/Tk (8.5.7) in use may be unstable.
Visit http://www.python.org/download/mac/tcltk/ for current information.
Since it is possible the user will not be able to install ActiveTcl for some reason (licensing issues, perhaps), issuing the warning through the existing shell window will be much less obtrusive than opening an error window that would need to be dismissed every time IDLE is invoked.
4. Populate and maintain the new web page with the relevant information about OS X installer versions and Tcl/Tk versions. Make it easy for the user to find do the right thing. Attached is a first draft of the web page to show the basic approach.
5. Add and maintain references on the main Download page and the release-specific pages to the new web page. Those changes are also included in the web site patch.
6. Document and publish workarounds for 2.7.1 64-bit installer users.
7. Backport the 3.2 fixes for 2.7.2.
components: Build, IDLE, Macintosh
nosy: benjamin.peterson, georg.brandl, ned.deily
priority: release blocker
title: OS X installer: warn users of buggy Tcl/Tk in OS X 10.6
versions: Python 2.7, Python 3.2
Added file: http://bugs.python.org/file20406/issue_10_6_tk.patch
Python tracker <report at bugs.python.org>
More information about the Python-bugs-list