changeset 6204:f4ace7b10c94

python-2-6: update with fixes from python[-2.4].
author Jan Nieuwenhuizen <janneke@gnu.org>
date Tue, 28 Aug 2012 09:48:59 +0200
parents f60548642152
children bd0d8fb7845d
files gub/specs/python-2-6.py patches/python-2.6.4-setup-cross.patch
diffstat 2 files changed, 120 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/gub/specs/python-2-6.py	Tue Aug 28 09:28:06 2012 +0200
+++ b/gub/specs/python-2-6.py	Tue Aug 28 09:48:59 2012 +0200
@@ -23,6 +23,7 @@
 #        'python-2.4.5-db4.7.patch',
         'python-2.6.4-configure.in-cross.patch',
         'python-2.6.4-include-pc.patch',
+        'python-2.6.4-setup-cross.patch',
         ]
     config_cache_overrides = python.Python.config_cache_overrides + '''
 ac_cv_have_chflags=no
@@ -65,12 +66,13 @@
 
 class Python_2_6__tools (python.Python__tools):
     source = Python_2_6.source
-    patches = []
+    patches = [
+        'python-2.6.4-readline.patch',
+        'python-2.6.4-setup-cross.patch',
+        ]
     dependencies = ['autoconf', 'libtool']
     force_autoupdate = True
     make_flags = python.Python__tools.make_flags
     so_modules = Python_2_6.so_modules
     def patch (self):
         tools.AutoBuild.patch (self)
-        # Stop python from reading ~/.inputrc
-        self.apply_patch('python-2.6.4-readline.patch')
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/python-2.6.4-setup-cross.patch	Tue Aug 28 09:48:59 2012 +0200
@@ -0,0 +1,115 @@
+Teach the python module compiler setup.py about cross compilation.
+
+--- python-2-6-2.6.4/setup.py.orig	2012-08-28 08:30:53.821113419 +0200
++++ python-2-6-2.6.4/setup.py	2012-08-28 08:34:36.604832292 +0200
+@@ -16,6 +16,20 @@
+ from distutils.command.install import install
+ from distutils.command.install_lib import install_lib
+ 
++def exists_in_sysroot (f):
++    print >>sys.stderr, 'GUB: ', f
++    print >>sys.stderr, 'targetdir', os.environ.get ('targetdir', '')
++    print >>sys.stderr, 'system_root', os.environ.get ('system_root', '')
++    if (f.startswith ('/')
++        and not f.startswith (os.environ.get ('alltargetdir', ''))):
++        f = os.environ.get ('system_root', '') + f
++    print >>sys.stderr, 'GUB: looking for', f
++    if os_path_exists (f):
++       return f
++    return False
++os_path_exists = os.path.exists
++os.path.exists = exists_in_sysroot
++
+ # This global variable is used to hold the list of modules to be disabled.
+ disabled_module_list = []
+ 
+@@ -41,13 +55,14 @@
+     # Check the standard locations
+     for dir in std_dirs:
+         f = os.path.join(dir, filename)
+-        if os.path.exists(f): return []
++        if os.path.exists(f):
++            return [os.path.exists(dir)]
+ 
+     # Check the additional directories
+     for dir in paths:
+         f = os.path.join(dir, filename)
+         if os.path.exists(f):
+-            return [dir]
++            return [os.path.exists (dir)]
+ 
+     # Not found anywhere
+     return None
+@@ -796,7 +811,8 @@
+             for d in inc_dirs + db_inc_paths:
+                 f = os.path.join(d, "db.h")
+                 if db_setup_debug: print "db: looking for db.h in", f
+-                if os.path.exists(f):
++                f = os.path.exists(f)
++                if f:
+                     f = open(f).read()
+                     m = re.search(r"#define\WDB_VERSION_MAJOR\W(\d+)", f)
+                     if m:
+@@ -818,9 +834,9 @@
+                             allow_db_ver(db_ver) ):
+                             # save the include directory with the db.h version
+                             # (first occurrence only)
+-                            db_ver_inc_map[db_ver] = d
++                            db_ver_inc_map[db_ver] = os.path.exists (d)
+                             if db_setup_debug:
+-                                print "db.h: found", db_ver, "in", d
++                                print "db.h: found", db_ver, "in", os.path.exists (d)
+                         else:
+                             # we already found a header for this library version
+                             if db_setup_debug: print "db.h: ignoring", d
+@@ -905,7 +921,8 @@
+         # where /usr/include contains an old version of sqlite.
+         for d in inc_dirs + sqlite_inc_paths:
+             f = os.path.join(d, "sqlite3.h")
+-            if os.path.exists(f):
++            f = os.path.exists(f)
++            if f:
+                 if sqlite_setup_debug: print "sqlite: found %s"%f
+                 incf = open(f).read()
+                 m = re.search(
+@@ -990,7 +1007,8 @@
+         # the more recent berkeleydb's db.h file first in the include path
+         # when attempting to compile and it will fail.
+         f = "/usr/include/db.h"
+-        if os.path.exists(f) and not db_incs:
++        f = os.path.exists (f)
++        if f and not db_incs:
+             data = open(f).read()
+             m = re.search(r"#s*define\s+HASHVERSION\s+2\s*", data)
+             if m is not None:
+--- python-2.4.5/Makefile.pre.in~	2012-08-27 18:01:49.608729518 +0200
++++ python-2.4.5/Makefile.pre.in	2012-08-27 18:06:05.118707910 +0200
+@@ -895,7 +895,7 @@ sharedinstall:
+ 		--prefix=$(prefix) \
+ 		--install-scripts=$(BINDIR) \
+ 		--install-platlib=$(DESTSHARED) \
+-		--root=/$(DESTDIR)
++		--root=$(DESTDIR)
+ 
+ # Here are a couple of targets for MacOSX again, to install a full
+ # framework-based Python. frameworkinstall installs everything, the
+@@ -965,7 +965,7 @@ scriptsinstall:
+ 	./$(PYTHON_FOR_BUILD) $(srcdir)/Tools/scripts/setup.py install \
+ 	--prefix=$(prefix) \
+ 	--install-scripts=$(BINDIR) \
+-	--root=/$(DESTDIR)
++	--root=$(DESTDIR)
+ 
+ # Build the toplevel Makefile
+ Makefile.pre: Makefile.pre.in config.status
+--- python-2.4.5/Lib/distutils/unixccompiler.py~	2012-08-27 21:51:36.950636210 +0200
++++ python-2.4.5/Lib/distutils/unixccompiler.py	2012-08-27 21:50:00.732128349 +0200
+@@ -249,7 +249,7 @@
+         # this time, there's no way to determine this information from
+         # the configuration data stored in the Python installation, so
+         # we use this hack.
+-        compiler = os.path.basename(sysconfig.get_config_var("CC"))
++        compiler = os.path.basename(sysconfig.get_config_var("CC").split ()[0])
+         if sys.platform[:6] == "darwin":
+             # MacOSX's linker doesn't understand the -R flag at all
+             return "-L" + dir