Issue #18098: The deprecated OS X Build Applet.app fails to build on
OS X 10.8 systems because the Apple-deprecated QuickDraw headers have
been removed from Xcode 4. Skip building it in this case.
diff --git a/Lib/plat-mac/EasyDialogs.py b/Lib/plat-mac/EasyDialogs.py
index 129cf2c..1d3edb3 100644
--- a/Lib/plat-mac/EasyDialogs.py
+++ b/Lib/plat-mac/EasyDialogs.py
@@ -243,8 +243,15 @@
+# The deprecated Carbon QuickDraw APIs are no longer available as of
+# OS X 10.8. Raise an ImportError here in that case so that callers
+# of EasyDialogs, like BuildApplet, will do the right thing.
-screenbounds = Qd.GetQDGlobalsScreenBits().bounds
+try:
+ screenbounds = Qd.GetQDGlobalsScreenBits().bounds
+except AttributeError:
+ raise ImportError("QuickDraw APIs not available")
+
screenbounds = screenbounds[0]+4, screenbounds[1]+4, \
screenbounds[2]-4, screenbounds[3]-4
diff --git a/Mac/Makefile.in b/Mac/Makefile.in
index 6e60b2a..a3e00b2 100644
--- a/Mac/Makefile.in
+++ b/Mac/Makefile.in
@@ -202,15 +202,22 @@
cd IDLE && make install
install_BuildApplet:
- $(RUNSHARED) @ARCH_RUN_32BIT@ $(BUILDPYTHON) $(srcdir)/scripts/BuildApplet.py \
- --destroot "$(DESTDIR)" \
- --python=$(prefix)/Resources/Python.app/Contents/MacOS/Python \
- --output "$(DESTDIR)$(PYTHONAPPSDIR)/Build Applet.app" \
- $(srcdir)/scripts/BuildApplet.py
-ifneq ($(LIPO_32BIT_FLAGS),)
- rm "$(DESTDIR)$(PYTHONAPPSDIR)/Build Applet.app/Contents/MacOS/Python"
- lipo $(LIPO_32BIT_FLAGS) -output "$(DESTDIR)$(PYTHONAPPSDIR)/Build Applet.app/Contents/MacOS/Python" $(BUILDPYTHON)
-endif
+ if ! $(RUNSHARED) @ARCH_RUN_32BIT@ $(BUILDPYTHON) \
+ -c 'import EasyDialogs' 2>/dev/null ; then \
+ echo "EasyDialogs not available in this Python - skipping Build Applet.app" ; \
+ else \
+ $(RUNSHARED) @ARCH_RUN_32BIT@ $(BUILDPYTHON) $(srcdir)/scripts/BuildApplet.py \
+ --destroot "$(DESTDIR)" \
+ --python=$(prefix)/Resources/Python.app/Contents/MacOS/Python \
+ --output "$(DESTDIR)$(PYTHONAPPSDIR)/Build Applet.app" \
+ $(srcdir)/scripts/BuildApplet.py && \
+ if [ -n "$(LIPO_32BIT_FLAGS)" ] ; then \
+ rm "$(DESTDIR)$(PYTHONAPPSDIR)/Build Applet.app/Contents/MacOS/Python" && \
+ lipo $(LIPO_32BIT_FLAGS) \
+ -output "$(DESTDIR)$(PYTHONAPPSDIR)/Build Applet.app/Contents/MacOS/Python" \
+ $(BUILDPYTHON) ; \
+ fi \
+ fi
MACLIBDEST=$(LIBDEST)/plat-mac
MACTOOLSDEST=$(prefix)/Mac/Tools
diff --git a/Mac/README b/Mac/README
index 555b7ca..0a07b5e 100644
--- a/Mac/README
+++ b/Mac/README
@@ -209,9 +209,11 @@
through PythonLauncher's preferences dialog.
"BuildApplet.app" creates an applet from a Python script. Drop the script on it
-and out comes a full-featured MacOS application. There is much more to this,
-to be supplied later. Some useful (but outdated) info can be found in
-Mac/Demo.
+and out comes a full-featured MacOS application. BuildApplet.app is now
+deprecated and has been removed in Python 3. As of OS X 10.8, Xcode 4 no
+longer supplies the headers for the deprecated QuickDraw APIs used by
+the EasyDialogs module making BuildApplet unusable as an app. It will
+not be built by the Mac/Makefile in this case.
The commandline scripts /usr/local/bin/python and pythonw can be used to run
non-GUI and GUI python scripts from the command line, respectively.
diff --git a/Misc/NEWS b/Misc/NEWS
index 7e901f7..8804533 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -37,6 +37,13 @@
the default for linking if LDSHARED is not also overriden. This restores
Distutils behavior introduced in 2.7.3 and inadvertently dropped in 2.7.4.
+Build
+-----
+
+- Issue #18098: The deprecated OS X Build Applet.app fails to build on
+ OS X 10.8 systems because the Apple-deprecated QuickDraw headers have
+ been removed from Xcode 4. Skip building it in this case.
+
IDLE
----
diff --git a/configure b/configure
index dc0dfd0..644e76c 100755
--- a/configure
+++ b/configure
@@ -2981,6 +2981,7 @@
+ARCH_RUN_32BIT=""
UNIVERSAL_ARCHS="32-bit"
@@ -7996,7 +7997,6 @@
esac
-ARCH_RUN_32BIT=""
case $ac_sys_system/$ac_sys_release in
Darwin/[01567]\..*)
diff --git a/configure.ac b/configure.ac
index 30f5bf4..4196bc0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -145,6 +145,7 @@
AC_SUBST(UNIVERSALSDK)
AC_SUBST(ARCH_RUN_32BIT)
+ARCH_RUN_32BIT=""
UNIVERSAL_ARCHS="32-bit"
AC_SUBST(LIPO_32BIT_FLAGS)
@@ -1801,7 +1802,6 @@
esac
-ARCH_RUN_32BIT=""
AC_SUBST(LIBTOOL_CRUFT)
case $ac_sys_system/$ac_sys_release in
Darwin/@<:@01567@:>@\..*)