Tcl Source Code

View Ticket
Login
Ticket UUID: 736774
Title: Mac OS X: incorrect runtime library found
Type: Bug Version: obsolete: 8.4.2
Submitter: das Created on: 2003-05-13 01:23:18
Subsystem: 68. Mac Classic (obsolete) Assigned To: das
Priority: 9 Immediate Severity:
Status: Closed Last Modified: 2003-05-22 08:23:27
Resolution: Fixed Closed By: das
    Closed on: 2003-05-22 01:23:27
Description:
On Mac OS X with the framework build:

When multiple major/minor versions of Tcl.framework (resp. 
Tk.framework) are installed (e.g. both 8.4 and 8.5), only the 
latest version of the runtime library in the framework bundle 
resources can be accessed through the 
Tcl_MacOSXOpenBundleResources() API, this leads to 
startup failure, e.g. in the above example, tclsh8.4 startup 
will fail because the 8.5 runtime library will be found in 
Tcl.framework/Resources/Scripts. Instead Tcl.framework/
Versions/8.4/Resources/Scripts should be used.

A new API, 
Tcl_MacOSXOpenVersionedBundleResources(), needs to 
be introduced, taking the current TCL_VERSION (resp. 
TK_VERSION) as an additional argument.
User Comments: das added on 2003-05-22 08:23:27:

File Deleted - 50209: 



File Added - 50951: tcl.diff

Logged In: YES 
user_id=90580

attached updated tcl patch with fix for a problem that caused 
only the first call to 
Tcl_MacOSXOpenVersionedBundleResources() for a given 
bundle identifier to succeed. This caused the tcl runtime library 
not to be found in all interps created after the inital one.

fix checked in to core-8-4-branch and HEAD.

das added on 2003-05-13 15:44:22:
Logged In: YES 
user_id=90580

yes if would be good if CFBundle handled versioning... maybe 
something worh opening a Radar about?

committed attached patches to core-8-4-branch and HEAD.

wolfsuit added on 2003-05-13 12:36:43:
Logged In: YES 
user_id=169107

Daniel, this seems great.  There really should be versioned API's for all this 
stuff in the CFBundle API, but short of that - which is beyond our control, 
this will do.

Check it on in!

das added on 2003-05-13 08:27:55:

File Added - 50210: tk.diff

das added on 2003-05-13 08:26:58:

File Added - 50209: tcl.diff

das added on 2003-05-13 08:26:57:
Logged In: YES 
user_id=90580

The attached patches add 
Tcl_MacOSXOpenVersionedBundleResources() and use it in 
tclUnixInit.c resp. tkMacOSXInit.c instead of 
Tcl_MacOSXOpenBundleResources().
The patches are against core-8-4-branch, the same changes will 
be made on the trunk.

It's crucial that this go into 8.4 before 8.5 is widely deployed, 
otherwise 8.5 installs will break existing 8.4 software.

If at all possible, this should go into 8.4.3

Jim, could you review this for checkin?

Attachments: