| @ -1,47 +0,0 @@ | |||
| # HG changeset patch | |||
| # User Barry Warsaw <barry@python.org> | |||
| # Date 1302190091 14400 | |||
| # Node ID bd0f73a9538e05f526feaf05821e68bdcff498fa | |||
| # Parent 2e4cdaffe493e879fb5367a4aa454491de451137 | |||
| Backport for Python 2.7 of issue 11715 support for building Python on | |||
| multiarch Debian/Ubuntu. | |||
| diff --git a/setup.py b/setup.py | |||
| --- setup.py.orig | |||
| +++ setup.py | |||
| @@ -345,10 +345,33 @@ class PyBuildExt(build_ext): | |||
| return platform | |||
| return sys.platform | |||
| + def add_multiarch_paths(self): | |||
| + # Debian/Ubuntu multiarch support. | |||
| + # https://wiki.ubuntu.com/MultiarchSpec | |||
| + if not find_executable('dpkg-architecture'): | |||
| + return | |||
| + tmpfile = os.path.join(self.build_temp, 'multiarch') | |||
| + if not os.path.exists(self.build_temp): | |||
| + os.makedirs(self.build_temp) | |||
| + ret = os.system( | |||
| + 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' % | |||
| + tmpfile) | |||
| + try: | |||
| + if ret >> 8 == 0: | |||
| + with open(tmpfile) as fp: | |||
| + multiarch_path_component = fp.readline().strip() | |||
| + add_dir_to_list(self.compiler.library_dirs, | |||
| + '/usr/lib/' + multiarch_path_component) | |||
| + add_dir_to_list(self.compiler.include_dirs, | |||
| + '/usr/include/' + multiarch_path_component) | |||
| + finally: | |||
| + os.unlink(tmpfile) | |||
| + | |||
| def detect_modules(self): | |||
| # Ensure that /usr/local is always used | |||
| add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') | |||
| add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') | |||
| + self.add_multiarch_paths() | |||
| # Add paths specified in the environment variables LDFLAGS and | |||
| # CPPFLAGS for header and library files. | |||
| @ -1,44 +0,0 @@ | |||
| --- setup.py.orig 2011-07-07 19:41:48.610196111 +0900 | |||
| +++ setup.py 2011-07-07 19:46:44.986310031 +0900 | |||
| @@ -14,6 +14,7 @@ | |||
| from distutils.command.build_ext import build_ext | |||
| from distutils.command.install import install | |||
| from distutils.command.install_lib import install_lib | |||
| +from distutils.spawn import find_executable | |||
| # This global variable is used to hold the list of modules to be disabled. | |||
| disabled_module_list = [] | |||
| @@ -308,10 +309,33 @@ | |||
| return platform | |||
| return sys.platform | |||
| + def add_multiarch_paths(self): | |||
| + # Debian/Ubuntu multiarch support. | |||
| + # https://wiki.ubuntu.com/MultiarchSpec | |||
| + if not find_executable('dpkg-architecture'): | |||
| + return | |||
| + tmpfile = os.path.join(self.build_temp, 'multiarch') | |||
| + if not os.path.exists(self.build_temp): | |||
| + os.makedirs(self.build_temp) | |||
| + ret = os.system( | |||
| + 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' % | |||
| + tmpfile) | |||
| + try: | |||
| + if ret >> 8 == 0: | |||
| + with open(tmpfile) as fp: | |||
| + multiarch_path_component = fp.readline().strip() | |||
| + add_dir_to_list(self.compiler.library_dirs, | |||
| + '/usr/lib/' + multiarch_path_component) | |||
| + add_dir_to_list(self.compiler.include_dirs, | |||
| + '/usr/include/' + multiarch_path_component) | |||
| + finally: | |||
| + os.unlink(tmpfile) | |||
| + | |||
| def detect_modules(self): | |||
| # Ensure that /usr/local is always used | |||
| add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') | |||
| add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') | |||
| + self.add_multiarch_paths() | |||
| # Add paths specified in the environment variables LDFLAGS and | |||
| # CPPFLAGS for header and library files. | |||
| @ -1,38 +0,0 @@ | |||
| --- setup.py.orig 2011-07-07 20:26:15.000000000 +0900 | |||
| +++ setup.py 2011-07-07 20:29:28.735543350 +0900 | |||
| @@ -370,12 +370,35 @@ | |||
| return platform | |||
| return sys.platform | |||
| + def add_multiarch_paths(self): | |||
| + # Debian/Ubuntu multiarch support. | |||
| + # https://wiki.ubuntu.com/MultiarchSpec | |||
| + if not find_executable('dpkg-architecture'): | |||
| + return | |||
| + tmpfile = os.path.join(self.build_temp, 'multiarch') | |||
| + if not os.path.exists(self.build_temp): | |||
| + os.makedirs(self.build_temp) | |||
| + ret = os.system( | |||
| + 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' % | |||
| + tmpfile) | |||
| + try: | |||
| + if ret >> 8 == 0: | |||
| + with open(tmpfile) as fp: | |||
| + multiarch_path_component = fp.readline().strip() | |||
| + add_dir_to_list(self.compiler.library_dirs, | |||
| + '/usr/lib/' + multiarch_path_component) | |||
| + add_dir_to_list(self.compiler.include_dirs, | |||
| + '/usr/include/' + multiarch_path_component) | |||
| + finally: | |||
| + os.unlink(tmpfile) | |||
| + | |||
| def detect_modules(self): | |||
| # Ensure that /usr/local is always used, but the local build | |||
| # directories (i.e. '.' and 'Include') must be first. See issue | |||
| # 10520. | |||
| add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') | |||
| add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') | |||
| + self.add_multiarch_paths() | |||
| # Add paths specified in the environment variables LDFLAGS and | |||
| # CPPFLAGS for header and library files. | |||