mirror of
https://git.yoctoproject.org/poky
synced 2026-02-05 16:28:43 +01:00
python, python-native: upgrade from 2.6.6 to 2.7.2
Rebased these patches to the newer code modified: python-native/nohostlibs.patch modified: python/01-use-proper-tools-for-cross-build.patch modified: python/06-avoid_usr_lib_termcap_path_in_linking.patch modified: python/06-ctypes-libffi-fix-configure.patch modified: python/multilib.patch Deleted these patches are the are now upstream deleted: python/02-remove-test-for-cross.patch deleted: python/security_issue_2254_fix.patch Added this patch to python-native new file: python-native/multilib.patch Updated site config file for python modified: ../../site/common-linux : add ac_cv_have_long_long_format for python avoid this error in python: Include/pyport.h:243:13: error: #error "This platform's pyconfig.h needs to define PY_FORMAT_LONG_LONG" Updated default python version modified: ../../conf/distro/include/default-versions.inc (From OE-Core rev: b284e9a512860b8a8380be80f96cebce6b92ff80) Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
0d18f03b22
commit
01103b2f29
240
meta/recipes-devtools/python/python-native/multilib.patch
Normal file
240
meta/recipes-devtools/python/python-native/multilib.patch
Normal file
@@ -0,0 +1,240 @@
|
||||
commit 248279e54467a8cd5cde98fc124d1d1384703513
|
||||
Author: Yu Ke <ke.yu@intel.com>
|
||||
Date: Tue Jun 28 21:21:29 2011 +0800
|
||||
|
||||
SUSE patch for the lib64 issue
|
||||
|
||||
see detail in http://bugs.python.org/issue1294959
|
||||
|
||||
also rebased a bit for Yocto python 2.6.6
|
||||
|
||||
Picked-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
|
||||
2011/09/29
|
||||
The python recipe building was failing because python-native
|
||||
could not handle sys.lib var. sys.lib var is defined in the
|
||||
multilib patch hence added this multilib.patch for python-native
|
||||
recipe.
|
||||
Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
|
||||
|
||||
Index: Python-2.7.2/Include/pythonrun.h
|
||||
===================================================================
|
||||
--- Python-2.7.2.orig/Include/pythonrun.h
|
||||
+++ Python-2.7.2/Include/pythonrun.h
|
||||
@@ -108,6 +108,7 @@ PyAPI_FUNC(char *) Py_GetPath(void);
|
||||
/* In their own files */
|
||||
PyAPI_FUNC(const char *) Py_GetVersion(void);
|
||||
PyAPI_FUNC(const char *) Py_GetPlatform(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);
|
||||
Index: Python-2.7.2/Lib/distutils/command/install.py
|
||||
===================================================================
|
||||
--- Python-2.7.2.orig/Lib/distutils/command/install.py
|
||||
+++ Python-2.7.2/Lib/distutils/command/install.py
|
||||
@@ -22,6 +22,8 @@ from site import USER_BASE
|
||||
from site import USER_SITE
|
||||
|
||||
|
||||
+libname = sys.lib
|
||||
+
|
||||
if sys.version < "2.2":
|
||||
WINDOWS_SCHEME = {
|
||||
'purelib': '$base',
|
||||
@@ -42,7 +44,7 @@ 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/'+libname+'/python$py_version_short/site-packages',
|
||||
'headers': '$base/include/python$py_version_short/$dist_name',
|
||||
'scripts': '$base/bin',
|
||||
'data' : '$base',
|
||||
Index: Python-2.7.2/Lib/pydoc.py
|
||||
===================================================================
|
||||
--- Python-2.7.2.orig/Lib/pydoc.py
|
||||
+++ Python-2.7.2/Lib/pydoc.py
|
||||
@@ -352,7 +352,7 @@ class Doc:
|
||||
|
||||
docloc = os.environ.get("PYTHONDOCS",
|
||||
"http://docs.python.org/library")
|
||||
- basedir = os.path.join(sys.exec_prefix, "lib",
|
||||
+ basedir = os.path.join(sys.exec_prefix, sys.lib,
|
||||
"python"+sys.version[0:3])
|
||||
if (isinstance(object, type(os)) and
|
||||
(object.__name__ in ('errno', 'exceptions', 'gc', 'imp',
|
||||
Index: Python-2.7.2/Lib/site.py
|
||||
===================================================================
|
||||
--- Python-2.7.2.orig/Lib/site.py
|
||||
+++ Python-2.7.2/Lib/site.py
|
||||
@@ -300,13 +300,19 @@ 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, "lib",
|
||||
+ sitepackages.append(os.path.join(prefix, sys.lib,
|
||||
"python" + sys.version[:3],
|
||||
"site-packages"))
|
||||
- sitepackages.append(os.path.join(prefix, "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, sys.lib, "site-python"))
|
||||
+ if sys.lib != "lib":
|
||||
+ 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
|
||||
# locations.
|
||||
Index: Python-2.7.2/Lib/test/test_dl.py
|
||||
===================================================================
|
||||
--- Python-2.7.2.orig/Lib/test/test_dl.py
|
||||
+++ Python-2.7.2/Lib/test/test_dl.py
|
||||
@@ -5,10 +5,11 @@
|
||||
import unittest
|
||||
from test.test_support import verbose, import_module
|
||||
dl = import_module('dl', deprecated=True)
|
||||
+import sys
|
||||
|
||||
sharedlibs = [
|
||||
- ('/usr/lib/libc.so', 'getpid'),
|
||||
- ('/lib/libc.so.6', 'getpid'),
|
||||
+ ('/usr/'+sys.lib+'/libc.so', 'getpid'),
|
||||
+ ('/'+sys.lib+'/libc.so.6', 'getpid'),
|
||||
('/usr/bin/cygwin1.dll', 'getpid'),
|
||||
('/usr/lib/libc.dylib', 'getpid'),
|
||||
]
|
||||
Index: Python-2.7.2/Lib/trace.py
|
||||
===================================================================
|
||||
--- Python-2.7.2.orig/Lib/trace.py
|
||||
+++ Python-2.7.2/Lib/trace.py
|
||||
@@ -762,10 +762,10 @@ def main(argv=None):
|
||||
# should I also call expanduser? (after all, could use $HOME)
|
||||
|
||||
s = s.replace("$prefix",
|
||||
- os.path.join(sys.prefix, "lib",
|
||||
+ os.path.join(sys.prefix, sys.lib,
|
||||
"python" + sys.version[:3]))
|
||||
s = s.replace("$exec_prefix",
|
||||
- os.path.join(sys.exec_prefix, "lib",
|
||||
+ os.path.join(sys.exec_prefix, sys.lib,
|
||||
"python" + sys.version[:3]))
|
||||
s = os.path.normpath(s)
|
||||
ignore_dirs.append(s)
|
||||
Index: Python-2.7.2/Makefile.pre.in
|
||||
===================================================================
|
||||
--- Python-2.7.2.orig/Makefile.pre.in
|
||||
+++ Python-2.7.2/Makefile.pre.in
|
||||
@@ -81,6 +81,7 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG
|
||||
|
||||
# Machine-dependent subdirectories
|
||||
MACHDEP= @MACHDEP@
|
||||
+LIB= @LIB@
|
||||
|
||||
# Install prefix for architecture-independent files
|
||||
prefix= @prefix@
|
||||
@@ -97,7 +98,7 @@ LIBDIR= @libdir@
|
||||
MANDIR= @mandir@
|
||||
INCLUDEDIR= @includedir@
|
||||
CONFINCLUDEDIR= $(exec_prefix)/include
|
||||
-SCRIPTDIR= $(prefix)/lib
|
||||
+SCRIPTDIR= $(prefix)/@LIB@
|
||||
|
||||
# Detailed destination directories
|
||||
BINLIBDEST= $(LIBDIR)/python$(VERSION)
|
||||
@@ -532,6 +533,7 @@ Modules/getpath.o: $(srcdir)/Modules/get
|
||||
-DEXEC_PREFIX='"$(exec_prefix)"' \
|
||||
-DVERSION='"$(VERSION)"' \
|
||||
-DVPATH='"$(VPATH)"' \
|
||||
+ -DLIB='"$(LIB)"' \
|
||||
-o $@ $(srcdir)/Modules/getpath.c
|
||||
|
||||
Modules/python.o: $(srcdir)/Modules/python.c
|
||||
@@ -566,7 +568,7 @@ $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES)
|
||||
Python/compile.o Python/symtable.o Python/ast.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)"' -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
|
||||
Index: Python-2.7.2/Modules/getpath.c
|
||||
===================================================================
|
||||
--- Python-2.7.2.orig/Modules/getpath.c
|
||||
+++ Python-2.7.2/Modules/getpath.c
|
||||
@@ -116,9 +116,11 @@
|
||||
#define EXEC_PREFIX PREFIX
|
||||
#endif
|
||||
|
||||
+#define LIB_PYTHON LIB "/python" VERSION
|
||||
+
|
||||
#ifndef PYTHONPATH
|
||||
-#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
|
||||
- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"
|
||||
+#define PYTHONPATH PREFIX "/" LIB_PYTHON ":" \
|
||||
+ EXEC_PREFIX "/" LIB_PYTHON "/lib-dynload"
|
||||
#endif
|
||||
|
||||
#ifndef LANDMARK
|
||||
@@ -129,7 +131,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[] = LIB_PYTHON;
|
||||
|
||||
static void
|
||||
reduce(char *dir)
|
||||
Index: Python-2.7.2/Python/getplatform.c
|
||||
===================================================================
|
||||
--- Python-2.7.2.orig/Python/getplatform.c
|
||||
+++ Python-2.7.2/Python/getplatform.c
|
||||
@@ -10,3 +10,13 @@ Py_GetPlatform(void)
|
||||
{
|
||||
return PLATFORM;
|
||||
}
|
||||
+
|
||||
+#ifndef LIB
|
||||
+#define LIB "lib"
|
||||
+#endif
|
||||
+
|
||||
+const char *
|
||||
+Py_GetLib(void)
|
||||
+{
|
||||
+ return LIB;
|
||||
+}
|
||||
Index: Python-2.7.2/Python/sysmodule.c
|
||||
===================================================================
|
||||
--- Python-2.7.2.orig/Python/sysmodule.c
|
||||
+++ Python-2.7.2/Python/sysmodule.c
|
||||
@@ -1416,6 +1416,8 @@ _PySys_Init(void)
|
||||
PyString_FromString(Py_GetCopyright()));
|
||||
SET_SYS_FROM_STRING("platform",
|
||||
PyString_FromString(Py_GetPlatform()));
|
||||
+ SET_SYS_FROM_STRING("lib",
|
||||
+ PyString_FromString(Py_GetLib()));
|
||||
SET_SYS_FROM_STRING("executable",
|
||||
PyString_FromString(Py_GetProgramFullPath()));
|
||||
SET_SYS_FROM_STRING("prefix",
|
||||
Index: Python-2.7.2/configure.in
|
||||
===================================================================
|
||||
--- Python-2.7.2.orig/configure.in
|
||||
+++ Python-2.7.2/configure.in
|
||||
@@ -629,6 +629,10 @@ SunOS*)
|
||||
;;
|
||||
esac
|
||||
|
||||
+AC_SUBST(LIB)
|
||||
+AC_MSG_CHECKING(LIB)
|
||||
+LIB=`basename ${libdir}`
|
||||
+AC_MSG_RESULT($LIB)
|
||||
|
||||
AC_SUBST(LIBRARY)
|
||||
AC_MSG_CHECKING(LIBRARY)
|
||||
@@ -1,10 +1,14 @@
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
|
||||
Index: Python-2.6.6/setup.py
|
||||
2011/09/29
|
||||
rebased for python-2.7.2
|
||||
Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
|
||||
|
||||
Index: Python-2.7.2/setup.py
|
||||
===================================================================
|
||||
--- Python-2.6.6.orig/setup.py
|
||||
+++ Python-2.6.6/setup.py
|
||||
@@ -356,8 +356,8 @@ class PyBuildExt(build_ext):
|
||||
--- Python-2.7.2.orig/setup.py
|
||||
+++ Python-2.7.2/setup.py
|
||||
@@ -369,8 +369,8 @@ class PyBuildExt(build_ext):
|
||||
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
@@ -12,16 +16,22 @@ Index: Python-2.6.6/setup.py
|
||||
- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ #add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
+ #add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
@@ -393,10 +393,10 @@ class PyBuildExt(build_ext):
|
||||
@@ -407,15 +407,15 @@ class PyBuildExt(build_ext):
|
||||
for directory in reversed(options.dirs):
|
||||
add_dir_to_list(dir_list, directory)
|
||||
|
||||
- if os.path.normpath(sys.prefix) != '/usr':
|
||||
- if os.path.normpath(sys.prefix) != '/usr' \
|
||||
- and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
|
||||
+ #if os.path.normpath(sys.prefix) != '/usr' \
|
||||
+ #and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
|
||||
# OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework
|
||||
# (PYTHONFRAMEWORK is set) to avoid # linking problems when
|
||||
# building a framework with different architectures than
|
||||
# the one that is currently installed (issue #7473)
|
||||
- add_dir_to_list(self.compiler.library_dirs,
|
||||
+
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
sysconfig.get_config_var("LIBDIR"))
|
||||
- add_dir_to_list(self.compiler.include_dirs,
|
||||
@@ -29,7 +39,7 @@ Index: Python-2.6.6/setup.py
|
||||
sysconfig.get_config_var("INCLUDEDIR"))
|
||||
|
||||
try:
|
||||
@@ -407,11 +407,8 @@ class PyBuildExt(build_ext):
|
||||
@@ -426,11 +426,8 @@ class PyBuildExt(build_ext):
|
||||
# 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.
|
||||
@@ -43,13 +53,15 @@ Index: Python-2.6.6/setup.py
|
||||
exts = []
|
||||
missing = []
|
||||
|
||||
@@ -661,8 +658,7 @@ class PyBuildExt(build_ext):
|
||||
@@ -676,9 +673,8 @@ class PyBuildExt(build_ext):
|
||||
pass # Issue 7384: Already linked against curses or tinfo.
|
||||
elif curses_library:
|
||||
readline_libs.append(curses_library)
|
||||
- elif self.compiler.find_library_file(lib_dirs +
|
||||
- ['/usr/lib/termcap'],
|
||||
- ['/usr/lib/termcap'],
|
||||
- 'termcap'):
|
||||
+ elif self.compiler.find_library_file(lib_dirs,
|
||||
'termcap'):
|
||||
+ 'termcap'):
|
||||
readline_libs.append('termcap')
|
||||
exts.append( Extension('readline', ['readline.c'],
|
||||
library_dirs=['/usr/lib/termcap'],
|
||||
|
||||
Reference in New Issue
Block a user