Fix Mac build, patch #1091 by Humberto Diogenes.
diff --git a/Lib/plat-mac/Carbon/ControlAccessor.py b/Lib/plat-mac/Carbon/ControlAccessor.py
index 7833b16..fcf44af 100644
--- a/Lib/plat-mac/Carbon/ControlAccessor.py
+++ b/Lib/plat-mac/Carbon/ControlAccessor.py
@@ -1,6 +1,6 @@
 # Accessor functions for control properties
 
-from Controls import *
+from Carbon.Controls import *
 import struct
 
 # These needn't go through this module, but are here for completeness
diff --git a/Lib/plat-mac/buildtools.py b/Lib/plat-mac/buildtools.py
index 2422612..1545014 100644
--- a/Lib/plat-mac/buildtools.py
+++ b/Lib/plat-mac/buildtools.py
@@ -17,7 +17,8 @@
 warnings.warn("the buildtools module is deprecated", DeprecationWarning, 2)
 
 
-BuildError = "BuildError"
+class BuildError(Exception):
+    pass
 
 # .pyc file (and 'PYC ' resource magic number)
 MAGIC = imp.get_magic()
diff --git a/Lib/plat-mac/bundlebuilder.py b/Lib/plat-mac/bundlebuilder.py
index 4fee311..bb40653 100755
--- a/Lib/plat-mac/bundlebuilder.py
+++ b/Lib/plat-mac/bundlebuilder.py
@@ -180,7 +180,7 @@
         assert len(self.type) == len(self.creator) == 4, \
                 "type and creator must be 4-byte strings."
         pkginfo = pathjoin(contents, "PkgInfo")
-        f = open(pkginfo, "wb")
+        f = open(pkginfo, "w")
         f.write(self.type + self.creator)
         f.close()
         #
diff --git a/Lib/plat-mac/macresource.py b/Lib/plat-mac/macresource.py
index 14581a3..4592ff5 100644
--- a/Lib/plat-mac/macresource.py
+++ b/Lib/plat-mac/macresource.py
@@ -76,15 +76,15 @@
     AppleSingle file"""
     try:
         refno = Res.FSpOpenResFile(pathname, 1)
-    except Res.Error as arg:
-        if arg[0] in (-37, -39):
+    except Res.Error as error:
+        if error.args[0] in (-37, -39):
             # No resource fork. We may be on OSX, and this may be either
             # a data-fork based resource file or a AppleSingle file
             # from the CVS repository.
             try:
                 refno = Res.FSOpenResourceFile(pathname, '', 1)
-            except Res.Error as arg:
-                if arg[0] != -199:
+            except Res.Error as error:
+                if error.args[0] != -199:
                     # -199 is "bad resource map"
                     raise
             else:
@@ -103,15 +103,15 @@
     try:
         refno = Res.FSpOpenResFile(pathname, 1)
         Res.CloseResFile(refno)
-    except Res.Error as arg:
-        if arg[0] in (-37, -39):
+    except Res.Error as error:
+        if error.args[0] in (-37, -39):
             # No resource fork. We may be on OSX, and this may be either
             # a data-fork based resource file or a AppleSingle file
             # from the CVS repository.
             try:
                 refno = Res.FSOpenResourceFile(pathname, '', 1)
-            except Res.Error as arg:
-                if arg[0] != -199:
+            except Res.Error as error:
+                if error.args[0] != -199:
                     # -199 is "bad resource map"
                     raise
             else:
diff --git a/Mac/IDLE/Makefile.in b/Mac/IDLE/Makefile.in
index 2f63892..da6922e 100644
--- a/Mac/IDLE/Makefile.in
+++ b/Mac/IDLE/Makefile.in
@@ -55,5 +55,5 @@
 
 
 Info.plist: $(srcdir)/Info.plist.in
-	sed 's/%VERSION%/'"`$(RUNSHARED) $(BUILDPYTHON) -c 'import platform; print platform.python_version()'`"'/g' < $(srcdir)/Info.plist.in > Info.plist
+	sed 's/%VERSION%/'"`$(RUNSHARED) $(BUILDPYTHON) -c 'import platform; print(platform.python_version())'`"'/g' < $(srcdir)/Info.plist.in > Info.plist
 
diff --git a/Mac/PythonLauncher/Makefile.in b/Mac/PythonLauncher/Makefile.in
index b4b126c..f27e21e 100644
--- a/Mac/PythonLauncher/Makefile.in
+++ b/Mac/PythonLauncher/Makefile.in
@@ -78,4 +78,4 @@
 	$(CC) $(LDFLAGS) -o "Python Launcher" $(OBJECTS) -framework AppKit -framework Carbon
 
 Info.plist: $(srcdir)/Info.plist.in
-	sed 's/%VERSION%/'"`$(RUNSHARED) $(BUILDPYTHON) -c 'import platform; print platform.python_version()'`"'/g' < $(srcdir)/Info.plist.in > Info.plist
+	sed 's/%VERSION%/'"`$(RUNSHARED) $(BUILDPYTHON) -c 'import platform; print(platform.python_version())'`"'/g' < $(srcdir)/Info.plist.in > Info.plist
diff --git a/Mac/Tools/fixapplepython23.py b/Mac/Tools/fixapplepython23.py
index 01a09b5..b0916e8 100644
--- a/Mac/Tools/fixapplepython23.py
+++ b/Mac/Tools/fixapplepython23.py
@@ -80,11 +80,11 @@
     """Create a wrapper script for a compiler"""
     dirname = os.path.split(filename)[0]
     if not os.access(dirname, os.X_OK):
-        os.mkdir(dirname, 0755)
+        os.mkdir(dirname, 0o755)
     fp = open(filename, 'w')
     fp.write(SCRIPT % compiler)
     fp.close()
-    os.chmod(filename, 0755)
+    os.chmod(filename, 0o755)
     print('fixapplepython23: Created', filename)
 
 def main():
diff --git a/Mac/scripts/cachersrc.py b/Mac/scripts/cachersrc.py
index e2eed8b..e0e8415 100644
--- a/Mac/scripts/cachersrc.py
+++ b/Mac/scripts/cachersrc.py
@@ -12,7 +12,8 @@
 class NoArgsError(Exception):
     pass
 
-def handler((verbose, force), dirname, fnames):
+def handler(arg1, dirname, fnames):
+    verbose, force = arg1
     for fn in fnames:
         if fn[-5:] == '.rsrc' and fn[-13:] != '.rsrc.df.rsrc':
             if force: