def __init__(self, arg, options):
        super(PythonInstallerMacOSX, self).__init__(arg, options)

        # check for version
        version = Version(self.pkg.version)
        if version < '2.6' and (version != '2.4.6' and version < '2.5.5'):
            logger.error("`%s` is not supported on MacOSX Snow Leopard" % self.pkg.name)
            raise NotSupportedVersionException
        # set configure options
        target = get_macosx_deployment_target()
        if target:
            self.configure_options.append('MACOSX_DEPLOYMENT_TARGET=%s' % target)

        # set build options
        if options.framework and options.static:
            logger.error("Can't specify both framework and static.")
            raise Exception
        if options.framework:
            self.configure_options.append('--enable-framework=%s' % os.path.join(self.install_dir, 'Frameworks'))
        elif not options.static:
            self.configure_options.append('--enable-shared')
        if options.universal:
            self.configure_options.append('--enable-universalsdk=/')
            self.configure_options.append('--with-universal-archs=intel')

        # note: skip `make test` to avoid hanging test_threading.
        if is_python25(version) or is_python24(version):
            self.options.no_test = True
Beispiel #2
0
 def patch(self):
     version = Version(self.pkg.version)
     # for ubuntu 11.04(Natty)
     if is_python24(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "python24")
         self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python25(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "python25")
         self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python26(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "python26")
         self._add_patches_to_list(patch_dir, ['patch-_ssl.c-for-ubuntu-oneiric-and-later.diff'])
         if version < '2.6.6':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "python26")
             self._add_patches_to_list(patch_dir, ['patch-setup.py-for-2.6.5-and-earlier.diff'])
         else:
             patch_dir = os.path.join(PATH_PATCHES_ALL, "common")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python27(version):
         if version < '2.7.2':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "common")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python30(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "python30")
         self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python31(version):
         if version < '3.1.4':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "common")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python32(version):
         if version == '3.2':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "python32")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     self._do_patch()
 def patch(self):
     version = Version(self.pkg.version)
     # for ubuntu 11.04(Natty)
     if is_python24(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "python24")
         self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python25(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "python25")
         self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python26(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "common")
         self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python27(version):
         if version < '2.7.2':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "common")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python30(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "python30")
         self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python31(version):
         if version < '3.1.4':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "common")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python32(version):
         if version == '3.2':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "python32")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     self._do_patch()
Beispiel #4
0
 def patch(self):
     version = self.pkg.version
     try:
         s = Subprocess(log=self.logfile, cwd=self.build_dir)
         patches = []
         if is_macosx_snowleopard():
             if is_python24(version):
                 patch_dir = os.path.join(PATH_PATCHES_MACOSX_PYTHON24,'files')
                 patches = ['patch-configure', 'patch-Makefile.pre.in',
                            'patch-Lib-cgi.py', 'patch-Lib-site.py',
                            'patch-setup.py', 'patch-Include-pyport.h',
                            'patch-Mac-OSX-Makefile.in', 'patch-Mac-OSX-IDLE-Makefile.in',
                            'patch-Mac-OSX-PythonLauncher-Makefile.in', 'patch-configure-badcflags.diff',
                            'patch-configure-arch_only.diff', 'patch-macosmodule.diff',
                            'patch-mactoolboxglue.diff', 'patch-pymactoolbox.diff']
             elif is_python25(version):
                 patch_dir = os.path.join(PATH_PATCHES_MACOSX_PYTHON25,'files')
                 patches = ['patch-Makefile.pre.in.diff', 'patch-Lib-cgi.py.diff',
                            'patch-Lib-distutils-dist.py.diff', 'patch-setup.py.diff',
                            'patch-configure-badcflags.diff', 'patch-configure-arch_only.diff',
                            'patch-64bit.diff', 'patch-pyconfig.h.in.diff',
                            'patch-Modules-posixmodule.c.diff']
         if patches:
             logger.info("Patching %s" % self.pkg.name)
             for patch in patches:
                 s.check_call("patch -p0 < %s" % os.path.join(patch_dir, patch))
     except:
         logger.error("Failed to patch `%s`" % self.build_dir)
         sys.exit(1)
Beispiel #5
0
 def patch(self):
     version = Version(self.pkg.version)
     # for ubuntu 11.04(Natty)
     if is_python24(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "python24")
         self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python25(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "python25")
         self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python26(version):
         if version < '2.6.6':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "python26")
             self._add_patches_to_list(
                 patch_dir, ['patch-setup.py-for-2.6.5-and-earlier.diff'])
         else:
             patch_dir = os.path.join(PATH_PATCHES_ALL, "common")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python27(version):
         if version < '2.7.2':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "common")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python30(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "python30")
         self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python31(version):
         if version < '3.1.4':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "common")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python32(version):
         if version == '3.2':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "python32")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     self._do_patch()
Beispiel #6
0
    def __init__(self, arg, options):
        super(PythonInstallerMacOSX, self).__init__(arg, options)

        # check for version
        version = Version(self.pkg.version)
        if version < '2.6' and (version != '2.4.6' and version < '2.5.5'):
            logger.error("`%s` is not supported on MacOSX Snow Leopard" %
                         self.pkg.name)
            raise NotSupportedVersionException
        # set configure options
        target = get_macosx_deployment_target()
        if target:
            self.configure_options.append('MACOSX_DEPLOYMENT_TARGET=%s' %
                                          target)

        # set build options
        if options.framework and options.static:
            logger.error("Can't specify both framework and static.")
            raise Exception
        if options.framework:
            self.configure_options.append(
                '--enable-framework=%s' %
                os.path.join(self.install_dir, 'Frameworks'))
        elif not options.static:
            self.configure_options.append('--enable-shared')
        if options.universal:
            self.configure_options.append('--enable-universalsdk=/')
            self.configure_options.append('--with-universal-archs=intel')

        # note: skip `make test` to avoid hanging test_threading.
        if is_python25(version) or is_python24(version):
            self.options.test = False
Beispiel #7
0
 def patch(self):
     version = self.pkg.version
     try:
         s = Subprocess(log=self.logfile, cwd=self.build_dir)
         patches = []
         eds = {}
         if is_python24(version):
             patch_dir = PATH_PATCHES_MACOSX_PYTHON24
             patches = ['patch-configure', 'patch-Makefile.pre.in',
                        'patch-Lib-cgi.py.diff', 'patch-Lib-site.py.diff',
                        'patch-setup.py.diff', 'patch-Include-pyport.h',
                        'patch-Mac-OSX-Makefile.in', 'patch-Mac-OSX-IDLE-Makefile.in',
                        'patch-Mac-OSX-PythonLauncher-Makefile.in', 'patch-configure-badcflags.diff',
                        'patch-configure-arch_only.diff', 'patch-macosmodule.diff',
                        'patch-mactoolboxglue.diff', 'patch-pymactoolbox.diff',
                        'patch-gestaltmodule.c.diff']
         elif is_python25(version):
             patch_dir = PATH_PATCHES_MACOSX_PYTHON25
             patches = ['patch-Makefile.pre.in.diff', 
                        'patch-Lib-cgi.py.diff',
                        'patch-Lib-distutils-dist.py.diff', 
                        'patch-setup.py.diff',
                        'patch-configure-badcflags.diff', 
                        'patch-configure-arch_only.diff',
                        'patch-64bit.diff', 
                        'patch-pyconfig.h.in.diff',
                        'patch-gestaltmodule.c.diff']
             eds = {'_localemodule.c.ed': 'Modules/_localemodule.c', 
                    'locale.py.ed': 'Lib/locale.py'}
         elif is_python26(version):
             patch_dir = PATH_PATCHES_MACOSX_PYTHON26
             patches = ['patch-Lib-cgi.py.diff', 
                        'patch-Lib-distutils-dist.py.diff',
                        'patch-Mac-IDLE-Makefile.in.diff',
                        'patch-Mac-Makefile.in.diff',
                        'patch-Mac-PythonLauncher-Makefile.in.diff',
                        'patch-Mac-Tools-Doc-setup.py.diff',
                        'patch-setup.py-db46.diff',
                        'patch-Lib-ctypes-macholib-dyld.py.diff',
                        'patch-setup_no_tkinter.py.diff']
             eds = {'_localemodule.c.ed': 'Modules/_localemodule.c', 
                    'locale.py.ed': 'Lib/locale.py'}
             
         if patches or eds:
             logger.info("Patching %s" % self.pkg.name)
             for patch in patches:
                 s.check_call("patch -p0 < %s" % os.path.join(patch_dir, patch))
             for (ed, source) in eds.items():
                 ed = os.path.join(patch_dir, ed)
                 s.check_call('ed - %s < %s' % (source, ed))
     except:
         logger.error("Failed to patch `%s`" % self.build_dir)
         sys.exit(1)
