]> git.ipfire.org Git - people/ms/ipfire-3.x.git/commitdiff
python: Make package ready for x86_64.
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 23 Dec 2011 13:43:27 +0000 (14:43 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 23 Dec 2011 13:43:27 +0000 (14:43 +0100)
python/patches/python-2.7.1-config.patch [new file with mode: 0644]
python/python-2.7-lib64-sysconfig.patch [new file with mode: 0644]
python/python-2.7.1-lib64.patch [new file with mode: 0644]
python/python.nm

diff --git a/python/patches/python-2.7.1-config.patch b/python/patches/python-2.7.1-config.patch
new file mode 100644 (file)
index 0000000..0bb790e
--- /dev/null
@@ -0,0 +1,281 @@
+diff -up Python-2.7.1/Modules/Setup.dist.rhconfig Python-2.7.1/Modules/Setup.dist
+--- Python-2.7.1/Modules/Setup.dist.rhconfig   2010-08-21 07:40:30.000000000 -0400
++++ Python-2.7.1/Modules/Setup.dist    2010-12-23 15:47:12.111059967 -0500
+@@ -153,7 +153,7 @@ GLHACK=-Dclear=__GLclear
+ # modules are to be built as shared libraries (see above for more
+ # detail; also note that *static* reverses this effect):
+-#*shared*
++*shared*
+ # GNU readline.  Unlike previous Python incarnations, GNU readline is
+ # now incorporated in an optional module, configured in the Setup file
+@@ -163,73 +163,73 @@ GLHACK=-Dclear=__GLclear
+ # it, depending on your system -- see the GNU readline instructions.
+ # It's okay for this to be a shared library, too.
+-#readline readline.c -lreadline -ltermcap
++readline readline.c -lreadline -ltermcap
+ # Modules that should always be present (non UNIX dependent):
+-#array arraymodule.c  # array objects
+-#cmath cmathmodule.c _math.c # -lm # complex math library functions
+-#math mathmodule.c _math.c # -lm # math library functions, e.g. sin()
+-#_struct _struct.c    # binary structure packing/unpacking
+-#time timemodule.c # -lm # time operations and variables
+-#operator operator.c  # operator.add() and similar goodies
+-#_testcapi _testcapimodule.c    # Python C API test module
+-#_random _randommodule.c      # Random number generator
+-#_collections _collectionsmodule.c # Container types
+-#itertools itertoolsmodule.c  # Functions creating iterators for efficient looping 
+-#strop stropmodule.c          # String manipulations
+-#_functools _functoolsmodule.c        # Tools for working with functions and callable objects
++array arraymodule.c   # array objects
++cmath cmathmodule.c _math.c # -lm # complex math library functions
++math mathmodule.c _math.c # -lm # math library functions, e.g. sin()
++_struct _struct.c     # binary structure packing/unpacking
++time timemodule.c # -lm # time operations and variables
++operator operator.c   # operator.add() and similar goodies
++_testcapi _testcapimodule.c    # Python C API test module
++_random _randommodule.c       # Random number generator
++_collections _collectionsmodule.c # Container types
++itertools itertoolsmodule.c   # Functions creating iterators for efficient looping 
++strop stropmodule.c           # String manipulations
++_functools _functoolsmodule.c # Tools for working with functions and callable objects
+ #_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c       # elementtree accelerator
+ #_pickle _pickle.c    # pickle accelerator
+ #datetime datetimemodule.c    # date/time type
+-#_bisect _bisectmodule.c      # Bisection algorithms
++_bisect _bisectmodule.c       # Bisection algorithms
+-#unicodedata unicodedata.c    # static Unicode character database
++unicodedata unicodedata.c    # static Unicode character database
+ # access to ISO C locale support
+-#_locale _localemodule.c  # -lintl
++_locale _localemodule.c  # -lintl
+ # Modules with some UNIX dependencies -- on by default:
+ # (If you have a really backward UNIX, select and socket may not be
+ # supported...)
+-#fcntl fcntlmodule.c  # fcntl(2) and ioctl(2)
+-#spwd spwdmodule.c            # spwd(3) 
+-#grp grpmodule.c              # grp(3)
+-#select selectmodule.c        # select(2); not on ancient System V
++fcntl fcntlmodule.c   # fcntl(2) and ioctl(2)
++spwd spwdmodule.c             # spwd(3) 
++grp grpmodule.c               # grp(3)
++select selectmodule.c # select(2); not on ancient System V
+ # Memory-mapped files (also works on Win32).
+-#mmap mmapmodule.c
++mmap mmapmodule.c
+ # CSV file helper
+-#_csv _csv.c
++_csv _csv.c
+ # Socket module helper for socket(2)
+-#_socket socketmodule.c
++_socket socketmodule.c
+ # Socket module helper for SSL support; you must comment out the other
+ # socket line above, and possibly edit the SSL variable:
+ #SSL=/usr/local/ssl
+-#_ssl _ssl.c \
+-#     -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
+-#     -L$(SSL)/lib -lssl -lcrypto
++_ssl _ssl.c \
++      -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
++      -L$(SSL)/lib -lssl -lcrypto
+ # The crypt module is now disabled by default because it breaks builds
+ # on many systems (where -lcrypt is needed), e.g. Linux (I believe).
+ #
+ # First, look at Setup.config; configure may have set this for you.
+-#crypt cryptmodule.c # -lcrypt        # crypt(3); needs -lcrypt on some systems
++crypt cryptmodule.c -lcrypt   # crypt(3); needs -lcrypt on some systems
+ # Some more UNIX dependent modules -- off by default, since these
+ # are not supported by all UNIX systems:
+-#nis nismodule.c -lnsl        # Sun yellow pages -- not everywhere
+-#termios termios.c    # Steen Lumholt's termios module
+-#resource resource.c  # Jeremy Hylton's rlimit interface
++nis nismodule.c -lnsl # Sun yellow pages -- not everywhere
++termios termios.c     # Steen Lumholt's termios module
++resource resource.c   # Jeremy Hylton's rlimit interface
+ # Multimedia modules -- off by default.
+@@ -237,8 +237,8 @@ GLHACK=-Dclear=__GLclear
+ # #993173 says audioop works on 64-bit platforms, though.
+ # These represent audio samples or images as strings:
+-#audioop audioop.c    # Operations on audio samples
+-#imageop imageop.c    # Operations on images
++audioop audioop.c     # Operations on audio samples
++imageop imageop.c     # Operations on images
+ # Note that the _md5 and _sha modules are normally only built if the
+@@ -248,14 +248,14 @@ GLHACK=-Dclear=__GLclear
+ # Message-Digest Algorithm, described in RFC 1321.  The necessary files
+ # md5.c and md5.h are included here.
+-#_md5 md5module.c md5.c
++_md5 md5module.c md5.c
+ # The _sha module implements the SHA checksum algorithms.
+ # (NIST's Secure Hash Algorithms.)
+-#_sha shamodule.c
+-#_sha256 sha256module.c
+-#_sha512 sha512module.c
++_sha shamodule.c
++_sha256 sha256module.c
++_sha512 sha512module.c
+ # SGI IRIX specific modules -- off by default.
+@@ -302,12 +302,12 @@ GLHACK=-Dclear=__GLclear
+ # A Linux specific module -- off by default; this may also work on 
+ # some *BSDs.
+-#linuxaudiodev linuxaudiodev.c
++linuxaudiodev linuxaudiodev.c
+ # George Neville-Neil's timing module:
+-#timing timingmodule.c
++timing timingmodule.c
+ # The _tkinter module.
+@@ -322,7 +322,7 @@ GLHACK=-Dclear=__GLclear
+ # every system.
+ # *** Always uncomment this (leave the leading underscore in!):
+-# _tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
++_tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
+ # *** Uncomment and edit to reflect where your Tcl/Tk libraries are:
+ #     -L/usr/local/lib \
+ # *** Uncomment and edit to reflect where your Tcl/Tk headers are:
+@@ -332,7 +332,7 @@ GLHACK=-Dclear=__GLclear
+ # *** Or uncomment this for Solaris:
+ #     -I/usr/openwin/include \
+ # *** Uncomment and edit for Tix extension only:
+-#     -DWITH_TIX -ltix8.1.8.2 \
++      -DWITH_TIX -ltix \
+ # *** Uncomment and edit for BLT extension only:
+ #     -DWITH_BLT -I/usr/local/blt/blt8.0-unoff/include -lBLT8.0 \
+ # *** Uncomment and edit for PIL (TkImaging) extension only:
+@@ -341,7 +341,7 @@ GLHACK=-Dclear=__GLclear
+ # *** Uncomment and edit for TOGL extension only:
+ #     -DWITH_TOGL togl.c \
+ # *** Uncomment and edit to reflect your Tcl/Tk versions:
+-#     -ltk8.2 -ltcl8.2 \
++      -ltk -ltcl \
+ # *** Uncomment and edit to reflect where your X11 libraries are:
+ #     -L/usr/X11R6/lib \
+ # *** Or uncomment this for Solaris:
+@@ -351,7 +351,7 @@ GLHACK=-Dclear=__GLclear
+ # *** Uncomment for AIX:
+ #     -lld \
+ # *** Always uncomment this; X11 libraries to link with:
+-#     -lX11
++      -lX11
+ # Lance Ellinghaus's syslog module
+ #syslog syslogmodule.c                # syslog daemon interface
+@@ -373,7 +373,7 @@ GLHACK=-Dclear=__GLclear
+ # it is a highly experimental and dangerous device for calling
+ # *arbitrary* C functions in *arbitrary* shared libraries:
+-#dl dlmodule.c
++dl dlmodule.c
+ # Modules that provide persistent dictionary-like semantics.  You will
+@@ -396,7 +396,7 @@ GLHACK=-Dclear=__GLclear
+ #
+ # First, look at Setup.config; configure may have set this for you.
+-#gdbm gdbmmodule.c -I/usr/local/include -L/usr/local/lib -lgdbm
++gdbm gdbmmodule.c -lgdbm
+ # Sleepycat Berkeley DB interface.
+@@ -411,11 +411,10 @@ GLHACK=-Dclear=__GLclear
+ #
+ # Edit the variables DB and DBLIBVERto point to the db top directory
+ # and the subdirectory of PORT where you built it.
+-#DB=/usr/local/BerkeleyDB.4.0
+-#DBLIBVER=4.0
+-#DBINC=$(DB)/include
+-#DBLIB=$(DB)/lib
+-#_bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb-$(DBLIBVER)
++DBLIBVER=4.7
++DBINC=/usr/include/db4
++DBLIB=/usr/lib
++_bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb-$(DBLIBVER)
+ # Historical Berkeley DB 1.85
+ #
+@@ -430,14 +429,14 @@ GLHACK=-Dclear=__GLclear
+ # Helper module for various ascii-encoders
+-#binascii binascii.c
++binascii binascii.c
+ # Fred Drake's interface to the Python parser
+-#parser parsermodule.c
++parser parsermodule.c
+ # cStringIO and cPickle
+-#cStringIO cStringIO.c
+-#cPickle cPickle.c
++cStringIO cStringIO.c
++cPickle cPickle.c
+ # Lee Busby's SIGFPE modules.
+@@ -460,7 +459,7 @@ GLHACK=-Dclear=__GLclear
+ # Andrew Kuchling's zlib module.
+ # This require zlib 1.1.3 (or later).
+ # See http://www.gzip.org/zlib/
+-#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
++zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
+ # Interface to the Expat XML parser
+ #
+@@ -479,14 +478,14 @@ GLHACK=-Dclear=__GLclear
+ # Hye-Shik Chang's CJKCodecs
+ # multibytecodec is required for all the other CJK codec modules
+-#_multibytecodec cjkcodecs/multibytecodec.c
++_multibytecodec cjkcodecs/multibytecodec.c
+-#_codecs_cn cjkcodecs/_codecs_cn.c
+-#_codecs_hk cjkcodecs/_codecs_hk.c
+-#_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
+-#_codecs_jp cjkcodecs/_codecs_jp.c
+-#_codecs_kr cjkcodecs/_codecs_kr.c
+-#_codecs_tw cjkcodecs/_codecs_tw.c
++_codecs_cn cjkcodecs/_codecs_cn.c
++_codecs_hk cjkcodecs/_codecs_hk.c
++_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
++_codecs_jp cjkcodecs/_codecs_jp.c
++_codecs_kr cjkcodecs/_codecs_kr.c
++_codecs_tw cjkcodecs/_codecs_tw.c
+ # Example -- included for reference only:
+ # xx xxmodule.c
diff --git a/python/python-2.7-lib64-sysconfig.patch b/python/python-2.7-lib64-sysconfig.patch
new file mode 100644 (file)
index 0000000..0cef361
--- /dev/null
@@ -0,0 +1,44 @@
+diff -up Python-2.7/Lib/sysconfig.py.lib64-sysconfig Python-2.7/Lib/sysconfig.py
+--- Python-2.7/Lib/sysconfig.py.lib64-sysconfig        2010-07-08 14:18:41.386898476 -0400
++++ Python-2.7/Lib/sysconfig.py        2010-07-08 14:22:02.837896461 -0400
+@@ -7,20 +7,20 @@ from os.path import pardir, realpath
+ _INSTALL_SCHEMES = {
+     'posix_prefix': {
+-        'stdlib': '{base}/lib/python{py_version_short}',
+-        'platstdlib': '{platbase}/lib/python{py_version_short}',
++        'stdlib': '{base}/lib64/python{py_version_short}',
++        'platstdlib': '{platbase}/lib64/python{py_version_short}',
+         'purelib': '{base}/lib/python{py_version_short}/site-packages',
+-        'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
++        'platlib': '{platbase}/lib64/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',
++        'stdlib': '{base}/lib64/python',
++        'platstdlib': '{base}/lib64/python',
+         'purelib': '{base}/lib/python',
+-        'platlib': '{base}/lib/python',
++        'platlib': '{base}/lib64/python',
+         'include': '{base}/include/python',
+         'platinclude': '{base}/include/python',
+         'scripts': '{base}/bin',
+@@ -65,10 +65,10 @@ _INSTALL_SCHEMES = {
+         'data'   : '{userbase}',
+         },
+     'posix_user': {
+-        'stdlib': '{userbase}/lib/python{py_version_short}',
+-        'platstdlib': '{userbase}/lib/python{py_version_short}',
++        'stdlib': '{userbase}/lib64/python{py_version_short}',
++        'platstdlib': '{userbase}/lib64/python{py_version_short}',
+         'purelib': '{userbase}/lib/python{py_version_short}/site-packages',
+-        'platlib': '{userbase}/lib/python{py_version_short}/site-packages',
++        'platlib': '{userbase}/lib64/python{py_version_short}/site-packages',
+         'include': '{userbase}/include/python{py_version_short}',
+         'scripts': '{userbase}/bin',
+         'data'   : '{userbase}',
diff --git a/python/python-2.7.1-lib64.patch b/python/python-2.7.1-lib64.patch
new file mode 100644 (file)
index 0000000..4b07470
--- /dev/null
@@ -0,0 +1,199 @@
+diff -up Python-2.7.1/Lib/distutils/command/install.py.lib64 Python-2.7.1/Lib/distutils/command/install.py
+--- Python-2.7.1/Lib/distutils/command/install.py.lib64        2010-05-05 15:09:31.000000000 -0400
++++ Python-2.7.1/Lib/distutils/command/install.py      2010-12-23 15:51:19.422062062 -0500
+@@ -42,14 +42,14 @@ else:
+ INSTALL_SCHEMES = {
+     'unix_prefix': {
+         'purelib': '$base/lib/python$py_version_short/site-packages',
+-        'platlib': '$platbase/lib/python$py_version_short/site-packages',
++        'platlib': '$platbase/lib64/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',
+-        'platlib': '$base/lib/python',
++        'platlib': '$base/lib64/python',
+         'headers': '$base/include/python/$dist_name',
+         'scripts': '$base/bin',
+         'data'   : '$base',
+diff -up Python-2.7.1/Lib/distutils/sysconfig.py.lib64 Python-2.7.1/Lib/distutils/sysconfig.py
+--- Python-2.7.1/Lib/distutils/sysconfig.py.lib64      2010-11-06 10:16:30.000000000 -0400
++++ Python-2.7.1/Lib/distutils/sysconfig.py    2010-12-23 15:51:19.423063652 -0500
+@@ -114,8 +114,12 @@ def get_python_lib(plat_specific=0, stan
+         prefix = plat_specific and EXEC_PREFIX or PREFIX
+     if os.name == "posix":
++        if plat_specific or standard_lib:
++            lib = "lib64"
++        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 -up Python-2.7.1/Lib/site.py.lib64 Python-2.7.1/Lib/site.py
+--- Python-2.7.1/Lib/site.py.lib64     2010-10-12 18:53:51.000000000 -0400
++++ Python-2.7.1/Lib/site.py   2010-12-23 15:51:19.424063606 -0500
+@@ -290,12 +290,16 @@ def getsitepackages():
+         if sys.platform in ('os2emx', 'riscos'):
+             sitepackages.append(os.path.join(prefix, "Lib", "site-packages"))
+         elif os.sep == '/':
++            sitepackages.append(os.path.join(prefix, "lib64",
++                                        "python" + sys.version[:3],
++                                        "site-packages"))
+             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, "lib64", "site-packages"))
+             sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
+         if sys.platform == "darwin":
+             # for framework builds *only* we add the standard Apple
+diff -up Python-2.7.1/Lib/test/test_site.py.lib64 Python-2.7.1/Lib/test/test_site.py
+--- Python-2.7.1/Lib/test/test_site.py.lib64   2010-11-21 08:34:58.000000000 -0500
++++ Python-2.7.1/Lib/test/test_site.py 2010-12-23 15:55:19.782935931 -0500
+@@ -169,17 +169,20 @@ class HelperFunctionsTests(unittest.Test
+             wanted = os.path.join('xoxo', 'Lib', 'site-packages')
+             self.assertEqual(dirs[0], wanted)
+         elif os.sep == '/':
+-            self.assertEqual(len(dirs), 2)
++            self.assertEquals(len(dirs), 3)
++            wanted = os.path.join('xoxo', 'lib64', 'python' + sys.version[:3],
++                                  'site-packages')
++            self.assertEquals(dirs[0], wanted)
+             wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3],
+                                   'site-packages')
+-            self.assertEqual(dirs[0], wanted)
++            self.assertEquals(dirs[1], wanted)
+             wanted = os.path.join('xoxo', 'lib', 'site-python')
+-            self.assertEqual(dirs[1], wanted)
++            self.assertEquals(dirs[2], wanted)
+         else:
+-            self.assertEqual(len(dirs), 2)
+-            self.assertEqual(dirs[0], 'xoxo')
+-            wanted = os.path.join('xoxo', 'lib', 'site-packages')
+-            self.assertEqual(dirs[1], wanted)
++            self.assertEquals(len(dirs), 2)
++            self.assertEquals(dirs[0], 'xoxo')
++            wanted = os.path.join('xoxo', 'lib64', 'site-packages')
++            self.assertEquals(dirs[1], wanted)
+         # let's try the specific Apple location
+         if (sys.platform == "darwin" and
+diff -up Python-2.7.1/Makefile.pre.in.lib64 Python-2.7.1/Makefile.pre.in
+--- Python-2.7.1/Makefile.pre.in.lib64 2010-12-23 15:51:19.407063264 -0500
++++ Python-2.7.1/Makefile.pre.in       2010-12-23 15:51:19.426063917 -0500
+@@ -94,7 +94,7 @@ LIBDIR=              @libdir@
+ MANDIR=               @mandir@
+ INCLUDEDIR=   @includedir@
+ CONFINCLUDEDIR=       $(exec_prefix)/include
+-SCRIPTDIR=    $(prefix)/lib
++SCRIPTDIR=    $(prefix)/lib64
+ # Detailed destination directories
+ BINLIBDEST=   $(LIBDIR)/python$(VERSION)
+diff -up Python-2.7.1/Modules/getpath.c.lib64 Python-2.7.1/Modules/getpath.c
+--- Python-2.7.1/Modules/getpath.c.lib64       2010-10-07 19:37:08.000000000 -0400
++++ Python-2.7.1/Modules/getpath.c     2010-12-23 15:51:19.427063291 -0500
+@@ -117,8 +117,8 @@
+ #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"
+ #endif
+ #ifndef LANDMARK
+@@ -129,7 +129,7 @@ static char prefix[MAXPATHLEN+1];
+ 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 void
+ reduce(char *dir)
+@@ -528,7 +528,7 @@ calculate_path(void)
+     }
+     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];
+@@ -538,7 +538,7 @@ calculate_path(void)
+             fprintf(stderr,
+                 "Could not find platform dependent libraries <exec_prefix>\n");
+         strncpy(exec_prefix, EXEC_PREFIX, MAXPATHLEN);
+-        joinpath(exec_prefix, "lib/lib-dynload");
++        joinpath(exec_prefix, "lib64/lib-dynload");
+     }
+     /* If we found EXEC_PREFIX do *not* reduce it!  (Yet.) */
+diff -up Python-2.7.1/Modules/Setup.dist.lib64 Python-2.7.1/Modules/Setup.dist
+--- Python-2.7.1/Modules/Setup.dist.lib64      2010-12-23 15:51:19.400104130 -0500
++++ Python-2.7.1/Modules/Setup.dist    2010-12-23 15:51:19.427063291 -0500
+@@ -413,7 +413,7 @@ gdbm gdbmmodule.c -lgdbm
+ # and the subdirectory of PORT where you built it.
+ DBLIBVER=4.7
+ DBINC=/usr/include/db4
+-DBLIB=/usr/lib
++DBLIB=/usr/lib64
+ _bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb-$(DBLIBVER)
+ # Historical Berkeley DB 1.85
+@@ -459,7 +459,7 @@ cPickle cPickle.c
+ # Andrew Kuchling's zlib module.
+ # This require zlib 1.1.3 (or later).
+ # See http://www.gzip.org/zlib/
+-zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
++zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib64 -lz
+ # Interface to the Expat XML parser
+ #
+diff -up Python-2.7.1/setup.py.lib64 Python-2.7.1/setup.py
+--- Python-2.7.1/setup.py.lib64        2010-10-31 12:40:21.000000000 -0400
++++ Python-2.7.1/setup.py      2010-12-23 15:51:19.428064129 -0500
+@@ -347,7 +347,7 @@ class PyBuildExt(build_ext):
+     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.library_dirs, '/usr/local/lib64')
+         add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
+         # Add paths specified in the environment variables LDFLAGS and
+@@ -654,11 +654,11 @@ class PyBuildExt(build_ext):
+             elif curses_library:
+                 readline_libs.append(curses_library)
+             elif self.compiler.find_library_file(lib_dirs +
+-                                                     ['/usr/lib/termcap'],
++                                                     ['/usr/lib64/termcap'],
+                                                      'termcap'):
+                 readline_libs.append('termcap')
+             exts.append( Extension('readline', ['readline.c'],
+-                                   library_dirs=['/usr/lib/termcap'],
++                                   library_dirs=['/usr/lib64/termcap'],
+                                    extra_link_args=readline_extra_link_args,
+                                    libraries=readline_libs) )
+         else:
+@@ -692,8 +692,8 @@ class PyBuildExt(build_ext):
+             if krb5_h:
+                 ssl_incs += krb5_h
+         ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
+-                                     ['/usr/local/ssl/lib',
+-                                      '/usr/contrib/ssl/lib/'
++                                     ['/usr/local/ssl/lib64',
++                                      '/usr/contrib/ssl/lib64/'
+                                      ] )
+         if (ssl_incs is not None and
index cfb8e03548392c8a55c9bb305ab12c0bda7837b3..2fe2004a685d92ddefe80b35cda7be5df018defe 100644 (file)
@@ -47,6 +47,12 @@ build
        export CFLAGS  += -D_GNU_SOURCE -fwrapv
 
        prepare_cmds
+               # Apply patches for x86_64.
+               if [ "$(uname -m)" = "x86_64" ]; then
+                       patch -Np1 -i %{DIR_SOURCE}/python-2.7.1-lib64.patch
+                       patch -Np1 -i %{DIR_SOURCE}/python-2.7-lib64-sysconfig.patch
+               fi
+
                sed -e "s/#*shared*/*shared*/g" -i Modules/Setup.dist
 
                # Remove embedded copies of expat, zlib and libffi
@@ -77,7 +83,7 @@ build
 
        install_cmds
                # All *.py files don't need to be executeable...
-               find %{BUILDROOT}%{libdir}/python*/ -name "*.py" | xargs chmod a-x -v
+               find %{BUILDROOT}%{libdir}/python*/ -name "*.py" | xargs -r chmod a-x -v
 
                # Create symlink for shared lib.
                ln -svf ../../libpython%{major_ver}.so %{BUILDROOT}%{libdir}/python%{major_ver}/config/