This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ned.deily
Recipients ned.deily
Date 2012-02-15.01:01:27
SpamBayes Score 2.9887204e-12
Marked as misclassified No
Message-id <1329267688.42.0.5159808393.issue14018@psf.upfronthosting.co.za>
In-reply-to
Content
Xcode 3.2.6, the most recent release for OS X 10.6 (Snow Leopard), has a subtle but critical bug that affects Python builds using OS X SDKs (--enable-universalsdk=/Developer/SDKs/MacOSX10.?.sdk).  The Xcode installer creates faulty symlinks to /Library within  /Developer/SDKs.  The net effect is that frameworks installed in /Library, such as ActiveState Tcl and Tk, are not found during a build using the SDK as they should be.

$ cd /Developer/SDKs/MacOSX10.6.sdk/Library
$ ls -l
total 8
lrwxr-xr-x  1 root  wheel  19 Mar 17 18:24 Frameworks@ -> 
/Library/Frameworks
 
it ends up with an extra Frameworks directory so that
 
/Developer/SDKs/MacOSX10.6.sdk/Library/Frameworks/Frameworks/ -> /Library/Frameworks
 
The solution is to manually go in and fix the symlinks in 
/Developer/SDKs/MacOSX10.6.sdk, and remember to do so again if you have 
to reinstall Xcode 3.2.6.  AFAIK, this bug is unique to Xcode 3.2.6, not 
earlier versions of 3.2.x.

The effect on Python builds is that tkinter is linked against the Apple-supplied Tcl and Tk frameworks rather than the ActiveState ones which is not what is desired.

While the problem is created by Apple, the OS X Python installer build script, Mac/BuildScript/build-installer.py, should include a post-build check using otool -L that _tkinter.so is linked as expected.  The script already includes tests pre-build to ensure that the additional frameworks are in place.
History
Date User Action Args
2012-02-15 01:01:28ned.deilysetrecipients: + ned.deily
2012-02-15 01:01:28ned.deilysetmessageid: <1329267688.42.0.5159808393.issue14018@psf.upfronthosting.co.za>
2012-02-15 01:01:27ned.deilylinkissue14018 messages
2012-02-15 01:01:27ned.deilycreate