Beispiel #8
0
    def patch(self):
        # note: want an interface to the source patching functionality. like a patchperl.
        version = Version(self.pkg.version)
        if is_python24(version):
            patch_dir = PATH_PATCHES_MACOSX_PYTHON24
            self._add_patches_to_list(patch_dir, [
                'patch-configure', 'patch-Makefile.pre.in',
                'patch-Lib-cgi.py.diff', 'patch-Lib-site.py.diff',
                'patch-setup.py.diff', 'patch-Include-pyport.h',
                'patch-Mac-OSX-Makefile.in', 'patch-Mac-OSX-IDLE-Makefile.in',
                'patch-Mac-OSX-PythonLauncher-Makefile.in',
                'patch-configure-badcflags.diff',
                'patch-configure-arch_only.diff', 'patch-macosmodule.diff',
                'patch-mactoolboxglue.diff', 'patch-pymactoolbox.diff',
                'patch-gestaltmodule.c.diff'
            ])
        elif is_python25(version):
            patch_dir = PATH_PATCHES_MACOSX_PYTHON25
            self._add_patches_to_list(patch_dir, [
                'patch-Makefile.pre.in.diff', 'patch-Lib-cgi.py.diff',
                'patch-Lib-distutils-dist.py.diff', 'patch-setup.py.diff',
                'patch-configure-badcflags.diff',
                'patch-configure-arch_only.diff',
                'patch-configure-no-posix-c-source.diff', 'patch-64bit.diff',
                'patch-pyconfig.h.in.diff', 'patch-gestaltmodule.c.diff', {
                    '_localemodule.c.ed': 'Modules/_localemodule.c'
                }, {
                    'locale.py.ed': 'Lib/locale.py'
                }
            ])
        elif is_python26(version):
            patch_dir = PATH_PATCHES_MACOSX_PYTHON26
            self._add_patches_to_list(patch_dir, [
                'patch-Lib-cgi.py.diff', 'patch-Lib-distutils-dist.py.diff',
                'patch-Mac-IDLE-Makefile.in.diff',
                'patch-Mac-Makefile.in.diff',
                'patch-Mac-PythonLauncher-Makefile.in.diff',
                'patch-Mac-Tools-Doc-setup.py.diff',
                'patch-setup.py-db46.diff',
                'patch-Lib-ctypes-macholib-dyld.py.diff',
                'patch-setup_no_tkinter.py.diff', {
                    '_localemodule.c.ed': 'Modules/_localemodule.c'
                }, {
                    'locale.py.ed': 'Lib/locale.py'
                }
            ])
        elif is_python27(version):
            if version < '2.7.4':
                patch_dir = PATH_PATCHES_MACOSX_PYTHON27
                self._add_patches_to_list(patch_dir,
                                          ['patch-Modules-posixmodule.diff'])

        self._do_patch()
 def patch(self):
     version = Version(self.pkg.version)
     # for ubuntu 11.04(Natty)
     if is_python24(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "python24")
         self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python25(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "python25")
         self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python26(version):
         if version < '2.6.6':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "python26")
             if version < '2.6.3':
                 self._add_patches_to_list(
                     patch_dir,
                     ['patch-Makefile.pre.in-for-2.6.2-and-earlier.diff'])
             self._add_patches_to_list(
                 patch_dir, ['patch-setup.py-for-2.6.5-and-earlier.diff'])
             self._add_patches_to_list(
                 patch_dir,
                 ['patch-_ssl.c-for-ubuntu-oneiric-and-later.diff'])
         else:
             patch_dir = os.path.join(PATH_PATCHES_ALL, "common")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python27(version):
         if version < '2.7.2':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "common")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
         if version == '2.7.3':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "python27")
             self._add_patches_to_list(
                 patch_dir, ['patch-Modules-_sqlite-connection.c.diff'])
         if version == '2.7.4':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "python27")
             self._add_patches_to_list(
                 patch_dir, ['patch-Modules-_sqlite-for-2.7.4.diff'])
     elif is_python30(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "python30")
         self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python31(version):
         if version < '3.1.4':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "common")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python32(version):
         if version == '3.2':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "python32")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python34(version):
         if version == '3.4.4':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "python34")
             self._add_patches_to_list(patch_dir,
                                       ['patch-Modules-Setup.dist.diff'])
     self._do_patch()
