From 94f25283c9b6cb43791e23618b9bec0cc961a7cb Mon Sep 17 00:00:00 2001 From: Ronald Oussoren Date: Wed, 5 May 2010 19:11:21 +0000 Subject: Remove traces of MacOS9 support. Fix for issue #7908 --- Demo/pdist/FSProxy.py | 31 +++------------ Lib/distutils/command/install.py | 14 ------- Lib/distutils/file_util.py | 9 ----- Lib/distutils/util.py | 9 ----- Lib/platform.py | 4 -- Lib/profile.py | 9 ----- Lib/pydoc.py | 6 +-- Lib/tarfile.py | 7 ---- Lib/test/regrtest.py | 28 -------------- Lib/test/test_frozen.py | 13 +++---- Lib/test/test_reprlib.py | 3 +- Lib/test/test_select.py | 2 +- Lib/test/test_socket.py | 4 +- Lib/test/test_strptime.py | 5 --- Lib/test/test_tempfile.py | 8 ++-- Lib/test/test_urllib2.py | 5 --- Lib/urllib/request.py | 4 +- Tools/webchecker/wcgui.py | 6 --- Tools/webchecker/websucker.py | 2 - setup.py | 81 +++++++++++++++++----------------------- 20 files changed, 53 insertions(+), 197 deletions(-) diff --git a/Demo/pdist/FSProxy.py b/Demo/pdist/FSProxy.py index 510ac76..47fa8f9 100644 --- a/Demo/pdist/FSProxy.py +++ b/Demo/pdist/FSProxy.py @@ -23,12 +23,7 @@ from stat import * import time import fnmatch -if os.name == 'mac': - import macfs - maxnamelen = 31 -else: - macfs = None - maxnamelen = 255 +maxnamelen = 255 skipnames = (os.curdir, os.pardir) @@ -63,16 +58,10 @@ class FSProxyLocal: return ignore def _hidden(self, name): - if os.name == 'mac': - return name[0] == '(' and name[-1] == ')' - else: - return name[0] == '.' + return name[0] == '.' def _hide(self, name): - if os.name == 'mac': - return '(%s)' % name - else: - return '.%s' % name + return '.%s' % name def visible(self, name): if len(name) > maxnamelen: return 0 @@ -81,18 +70,8 @@ class FSProxyLocal: if self._hidden(name): return 0 head, tail = os.path.split(name) if head or not tail: return 0 - if macfs: - if os.path.exists(name) and not os.path.isdir(name): - try: - fs = macfs.FSSpec(name) - c, t = fs.GetCreatorType() - if t != 'TEXT': return 0 - except macfs.error as msg: - print("***", name, msg) - return 0 - else: - if os.path.islink(name): return 0 - if '\0' in open(name, 'rb').read(512): return 0 + if os.path.islink(name): return 0 + if '\0' in open(name, 'rb').read(512): return 0 for ign in self._ignore: if fnmatch.fnmatch(name, ign): return 0 return 1 diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py index 31d0387..3c28c66 100644 --- a/Lib/distutils/command/install.py +++ b/Lib/distutils/command/install.py @@ -65,20 +65,6 @@ INSTALL_SCHEMES = { 'scripts': '$userbase/Scripts', 'data' : '$userbase', }, - 'mac': { - 'purelib': '$base/Lib/site-packages', - 'platlib': '$base/Lib/site-packages', - 'headers': '$base/Include/$dist_name', - 'scripts': '$base/Scripts', - 'data' : '$base', - }, - 'mac_user': { - 'purelib': '$usersite', - 'platlib': '$usersite', - 'headers': '$userbase/$py_version_short/include/$dist_name', - 'scripts': '$userbase/bin', - 'data' : '$userbase', - }, 'os2': { 'purelib': '$base/Lib/site-packages', 'platlib': '$base/Lib/site-packages', diff --git a/Lib/distutils/file_util.py b/Lib/distutils/file_util.py index 758bde3..3a71bfd 100644 --- a/Lib/distutils/file_util.py +++ b/Lib/distutils/file_util.py @@ -132,15 +132,6 @@ def copy_file(src, dst, preserve_mode=1, preserve_times=1, update=0, if dry_run: return (dst, 1) - # On Mac OS, use the native file copy routine - if os.name == 'mac': - import macostools - try: - macostools.copy(src, dst, 0, preserve_times) - except os.error as exc: - raise DistutilsFileError( - "could not copy '%s' to '%s': %s" % (src, dst, exc.args[-1])) - # If linking (hard or symbolic), use the appropriate system call # (Unix only, of course, but that's the caller's responsibility) elif link == 'hard': diff --git a/Lib/distutils/util.py b/Lib/distutils/util.py index 8fd2ca0..c8bf006 100644 --- a/Lib/distutils/util.py +++ b/Lib/distutils/util.py @@ -91,15 +91,6 @@ def change_root(new_root, pathname): path = path[1:] return os.path.join(new_root, path) - elif os.name == 'mac': - if not os.path.isabs(pathname): - return os.path.join(new_root, pathname) - else: - # Chop off volume name from start of path - elements = pathname.split(":", 1) - pathname = ":" + elements[1] - return os.path.join(new_root, pathname) - else: raise DistutilsPlatformError("nothing known about " "platform '%s'" % os.name) diff --git a/Lib/platform.py b/Lib/platform.py index 1601d59..8d8fede 100755 --- a/Lib/platform.py +++ b/Lib/platform.py @@ -1147,10 +1147,6 @@ def uname(): if not version: version = vendor - elif os.name == 'mac': - release,(version,stage,nonrel),machine = mac_ver() - system = 'MacOS' - # System specific extensions if system == 'OpenVMS': # OpenVMS seems to have release and version mixed up diff --git a/Lib/profile.py b/Lib/profile.py index 8d68d17..0255bba 100755 --- a/Lib/profile.py +++ b/Lib/profile.py @@ -92,11 +92,6 @@ def runctx(statement, globals, locals, filename=None): else: return prof.print_stats() -if os.name == "mac": - import MacOS - def _get_time_mac(timer=MacOS.GetTicks): - return timer() / 60.0 - if hasattr(os, "times"): def _get_time_times(timer=os.times): t = timer() @@ -173,10 +168,6 @@ class Profile: self.timer = resgetrusage self.dispatcher = self.trace_dispatch self.get_time = _get_time_resource - elif os.name == 'mac': - self.timer = MacOS.GetTicks - self.dispatcher = self.trace_dispatch_mac - self.get_time = _get_time_mac elif hasattr(time, 'clock'): self.timer = self.get_time = time.clock self.dispatcher = self.trace_dispatch_i diff --git a/Lib/pydoc.py b/Lib/pydoc.py index 208740f..2722a75 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -2024,7 +2024,7 @@ pydoc by Ka-Ping Yee <ping@lfw.org>''' class DocServer(http.server.HTTPServer): def __init__(self, port, callback): - host = (sys.platform == 'mac') and '127.0.0.1' or 'localhost' + host = 'localhost' self.address = ('', port) self.url = 'http://%s:%d/' % (host, port) self.callback = callback @@ -2141,10 +2141,6 @@ def gui(): except ImportError: # pre-webbrowser.py compatibility if sys.platform == 'win32': os.system('start "%s"' % url) - elif sys.platform == 'mac': - try: import ic - except ImportError: pass - else: ic.launchurl(url) else: rc = os.system('netscape -remote "openURL(%s)" &' % url) if rc: os.system('netscape "%s" &' % url) diff --git a/Lib/tarfile.py b/Lib/tarfile.py index 9ca8494..a888d69 100644 --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -50,13 +50,6 @@ import struct import copy import re -if sys.platform == 'mac': - # This module needs work for MacOS9, especially in the area of pathname - # handling. In many places it is assumed a simple substitution of / by the - # local os.path.sep is good enough to convert pathnames, but this does not - # work with the mac rooted:path:name versus :nonrooted:path:name syntax - raise ImportError("tarfile does not work for platform==mac") - try: import grp, pwd except ImportError: diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index a4ebff4..e92a3f7 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -1209,34 +1209,6 @@ _expectations = { test_kqueue test_ossaudiodev """, - 'mac': - """ - test_atexit - test_bz2 - test_crypt - test_curses - test_dbm - test_fcntl - test_fork1 - test_epoll - test_grp - test_ioctl - test_largefile - test_locale - test_kqueue - test_mmap - test_openpty - test_ossaudiodev - test_poll - test_popen - test_posix - test_pty - test_pwd - test_resource - test_signal - test_sundry - test_tarfile - """, 'unixware7': """ test_epoll diff --git a/Lib/test/test_frozen.py b/Lib/test/test_frozen.py index 28186bb..11a366c 100644 --- a/Lib/test/test_frozen.py +++ b/Lib/test/test_frozen.py @@ -39,13 +39,12 @@ class FrozenTests(unittest.TestCase): else: self.fail("import __phello__.foo should have failed") - if sys.platform != "mac": # On the Mac this import does succeed. - try: - import __phello__.foo - except ImportError: - pass - else: - self.fail("import __phello__.foo should have failed") + try: + import __phello__.foo + except ImportError: + pass + else: + self.fail("import __phello__.foo should have failed") del sys.modules['__hello__'] del sys.modules['__phello__'] diff --git a/Lib/test/test_reprlib.py b/Lib/test/test_reprlib.py index 627482c..0e799f6 100644 --- a/Lib/test/test_reprlib.py +++ b/Lib/test/test_reprlib.py @@ -304,8 +304,7 @@ class ClassWithFailingRepr: def test_main(): run_unittest(ReprTests) - if os.name != 'mac': - run_unittest(LongReprTest) + run_unittest(LongReprTest) if __name__ == "__main__": diff --git a/Lib/test/test_select.py b/Lib/test/test_select.py index 8813c6e..fe92f45 100644 --- a/Lib/test/test_select.py +++ b/Lib/test/test_select.py @@ -4,7 +4,7 @@ import select import os import sys -@unittest.skipIf(sys.platform[:3] in ('win', 'mac', 'os2', 'riscos'), +@unittest.skipIf(sys.platform[:3] in ('win', 'os2', 'riscos'), "can't easily test on this system") class SelectTestCase(unittest.TestCase): diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py index 76d870b..25025dd 100644 --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -1465,9 +1465,7 @@ class TIPCThreadableTest (unittest.TestCase, ThreadableTest): def test_main(): tests = [GeneralModuleTests, BasicTCPTest, TCPCloserTest, TCPTimeoutTest, - TestExceptions, BufferIOTest, BasicTCPTest2] - if sys.platform != 'mac': - tests.extend([ BasicUDPTest, UDPTimeoutTest ]) + TestExceptions, BufferIOTest, BasicTCPTest2, BasicUDPTest, UDPTimeoutTest ] tests.extend([ NonBlockingTCPTests, diff --git a/Lib/test/test_strptime.py b/Lib/test/test_strptime.py index 9f1bb44..77d3789 100644 --- a/Lib/test/test_strptime.py +++ b/Lib/test/test_strptime.py @@ -298,9 +298,6 @@ class StrptimeTests(unittest.TestCase): self.assertEqual(strp_output.tm_isdst, 0) strp_output = _strptime._strptime_time("GMT", "%Z") self.assertEqual(strp_output.tm_isdst, 0) - if sys.platform == "mac": - # Timezones don't really work on MacOS9 - return time_tuple = time.localtime() strf_output = time.strftime("%Z") #UTC does not have a timezone strp_output = _strptime._strptime_time(strf_output, "%Z") @@ -317,8 +314,6 @@ class StrptimeTests(unittest.TestCase): def test_bad_timezone(self): # Explicitly test possibility of bad timezone; # when time.tzname[0] == time.tzname[1] and time.daylight - if sys.platform == "mac": - return #MacOS9 has severely broken timezone support. tz_name = time.tzname[0] if tz_name.upper() in ("UTC", "GMT"): return diff --git a/Lib/test/test_tempfile.py b/Lib/test/test_tempfile.py index 823c3d4..b0976d2 100644 --- a/Lib/test/test_tempfile.py +++ b/Lib/test/test_tempfile.py @@ -20,9 +20,7 @@ has_spawnl = hasattr(os, 'spawnl') # TEST_FILES may need to be tweaked for systems depending on the maximum # number of files that can be opened at one time (see ulimit -n) -if sys.platform == 'mac': - TEST_FILES = 32 -elif sys.platform in ('openbsd3', 'openbsd4'): +if sys.platform in ('openbsd3', 'openbsd4'): TEST_FILES = 48 else: TEST_FILES = 100 @@ -265,7 +263,7 @@ class test__mkstemp_inner(TC): file = self.do_create() mode = stat.S_IMODE(os.stat(file.name).st_mode) expected = 0o600 - if sys.platform in ('win32', 'os2emx', 'mac'): + if sys.platform in ('win32', 'os2emx'): # There's no distinction among 'user', 'group' and 'world'; # replicate the 'user' bits. user = expected >> 6 @@ -488,7 +486,7 @@ class test_mkdtemp(TC): mode = stat.S_IMODE(os.stat(dir).st_mode) mode &= 0o777 # Mask off sticky bits inherited from /tmp expected = 0o700 - if sys.platform in ('win32', 'os2emx', 'mac'): + if sys.platform in ('win32', 'os2emx'): # There's no distinction among 'user', 'group' and 'world'; # replicate the 'user' bits. user = expected >> 6 diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py index 11848e0..1a8ffac 100644 --- a/Lib/test/test_urllib2.py +++ b/Lib/test/test_urllib2.py @@ -22,11 +22,6 @@ class TrivialTests(unittest.TestCase): # XXX Name hacking to get this to work on Windows. fname = os.path.abspath(urllib.request.__file__).replace('\\', '/') - # And more hacking to get it to work on MacOS. This assumes - # urllib.pathname2url works, unfortunately... - if os.name == 'mac': - fname = '/' + fname.replace(':', '/') - if os.name == 'nt': file_url = "file:///%s" % fname else: diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py index ff871f9..3293966 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -1338,9 +1338,7 @@ class CacheFTPHandler(FTPHandler): MAXFTPCACHE = 10 # Trim the ftp cache beyond this size # Helper for non-unix systems -if os.name == 'mac': - from macurl2path import url2pathname, pathname2url -elif os.name == 'nt': +if os.name == 'nt': from nturl2path import url2pathname, pathname2url else: def url2pathname(pathname): diff --git a/Tools/webchecker/wcgui.py b/Tools/webchecker/wcgui.py index 88d8f56..b0c69d3 100755 --- a/Tools/webchecker/wcgui.py +++ b/Tools/webchecker/wcgui.py @@ -64,12 +64,6 @@ from Tkinter import * import tktools import webchecker -# Override some for a weaker platform -if sys.platform == 'mac': - webchecker.DEFROOT = "http://grail.cnri.reston.va.us/" - webchecker.MAXPAGE = 50000 - webchecker.verbose = 4 - def main(): try: opts, args = getopt.getopt(sys.argv[1:], 't:m:qva') diff --git a/Tools/webchecker/websucker.py b/Tools/webchecker/websucker.py index 8076af5..4657b52 100755 --- a/Tools/webchecker/websucker.py +++ b/Tools/webchecker/websucker.py @@ -97,8 +97,6 @@ class Sucker(webchecker.Checker): path = path + "index.html" if os.sep != "/": path = os.sep.join(path.split("/")) - if os.name == "mac": - path = os.sep + path path = os.path.join(host, path) return path diff --git a/setup.py b/setup.py index 42ef2c0..286f6db 100644 --- a/setup.py +++ b/setup.py @@ -150,22 +150,21 @@ class PyBuildExt(build_ext): if ext.name in sys.builtin_module_names: self.extensions.remove(ext) - if platform != 'mac': - # Parse Modules/Setup and Modules/Setup.local to figure out which - # modules are turned on in the file. - remove_modules = [] - for filename in ('Modules/Setup', 'Modules/Setup.local'): - input = text_file.TextFile(filename, join_lines=1) - while 1: - line = input.readline() - if not line: break - line = line.split() - remove_modules.append(line[0]) - input.close() - - for ext in self.extensions[:]: - if ext.name in remove_modules: - self.extensions.remove(ext) + # Parse Modules/Setup and Modules/Setup.local to figure out which + # modules are turned on in the file. + remove_modules = [] + for filename in ('Modules/Setup', 'Modules/Setup.local'): + input = text_file.TextFile(filename, join_lines=1) + while 1: + line = input.readline() + if not line: break + line = line.split() + remove_modules.append(line[0]) + input.close() + + for ext in self.extensions[:]: + if ext.name in remove_modules: + self.extensions.remove(ext) # When you run "make CC=altcc" or something similar, you really want # those environment variables passed into the setup.py phase. Here's @@ -381,7 +380,7 @@ class PyBuildExt(build_ext): # Check for MacOS X, which doesn't need libm.a at all math_libs = ['m'] - if platform in ['darwin', 'mac']: + if platform == 'darwin': math_libs = [] # XXX Omitted modules: gl, pure, dl, SGI-specific modules @@ -441,19 +440,16 @@ class PyBuildExt(build_ext): # fcntl(2) and ioctl(2) exts.append( Extension('fcntl', ['fcntlmodule.c']) ) - if platform not in ['mac']: - # pwd(3) - exts.append( Extension('pwd', ['pwdmodule.c']) ) - # grp(3) - exts.append( Extension('grp', ['grpmodule.c']) ) - # spwd, shadow passwords - if (config_h_vars.get('HAVE_GETSPNAM', False) or - config_h_vars.get('HAVE_GETSPENT', False)): - exts.append( Extension('spwd', ['spwdmodule.c']) ) - else: - missing.append('spwd') + # pwd(3) + exts.append( Extension('pwd', ['pwdmodule.c']) ) + # grp(3) + exts.append( Extension('grp', ['grpmodule.c']) ) + # spwd, shadow passwords + if (config_h_vars.get('HAVE_GETSPNAM', False) or + config_h_vars.get('HAVE_GETSPENT', False)): + exts.append( Extension('spwd', ['spwdmodule.c']) ) else: - missing.extend(['pwd', 'grp', 'spwd']) + missing.append('spwd') # select(2); not on ancient System V exts.append( Extension('select', ['selectmodule.c']) ) @@ -462,17 +458,11 @@ class PyBuildExt(build_ext): exts.append( Extension('parser', ['parsermodule.c']) ) # Memory-mapped files (also works on Win32). - if platform not in ['mac']: - exts.append( Extension('mmap', ['mmapmodule.c']) ) - else: - missing.append('mmap') + exts.append( Extension('mmap', ['mmapmodule.c']) ) # Lance Ellinghaus's syslog module - if platform not in ['mac']: - # syslog daemon interface - exts.append( Extension('syslog', ['syslogmodule.c']) ) - else: - missing.append('syslog') + # syslog daemon interface + exts.append( Extension('syslog', ['syslogmodule.c']) ) # # Here ends the simple stuff. From here on, modules need certain @@ -532,16 +522,13 @@ class PyBuildExt(build_ext): else: missing.append('readline') - if platform not in ['mac']: - # crypt module. + # crypt module. - if self.compiler_obj.find_library_file(lib_dirs, 'crypt'): - libs = ['crypt'] - else: - libs = [] - exts.append( Extension('crypt', ['cryptmodule.c'], libraries=libs) ) + if self.compiler_obj.find_library_file(lib_dirs, 'crypt'): + libs = ['crypt'] else: - missing.append('crypt') + libs = [] + exts.append( Extension('crypt', ['cryptmodule.c'], libraries=libs) ) # CSV files exts.append( Extension('_csv', ['_csv.c']) ) @@ -986,7 +973,7 @@ class PyBuildExt(build_ext): missing.append('_gdbm') # Unix-only modules - if platform not in ['mac', 'win32']: + if platform != 'win32': # Steen Lumholt's termios module exts.append( Extension('termios', ['termios.c']) ) # Jeremy Hylton's rlimit interface -- cgit v0.12