1 diff -dur -x '*~' -x '*.orig' Python-3.5.0.orig/Include/pylifecycle.h Python-3.5.0/Include/pylifecycle.h
2 --- Python-3.5.0.orig/Include/pylifecycle.h 2015-09-13 13:41:20.000000000 +0200
3 +++ Python-3.5.0/Include/pylifecycle.h 2015-12-02 20:26:50.853793088 +0100
5 /* In their own files */
6 PyAPI_FUNC(const char *) Py_GetVersion(void);
7 PyAPI_FUNC(const char *) Py_GetPlatform(void);
8 +PyAPI_FUNC(const char *) Py_GetArch(void);
9 +PyAPI_FUNC(const char *) Py_GetLib(void);
10 PyAPI_FUNC(const char *) Py_GetCopyright(void);
11 PyAPI_FUNC(const char *) Py_GetCompiler(void);
12 PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
13 diff -dur -x '*~' -x '*.orig' Python-3.5.0.orig/Lib/distutils/command/install.py Python-3.5.0/Lib/distutils/command/install.py
14 --- Python-3.5.0.orig/Lib/distutils/command/install.py 2015-09-13 13:41:20.000000000 +0200
15 +++ Python-3.5.0/Lib/distutils/command/install.py 2015-12-02 20:27:40.150761675 +0100
17 from site import USER_SITE
23 'purelib': '$base/Lib/site-packages',
24 'platlib': '$base/Lib/site-packages',
29 - 'purelib': '$base/lib/python$py_version_short/site-packages',
30 - 'platlib': '$platbase/lib/python$py_version_short/site-packages',
31 + 'purelib': '$base/'+libname+'/python$py_version_short/site-packages',
32 + 'platlib': '$platbase/'+libname+'/python$py_version_short/site-packages',
33 'headers': '$base/include/python$py_version_short$abiflags/$dist_name',
34 'scripts': '$base/bin',
38 - 'purelib': '$base/lib/python',
39 - 'platlib': '$base/lib/python',
40 + 'purelib': '$base/'+libname+'/python',
41 + 'platlib': '$base/'+libname+'/python',
42 'headers': '$base/include/python/$dist_name',
43 'scripts': '$base/bin',
45 diff -dur -x '*~' -x '*.orig' Python-3.5.0.orig/Lib/distutils/sysconfig.py Python-3.5.0/Lib/distutils/sysconfig.py
46 --- Python-3.5.0.orig/Lib/distutils/sysconfig.py 2015-09-13 13:41:21.000000000 +0200
47 +++ Python-3.5.0/Lib/distutils/sysconfig.py 2015-12-02 20:26:50.853793088 +0100
49 prefix = plat_specific and EXEC_PREFIX or PREFIX
51 if os.name == "posix":
56 libpython = os.path.join(prefix,
57 - "lib", "python" + get_python_version())
58 + lib, "python" + get_python_version())
62 diff -dur -x '*~' -x '*.orig' Python-3.5.0.orig/Lib/distutils/tests/test_install.py Python-3.5.0/Lib/distutils/tests/test_install.py
63 --- Python-3.5.0.orig/Lib/distutils/tests/test_install.py 2015-09-13 13:41:21.000000000 +0200
64 +++ Python-3.5.0/Lib/distutils/tests/test_install.py 2015-12-02 20:26:50.853793088 +0100
66 expected = os.path.normpath(expected)
67 self.assertEqual(got, expected)
69 - libdir = os.path.join(destination, "lib", "python")
70 + libdir = os.path.join(destination, sys.lib, "python")
71 check_path(cmd.install_lib, libdir)
72 check_path(cmd.install_platlib, libdir)
73 check_path(cmd.install_purelib, libdir)
74 diff -dur -x '*~' -x '*.orig' Python-3.5.0.orig/Lib/site.py Python-3.5.0/Lib/site.py
75 --- Python-3.5.0.orig/Lib/site.py 2015-09-13 13:41:21.000000000 +0200
76 +++ Python-3.5.0/Lib/site.py 2015-12-02 20:28:51.431199018 +0100
81 - sitepackages.append(os.path.join(prefix, "lib",
82 + sitepackages.append(os.path.join(prefix, sys.lib,
83 "python" + sys.version[:3],
85 + sitepackages.append(os.path.join(prefix, sys.lib, "site-python"))
86 + if sys.lib != 'lib':
87 + sitepackages.append(os.path.join(prefix, "lib", "python" + sys.version[:3], "site-packages"))
88 + sitepackages.append(os.path.join(prefix, "share", "python" + sys.version[:3], "site-packages"))
90 sitepackages.append(prefix)
91 - sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
92 + sitepackages.append(os.path.join(prefix, sys.lib, "site-packages"))
93 if sys.platform == "darwin":
94 # for framework builds *only* we add the standard Apple
96 diff -dur -x '*~' -x '*.orig' Python-3.5.0.orig/Lib/sysconfig.py Python-3.5.0/Lib/sysconfig.py
97 --- Python-3.5.0.orig/Lib/sysconfig.py 2015-09-13 13:41:21.000000000 +0200
98 +++ Python-3.5.0/Lib/sysconfig.py 2015-12-02 20:26:50.853793088 +0100
103 - 'stdlib': '{installed_base}/lib/python{py_version_short}',
104 - 'platstdlib': '{platbase}/lib/python{py_version_short}',
105 - 'purelib': '{base}/lib/python{py_version_short}/site-packages',
106 - 'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
107 + 'stdlib': '{installed_base}/' + sys.lib + '/python{py_version_short}',
108 + 'platstdlib': '{platbase}/' + sys.lib + '/python{py_version_short}',
109 + 'purelib': '{base}/' + sys.lib + '/python{py_version_short}/site-packages',
110 + 'platlib': '{platbase}/' + sys.lib + '/python{py_version_short}/site-packages',
112 '{installed_base}/include/python{py_version_short}{abiflags}',
118 - 'stdlib': '{installed_base}/lib/python',
119 - 'platstdlib': '{base}/lib/python',
120 - 'purelib': '{base}/lib/python',
121 - 'platlib': '{base}/lib/python',
122 + 'stdlib': '{installed_base}/' + sys.lib + '/python',
123 + 'platstdlib': '{base}/' + sys.lib + '/python',
124 + 'purelib': '{base}/' + sys.lib + '/python',
125 + 'platlib': '{base}/' + sys.lib + '/python',
126 'include': '{installed_base}/include/python',
127 'platinclude': '{installed_base}/include/python',
128 'scripts': '{base}/bin',
129 diff -dur -x '*~' -x '*.orig' Python-3.5.0.orig/Makefile.pre.in Python-3.5.0/Makefile.pre.in
130 --- Python-3.5.0.orig/Makefile.pre.in 2015-09-13 13:41:23.000000000 +0200
131 +++ Python-3.5.0/Makefile.pre.in 2015-12-02 20:28:51.434532372 +0100
134 # Machine-dependent subdirectories
139 # Multiarch directory (may be empty)
140 MULTIARCH= @MULTIARCH@
143 INCLUDEDIR= @includedir@
144 CONFINCLUDEDIR= $(exec_prefix)/include
145 -SCRIPTDIR= $(prefix)/lib
146 +SCRIPTDIR= $(prefix)/$(LIB)
149 # Detailed destination directories
151 Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H)
153 Python/getplatform.o: $(srcdir)/Python/getplatform.c
154 - $(CC) -c $(PY_CORE_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
155 + $(CC) -c $(PY_CORE_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -DARCH='"$(ARCH)"' -DLIB='"$(LIB)"' -o $@ $(srcdir)/Python/getplatform.c
157 Python/importdl.o: $(srcdir)/Python/importdl.c
158 $(CC) -c $(PY_CORE_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
159 @@ -1362,8 +1364,8 @@
160 if test "$(SHLIB_SUFFIX)" = .dll; then \
161 $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \
163 - $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
164 - $(RANLIB) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
165 + $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBDIR)/$(LIBRARY) ; \
166 + $(RANLIB) $(DESTDIR)$(LIBDIR)/$(LIBRARY) ; \
169 echo Skip install of $(LIBRARY) - use make frameworkinstall; \
170 diff -dur -x '*~' -x '*.orig' Python-3.5.0.orig/Modules/getpath.c Python-3.5.0/Modules/getpath.c
171 --- Python-3.5.0.orig/Modules/getpath.c 2015-09-13 13:41:24.000000000 +0200
172 +++ Python-3.5.0/Modules/getpath.c 2015-12-02 20:26:50.857126441 +0100
174 #define EXEC_PREFIX PREFIX
178 +#if defined(__x86_64__) || (defined(__sparc__) && defined(__arch64__)) || defined(__powerpc64__) || defined(__s390x__)
179 +#if defined(__ILP32__)
180 +#define LIB_PYTHON "libx32/python"
182 +#define LIB_PYTHON "lib64/python"
185 +#define LIB_PYTHON "lib/python"
190 -#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
191 - EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"
192 +#define PYTHONPATH PREFIX "/" LIB_PYTHON VERSION ":" \
193 + EXEC_PREFIX "/" LIB_PYTHON VERSION "/lib-dynload:"
198 _pythonpath = Py_DecodeLocale(PYTHONPATH, NULL);
199 _prefix = Py_DecodeLocale(PREFIX, NULL);
200 _exec_prefix = Py_DecodeLocale(EXEC_PREFIX, NULL);
201 - lib_python = Py_DecodeLocale("lib/python" VERSION, NULL);
202 + lib_python = Py_DecodeLocale(LIB_PYTHON VERSION, NULL);
204 if (!_pythonpath || !_prefix || !_exec_prefix || !lib_python) {
209 wcsncpy(zip_path, _prefix, MAXPATHLEN);
210 - joinpath(zip_path, L"lib/python00.zip");
211 + joinpath(zip_path, L"" LIB_PYTHON "00.zip");
212 bufsz = wcslen(zip_path); /* Replace "00" with version */
213 zip_path[bufsz - 6] = VERSION[0];
214 zip_path[bufsz - 5] = VERSION[2];
215 diff -dur -x '*~' -x '*.orig' Python-3.5.0.orig/Python/getplatform.c Python-3.5.0/Python/getplatform.c
216 --- Python-3.5.0.orig/Python/getplatform.c 2015-09-13 13:41:26.000000000 +0200
217 +++ Python-3.5.0/Python/getplatform.c 2015-12-02 20:26:50.857126441 +0100
224 +#define ARCH "unknown"
242 diff -dur -x '*~' -x '*.orig' Python-3.5.0.orig/Python/sysmodule.c Python-3.5.0/Python/sysmodule.c
243 --- Python-3.5.0.orig/Python/sysmodule.c 2015-09-13 13:41:26.000000000 +0200
244 +++ Python-3.5.0/Python/sysmodule.c 2015-12-02 20:26:50.857126441 +0100
245 @@ -1767,6 +1767,10 @@
246 PyUnicode_FromString(Py_GetCopyright()));
247 SET_SYS_FROM_STRING("platform",
248 PyUnicode_FromString(Py_GetPlatform()));
249 + SET_SYS_FROM_STRING("arch",
250 + PyUnicode_FromString(Py_GetArch()));
251 + SET_SYS_FROM_STRING("lib",
252 + PyUnicode_FromString(Py_GetLib()));
253 SET_SYS_FROM_STRING("executable",
254 PyUnicode_FromWideChar(
255 Py_GetProgramFullPath(), -1));
256 diff -dur -x '*~' -x '*.orig' Python-3.5.0.orig/configure.ac Python-3.5.0/configure.ac
257 --- Python-3.5.0.orig/configure.ac 2015-12-02 20:26:33.157018154 +0100
258 +++ Python-3.5.0/configure.ac 2015-12-02 20:28:51.431199018 +0100
264 +AC_MSG_CHECKING(ARCH)
269 +AC_MSG_RESULT($ARCH)
272 +AC_MSG_CHECKING(LIB)
273 +case $ac_sys_system in
275 + # Test if the compiler is 64bit
276 + echo 'int i;' > conftest.$ac_ext
277 + python_cv_cc_64bit_output=no
278 + if AC_TRY_EVAL(ac_compile); then
279 + case `/usr/bin/file conftest.$ac_objext` in
281 + python_cv_cc_64bit_output=yes
289 +case $ARCH:$python_cv_cc_64bit_output in
290 +powerpc64:yes | s390x:yes | sparc64:yes | x86_64:yes)
303 MULTIARCH=$($CC --print-multiarch 2>/dev/null)
305 @@ -4331,7 +4370,7 @@
307 dnl define LIBPL after ABIFLAGS and LDVERSION is defined.
308 AC_SUBST(PY_ENABLE_SHARED)
309 -LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}"
310 +LIBPL='$(LIBDIR)/python'"${VERSION}/config-${LDVERSION}"
313 # Check whether right shifting a negative integer extends the sign bit
314 diff -dur -x '*~' -x '*.orig' Python-3.5.0.orig/setup.py Python-3.5.0/setup.py
315 --- Python-3.5.0.orig/setup.py 2015-09-13 13:41:26.000000000 +0200
316 +++ Python-3.5.0/setup.py 2015-12-02 20:26:50.857126441 +0100
318 # be assumed that no additional -I,-L directives are needed.
319 if not cross_compiling:
320 lib_dirs = self.compiler.library_dirs + [
321 - '/lib64', '/usr/lib64',
322 - '/lib', '/usr/lib',
323 + '/' + sys.lib, '/usr/' + sys.lib
325 inc_dirs = self.compiler.include_dirs + ['/usr/include']
327 @@ -750,11 +749,11 @@
329 readline_libs.append(curses_library)
330 elif self.compiler.find_library_file(lib_dirs +
331 - ['/usr/lib/termcap'],
332 + ['/usr/' + sys.lib + '/termcap'],
334 readline_libs.append('termcap')
335 exts.append( Extension('readline', ['readline.c'],
336 - library_dirs=['/usr/lib/termcap'],
337 + library_dirs=['/usr/' + sys.lib + '/termcap'],
338 extra_link_args=readline_extra_link_args,
339 libraries=readline_libs) )