Beispiel #10
0
 def configure(self):
     configure_option = ""
     if is_macosx_snowleopard():
         version = self.pkg.version
         if is_python24(version):
             configure_option = '--with-universal-archs="intel" MACOSX_DEPLOYMENT_TARGET=10.6 CPPFLAGS="-D__DARWIN_UNIX03"'
         elif is_python25(version):
             configure_option = '--with-universal-archs="intel" MACOSX_DEPLOYMENT_TARGET=10.6 CPPFLAGS="-D_DARWIN_C_SOURCE"'
         elif is_python26(version):
             configure_option = '--with-universal-archs="intel" MACOSX_DEPLOYMENT_TARGET=10.6'
     
     s = Subprocess(log=self.logfile, cwd=self.build_dir)
     s.check_call("./configure --prefix=%s %s %s" % (self.install_dir, self.options.configure, configure_option))
Beispiel #11
0
 def __init__(self, arg, options):
     super(PythonInstallerMacOSX, self).__init__(arg, options)
     version = self.pkg.version
     # check for version
     if version < '2.6' and (version != '2.4.6' and version != '2.5.5'):
         logger.info("`%s` is not supported on MacOSX Snow Leopard" % self.pkg.name)
         raise NotSupportedVersionException
     # set configure options
     if is_python24(version):
         self.configure_options = '--with-universal-archs="intel" MACOSX_DEPLOYMENT_TARGET=10.6 CPPFLAGS="-D__DARWIN_UNIX03"'
     elif is_python25(version):
         self.configure_options = '--with-universal-archs="intel" MACOSX_DEPLOYMENT_TARGET=10.6 CPPFLAGS="-D_DARWIN_C_SOURCE"'
     elif is_python26(version):
         self.configure_options = '--with-universal-archs="intel" --enable-universalsdk=/ MACOSX_DEPLOYMENT_TARGET=10.6'
