summaryrefslogtreecommitdiff
path: root/meta/recipes-devtools/python
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/python')
-rw-r--r--meta/recipes-devtools/python/python-2.7-manifest.inc (renamed from meta/recipes-devtools/python/python-2.6-manifest.inc)0
-rw-r--r--meta/recipes-devtools/python/python-native/multilib.patch240
-rw-r--r--meta/recipes-devtools/python/python-native/nohostlibs.patch36
-rw-r--r--meta/recipes-devtools/python/python-native_2.7.2.bb (renamed from meta/recipes-devtools/python/python-native_2.6.6.bb)13
-rw-r--r--meta/recipes-devtools/python/python.inc17
-rw-r--r--meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch80
-rw-r--r--meta/recipes-devtools/python/python/02-remove-test-for-cross.patch108
-rw-r--r--meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch12
-rw-r--r--meta/recipes-devtools/python/python/06-ctypes-libffi-fix-configure.patch42
-rw-r--r--meta/recipes-devtools/python/python/multilib.patch126
-rw-r--r--meta/recipes-devtools/python/python/security_issue_2254_fix.patch184
-rw-r--r--meta/recipes-devtools/python/python_2.7.2.bb (renamed from meta/recipes-devtools/python/python_2.6.6.bb)10
12 files changed, 417 insertions, 451 deletions
diff --git a/meta/recipes-devtools/python/python-2.6-manifest.inc b/meta/recipes-devtools/python/python-2.7-manifest.inc
index e3ebe4141e..e3ebe4141e 100644
--- a/meta/recipes-devtools/python/python-2.6-manifest.inc
+++ b/meta/recipes-devtools/python/python-2.7-manifest.inc
diff --git a/meta/recipes-devtools/python/python-native/multilib.patch b/meta/recipes-devtools/python/python-native/multilib.patch
new file mode 100644
index 0000000000..f8d7aee84b
--- /dev/null
+++ b/meta/recipes-devtools/python/python-native/multilib.patch
@@ -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)
diff --git a/meta/recipes-devtools/python/python-native/nohostlibs.patch b/meta/recipes-devtools/python/python-native/nohostlibs.patch
index aed45c9913..09c3fb808a 100644
--- a/meta/recipes-devtools/python/python-native/nohostlibs.patch
+++ b/meta/recipes-devtools/python/python-native/nohostlibs.patch
@@ -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'],
diff --git a/meta/recipes-devtools/python/python-native_2.6.6.bb b/meta/recipes-devtools/python/python-native_2.7.2.bb
index e0a4fb36d9..6b90d5b891 100644
--- a/meta/recipes-devtools/python/python-native_2.6.6.bb
+++ b/meta/recipes-devtools/python/python-native_2.7.2.bb
@@ -1,11 +1,8 @@
require python.inc
DEPENDS = "openssl-native bzip2-full-native zlib-native readline-native sqlite3-native"
-PR = "${INC_PR}.4"
+PR = "${INC_PR}.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=38fdd546420fab09ac6bd3d8a1c83eb6"
-
-SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2 \
- file://04-default-is-optimized.patch \
+SRC_URI += "file://04-default-is-optimized.patch \
file://05-enable-ctypes-cross-build.patch \
file://06-ctypes-libffi-fix-configure.patch \
file://10-distutils-fix-swig-parameter.patch \
@@ -13,12 +10,10 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2 \
file://12-distutils-prefix-is-inside-staging-area.patch \
file://debug.patch \
file://unixccompiler.patch \
- file://nohostlibs.patch"
+ file://nohostlibs.patch \
+ file://multilib.patch "
S = "${WORKDIR}/Python-${PV}"
-SRC_URI[md5sum] = "cf4e6881bb84a7ce6089e4a307f71f14"
-SRC_URI[sha256sum] = "134c5e0736bae2e5570d0b915693374f11108ded63c35a23a35d282737d2ce83"
-
inherit native
EXTRA_OEMAKE = '\
diff --git a/meta/recipes-devtools/python/python.inc b/meta/recipes-devtools/python/python.inc
index a6cc91789c..3e970a7161 100644
--- a/meta/recipes-devtools/python/python.inc
+++ b/meta/recipes-devtools/python/python.inc
@@ -1,13 +1,18 @@
DESCRIPTION = "The Python Programming Language"
HOMEPAGE = "http://www.python.org"
-LICENSE = "PSF"
+LICENSE = "PSFv2"
SECTION = "devel/python"
-# bump this on every change in contrib/python/generate-manifest-2.6.py
-INC_PR = "r2"
+# bump this on every change in contrib/python/generate-manifest-2.7.py
+INC_PR = "r0"
-DEFAULT_PREFERENCE = "-26"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2dffb81509b47974467ea23409909b1c"
-PYTHON_MAJMIN = "2.6"
+SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2"
+
+SRC_URI[md5sum] = "ba7b2f11ffdbf195ee0d111b9455a5bd"
+SRC_URI[sha256sum] = "5057eb067eb5b5a6040dbd0e889e06550bde9ec041dadaa855ee9490034cbdab"
+
+PYTHON_MAJMIN = "2.7"
inherit autotools
@@ -30,5 +35,3 @@ EXTRA_OECONF_linuxstdbase = "\
--enable-shared \
ac_cv_sizeof_off_t=8 \
"
-
-PARALLEL_MAKE = ""
diff --git a/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch b/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch
index 6c769ac7d3..27afc030b2 100644
--- a/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch
+++ b/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch
@@ -4,11 +4,11 @@ Upstream-Status: Inappropriate [embedded specific]
# built cross-tools (this will not work), so we introduce HOSTPYTHON and HOSTPGEN.
# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de>
-Index: Python-2.6.6/Makefile.pre.in
+Index: Python-2.7.2/Makefile.pre.in
===================================================================
---- Python-2.6.6.orig/Makefile.pre.in
-+++ Python-2.6.6/Makefile.pre.in
-@@ -175,6 +175,7 @@ UNICODE_OBJS= @UNICODE_OBJS@
+--- Python-2.7.2.orig/Makefile.pre.in
++++ Python-2.7.2/Makefile.pre.in
+@@ -182,6 +182,7 @@ UNICODE_OBJS= @UNICODE_OBJS@
PYTHON= python$(EXE)
BUILDPYTHON= python$(BUILDEXE)
@@ -16,7 +16,7 @@ Index: Python-2.6.6/Makefile.pre.in
# The task to run while instrument when building the profile-opt target
PROFILE_TASK= $(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck
-@@ -205,7 +206,7 @@ GRAMMAR_INPUT= $(srcdir)/Grammar/Grammar
+@@ -214,7 +215,7 @@ LIBFFI_INCLUDEDIR= @LIBFFI_INCLUDEDIR@
##########################################################################
# Parser
PGEN= Parser/pgen$(EXE)
@@ -25,39 +25,48 @@ Index: Python-2.6.6/Makefile.pre.in
POBJS= \
Parser/acceler.o \
Parser/grammar1.o \
-@@ -394,8 +395,8 @@ platform: $(BUILDPYTHON)
+@@ -401,14 +402,14 @@ $(BUILDPYTHON): Modules/python.o $(LIBRA
+ $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
+
+ platform: $(BUILDPYTHON)
+- $(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from sysconfig import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
++ $(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
+
+
# Build the shared modules
sharedmods: $(BUILDPYTHON)
@case $$MAKEFLAGS in \
-- *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
-- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
-+ *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py -q build;; \
-+ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py build;; \
+- *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
+- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
++ *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py -q build;; \
++ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py build;; \
esac
# Build static library
-@@ -517,7 +518,7 @@ Modules/python.o: $(srcdir)/Modules/pyth
-
- $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
+@@ -542,7 +543,7 @@ Modules/python.o: $(srcdir)/Modules/pyth
+ $(GRAMMAR_H) $(GRAMMAR_C): Parser/pgen.stamp
+ Parser/pgen.stamp: $(PGEN) $(GRAMMAR_INPUT)
-@$(INSTALL) -d Include
-- -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
-+ -$(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
+- $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
++ $(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
+ -touch Parser/pgen.stamp
$(PGEN): $(PGENOBJS)
- $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
-@@ -887,23 +888,23 @@ libinstall: build_all $(srcdir)/Lib/$(PL
+@@ -926,25 +927,25 @@ libinstall: build_all $(srcdir)/Lib/$(PL
done
$(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
+ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
-d $(LIBDEST) -f \
- -x 'bad_coding|badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
+ -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+ $(DESTDIR)$(LIBDEST)
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
+ $(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
-d $(LIBDEST) -f \
- -x 'bad_coding|badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
+ -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+ $(DESTDIR)$(LIBDEST)
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
+ $(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
@@ -74,20 +83,20 @@ Index: Python-2.6.6/Makefile.pre.in
# Create the PLATDIR source directory, if one wasn't distributed..
$(srcdir)/Lib/$(PLATDIR):
-@@ -1001,7 +1002,7 @@ libainstall: all
+@@ -1049,7 +1050,7 @@ libainstall: all python-config
# Install the dynamically loadable modules
# This goes into $(exec_prefix)
- sharedinstall:
+ sharedinstall: sharedmods
- $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
+ $(RUNSHARED) $(HOSTPYTHON) -E $(srcdir)/setup.py install \
--prefix=$(prefix) \
--install-scripts=$(BINDIR) \
--install-platlib=$(DESTSHARED) \
-Index: Python-2.6.6/setup.py
+Index: Python-2.7.2/setup.py
===================================================================
---- Python-2.6.6.orig/setup.py
-+++ Python-2.6.6/setup.py
-@@ -322,6 +322,7 @@ class PyBuildExt(build_ext):
+--- Python-2.7.2.orig/setup.py
++++ Python-2.7.2/setup.py
+@@ -313,6 +313,7 @@ class PyBuildExt(build_ext):
self.failed.append(ext.name)
self.announce('*** WARNING: renaming "%s" since importing it'
' failed: %s' % (ext.name, why), level=3)
@@ -95,18 +104,18 @@ Index: Python-2.6.6/setup.py
assert not self.inplace
basename, tail = os.path.splitext(ext_filename)
newname = basename + "_failed" + tail
-@@ -356,8 +357,8 @@ class PyBuildExt(build_ext):
+@@ -369,8 +370,8 @@ 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.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')
++ #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.
-@@ -456,6 +457,9 @@ class PyBuildExt(build_ext):
+@@ -475,6 +476,9 @@ class PyBuildExt(build_ext):
# XXX Omitted modules: gl, pure, dl, SGI-specific modules
@@ -116,3 +125,14 @@ Index: Python-2.6.6/setup.py
#
# The following modules are all pretty straightforward, and compile
# on pretty much any POSIXish platform.
+@@ -677,8 +681,8 @@ class PyBuildExt(build_ext):
+ elif curses_library:
+ readline_libs.append(curses_library)
+ elif self.compiler.find_library_file(lib_dirs +
+- ['/usr/lib/termcap'],
+- 'termcap'):
++ ['/usr/lib/termcap'],
++ 'termcap'):
+ readline_libs.append('termcap')
+ exts.append( Extension('readline', ['readline.c'],
+ library_dirs=['/usr/lib/termcap'],
diff --git a/meta/recipes-devtools/python/python/02-remove-test-for-cross.patch b/meta/recipes-devtools/python/python/02-remove-test-for-cross.patch
deleted file mode 100644
index 9b164d5df7..0000000000
--- a/meta/recipes-devtools/python/python/02-remove-test-for-cross.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-# OpenEmbedded prepopulates the autotools site cache, so if this
-# would be using AC_TRY_CACHE, we could patch it in a more sane way
-# Alas, I don't have enough autotalent to do that.
-#
-# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de>
-Index: Python-2.6.1/configure.in
-===================================================================
---- Python-2.6.5.orig/configure.in 2010-07-06 04:37:09.000000000 -0700
-+++ Python-2.6.5/configure.in 2010-07-06 04:40:18.000000000 -0700
-@@ -2697,50 +2697,6 @@
- AC_CHECK_LIB(resolv, inet_aton)
- )
-
--# On Tru64, chflags seems to be present, but calling it will
--# exit Python
--AC_CACHE_CHECK([for chflags], [ac_cv_have_chflags], [dnl
--AC_TRY_RUN([[
--#include <sys/stat.h>
--#include <unistd.h>
--int main(int argc, char*argv[])
--{
-- if(chflags(argv[0], 0) != 0)
-- return 1;
-- return 0;
--}
--]], ac_cv_have_chflags=yes,
-- ac_cv_have_chflags=no,
-- ac_cv_have_chflags=cross)
--])
--if test "$ac_cv_have_chflags" = cross ; then
-- AC_CHECK_FUNC([chflags], [ac_cv_have_chflags="yes"], [ac_cv_have_chflags="no"])
--fi
--if test "$ac_cv_have_chflags" = yes ; then
-- AC_DEFINE(HAVE_CHFLAGS, 1, Define to 1 if you have the `chflags' function.)
--fi
--
--AC_CACHE_CHECK([for lchflags], [ac_cv_have_lchflags], [dnl
--AC_TRY_RUN([[
--#include <sys/stat.h>
--#include <unistd.h>
--int main(int argc, char*argv[])
--{
-- if(lchflags(argv[0], 0) != 0)
-- return 1;
-- return 0;
--}
--]], ac_cv_have_lchflags=yes,
-- ac_cv_have_lchflags=no,
-- ac_cv_have_lchflags=cross)
--])
--if test "$ac_cv_have_lchflags" = cross ; then
-- AC_CHECK_FUNC([lchflags], [ac_cv_have_lchflags="yes"], [ac_cv_have_lchflags="no"])
--fi
--if test "$ac_cv_have_lchflags" = yes ; then
-- AC_DEFINE(HAVE_LCHFLAGS, 1, Define to 1 if you have the `lchflags' function.)
--fi
--
- dnl Check if system zlib has *Copy() functions
- dnl
- dnl On MacOSX the linker will search for dylibs on the entire linker path
-@@ -3844,45 +3800,6 @@
- AC_MSG_RESULT(no)
- fi
-
--AC_MSG_CHECKING(for %zd printf() format support)
--AC_TRY_RUN([#include <stdio.h>
--#include <stddef.h>
--#include <string.h>
--
--#ifdef HAVE_SYS_TYPES_H
--#include <sys/types.h>
--#endif
--
--#ifdef HAVE_SSIZE_T
--typedef ssize_t Py_ssize_t;
--#elif SIZEOF_VOID_P == SIZEOF_LONG
--typedef long Py_ssize_t;
--#else
--typedef int Py_ssize_t;
--#endif
--
--int main()
--{
-- char buffer[256];
--
-- if(sprintf(buffer, "%zd", (size_t)123) < 0)
-- return 1;
--
-- if (strcmp(buffer, "123"))
-- return 1;
--
-- if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0)
-- return 1;
--
-- if (strcmp(buffer, "-123"))
-- return 1;
--
-- return 0;
--}],
--[AC_MSG_RESULT(yes)
-- AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])],
-- AC_MSG_RESULT(no))
--
- AC_CHECK_TYPE(socklen_t,,
- AC_DEFINE(socklen_t,int,
- Define to `int' if <sys/socket.h> does not define.),[
diff --git a/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch b/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch
index b39b22f496..f8ab0e71e9 100644
--- a/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch
+++ b/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch
@@ -9,11 +9,15 @@ This Patch fixes this issue in the python build environment.
11 Oct 2010
Nitin A Kamble <nitin.a.kamble@intel.com>
-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
-@@ -665,12 +665,10 @@ class PyBuildExt(build_ext):
+--- Python-2.7.2.orig/setup.py
++++ Python-2.7.2/setup.py
+@@ -680,12 +680,10 @@ class PyBuildExt(build_ext):
pass # Issue 7384: Already linked against curses or tinfo.
elif curses_library:
readline_libs.append(curses_library)
diff --git a/meta/recipes-devtools/python/python/06-ctypes-libffi-fix-configure.patch b/meta/recipes-devtools/python/python/06-ctypes-libffi-fix-configure.patch
index 8de5694cb4..abd63d2a96 100644
--- a/meta/recipes-devtools/python/python/06-ctypes-libffi-fix-configure.patch
+++ b/meta/recipes-devtools/python/python/06-ctypes-libffi-fix-configure.patch
@@ -14,29 +14,16 @@ Acked-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
-diff -pruN Python-2.6.4.orig//Modules/_ctypes/libffi/configure.ac Python-2.6.4/Modules/_ctypes/libffi/configure.ac
---- Python-2.6.4.orig//Modules/_ctypes/libffi/configure.ac 2009-04-28 22:01:18.000000000 +0200
-+++ Python-2.6.4/Modules/_ctypes/libffi/configure.ac 2010-04-20 22:46:02.000000000 +0200
-@@ -23,6 +23,7 @@ AM_INIT_AUTOMAKE
- m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
- m4_define([_AC_ARG_VAR_PRECIOUS],[])
- AC_PROG_CC
-+m4_undefine([_AC_ARG_VAR_PRECIOUS])
- m4_rename([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
-
- AC_SUBST(CFLAGS)
-@@ -366,7 +367,7 @@ test -d src/$TARGETDIR || mkdir src/$TAR
-
- AC_CONFIG_LINKS(include/ffitarget.h:src/$TARGETDIR/ffitarget.h)
-
--AC_CONFIG_FILES(include/ffi.h)
-+AC_CONFIG_FILES(include/ffi.h include/Makefile Makefile)
-
- AC_CONFIG_LINKS(include/ffi_common.h:include/ffi_common.h)
-
-diff -pruN Python-2.6.4.orig//Modules/_ctypes/libffi/Makefile.am Python-2.6.4/Modules/_ctypes/libffi/Makefile.am
---- Python-2.6.4.orig//Modules/_ctypes/libffi/Makefile.am 2008-03-04 21:09:11.000000000 +0100
-+++ Python-2.6.4/Modules/_ctypes/libffi/Makefile.am 2010-04-20 22:54:03.000000000 +0200
+
+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/Modules/_ctypes/libffi/Makefile.am
+===================================================================
+--- Python-2.7.2.orig/Modules/_ctypes/libffi/Makefile.am
++++ Python-2.7.2/Modules/_ctypes/libffi/Makefile.am
@@ -2,7 +2,7 @@
AUTOMAKE_OPTIONS = foreign subdir-objects
@@ -45,14 +32,13 @@ diff -pruN Python-2.6.4.orig//Modules/_ctypes/libffi/Makefile.am Python-2.6.4/Mo
+SUBDIRS = include
EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
- src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h \
-@@ -32,8 +32,6 @@ EXTRA_DIST = LICENSE ChangeLog.v1 Change
- src/frv/ffi.c src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c \
- libtool-version ChangeLog.libffi
+ src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h \
+@@ -34,8 +34,6 @@ EXTRA_DIST = LICENSE ChangeLog.v1 Change
+ libtool-version ChangeLog.libffi m4/libtool.m4 \
+ m4/lt~obsolete.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4
-info_TEXINFOS = doc/libffi.texi
-
## ################################################################
##
-
diff --git a/meta/recipes-devtools/python/python/multilib.patch b/meta/recipes-devtools/python/python/multilib.patch
index 33a334189e..babff1280e 100644
--- a/meta/recipes-devtools/python/python/multilib.patch
+++ b/meta/recipes-devtools/python/python/multilib.patch
@@ -10,10 +10,14 @@ Date: Tue Jun 28 21:21:29 2011 +0800
Picked-by: Yu Ke <ke.yu@intel.com>
-Index: Python-2.6.6/Include/pythonrun.h
+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/Include/pythonrun.h
===================================================================
---- Python-2.6.6.orig/Include/pythonrun.h
-+++ Python-2.6.6/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);
@@ -22,10 +26,10 @@ Index: Python-2.6.6/Include/pythonrun.h
PyAPI_FUNC(const char *) Py_GetCopyright(void);
PyAPI_FUNC(const char *) Py_GetCompiler(void);
PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
-Index: Python-2.6.6/Lib/distutils/command/install.py
+Index: Python-2.7.2/Lib/distutils/command/install.py
===================================================================
---- Python-2.6.6.orig/Lib/distutils/command/install.py
-+++ Python-2.6.6/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
@@ -44,11 +48,11 @@ Index: Python-2.6.6/Lib/distutils/command/install.py
'headers': '$base/include/python$py_version_short/$dist_name',
'scripts': '$base/bin',
'data' : '$base',
-Index: Python-2.6.6/Lib/distutils/sysconfig.py
+Index: Python-2.7.2/Lib/distutils/sysconfig.py
===================================================================
---- Python-2.6.6.orig/Lib/distutils/sysconfig.py
-+++ Python-2.6.6/Lib/distutils/sysconfig.py
-@@ -119,8 +119,11 @@ def get_python_lib(plat_specific=0, stan
+--- Python-2.7.2.orig/Lib/distutils/sysconfig.py
++++ Python-2.7.2/Lib/distutils/sysconfig.py
+@@ -114,8 +114,11 @@ def get_python_lib(plat_specific=0, stan
prefix = plat_specific and EXEC_PREFIX or PREFIX
if os.name == "posix":
@@ -62,11 +66,11 @@ Index: Python-2.6.6/Lib/distutils/sysconfig.py
if standard_lib:
return libpython
else:
-Index: Python-2.6.6/Lib/pydoc.py
+Index: Python-2.7.2/Lib/pydoc.py
===================================================================
---- Python-2.6.6.orig/Lib/pydoc.py
-+++ Python-2.6.6/Lib/pydoc.py
-@@ -349,7 +349,7 @@ class Doc:
+--- 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")
@@ -75,40 +79,40 @@ Index: Python-2.6.6/Lib/pydoc.py
"python"+sys.version[0:3])
if (isinstance(object, type(os)) and
(object.__name__ in ('errno', 'exceptions', 'gc', 'imp',
-Index: Python-2.6.6/Lib/site.py
+Index: Python-2.7.2/Lib/site.py
===================================================================
---- Python-2.6.6.orig/Lib/site.py
-+++ Python-2.6.6/Lib/site.py
-@@ -265,13 +265,19 @@ def addsitepackages(known_paths):
+--- 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'):
- sitedirs.append(os.path.join(prefix, "Lib", "site-packages"))
+ sitepackages.append(os.path.join(prefix, "Lib", "site-packages"))
elif os.sep == '/':
-- sitedirs.append(os.path.join(prefix, "lib",
-+ sitedirs.append(os.path.join(prefix, sys.lib,
+- sitepackages.append(os.path.join(prefix, "lib",
++ sitepackages.append(os.path.join(prefix, sys.lib,
"python" + sys.version[:3],
"site-packages"))
-- sitedirs.append(os.path.join(prefix, "lib", "site-python"))
+- sitepackages.append(os.path.join(prefix, "lib", "site-python"))
+ if sys.lib != "lib":
-+ sitedirs.append(os.path.join(prefix, "lib",
++ sitepackages.append(os.path.join(prefix, "lib",
+ "python" + sys.version[:3],
+ "site-packages"))
-+ sitedirs.append(os.path.join(prefix, sys.lib, "site-python"))
++ sitepackages.append(os.path.join(prefix, sys.lib, "site-python"))
+ if sys.lib != "lib":
-+ sitedirs.append(os.path.join(prefix, "lib", "site-python"))
++ sitepackages.append(os.path.join(prefix, "lib", "site-python"))
else:
- sitedirs.append(prefix)
-- sitedirs.append(os.path.join(prefix, "lib", "site-packages"))
-+ sitedirs.append(os.path.join(prefix, sys.lib, "site-packages"))
-
+ 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
-Index: Python-2.6.6/Lib/test/test_dl.py
+ # locations.
+Index: Python-2.7.2/Lib/test/test_dl.py
===================================================================
---- Python-2.6.6.orig/Lib/test/test_dl.py
-+++ Python-2.6.6/Lib/test/test_dl.py
-@@ -4,10 +4,11 @@
- """
- from test.test_support import verbose,TestSkipped, import_module
+--- 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
@@ -120,11 +124,11 @@ Index: Python-2.6.6/Lib/test/test_dl.py
('/usr/bin/cygwin1.dll', 'getpid'),
('/usr/lib/libc.dylib', 'getpid'),
]
-Index: Python-2.6.6/Lib/trace.py
+Index: Python-2.7.2/Lib/trace.py
===================================================================
---- Python-2.6.6.orig/Lib/trace.py
-+++ Python-2.6.6/Lib/trace.py
-@@ -759,10 +759,10 @@ def main(argv=None):
+--- 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",
@@ -137,11 +141,11 @@ Index: Python-2.6.6/Lib/trace.py
"python" + sys.version[:3]))
s = os.path.normpath(s)
ignore_dirs.append(s)
-Index: Python-2.6.6/Makefile.pre.in
+Index: Python-2.7.2/Makefile.pre.in
===================================================================
---- Python-2.6.6.orig/Makefile.pre.in
-+++ Python-2.6.6/Makefile.pre.in
-@@ -75,6 +75,7 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG
+--- 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@
@@ -149,7 +153,7 @@ Index: Python-2.6.6/Makefile.pre.in
# Install prefix for architecture-independent files
prefix= @prefix@
-@@ -91,7 +92,7 @@ LIBDIR= @libdir@
+@@ -97,7 +98,7 @@ LIBDIR= @libdir@
MANDIR= @mandir@
INCLUDEDIR= @includedir@
CONFINCLUDEDIR= $(exec_prefix)/include
@@ -158,7 +162,7 @@ Index: Python-2.6.6/Makefile.pre.in
# Detailed destination directories
BINLIBDEST= $(LIBDIR)/python$(VERSION)
-@@ -509,6 +510,7 @@ Modules/getpath.o: $(srcdir)/Modules/get
+@@ -533,6 +534,7 @@ Modules/getpath.o: $(srcdir)/Modules/get
-DEXEC_PREFIX='"$(exec_prefix)"' \
-DVERSION='"$(VERSION)"' \
-DVPATH='"$(VPATH)"' \
@@ -166,8 +170,8 @@ Index: Python-2.6.6/Makefile.pre.in
-o $@ $(srcdir)/Modules/getpath.c
Modules/python.o: $(srcdir)/Modules/python.c
-@@ -540,7 +542,7 @@ $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES)
- Python/compile.o Python/symtable.o: $(GRAMMAR_H) $(AST_H)
+@@ -567,7 +569,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
@@ -175,10 +179,10 @@ Index: Python-2.6.6/Makefile.pre.in
Python/importdl.o: $(srcdir)/Python/importdl.c
$(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
-Index: Python-2.6.6/Modules/getpath.c
+Index: Python-2.7.2/Modules/getpath.c
===================================================================
---- Python-2.6.6.orig/Modules/getpath.c
-+++ Python-2.6.6/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
@@ -202,10 +206,10 @@ Index: Python-2.6.6/Modules/getpath.c
static void
reduce(char *dir)
-Index: Python-2.6.6/Python/getplatform.c
+Index: Python-2.7.2/Python/getplatform.c
===================================================================
---- Python-2.6.6.orig/Python/getplatform.c
-+++ Python-2.6.6/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;
@@ -220,11 +224,11 @@ Index: Python-2.6.6/Python/getplatform.c
+{
+ return LIB;
+}
-Index: Python-2.6.6/Python/sysmodule.c
+Index: Python-2.7.2/Python/sysmodule.c
===================================================================
---- Python-2.6.6.orig/Python/sysmodule.c
-+++ Python-2.6.6/Python/sysmodule.c
-@@ -1379,6 +1379,8 @@ _PySys_Init(void)
+--- 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()));
@@ -233,11 +237,11 @@ Index: Python-2.6.6/Python/sysmodule.c
SET_SYS_FROM_STRING("executable",
PyString_FromString(Py_GetProgramFullPath()));
SET_SYS_FROM_STRING("prefix",
-Index: Python-2.6.6/configure.in
+Index: Python-2.7.2/configure.in
===================================================================
---- Python-2.6.6.orig/configure.in
-+++ Python-2.6.6/configure.in
-@@ -613,6 +613,10 @@ SunOS*)
+--- Python-2.7.2.orig/configure.in
++++ Python-2.7.2/configure.in
+@@ -629,6 +629,10 @@ SunOS*)
;;
esac
diff --git a/meta/recipes-devtools/python/python/security_issue_2254_fix.patch b/meta/recipes-devtools/python/python/security_issue_2254_fix.patch
deleted file mode 100644
index f0328585d5..0000000000
--- a/meta/recipes-devtools/python/python/security_issue_2254_fix.patch
+++ /dev/null
@@ -1,184 +0,0 @@
-Upstream-Status: Backport
-http://svn.python.org/view?view=revision&revision=71303
-
-Issue #2254: Fix CGIHTTPServer information disclosure. Relative paths are
- now collapsed within the url properly before looking in cgi_directories.
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
-2011/07/19
-
-Index: Python-2.6.6/Lib/CGIHTTPServer.py
-===================================================================
---- Python-2.6.6.orig/Lib/CGIHTTPServer.py
-+++ Python-2.6.6/Lib/CGIHTTPServer.py
-@@ -70,27 +70,20 @@ class CGIHTTPRequestHandler(SimpleHTTPSe
- return SimpleHTTPServer.SimpleHTTPRequestHandler.send_head(self)
-
- def is_cgi(self):
-- """Test whether self.path corresponds to a CGI script,
-- and return a boolean.
-+ """Test whether self.path corresponds to a CGI script.
-
-- This function sets self.cgi_info to a tuple (dir, rest)
-- when it returns True, where dir is the directory part before
-- the CGI script name. Note that rest begins with a
-- slash if it is not empty.
--
-- The default implementation tests whether the path
-- begins with one of the strings in the list
-- self.cgi_directories (and the next character is a '/'
-- or the end of the string).
-+ Returns True and updates the cgi_info attribute to the tuple
-+ (dir, rest) if self.path requires running a CGI script.
-+ Returns False otherwise.
-+
-+ The default implementation tests whether the normalized url
-+ path begins with one of the strings in self.cgi_directories
-+ (and the next character is a '/' or the end of the string).
- """
--
-- path = self.path
--
-- for x in self.cgi_directories:
-- i = len(x)
-- if path[:i] == x and (not path[i:] or path[i] == '/'):
-- self.cgi_info = path[:i], path[i+1:]
-- return True
-+ splitpath = _url_collapse_path_split(self.path)
-+ if splitpath[0] in self.cgi_directories:
-+ self.cgi_info = splitpath
-+ return True
- return False
-
- cgi_directories = ['/cgi-bin', '/htbin']
-@@ -299,6 +292,46 @@ class CGIHTTPRequestHandler(SimpleHTTPSe
- self.log_message("CGI script exited OK")
-
-
-+# TODO(gregory.p.smith): Move this into an appropriate library.
-+def _url_collapse_path_split(path):
-+ """
-+ Given a URL path, remove extra '/'s and '.' path elements and collapse
-+ any '..' references.
-+
-+ Implements something akin to RFC-2396 5.2 step 6 to parse relative paths.
-+
-+ Returns: A tuple of (head, tail) where tail is everything after the final /
-+ and head is everything before it. Head will always start with a '/' and,
-+ if it contains anything else, never have a trailing '/'.
-+
-+ Raises: IndexError if too many '..' occur within the path.
-+ """
-+ # Similar to os.path.split(os.path.normpath(path)) but specific to URL
-+ # path semantics rather than local operating system semantics.
-+ path_parts = []
-+ for part in path.split('/'):
-+ if part == '.':
-+ path_parts.append('')
-+ else:
-+ path_parts.append(part)
-+ # Filter out blank non trailing parts before consuming the '..'.
-+ path_parts = [part for part in path_parts[:-1] if part] + path_parts[-1:]
-+ if path_parts:
-+ tail_part = path_parts.pop()
-+ else:
-+ tail_part = ''
-+ head_parts = []
-+ for part in path_parts:
-+ if part == '..':
-+ head_parts.pop()
-+ else:
-+ head_parts.append(part)
-+ if tail_part and tail_part == '..':
-+ head_parts.pop()
-+ tail_part = ''
-+ return ('/' + '/'.join(head_parts), tail_part)
-+
-+
- nobody = None
-
- def nobody_uid():
-Index: Python-2.6.6/Lib/test/test_httpservers.py
-===================================================================
---- Python-2.6.6.orig/Lib/test/test_httpservers.py
-+++ Python-2.6.6/Lib/test/test_httpservers.py
-@@ -7,6 +7,7 @@ Josip Dzolonga, and Michael Otteneder fo
- from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
- from SimpleHTTPServer import SimpleHTTPRequestHandler
- from CGIHTTPServer import CGIHTTPRequestHandler
-+import CGIHTTPServer
-
- import os
- import sys
-@@ -324,6 +325,45 @@ class CGIHTTPServerTestCase(BaseTestCase
- finally:
- BaseTestCase.tearDown(self)
-
-+ def test_url_collapse_path_split(self):
-+ test_vectors = {
-+ '': ('/', ''),
-+ '..': IndexError,
-+ '/.//..': IndexError,
-+ '/': ('/', ''),
-+ '//': ('/', ''),
-+ '/\\': ('/', '\\'),
-+ '/.//': ('/', ''),
-+ 'cgi-bin/file1.py': ('/cgi-bin', 'file1.py'),
-+ '/cgi-bin/file1.py': ('/cgi-bin', 'file1.py'),
-+ 'a': ('/', 'a'),
-+ '/a': ('/', 'a'),
-+ '//a': ('/', 'a'),
-+ './a': ('/', 'a'),
-+ './C:/': ('/C:', ''),
-+ '/a/b': ('/a', 'b'),
-+ '/a/b/': ('/a/b', ''),
-+ '/a/b/c/..': ('/a/b', ''),
-+ '/a/b/c/../d': ('/a/b', 'd'),
-+ '/a/b/c/../d/e/../f': ('/a/b/d', 'f'),
-+ '/a/b/c/../d/e/../../f': ('/a/b', 'f'),
-+ '/a/b/c/../d/e/.././././..//f': ('/a/b', 'f'),
-+ '../a/b/c/../d/e/.././././..//f': IndexError,
-+ '/a/b/c/../d/e/../../../f': ('/a', 'f'),
-+ '/a/b/c/../d/e/../../../../f': ('/', 'f'),
-+ '/a/b/c/../d/e/../../../../../f': IndexError,
-+ '/a/b/c/../d/e/../../../../f/..': ('/', ''),
-+ }
-+ for path, expected in test_vectors.iteritems():
-+ if isinstance(expected, type) and issubclass(expected, Exception):
-+ self.assertRaises(expected,
-+ CGIHTTPServer._url_collapse_path_split, path)
-+ else:
-+ actual = CGIHTTPServer._url_collapse_path_split(path)
-+ self.assertEquals(expected, actual,
-+ msg='path = %r\nGot: %r\nWanted: %r' % (
-+ path, actual, expected))
-+
- def test_headers_and_content(self):
- res = self.request('/cgi-bin/file1.py')
- self.assertEquals(('Hello World\n', 'text/html', 200), \
-@@ -348,6 +388,12 @@ class CGIHTTPServerTestCase(BaseTestCase
- self.assertEquals(('Hello World\n', 'text/html', 200), \
- (res.read(), res.getheader('Content-type'), res.status))
-
-+ def test_no_leading_slash(self):
-+ # http://bugs.python.org/issue2254
-+ res = self.request('cgi-bin/file1.py')
-+ self.assertEquals(('Hello World\n', 'text/html', 200),
-+ (res.read(), res.getheader('Content-type'), res.status))
-+
-
- def test_main(verbose=None):
- cwd = os.getcwd()
-Index: Python-2.6.6/Misc/NEWS
-===================================================================
---- Python-2.6.6.orig/Misc/NEWS
-+++ Python-2.6.6/Misc/NEWS
-@@ -137,6 +137,9 @@ C-API
- Library
- -------
-
-+- Issue #2254: Fix CGIHTTPServer information disclosure. Relative paths are
-+ now collapsed within the url properly before looking in cgi_directories.
-+
- - Issue #8447: Make distutils.sysconfig follow symlinks in the path to
- the interpreter executable. This fixes a failure of test_httpservers
- on OS X.
diff --git a/meta/recipes-devtools/python/python_2.6.6.bb b/meta/recipes-devtools/python/python_2.7.2.bb
index 77c0ff47b3..af14adbbb3 100644
--- a/meta/recipes-devtools/python/python_2.6.6.bb
+++ b/meta/recipes-devtools/python/python_2.7.2.bb
@@ -1,15 +1,12 @@
require python.inc
DEPENDS = "python-native db gdbm openssl readline sqlite3 zlib"
DEPENDS_sharprom = "python-native db readline zlib gdbm openssl"
-PR = "${INC_PR}.11"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=38fdd546420fab09ac6bd3d8a1c83eb6"
+PR = "${INC_PR}.0"
DISTRO_SRC_URI ?= "file://sitecustomize.py"
DISTRO_SRC_URI_linuxstdbase = ""
-SRC_URI = "\
- http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2 \
+SRC_URI += "\
file://01-use-proper-tools-for-cross-build.patch \
- file://02-remove-test-for-cross.patch \
file://03-fix-tkinter-detection.patch \
file://04-default-is-optimized.patch \
file://05-enable-ctypes-cross-build.patch \
@@ -19,13 +16,10 @@ SRC_URI = "\
file://99-ignore-optimization-flag.patch \
${DISTRO_SRC_URI} \
file://multilib.patch \
- file://security_issue_2254_fix.patch \
file://cgi_py.patch \
file://remove_sqlite_rpath.patch \
"
-SRC_URI[md5sum] = "cf4e6881bb84a7ce6089e4a307f71f14"
-SRC_URI[sha256sum] = "134c5e0736bae2e5570d0b915693374f11108ded63c35a23a35d282737d2ce83"
S = "${WORKDIR}/Python-${PV}"
inherit autotools