In article <[EMAIL PROTECTED]>,
 Ronald Oussoren <[EMAIL PROTECTED]> wrote:

> As I noted in a comment in that bugreport I'm not to keen on that. I  
> don't mind shipping the script ( or a GUI version of it) in the  
> application folder for users that want to switch to a newer Tk, or  
> even ship a minimal version of Tcl/Tk inside the Python.framework,  
> but running this script during installation means that (a) the script  
> must be 100% correct in all situations and (b) we'll end up with  
> Python installations that are slightly different which won't be fun  
> to investigate when someone reports a problem with tkinter.  
> Especially because users might not even realize they have a copy of  
> Tk in /Library/Frameworks.

(I've posted a slightly longer version of this to the bug report):

I see what you mean about different installations. I think the following 
might work better:
- Always modify _tkinter.so to point to Tcl/Tk 8.4 in
   /Library/Frameworks. 
This will fall back to the built in /System/Library/Frameworks if the 
user has not installed an 8.4 of their own.

It avoids a few of the issues you bring up and is simpler and more 
robust than what I originally suggested. Advantages:
- All installations would be the same.
- If the user installs a new Tcl/Tk after installing Python, it would be 
used (unless it's 8.5, which would not be safe to try with Python).

It still does not address your concern than a user might accidentally 
have a  Tcl/Tk that they don't want to use. I'd personally be happier if 
users could  easily upgrade their Tcl/Tk (since the installed one is so 
bad), so I see this as more of an advantage than a disadvantage. Users 
aren't going to typically  install Tcl/Tk unless they want to use it, I 
think. Still...I'm sure you've seen more requests for help than I have 
over the years.

I'm not keen on including a Tcl/Tk for several reasons:
- Which version would you use? Even 8.4.11 has some important known 
bugs, and 8.4.13 has different ones (at least one of which is very nasty 
for my application, so I stick with 8.4.11 for now).
- If a user wanted to upgrade their Tcl/Tk, what would they do? The 
answer is easy if we use the version of 8.4 found in /Library/Framework 
(if any).
- It can be tricky to add needed additions (my app uses the
"snack" sound library, for example). A standard Tcl/Tk makes this much 
easier (and in fact  ActiveState Tcl/Tk already includes all additions 
most folks would want).
- There is no universal Tcl/Tk yet (though one is planned). I personally 
don't want to try to build one.

So my personal suggestion is that we modify _tkinter.so using
Bob Ippolito's recipe unchanged (no fancy script that hunts for an 
installed Tcl/Tk). It will be completely compatible with the built in 
Tcl/Tk but gives any real users of Tcl/Tk (anyone who isn't just writing 
"hello world") a trivial way to get a decent version.

-- Russell

_______________________________________________
Pythonmac-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to