]>
Commit | Line | Data |
---|---|---|
e684db95 AM |
1 | diff -Nur Python-2.5b2.orig/configure.in Python-2.5b2/configure.in |
2 | --- Python-2.5b2.orig/configure.in 2006-07-06 11:13:35.000000000 +0100 | |
3 | +++ Python-2.5b2/configure.in 2006-07-12 17:42:51.000000000 +0100 | |
4 | @@ -503,6 +503,41 @@ | |
5 | ;; | |
6 | esac | |
7 | ||
8 | +AC_SUBST(ARCH) | |
9 | +AC_MSG_CHECKING(ARCH) | |
10 | +ARCH=`uname -m` | |
11 | +case $ARCH in | |
12 | +i?86) ARCH=i386;; | |
13 | +esac | |
14 | +AC_MSG_RESULT($ARCH) | |
15 | + | |
16 | +AC_SUBST(LIB) | |
17 | +AC_MSG_CHECKING(LIB) | |
18 | +case $ac_sys_system in | |
19 | +Linux*) | |
20 | + # Test if the compiler is 64bit | |
21 | + echo 'int i;' > conftest.$ac_ext | |
22 | + python_cv_cc_64bit_output=no | |
23 | + if AC_TRY_EVAL(ac_compile); then | |
24 | + case `/usr/bin/file conftest.$ac_objext` in | |
25 | + *"ELF 64"*) | |
26 | + python_cv_cc_64bit_output=yes | |
27 | + ;; | |
28 | + esac | |
29 | + fi | |
30 | + rm -rf conftest* | |
31 | + ;; | |
32 | +esac | |
33 | + | |
34 | +case $ARCH:$python_cv_cc_64bit_output in | |
35 | +powerpc64:yes | s390x:yes | sparc64:yes | x86_64:yes) | |
36 | + LIB="lib64" | |
37 | + ;; | |
38 | +*:*) | |
39 | + LIB="lib" | |
40 | + ;; | |
41 | +esac | |
42 | +AC_MSG_RESULT($LIB) | |
43 | ||
44 | AC_SUBST(LIBRARY) | |
45 | AC_MSG_CHECKING(LIBRARY) | |
46 | diff -Nur Python-2.5b2.orig/Include/pythonrun.h Python-2.5b2/Include/pythonrun.h | |
47 | --- Python-2.5b2.orig/Include/pythonrun.h 2006-04-03 07:26:32.000000000 +0100 | |
48 | +++ Python-2.5b2/Include/pythonrun.h 2006-07-12 17:42:51.000000000 +0100 | |
49 | @@ -107,6 +107,8 @@ | |
50 | /* In their own files */ | |
51 | PyAPI_FUNC(const char *) Py_GetVersion(void); | |
52 | PyAPI_FUNC(const char *) Py_GetPlatform(void); | |
53 | +PyAPI_FUNC(const char *) Py_GetArch(void); | |
54 | +PyAPI_FUNC(const char *) Py_GetLib(void); | |
55 | PyAPI_FUNC(const char *) Py_GetCopyright(void); | |
56 | PyAPI_FUNC(const char *) Py_GetCompiler(void); | |
57 | PyAPI_FUNC(const char *) Py_GetBuildInfo(void); | |
58 | diff -Nur Python-2.5b2.orig/Lib/distutils/command/install.py Python-2.5b2/Lib/distutils/command/install.py | |
59 | --- Python-2.5b2.orig/Lib/distutils/command/install.py 2006-03-27 22:55:21.000000000 +0100 | |
60 | +++ Python-2.5b2/Lib/distutils/command/install.py 2006-07-12 17:42:51.000000000 +0100 | |
61 | @@ -19,6 +19,8 @@ | |
62 | from distutils.errors import DistutilsOptionError | |
63 | from glob import glob | |
64 | ||
65 | +libname = sys.lib | |
66 | + | |
67 | if sys.version < "2.2": | |
68 | WINDOWS_SCHEME = { | |
69 | 'purelib': '$base', | |
70 | @@ -39,14 +41,14 @@ | |
71 | INSTALL_SCHEMES = { | |
72 | 'unix_prefix': { | |
73 | 'purelib': '$base/lib/python$py_version_short/site-packages', | |
74 | - 'platlib': '$platbase/lib/python$py_version_short/site-packages', | |
75 | + 'platlib': '$platbase/'+libname+'/python$py_version_short/site-packages', | |
76 | 'headers': '$base/include/python$py_version_short/$dist_name', | |
77 | 'scripts': '$base/bin', | |
78 | 'data' : '$base', | |
79 | }, | |
80 | 'unix_home': { | |
81 | 'purelib': '$base/lib/python', | |
82 | - 'platlib': '$base/lib/python', | |
83 | + 'platlib': '$base/'+libname+'/python', | |
84 | 'headers': '$base/include/python/$dist_name', | |
85 | 'scripts': '$base/bin', | |
86 | 'data' : '$base', | |
87 | diff -Nur Python-2.5b2.orig/Lib/distutils/sysconfig.py Python-2.5b2/Lib/distutils/sysconfig.py | |
88 | --- Python-2.5b2.orig/Lib/distutils/sysconfig.py 2006-06-27 11:08:25.000000000 +0100 | |
89 | +++ Python-2.5b2/Lib/distutils/sysconfig.py 2006-07-12 17:42:51.000000000 +0100 | |
90 | @@ -99,8 +99,12 @@ | |
91 | prefix = plat_specific and EXEC_PREFIX or PREFIX | |
92 | ||
93 | if os.name == "posix": | |
94 | + if plat_specific: | |
95 | + lib = sys.lib | |
96 | + else: | |
97 | + lib = 'lib' | |
98 | libpython = os.path.join(prefix, | |
99 | - "lib", "python" + get_python_version()) | |
100 | + lib, "python" + get_python_version()) | |
101 | if standard_lib: | |
102 | return libpython | |
103 | else: | |
104 | diff -Nur Python-2.5b2.orig/Lib/distutils/tests/test_install.py Python-2.5b2/Lib/distutils/tests/test_install.py | |
105 | --- Python-2.5b2.orig/Lib/distutils/tests/test_install.py 2004-06-26 00:02:59.000000000 +0100 | |
106 | +++ Python-2.5b2/Lib/distutils/tests/test_install.py 2006-07-12 17:42:51.000000000 +0100 | |
e684db95 AM |
107 | @@ -39,8 +39,9 @@ |
108 | self.assertEqual(got, expected) | |
109 | ||
110 | libdir = os.path.join(destination, "lib", "python") | |
111 | + platlibdir = os.path.join(destination, sys.lib, "python") | |
112 | check_path(cmd.install_lib, libdir) | |
113 | - check_path(cmd.install_platlib, libdir) | |
114 | + check_path(cmd.install_platlib, platlibdir) | |
115 | check_path(cmd.install_purelib, libdir) | |
116 | check_path(cmd.install_headers, | |
117 | os.path.join(destination, "include", "python", "foopkg")) | |
118 | diff -Nur Python-2.5b2.orig/Lib/site.py Python-2.5b2/Lib/site.py | |
119 | --- Python-2.5b2.orig/Lib/site.py 2006-06-12 09:23:02.000000000 +0100 | |
120 | +++ Python-2.5b2/Lib/site.py 2006-07-12 17:42:51.000000000 +0100 | |
04df829f | 121 | @@ -258,13 +258,19 @@ |
122 | if sys.platform in ('os2emx', 'riscos'): | |
123 | sitedirs.append(os.path.join(prefix, "Lib", "site-packages")) | |
124 | elif os.sep == '/': | |
125 | - sitedirs.append(os.path.join(prefix, "lib", | |
126 | + sitedirs.append(os.path.join(prefix, sys.lib, | |
127 | "python" + sys.version[:3], | |
128 | "site-packages")) | |
129 | - sitedirs.append(os.path.join(prefix, "lib", "site-python")) | |
130 | + sitedirs.append(os.path.join(prefix, sys.lib, "site-python")) | |
131 | + if sys.lib != 'lib': | |
a1d9b939 AF |
132 | + sitedirs.append(os.path.join(prefix, 'lib', |
133 | + "python" + sys.version[:3], | |
134 | + "site-packages")) | |
135 | + sitedirs.append(os.path.join(prefix, 'lib', "site-python")) | |
04df829f | 136 | + |
137 | else: | |
138 | sitedirs.append(prefix) | |
139 | - sitedirs.append(os.path.join(prefix, "lib", "site-packages")) | |
140 | + sitedirs.append(os.path.join(prefix, sys.lib, "site-packages")) | |
141 | ||
142 | if sys.platform == "darwin": | |
143 | # for framework builds *only* we add the standard Apple | |
e684db95 AM |
144 | diff -Nur Python-2.5b2.orig/Makefile.pre.in Python-2.5b2/Makefile.pre.in |
145 | --- Python-2.5b2.orig/Makefile.pre.in 2006-06-27 16:45:32.000000000 +0100 | |
146 | +++ Python-2.5b2/Makefile.pre.in 2006-07-12 17:42:51.000000000 +0100 | |
147 | @@ -75,6 +75,8 @@ | |
148 | ||
149 | # Machine-dependent subdirectories | |
150 | MACHDEP= @MACHDEP@ | |
151 | +LIB= @LIB@ | |
152 | +ARCH= @ARCH@ | |
153 | ||
154 | # Install prefix for architecture-independent files | |
155 | prefix= @prefix@ | |
156 | @@ -84,11 +86,11 @@ | |
157 | ||
158 | # Expanded directories | |
159 | BINDIR= $(exec_prefix)/bin | |
160 | -LIBDIR= $(exec_prefix)/lib | |
161 | +LIBDIR= $(exec_prefix)/$(LIB) | |
162 | MANDIR= @mandir@ | |
163 | INCLUDEDIR= @includedir@ | |
164 | CONFINCLUDEDIR= $(exec_prefix)/include | |
165 | -SCRIPTDIR= $(prefix)/lib | |
166 | +SCRIPTDIR= $(prefix)/$(LIB) | |
167 | ||
168 | # Detailed destination directories | |
169 | BINLIBDEST= $(LIBDIR)/python$(VERSION) | |
170 | @@ -489,7 +491,7 @@ | |
171 | Python/compile.o Python/symtable.o: $(GRAMMAR_H) $(AST_H) | |
172 | ||
173 | Python/getplatform.o: $(srcdir)/Python/getplatform.c | |
174 | - $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c | |
175 | + $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -DARCH='"$(ARCH)"' -DLIB='"$(LIB)"' -o $@ $(srcdir)/Python/getplatform.c | |
176 | ||
177 | Python/importdl.o: $(srcdir)/Python/importdl.c | |
178 | $(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c | |
179 | diff -Nur Python-2.5b2.orig/Modules/getpath.c Python-2.5b2/Modules/getpath.c | |
180 | --- Python-2.5b2.orig/Modules/getpath.c 2006-07-10 02:18:57.000000000 +0100 | |
181 | +++ Python-2.5b2/Modules/getpath.c 2006-07-12 17:42:51.000000000 +0100 | |
182 | @@ -116,9 +116,17 @@ | |
183 | #define EXEC_PREFIX PREFIX | |
184 | #endif | |
185 | ||
186 | +#ifndef LIB_PYTHON | |
187 | +#if defined(__x86_64__) || (defined(__sparc__) && defined(__arch64__)) || defined(__powerpc64__) || defined(__s390x__) | |
a1d9b939 | 188 | +#define LIB_PYTHON L"lib64/python" |
e684db95 | 189 | +#else |
a1d9b939 | 190 | +#define LIB_PYTHON L"lib/python" |
e684db95 AM |
191 | +#endif |
192 | +#endif | |
193 | + | |
194 | #ifndef PYTHONPATH | |
195 | -#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \ | |
196 | - EXEC_PREFIX "/lib/python" VERSION "/lib-dynload" | |
197 | +#define PYTHONPATH PREFIX "/" LIB_PYTHON VERSION ":" \ | |
198 | + EXEC_PREFIX "/" LIB_PYTHON VERSION "/lib-dynload:" | |
199 | #endif | |
200 | ||
201 | #ifndef LANDMARK | |
04df829f | 202 | @@ -137,7 +137,7 @@ |
203 | static wchar_t exec_prefix[MAXPATHLEN+1]; | |
204 | static wchar_t progpath[MAXPATHLEN+1]; | |
205 | static wchar_t *module_search_path = NULL; | |
206 | -static wchar_t lib_python[] = L"lib/python" VERSION; | |
207 | +static wchar_t lib_python[] = LIB_PYTHON VERSION; | |
208 | ||
209 | /* In principle, this should use HAVE__WSTAT, and _wstat | |
210 | should be detected by autoconf. However, no current | |
e684db95 AM |
211 | diff -Nur Python-2.5b2.orig/Python/getplatform.c Python-2.5b2/Python/getplatform.c |
212 | --- Python-2.5b2.orig/Python/getplatform.c 2000-09-02 00:29:29.000000000 +0100 | |
213 | +++ Python-2.5b2/Python/getplatform.c 2006-07-12 17:42:51.000000000 +0100 | |
214 | @@ -10,3 +10,23 @@ | |
215 | { | |
216 | return PLATFORM; | |
217 | } | |
218 | + | |
219 | +#ifndef ARCH | |
220 | +#define ARCH "unknown" | |
221 | +#endif | |
222 | + | |
223 | +const char * | |
224 | +Py_GetArch(void) | |
225 | +{ | |
226 | + return ARCH; | |
227 | +} | |
228 | + | |
229 | +#ifndef LIB | |
230 | +#define LIB "lib" | |
231 | +#endif | |
232 | + | |
233 | +const char * | |
234 | +Py_GetLib(void) | |
235 | +{ | |
236 | + return LIB; | |
237 | +} | |
238 | diff -Nur Python-2.5b2.orig/Python/sysmodule.c Python-2.5b2/Python/sysmodule.c | |
239 | --- Python-2.5b2.orig/Python/sysmodule.c 2006-07-10 22:08:24.000000000 +0100 | |
240 | +++ Python-2.5b2/Python/sysmodule.c 2006-07-12 17:42:51.000000000 +0100 | |
241 | @@ -1080,6 +1080,10 @@ | |
242 | PyUnicode_FromString(Py_GetCopyright())); | |
243 | SET_SYS_FROM_STRING("platform", | |
244 | PyUnicode_FromString(Py_GetPlatform())); | |
245 | + SET_SYS_FROM_STRING("arch", | |
246 | + PyUnicode_FromString(Py_GetArch())); | |
247 | + SET_SYS_FROM_STRING("lib", | |
248 | + PyUnicode_FromString(Py_GetLib())); | |
249 | SET_SYS_FROM_STRING("executable", | |
250 | PyUnicode_FromString(Py_GetProgramFullPath())); | |
251 | SET_SYS_FROM_STRING("prefix", | |
252 | diff -Nur Python-2.5b2.orig/setup.py Python-2.5b2/setup.py | |
253 | --- Python-2.5b2.orig/setup.py 2006-06-30 07:18:39.000000000 +0100 | |
254 | +++ Python-2.5b2/setup.py 2006-07-12 17:45:14.000000000 +0100 | |
255 | @@ -290,12 +290,12 @@ | |
256 | except NameError: | |
257 | have_unicode = 0 | |
258 | ||
259 | + libname = sys.lib | |
260 | # lib_dirs and inc_dirs are used to search for files; | |
261 | # if a file is found in one of those directories, it can | |
262 | # be assumed that no additional -I,-L directives are needed. | |
263 | lib_dirs = self.compiler.library_dirs + [ | |
264 | - '/lib64', '/usr/lib64', | |
265 | - '/lib', '/usr/lib', | |
266 | + libname, '/usr/'+libname | |
267 | ] | |
268 | inc_dirs = self.compiler.include_dirs + ['/usr/include'] | |
269 | exts = [] | |
270 | @@ -496,11 +496,11 @@ | |
271 | elif self.compiler.find_library_file(lib_dirs, 'curses'): | |
272 | readline_libs.append('curses') | |
273 | elif self.compiler.find_library_file(lib_dirs + | |
274 | - ['/usr/lib/termcap'], | |
275 | + ['/usr' + libname + '/termcap'], | |
276 | 'termcap'): | |
277 | readline_libs.append('termcap') | |
278 | exts.append( Extension('readline', ['readline.c'], | |
279 | - library_dirs=['/usr/lib/termcap'], | |
280 | + library_dirs=['/usr' + libname + 'termcap'], | |
281 | extra_link_args=readline_extra_link_args, | |
282 | libraries=readline_libs) ) | |
283 | if platform not in ['mac']: |