Title: "Build" build fails on OS X 10.8
Type: Stage: resolved
Components: Build, macOS Versions: Python 2.7
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: ned.deily Nosy List: ned.deily, python-dev, ronaldoussoren
Priority: normal Keywords: patch

Created on 2013-05-30 01:17 by ned.deily, last changed 2013-05-30 19:02 by ned.deily. This issue is now closed.

File name Uploaded Description Edit
issue18098_build_applet_rev1.patch ned.deily, 2013-05-30 07:09
Messages (5)
msg190333 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2013-05-30 01:17
The Build tool for OS X depends on the deprecated EasyDialogs module to interact with the user.  EasyDialogs depends on Apple-deprecated Carbon QuickDraw APIs.  As of OS X 10.8, the headers for the QuickDraw APIs are no longer supplied with Xcode 4.  This means that Build can no longer be built on 10.8 unless an earlier version of Xcode and an SDK from an earlier system are used.  The Mac/Makefile target "install_BuildApplet" fails with either:
  ImportError: cannot import name GetNewDialog
  AttributeError: 'module' object has no attribute 'GetQDGlobalsScreenBits'
depending on whether the interpreter being built supports 32-bit or not.    

Given that Build is already considered deprecated and has been removed in Python 3, it does not seem appropriate to attempt to re-engineer its GUI interface.  Instead, the Makefile should just skip building it if EasyDialogs is not available.

(Note that the QuickDraw libraries are still being shipped in OS X 10.8, so a "Build" built on an older system - such as with the OS X installers - will still run on 10.8.  There is no guarantee that will still be true in future versions of OS X.)
msg190341 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2013-05-30 06:03
There appears to be an unrelated edit to configure/ in the patch (moving ARCH_RUN_32BIT to another location), otherwise the patch looks fine.

I agree that it isn't worthwhile to try to port EasyDialogs to an API that is available, that's a too large change in a bugfix release and as you mentioned the entire module is gone in py3k.
msg190342 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2013-05-30 06:13
Unfortunately, the change is not unrelated.  It turns out that ARCH_RUN_32BIT has been broken for some time.  But it hasn't really mattered up to now where I do really need to force 32-bit mode during the build.  Also, the patch isn't quite right for the 10.4 case where LIPO_32BIT_FLAGS is empty.  I'll fix it before applying.
msg190346 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2013-05-30 07:14
New changeset cfdb4598c935 by Ned Deily in branch '2.7':
Issue #18098: The deprecated OS X Build fails to build on
msg190347 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2013-05-30 07:16
Committed for release in 2.7.6.
Date User Action Args
2013-05-30 19:02:43ned.deilysetfiles: - Tante Girang.uhtml
2013-05-30 19:01:08Ayank.koerniasetfiles: + Tante Girang.uhtml
2013-05-30 07:16:35ned.deilysetstatus: open -> closed
resolution: fixed
messages: + msg190347

stage: patch review -> resolved
2013-05-30 07:14:59python-devsetnosy: + python-dev
messages: + msg190346
2013-05-30 07:09:45ned.deilysetfiles: + issue18098_build_applet_rev1.patch
2013-05-30 07:09:30ned.deilysetfiles: - issue985064_plist_validation_v2.patch
2013-05-30 07:09:11ned.deilysetfiles: - issue18098_build_applet.patch
2013-05-30 07:08:59ned.deilysetfiles: + issue985064_plist_validation_v2.patch
2013-05-30 06:13:13ned.deilysetmessages: + msg190342
2013-05-30 06:03:31ronaldoussorensetmessages: + msg190341
2013-05-30 02:54:37ned.deilysetfiles: + issue18098_build_applet.patch
keywords: + patch
stage: needs patch -> patch review
2013-05-30 01:17:48ned.deilycreate