Fix 32-bit builds on macOS Sierra 10.12 broken by removal of deprecated QuickTime/QuickTime.h header file [Python Issue #27806] -- http://bugs.python.org/issue27806 Originally fixed in 2.7 by "sashk" : - https://hg.python.org/cpython/rev/4030300fcb18 Adapted for 2.6. Signed-off-by: Lawrence Velázquez Index: Include/pymactoolbox.h =================================================================== --- Include/pymactoolbox.h.orig +++ Include/pymactoolbox.h @@ -9,9 +9,24 @@ #include -#ifndef __LP64__ +/* +** Issue #27806: Workaround for gcc 4.x which does not have _has_include. +*/ +#ifndef __has_include +#define __has_include(x) 0 +#endif +/* Workaround */ + +#if __has_include() +#include +#define APPLE_SUPPORTS_QUICKTIME (__MAC_OS_X_VERSION_MAX_ALLOWED < 101200) && !__LP64__ +#else +#define APPLE_SUPPORTS_QUICKTIME !__LP64__ +#endif + +#if APPLE_SUPPORTS_QUICKTIME #include -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* ** Helper routines for error codes and such. @@ -21,10 +36,10 @@ extern PyObject *PyMac_OSErrException; PyObject *PyMac_GetOSErrException(void); /* Initialize & return it */ PyObject *PyErr_Mac(PyObject *, int); /* Exception with a mac error */ PyObject *PyMac_Error(OSErr); /* Uses PyMac_GetOSErrException */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern OSErr PyMac_GetFullPathname(FSSpec *, char *, int); /* convert fsspec->path */ -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* ** These conversion routines are defined in mactoolboxglue.c itself. @@ -109,54 +124,54 @@ extern PyObject *CmpInstObj_New(Componen extern int CmpInstObj_Convert(PyObject *, ComponentInstance *); /* Ctl exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *CtlObj_New(ControlHandle); extern int CtlObj_Convert(PyObject *, ControlHandle *); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Dlg exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *DlgObj_New(DialogPtr); extern int DlgObj_Convert(PyObject *, DialogPtr *); extern PyObject *DlgObj_WhichDialog(DialogPtr); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Drag exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *DragObj_New(DragReference); extern int DragObj_Convert(PyObject *, DragReference *); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* List exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *ListObj_New(ListHandle); extern int ListObj_Convert(PyObject *, ListHandle *); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Menu exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *MenuObj_New(MenuHandle); extern int MenuObj_Convert(PyObject *, MenuHandle *); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Qd exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *GrafObj_New(GrafPtr); extern int GrafObj_Convert(PyObject *, GrafPtr *); extern PyObject *BMObj_New(BitMapPtr); extern int BMObj_Convert(PyObject *, BitMapPtr *); extern PyObject *QdRGB_New(RGBColor *); extern int QdRGB_Convert(PyObject *, RGBColor *); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Qdoffs exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *GWorldObj_New(GWorldPtr); extern int GWorldObj_Convert(PyObject *, GWorldPtr *); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Qt exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *TrackObj_New(Track); extern int TrackObj_Convert(PyObject *, Track *); extern PyObject *MovieObj_New(Movie); @@ -169,7 +184,7 @@ extern PyObject *UserDataObj_New(UserDat extern int UserDataObj_Convert(PyObject *, UserData *); extern PyObject *MediaObj_New(Media); extern int MediaObj_Convert(PyObject *, Media *); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Res exports */ extern PyObject *ResObj_New(Handle); @@ -178,17 +193,17 @@ extern PyObject *OptResObj_New(Handle); extern int OptResObj_Convert(PyObject *, Handle *); /* TE exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *TEObj_New(TEHandle); extern int TEObj_Convert(PyObject *, TEHandle *); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Win exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *WinObj_New(WindowPtr); extern int WinObj_Convert(PyObject *, WindowPtr *); extern PyObject *WinObj_WhichWindow(WindowPtr); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* CF exports */ extern PyObject *CFObj_New(CFTypeRef); Index: Mac/Modules/ColorPickermodule.c =================================================================== --- Mac/Modules/ColorPickermodule.c.orig +++ Mac/Modules/ColorPickermodule.c @@ -28,7 +28,7 @@ PERFORMANCE OF THIS SOFTWARE. /* ----------------------------------------------------- */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME static char cp_GetColor__doc__[] = "GetColor(prompt, (r, g, b)) -> (r, g, b), ok" @@ -49,14 +49,14 @@ cp_GetColor(PyObject *self, PyObject *ar return Py_BuildValue("O&h", QdRGB_New, &outColor, ok); } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* List of methods defined in the module */ static struct PyMethodDef cp_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"GetColor", (PyCFunction)cp_GetColor, METH_VARARGS, cp_GetColor__doc__}, -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, (PyCFunction)NULL, 0, NULL} /* sentinel */ }; @@ -87,4 +87,3 @@ void initColorPicker(void) if (PyErr_Occurred()) Py_FatalError("can't initialize module ColorPicker"); } - Index: Mac/Modules/MacOS.c =================================================================== --- Mac/Modules/MacOS.c.orig +++ Mac/Modules/MacOS.c @@ -296,7 +296,7 @@ MacOS_GetCreatorAndType(PyObject *self, FileInfo* finfo; if (!PyArg_ParseTuple(args, "O&", PyMac_GetFSRef, &ref)) { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME /* This function is documented to take an FSSpec as well, * which only works in 32-bit mode. */ @@ -317,9 +317,9 @@ MacOS_GetCreatorAndType(PyObject *self, Py_DECREF(creator); Py_DECREF(type); return res; -#else /* __LP64__ */ +#else /* APPLE_SUPPORTS_QUICKTIME */ return NULL; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } err = FSGetCatalogInfo(&ref, @@ -363,7 +363,7 @@ MacOS_SetCreatorAndType(PyObject *self, if (!PyArg_ParseTuple(args, "O&O&O&", PyMac_GetFSRef, &ref, PyMac_GetOSType, &creator, PyMac_GetOSType, &type)) { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME /* Try to handle FSSpec arguments, for backward compatibility */ FSSpec fss; FInfo info; @@ -382,9 +382,9 @@ MacOS_SetCreatorAndType(PyObject *self, return PyErr_Mac(MacOS_Error, err); Py_INCREF(Py_None); return Py_None; -#else /* __LP64__ */ +#else /* APPLE_SUPPORTS_QUICKTIME */ return NULL; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } err = FSGetCatalogInfo(&ref, Index: Mac/Modules/OSATerminology.c =================================================================== --- Mac/Modules/OSATerminology.c.orig +++ Mac/Modules/OSATerminology.c @@ -11,7 +11,7 @@ #include -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME static PyObject * PyOSA_GetAppTerminology(PyObject* self, PyObject* args) { @@ -69,14 +69,14 @@ PyOSA_GetSysTerminology(PyObject* self, if (err) return PyMac_Error(err); return Py_BuildValue("O&i", AEDesc_New, &theDesc, didLaunch); } -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* * List of methods defined in the module */ static struct PyMethodDef OSATerminology_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"GetAppTerminology", (PyCFunction) PyOSA_GetAppTerminology, METH_VARARGS, @@ -85,7 +85,7 @@ static struct PyMethodDef OSATerminology (PyCFunction) PyOSA_GetSysTerminology, METH_VARARGS, "Get an applications system terminology, as an AEDesc object."}, -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, (PyCFunction) NULL, 0, NULL} }; Index: Mac/Modules/app/_Appmodule.c =================================================================== --- Mac/Modules/app/_Appmodule.c.orig +++ Mac/Modules/app/_Appmodule.c @@ -2,13 +2,11 @@ /* ========================== Module _App =========================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME /* Carbon GUI stuff, not available in 64-bit mode */ - -#include "pymactoolbox.h" - /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ PyErr_SetString(PyExc_NotImplementedError, \ @@ -1806,13 +1804,13 @@ static PyMethodDef App_methods[] = { void init_App(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_App", App_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); App_Error = PyMac_GetOSErrException(); if (App_Error == NULL || @@ -1825,7 +1823,7 @@ void init_App(void) /* Backward-compatible name */ Py_INCREF(&ThemeDrawingState_Type); PyModule_AddObject(m, "ThemeDrawingStateType", (PyObject *)&ThemeDrawingState_Type); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ======================== End module _App ========================= */ Index: Mac/Modules/carbonevt/_CarbonEvtmodule.c =================================================================== --- Mac/Modules/carbonevt/_CarbonEvtmodule.c.orig +++ Mac/Modules/carbonevt/_CarbonEvtmodule.c @@ -2,10 +2,10 @@ /* ======================= Module _CarbonEvt ======================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME -#include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ @@ -2141,27 +2141,27 @@ static PyMethodDef CarbonEvents_methods[ {NULL, NULL, 0} }; -#else /* __LP64__ */ +#else /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef CarbonEvents_methods[] = { {NULL, NULL, 0} }; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ void init_CarbonEvt(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; -#endif /* !__LP64__ */ +#endif /* !APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_CarbonEvt", CarbonEvents_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME myEventHandlerUPP = NewEventHandlerUPP(myEventHandler); d = PyModule_GetDict(m); CarbonEvents_Error = PyMac_GetOSErrException(); @@ -2224,7 +2224,7 @@ void init_CarbonEvt(void) /* Backward-compatible name */ Py_INCREF(&EventHotKeyRef_Type); PyModule_AddObject(m, "EventHotKeyRefType", (PyObject *)&EventHotKeyRef_Type); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ===================== End module _CarbonEvt ====================== */ Index: Mac/Modules/ctl/_Ctlmodule.c =================================================================== --- Mac/Modules/ctl/_Ctlmodule.c.orig +++ Mac/Modules/ctl/_Ctlmodule.c @@ -2,11 +2,11 @@ /* ========================== Module _Ctl =========================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME -#include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ @@ -5766,19 +5766,19 @@ mytrackingproc(ControlHandle control, Po return (ControlPartCode)c_rv; } -#else /* __LP64__ */ +#else /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef Ctl_methods[] = { {NULL, NULL, 0} }; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ void init_Ctl(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; mytracker_upp = NewControlActionUPP(mytracker); @@ -5791,11 +5791,11 @@ void init_Ctl(void) mytrackingproc_upp = NewControlUserPaneTrackingUPP(mytrackingproc); PyMac_INIT_TOOLBOX_OBJECT_NEW(ControlHandle, CtlObj_New); PyMac_INIT_TOOLBOX_OBJECT_CONVERT(ControlHandle, CtlObj_Convert); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_Ctl", Ctl_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); Ctl_Error = PyMac_GetOSErrException(); if (Ctl_Error == NULL || @@ -5808,8 +5808,7 @@ void init_Ctl(void) /* Backward-compatible name */ Py_INCREF(&Control_Type); PyModule_AddObject(m, "ControlType", (PyObject *)&Control_Type); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ======================== End module _Ctl ========================= */ - Index: Mac/Modules/dlg/_Dlgmodule.c =================================================================== --- Mac/Modules/dlg/_Dlgmodule.c.orig +++ Mac/Modules/dlg/_Dlgmodule.c @@ -2,12 +2,10 @@ /* ========================== Module _Dlg =========================== */ #include "Python.h" - -#ifndef __LP64__ - - #include "pymactoolbox.h" +#if APPLE_SUPPORTS_QUICKTIME + /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ PyErr_SetString(PyExc_NotImplementedError, \ @@ -1577,7 +1575,7 @@ static PyMethodDef Dlg_methods[] = { void init_Dlg(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; @@ -1585,11 +1583,11 @@ void init_Dlg(void) PyMac_INIT_TOOLBOX_OBJECT_NEW(DialogPtr, DlgObj_New); PyMac_INIT_TOOLBOX_OBJECT_NEW(DialogPtr, DlgObj_WhichDialog); PyMac_INIT_TOOLBOX_OBJECT_CONVERT(DialogPtr, DlgObj_Convert); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_Dlg", Dlg_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); Dlg_Error = PyMac_GetOSErrException(); if (Dlg_Error == NULL || @@ -1602,7 +1600,7 @@ void init_Dlg(void) /* Backward-compatible name */ Py_INCREF(&Dialog_Type); PyModule_AddObject(m, "DialogType", (PyObject *)&Dialog_Type); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ======================== End module _Dlg ========================= */ Index: Mac/Modules/drag/_Dragmodule.c =================================================================== --- Mac/Modules/drag/_Dragmodule.c.orig +++ Mac/Modules/drag/_Dragmodule.c @@ -2,12 +2,10 @@ /* ========================== Module _Drag ========================== */ #include "Python.h" - -#ifndef __LP64__ - - #include "pymactoolbox.h" +#if APPLE_SUPPORTS_QUICKTIME + /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ PyErr_SetString(PyExc_NotImplementedError, \ @@ -1117,18 +1115,18 @@ static PyMethodDef Drag_methods[] = { void init_Drag(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; PyMac_INIT_TOOLBOX_OBJECT_NEW(DragRef, DragObj_New); PyMac_INIT_TOOLBOX_OBJECT_CONVERT(DragRef, DragObj_Convert); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_Drag", Drag_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); Drag_Error = PyMac_GetOSErrException(); if (Drag_Error == NULL || @@ -1150,7 +1148,7 @@ void init_Drag(void) dragglue_DrawingUPP = NewDragDrawingUPP(dragglue_Drawing); #endif -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } Index: Mac/Modules/help/_Helpmodule.c =================================================================== --- Mac/Modules/help/_Helpmodule.c.orig +++ Mac/Modules/help/_Helpmodule.c @@ -2,12 +2,10 @@ /* ========================== Module _Help ========================== */ #include "Python.h" - -#ifndef __LP64__ - - #include "pymactoolbox.h" +#if APPLE_SUPPORTS_QUICKTIME + /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ PyErr_SetString(PyExc_NotImplementedError, \ @@ -145,10 +143,10 @@ static PyObject *Help_HMHideTag(PyObject return _res; } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef Help_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"HMGetHelpMenu", (PyCFunction)Help_HMGetHelpMenu, 1, PyDoc_STR("() -> (MenuRef outHelpMenu, MenuItemIndex outFirstCustomItemIndex)")}, {"HMAreHelpTagsDisplayed", (PyCFunction)Help_HMAreHelpTagsDisplayed, 1, @@ -165,31 +163,30 @@ static PyMethodDef Help_methods[] = { PyDoc_STR("(DialogPtr inDialog, SInt16 inHdlgRsrcID, SInt16 inItemStart) -> None")}, {"HMHideTag", (PyCFunction)Help_HMHideTag, 1, PyDoc_STR("() -> None")}, -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, NULL, 0} }; - void init_Help(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_Help", Help_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); Help_Error = PyMac_GetOSErrException(); if (Help_Error == NULL || PyDict_SetItemString(d, "Error", Help_Error) != 0) return; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ======================== End module _Help ======================== */ Index: Mac/Modules/ibcarbon/_IBCarbon.c =================================================================== --- Mac/Modules/ibcarbon/_IBCarbon.c.orig +++ Mac/Modules/ibcarbon/_IBCarbon.c @@ -2,12 +2,12 @@ /* ======================== Module _IBCarbon ======================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME #include -#include "pymactoolbox.h" #ifdef USE_TOOLBOX_OBJECT_GLUE extern int _CFStringRefObj_Convert(PyObject *, CFStringRef *); @@ -225,13 +225,13 @@ static PyObject *IBCarbon_CreateNibRefer IBNibRefObj_New, outNibRef); return _res; } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef IBCarbon_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"CreateNibReference", (PyCFunction)IBCarbon_CreateNibReference, 1, PyDoc_STR("(CFStringRef inNibName) -> (IBNibRef outNibRef)")}, -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, NULL, 0} }; @@ -241,16 +241,16 @@ static PyMethodDef IBCarbon_methods[] = void init_IBCarbon(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_IBCarbon", IBCarbon_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); IBCarbon_Error = PyMac_GetOSErrException(); if (IBCarbon_Error == NULL || @@ -263,7 +263,7 @@ void init_IBCarbon(void) /* Backward-compatible name */ Py_INCREF(&IBNibRef_Type); PyModule_AddObject(m, "IBNibRefType", (PyObject *)&IBNibRef_Type); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ====================== End module _IBCarbon ====================== */ Index: Mac/Modules/icn/_Icnmodule.c =================================================================== --- Mac/Modules/icn/_Icnmodule.c.orig +++ Mac/Modules/icn/_Icnmodule.c @@ -2,11 +2,11 @@ /* ========================== Module _Icn =========================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME -#include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ @@ -1448,10 +1448,10 @@ static PyObject *Icn_WriteIconFile(PyObj _res = Py_None; return _res; } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef Icn_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"GetCIcon", (PyCFunction)Icn_GetCIcon, 1, PyDoc_STR("(SInt16 iconID) -> (CIconHandle _rv)")}, {"PlotCIcon", (PyCFunction)Icn_PlotCIcon, 1, @@ -1576,7 +1576,7 @@ static PyMethodDef Icn_methods[] = { PyDoc_STR("(FSRef ref) -> (IconFamilyHandle iconFamily)")}, {"WriteIconFile", (PyCFunction)Icn_WriteIconFile, 1, PyDoc_STR("(IconFamilyHandle iconFamily, FSSpec iconFile) -> None")}, -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, NULL, 0} }; @@ -1586,21 +1586,21 @@ static PyMethodDef Icn_methods[] = { void init_Icn(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_Icn", Icn_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); Icn_Error = PyMac_GetOSErrException(); if (Icn_Error == NULL || PyDict_SetItemString(d, "Error", Icn_Error) != 0) return; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ======================== End module _Icn ========================= */ Index: Mac/Modules/list/_Listmodule.c =================================================================== --- Mac/Modules/list/_Listmodule.c.orig +++ Mac/Modules/list/_Listmodule.c @@ -2,11 +2,10 @@ /* ========================== Module _List ========================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ - +#if APPLE_SUPPORTS_QUICKTIME -#include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ @@ -1033,10 +1032,10 @@ static PyObject *List_as_List(PyObject * return _res; } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef List_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"CreateCustomList", (PyCFunction)List_CreateCustomList, 1, PyDoc_STR("(Rect rView, Rect dataBounds, Point cellSize, ListDefSpec theSpec, WindowPtr theWindow, Boolean drawIt, Boolean hasGrow, Boolean scrollHoriz, Boolean scrollVert) -> (ListHandle outList)")}, {"LNew", (PyCFunction)List_LNew, 1, @@ -1059,11 +1058,11 @@ static PyMethodDef List_methods[] = { PyDoc_STR("(ListHandle list, OptionBits selectionFlags) -> None")}, {"as_List", (PyCFunction)List_as_List, 1, PyDoc_STR("(Resource)->List.\nReturns List object (which is not auto-freed!)")}, -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, NULL, 0} }; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME static void myListDefFunction(SInt16 message, @@ -1101,13 +1100,13 @@ static void myListDefFunction(SInt16 mes Py_DECREF(rv); } } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ void init_List(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; @@ -1116,11 +1115,11 @@ void init_List(void) PyMac_INIT_TOOLBOX_OBJECT_NEW(ListHandle, ListObj_New); PyMac_INIT_TOOLBOX_OBJECT_CONVERT(ListHandle, ListObj_Convert); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_List", List_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); List_Error = PyMac_GetOSErrException(); if (List_Error == NULL || @@ -1133,7 +1132,7 @@ void init_List(void) /* Backward-compatible name */ Py_INCREF(&List_Type); PyModule_AddObject(m, "ListType", (PyObject *)&List_Type); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ======================== End module _List ======================== */ Index: Mac/Modules/mlte/_Mltemodule.c =================================================================== --- Mac/Modules/mlte/_Mltemodule.c.orig +++ Mac/Modules/mlte/_Mltemodule.c @@ -2,11 +2,10 @@ /* ========================== Module _Mlte ========================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ - +#if APPLE_SUPPORTS_QUICKTIME -#include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ @@ -1623,10 +1622,10 @@ static PyObject *Mlte_TXNInitTextension( } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef Mlte_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"TXNNewObject", (PyCFunction)Mlte_TXNNewObject, 1, PyDoc_STR("(FSSpec * iFileSpec, WindowPtr iWindow, Rect iFrame, TXNFrameOptions iFrameOptions, TXNFrameType iFrameType, TXNFileType iFileType, TXNPermanentTextEncodingType iPermanentEncoding) -> (TXNObject oTXNObject, TXNFrameID oTXNFrameID)")}, {"TXNTerminateTextension", (PyCFunction)Mlte_TXNTerminateTextension, 1, @@ -1643,7 +1642,7 @@ static PyMethodDef Mlte_methods[] = { PyDoc_STR("() -> (TXNVersionValue _rv, TXNFeatureBits oFeatureFlags)")}, {"TXNInitTextension", (PyCFunction)Mlte_TXNInitTextension, 1, PyDoc_STR("(TXNInitOptions) -> None")}, -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, NULL, 0} }; @@ -1653,17 +1652,17 @@ static PyMethodDef Mlte_methods[] = { void init_Mlte(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; // PyMac_INIT_TOOLBOX_OBJECT_NEW(xxxx); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_Mlte", Mlte_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); Mlte_Error = PyMac_GetOSErrException(); if (Mlte_Error == NULL || @@ -1683,7 +1682,7 @@ void init_Mlte(void) /* Backward-compatible name */ Py_INCREF(&TXNFontMenuObject_Type); PyModule_AddObject(m, "TXNFontMenuObjectType", (PyObject *)&TXNFontMenuObject_Type); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ======================== End module _Mlte ======================== */ Index: Mac/Modules/qt/_Qtmodule.c =================================================================== --- Mac/Modules/qt/_Qtmodule.c.orig +++ Mac/Modules/qt/_Qtmodule.c @@ -2,11 +2,11 @@ /* =========================== Module _Qt =========================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME -#include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ @@ -26295,10 +26295,10 @@ static PyObject *Qt_MoviesTask(PyObject _res = Py_None; return _res; } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef Qt_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"EnterMovies", (PyCFunction)Qt_EnterMovies, 1, PyDoc_STR("() -> None")}, {"ExitMovies", (PyCFunction)Qt_ExitMovies, 1, @@ -27991,7 +27991,7 @@ static PyMethodDef Qt_methods[] = { PyDoc_STR("(WindowPtr wp, Point startPt, Rect boundsRect) -> None")}, {"MoviesTask", (PyCFunction)Qt_MoviesTask, 1, PyDoc_STR("(long maxMilliSecToUse) -> None")}, -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, NULL, 0} }; @@ -28001,7 +28001,7 @@ static PyMethodDef Qt_methods[] = { void init_Qt(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; @@ -28018,11 +28018,11 @@ void init_Qt(void) PyMac_INIT_TOOLBOX_OBJECT_CONVERT(UserData, UserDataObj_Convert); PyMac_INIT_TOOLBOX_OBJECT_NEW(Media, MediaObj_New); PyMac_INIT_TOOLBOX_OBJECT_CONVERT(Media, MediaObj_Convert); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_Qt", Qt_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); Qt_Error = PyMac_GetOSErrException(); if (Qt_Error == NULL || @@ -28084,7 +28084,7 @@ void init_Qt(void) /* Backward-compatible name */ Py_INCREF(&SGOutput_Type); PyModule_AddObject(m, "SGOutputType", (PyObject *)&SGOutput_Type); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ========================= End module _Qt ========================= */ Index: Mac/Modules/te/_TEmodule.c =================================================================== --- Mac/Modules/te/_TEmodule.c.orig +++ Mac/Modules/te/_TEmodule.c @@ -2,11 +2,11 @@ /* =========================== Module _TE =========================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME -#include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ @@ -1268,10 +1268,10 @@ static PyObject *TE_as_TE(PyObject *_sel TEObj_New, _rv); return _res; } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef TE_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"TEScrapHandle", (PyCFunction)TE_TEScrapHandle, 1, PyDoc_STR("() -> (Handle _rv)")}, {"TEGetScrapLength", (PyCFunction)TE_TEGetScrapLength, 1, @@ -1298,7 +1298,7 @@ static PyMethodDef TE_methods[] = { PyDoc_STR("(UInt8 value) -> None")}, {"as_TE", (PyCFunction)TE_as_TE, 1, PyDoc_STR("(Handle h) -> (TEHandle _rv)")}, -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, NULL, 0} }; @@ -1308,7 +1308,7 @@ static PyMethodDef TE_methods[] = { void init_TE(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; @@ -1316,10 +1316,10 @@ void init_TE(void) PyMac_INIT_TOOLBOX_OBJECT_NEW(TEHandle, TEObj_New); PyMac_INIT_TOOLBOX_OBJECT_CONVERT(TEHandle, TEObj_Convert); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_TE", TE_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); TE_Error = PyMac_GetOSErrException(); if (TE_Error == NULL || @@ -1332,7 +1332,7 @@ void init_TE(void) /* Backward-compatible name */ Py_INCREF(&TE_Type); PyModule_AddObject(m, "TEType", (PyObject *)&TE_Type); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ========================= End module _TE ========================= */ Index: Mac/Modules/win/_Winmodule.c =================================================================== --- Mac/Modules/win/_Winmodule.c.orig +++ Mac/Modules/win/_Winmodule.c @@ -2,10 +2,10 @@ /* ========================== Module _Win =========================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME -#include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ @@ -3147,10 +3147,10 @@ static PyObject *Win_FindWindow(PyObject WinObj_WhichWindow, theWindow); return _res; } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef Win_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"GetNewCWindow", (PyCFunction)Win_GetNewCWindow, 1, PyDoc_STR("(short windowID, WindowPtr behind) -> (WindowPtr _rv)")}, {"NewWindow", (PyCFunction)Win_NewWindow, 1, @@ -3202,12 +3202,12 @@ static PyMethodDef Win_methods[] = { {"FindWindow", (PyCFunction)Win_FindWindow, 1, PyDoc_STR("(Point thePoint) -> (short _rv, WindowPtr theWindow)")}, {NULL, NULL, 0} -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ }; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME /* Return the object corresponding to the window, or NULL */ PyObject * @@ -3230,22 +3230,22 @@ WinObj_WhichWindow(WindowPtr w) return it; } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ void init_Win(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; PyMac_INIT_TOOLBOX_OBJECT_NEW(WindowPtr, WinObj_New); PyMac_INIT_TOOLBOX_OBJECT_NEW(WindowPtr, WinObj_WhichWindow); PyMac_INIT_TOOLBOX_OBJECT_CONVERT(WindowPtr, WinObj_Convert); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_Win", Win_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); Win_Error = PyMac_GetOSErrException(); if (Win_Error == NULL || @@ -3258,7 +3258,7 @@ void init_Win(void) /* Backward-compatible name */ Py_INCREF(&Window_Type); PyModule_AddObject(m, "WindowType", (PyObject *)&Window_Type); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ======================== End module _Win ========================= */ Index: Misc/NEWS =================================================================== --- Misc/NEWS.orig +++ Misc/NEWS @@ -1788,6 +1788,9 @@ Library - Issue #1149804: macostools.mkdirs now even works when another process creates one of the needed subdirectories. +- Issue #27806: Fix 32-bit builds on macOS Sierra 10.12 broken by removal of + deprecated QuickTime/QuickTime.h header file. Patch by sashk. + Tools/Demos ----------- Index: Python/mactoolboxglue.c =================================================================== --- Python/mactoolboxglue.c.orig +++ Python/mactoolboxglue.c @@ -106,7 +106,7 @@ PyMac_Error(OSErr err) } -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME OSErr PyMac_GetFullPathname(FSSpec *fss, char *path, int len) { @@ -154,7 +154,7 @@ PyMac_GetFullPathname(FSSpec *fss, char Py_XDECREF(fs); return err; } -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Convert a 4-char string object argument to an OSType value */ int @@ -419,7 +419,7 @@ GLUE_CONVERT(RGBColor, QdRGB_Convert, "C GLUE_NEW(GWorldPtr, GWorldObj_New, "Carbon.Qdoffs") GLUE_CONVERT(GWorldPtr, GWorldObj_Convert, "Carbon.Qdoffs") -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME GLUE_NEW(Track, TrackObj_New, "Carbon.Qt") GLUE_CONVERT(Track, TrackObj_Convert, "Carbon.Qt") GLUE_NEW(Movie, MovieObj_New, "Carbon.Qt") @@ -432,7 +432,7 @@ GLUE_NEW(UserData, UserDataObj_New, "Car GLUE_CONVERT(UserData, UserDataObj_Convert, "Carbon.Qt") GLUE_NEW(Media, MediaObj_New, "Carbon.Qt") GLUE_CONVERT(Media, MediaObj_Convert, "Carbon.Qt") -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ GLUE_NEW(Handle, ResObj_New, "Carbon.Res") GLUE_CONVERT(Handle, ResObj_Convert, "Carbon.Res")