Python: Upgrade from 2.7.3 to 2.7.9:

- Based on Paul Eggletons work to partially upgrade to Python 2.7.6

Modified:
default-versions.inc: switched to python 2.7.9
generate-manifest-2.7.py: fixed _sysconfigdata
python-2.7-manifest.inc: fixed _sysconfigdata
python.inc: Updated checksums and source, no LICENSE
change just updated some dates
python-native_2.7.3 -> python-native_2.7.9 and updated patches
python_2.7.3 -> python_2.7.9, and added ac_cv_file__dev_ptmx=no
ac_cv_file__dev_ptc=no in EXTRA_OECONF to solve python
issue #3754, only needed when cross compiling, also updated patches
use_sysroot_ncurses_instead_of_host.patch: New patch to use ncursesw
from sysroot instead of hosts, introduced by fix for python issue #15268

Rebased:
01-use-proper-tools-for-cross-build.patch
03-fix-tkinter-detection.patch
05-enable-ctypes-cross-build.patch
06-avoid_usr_lib_termcap_path_in_linking.patch
avoid_warning_about_tkinter.patch
builddir.patch
fix_for_using_different_libdir.patch
host_include_contamination.patch
multilib.patch
nohostlibs.patch
search_db_h_in_inc_dirs_and_avoid_warning.patch

Deleted (fixed on upstream):
06-ctypes-libffi-fix-configure.patch
CVE-2013-4073_py27.patch
gcc-4.8-fix-configure-Wformat.patch
json-flaw-fix.patch
posix_close.patch
pypirc-secure.patch
python-2.7.3-CVE-2012-2135.patch
python-2.7.3-CVE-2013-1752-smtplib-fix.patch
python-2.7.3-CVE-2014-1912.patch
python-2.7.3-CVE-2014-7185.patch
python-2.7.3-berkeley-db-5.3.patch
python-fix-build-error-with-Readline-6.3.patch
remove-BOM-insection-code.patch
remove_sqlite_rpath.patch
python2.7.3-nossl3.patch

