summaryrefslogtreecommitdiffstats
path: root/Lib/platform.py
diff options
context:
space:
mode:
authorRonald Oussoren <ronaldoussoren@mac.com>2013-07-15 16:32:09 (GMT)
committerRonald Oussoren <ronaldoussoren@mac.com>2013-07-15 16:32:09 (GMT)
commit0fedb37c47971b75e644b05e5a467dad2a77620b (patch)
treeb2388d2ce0163e9c28aedcf2830720aac2a5d948 /Lib/platform.py
parent7f93b36e73b9006772359c02255a468fe7df3fcd (diff)
downloadcpython-0fedb37c47971b75e644b05e5a467dad2a77620b.zip
cpython-0fedb37c47971b75e644b05e5a467dad2a77620b.tar.gz
cpython-0fedb37c47971b75e644b05e5a467dad2a77620b.tar.bz2
Issue #18393: Remove use of deprecated API on OSX
The "Gestalt" function on OSX is deprecated (starting with OSX 10.8), remove its usage from the stdlib. The patch removes a number of private functions and a private module, but does not change the public API. The removed code was effectively dead, the platform module has used other code to fetch the OSX version for years and could only use on the Gestalt-based code as a fallback. That fallback can only trigger on broken OSX installs (that is, someone has removed parts of the system install)
Diffstat (limited to 'Lib/platform.py')
-rwxr-xr-xLib/platform.py64
1 files changed, 1 insertions, 63 deletions
diff --git a/Lib/platform.py b/Lib/platform.py
index c54f768..81e3147 100755
--- a/Lib/platform.py
+++ b/Lib/platform.py
@@ -634,62 +634,6 @@ def win32_ver(release='',version='',csd='',ptype=''):
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 @@ def _mac_ver_xml():
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 @@ def mac_ver(release='',versioninfo=('','',''),machine=''):
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