-diff -durN -x '*~' Python-2.3.3c1.orig/Lib/distutils/command/install.py Python-2.3.3c1/Lib/distutils/command/install.py
---- Python-2.3.3c1.orig/Lib/distutils/command/install.py 2002-11-19 14:12:28.000000000 +0100
-+++ Python-2.3.3c1/Lib/distutils/command/install.py 2004-12-21 10:33:41.710623824 +0100
-@@ -38,15 +38,15 @@
+diff -Nur Python-2.5b2.orig/configure.in Python-2.5b2/configure.in
+--- Python-2.5b2.orig/configure.in 2006-07-06 11:13:35.000000000 +0100
++++ Python-2.5b2/configure.in 2006-07-12 17:42:51.000000000 +0100
+@@ -503,6 +503,41 @@
+ ;;
+ esac
++AC_SUBST(ARCH)
++AC_MSG_CHECKING(ARCH)
++ARCH=`uname -m`
++case $ARCH in
++i?86) ARCH=i386;;
++esac
++AC_MSG_RESULT($ARCH)
++
++AC_SUBST(LIB)
++AC_MSG_CHECKING(LIB)
++case $ac_sys_system in
++Linux*)
++ # Test if the compiler is 64bit
++ echo 'int i;' > conftest.$ac_ext
++ python_cv_cc_64bit_output=no
++ if AC_TRY_EVAL(ac_compile); then
++ case `/usr/bin/file conftest.$ac_objext` in
++ *"ELF 64"*)
++ python_cv_cc_64bit_output=yes
++ ;;
++ esac
++ fi
++ rm -rf conftest*
++ ;;
++esac
++
++case $ARCH:$python_cv_cc_64bit_output in
++powerpc64:yes | s390x:yes | sparc64:yes | x86_64:yes)
++ LIB="lib64"
++ ;;
++*:*)
++ LIB="lib"
++ ;;
++esac
++AC_MSG_RESULT($LIB)
+
+ AC_SUBST(LIBRARY)
+ AC_MSG_CHECKING(LIBRARY)
+diff -Nur Python-2.5b2.orig/Include/pythonrun.h Python-2.5b2/Include/pythonrun.h
+--- Python-2.5b2.orig/Include/pythonrun.h 2006-04-03 07:26:32.000000000 +0100
++++ Python-2.5b2/Include/pythonrun.h 2006-07-12 17:42:51.000000000 +0100
+@@ -107,6 +107,8 @@
+ /* In their own files */
+ PyAPI_FUNC(const char *) Py_GetVersion(void);
+ PyAPI_FUNC(const char *) Py_GetPlatform(void);
++PyAPI_FUNC(const char *) Py_GetArch(void);
++PyAPI_FUNC(const char *) Py_GetLib(void);
+ PyAPI_FUNC(const char *) Py_GetCopyright(void);
+ PyAPI_FUNC(const char *) Py_GetCompiler(void);
+ PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
+diff -Nur Python-2.5b2.orig/Lib/distutils/command/install.py Python-2.5b2/Lib/distutils/command/install.py
+--- Python-2.5b2.orig/Lib/distutils/command/install.py 2006-03-27 22:55:21.000000000 +0100
++++ Python-2.5b2/Lib/distutils/command/install.py 2006-07-12 17:42:51.000000000 +0100
+@@ -19,6 +19,8 @@
+ from distutils.errors import DistutilsOptionError
+ from glob import glob
+
++libname = sys.lib
++
+ if sys.version < "2.2":
+ WINDOWS_SCHEME = {
+ 'purelib': '$base',
+@@ -39,14 +41,14 @@
INSTALL_SCHEMES = {
'unix_prefix': {
-- 'purelib': '$base/lib/python$py_version_short/site-packages',
+ 'purelib': '$base/lib/python$py_version_short/site-packages',
- 'platlib': '$platbase/lib/python$py_version_short/site-packages',
-+ 'purelib': '$base/lib64/python$py_version_short/site-packages',
-+ 'platlib': '$platbase/lib64/python$py_version_short/site-packages',
++ 'platlib': '$platbase/'+libname+'/python$py_version_short/site-packages',
'headers': '$base/include/python$py_version_short/$dist_name',
'scripts': '$base/bin',
'data' : '$base',
},
'unix_home': {
-- 'purelib': '$base/lib/python',
+ 'purelib': '$base/lib/python',
- 'platlib': '$base/lib/python',
-+ 'purelib': '$base/lib64/python',
-+ 'platlib': '$base/lib64/python',
++ 'platlib': '$base/'+libname+'/python',
'headers': '$base/include/python/$dist_name',
'scripts': '$base/bin',
'data' : '$base',
-diff -durN -x '*~' Python-2.3.3c1.orig/Makefile.pre.in Python-2.3.3c1/Makefile.pre.in
---- Python-2.3.3c1.orig/Makefile.pre.in 2003-11-18 20:54:00.000000000 +0100
-+++ Python-2.3.3c1/Makefile.pre.in 2004-12-21 10:31:00.556123032 +0100
-@@ -79,11 +79,11 @@
+diff -Nur Python-2.5b2.orig/Lib/distutils/sysconfig.py Python-2.5b2/Lib/distutils/sysconfig.py
+--- Python-2.5b2.orig/Lib/distutils/sysconfig.py 2006-06-27 11:08:25.000000000 +0100
++++ Python-2.5b2/Lib/distutils/sysconfig.py 2006-07-12 17:42:51.000000000 +0100
+@@ -99,8 +99,12 @@
+ prefix = plat_specific and EXEC_PREFIX or PREFIX
+
+ if os.name == "posix":
++ if plat_specific:
++ lib = sys.lib
++ else:
++ lib = 'lib'
+ libpython = os.path.join(prefix,
+- "lib", "python" + get_python_version())
++ lib, "python" + get_python_version())
+ if standard_lib:
+ return libpython
+ else:
+diff -Nur Python-2.5b2.orig/Lib/distutils/tests/test_install.py Python-2.5b2/Lib/distutils/tests/test_install.py
+--- Python-2.5b2.orig/Lib/distutils/tests/test_install.py 2004-06-26 00:02:59.000000000 +0100
++++ Python-2.5b2/Lib/distutils/tests/test_install.py 2006-07-12 17:42:51.000000000 +0100
+@@ -39,8 +39,9 @@
+ self.assertEqual(got, expected)
+
+ libdir = os.path.join(destination, "lib", "python")
++ platlibdir = os.path.join(destination, sys.lib, "python")
+ check_path(cmd.install_lib, libdir)
+- check_path(cmd.install_platlib, libdir)
++ check_path(cmd.install_platlib, platlibdir)
+ check_path(cmd.install_purelib, libdir)
+ check_path(cmd.install_headers,
+ os.path.join(destination, "include", "python", "foopkg"))
+diff -Nur Python-2.5b2.orig/Lib/site.py Python-2.5b2/Lib/site.py
+--- Python-2.5b2.orig/Lib/site.py 2006-06-12 09:23:02.000000000 +0100
++++ Python-2.5b2/Lib/site.py 2006-07-12 17:42:51.000000000 +0100
+@@ -265,12 +265,19 @@
+ if sys.platform in ('os2emx', 'riscos'):
+ sitepackages.append(os.path.join(prefix, "Lib", "site-packages"))
+ elif os.sep == '/':
+- sitepackages.append(os.path.join(prefix, "lib",
++ sitepackages.append(os.path.join(prefix, sys.lib,
+ "python" + sys.version[:3],
+ "site-packages"))
+- sitepackages.append(os.path.join(prefix, "lib", "site-python"))
++ sitepackages.append(os.path.join(prefix, sys.lib, "site-python"))
++ if sys.lib != 'lib':
++ sitepackages.append(os.path.join(prefix,
++ 'lib',
++ "python" + sys.version[:3],
++ "site-packages"))
++ sitepackages.append(os.path.join(prefix, 'lib', "site-python"))
++
+ else:
+ sitepackages.append(prefix)
+- sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
++ sitepackages.append(os.path.join(prefix, sys.lib, "site-packages"))
+ if sys.platform == "darwin":
+ # for framework builds *only* we add the standard Apple
+diff -Nur Python-2.5b2.orig/Makefile.pre.in Python-2.5b2/Makefile.pre.in
+--- Python-2.5b2.orig/Makefile.pre.in 2006-06-27 16:45:32.000000000 +0100
++++ Python-2.5b2/Makefile.pre.in 2006-07-12 17:42:51.000000000 +0100
+@@ -75,6 +75,8 @@
+
+ # Machine-dependent subdirectories
+ MACHDEP= @MACHDEP@
++LIB= @LIB@
++ARCH= @ARCH@
+
+ # Install prefix for architecture-independent files
+ prefix= @prefix@
+@@ -84,11 +86,11 @@
# Expanded directories
- BINDIR= $(exec_prefix)/bin
--LIBDIR= $(exec_prefix)/lib
-+LIBDIR= $(exec_prefix)/lib64
+ BINDIR= @bindir@
+-LIBDIR= @libdir@
++LIBDIR= @libdir@
MANDIR= @mandir@
INCLUDEDIR= @includedir@
CONFINCLUDEDIR= $(exec_prefix)/include
-SCRIPTDIR= $(prefix)/lib
-+SCRIPTDIR= $(prefix)/lib64
++SCRIPTDIR= $(prefix)/$(LIB)
# Detailed destination directories
BINLIBDEST= $(LIBDIR)/python$(VERSION)
-diff -durN -x '*~' Python-2.3.3c1.orig/Modules/getpath.c Python-2.3.3c1/Modules/getpath.c
---- Python-2.3.3c1.orig/Modules/getpath.c 2002-12-31 13:45:12.000000000 +0100
-+++ Python-2.3.3c1/Modules/getpath.c 2004-12-21 10:32:06.670072184 +0100
-@@ -112,8 +112,8 @@
+@@ -489,7 +491,7 @@
+ Python/compile.o Python/symtable.o: $(GRAMMAR_H) $(AST_H)
+
+ Python/getplatform.o: $(srcdir)/Python/getplatform.c
+- $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
++ $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -DARCH='"$(ARCH)"' -DLIB='"$(LIB)"' -o $@ $(srcdir)/Python/getplatform.c
+
+ Python/importdl.o: $(srcdir)/Python/importdl.c
+ $(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
+diff -Nur Python-2.5b2.orig/Modules/getpath.c Python-2.5b2/Modules/getpath.c
+--- Python-2.5b2.orig/Modules/getpath.c 2006-07-10 02:18:57.000000000 +0100
++++ Python-2.5b2/Modules/getpath.c 2006-07-12 17:42:51.000000000 +0100
+@@ -116,9 +116,17 @@
+ #define EXEC_PREFIX PREFIX
#endif
++#ifndef LIB_PYTHON
++#if defined(__x86_64__) || (defined(__sparc__) && defined(__arch64__)) || defined(__powerpc64__) || defined(__s390x__)
++#define LIB_PYTHON "lib64/python"
++#else
++#define LIB_PYTHON "lib/python"
++#endif
++#endif
++
#ifndef PYTHONPATH
-#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"
-+#define PYTHONPATH PREFIX "/lib64/python" VERSION ":" \
-+ EXEC_PREFIX "/lib64/python" VERSION "/lib-dynload"
++#define PYTHONPATH PREFIX "/" LIB_PYTHON VERSION ":" \
++ EXEC_PREFIX "/" LIB_PYTHON VERSION "/lib-dynload:"
#endif
#ifndef LANDMARK
-@@ -124,7 +124,7 @@
+@@ -129,7 +137,7 @@
static char exec_prefix[MAXPATHLEN+1];
static char progpath[MAXPATHLEN+1];
static char *module_search_path = NULL;
-static char lib_python[] = "lib/python" VERSION;
-+static char lib_python[] = "lib64/python" VERSION;
++static char lib_python[] = LIB_PYTHON VERSION;
static void
reduce(char *dir)
-@@ -492,7 +492,7 @@
- }
- else
- strncpy(zip_path, PREFIX, MAXPATHLEN);
-- joinpath(zip_path, "lib/python00.zip");
-+ joinpath(zip_path, "lib64/python00.zip");
- bufsz = strlen(zip_path); /* Replace "00" with version */
- zip_path[bufsz - 6] = VERSION[0];
- zip_path[bufsz - 5] = VERSION[2];
-diff -durN -x '*~' Python-2.3.3c1.orig/setup.py Python-2.3.3c1/setup.py
---- Python-2.3.3c1.orig/setup.py 2004-12-21 10:27:26.478667752 +0100
-+++ Python-2.3.3c1/setup.py 2004-12-21 10:31:00.557122880 +0100
-@@ -264,7 +264,7 @@
+diff -Nur Python-2.5b2.orig/Python/getplatform.c Python-2.5b2/Python/getplatform.c
+--- Python-2.5b2.orig/Python/getplatform.c 2000-09-02 00:29:29.000000000 +0100
++++ Python-2.5b2/Python/getplatform.c 2006-07-12 17:42:51.000000000 +0100
+@@ -10,3 +10,23 @@
+ {
+ return PLATFORM;
+ }
++
++#ifndef ARCH
++#define ARCH "unknown"
++#endif
++
++const char *
++Py_GetArch(void)
++{
++ return ARCH;
++}
++
++#ifndef LIB
++#define LIB "lib"
++#endif
++
++const char *
++Py_GetLib(void)
++{
++ return LIB;
++}
+diff -Nur Python-2.5b2.orig/Python/sysmodule.c Python-2.5b2/Python/sysmodule.c
+--- Python-2.5b2.orig/Python/sysmodule.c 2006-07-10 22:08:24.000000000 +0100
++++ Python-2.5b2/Python/sysmodule.c 2006-07-12 17:42:51.000000000 +0100
+@@ -1377,6 +1377,10 @@
+ PyString_FromString(Py_GetCopyright()));
+ SET_SYS_FROM_STRING("platform",
+ PyString_FromString(Py_GetPlatform()));
++ SET_SYS_FROM_STRING("arch",
++ PyString_FromString(Py_GetArch()));
++ SET_SYS_FROM_STRING("lib",
++ PyString_FromString(Py_GetLib()));
+ SET_SYS_FROM_STRING("executable",
+ PyString_FromString(Py_GetProgramFullPath()));
+ SET_SYS_FROM_STRING("prefix",
+diff -Nur Python-2.5b2.orig/setup.py Python-2.5b2/setup.py
+--- Python-2.5b2.orig/setup.py 2006-06-30 07:18:39.000000000 +0100
++++ Python-2.5b2/setup.py 2006-07-12 17:45:14.000000000 +0100
+@@ -290,12 +290,12 @@
+ except NameError:
+ have_unicode = 0
+
++ libname = sys.lib
# lib_dirs and inc_dirs are used to search for files;
# if a file is found in one of those directories, it can
# be assumed that no additional -I,-L directives are needed.
-- lib_dirs = self.compiler.library_dirs + ['/lib', '/usr/lib']
-+ lib_dirs = self.compiler.library_dirs + ['/lib64', '/usr/lib64']
+ lib_dirs = self.compiler.library_dirs + [
+- '/lib64', '/usr/lib64',
+- '/lib', '/usr/lib',
++ libname, '/usr/'+libname
+ ]
inc_dirs = self.compiler.include_dirs + ['/usr/include']
exts = []
+@@ -496,11 +496,11 @@
+ elif curses_library:
+ readline_libs.append(curses_library)
+ elif self.compiler.find_library_file(lib_dirs +
+- ['/usr/lib/termcap'],
++ ['/usr' + libname + '/termcap'],
+ 'termcap'):
+ readline_libs.append('termcap')
+ exts.append( Extension('readline', ['readline.c'],
+- library_dirs=['/usr/lib/termcap'],
++ library_dirs=['/usr' + libname + '/termcap'],
+ extra_link_args=readline_extra_link_args,
+ libraries=readline_libs) )
+ else:
+@@ -1244,8 +1244,8 @@
+ added_lib_dirs.append('/usr/openwin/lib')
+ elif os.path.exists('/usr/X11R6/include'):
+ include_dirs.append('/usr/X11R6/include')
+- added_lib_dirs.append('/usr/X11R6/lib64')
+- added_lib_dirs.append('/usr/X11R6/lib')
++ added_lib_dirs.append('/usr/X11R6/'+sys.lib)
++ #added_lib_dirs.append('/usr/X11R6/lib')
+ elif os.path.exists('/usr/X11R5/include'):
+ include_dirs.append('/usr/X11R5/include')
+ added_lib_dirs.append('/usr/X11R5/lib')
+--- Python-2.7/Lib/test/test_site.py~ 2010-05-14 01:59:41.000000000 +0200
++++ Python-2.7/Lib/test/test_site.py 2010-07-05 20:36:37.311186935 +0200
+@@ -226,7 +226,7 @@
+
+ if sys.platform in ('os2emx', 'riscos'):
+ self.assertEqual(len(dirs), 1)
+- wanted = os.path.join('xoxo', 'Lib', 'site-packages')
++ wanted = os.path.join('xoxo', sys.lib, 'site-packages')
+ self.assertEqual(dirs[0], wanted)
+ elif (sys.platform == "darwin" and
+ sysconfig.get_config_var("PYTHONFRAMEWORK")):
+@@ -242,16 +242,16 @@
+ elif os.sep == '/':
+ # OS X non-framwework builds, Linux, FreeBSD, etc
+ self.assertEqual(len(dirs), 2)
+- wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3],
++ wanted = os.path.join('xoxo', sys.lib, 'python' + sys.version[:3],
+ 'site-packages')
+ self.assertEqual(dirs[0], wanted)
+- wanted = os.path.join('xoxo', 'lib', 'site-python')
++ wanted = os.path.join('xoxo', sys.lib, 'site-python')
+ self.assertEqual(dirs[1], wanted)
+ else:
+ # other platforms
+ self.assertEqual(len(dirs), 2)
+ self.assertEqual(dirs[0], 'xoxo')
+- wanted = os.path.join('xoxo', 'lib', 'site-packages')
++ wanted = os.path.join('xoxo', sys.lib, 'site-packages')
+ self.assertEqual(dirs[1], wanted)
+ class PthFile(object):
+--- Python-2.7/Lib/sysconfig.py.org 2010-05-20 00:20:14.000000000 +0200
++++ Python-2.7/Lib/sysconfig.py 2010-07-06 08:31:15.687728628 +0200
+@@ -5,22 +5,24 @@
+ import os
+ from os.path import pardir, realpath
+
++libname = sys.lib
++
+ _INSTALL_SCHEMES = {
+ 'posix_prefix': {
+- 'stdlib': '{base}/lib/python{py_version_short}',
+- 'platstdlib': '{platbase}/lib/python{py_version_short}',
+- 'purelib': '{base}/lib/python{py_version_short}/site-packages',
+- 'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
++ 'stdlib': '{base}/' + libname + '/python{py_version_short}',
++ 'platstdlib': '{platbase}/' + libname + '/python{py_version_short}',
++ 'purelib': '{base}/' + libname + '/python{py_version_short}/site-packages',
++ 'platlib': '{platbase}/' + libname + '/python{py_version_short}/site-packages',
+ 'include': '{base}/include/python{py_version_short}',
+ 'platinclude': '{platbase}/include/python{py_version_short}',
+ 'scripts': '{base}/bin',
+ 'data': '{base}',
+ },
+ 'posix_home': {
+- 'stdlib': '{base}/lib/python',
+- 'platstdlib': '{base}/lib/python',
+- 'purelib': '{base}/lib/python',
+- 'platlib': '{base}/lib/python',
++ 'stdlib': '{base}/' + libname + '/python',
++ 'platstdlib': '{base}/' + libname + '/python',
++ 'purelib': '{base}/' + libname + '/python',
++ 'platlib': '{base}/' + libname + '/python',
+ 'include': '{base}/include/python',
+ 'platinclude': '{base}/include/python',
+ 'scripts': '{base}/bin',
+@@ -65,10 +67,10 @@
+ 'data' : '{userbase}',
+ },
+ 'posix_user': {
+- 'stdlib': '{userbase}/lib/python{py_version_short}',
+- 'platstdlib': '{userbase}/lib/python{py_version_short}',
+- 'purelib': '{userbase}/lib/python{py_version_short}/site-packages',
+- 'platlib': '{userbase}/lib/python{py_version_short}/site-packages',
++ 'stdlib': '{userbase}/' + libname + '/python{py_version_short}',
++ 'platstdlib': '{userbase}/' + libname + '/python{py_version_short}',
++ 'purelib': '{userbase}/' + libname + '/python{py_version_short}/site-packages',
++ 'platlib': '{userbase}/' + libname + '/python{py_version_short}/site-packages',
+ 'include': '{userbase}/include/python{py_version_short}',
+ 'scripts': '{userbase}/bin',
+ 'data' : '{userbase}',