[YOCTO #7059]

(From OE-Core rev: d4ad95f0d5f08891637c644e85b09da9c4585059)

Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alejandro Hernandez 2015-02-11 17:57:49 -06:00 committed by Richard Purdie
parent 122ee11bd1
commit cb02ecb507
34 changed files with 368 additions and 2820 deletions

View File

@ -4,8 +4,8 @@
# Force the python versions in one place # Force the python versions in one place
PYTHON_BASEVERSION ?= "2.7" PYTHON_BASEVERSION ?= "2.7"
PREFERRED_VERSION_python ?= "2.7.3" PREFERRED_VERSION_python ?= "2.7.9"
PREFERRED_VERSION_python-native ?= "2.7.3" PREFERRED_VERSION_python-native ?= "2.7.9"
# Force the older version of liberation-fonts until we fix the fontforge issue # Force the older version of liberation-fonts until we fix the fontforge issue
PREFERRED_VERSION_liberation-fonts ?= "1.04" PREFERRED_VERSION_liberation-fonts ?= "1.04"

View File

@ -1,6 +1,6 @@
# WARNING: This file is AUTO GENERATED: Manual edits will be lost next time I regenerate the file. # WARNING: This file is AUTO GENERATED: Manual edits will be lost next time I regenerate the file.
# Generator: 'scripts/contrib/python/generate-manifest-2.7.py' Version 20110222.2 (C) 2002-2010 Michael 'Mickey' Lauer <mlauer@vanille-media.de> # Generator: '../../../scripts/contrib/python/generate-manifest-2.7.py' Version 20110222.2 (C) 2002-2010 Michael 'Mickey' Lauer <mlauer@vanille-media.de>
# Visit the Python for Embedded Systems Site => http://www.Vanille.de/projects/python.spy # Visit the Python for Embedded Systems Site => http://www.Vanille.de/projects/python.spy
@ -41,13 +41,13 @@ SUMMARY_${PN}-compression="Python high-level compression support"
RDEPENDS_${PN}-compression="${PN}-core ${PN}-zlib" RDEPENDS_${PN}-compression="${PN}-core ${PN}-zlib"
FILES_${PN}-compression="${libdir}/python2.7/gzip.* ${libdir}/python2.7/zipfile.* ${libdir}/python2.7/tarfile.* ${libdir}/python2.7/lib-dynload/bz2.so " FILES_${PN}-compression="${libdir}/python2.7/gzip.* ${libdir}/python2.7/zipfile.* ${libdir}/python2.7/tarfile.* ${libdir}/python2.7/lib-dynload/bz2.so "
SUMMARY_${PN}-contextlib="Python utilities for with-statementcontexts. See PEP 343." SUMMARY_${PN}-contextlib="Python utilities for with-statementcontexts."
RDEPENDS_${PN}-contextlib="${PN}-core" RDEPENDS_${PN}-contextlib="${PN}-core"
FILES_${PN}-contextlib="${libdir}/python${PYTHON_MAJMIN}/contextlib.py* " FILES_${PN}-contextlib="${libdir}/python${PYTHON_MAJMIN}/contextlib.* "
SUMMARY_${PN}-core="Python interpreter and core modules" SUMMARY_${PN}-core="Python interpreter and core modules"
RDEPENDS_${PN}-core="${PN}-lang ${PN}-re" RDEPENDS_${PN}-core="${PN}-lang ${PN}-re"
FILES_${PN}-core="${libdir}/python2.7/__future__.* ${libdir}/python2.7/_abcoll.* ${libdir}/python2.7/abc.* ${libdir}/python2.7/copy.* ${libdir}/python2.7/copy_reg.* ${libdir}/python2.7/ConfigParser.* ${libdir}/python2.7/genericpath.* ${libdir}/python2.7/getopt.* ${libdir}/python2.7/linecache.* ${libdir}/python2.7/new.* ${libdir}/python2.7/os.* ${libdir}/python2.7/posixpath.* ${libdir}/python2.7/struct.* ${libdir}/python2.7/warnings.* ${libdir}/python2.7/site.* ${libdir}/python2.7/stat.* ${libdir}/python2.7/UserDict.* ${libdir}/python2.7/UserList.* ${libdir}/python2.7/UserString.* ${libdir}/python2.7/lib-dynload/binascii.so ${libdir}/python2.7/lib-dynload/_struct.so ${libdir}/python2.7/lib-dynload/time.so ${libdir}/python2.7/lib-dynload/xreadlines.so ${libdir}/python2.7/types.* ${libdir}/python2.7/platform.* ${bindir}/python* ${libdir}/python2.7/_weakrefset.* ${libdir}/python2.7/sysconfig.* ${libdir}/python2.7/config/Makefile ${includedir}/python${PYTHON_MAJMIN}/pyconfig*.h ${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py " FILES_${PN}-core="${libdir}/python2.7/__future__.* ${libdir}/python2.7/_abcoll.* ${libdir}/python2.7/abc.* ${libdir}/python2.7/copy.* ${libdir}/python2.7/copy_reg.* ${libdir}/python2.7/ConfigParser.* ${libdir}/python2.7/genericpath.* ${libdir}/python2.7/getopt.* ${libdir}/python2.7/linecache.* ${libdir}/python2.7/new.* ${libdir}/python2.7/os.* ${libdir}/python2.7/posixpath.* ${libdir}/python2.7/struct.* ${libdir}/python2.7/warnings.* ${libdir}/python2.7/site.* ${libdir}/python2.7/stat.* ${libdir}/python2.7/UserDict.* ${libdir}/python2.7/UserList.* ${libdir}/python2.7/UserString.* ${libdir}/python2.7/lib-dynload/binascii.so ${libdir}/python2.7/lib-dynload/_struct.so ${libdir}/python2.7/lib-dynload/time.so ${libdir}/python2.7/lib-dynload/xreadlines.so ${libdir}/python2.7/types.* ${libdir}/python2.7/platform.* ${bindir}/python* ${libdir}/python2.7/_weakrefset.* ${libdir}/python2.7/sysconfig.* ${libdir}/python2.7/_sysconfigdata.* ${libdir}/python2.7/config/Makefile ${includedir}/python${PYTHON_MAJMIN}/pyconfig*.h ${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py "
SUMMARY_${PN}-crypt="Python basic cryptographic and hashing support" SUMMARY_${PN}-crypt="Python basic cryptographic and hashing support"
RDEPENDS_${PN}-crypt="${PN}-core" RDEPENDS_${PN}-crypt="${PN}-core"

View File

@ -1,15 +1,6 @@
commit 248279e54467a8cd5cde98fc124d1d1384703513 Rebased for Python 2.7.9
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>
Signed-Off-By: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
2011/09/29 2011/09/29
The python recipe building was failing because python-native The python recipe building was failing because python-native
@ -21,10 +12,10 @@ Upstream-Status: Inappropriate [oe-specific]
Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
Index: Python-2.7.2/Include/pythonrun.h Index: Python-2.7.9/Include/pythonrun.h
=================================================================== ===================================================================
--- Python-2.7.2.orig/Include/pythonrun.h --- Python-2.7.9.orig/Include/pythonrun.h
+++ Python-2.7.2/Include/pythonrun.h +++ Python-2.7.9/Include/pythonrun.h
@@ -108,6 +108,7 @@ PyAPI_FUNC(char *) Py_GetPath(void); @@ -108,6 +108,7 @@ PyAPI_FUNC(char *) Py_GetPath(void);
/* In their own files */ /* In their own files */
PyAPI_FUNC(const char *) Py_GetVersion(void); PyAPI_FUNC(const char *) Py_GetVersion(void);
@ -33,10 +24,10 @@ Index: Python-2.7.2/Include/pythonrun.h
PyAPI_FUNC(const char *) Py_GetCopyright(void); PyAPI_FUNC(const char *) Py_GetCopyright(void);
PyAPI_FUNC(const char *) Py_GetCompiler(void); PyAPI_FUNC(const char *) Py_GetCompiler(void);
PyAPI_FUNC(const char *) Py_GetBuildInfo(void); PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
Index: Python-2.7.2/Lib/distutils/command/install.py Index: Python-2.7.9/Lib/distutils/command/install.py
=================================================================== ===================================================================
--- Python-2.7.2.orig/Lib/distutils/command/install.py --- Python-2.7.9.orig/Lib/distutils/command/install.py
+++ Python-2.7.2/Lib/distutils/command/install.py +++ Python-2.7.9/Lib/distutils/command/install.py
@@ -22,6 +22,8 @@ from site import USER_BASE @@ -22,6 +22,8 @@ from site import USER_BASE
from site import USER_SITE from site import USER_SITE
@ -55,11 +46,11 @@ Index: Python-2.7.2/Lib/distutils/command/install.py
'headers': '$base/include/python$py_version_short/$dist_name', 'headers': '$base/include/python$py_version_short/$dist_name',
'scripts': '$base/bin', 'scripts': '$base/bin',
'data' : '$base', 'data' : '$base',
Index: Python-2.7.2/Lib/pydoc.py Index: Python-2.7.9/Lib/pydoc.py
=================================================================== ===================================================================
--- Python-2.7.2.orig/Lib/pydoc.py --- Python-2.7.9.orig/Lib/pydoc.py
+++ Python-2.7.2/Lib/pydoc.py +++ Python-2.7.9/Lib/pydoc.py
@@ -352,7 +352,7 @@ class Doc: @@ -383,7 +383,7 @@ class Doc:
docloc = os.environ.get("PYTHONDOCS", docloc = os.environ.get("PYTHONDOCS",
"http://docs.python.org/library") "http://docs.python.org/library")
@ -68,11 +59,11 @@ Index: Python-2.7.2/Lib/pydoc.py
"python"+sys.version[0:3]) "python"+sys.version[0:3])
if (isinstance(object, type(os)) and if (isinstance(object, type(os)) and
(object.__name__ in ('errno', 'exceptions', 'gc', 'imp', (object.__name__ in ('errno', 'exceptions', 'gc', 'imp',
Index: Python-2.7.2/Lib/site.py Index: Python-2.7.9/Lib/site.py
=================================================================== ===================================================================
--- Python-2.7.2.orig/Lib/site.py --- Python-2.7.9.orig/Lib/site.py
+++ Python-2.7.2/Lib/site.py +++ Python-2.7.9/Lib/site.py
@@ -300,13 +300,19 @@ def getsitepackages(): @@ -288,13 +288,19 @@ def getsitepackages():
if sys.platform in ('os2emx', 'riscos'): if sys.platform in ('os2emx', 'riscos'):
sitepackages.append(os.path.join(prefix, "Lib", "site-packages")) sitepackages.append(os.path.join(prefix, "Lib", "site-packages"))
elif os.sep == '/': elif os.sep == '/':
@ -95,11 +86,11 @@ Index: Python-2.7.2/Lib/site.py
if sys.platform == "darwin": if sys.platform == "darwin":
# for framework builds *only* we add the standard Apple # for framework builds *only* we add the standard Apple
# locations. # locations.
Index: Python-2.7.2/Lib/test/test_dl.py Index: Python-2.7.9/Lib/test/test_dl.py
=================================================================== ===================================================================
--- Python-2.7.2.orig/Lib/test/test_dl.py --- Python-2.7.9.orig/Lib/test/test_dl.py
+++ Python-2.7.2/Lib/test/test_dl.py +++ Python-2.7.9/Lib/test/test_dl.py
@@ -5,10 +5,11 @@ @@ -4,10 +4,11 @@
import unittest import unittest
from test.test_support import verbose, import_module from test.test_support import verbose, import_module
dl = import_module('dl', deprecated=True) dl = import_module('dl', deprecated=True)
@ -113,11 +104,11 @@ Index: Python-2.7.2/Lib/test/test_dl.py
('/usr/bin/cygwin1.dll', 'getpid'), ('/usr/bin/cygwin1.dll', 'getpid'),
('/usr/lib/libc.dylib', 'getpid'), ('/usr/lib/libc.dylib', 'getpid'),
] ]
Index: Python-2.7.2/Lib/trace.py Index: Python-2.7.9/Lib/trace.py
=================================================================== ===================================================================
--- Python-2.7.2.orig/Lib/trace.py --- Python-2.7.9.orig/Lib/trace.py
+++ Python-2.7.2/Lib/trace.py +++ Python-2.7.9/Lib/trace.py
@@ -762,10 +762,10 @@ def main(argv=None): @@ -754,10 +754,10 @@ def main(argv=None):
# should I also call expanduser? (after all, could use $HOME) # should I also call expanduser? (after all, could use $HOME)
s = s.replace("$prefix", s = s.replace("$prefix",
@ -130,19 +121,19 @@ Index: Python-2.7.2/Lib/trace.py
"python" + sys.version[:3])) "python" + sys.version[:3]))
s = os.path.normpath(s) s = os.path.normpath(s)
ignore_dirs.append(s) ignore_dirs.append(s)
Index: Python-2.7.2/Makefile.pre.in Index: Python-2.7.9/Makefile.pre.in
=================================================================== ===================================================================
--- Python-2.7.2.orig/Makefile.pre.in --- Python-2.7.9.orig/Makefile.pre.in
+++ Python-2.7.2/Makefile.pre.in +++ Python-2.7.9/Makefile.pre.in
@@ -81,6 +81,7 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG @@ -87,6 +87,7 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG
# Machine-dependent subdirectories # Machine-dependent subdirectories
MACHDEP= @MACHDEP@ MACHDEP= @MACHDEP@
+LIB= @LIB@ +LIB= @LIB@
# Install prefix for architecture-independent files # Multiarch directory (may be empty)
prefix= @prefix@ MULTIARCH= @MULTIARCH@
@@ -97,7 +98,7 @@ LIBDIR= @libdir@ @@ -106,7 +107,7 @@ LIBDIR= @libdir@
MANDIR= @mandir@ MANDIR= @mandir@
INCLUDEDIR= @includedir@ INCLUDEDIR= @includedir@
CONFINCLUDEDIR= $(exec_prefix)/include CONFINCLUDEDIR= $(exec_prefix)/include
@ -151,7 +142,7 @@ Index: Python-2.7.2/Makefile.pre.in
# Detailed destination directories # Detailed destination directories
BINLIBDEST= $(LIBDIR)/python$(VERSION) BINLIBDEST= $(LIBDIR)/python$(VERSION)
@@ -532,6 +533,7 @@ Modules/getpath.o: $(srcdir)/Modules/get @@ -597,6 +598,7 @@ Modules/getpath.o: $(srcdir)/Modules/get
-DEXEC_PREFIX='"$(exec_prefix)"' \ -DEXEC_PREFIX='"$(exec_prefix)"' \
-DVERSION='"$(VERSION)"' \ -DVERSION='"$(VERSION)"' \
-DVPATH='"$(VPATH)"' \ -DVPATH='"$(VPATH)"' \
@ -159,7 +150,7 @@ Index: Python-2.7.2/Makefile.pre.in
-o $@ $(srcdir)/Modules/getpath.c -o $@ $(srcdir)/Modules/getpath.c
Modules/python.o: $(srcdir)/Modules/python.c Modules/python.o: $(srcdir)/Modules/python.c
@@ -566,7 +568,7 @@ $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES) @@ -639,7 +641,7 @@ $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES)
Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H) Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H)
Python/getplatform.o: $(srcdir)/Python/getplatform.c Python/getplatform.o: $(srcdir)/Python/getplatform.c
@ -168,10 +159,10 @@ Index: Python-2.7.2/Makefile.pre.in
Python/importdl.o: $(srcdir)/Python/importdl.c Python/importdl.o: $(srcdir)/Python/importdl.c
$(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c $(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
Index: Python-2.7.2/Modules/getpath.c Index: Python-2.7.9/Modules/getpath.c
=================================================================== ===================================================================
--- Python-2.7.2.orig/Modules/getpath.c --- Python-2.7.9.orig/Modules/getpath.c
+++ Python-2.7.2/Modules/getpath.c +++ Python-2.7.9/Modules/getpath.c
@@ -116,9 +116,11 @@ @@ -116,9 +116,11 @@
#define EXEC_PREFIX PREFIX #define EXEC_PREFIX PREFIX
#endif #endif
@ -195,10 +186,10 @@ Index: Python-2.7.2/Modules/getpath.c
static void static void
reduce(char *dir) reduce(char *dir)
Index: Python-2.7.2/Python/getplatform.c Index: Python-2.7.9/Python/getplatform.c
=================================================================== ===================================================================
--- Python-2.7.2.orig/Python/getplatform.c --- Python-2.7.9.orig/Python/getplatform.c
+++ Python-2.7.2/Python/getplatform.c +++ Python-2.7.9/Python/getplatform.c
@@ -10,3 +10,13 @@ Py_GetPlatform(void) @@ -10,3 +10,13 @@ Py_GetPlatform(void)
{ {
return PLATFORM; return PLATFORM;
@ -213,11 +204,11 @@ Index: Python-2.7.2/Python/getplatform.c
+{ +{
+ return LIB; + return LIB;
+} +}
Index: Python-2.7.2/Python/sysmodule.c Index: Python-2.7.9/Python/sysmodule.c
=================================================================== ===================================================================
--- Python-2.7.2.orig/Python/sysmodule.c --- Python-2.7.9.orig/Python/sysmodule.c
+++ Python-2.7.2/Python/sysmodule.c +++ Python-2.7.9/Python/sysmodule.c
@@ -1416,6 +1416,8 @@ _PySys_Init(void) @@ -1437,6 +1437,8 @@ _PySys_Init(void)
PyString_FromString(Py_GetCopyright())); PyString_FromString(Py_GetCopyright()));
SET_SYS_FROM_STRING("platform", SET_SYS_FROM_STRING("platform",
PyString_FromString(Py_GetPlatform())); PyString_FromString(Py_GetPlatform()));
@ -226,11 +217,11 @@ Index: Python-2.7.2/Python/sysmodule.c
SET_SYS_FROM_STRING("executable", SET_SYS_FROM_STRING("executable",
PyString_FromString(Py_GetProgramFullPath())); PyString_FromString(Py_GetProgramFullPath()));
SET_SYS_FROM_STRING("prefix", SET_SYS_FROM_STRING("prefix",
Index: Python-2.7.2/configure.in Index: Python-2.7.9/configure.ac
=================================================================== ===================================================================
--- Python-2.7.2.orig/configure.in --- Python-2.7.9.orig/configure.ac
+++ Python-2.7.2/configure.in +++ Python-2.7.9/configure.ac
@@ -629,6 +629,10 @@ SunOS*) @@ -736,6 +736,11 @@ SunOS*)
;; ;;
esac esac
@ -238,6 +229,7 @@ Index: Python-2.7.2/configure.in
+AC_MSG_CHECKING(LIB) +AC_MSG_CHECKING(LIB)
+LIB=`basename ${libdir}` +LIB=`basename ${libdir}`
+AC_MSG_RESULT($LIB) +AC_MSG_RESULT($LIB)
+
AC_SUBST(LIBRARY) AC_SUBST(LIBRARY)
AC_MSG_CHECKING(LIBRARY) AC_MSG_CHECKING(LIBRARY)

View File

@ -1,25 +1,28 @@
Upstream-Status: Inappropriate [embedded specific] Upstream-Status: Inappropriate [embedded specific]
2011/09/29 2014/12/15
rebased for python-2.7.2 Rebased for python-2.7.9
Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-Off-By: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Index: Python-2.7.2/setup.py Index: Python-2.7.9/setup.py
=================================================================== ===================================================================
--- Python-2.7.2.orig/setup.py --- Python-2.7.9.orig/setup.py
+++ Python-2.7.2/setup.py +++ Python-2.7.9/setup.py
@@ -369,8 +369,8 @@ class PyBuildExt(build_ext): @@ -439,9 +439,9 @@ class PyBuildExt(build_ext):
def detect_modules(self): def detect_modules(self):
# Ensure that /usr/local is always used # Ensure that /usr/local is always used
- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') - if not cross_compiling:
- 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.library_dirs, '/usr/local/lib') - add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
+ #add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') + # if not cross_compiling:
+ # add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
+ # add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
if cross_compiling:
self.add_gcc_paths()
self.add_multiarch_paths() self.add_multiarch_paths()
@@ -480,15 +480,15 @@ class PyBuildExt(build_ext):
# Add paths specified in the environment variables LDFLAGS and
@@ -407,15 +407,15 @@ class PyBuildExt(build_ext):
for directory in reversed(options.dirs): for directory in reversed(options.dirs):
add_dir_to_list(dir_list, directory) add_dir_to_list(dir_list, directory)
@ -39,29 +42,13 @@ Index: Python-2.7.2/setup.py
sysconfig.get_config_var("INCLUDEDIR")) sysconfig.get_config_var("INCLUDEDIR"))
try: try:
@@ -426,11 +426,8 @@ class PyBuildExt(build_ext): @@ -761,8 +761,7 @@ 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.
- lib_dirs = self.compiler.library_dirs + [
- '/lib64', '/usr/lib64',
- '/lib', '/usr/lib',
- ]
- inc_dirs = self.compiler.include_dirs + ['/usr/include']
+ lib_dirs = self.compiler.library_dirs
+ inc_dirs = self.compiler.include_dirs
exts = []
missing = []
@@ -676,9 +673,8 @@ class PyBuildExt(build_ext):
pass # Issue 7384: Already linked against curses or tinfo. pass # Issue 7384: Already linked against curses or tinfo.
elif curses_library: elif curses_library:
readline_libs.append(curses_library) readline_libs.append(curses_library)
- elif self.compiler.find_library_file(lib_dirs + - elif self.compiler.find_library_file(lib_dirs +
- ['/usr/lib/termcap'], - ['/usr/lib/termcap'],
- 'termcap'):
+ elif self.compiler.find_library_file(lib_dirs, + elif self.compiler.find_library_file(lib_dirs,
+ 'termcap'): 'termcap'):
readline_libs.append('termcap') readline_libs.append('termcap')
exts.append( Extension('readline', ['readline.c'], exts.append( Extension('readline', ['readline.c'],
library_dirs=['/usr/lib/termcap'],

View File

@ -6,7 +6,6 @@ PR = "${INC_PR}.1"
SRC_URI += "\ SRC_URI += "\
file://05-enable-ctypes-cross-build.patch \ file://05-enable-ctypes-cross-build.patch \
file://06-ctypes-libffi-fix-configure.patch \
file://10-distutils-fix-swig-parameter.patch \ file://10-distutils-fix-swig-parameter.patch \
file://11-distutils-never-modify-shebang-line.patch \ file://11-distutils-never-modify-shebang-line.patch \
file://12-distutils-prefix-is-inside-staging-area.patch \ file://12-distutils-prefix-is-inside-staging-area.patch \
@ -17,9 +16,6 @@ SRC_URI += "\
file://add-md5module-support.patch \ file://add-md5module-support.patch \
file://builddir.patch \ file://builddir.patch \
file://parallel-makeinst-create-bindir.patch \ file://parallel-makeinst-create-bindir.patch \
file://python-fix-build-error-with-Readline-6.3.patch \
file://gcc-4.8-fix-configure-Wformat.patch \
file://json-flaw-fix.patch \
" "
S = "${WORKDIR}/Python-${PV}" S = "${WORKDIR}/Python-${PV}"
@ -58,7 +54,7 @@ do_install() {
# (these often end up too long for the #! parser in the kernel as the # (these often end up too long for the #! parser in the kernel as the
# buffer is 128 bytes long). # buffer is 128 bytes long).
ln -s python-native/python ${D}${bindir}/nativepython ln -s python-native/python ${D}${bindir}/nativepython
# We don't want modules in ~/.local being used in preference to those # We don't want modules in ~/.local being used in preference to those
# installed in the native sysroot, so disable user site support. # installed in the native sysroot, so disable user site support.
sed -i -e 's,^\(ENABLE_USER_SITE = \).*,\1False,' ${D}${libdir}/python${PYTHON_MAJMIN}/site.py sed -i -e 's,^\(ENABLE_USER_SITE = \).*,\1False,' ${D}${libdir}/python${PYTHON_MAJMIN}/site.py

View File

@ -5,12 +5,12 @@ SECTION = "devel/python"
# bump this on every change in contrib/python/generate-manifest-2.7.py # bump this on every change in contrib/python/generate-manifest-2.7.py
INC_PR = "r1" INC_PR = "r1"
LIC_FILES_CHKSUM = "file://LICENSE;md5=ed3abfd1059e2d3a36a8cff3986f9bb6" LIC_FILES_CHKSUM = "file://LICENSE;md5=dff3d00f049545862992d2d097831a13"
SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2" SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz"
SRC_URI[md5sum] = "c57477edd6d18bd9eeca2f21add73919" SRC_URI[md5sum] = "38d530f7efc373d64a8fb1637e3baaa7"
SRC_URI[sha256sum] = "726457e11cb153adc3f428aaf1901fc561a374c30e5e7da6742c0742a338663c" SRC_URI[sha256sum] = "90d27e14ea7e03570026850e2e50ba71ad20b7eb31035aada1cf3def8f8d4916"
PYTHON_MAJMIN = "2.7" PYTHON_MAJMIN = "2.7"

View File

@ -1,102 +1,83 @@
We need to ensure our host tools get run during build, not the freshly
built cross-tools (this will not work), so we introduce HOSTPYTHON and HOSTPGEN.
Upstream-Status: Inappropriate [embedded specific] Upstream-Status: Inappropriate [embedded specific]
# We need to ensure our host tools get run during build, not the freshly Signed-off-by: Michael 'Mickey' Lauer <mickey@vanille-media.de>
# built cross-tools (this will not work), so we introduce HOSTPYTHON and HOSTPGEN. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de>
Index: Python-2.7.2/Makefile.pre.in Rebased for python-2.7.9
Signed-Off-By: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Index: Python-2.7.9/Makefile.pre.in
=================================================================== ===================================================================
--- Python-2.7.2.orig/Makefile.pre.in --- Python-2.7.9.orig/Makefile.pre.in
+++ Python-2.7.2/Makefile.pre.in +++ Python-2.7.9/Makefile.pre.in
@@ -182,6 +182,7 @@ UNICODE_OBJS= @UNICODE_OBJS@ @@ -234,6 +234,7 @@ LIBFFI_INCLUDEDIR= @LIBFFI_INCLUDEDIR@
PYTHON= python$(EXE)
BUILDPYTHON= python$(BUILDEXE)
+HOSTPYTHON= $(BUILDPYTHON)
# 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
@@ -214,7 +215,7 @@ LIBFFI_INCLUDEDIR= @LIBFFI_INCLUDEDIR@
########################################################################## ##########################################################################
# Parser # Parser
PGEN= Parser/pgen$(EXE) PGEN= Parser/pgen$(EXE)
-
+HOSTPGEN= $(PGEN)$(EXE) +HOSTPGEN= $(PGEN)$(EXE)
POBJS= \
Parser/acceler.o \ PSRCS= \
Parser/grammar1.o \ Parser/acceler.c \
@@ -401,14 +402,14 @@ $(BUILDPYTHON): Modules/python.o $(LIBRA @@ -445,7 +446,7 @@ $(BUILDPYTHON): Modules/python.o $(LIBRA
$(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
platform: $(BUILDPYTHON) platform: $(BUILDPYTHON) pybuilddir.txt
- $(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from sysconfig import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform - $(RUNSHARED) $(PYTHON_FOR_BUILD) -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 + $(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
# Create build directory and generate the sysconfig build-time data there.
# Build the shared modules # pybuilddir.txt contains the name of the build dir and is used for
sharedmods: $(BUILDPYTHON) @@ -611,7 +612,7 @@ Modules/pwdmodule.o: $(srcdir)/Modules/p
@case $$MAKEFLAGS in \ $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGENSRCS)
- *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \ @$(MKDIR_P) Include
- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \ $(MAKE) $(PGEN)
+ *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
@@ -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) - $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
+ $(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) + $(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
-touch Parser/pgen.stamp $(GRAMMAR_C): $(GRAMMAR_H) $(GRAMMAR_INPUT) $(PGENSRCS)
$(MAKE) $(GRAMMAR_H)
$(PGEN): $(PGENOBJS) touch $(GRAMMAR_C)
@@ -926,25 +927,25 @@ libinstall: build_all $(srcdir)/Lib/$(PL @@ -1043,27 +1044,27 @@ libinstall: build_all $(srcdir)/Lib/$(PL
done $(DESTDIR)$(LIBDEST)/distutils/tests ; \
$(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt fi
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ - $(PYTHON_FOR_BUILD) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
+ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ + $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
-d $(LIBDEST) -f \ -d $(LIBDEST) -f \
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
$(DESTDIR)$(LIBDEST) $(DESTDIR)$(LIBDEST)
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ - $(PYTHON_FOR_BUILD) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
+ $(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ + $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
-d $(LIBDEST) -f \ -d $(LIBDEST) -f \
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
$(DESTDIR)$(LIBDEST) $(DESTDIR)$(LIBDEST)
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ - $(PYTHON_FOR_BUILD) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
+ $(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ + $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
-d $(LIBDEST)/site-packages -f \ -d $(LIBDEST)/site-packages -f \
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- ./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ - $(PYTHON_FOR_BUILD) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
+ $(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ + $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
-d $(LIBDEST)/site-packages -f \ -d $(LIBDEST)/site-packages -f \
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- ./$(BUILDPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()" - $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
+ $(HOSTPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()" + $(HOSTPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
+ $(HOSTPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
# Create the PLATDIR source directory, if one wasn't distributed.. # Create the PLATDIR source directory, if one wasn't distributed..
$(srcdir)/Lib/$(PLATDIR): $(srcdir)/Lib/$(PLATDIR):
@@ -1049,7 +1050,7 @@ libainstall: all python-config Index: Python-2.7.9/setup.py
# Install the dynamically loadable modules
# This goes into $(exec_prefix)
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.7.2/setup.py
=================================================================== ===================================================================
--- Python-2.7.2.orig/setup.py --- Python-2.7.9.orig/setup.py
+++ Python-2.7.2/setup.py +++ Python-2.7.9/setup.py
@@ -313,6 +313,7 @@ class PyBuildExt(build_ext): @@ -334,6 +334,7 @@ class PyBuildExt(build_ext):
self.failed.append(ext.name) self.failed.append(ext.name)
self.announce('*** WARNING: renaming "%s" since importing it' self.announce('*** WARNING: renaming "%s" since importing it'
' failed: %s' % (ext.name, why), level=3) ' failed: %s' % (ext.name, why), level=3)
@ -104,18 +85,7 @@ Index: Python-2.7.2/setup.py
assert not self.inplace assert not self.inplace
basename, tail = os.path.splitext(ext_filename) basename, tail = os.path.splitext(ext_filename)
newname = basename + "_failed" + tail newname = basename + "_failed" + tail
@@ -369,8 +370,8 @@ class PyBuildExt(build_ext): @@ -558,6 +559,9 @@ 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')
self.add_multiarch_paths()
# Add paths specified in the environment variables LDFLAGS and
@@ -475,6 +476,9 @@ class PyBuildExt(build_ext):
# XXX Omitted modules: gl, pure, dl, SGI-specific modules # XXX Omitted modules: gl, pure, dl, SGI-specific modules
@ -125,14 +95,3 @@ Index: Python-2.7.2/setup.py
# #
# The following modules are all pretty straightforward, and compile # The following modules are all pretty straightforward, and compile
# on pretty much any POSIXish platform. # 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'],

View File

@ -1,14 +1,18 @@
Upstream-Status: Inappropriate [embedded specific] Upstream-Status: Inappropriate [embedded specific]
# We need to supply STAGING_INCDIR here, otherwise the Tk headers We need to supply STAGING_INCDIR here, otherwise the Tk headers
# will not be found. will not be found.
# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille.de>
Index: Python-2.6.1/setup.py Signed-off-by: Michael 'Mickey' Lauer <mickey@vanille.de>
=================================================================== Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
--- Python-2.6.1.orig/setup.py
+++ Python-2.6.1/setup.py Rebased for python-2.7.9
@@ -1543,7 +1543,7 @@ class PyBuildExt(build_ext):
diff --git a/setup.py b/setup.py
index 8fe1fb8..67eda74 100644
--- a/setup.py
+++ b/setup.py
@@ -1892,7 +1892,7 @@ class PyBuildExt(build_ext):
dotversion = dotversion[:-1] + '.' + dotversion[-1] dotversion = dotversion[:-1] + '.' + dotversion[-1]
tcl_include_sub = [] tcl_include_sub = []
tk_include_sub = [] tk_include_sub = []
@ -17,12 +21,12 @@ Index: Python-2.6.1/setup.py
tcl_include_sub += [dir + os.sep + "tcl" + dotversion] tcl_include_sub += [dir + os.sep + "tcl" + dotversion]
tk_include_sub += [dir + os.sep + "tk" + dotversion] tk_include_sub += [dir + os.sep + "tk" + dotversion]
tk_include_sub += tcl_include_sub tk_include_sub += tcl_include_sub
@@ -1562,22 +1562,6 @@ class PyBuildExt(build_ext): @@ -1911,22 +1911,6 @@ class PyBuildExt(build_ext):
if dir not in include_dirs: if dir not in include_dirs:
include_dirs.append(dir) include_dirs.append(dir)
- # Check for various platform-specific directories - # Check for various platform-specific directories
- if platform == 'sunos5': - if host_platform == 'sunos5':
- include_dirs.append('/usr/openwin/include') - include_dirs.append('/usr/openwin/include')
- added_lib_dirs.append('/usr/openwin/lib') - added_lib_dirs.append('/usr/openwin/lib')
- elif os.path.exists('/usr/X11R6/include'): - elif os.path.exists('/usr/X11R6/include'):
@ -38,5 +42,5 @@ Index: Python-2.6.1/setup.py
- added_lib_dirs.append('/usr/X11/lib') - added_lib_dirs.append('/usr/X11/lib')
- -
# If Cygwin, then verify that X is installed before proceeding # If Cygwin, then verify that X is installed before proceeding
if platform == 'cygwin': if host_platform == 'cygwin':
x11_inc = find_file('X11/Xlib.h', [], include_dirs) x11_inc = find_file('X11/Xlib.h', [], include_dirs)

View File

@ -1,25 +1,22 @@
Rebased for python 2.7.9
Upstream-Status: Inappropriate [embedded specific] Upstream-Status: Inappropriate [embedded specific]
# CTypes need to know the actual host we are building on. # CTypes need to know the actual host we are building on.
# Signed-Off: Michael Dietrich <mdt@emdete.de> # Signed-Off: Michael Dietrich <mdt@emdete.de>
Index: Python-2.6.1/setup.py Index: Python-2.7.9/setup.py
=================================================================== ===================================================================
--- Python-2.6.1.orig/setup.py --- Python-2.7.9.orig/setup.py
+++ Python-2.6.1/setup.py +++ Python-2.7.9/setup.py
@@ -1656,16 +1656,16 @@ class PyBuildExt(build_ext): @@ -2028,12 +2028,12 @@ class PyBuildExt(build_ext):
ffi_configfile):
from distutils.dir_util import mkpath
mkpath(ffi_builddir)
- config_args = []
+ config_args = ['--host=%s' % os.environ["HOST_SYS"], ]
# Pass empty CFLAGS because we'll just append the resulting # Pass empty CFLAGS because we'll just append the resulting
# CFLAGS to Python's; -g or -O2 is to be avoided. # CFLAGS to Python's; -g or -O2 is to be avoided.
- cmd = "cd %s && env CFLAGS='' '%s/configure' %s" \ - cmd = "cd %s && env CFLAGS='' '%s/configure' %s" \
- % (ffi_builddir, ffi_srcdir, " ".join(config_args)) - % (ffi_builddir, ffi_srcdir, " ".join(config_args))
+ cmd = "(cd %s && autoconf -W cross) && (cd %s && env CFLAGS='' '%s/configure' %s)" \ + cmd = "(cd %s && autoconf -W cross) && (cd %s && env CFLAGS='' '%s/configure' %s)" \
+ % (ffi_srcdir, ffi_builddir, ffi_srcdir, " ".join(config_args)) + % (ffi_srcdir, ffi_builddir, ffi_srcdir, " ".join(config_args))
res = os.system(cmd) res = os.system(cmd)
if res or not os.path.exists(ffi_configfile): if res or not os.path.exists(ffi_configfile):

View File

@ -13,18 +13,20 @@ Nitin A Kamble <nitin.a.kamble@intel.com>
Rebased for python 2.7.2 Rebased for python 2.7.2
Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
Index: Python-2.7.2/setup.py Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
===================================================================
--- Python-2.7.2.orig/setup.py diff --git a/setup.py b/setup.py
+++ Python-2.7.2/setup.py index 67eda74..59c537e 100644
@@ -680,12 +680,10 @@ class PyBuildExt(build_ext): --- a/setup.py
+++ b/setup.py
@@ -761,12 +761,10 @@ class PyBuildExt(build_ext):
pass # Issue 7384: Already linked against curses or tinfo. pass # Issue 7384: Already linked against curses or tinfo.
elif curses_library: elif curses_library:
readline_libs.append(curses_library) readline_libs.append(curses_library)
- elif self.compiler.find_library_file(lib_dirs + - elif self.compiler.find_library_file(lib_dirs +
- ['/usr/lib/termcap'], - ['/usr/lib/termcap'],
+ elif self.compiler.find_library_file(lib_dirs, + elif self.compiler.find_library_file(lib_dirs,
'termcap'): 'termcap'):
readline_libs.append('termcap') readline_libs.append('termcap')
exts.append( Extension('readline', ['readline.c'], exts.append( Extension('readline', ['readline.c'],
- library_dirs=['/usr/lib/termcap'], - library_dirs=['/usr/lib/termcap'],

View File

@ -1,44 +0,0 @@
This fixes configure issues with recent autoconf, e.g:
autoreconf: Entering directory `Modules/_ctypes/libffi'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force
configure.ac:26: error: m4_copy: won't overwrite defined macro: _AC_ARG_VAR_PRECIOUS
configure.ac:26: the top level
The problem is still present in python-2.6.5 but fixed in python-svn.
Upstream-Status: Accepted [python-svn]
Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
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>
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
-SUBDIRS = include testsuite man
+SUBDIRS = include
EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
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
-
## ################################################################
##

View File

@ -1,251 +0,0 @@
Upstream-Status: Backport
Signed-off-by: Saul Wold <sgw@linux.intel.com>
diff -r 9ddc63c039ba Lib/test/nullbytecert.pem
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Lib/test/nullbytecert.pem Sun Aug 11 18:13:17 2013 +0200
@@ -0,0 +1,90 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 0 (0x0)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, ST=Oregon, L=Beaverton, O=Python Software Foundation, OU=Python Core Development, CN=null.python.org\x00example.org/emailAddress=python-dev@python.org
+ Validity
+ Not Before: Aug 7 13:11:52 2013 GMT
+ Not After : Aug 7 13:12:52 2013 GMT
+ Subject: C=US, ST=Oregon, L=Beaverton, O=Python Software Foundation, OU=Python Core Development, CN=null.python.org\x00example.org/emailAddress=python-dev@python.org
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:b5:ea:ed:c9:fb:46:7d:6f:3b:76:80:dd:3a:f3:
+ 03:94:0b:a7:a6:db:ec:1d:df:ff:23:74:08:9d:97:
+ 16:3f:a3:a4:7b:3e:1b:0e:96:59:25:03:a7:26:e2:
+ 88:a9:cf:79:cd:f7:04:56:b0:ab:79:32:6e:59:c1:
+ 32:30:54:eb:58:a8:cb:91:f0:42:a5:64:27:cb:d4:
+ 56:31:88:52:ad:cf:bd:7f:f0:06:64:1f:cc:27:b8:
+ a3:8b:8c:f3:d8:29:1f:25:0b:f5:46:06:1b:ca:02:
+ 45:ad:7b:76:0a:9c:bf:bb:b9:ae:0d:16:ab:60:75:
+ ae:06:3e:9c:7c:31:dc:92:2f:29:1a:e0:4b:0c:91:
+ 90:6c:e9:37:c5:90:d7:2a:d7:97:15:a3:80:8f:5d:
+ 7b:49:8f:54:30:d4:97:2c:1c:5b:37:b5:ab:69:30:
+ 68:43:d3:33:78:4b:02:60:f5:3c:44:80:a1:8f:e7:
+ f0:0f:d1:5e:87:9e:46:cf:62:fc:f9:bf:0c:65:12:
+ f1:93:c8:35:79:3f:c8:ec:ec:47:f5:ef:be:44:d5:
+ ae:82:1e:2d:9a:9f:98:5a:67:65:e1:74:70:7c:cb:
+ d3:c2:ce:0e:45:49:27:dc:e3:2d:d4:fb:48:0e:2f:
+ 9e:77:b8:14:46:c0:c4:36:ca:02:ae:6a:91:8c:da:
+ 2f:85
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:FALSE
+ X509v3 Subject Key Identifier:
+ 88:5A:55:C0:52:FF:61:CD:52:A3:35:0F:EA:5A:9C:24:38:22:F7:5C
+ X509v3 Key Usage:
+ Digital Signature, Non Repudiation, Key Encipherment
+ X509v3 Subject Alternative Name:
+ *************************************************************
+ WARNING: The values for DNS, email and URI are WRONG. OpenSSL
+ doesn't print the text after a NULL byte.
+ *************************************************************
+ DNS:altnull.python.org, email:null@python.org, URI:http://null.python.org, IP Address:192.0.2.1, IP Address:2001:DB8:0:0:0:0:0:1
+ Signature Algorithm: sha1WithRSAEncryption
+ ac:4f:45:ef:7d:49:a8:21:70:8e:88:59:3e:d4:36:42:70:f5:
+ a3:bd:8b:d7:a8:d0:58:f6:31:4a:b1:a4:a6:dd:6f:d9:e8:44:
+ 3c:b6:0a:71:d6:7f:b1:08:61:9d:60:ce:75:cf:77:0c:d2:37:
+ 86:02:8d:5e:5d:f9:0f:71:b4:16:a8:c1:3d:23:1c:f1:11:b3:
+ 56:6e:ca:d0:8d:34:94:e6:87:2a:99:f2:ae:ae:cc:c2:e8:86:
+ de:08:a8:7f:c5:05:fa:6f:81:a7:82:e6:d0:53:9d:34:f4:ac:
+ 3e:40:fe:89:57:7a:29:a4:91:7e:0b:c6:51:31:e5:10:2f:a4:
+ 60:76:cd:95:51:1a:be:8b:a1:b0:fd:ad:52:bd:d7:1b:87:60:
+ d2:31:c7:17:c4:18:4f:2d:08:25:a3:a7:4f:b7:92:ca:e2:f5:
+ 25:f1:54:75:81:9d:b3:3d:61:a2:f7:da:ed:e1:c6:6f:2c:60:
+ 1f:d8:6f:c5:92:05:ab:c9:09:62:49:a9:14:ad:55:11:cc:d6:
+ 4a:19:94:99:97:37:1d:81:5f:8b:cf:a3:a8:96:44:51:08:3d:
+ 0b:05:65:12:eb:b6:70:80:88:48:72:4f:c6:c2:da:cf:cd:8e:
+ 5b:ba:97:2f:60:b4:96:56:49:5e:3a:43:76:63:04:be:2a:f6:
+ c1:ca:a9:94
+-----BEGIN CERTIFICATE-----
+MIIE2DCCA8CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBxTELMAkGA1UEBhMCVVMx
+DzANBgNVBAgMBk9yZWdvbjESMBAGA1UEBwwJQmVhdmVydG9uMSMwIQYDVQQKDBpQ
+eXRob24gU29mdHdhcmUgRm91bmRhdGlvbjEgMB4GA1UECwwXUHl0aG9uIENvcmUg
+RGV2ZWxvcG1lbnQxJDAiBgNVBAMMG251bGwucHl0aG9uLm9yZwBleGFtcGxlLm9y
+ZzEkMCIGCSqGSIb3DQEJARYVcHl0aG9uLWRldkBweXRob24ub3JnMB4XDTEzMDgw
+NzEzMTE1MloXDTEzMDgwNzEzMTI1MlowgcUxCzAJBgNVBAYTAlVTMQ8wDQYDVQQI
+DAZPcmVnb24xEjAQBgNVBAcMCUJlYXZlcnRvbjEjMCEGA1UECgwaUHl0aG9uIFNv
+ZnR3YXJlIEZvdW5kYXRpb24xIDAeBgNVBAsMF1B5dGhvbiBDb3JlIERldmVsb3Bt
+ZW50MSQwIgYDVQQDDBtudWxsLnB5dGhvbi5vcmcAZXhhbXBsZS5vcmcxJDAiBgkq
+hkiG9w0BCQEWFXB5dGhvbi1kZXZAcHl0aG9uLm9yZzCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBALXq7cn7Rn1vO3aA3TrzA5QLp6bb7B3f/yN0CJ2XFj+j
+pHs+Gw6WWSUDpybiiKnPec33BFawq3kyblnBMjBU61ioy5HwQqVkJ8vUVjGIUq3P
+vX/wBmQfzCe4o4uM89gpHyUL9UYGG8oCRa17dgqcv7u5rg0Wq2B1rgY+nHwx3JIv
+KRrgSwyRkGzpN8WQ1yrXlxWjgI9de0mPVDDUlywcWze1q2kwaEPTM3hLAmD1PESA
+oY/n8A/RXoeeRs9i/Pm/DGUS8ZPINXk/yOzsR/XvvkTVroIeLZqfmFpnZeF0cHzL
+08LODkVJJ9zjLdT7SA4vnne4FEbAxDbKAq5qkYzaL4UCAwEAAaOB0DCBzTAMBgNV
+HRMBAf8EAjAAMB0GA1UdDgQWBBSIWlXAUv9hzVKjNQ/qWpwkOCL3XDALBgNVHQ8E
+BAMCBeAwgZAGA1UdEQSBiDCBhYIeYWx0bnVsbC5weXRob24ub3JnAGV4YW1wbGUu
+Y29tgSBudWxsQHB5dGhvbi5vcmcAdXNlckBleGFtcGxlLm9yZ4YpaHR0cDovL251
+bGwucHl0aG9uLm9yZwBodHRwOi8vZXhhbXBsZS5vcmeHBMAAAgGHECABDbgAAAAA
+AAAAAAAAAAEwDQYJKoZIhvcNAQEFBQADggEBAKxPRe99SaghcI6IWT7UNkJw9aO9
+i9eo0Fj2MUqxpKbdb9noRDy2CnHWf7EIYZ1gznXPdwzSN4YCjV5d+Q9xtBaowT0j
+HPERs1ZuytCNNJTmhyqZ8q6uzMLoht4IqH/FBfpvgaeC5tBTnTT0rD5A/olXeimk
+kX4LxlEx5RAvpGB2zZVRGr6LobD9rVK91xuHYNIxxxfEGE8tCCWjp0+3ksri9SXx
+VHWBnbM9YaL32u3hxm8sYB/Yb8WSBavJCWJJqRStVRHM1koZlJmXNx2BX4vPo6iW
+RFEIPQsFZRLrtnCAiEhyT8bC2s/Njlu6ly9gtJZWSV46Q3ZjBL4q9sHKqZQ=
+-----END CERTIFICATE-----
diff -r 9ddc63c039ba Lib/test/test_ssl.py
--- a/Lib/test/test_ssl.py Sun Aug 11 13:04:50 2013 +0300
+++ b/Lib/test/test_ssl.py Sun Aug 11 18:13:17 2013 +0200
@@ -25,6 +25,7 @@
HOST = test_support.HOST
CERTFILE = None
SVN_PYTHON_ORG_ROOT_CERT = None
+NULLBYTECERT = None
def handle_error(prefix):
exc_format = ' '.join(traceback.format_exception(*sys.exc_info()))
@@ -123,6 +124,27 @@
('DNS', 'projects.forum.nokia.com'))
)
+ def test_parse_cert_CVE_2013_4073(self):
+ p = ssl._ssl._test_decode_cert(NULLBYTECERT)
+ if test_support.verbose:
+ sys.stdout.write("\n" + pprint.pformat(p) + "\n")
+ subject = ((('countryName', 'US'),),
+ (('stateOrProvinceName', 'Oregon'),),
+ (('localityName', 'Beaverton'),),
+ (('organizationName', 'Python Software Foundation'),),
+ (('organizationalUnitName', 'Python Core Development'),),
+ (('commonName', 'null.python.org\x00example.org'),),
+ (('emailAddress', 'python-dev@python.org'),))
+ self.assertEqual(p['subject'], subject)
+ self.assertEqual(p['issuer'], subject)
+ self.assertEqual(p['subjectAltName'],
+ (('DNS', 'altnull.python.org\x00example.com'),
+ ('email', 'null@python.org\x00user@example.org'),
+ ('URI', 'http://null.python.org\x00http://example.org'),
+ ('IP Address', '192.0.2.1'),
+ ('IP Address', '2001:DB8:0:0:0:0:0:1\n'))
+ )
+
def test_DER_to_PEM(self):
with open(SVN_PYTHON_ORG_ROOT_CERT, 'r') as f:
pem = f.read()
@@ -1360,7 +1382,7 @@
def test_main(verbose=False):
- global CERTFILE, SVN_PYTHON_ORG_ROOT_CERT, NOKIACERT
+ global CERTFILE, SVN_PYTHON_ORG_ROOT_CERT, NOKIACERT, NULLBYTECERT
CERTFILE = os.path.join(os.path.dirname(__file__) or os.curdir,
"keycert.pem")
SVN_PYTHON_ORG_ROOT_CERT = os.path.join(
@@ -1368,10 +1390,13 @@
"https_svn_python_org_root.pem")
NOKIACERT = os.path.join(os.path.dirname(__file__) or os.curdir,
"nokia.pem")
+ NULLBYTECERT = os.path.join(os.path.dirname(__file__) or os.curdir,
+ "nullbytecert.pem")
if (not os.path.exists(CERTFILE) or
not os.path.exists(SVN_PYTHON_ORG_ROOT_CERT) or
- not os.path.exists(NOKIACERT)):
+ not os.path.exists(NOKIACERT) or
+ not os.path.exists(NULLBYTECERT)):
raise test_support.TestFailed("Can't read certificate files!")
tests = [BasicTests, BasicSocketTests]
diff -r 9ddc63c039ba Modules/_ssl.c
--- a/Modules/_ssl.c Sun Aug 11 13:04:50 2013 +0300
+++ b/Modules/_ssl.c Sun Aug 11 18:13:17 2013 +0200
@@ -741,8 +741,13 @@
/* get a rendering of each name in the set of names */
+ int gntype;
+ ASN1_STRING *as = NULL;
+
name = sk_GENERAL_NAME_value(names, j);
- if (name->type == GEN_DIRNAME) {
+ gntype = name-> type;
+ switch (gntype) {
+ case GEN_DIRNAME:
/* we special-case DirName as a tuple of tuples of attributes */
@@ -764,11 +769,61 @@
goto fail;
}
PyTuple_SET_ITEM(t, 1, v);
+ break;
- } else {
+ case GEN_EMAIL:
+ case GEN_DNS:
+ case GEN_URI:
+ /* GENERAL_NAME_print() doesn't handle NUL bytes in ASN1_string
+ correctly. */
+ t = PyTuple_New(2);
+ if (t == NULL)
+ goto fail;
+ switch (gntype) {
+ case GEN_EMAIL:
+ v = PyUnicode_FromString("email");
+ as = name->d.rfc822Name;
+ break;
+ case GEN_DNS:
+ v = PyUnicode_FromString("DNS");
+ as = name->d.dNSName;
+ break;
+ case GEN_URI:
+ v = PyUnicode_FromString("URI");
+ as = name->d.uniformResourceIdentifier;
+ break;
+ }
+ if (v == NULL) {
+ Py_DECREF(t);
+ goto fail;
+ }
+ PyTuple_SET_ITEM(t, 0, v);
+ v = PyString_FromStringAndSize((char *)ASN1_STRING_data(as),
+ ASN1_STRING_length(as));
+ if (v == NULL) {
+ Py_DECREF(t);
+ goto fail;
+ }
+ PyTuple_SET_ITEM(t, 1, v);
+ break;
+ default:
/* for everything else, we use the OpenSSL print form */
-
+ switch (gntype) {
+ /* check for new general name type */
+ case GEN_OTHERNAME:
+ case GEN_X400:
+ case GEN_EDIPARTY:
+ case GEN_IPADD:
+ case GEN_RID:
+ break;
+ default:
+ if (PyErr_Warn(PyExc_RuntimeWarning,
+ "Unknown general name type") == -1) {
+ goto fail;
+ }
+ break;
+ }
(void) BIO_reset(biobuf);
GENERAL_NAME_print(biobuf, name);
len = BIO_gets(biobuf, buf, sizeof(buf)-1);
@@ -794,6 +849,7 @@
goto fail;
}
PyTuple_SET_ITEM(t, 1, v);
+ break;
}
/* and add that rendering to the list */

View File

@ -2,22 +2,17 @@ _tkinter module needs tk module along with tcl. tk is not yet integrated
in yocto so we skip the check for this module. in yocto so we skip the check for this module.
Avoid a warning by not adding this module to missing variable. Avoid a warning by not adding this module to missing variable.
Also simply disable the tk module since its not in DEPENDS.
Upstream-Status: Inappropriate [distribution] Upstream-Status: Inappropriate [distribution]
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro> Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Index: Python-2.7.3/setup.py Index: Python-2.7.2/setup.py
=================================================================== ===================================================================
--- Python-2.7.3.orig/setup.py 2014-07-07 13:45:15.056233820 +0000 --- Python-2.7.2.orig/setup.py 2012-04-05 23:18:38.500136647 +0300
+++ Python-2.7.3/setup.py 2014-07-16 16:06:37.145656284 +0000 +++ Python-2.7.2/setup.py 2012-04-05 23:19:35.888134969 +0300
@@ -1639,10 +1639,12 @@ @@ -1634,8 +1634,10 @@
self.extensions.extend(exts)
# Call the method for detecting whether _tkinter can be compiled # Call the method for detecting whether _tkinter can be compiled
- self.detect_tkinter(inc_dirs, lib_dirs) self.detect_tkinter(inc_dirs, lib_dirs)
+ #self.detect_tkinter(inc_dirs, lib_dirs)
- if '_tkinter' not in [e.name for e in self.extensions]: - if '_tkinter' not in [e.name for e in self.extensions]:
- missing.append('_tkinter') - missing.append('_tkinter')

View File

@ -7,11 +7,11 @@ python recipe.
Upstream-Status: Inappropriate Upstream-Status: Inappropriate
RP 2012/11/13 RP 2012/11/13
Index: Python-2.7.3/Lib/sysconfig.py Index: Python-2.7.9/Lib/sysconfig.py
=================================================================== ===================================================================
--- Python-2.7.3.orig/Lib/sysconfig.py 2012-11-13 14:36:08.429167199 +0000 --- Python-2.7.9.orig/Lib/sysconfig.py
+++ Python-2.7.3/Lib/sysconfig.py 2012-11-13 21:58:31.788551800 +0000 +++ Python-2.7.9/Lib/sysconfig.py
@@ -93,6 +93,7 @@ @@ -93,6 +93,7 @@ _PREFIX = os.path.normpath(sys.prefix)
_EXEC_PREFIX = os.path.normpath(sys.exec_prefix) _EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
_CONFIG_VARS = None _CONFIG_VARS = None
_USER_BASE = None _USER_BASE = None
@ -19,7 +19,7 @@ Index: Python-2.7.3/Lib/sysconfig.py
def _safe_realpath(path): def _safe_realpath(path):
try: try:
@@ -100,7 +102,9 @@ @@ -100,7 +101,9 @@ def _safe_realpath(path):
except OSError: except OSError:
return path return path
@ -30,11 +30,11 @@ Index: Python-2.7.3/Lib/sysconfig.py
_PROJECT_BASE = os.path.dirname(_safe_realpath(sys.executable)) _PROJECT_BASE = os.path.dirname(_safe_realpath(sys.executable))
else: else:
# sys.executable can be empty if argv[0] has been changed and Python is # sys.executable can be empty if argv[0] has been changed and Python is
Index: Python-2.7.3/Lib/distutils/sysconfig.py Index: Python-2.7.9/Lib/distutils/sysconfig.py
=================================================================== ===================================================================
--- Python-2.7.3.orig/Lib/distutils/sysconfig.py 2012-11-13 14:36:08.005167209 +0000 --- Python-2.7.9.orig/Lib/distutils/sysconfig.py
+++ Python-2.7.3/Lib/distutils/sysconfig.py 2012-11-13 22:07:05.644540695 +0000 +++ Python-2.7.9/Lib/distutils/sysconfig.py
@@ -26,6 +26,9 @@ @@ -26,6 +26,9 @@ EXEC_PREFIX = os.path.normpath(sys.exec_
# live in project/PCBuild9. If we're dealing with an x64 Windows build, # live in project/PCBuild9. If we're dealing with an x64 Windows build,
# it'll live in project/PCbuild/amd64. # it'll live in project/PCbuild/amd64.
project_base = os.path.dirname(os.path.abspath(sys.executable)) project_base = os.path.dirname(os.path.abspath(sys.executable))
@ -44,12 +44,3 @@ Index: Python-2.7.3/Lib/distutils/sysconfig.py
if os.name == "nt" and "pcbuild" in project_base[-8:].lower(): if os.name == "nt" and "pcbuild" in project_base[-8:].lower():
project_base = os.path.abspath(os.path.join(project_base, os.path.pardir)) project_base = os.path.abspath(os.path.join(project_base, os.path.pardir))
# PC/VS7.1 # PC/VS7.1
@@ -247,7 +250,7 @@
def get_makefile_filename():
"""Return full pathname of installed Makefile from the Python build."""
if python_build:
- return os.path.join(os.path.dirname(sys.executable), "Makefile")
+ return os.path.join(project_base, "Makefile")
lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
return os.path.join(lib_dir, "config", "Makefile")

View File

@ -11,72 +11,67 @@ Updated for python 2.7.3
Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
Date: 2012/05/01 Date: 2012/05/01
Index: Python-2.7.3/Lib/sysconfig.py Rebased for python-2.7.9
Signed-Off-By: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Index: Python-2.7.9/Lib/sysconfig.py
=================================================================== ===================================================================
--- Python-2.7.3.orig/Lib/sysconfig.py --- Python-2.7.9.orig/Lib/sysconfig.py
+++ Python-2.7.3/Lib/sysconfig.py +++ Python-2.7.9/Lib/sysconfig.py
@@ -7,10 +7,10 @@ from os.path import pardir, realpath @@ -9,7 +9,7 @@ _INSTALL_SCHEMES = {
_INSTALL_SCHEMES = {
'posix_prefix': { 'posix_prefix': {
- 'stdlib': '{base}/lib/python{py_version_short}', 'stdlib': '{base}/'+sys.lib+'/python{py_version_short}',
- 'platstdlib': '{platbase}/lib/python{py_version_short}', 'platstdlib': '{platbase}/'+sys.lib+'/python{py_version_short}',
- 'purelib': '{base}/lib/python{py_version_short}/site-packages', - 'purelib': '{base}/lib/python{py_version_short}/site-packages',
- 'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
+ 'stdlib': '{base}/'+sys.lib+'/python{py_version_short}',
+ 'platstdlib': '{platbase}/'+sys.lib+'/python{py_version_short}',
+ 'purelib': '{base}/'+sys.lib+'/python{py_version_short}/site-packages', + 'purelib': '{base}/'+sys.lib+'/python{py_version_short}/site-packages',
+ 'platlib': '{platbase}/'+sys.lib+'/python{py_version_short}/site-packages', 'platlib': '{platbase}/'+sys.lib+'/python{py_version_short}/site-packages',
'include': '{base}/include/python{py_version_short}', 'include': '{base}/include/python{py_version_short}',
'platinclude': '{platbase}/include/python{py_version_short}', 'platinclude': '{platbase}/include/python{py_version_short}',
'scripts': '{base}/bin', @@ -67,7 +67,7 @@ _INSTALL_SCHEMES = {
@@ -65,10 +65,10 @@ _INSTALL_SCHEMES = {
'data' : '{userbase}',
},
'posix_user': { 'posix_user': {
- 'stdlib': '{userbase}/lib/python{py_version_short}', 'stdlib': '{userbase}/'+sys.lib+'/python{py_version_short}',
- 'platstdlib': '{userbase}/lib/python{py_version_short}', 'platstdlib': '{userbase}/'+sys.lib+'/python{py_version_short}',
- 'purelib': '{userbase}/lib/python{py_version_short}/site-packages', - 'purelib': '{userbase}/lib/python{py_version_short}/site-packages',
- 'platlib': '{userbase}/lib/python{py_version_short}/site-packages',
+ 'stdlib': '{userbase}/'+sys.lib+'/python{py_version_short}',
+ 'platstdlib': '{userbase}/'+sys.lib+'/python{py_version_short}',
+ 'purelib': '{userbase}/'+sys.lib+'/python{py_version_short}/site-packages', + 'purelib': '{userbase}/'+sys.lib+'/python{py_version_short}/site-packages',
+ 'platlib': '{userbase}/'+sys.lib+'/python{py_version_short}/site-packages', 'platlib': '{userbase}/'+sys.lib+'/python{py_version_short}/site-packages',
'include': '{userbase}/include/python{py_version_short}', 'include': '{userbase}/include/python{py_version_short}',
'scripts': '{userbase}/bin', 'scripts': '{userbase}/bin',
'data' : '{userbase}', Index: Python-2.7.9/Makefile.pre.in
Index: Python-2.7.3/Makefile.pre.in
=================================================================== ===================================================================
--- Python-2.7.3.orig/Makefile.pre.in --- Python-2.7.9.orig/Makefile.pre.in
+++ Python-2.7.3/Makefile.pre.in +++ Python-2.7.9/Makefile.pre.in
@@ -941,25 +941,25 @@ libinstall: build_all $(srcdir)/Lib/$(PL @@ -1046,27 +1046,27 @@ libinstall: build_all $(srcdir)/Lib/$(PL
$(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \ $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
$(DESTDIR)$(LIBDEST)/distutils/tests ; \ $(DESTDIR)$(LIBDEST)/distutils/tests ; \
fi fi
- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+ PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \ + PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \
$(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
-d $(LIBDEST) -f \ -d $(LIBDEST) -f \
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
$(DESTDIR)$(LIBDEST) $(DESTDIR)$(LIBDEST)
- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+ PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \ + PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH}$(RUNSHARED) \
$(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
-d $(LIBDEST) -f \ -d $(LIBDEST) -f \
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
$(DESTDIR)$(LIBDEST) $(DESTDIR)$(LIBDEST)
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \ + -PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \
$(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
-d $(LIBDEST)/site-packages -f \ -d $(LIBDEST)/site-packages -f \
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \ + -PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \
$(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
-d $(LIBDEST)/site-packages -f \ -d $(LIBDEST)/site-packages -f \
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \ + -PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \
$(HOSTPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()" $(HOSTPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \
$(HOSTPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
# Create the PLATDIR source directory, if one wasn't distributed.. # Create the PLATDIR source directory, if one wasn't distributed..

View File

@ -1,20 +0,0 @@
backport bug 17547 from http://hg.python.org/cpython/rev/9d50af4c482f/
-Wformat is needed by gcc 4.8
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Backport
Index: Python-2.7.3/configure.in
===================================================================
--- Python-2.7.3.orig/configure.in 2013-06-11 02:22:04.186529212 -0700
+++ Python-2.7.3/configure.in 2013-06-13 02:17:06.324403327 -0700
@@ -1196,7 +1196,7 @@
then
AC_MSG_CHECKING(whether gcc supports ParseTuple __format__)
save_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -Werror"
+ CFLAGS="$CFLAGS -Werror -Wformat"
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[void f(char*,...)__attribute((format(PyArg_ParseTuple, 1, 2)));]], [[]])
],[

View File

@ -12,16 +12,17 @@ so we add a check here.
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending Upstream-Status: Pending
Index: Python-2.7.2/setup.py
=================================================================== diff --git a/setup.py b/setup.py
--- Python-2.7.2.orig/setup.py 2012-02-03 12:10:42.307057756 -0800 index ba2d242..bf859be 100644
+++ Python-2.7.2/setup.py 2012-02-03 12:11:12.363059210 -0800 --- a/setup.py
@@ -360,6 +360,8 @@ +++ b/setup.py
# https://wiki.ubuntu.com/MultiarchSpec @@ -393,6 +393,8 @@ class PyBuildExt(build_ext):
if not find_executable('dpkg-architecture'): if not find_executable('dpkg-architecture'):
return return
+ if os.environ.get('CROSS_COMPILE') is not None: + if os.environ.get('CROSS_COMPILE') is not None:
+ return + return
tmpfile = os.path.join(self.build_temp, 'multiarch') opt = ''
if not os.path.exists(self.build_temp): if cross_compiling:
os.makedirs(self.build_temp) opt = '-t' + sysconfig.get_config_var('HOST_GNU_TYPE')

View File

@ -1,27 +0,0 @@
python: fix _json module arbitrary process memory read vulnerability
Upstream-Status: submitted
Signed-off-by: Daniel BORNAZ <daniel.bornaz@enea.com>
--- a/Modules/_json.c 2014-07-15 15:37:17.151046356 +0200
+++ b/Modules/_json.c 2014-07-15 15:38:37.335605042 +0200
@@ -1491,7 +1491,7 @@ scan_once_str(PyScannerObject *s, PyObje
PyObject *res;
char *str = PyString_AS_STRING(pystr);
Py_ssize_t length = PyString_GET_SIZE(pystr);
- if (idx >= length) {
+ if ( idx < 0 || idx >= length) {
PyErr_SetNone(PyExc_StopIteration);
return NULL;
}
@@ -1578,7 +1578,7 @@ scan_once_unicode(PyScannerObject *s, Py
PyObject *res;
Py_UNICODE *str = PyUnicode_AS_UNICODE(pystr);
Py_ssize_t length = PyUnicode_GET_SIZE(pystr);
- if (idx >= length) {
+ if ( idx < 0 || idx >= length) {
PyErr_SetNone(PyExc_StopIteration);
return NULL;
}

View File

@ -1,26 +1,25 @@
commit 248279e54467a8cd5cde98fc124d1d1384703513 Rebased for python-2.7.9
Author: Yu Ke <ke.yu@intel.com> Signed-Off-By: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Date: Tue Jun 28 21:21:29 2011 +0800
SUSE patch for the lib64 issue Index: Python-2.7.9/configure.ac
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
Rebased for python 2.7.2
Upstream-Status: Inappropriate [configuration]
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.9.orig/configure.ac
+++ Python-2.7.2/Include/pythonrun.h +++ Python-2.7.9/configure.ac
@@ -736,6 +736,10 @@ SunOS*)
;;
esac
+AC_SUBST(LIB)
+AC_MSG_CHECKING(LIB)
+LIB=`basename ${libdir}`
+AC_MSG_RESULT($LIB)
AC_SUBST(LIBRARY)
AC_MSG_CHECKING(LIBRARY)
Index: Python-2.7.9/Include/pythonrun.h
===================================================================
--- Python-2.7.9.orig/Include/pythonrun.h
+++ Python-2.7.9/Include/pythonrun.h
@@ -108,6 +108,7 @@ PyAPI_FUNC(char *) Py_GetPath(void); @@ -108,6 +108,7 @@ PyAPI_FUNC(char *) Py_GetPath(void);
/* In their own files */ /* In their own files */
PyAPI_FUNC(const char *) Py_GetVersion(void); PyAPI_FUNC(const char *) Py_GetVersion(void);
@ -29,10 +28,10 @@ Index: Python-2.7.2/Include/pythonrun.h
PyAPI_FUNC(const char *) Py_GetCopyright(void); PyAPI_FUNC(const char *) Py_GetCopyright(void);
PyAPI_FUNC(const char *) Py_GetCompiler(void); PyAPI_FUNC(const char *) Py_GetCompiler(void);
PyAPI_FUNC(const char *) Py_GetBuildInfo(void); PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
Index: Python-2.7.2/Lib/distutils/command/install.py Index: Python-2.7.9/Lib/distutils/command/install.py
=================================================================== ===================================================================
--- Python-2.7.2.orig/Lib/distutils/command/install.py --- Python-2.7.9.orig/Lib/distutils/command/install.py
+++ Python-2.7.2/Lib/distutils/command/install.py +++ Python-2.7.9/Lib/distutils/command/install.py
@@ -22,6 +22,8 @@ from site import USER_BASE @@ -22,6 +22,8 @@ from site import USER_BASE
from site import USER_SITE from site import USER_SITE
@ -51,11 +50,11 @@ Index: Python-2.7.2/Lib/distutils/command/install.py
'headers': '$base/include/python$py_version_short/$dist_name', 'headers': '$base/include/python$py_version_short/$dist_name',
'scripts': '$base/bin', 'scripts': '$base/bin',
'data' : '$base', 'data' : '$base',
Index: Python-2.7.2/Lib/distutils/sysconfig.py Index: Python-2.7.9/Lib/distutils/sysconfig.py
=================================================================== ===================================================================
--- Python-2.7.2.orig/Lib/distutils/sysconfig.py --- Python-2.7.9.orig/Lib/distutils/sysconfig.py
+++ Python-2.7.2/Lib/distutils/sysconfig.py +++ Python-2.7.9/Lib/distutils/sysconfig.py
@@ -114,8 +114,11 @@ def get_python_lib(plat_specific=0, stan @@ -119,8 +119,11 @@ def get_python_lib(plat_specific=0, stan
prefix = plat_specific and EXEC_PREFIX or PREFIX prefix = plat_specific and EXEC_PREFIX or PREFIX
if os.name == "posix": if os.name == "posix":
@ -69,11 +68,11 @@ Index: Python-2.7.2/Lib/distutils/sysconfig.py
if standard_lib: if standard_lib:
return libpython return libpython
else: else:
Index: Python-2.7.2/Lib/pydoc.py Index: Python-2.7.9/Lib/pydoc.py
=================================================================== ===================================================================
--- Python-2.7.2.orig/Lib/pydoc.py --- Python-2.7.9.orig/Lib/pydoc.py
+++ Python-2.7.2/Lib/pydoc.py +++ Python-2.7.9/Lib/pydoc.py
@@ -352,7 +352,7 @@ class Doc: @@ -383,7 +383,7 @@ class Doc:
docloc = os.environ.get("PYTHONDOCS", docloc = os.environ.get("PYTHONDOCS",
"http://docs.python.org/library") "http://docs.python.org/library")
@ -82,11 +81,11 @@ Index: Python-2.7.2/Lib/pydoc.py
"python"+sys.version[0:3]) "python"+sys.version[0:3])
if (isinstance(object, type(os)) and if (isinstance(object, type(os)) and
(object.__name__ in ('errno', 'exceptions', 'gc', 'imp', (object.__name__ in ('errno', 'exceptions', 'gc', 'imp',
Index: Python-2.7.2/Lib/site.py Index: Python-2.7.9/Lib/site.py
=================================================================== ===================================================================
--- Python-2.7.2.orig/Lib/site.py --- Python-2.7.9.orig/Lib/site.py
+++ Python-2.7.2/Lib/site.py +++ Python-2.7.9/Lib/site.py
@@ -300,13 +300,19 @@ def getsitepackages(): @@ -288,13 +288,18 @@ def getsitepackages():
if sys.platform in ('os2emx', 'riscos'): if sys.platform in ('os2emx', 'riscos'):
sitepackages.append(os.path.join(prefix, "Lib", "site-packages")) sitepackages.append(os.path.join(prefix, "Lib", "site-packages"))
elif os.sep == '/': elif os.sep == '/':
@ -95,12 +94,11 @@ Index: Python-2.7.2/Lib/site.py
"python" + sys.version[:3], "python" + sys.version[:3],
"site-packages")) "site-packages"))
- sitepackages.append(os.path.join(prefix, "lib", "site-python")) - 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")) + sitepackages.append(os.path.join(prefix, sys.lib, "site-python"))
+ if sys.lib != "lib": + if sys.lib != "lib":
+ sitepackages.append(os.path.join(prefix, "lib",
+ "python" + sys.version[:3],
+ "site-packages"))
+ sitepackages.append(os.path.join(prefix, "lib", "site-python")) + sitepackages.append(os.path.join(prefix, "lib", "site-python"))
else: else:
sitepackages.append(prefix) sitepackages.append(prefix)
@ -109,11 +107,43 @@ Index: Python-2.7.2/Lib/site.py
if sys.platform == "darwin": if sys.platform == "darwin":
# for framework builds *only* we add the standard Apple # for framework builds *only* we add the standard Apple
# locations. # locations.
Index: Python-2.7.2/Lib/test/test_dl.py Index: Python-2.7.9/Lib/sysconfig.py
=================================================================== ===================================================================
--- Python-2.7.2.orig/Lib/test/test_dl.py --- Python-2.7.9.orig/Lib/sysconfig.py
+++ Python-2.7.2/Lib/test/test_dl.py +++ Python-2.7.9/Lib/sysconfig.py
@@ -5,10 +5,11 @@ @@ -7,10 +7,10 @@ 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}/'+sys.lib+'/python{py_version_short}',
+ 'platstdlib': '{platbase}/'+sys.lib+'/python{py_version_short}',
'purelib': '{base}/lib/python{py_version_short}/site-packages',
- 'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
+ 'platlib': '{platbase}/'+sys.lib+'/python{py_version_short}/site-packages',
'include': '{base}/include/python{py_version_short}',
'platinclude': '{platbase}/include/python{py_version_short}',
'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}/'+sys.lib+'/python{py_version_short}',
+ 'platstdlib': '{userbase}/'+sys.lib+'/python{py_version_short}',
'purelib': '{userbase}/lib/python{py_version_short}/site-packages',
- 'platlib': '{userbase}/lib/python{py_version_short}/site-packages',
+ 'platlib': '{userbase}/'+sys.lib+'/python{py_version_short}/site-packages',
'include': '{userbase}/include/python{py_version_short}',
'scripts': '{userbase}/bin',
'data' : '{userbase}',
Index: Python-2.7.9/Lib/test/test_dl.py
===================================================================
--- Python-2.7.9.orig/Lib/test/test_dl.py
+++ Python-2.7.9/Lib/test/test_dl.py
@@ -4,10 +4,11 @@
import unittest import unittest
from test.test_support import verbose, import_module from test.test_support import verbose, import_module
dl = import_module('dl', deprecated=True) dl = import_module('dl', deprecated=True)
@ -127,11 +157,35 @@ Index: Python-2.7.2/Lib/test/test_dl.py
('/usr/bin/cygwin1.dll', 'getpid'), ('/usr/bin/cygwin1.dll', 'getpid'),
('/usr/lib/libc.dylib', 'getpid'), ('/usr/lib/libc.dylib', 'getpid'),
] ]
Index: Python-2.7.2/Lib/trace.py Index: Python-2.7.9/Lib/test/test_site.py
=================================================================== ===================================================================
--- Python-2.7.2.orig/Lib/trace.py --- Python-2.7.9.orig/Lib/test/test_site.py
+++ Python-2.7.2/Lib/trace.py +++ Python-2.7.9/Lib/test/test_site.py
@@ -762,10 +762,10 @@ def main(argv=None): @@ -241,12 +241,16 @@ class HelperFunctionsTests(unittest.Test
self.assertEqual(dirs[2], wanted)
elif os.sep == '/':
# OS X non-framwework builds, Linux, FreeBSD, etc
- self.assertEqual(len(dirs), 2)
wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3],
'site-packages')
- self.assertEqual(dirs[0], wanted)
+ self.assertTrue(wanted in dirs)
wanted = os.path.join('xoxo', 'lib', 'site-python')
- self.assertEqual(dirs[1], wanted)
+ self.assertTrue(wanted in dirs)
+ wanted = os.path.join('xoxo', sys.lib, 'python' + sys.version[:3],
+ 'site-packages')
+ self.assertTrue(wanted in dirs)
+ wanted = os.path.join('xoxo', sys.lib, 'site-python')
+ self.assertTrue(wanted in dirs)
else:
# other platforms
self.assertEqual(len(dirs), 2)
Index: Python-2.7.9/Lib/trace.py
===================================================================
--- Python-2.7.9.orig/Lib/trace.py
+++ Python-2.7.9/Lib/trace.py
@@ -754,10 +754,10 @@ def main(argv=None):
# should I also call expanduser? (after all, could use $HOME) # should I also call expanduser? (after all, could use $HOME)
s = s.replace("$prefix", s = s.replace("$prefix",
@ -144,19 +198,19 @@ Index: Python-2.7.2/Lib/trace.py
"python" + sys.version[:3])) "python" + sys.version[:3]))
s = os.path.normpath(s) s = os.path.normpath(s)
ignore_dirs.append(s) ignore_dirs.append(s)
Index: Python-2.7.2/Makefile.pre.in Index: Python-2.7.9/Makefile.pre.in
=================================================================== ===================================================================
--- Python-2.7.2.orig/Makefile.pre.in --- Python-2.7.9.orig/Makefile.pre.in
+++ Python-2.7.2/Makefile.pre.in +++ Python-2.7.9/Makefile.pre.in
@@ -81,6 +81,7 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG @@ -87,6 +87,7 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG
# Machine-dependent subdirectories # Machine-dependent subdirectories
MACHDEP= @MACHDEP@ MACHDEP= @MACHDEP@
+LIB= @LIB@ +LIB= @LIB@
# Install prefix for architecture-independent files # Multiarch directory (may be empty)
prefix= @prefix@ MULTIARCH= @MULTIARCH@
@@ -97,7 +98,7 @@ LIBDIR= @libdir@ @@ -106,7 +107,7 @@ LIBDIR= @libdir@
MANDIR= @mandir@ MANDIR= @mandir@
INCLUDEDIR= @includedir@ INCLUDEDIR= @includedir@
CONFINCLUDEDIR= $(exec_prefix)/include CONFINCLUDEDIR= $(exec_prefix)/include
@ -165,7 +219,7 @@ Index: Python-2.7.2/Makefile.pre.in
# Detailed destination directories # Detailed destination directories
BINLIBDEST= $(LIBDIR)/python$(VERSION) BINLIBDEST= $(LIBDIR)/python$(VERSION)
@@ -533,6 +534,7 @@ Modules/getpath.o: $(srcdir)/Modules/get @@ -598,6 +599,7 @@ Modules/getpath.o: $(srcdir)/Modules/get
-DEXEC_PREFIX='"$(exec_prefix)"' \ -DEXEC_PREFIX='"$(exec_prefix)"' \
-DVERSION='"$(VERSION)"' \ -DVERSION='"$(VERSION)"' \
-DVPATH='"$(VPATH)"' \ -DVPATH='"$(VPATH)"' \
@ -173,7 +227,7 @@ Index: Python-2.7.2/Makefile.pre.in
-o $@ $(srcdir)/Modules/getpath.c -o $@ $(srcdir)/Modules/getpath.c
Modules/python.o: $(srcdir)/Modules/python.c Modules/python.o: $(srcdir)/Modules/python.c
@@ -567,7 +569,7 @@ $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES) @@ -640,7 +642,7 @@ $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES)
Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H) Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H)
Python/getplatform.o: $(srcdir)/Python/getplatform.c Python/getplatform.o: $(srcdir)/Python/getplatform.c
@ -182,10 +236,10 @@ Index: Python-2.7.2/Makefile.pre.in
Python/importdl.o: $(srcdir)/Python/importdl.c Python/importdl.o: $(srcdir)/Python/importdl.c
$(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c $(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
Index: Python-2.7.2/Modules/getpath.c Index: Python-2.7.9/Modules/getpath.c
=================================================================== ===================================================================
--- Python-2.7.2.orig/Modules/getpath.c --- Python-2.7.9.orig/Modules/getpath.c
+++ Python-2.7.2/Modules/getpath.c +++ Python-2.7.9/Modules/getpath.c
@@ -116,9 +116,11 @@ @@ -116,9 +116,11 @@
#define EXEC_PREFIX PREFIX #define EXEC_PREFIX PREFIX
#endif #endif
@ -209,10 +263,10 @@ Index: Python-2.7.2/Modules/getpath.c
static void static void
reduce(char *dir) reduce(char *dir)
Index: Python-2.7.2/Python/getplatform.c Index: Python-2.7.9/Python/getplatform.c
=================================================================== ===================================================================
--- Python-2.7.2.orig/Python/getplatform.c --- Python-2.7.9.orig/Python/getplatform.c
+++ Python-2.7.2/Python/getplatform.c +++ Python-2.7.9/Python/getplatform.c
@@ -10,3 +10,13 @@ Py_GetPlatform(void) @@ -10,3 +10,13 @@ Py_GetPlatform(void)
{ {
return PLATFORM; return PLATFORM;
@ -227,31 +281,16 @@ Index: Python-2.7.2/Python/getplatform.c
+{ +{
+ return LIB; + return LIB;
+} +}
Index: Python-2.7.2/Python/sysmodule.c Index: Python-2.7.9/Python/sysmodule.c
=================================================================== ===================================================================
--- Python-2.7.2.orig/Python/sysmodule.c --- Python-2.7.9.orig/Python/sysmodule.c
+++ Python-2.7.2/Python/sysmodule.c +++ Python-2.7.9/Python/sysmodule.c
@@ -1416,6 +1416,8 @@ _PySys_Init(void) @@ -1437,6 +1437,8 @@ _PySys_Init(void)
PyString_FromString(Py_GetCopyright())); PyString_FromString(Py_GetCopyright()));
SET_SYS_FROM_STRING("platform", SET_SYS_FROM_STRING("platform",
PyString_FromString(Py_GetPlatform())); PyString_FromString(Py_GetPlatform()));
+ SET_SYS_FROM_STRING("lib", + SET_SYS_FROM_STRING("lib",
+ PyString_FromString(Py_GetLib())); + PyString_FromString(Py_GetLib()));
SET_SYS_FROM_STRING("executable", SET_SYS_FROM_STRING("executable",
PyString_FromString(Py_GetProgramFullPath())); PyString_FromString(Py_GetProgramFullPath()));
SET_SYS_FROM_STRING("prefix", 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)

View File

@ -1,43 +0,0 @@
backport from http://bugs.python.org/issue20594
- Issue #20594: Avoid name clash with the libc function posix_close.
Upstream-Status: Backport
Signed-off-by: Khem Raj <raj.khem@gmail.com>
# HG changeset patch
# User Benjamin Peterson <benjamin@python.org>
# Date 1392131776 18000
# Node ID 1d253360d5a6d8d987fb2480e26f4fcc2d730932
# Parent 41e49f1c5bd8ff48a6c18804c958e82c659daab3
avoid name clash with posix_close (closes #20594)
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -6581,8 +6581,12 @@ PyDoc_STRVAR(posix_close__doc__,
"close(fd)\n\n\
Close a file descriptor (for low level IO).");
-static PyObject *
-posix_close(PyObject *self, PyObject *args)
+/*
+The underscore at end of function name avoids a name clash with the libc
+function posix_close.
+*/
+static PyObject *
+posix_close_(PyObject *self, PyObject *args)
{
int fd, res;
if (!PyArg_ParseTuple(args, "i:close", &fd))
@@ -8960,7 +8964,7 @@ static PyMethodDef posix_methods[] = {
{"tcsetpgrp", posix_tcsetpgrp, METH_VARARGS, posix_tcsetpgrp__doc__},
#endif /* HAVE_TCSETPGRP */
{"open", posix_open, METH_VARARGS, posix_open__doc__},
- {"close", posix_close, METH_VARARGS, posix_close__doc__},
+ {"close", posix_close_, METH_VARARGS, posix_close__doc__},
{"closerange", posix_closerange, METH_VARARGS, posix_closerange__doc__},
{"dup", posix_dup, METH_VARARGS, posix_dup__doc__},
{"dup2", posix_dup2, METH_VARARGS, posix_dup2__doc__},

View File

@ -1,35 +0,0 @@
# HG changeset patch
# User Philip Jenvey <pjenvey@underboss.org>
# Date 1322701507 28800
# Branch 2.7
# Node ID e7c20a8476a0e2ca18f8040864cbc400818d8f24
# Parent 3ecddf168f1f554a17a047384fe0b02f2d688277
create the .pypirc securely
Upstream-Status: Backport
Signed-off-by: Saul Wold <sgw@linux.intel.com>
diff -r 3ecddf168f1f -r e7c20a8476a0 Lib/distutils/config.py
--- a/Lib/distutils/config.py Tue Nov 29 00:53:09 2011 +0100
+++ b/Lib/distutils/config.py Wed Nov 30 17:05:07 2011 -0800
@@ -42,16 +42,8 @@
def _store_pypirc(self, username, password):
"""Creates a default .pypirc file."""
rc = self._get_rc_file()
- f = open(rc, 'w')
- try:
- f.write(DEFAULT_PYPIRC % (username, password))
- finally:
- f.close()
- try:
- os.chmod(rc, 0600)
- except OSError:
- # should do something better here
- pass
+ with os.fdopen(os.open(rc, os.O_CREAT | os.O_WRONLY, 0600), 'w') as fp:
+ fp.write(DEFAULT_PYPIRC % (username, password))
def _read_pypirc(self):
"""Reads the .pypirc file."""

View File

@ -1,73 +0,0 @@
Upstream-Status: Backport
Reference:http://bugs.python.org/issue14579
The utf-16 decoder in Python 3.1 through 3.3 does not update the
aligned_end variable after calling the unicode_decode_call_errorhandler
function, which allows remote attackers to obtain sensitive information
(process memory) or cause a denial of service (memory corruption and crash)
via unspecified vectors.
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-2135
diff -urpN a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -495,8 +495,21 @@ class UTF16LETest(ReadTest):
)
def test_errors(self):
- self.assertRaises(UnicodeDecodeError, codecs.utf_16_le_decode, "\xff", "strict", True)
-
+ tests = [
+ (b'\xff', u'\ufffd'),
+ (b'A\x00Z', u'A\ufffd'),
+ (b'A\x00B\x00C\x00D\x00Z', u'ABCD\ufffd'),
+ (b'\x00\xd8', u'\ufffd'),
+ (b'\x00\xd8A', u'\ufffd'),
+ (b'\x00\xd8A\x00', u'\ufffdA'),
+ (b'\x00\xdcA\x00', u'\ufffdA'),
+ ]
+ for raw, expected in tests:
+ print('*****', raw, expected)
+ self.assertRaises(UnicodeDecodeError, codecs.utf_16_le_decode,
+ raw, 'strict', True)
+ self.assertEqual(raw.decode('utf-16le', 'replace'), expected)
+
class UTF16BETest(ReadTest):
encoding = "utf-16-be"
@@ -516,7 +529,20 @@ class UTF16BETest(ReadTest):
)
def test_errors(self):
- self.assertRaises(UnicodeDecodeError, codecs.utf_16_be_decode, "\xff", "strict", True)
+ tests = [
+ (b'\xff', u'\ufffd'),
+ (b'\x00A\xff', u'A\ufffd'),
+ (b'\x00A\x00B\x00C\x00DZ', u'ABCD\ufffd'),
+ (b'\xd8\x00', u'\ufffd'),
+ (b'\xd8\x00\xdc', u'\ufffd'),
+ (b'\xd8\x00\x00A', u'\ufffdA'),
+ (b'\xdc\x00\x00A', u'\ufffdA'),
+ ]
+ for raw, expected in tests:
+ print('*****', raw, expected)
+ self.assertRaises(UnicodeDecodeError, codecs.utf_16_be_decode,
+ raw, 'strict', True)
+ self.assertEqual(raw.decode('utf-16be', 'replace'), expected)
class UTF8Test(ReadTest):
encoding = "utf-8"
diff -urpN a/Objects/unicodeobject.c b/Objects/unicodeobject.c
--- a/Objects/unicodeobject.c 2013-03-04 11:34:34.000000000 +0800
+++ b/Objects/unicodeobject.c 2013-03-04 11:36:01.000000000 +0800
@@ -2564,7 +2564,7 @@ PyUnicode_DecodeUTF16Stateful(const char
}
/* UTF-16 code pair: */
- if (q >= e) {
+ if (e - q < 2) {
errmsg = "unexpected end of data";
startinpos = (((const char *)q)-2)-starts;
endinpos = ((const char *)e)-starts;

View File

@ -1,101 +0,0 @@
Upstream-Status: Backport
Reference: http://bugs.python.org/issue16042
CVE-2013-1752: smtplib: Limit amount of data read by limiting the
call to readline(). Original patch by Christian Heimes
Signed-off-by: Maxin B. John <maxin.john@enea.com>
---
diff -Naur Python-2.7.3-orig/Lib/smtplib.py Python-2.7.3/Lib/smtplib.py
--- Python-2.7.3-orig/Lib/smtplib.py 2012-04-10 01:07:31.000000000 +0200
+++ Python-2.7.3/Lib/smtplib.py 2014-02-27 14:15:24.444198465 +0100
@@ -57,6 +57,7 @@
SMTP_PORT = 25
SMTP_SSL_PORT = 465
CRLF = "\r\n"
+_MAXLINE = 8192 # more than 8 times larger than RFC 821, 4.5.3
OLDSTYLE_AUTH = re.compile(r"auth=(.*)", re.I)
@@ -179,10 +180,14 @@
def __init__(self, sslobj):
self.sslobj = sslobj
- def readline(self):
+ def readline(self, size=-1):
+ if size < 0:
+ size = None
str = ""
chr = None
while chr != "\n":
+ if size is not None and len(str) >= size:
+ break
chr = self.sslobj.read(1)
if not chr:
break
@@ -351,7 +356,7 @@
self.file = self.sock.makefile('rb')
while 1:
try:
- line = self.file.readline()
+ line = self.file.readline(_MAXLINE + 1)
except socket.error as e:
self.close()
raise SMTPServerDisconnected("Connection unexpectedly closed: "
@@ -361,6 +366,8 @@
raise SMTPServerDisconnected("Connection unexpectedly closed")
if self.debuglevel > 0:
print>>stderr, 'reply:', repr(line)
+ if len(line) > _MAXLINE:
+ raise SMTPResponseException(500, "Line too long.")
resp.append(line[4:].strip())
code = line[:3]
# Check that the error code is syntactically correct.
diff -Naur Python-2.7.3-orig/Lib/test/test_smtplib.py Python-2.7.3/Lib/test/test_smtplib.py
--- Python-2.7.3-orig/Lib/test/test_smtplib.py 2012-04-10 01:07:32.000000000 +0200
+++ Python-2.7.3/Lib/test/test_smtplib.py 2014-02-27 14:15:24.448198293 +0100
@@ -292,6 +292,33 @@
HOST, self.port, 'localhost', 3)
+@unittest.skipUnless(threading, 'Threading required for this test.')
+class TooLongLineTests(unittest.TestCase):
+ respdata = '250 OK' + ('.' * smtplib._MAXLINE * 2) + '\n'
+
+ def setUp(self):
+ self.old_stdout = sys.stdout
+ self.output = StringIO.StringIO()
+ sys.stdout = self.output
+
+ self.evt = threading.Event()
+ self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ self.sock.settimeout(15)
+ self.port = test_support.bind_port(self.sock)
+ servargs = (self.evt, self.respdata, self.sock)
+ threading.Thread(target=server, args=servargs).start()
+ self.evt.wait()
+ self.evt.clear()
+
+ def tearDown(self):
+ self.evt.wait()
+ sys.stdout = self.old_stdout
+
+ def testLineTooLong(self):
+ self.assertRaises(smtplib.SMTPResponseException, smtplib.SMTP,
+ HOST, self.port, 'localhost', 3)
+
+
sim_users = {'Mr.A@somewhere.com':'John A',
'Ms.B@somewhere.com':'Sally B',
'Mrs.C@somewhereesle.com':'Ruth C',
@@ -511,7 +538,8 @@
def test_main(verbose=None):
test_support.run_unittest(GeneralTests, DebuggingServerTests,
NonConnectingTests,
- BadHELOServerTests, SMTPSimTests)
+ BadHELOServerTests, SMTPSimTests,
+ TooLongLineTests)
if __name__ == '__main__':
test_main()

View File

@ -1,26 +0,0 @@
Upstream-Status: Backport
Reference: http://bugs.python.org/issue20246
CVE-2014-1912: Python buffer overflow in socket.recvfrom_into()
lets remote users execute arbitrary code.Original patch by Benjamin Peterson
Signed-off-by: Maxin B. John <maxin.john@enea.com>
---
diff -r 40fb60df4755 Modules/socketmodule.c
--- a/Modules/socketmodule.c Sun Jan 12 12:11:47 2014 +0200
+++ b/Modules/socketmodule.c Mon Jan 13 16:36:35 2014 -0800
@@ -2744,6 +2744,13 @@
recvlen = buflen;
}
+ /* Check if the buffer is large enough */
+ if (buflen < recvlen) {
+ PyErr_SetString(PyExc_ValueError,
+ "buffer too small for requested bytes");
+ goto error;
+ }
+
readlen = sock_recvfrom_guts(s, buf.buf, recvlen, flags, &addr);
if (readlen < 0) {
/* Return an error */

View File

@ -1,75 +0,0 @@
From 104eb318283dde5203aa6cf7384287bef181e308 Mon Sep 17 00:00:00 2001
From: Wenzong Fan <wenzong.fan@windriver.com>
Date: Wed, 12 Nov 2014 01:58:02 -0500
Subject: [PATCH] python: fix CVE-2014-7185
Reference: http://bugs.python.org/issue21831
CVE-2014-7185: Integer overflow in bufferobject.c in Python before
2.7.8 allows context-dependent attackers to obtain sensitive
information from process memory via a large size and offset in a
"buffer" function.
Upstream-Status: Backport
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
---
Lib/test/test_buffer.py | 6 ++++++
Misc/NEWS | 3 +++
Objects/bufferobject.c | 2 +-
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/Lib/test/test_buffer.py b/Lib/test/test_buffer.py
index 6bdc34d..3ac1f8c 100644
--- a/Lib/test/test_buffer.py
+++ b/Lib/test/test_buffer.py
@@ -4,6 +4,7 @@ For now, tests just new or changed functionality.
"""
+import sys
import unittest
from test import test_support
@@ -21,6 +22,11 @@ class BufferTests(unittest.TestCase):
self.assertEqual(b[start:stop:step],
s[start:stop:step])
+ def test_large_buffer_size_and_offset(self):
+ data = bytearray('hola mundo')
+ buf = buffer(data, sys.maxsize, sys.maxsize)
+ self.assertEqual(buf[:4096], "")
+
def test_main():
with test_support.check_py3k_warnings(("buffer.. not supported",
diff --git a/Misc/NEWS b/Misc/NEWS
index e8778ad..77396c5 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -1896,6 +1896,9 @@ What's New in Python 2.7 Release Candidate 1?
Core and Builtins
-----------------
+- Issue #21831: Avoid integer overflow when large sizes and offsets are given to
+ the buffer type. CVE-2014-7185.
+
- Issue #8271: during the decoding of an invalid UTF-8 byte sequence, only the
start byte and the continuation byte(s) are now considered invalid, instead
of the number of bytes specified by the start byte.
diff --git a/Objects/bufferobject.c b/Objects/bufferobject.c
index c52f0bc..c542506 100644
--- a/Objects/bufferobject.c
+++ b/Objects/bufferobject.c
@@ -88,7 +88,7 @@ get_buf(PyBufferObject *self, void **ptr, Py_ssize_t *size,
*size = count;
else
*size = self->b_size;
- if (offset + *size > count)
+ if (*size > count - offset)
*size = count - offset;
}
return 1;
--
1.7.9.5

View File

@ -1,62 +0,0 @@
python: fix build error with Readline 6.3
Backport two patches from upstream:
use new readline function types (closes #20374)
Issue #20374: Avoid compiler warnings when compiling readline with libedit.
Upstream-Status: Backport
Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
---
Modules/readline.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/Modules/readline.c b/Modules/readline.c
index b5e258d..d3f52aa 100644
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -735,15 +735,24 @@ on_hook(PyObject *func)
return result;
}
+
static int
+#if defined(_RL_FUNCTION_TYPEDEF)
on_startup_hook(void)
+#else
+on_startup_hook()
+#endif
{
return on_hook(startup_hook);
}
#ifdef HAVE_RL_PRE_INPUT_HOOK
static int
+#if defined(_RL_FUNCTION_TYPEDEF)
on_pre_input_hook(void)
+#else
+on_pre_input_hook()
+#endif
{
return on_hook(pre_input_hook);
}
@@ -886,12 +895,12 @@ setup_readline(void)
rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap);
rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap);
/* Set our hook functions */
- rl_startup_hook = (Function *)on_startup_hook;
+ rl_startup_hook = (rl_hook_func_t *)on_startup_hook;
#ifdef HAVE_RL_PRE_INPUT_HOOK
- rl_pre_input_hook = (Function *)on_pre_input_hook;
+ rl_pre_input_hook = (rl_hook_func_t *)on_pre_input_hook;
#endif
/* Set our completion function */
- rl_attempted_completion_function = (CPPFunction *)flex_complete;
+ rl_attempted_completion_function = (rl_completion_func_t *)flex_complete;
/* Set Python word break characters */
rl_completer_word_break_characters =
strdup(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?");
--
1.7.9.5

View File

@ -1,37 +0,0 @@
python: Building without SSLv3 support
Building without SSLv3 support when openssl is built
without any support for SSLv3
Upstream-Status: Backport
Reference:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=76A8611#22
Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
---
diff -ruN a/Modules/_ssl.c b/Modules/_ssl.c
--- a/Modules/_ssl.c 2014-11-26 07:43:58.755679939 +0100
+++ b/Modules/_ssl.c 2014-11-26 07:49:10.454182400 +0100
@@ -302,8 +302,10 @@
PySSL_BEGIN_ALLOW_THREADS
if (proto_version == PY_SSL_VERSION_TLS1)
self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */
+#ifndef OPENSSL_NO_SSL3
else if (proto_version == PY_SSL_VERSION_SSL3)
self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */
+#endif
#ifndef OPENSSL_NO_SSL2
else if (proto_version == PY_SSL_VERSION_SSL2)
self->ctx = SSL_CTX_new(SSLv2_method()); /* Set up context */
@@ -1777,8 +1779,10 @@
PyModule_AddIntConstant(m, "PROTOCOL_SSLv2",
PY_SSL_VERSION_SSL2);
#endif
+#ifndef OPENSSL_NO_SSL3
PyModule_AddIntConstant(m, "PROTOCOL_SSLv3",
PY_SSL_VERSION_SSL3);
+#endif
PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
PY_SSL_VERSION_SSL23);
PyModule_AddIntConstant(m, "PROTOCOL_TLSv1",

View File

@ -1,24 +0,0 @@
# HG changeset patch
# User Vinay Sajip <vinay_sajip@yahoo.co.uk>
# Date 1334583503 -3600
# Node ID af46a001d5eca99a7ff44ed18256c235c5c3f1d0
# Parent 33bc53e0aa9ea42c6a6bb077d182e62c8c569aa1
Issue #14452: remove BOM insertion code.
Backport from https://hg.python.org/cpython/rev/af46a001d5ec.
Upstream-Status: Backport
Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py
--- a/Lib/logging/handlers.py
+++ b/Lib/logging/handlers.py
@@ -821,8 +821,6 @@ class SysLogHandler(logging.Handler):
# Message is a string. Convert to bytes as required by RFC 5424
if type(msg) is unicode:
msg = msg.encode('utf-8')
- if codecs:
- msg = codecs.BOM_UTF8 + msg
msg = prio + msg
try:
if self.unixsocket:

View File

@ -1,19 +0,0 @@
This patch removes the RPATH setting which contains a pointer to
the target relocated sysroot, which is incorrect.
Upstream-Status: Inappropriate [Embedded Specific]
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Index: Python-2.6.6/setup.py
===================================================================
--- Python-2.6.6.orig/setup.py 2011-09-28 14:22:57.000000000 -0700
+++ Python-2.6.6/setup.py 2011-09-28 16:11:25.147279633 -0700
@@ -1079,7 +1079,6 @@
include_dirs=["Modules/_sqlite",
sqlite_incdir],
library_dirs=sqlite_libdir,
- runtime_library_dirs=sqlite_libdir,
extra_link_args=sqlite_extra_link_args,
libraries=["sqlite3",]))
else:

View File

@ -6,26 +6,21 @@ Upstream-Status: Inappropriate [distribution]
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro> Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Index: Python-2.7.2/setup.py
=================================================================== diff --git a/setup.py b/setup.py
--- Python-2.7.2.orig/setup.py 2012-04-05 22:27:22.437199989 +0300 index b887808..ae51607 100644
+++ Python-2.7.2/setup.py 2012-04-05 22:26:38.000000000 +0300 --- a/setup.py
@@ -1141,12 +1141,12 @@ +++ b/setup.py
@@ -1237,6 +1237,8 @@ class PyBuildExt(build_ext):
# the more recent berkeleydb's db.h file first in the include path # the more recent berkeleydb's db.h file first in the include path
# when attempting to compile and it will fail. # when attempting to compile and it will fail.
f = "/usr/include/db.h" f = "/usr/include/db.h"
-
+ if len(inc_dirs) != 0: + if len(inc_dirs) != 0:
+ f = os.path.join(inc_dirs[0], "db.h") + f = os.path.join(inc_dirs[0], "db.h")
if sys.platform == 'darwin':
if host_platform == 'darwin':
if is_macosx_sdk_path(f): if is_macosx_sdk_path(f):
sysroot = macosx_sdk_root() @@ -1257,8 +1259,10 @@ class PyBuildExt(build_ext):
f = os.path.join(sysroot, f[1:])
-
if os.path.exists(f) and not db_incs:
data = open(f).read()
m = re.search(r"#s*define\s+HASHVERSION\s+2\s*", data)
@@ -1161,8 +1161,10 @@
libraries=libraries)) libraries=libraries))
else: else:
exts.append(Extension('bsddb185', ['bsddbmodule.c'])) exts.append(Extension('bsddb185', ['bsddbmodule.c']))

View File

@ -0,0 +1,20 @@
Python tries to use ncursesw from the host,
if it is not found causes an error on configure,
we should use ncursesw from sysroot instead
Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Index: Python-2.7.9/configure.ac
===================================================================
--- Python-2.7.9.orig/configure.ac
+++ Python-2.7.9/configure.ac
@@ -4311,7 +4311,7 @@ fi
# first curses configure check
ac_save_cppflags="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw"
+CPPFLAGS="$CPPFLAGS -I=/usr/include/ncursesw"
AC_CHECK_HEADERS(curses.h ncurses.h)

View File

@ -1,19 +1,16 @@
require python.inc require python.inc
DEPENDS = "python-native bzip2 db gdbm openssl readline sqlite3 zlib" DEPENDS = "python-native bzip2 db gdbm openssl readline sqlite3 zlib"
PR = "${INC_PR}.3" PR = "${INC_PR}"
DISTRO_SRC_URI ?= "file://sitecustomize.py" DISTRO_SRC_URI ?= "file://sitecustomize.py"
DISTRO_SRC_URI_linuxstdbase = "" DISTRO_SRC_URI_linuxstdbase = ""
SRC_URI += "\ SRC_URI += "\
file://01-use-proper-tools-for-cross-build.patch \ file://01-use-proper-tools-for-cross-build.patch \
file://03-fix-tkinter-detection.patch \ file://03-fix-tkinter-detection.patch \
file://05-enable-ctypes-cross-build.patch \
file://06-ctypes-libffi-fix-configure.patch \
file://06-avoid_usr_lib_termcap_path_in_linking.patch \ file://06-avoid_usr_lib_termcap_path_in_linking.patch \
${DISTRO_SRC_URI} \ ${DISTRO_SRC_URI} \
file://multilib.patch \ file://multilib.patch \
file://cgi_py.patch \ file://cgi_py.patch \
file://remove_sqlite_rpath.patch \
file://setup_py_skip_cross_import_check.patch \ file://setup_py_skip_cross_import_check.patch \
file://add-md5module-support.patch \ file://add-md5module-support.patch \
file://host_include_contamination.patch \ file://host_include_contamination.patch \
@ -23,24 +20,11 @@ SRC_URI += "\
file://search_db_h_in_inc_dirs_and_avoid_warning.patch \ file://search_db_h_in_inc_dirs_and_avoid_warning.patch \
file://avoid_warning_about_tkinter.patch \ file://avoid_warning_about_tkinter.patch \
file://avoid_warning_for_sunos_specific_module.patch \ file://avoid_warning_for_sunos_specific_module.patch \
file://python-2.7.3-berkeley-db-5.3.patch \
file://python-2.7.3-remove-bsdb-rpath.patch \ file://python-2.7.3-remove-bsdb-rpath.patch \
file://builddir.patch \
file://python-2.7.3-CVE-2012-2135.patch \
file://gcc-4.8-fix-configure-Wformat.patch \
file://fix-makefile-for-ptest.patch \ file://fix-makefile-for-ptest.patch \
file://run-ptest \ file://run-ptest \
file://CVE-2013-4073_py27.patch \
file://pypirc-secure.patch \
file://parallel-makeinst-create-bindir.patch \ file://parallel-makeinst-create-bindir.patch \
file://python-2.7.3-CVE-2013-1752-smtplib-fix.patch \ file://use_sysroot_ncurses_instead_of_host.patch \
file://python-fix-build-error-with-Readline-6.3.patch \
file://python-2.7.3-CVE-2014-1912.patch \
file://json-flaw-fix.patch \
file://posix_close.patch \
file://remove-BOM-insection-code.patch \
file://python-2.7.3-CVE-2014-7185.patch \
file://python2.7.3-nossl3.patch \
" "
S = "${WORKDIR}/Python-${PV}" S = "${WORKDIR}/Python-${PV}"
@ -53,7 +37,7 @@ TARGET_CC_ARCH_append_armv6 = " -D__SOFTFP__"
TARGET_CC_ARCH_append_armv7a = " -D__SOFTFP__" TARGET_CC_ARCH_append_armv7a = " -D__SOFTFP__"
# The following is a hack until we drop ac_cv_sizeof_off_t from site files # The following is a hack until we drop ac_cv_sizeof_off_t from site files
EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', 'ac_cv_sizeof_off_t=8', '', d)}" EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', 'ac_cv_sizeof_off_t=8', '', d)} ac_cv_file__dev_ptmx=no ac_cv_file__dev_ptc=no"
do_configure_prepend() { do_configure_prepend() {
rm -f ${S}/Makefile.orig rm -f ${S}/Makefile.orig

View File

@ -170,8 +170,8 @@ if __name__ == "__main__":
"warnings.* site.* stat.* " + "warnings.* site.* stat.* " +
"UserDict.* UserList.* UserString.* " + "UserDict.* UserList.* UserString.* " +
"lib-dynload/binascii.so lib-dynload/_struct.so lib-dynload/time.so " + "lib-dynload/binascii.so lib-dynload/_struct.so lib-dynload/time.so " +
"lib-dynload/xreadlines.so types.* platform.* ${bindir}/python* " + "lib-dynload/xreadlines.so types.* platform.* ${bindir}/python* " +
"_weakrefset.* sysconfig.* config/Makefile " + "_weakrefset.* sysconfig.* _sysconfigdata.* config/Makefile " +
"${includedir}/python${PYTHON_MAJMIN}/pyconfig*.h " + "${includedir}/python${PYTHON_MAJMIN}/pyconfig*.h " +
"${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py ") "${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py ")