Beispiel #12
0
    def patch(self):
        # note: want an interface to the source patching functionality. like a patchperl.
        version = Version(self.pkg.version)
        if is_python24(version):
            patch_dir = PATH_PATCHES_MACOSX_PYTHON24
            self._add_patches_to_list(patch_dir, ['patch-configure', 'patch-Makefile.pre.in',
                                                  'patch-Lib-cgi.py.diff', 'patch-Lib-site.py.diff',
                                                  'patch-setup.py.diff', 'patch-Include-pyport.h',
                                                  'patch-Mac-OSX-Makefile.in', 'patch-Mac-OSX-IDLE-Makefile.in',
                                                  'patch-Mac-OSX-PythonLauncher-Makefile.in', 'patch-configure-badcflags.diff',
                                                  'patch-configure-arch_only.diff', 'patch-macosmodule.diff',
                                                  'patch-mactoolboxglue.diff', 'patch-pymactoolbox.diff',
                                                  'patch-gestaltmodule.c.diff'])
        elif is_python25(version):
            patch_dir = PATH_PATCHES_MACOSX_PYTHON25
            self._add_patches_to_list(patch_dir, ['patch-Makefile.pre.in.diff',
                                                  'patch-Lib-cgi.py.diff',
                                                  'patch-Lib-distutils-dist.py.diff',
                                                  'patch-setup.py.diff',
                                                  'patch-configure-badcflags.diff',
                                                  'patch-configure-arch_only.diff',
                                                  'patch-configure-no-posix-c-source.diff',
                                                  'patch-64bit.diff',
                                                  'patch-pyconfig.h.in.diff',
                                                  'patch-gestaltmodule.c.diff',
                                                  {'_localemodule.c.ed': 'Modules/_localemodule.c'},
                                                  {'locale.py.ed': 'Lib/locale.py'}])
        elif is_python26(version):
            patch_dir = PATH_PATCHES_MACOSX_PYTHON26
            self._add_patches_to_list(patch_dir, ['patch-Lib-cgi.py.diff',
                                                  'patch-Lib-distutils-dist.py.diff',
                                                  'patch-Mac-IDLE-Makefile.in.diff',
                                                  'patch-Mac-Makefile.in.diff',
                                                  'patch-Mac-PythonLauncher-Makefile.in.diff',
                                                  'patch-Mac-Tools-Doc-setup.py.diff',
                                                  'patch-setup.py-db46.diff',
                                                  'patch-Lib-ctypes-macholib-dyld.py.diff',
                                                  'patch-setup_no_tkinter.py.diff',
                                                  {'_localemodule.c.ed': 'Modules/_localemodule.c'},
                                                  {'locale.py.ed': 'Lib/locale.py'}])
        elif is_python27(version):
            # patch impossible with 2.7.4, experimental fix until the official one is published    
            if version < '2.7.4':
                patch_dir = PATH_PATCHES_MACOSX_PYTHON27
                self._add_patches_to_list(patch_dir, ['patch-Modules-posixmodule.diff'])

        self._do_patch()
 def patch(self):
     version = Version(self.pkg.version)
     # for ubuntu 11.04(Natty)
     if is_python24(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "python24")
         self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python25(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "python25")
         self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python26(version):
         if version < '2.6.6':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "python26")
             if version < '2.6.3':
                 self._add_patches_to_list(patch_dir, ['patch-Makefile.pre.in-for-2.6.2-and-earlier.diff'])
             self._add_patches_to_list(patch_dir, ['patch-setup.py-for-2.6.5-and-earlier.diff'])
             self._add_patches_to_list(patch_dir, ['patch-_ssl.c-for-ubuntu-oneiric-and-later.diff'])
         else:
             patch_dir = os.path.join(PATH_PATCHES_ALL, "common")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python27(version):
         if version < '2.7.2':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "common")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
         if version == '2.7.3':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "python27")
             self._add_patches_to_list(patch_dir, ['patch-Modules-_sqlite-connection.c.diff'])
         if version == '2.7.4':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "python27")
             self._add_patches_to_list(patch_dir, ['patch-Modules-_sqlite-for-2.7.4.diff'])
     elif is_python30(version):
         patch_dir = os.path.join(PATH_PATCHES_ALL, "python30")
         self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python31(version):
         if version < '3.1.4':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "common")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python32(version):
         if version == '3.2':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "python32")
             self._add_patches_to_list(patch_dir, ['patch-setup.py.diff'])
     elif is_python34(version):
         if version == '3.4.4':
             patch_dir = os.path.join(PATH_PATCHES_ALL, "python34")
             self._add_patches_to_list(patch_dir, ['patch-Modules-Setup.dist.diff'])
     self._do_patch()
    def patch(self):
        # note: want an interface to the source patching functionality. like a patchperl.
        version = Version(self.pkg.version)
        if is_python24(version):
            patch_dir = PATH_PATCHES_MACOSX_PYTHON24
            self._add_patches_to_list(
                patch_dir,
                [
                    "patch-configure",
                    "patch-Makefile.pre.in",
                    "patch-Lib-cgi.py.diff",
                    "patch-Lib-site.py.diff",
                    "patch-setup.py.diff",
                    "patch-Include-pyport.h",
                    "patch-Mac-OSX-Makefile.in",
                    "patch-Mac-OSX-IDLE-Makefile.in",
                    "patch-Mac-OSX-PythonLauncher-Makefile.in",
                    "patch-configure-badcflags.diff",
                    "patch-configure-arch_only.diff",
                    "patch-macosmodule.diff",
                    "patch-mactoolboxglue.diff",
                    "patch-pymactoolbox.diff",
                    "patch-gestaltmodule.c.diff",
                ],
            )
        elif is_python25(version):
            patch_dir = PATH_PATCHES_MACOSX_PYTHON25
            self._add_patches_to_list(
                patch_dir,
                [
                    "patch-Makefile.pre.in.diff",
                    "patch-Lib-cgi.py.diff",
                    "patch-Lib-distutils-dist.py.diff",
                    "patch-setup.py.diff",
                    "patch-configure-badcflags.diff",
                    "patch-configure-arch_only.diff",
                    "patch-64bit.diff",
                    "patch-pyconfig.h.in.diff",
                    "patch-gestaltmodule.c.diff",
                    {"_localemodule.c.ed": "Modules/_localemodule.c"},
                    {"locale.py.ed": "Lib/locale.py"},
                ],
            )
        elif is_python26(version):
            patch_dir = PATH_PATCHES_MACOSX_PYTHON26
            self._add_patches_to_list(
                patch_dir,
                [
                    "patch-Lib-cgi.py.diff",
                    "patch-Lib-distutils-dist.py.diff",
                    "patch-Mac-IDLE-Makefile.in.diff",
                    "patch-Mac-Makefile.in.diff",
                    "patch-Mac-PythonLauncher-Makefile.in.diff",
                    "patch-Mac-Tools-Doc-setup.py.diff",
                    "patch-setup.py-db46.diff",
                    "patch-Lib-ctypes-macholib-dyld.py.diff",
                    "patch-setup_no_tkinter.py.diff",
                    {"_localemodule.c.ed": "Modules/_localemodule.c"},
                    {"locale.py.ed": "Lib/locale.py"},
                ],
            )
        elif is_python27(version):
            patch_dir = PATH_PATCHES_MACOSX_PYTHON27
            self._add_patches_to_list(patch_dir, ["patch-Modules-posixmodule.diff"])

        self._do_patch()