New submission from Ned Deily <n...@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 option
 al 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.

----------
assignee: ned.deily
components: Build, IDLE, Macintosh
files: issue_10_6_tk.patch
keywords: patch
messages: 126270
nosy: benjamin.peterson, georg.brandl, ned.deily
priority: release blocker
severity: normal
status: open
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 <rep...@bugs.python.org>
<http://bugs.python.org/issue10907>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to