diff --git a/Lib/platform.py b/Lib/platform.py --- a/Lib/platform.py +++ b/Lib/platform.py @@ -634,62 +634,6 @@ RegCloseKey(keyCurVer) return release,version,csd,ptype -def _mac_ver_lookup(selectors,default=None): - - from _gestalt import gestalt - l = [] - append = l.append - for selector in selectors: - try: - append(gestalt(selector)) - except (RuntimeError, OSError): - append(default) - return l - -def _bcd2str(bcd): - - return hex(bcd)[2:] - -def _mac_ver_gestalt(): - """ - Thanks to Mark R. Levinson for mailing documentation links and - code examples for this function. Documentation for the - gestalt() API is available online at: - - http://www.rgaros.nl/gestalt/ - """ - # Check whether the version info module is available - try: - import _gestalt - except ImportError: - return None - # Get the infos - sysv, sysa = _mac_ver_lookup(('sysv','sysa')) - # Decode the infos - if sysv: - major = (sysv & 0xFF00) >> 8 - minor = (sysv & 0x00F0) >> 4 - patch = (sysv & 0x000F) - - if (major, minor) >= (10, 4): - # the 'sysv' gestald cannot return patchlevels - # higher than 9. Apple introduced 3 new - # gestalt codes in 10.4 to deal with this - # issue (needed because patch levels can - # run higher than 9, such as 10.4.11) - major,minor,patch = _mac_ver_lookup(('sys1','sys2','sys3')) - release = '%i.%i.%i' %(major, minor, patch) - else: - release = '%s.%i.%i' % (_bcd2str(major),minor,patch) - - if sysa: - machine = {0x1: '68k', - 0x2: 'PowerPC', - 0xa: 'i386'}.get(sysa,'') - - versioninfo=('', '', '') - return release,versioninfo,machine - def _mac_ver_xml(): fn = '/System/Library/CoreServices/SystemVersion.plist' if not os.path.exists(fn): @@ -705,7 +649,7 @@ versioninfo=('', '', '') machine = os.uname().machine if machine in ('ppc', 'Power Macintosh'): - # for compatibility with the gestalt based code + # Cannonical name machine = 'PowerPC' return release,versioninfo,machine @@ -727,12 +671,6 @@ if info is not None: return info - # If that doesn't work for some reason fall back to reading the - # information using gestalt calls. - info = _mac_ver_gestalt() - if info is not None: - return info - # If that also doesn't work return the default values return release,versioninfo,machine diff --git a/Modules/_gestalt.c b/Modules/_gestalt.c deleted file mode 100644 --- a/Modules/_gestalt.c +++ /dev/null @@ -1,84 +0,0 @@ -/*********************************************************** -Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam, -The Netherlands. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the names of Stichting Mathematisch -Centrum or CWI not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior permission. - -STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO -THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE -FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT -OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -******************************************************************/ - -/* Macintosh Gestalt interface */ - -#include "Python.h" - -#include - -/* Convert a 4-char string object argument to an OSType value */ -static int -convert_to_OSType(PyObject *v, OSType *pr) -{ - uint32_t tmp; - if (!PyUnicode_Check(v) || PyUnicode_GetLength(v) != 4) { - PyErr_SetString(PyExc_TypeError, - "OSType arg must be string of 4 chars"); - return 0; - } - memcpy((char *)&tmp, _PyUnicode_AsString(v), 4); - *pr = (OSType)ntohl(tmp); - return 1; -} - -static PyObject * -gestalt_gestalt(PyObject *self, PyObject *args) -{ - OSErr iErr; - OSType selector; - SInt32 response; - if (!PyArg_ParseTuple(args, "O&", convert_to_OSType, &selector)) - return NULL; - iErr = Gestalt(selector, &response); - if (iErr != 0) { - PyErr_SetString(PyExc_OSError, - "non-zero exit code!"); - return NULL; - } - return PyLong_FromLong(response); -} - -static struct PyMethodDef gestalt_methods[] = { - {"gestalt", gestalt_gestalt, METH_VARARGS}, - {NULL, NULL} /* Sentinel */ -}; - -static struct PyModuleDef gestaltmodule = { - PyModuleDef_HEAD_INIT, - "_gestalt", - NULL, - -1, - gestalt_methods, - NULL, - NULL, - NULL, - NULL -}; - -PyMODINIT_FUNC -PyInit__gestalt(void) -{ - return PyModule_Create(&gestaltmodule); -} diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -1519,10 +1519,6 @@ if host_platform == 'darwin': exts.append( - Extension('_gestalt', ['_gestalt.c'], - extra_link_args=['-framework', 'Carbon']) - ) - exts.append( Extension('_scproxy', ['_scproxy.c'], extra_link_args=[ '-framework', 'SystemConfiguration',