Merge branch 'f25' into f24
Updated Python to 3.5.2 from F25
This commit is contained in:
commit
dd4e3cd13a
|
@ -1,6 +1,8 @@
|
||||||
--- Python-3.4.0b1/Lib/distutils/command/install.py.lib64 2013-11-24 21:36:54.000000000 +0100
|
diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
|
||||||
+++ Python-3.4.0b1/Lib/distutils/command/install.py 2013-11-27 11:10:43.821150774 +0100
|
index 67db007..b16fe0f 100644
|
||||||
@@ -45,14 +45,14 @@ else:
|
--- a/Lib/distutils/command/install.py
|
||||||
|
+++ b/Lib/distutils/command/install.py
|
||||||
|
@@ -30,14 +30,14 @@ WINDOWS_SCHEME = {
|
||||||
INSTALL_SCHEMES = {
|
INSTALL_SCHEMES = {
|
||||||
'unix_prefix': {
|
'unix_prefix': {
|
||||||
'purelib': '$base/lib/python$py_version_short/site-packages',
|
'purelib': '$base/lib/python$py_version_short/site-packages',
|
||||||
|
@ -17,9 +19,11 @@
|
||||||
'headers': '$base/include/python/$dist_name',
|
'headers': '$base/include/python/$dist_name',
|
||||||
'scripts': '$base/bin',
|
'scripts': '$base/bin',
|
||||||
'data' : '$base',
|
'data' : '$base',
|
||||||
--- Python-3.4.0b1/Lib/distutils/sysconfig.py.lib64 2013-11-24 21:36:54.000000000 +0100
|
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
|
||||||
+++ Python-3.4.0b1/Lib/distutils/sysconfig.py 2013-11-27 11:10:43.821150774 +0100
|
index e5c493d..a4846eb 100644
|
||||||
@@ -141,8 +141,12 @@
|
--- a/Lib/distutils/sysconfig.py
|
||||||
|
+++ b/Lib/distutils/sysconfig.py
|
||||||
|
@@ -132,8 +132,12 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
|
||||||
prefix = plat_specific and EXEC_PREFIX or PREFIX
|
prefix = plat_specific and EXEC_PREFIX or PREFIX
|
||||||
|
|
||||||
if os.name == "posix":
|
if os.name == "posix":
|
||||||
|
@ -33,9 +37,11 @@
|
||||||
if standard_lib:
|
if standard_lib:
|
||||||
return libpython
|
return libpython
|
||||||
else:
|
else:
|
||||||
--- Python-3.4.0b1/Lib/site.py.lib64 2013-11-24 21:36:54.000000000 +0100
|
diff --git a/Lib/site.py b/Lib/site.py
|
||||||
+++ Python-3.4.0b1/Lib/site.py 2013-11-27 11:10:43.822150773 +0100
|
index 3f78ef5..ad1033e 100644
|
||||||
@@ -304,11 +304,15 @@
|
--- a/Lib/site.py
|
||||||
|
+++ b/Lib/site.py
|
||||||
|
@@ -303,11 +303,15 @@ def getsitepackages(prefixes=None):
|
||||||
seen.add(prefix)
|
seen.add(prefix)
|
||||||
|
|
||||||
if os.sep == '/':
|
if os.sep == '/':
|
||||||
|
@ -51,9 +57,11 @@
|
||||||
sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
|
sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
|
||||||
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
|
||||||
--- Python-3.4.0b1/Lib/sysconfig.py.lib64 2013-11-24 21:36:54.000000000 +0100
|
diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
|
||||||
+++ Python-3.4.0b1/Lib/sysconfig.py 2013-11-27 11:10:43.822150773 +0100
|
index 61451b2..b021cce 100644
|
||||||
@@ -20,10 +20,10 @@
|
--- a/Lib/sysconfig.py
|
||||||
|
+++ b/Lib/sysconfig.py
|
||||||
|
@@ -20,10 +20,10 @@ __all__ = [
|
||||||
|
|
||||||
_INSTALL_SCHEMES = {
|
_INSTALL_SCHEMES = {
|
||||||
'posix_prefix': {
|
'posix_prefix': {
|
||||||
|
@ -67,7 +75,7 @@
|
||||||
'include':
|
'include':
|
||||||
'{installed_base}/include/python{py_version_short}{abiflags}',
|
'{installed_base}/include/python{py_version_short}{abiflags}',
|
||||||
'platinclude':
|
'platinclude':
|
||||||
@@ -61,10 +61,10 @@
|
@@ -61,10 +61,10 @@ _INSTALL_SCHEMES = {
|
||||||
'data': '{userbase}',
|
'data': '{userbase}',
|
||||||
},
|
},
|
||||||
'posix_user': {
|
'posix_user': {
|
||||||
|
@ -81,9 +89,11 @@
|
||||||
'include': '{userbase}/include/python{py_version_short}',
|
'include': '{userbase}/include/python{py_version_short}',
|
||||||
'scripts': '{userbase}/bin',
|
'scripts': '{userbase}/bin',
|
||||||
'data': '{userbase}',
|
'data': '{userbase}',
|
||||||
--- Python-3.4.0b1/Lib/test/test_site.py.lib64 2013-11-24 21:36:55.000000000 +0100
|
diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py
|
||||||
+++ Python-3.4.0b1/Lib/test/test_site.py 2013-11-27 11:10:43.822150773 +0100
|
index da20a3d..f38ce06 100644
|
||||||
@@ -244,8 +244,8 @@
|
--- a/Lib/test/test_site.py
|
||||||
|
+++ b/Lib/test/test_site.py
|
||||||
|
@@ -248,8 +248,8 @@ class HelperFunctionsTests(unittest.TestCase):
|
||||||
self.assertEqual(dirs[1], wanted)
|
self.assertEqual(dirs[1], wanted)
|
||||||
elif os.sep == '/':
|
elif os.sep == '/':
|
||||||
# OS X non-framwework builds, Linux, FreeBSD, etc
|
# OS X non-framwework builds, Linux, FreeBSD, etc
|
||||||
|
@ -94,9 +104,11 @@
|
||||||
'site-packages')
|
'site-packages')
|
||||||
self.assertEqual(dirs[0], wanted)
|
self.assertEqual(dirs[0], wanted)
|
||||||
else:
|
else:
|
||||||
--- Python-3.4.0b1/Makefile.pre.in.lib64 2013-11-27 11:10:43.814150786 +0100
|
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||||
+++ Python-3.4.0b1/Makefile.pre.in 2013-11-27 11:10:43.823150771 +0100
|
index 58d4258..e8364f0 100644
|
||||||
@@ -115,7 +115,7 @@
|
--- a/Makefile.pre.in
|
||||||
|
+++ b/Makefile.pre.in
|
||||||
|
@@ -125,7 +125,7 @@ LIBDIR= @libdir@
|
||||||
MANDIR= @mandir@
|
MANDIR= @mandir@
|
||||||
INCLUDEDIR= @includedir@
|
INCLUDEDIR= @includedir@
|
||||||
CONFINCLUDEDIR= $(exec_prefix)/include
|
CONFINCLUDEDIR= $(exec_prefix)/include
|
||||||
|
@ -105,20 +117,11 @@
|
||||||
ABIFLAGS= @ABIFLAGS@
|
ABIFLAGS= @ABIFLAGS@
|
||||||
|
|
||||||
# Detailed destination directories
|
# Detailed destination directories
|
||||||
--- Python-3.4.0b1/Modules/getpath.c.lib64 2013-11-24 21:36:56.000000000 +0100
|
diff --git a/Modules/getpath.c b/Modules/getpath.c
|
||||||
+++ Python-3.4.0b1/Modules/getpath.c 2013-11-27 11:17:33.619449704 +0100
|
index 18deb60..27ca814 100644
|
||||||
@@ -122,8 +122,8 @@
|
--- a/Modules/getpath.c
|
||||||
#endif
|
+++ b/Modules/getpath.c
|
||||||
|
@@ -494,7 +494,7 @@ calculate_path(void)
|
||||||
#ifndef PYTHONPATH
|
|
||||||
-#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
|
|
||||||
- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"
|
|
||||||
+#define PYTHONPATH PREFIX "/lib64/python" VERSION ":" \
|
|
||||||
+ EXEC_PREFIX "/lib64/python" VERSION "/lib-dynload"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef LANDMARK
|
|
||||||
@@ -498,7 +498,7 @@
|
|
||||||
_pythonpath = Py_DecodeLocale(PYTHONPATH, NULL);
|
_pythonpath = Py_DecodeLocale(PYTHONPATH, NULL);
|
||||||
_prefix = Py_DecodeLocale(PREFIX, NULL);
|
_prefix = Py_DecodeLocale(PREFIX, NULL);
|
||||||
_exec_prefix = Py_DecodeLocale(EXEC_PREFIX, NULL);
|
_exec_prefix = Py_DecodeLocale(EXEC_PREFIX, NULL);
|
||||||
|
@ -127,7 +130,7 @@
|
||||||
|
|
||||||
if (!_pythonpath || !_prefix || !_exec_prefix || !lib_python) {
|
if (!_pythonpath || !_prefix || !_exec_prefix || !lib_python) {
|
||||||
Py_FatalError(
|
Py_FatalError(
|
||||||
@@ -687,7 +687,7 @@
|
@@ -683,7 +683,7 @@ calculate_path(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
wcsncpy(zip_path, _prefix, MAXPATHLEN);
|
wcsncpy(zip_path, _prefix, MAXPATHLEN);
|
||||||
|
@ -136,7 +139,7 @@
|
||||||
bufsz = wcslen(zip_path); /* Replace "00" with version */
|
bufsz = wcslen(zip_path); /* Replace "00" with version */
|
||||||
zip_path[bufsz - 6] = VERSION[0];
|
zip_path[bufsz - 6] = VERSION[0];
|
||||||
zip_path[bufsz - 5] = VERSION[2];
|
zip_path[bufsz - 5] = VERSION[2];
|
||||||
@@ -699,7 +699,7 @@
|
@@ -695,7 +695,7 @@ calculate_path(void)
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"Could not find platform dependent libraries <exec_prefix>\n");
|
"Could not find platform dependent libraries <exec_prefix>\n");
|
||||||
wcsncpy(exec_prefix, _exec_prefix, MAXPATHLEN);
|
wcsncpy(exec_prefix, _exec_prefix, MAXPATHLEN);
|
||||||
|
@ -145,9 +148,11 @@
|
||||||
}
|
}
|
||||||
/* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */
|
/* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */
|
||||||
|
|
||||||
--- Python-3.4.0b1/setup.py.lib64 2013-11-24 21:36:56.000000000 +0100
|
diff --git a/setup.py b/setup.py
|
||||||
+++ Python-3.4.0b1/setup.py 2013-11-27 11:10:43.824150769 +0100
|
index be33c46..f2779cc 100644
|
||||||
@@ -441,7 +441,7 @@
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -492,7 +492,7 @@ class PyBuildExt(build_ext):
|
||||||
# directories (i.e. '.' and 'Include') must be first. See issue
|
# directories (i.e. '.' and 'Include') must be first. See issue
|
||||||
# 10520.
|
# 10520.
|
||||||
if not cross_compiling:
|
if not cross_compiling:
|
||||||
|
@ -156,7 +161,7 @@
|
||||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||||
# only change this for cross builds for 3.3, issues on Mageia
|
# only change this for cross builds for 3.3, issues on Mageia
|
||||||
if cross_compiling:
|
if cross_compiling:
|
||||||
@@ -718,11 +718,11 @@
|
@@ -780,11 +780,11 @@ class PyBuildExt(build_ext):
|
||||||
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 +
|
||||||
|
@ -170,7 +175,7 @@
|
||||||
extra_link_args=readline_extra_link_args,
|
extra_link_args=readline_extra_link_args,
|
||||||
libraries=readline_libs) )
|
libraries=readline_libs) )
|
||||||
else:
|
else:
|
||||||
@@ -759,8 +759,8 @@
|
@@ -821,8 +821,8 @@ class PyBuildExt(build_ext):
|
||||||
if krb5_h:
|
if krb5_h:
|
||||||
ssl_incs += krb5_h
|
ssl_incs += krb5_h
|
||||||
ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
|
ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
diff -up Python-2.7.2/Lib/test/test_io.py.disable-tests-in-test_io Python-2.7.2/Lib/test/test_io.py
|
|
||||||
--- Python-2.7.2/Lib/test/test_io.py.disable-tests-in-test_io 2011-09-01 14:18:45.963304089 -0400
|
|
||||||
+++ Python-2.7.2/Lib/test/test_io.py 2011-09-01 15:08:53.796098413 -0400
|
|
||||||
@@ -2669,6 +2669,7 @@ class SignalsTest(unittest.TestCase):
|
|
||||||
self.check_interrupted_read_retry(lambda x: x,
|
|
||||||
mode="r")
|
|
||||||
|
|
||||||
+ @unittest.skip('rhbz#732998')
|
|
||||||
@unittest.skipUnless(threading, 'Threading required for this test.')
|
|
||||||
def check_interrupted_write_retry(self, item, **fdopen_kwargs):
|
|
||||||
"""Check that a buffered write, when it gets interrupted (either
|
|
|
@ -9,7 +9,7 @@ diff -up Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest Python
|
||||||
import logging
|
import logging
|
||||||
import pprint
|
import pprint
|
||||||
import re
|
import re
|
||||||
@@ -101,5 +102,42 @@ def expectedFailure(func):
|
@@ -101,5 +102,21 @@ def expectedFailure(func):
|
||||||
raise self.test_case.failureException(msg)
|
raise self.test_case.failureException(msg)
|
||||||
|
|
||||||
+# Non-standard/downstream-only hooks for handling issues with specific test
|
+# Non-standard/downstream-only hooks for handling issues with specific test
|
||||||
|
@ -27,27 +27,6 @@ diff -up Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest Python
|
||||||
+ return skip(reason)
|
+ return skip(reason)
|
||||||
+ else:
|
+ else:
|
||||||
+ return _id
|
+ return _id
|
||||||
+
|
|
||||||
+def _expectedFailureInRpmBuild(func):
|
|
||||||
+ """
|
|
||||||
+ Non-standard/downstream-only decorator for marking a specific unit test
|
|
||||||
+ as expected to fail within the %check of an rpmbuild.
|
|
||||||
+
|
|
||||||
+ Specifically, this takes effect when WITHIN_PYTHON_RPM_BUILD is set within
|
|
||||||
+ the environment, and has no effect otherwise.
|
|
||||||
+ """
|
|
||||||
+ @functools.wraps(func)
|
|
||||||
+ def wrapper(*args, **kwargs):
|
|
||||||
+ if 'WITHIN_PYTHON_RPM_BUILD' in os.environ:
|
|
||||||
+ try:
|
|
||||||
+ func(*args, **kwargs)
|
|
||||||
+ except Exception:
|
|
||||||
+ raise _ExpectedFailure(sys.exc_info())
|
|
||||||
+ raise _UnexpectedSuccess
|
|
||||||
+ else:
|
|
||||||
+ # Call directly:
|
|
||||||
+ func(*args, **kwargs)
|
|
||||||
+ return wrapper
|
|
||||||
+
|
+
|
||||||
class _AssertRaisesBaseContext(_BaseTestCaseContext):
|
class _AssertRaisesBaseContext(_BaseTestCaseContext):
|
||||||
|
|
||||||
|
@ -61,7 +40,7 @@ diff -up Python-3.2.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest Py
|
||||||
from .case import (TestCase, FunctionTestCase, SkipTest, skip, skipIf,
|
from .case import (TestCase, FunctionTestCase, SkipTest, skip, skipIf,
|
||||||
- skipUnless, expectedFailure)
|
- skipUnless, expectedFailure)
|
||||||
+ skipUnless, expectedFailure,
|
+ skipUnless, expectedFailure,
|
||||||
+ _skipInRpmBuild, _expectedFailureInRpmBuild)
|
+ _skipInRpmBuild)
|
||||||
from .suite import BaseTestSuite, TestSuite
|
from .suite import BaseTestSuite, TestSuite
|
||||||
from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames,
|
from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames,
|
||||||
findTestCases)
|
findTestCases)
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
diff -up Python-2.7.2/Lib/test/test_float.py.skip-test_float-known-failure-on-arm Python-2.7.2/Lib/test/test_float.py
|
|
||||||
--- Python-2.7.2/Lib/test/test_float.py.skip-test_float-known-failure-on-arm 2011-09-08 19:34:09.000986128 -0400
|
|
||||||
+++ Python-2.7.2/Lib/test/test_float.py 2011-09-08 19:34:57.969982779 -0400
|
|
||||||
@@ -1072,6 +1072,7 @@ class HexFloatTestCase(unittest.TestCase
|
|
||||||
self.identical(got, expected)
|
|
||||||
|
|
||||||
|
|
||||||
+ @unittest.skip('Known failure on ARM: http://bugs.python.org/issue8265')
|
|
||||||
def test_from_hex(self):
|
|
||||||
MIN = self.MIN;
|
|
||||||
MAX = self.MAX;
|
|
|
@ -1,6 +1,8 @@
|
||||||
--- Python-3.4.0b1/Lib/hashlib.py.hashlib-fips 2013-11-24 21:36:54.000000000 +0100
|
diff --git a/Lib/hashlib.py b/Lib/hashlib.py
|
||||||
+++ Python-3.4.0b1/Lib/hashlib.py 2013-11-27 11:45:17.073617547 +0100
|
index 316cece..b7ad879 100644
|
||||||
@@ -23,6 +23,16 @@
|
--- a/Lib/hashlib.py
|
||||||
|
+++ b/Lib/hashlib.py
|
||||||
|
@@ -23,6 +23,16 @@ the zlib module.
|
||||||
Choose your hash function wisely. Some have known collision weaknesses.
|
Choose your hash function wisely. Some have known collision weaknesses.
|
||||||
sha384 and sha512 will be slow on 32 bit platforms.
|
sha384 and sha512 will be slow on 32 bit platforms.
|
||||||
|
|
||||||
|
@ -17,7 +19,7 @@
|
||||||
Hash objects have these methods:
|
Hash objects have these methods:
|
||||||
- update(arg): Update the hash object with the bytes in arg. Repeated calls
|
- update(arg): Update the hash object with the bytes in arg. Repeated calls
|
||||||
are equivalent to a single call with the concatenation of all
|
are equivalent to a single call with the concatenation of all
|
||||||
@@ -63,6 +73,19 @@
|
@@ -62,6 +72,18 @@ algorithms_available = set(__always_supported)
|
||||||
__all__ = __always_supported + ('new', 'algorithms_guaranteed',
|
__all__ = __always_supported + ('new', 'algorithms_guaranteed',
|
||||||
'algorithms_available', 'pbkdf2_hmac')
|
'algorithms_available', 'pbkdf2_hmac')
|
||||||
|
|
||||||
|
@ -33,11 +35,10 @@
|
||||||
+ kwargs.pop('usedforsecurity')
|
+ kwargs.pop('usedforsecurity')
|
||||||
+ return func(*args, **kwargs)
|
+ return func(*args, **kwargs)
|
||||||
+ return inner
|
+ return inner
|
||||||
+
|
|
||||||
|
|
||||||
__builtin_constructor_cache = {}
|
__builtin_constructor_cache = {}
|
||||||
|
|
||||||
@@ -108,34 +131,41 @@
|
@@ -100,31 +122,39 @@ def __get_openssl_constructor(name):
|
||||||
f = getattr(_hashlib, 'openssl_' + name)
|
f = getattr(_hashlib, 'openssl_' + name)
|
||||||
# Allow the C module to raise ValueError. The function will be
|
# Allow the C module to raise ValueError. The function will be
|
||||||
# defined but the hash not actually available thanks to OpenSSL.
|
# defined but the hash not actually available thanks to OpenSSL.
|
||||||
|
@ -88,11 +89,8 @@
|
||||||
+ # because we want to make sure that Fedora uses everything from OpenSSL
|
+ # because we want to make sure that Fedora uses everything from OpenSSL
|
||||||
return __get_builtin_constructor(name)(data)
|
return __get_builtin_constructor(name)(data)
|
||||||
|
|
||||||
-
|
|
||||||
try:
|
@@ -207,7 +237,10 @@ for __func_name in __always_supported:
|
||||||
import _hashlib
|
|
||||||
new = __hash_new
|
|
||||||
@@ -215,7 +245,10 @@
|
|
||||||
# try them all, some may not work due to the OpenSSL
|
# try them all, some may not work due to the OpenSSL
|
||||||
# version not supporting that algorithm.
|
# version not supporting that algorithm.
|
||||||
try:
|
try:
|
||||||
|
@ -104,14 +102,17 @@
|
||||||
except ValueError:
|
except ValueError:
|
||||||
import logging
|
import logging
|
||||||
logging.exception('code for hash %s was not found.', __func_name)
|
logging.exception('code for hash %s was not found.', __func_name)
|
||||||
@@ -223,3 +256,4 @@
|
@@ -215,3 +248,4 @@ for __func_name in __always_supported:
|
||||||
# Cleanup locals()
|
# Cleanup locals()
|
||||||
del __always_supported, __func_name, __get_hash
|
del __always_supported, __func_name, __get_hash
|
||||||
del __py_new, __hash_new, __get_openssl_constructor
|
del __py_new, __hash_new, __get_openssl_constructor
|
||||||
+del __ignore_usedforsecurity
|
+del __ignore_usedforsecurity
|
||||||
--- Python-3.4.0b1/Lib/test/test_hashlib.py 2013-11-27 11:55:42.769601363 +0100
|
\ No newline at end of file
|
||||||
+++ Python-3.4.0b1/Lib/test/test_hashlib.py 2013-11-28 09:33:03.929008508 +0100
|
diff --git a/Lib/test/test_hashlib.py b/Lib/test/test_hashlib.py
|
||||||
@@ -24,7 +24,22 @@
|
index c9b113e..60e2392 100644
|
||||||
|
--- a/Lib/test/test_hashlib.py
|
||||||
|
+++ b/Lib/test/test_hashlib.py
|
||||||
|
@@ -24,7 +24,22 @@ from test.support import _4G, bigmemtest, import_fresh_module
|
||||||
COMPILED_WITH_PYDEBUG = hasattr(sys, 'gettotalrefcount')
|
COMPILED_WITH_PYDEBUG = hasattr(sys, 'gettotalrefcount')
|
||||||
|
|
||||||
c_hashlib = import_fresh_module('hashlib', fresh=['_hashlib'])
|
c_hashlib = import_fresh_module('hashlib', fresh=['_hashlib'])
|
||||||
|
@ -135,7 +136,7 @@
|
||||||
|
|
||||||
def hexstr(s):
|
def hexstr(s):
|
||||||
assert isinstance(s, bytes), repr(s)
|
assert isinstance(s, bytes), repr(s)
|
||||||
@@ -34,6 +49,16 @@
|
@@ -34,6 +49,16 @@ def hexstr(s):
|
||||||
r += h[(i >> 4) & 0xF] + h[i & 0xF]
|
r += h[(i >> 4) & 0xF] + h[i & 0xF]
|
||||||
return r
|
return r
|
||||||
|
|
||||||
|
@ -152,7 +153,7 @@
|
||||||
|
|
||||||
class HashLibTestCase(unittest.TestCase):
|
class HashLibTestCase(unittest.TestCase):
|
||||||
supported_hash_names = ( 'md5', 'MD5', 'sha1', 'SHA1',
|
supported_hash_names = ( 'md5', 'MD5', 'sha1', 'SHA1',
|
||||||
@@ -66,11 +91,11 @@
|
@@ -63,11 +88,11 @@ class HashLibTestCase(unittest.TestCase):
|
||||||
# For each algorithm, test the direct constructor and the use
|
# For each algorithm, test the direct constructor and the use
|
||||||
# of hashlib.new given the algorithm name.
|
# of hashlib.new given the algorithm name.
|
||||||
for algorithm, constructors in self.constructors_to_test.items():
|
for algorithm, constructors in self.constructors_to_test.items():
|
||||||
|
@ -167,7 +168,7 @@
|
||||||
constructors.add(_test_algorithm_via_hashlib_new)
|
constructors.add(_test_algorithm_via_hashlib_new)
|
||||||
|
|
||||||
_hashlib = self._conditional_import_module('_hashlib')
|
_hashlib = self._conditional_import_module('_hashlib')
|
||||||
@@ -82,26 +107,12 @@
|
@@ -79,27 +104,12 @@ class HashLibTestCase(unittest.TestCase):
|
||||||
for algorithm, constructors in self.constructors_to_test.items():
|
for algorithm, constructors in self.constructors_to_test.items():
|
||||||
constructor = getattr(_hashlib, 'openssl_'+algorithm, None)
|
constructor = getattr(_hashlib, 'openssl_'+algorithm, None)
|
||||||
if constructor:
|
if constructor:
|
||||||
|
@ -192,10 +193,11 @@
|
||||||
- if _sha512:
|
- if _sha512:
|
||||||
- add_builtin_constructor('sha384')
|
- add_builtin_constructor('sha384')
|
||||||
- add_builtin_constructor('sha512')
|
- add_builtin_constructor('sha512')
|
||||||
|
-
|
||||||
super(HashLibTestCase, self).__init__(*args, **kwargs)
|
super(HashLibTestCase, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
@@ -157,9 +169,6 @@
|
@property
|
||||||
|
@@ -148,9 +158,6 @@ class HashLibTestCase(unittest.TestCase):
|
||||||
else:
|
else:
|
||||||
del sys.modules['_md5']
|
del sys.modules['_md5']
|
||||||
self.assertRaises(TypeError, get_builtin_constructor, 3)
|
self.assertRaises(TypeError, get_builtin_constructor, 3)
|
||||||
|
@ -205,7 +207,7 @@
|
||||||
|
|
||||||
def test_hexdigest(self):
|
def test_hexdigest(self):
|
||||||
for cons in self.hash_constructors:
|
for cons in self.hash_constructors:
|
||||||
@@ -558,6 +567,65 @@
|
@@ -433,6 +440,64 @@ class HashLibTestCase(unittest.TestCase):
|
||||||
|
|
||||||
self.assertEqual(expected_hash, hasher.hexdigest())
|
self.assertEqual(expected_hash, hasher.hexdigest())
|
||||||
|
|
||||||
|
@ -267,21 +269,23 @@
|
||||||
+
|
+
|
||||||
+ m = _hashlib.new('md5', b'abc\n', usedforsecurity=False)
|
+ m = _hashlib.new('md5', b'abc\n', usedforsecurity=False)
|
||||||
+ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
|
+ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
|
||||||
+
|
|
||||||
|
|
||||||
class KDFTests(unittest.TestCase):
|
class KDFTests(unittest.TestCase):
|
||||||
|
|
||||||
@@ -639,6 +707,7 @@
|
@@ -516,7 +581,7 @@ class KDFTests(unittest.TestCase):
|
||||||
with self.assertRaisesRegex(ValueError, 'unsupported hash type'):
|
out = pbkdf2(hash_name='sha1', password=b'password', salt=b'salt',
|
||||||
pbkdf2('unknown', b'pass', b'salt', 1)
|
iterations=1, dklen=None)
|
||||||
|
self.assertEqual(out, self.pbkdf2_results['sha1'][0][0])
|
||||||
|
-
|
||||||
+ @unittest.skip('skipped on Fedora, as we always use OpenSSL pbkdf2_hmac')
|
+ @unittest.skip('skipped on Fedora, as we always use OpenSSL pbkdf2_hmac')
|
||||||
def test_pbkdf2_hmac_py(self):
|
def test_pbkdf2_hmac_py(self):
|
||||||
self._test_pbkdf2_hmac(py_hashlib.pbkdf2_hmac)
|
self._test_pbkdf2_hmac(py_hashlib.pbkdf2_hmac)
|
||||||
|
|
||||||
--- Python-3.4.0b1/Modules/_hashopenssl.c.hashlib-fips 2013-11-24 21:36:56.000000000 +0100
|
diff --git a/Modules/_hashopenssl.c b/Modules/_hashopenssl.c
|
||||||
+++ Python-3.4.0b1/Modules/_hashopenssl.c 2013-11-27 12:01:57.443537463 +0100
|
index 44765ac..b8cf490 100644
|
||||||
@@ -19,6 +19,8 @@
|
--- a/Modules/_hashopenssl.c
|
||||||
|
+++ b/Modules/_hashopenssl.c
|
||||||
|
@@ -20,6 +20,8 @@
|
||||||
|
|
||||||
|
|
||||||
/* EVP is the preferred interface to hashing in OpenSSL */
|
/* EVP is the preferred interface to hashing in OpenSSL */
|
||||||
|
@ -290,7 +294,7 @@
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include <openssl/hmac.h>
|
#include <openssl/hmac.h>
|
||||||
/* We use the object interface to discover what hashes OpenSSL supports. */
|
/* We use the object interface to discover what hashes OpenSSL supports. */
|
||||||
@@ -48,11 +50,19 @@
|
@@ -45,11 +47,19 @@ typedef struct {
|
||||||
|
|
||||||
static PyTypeObject EVPtype;
|
static PyTypeObject EVPtype;
|
||||||
|
|
||||||
|
@ -314,7 +318,7 @@
|
||||||
|
|
||||||
DEFINE_CONSTS_FOR_NEW(md5)
|
DEFINE_CONSTS_FOR_NEW(md5)
|
||||||
DEFINE_CONSTS_FOR_NEW(sha1)
|
DEFINE_CONSTS_FOR_NEW(sha1)
|
||||||
@@ -97,6 +107,48 @@
|
@@ -92,6 +102,48 @@ EVP_hash(EVPobject *self, const void *vp, Py_ssize_t len)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -363,7 +367,7 @@
|
||||||
/* Internal methods for a hash object */
|
/* Internal methods for a hash object */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -281,15 +333,16 @@
|
@@ -259,15 +311,16 @@ EVP_repr(EVPobject *self)
|
||||||
static int
|
static int
|
||||||
EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
|
EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
|
||||||
{
|
{
|
||||||
|
@ -383,7 +387,7 @@
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -310,7 +363,12 @@
|
@@ -288,7 +341,12 @@ EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
|
||||||
PyBuffer_Release(&view);
|
PyBuffer_Release(&view);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -397,7 +401,7 @@
|
||||||
|
|
||||||
self->name = name_obj;
|
self->name = name_obj;
|
||||||
Py_INCREF(self->name);
|
Py_INCREF(self->name);
|
||||||
@@ -394,7 +452,8 @@
|
@@ -372,7 +430,8 @@ static PyTypeObject EVPtype = {
|
||||||
static PyObject *
|
static PyObject *
|
||||||
EVPnew(PyObject *name_obj,
|
EVPnew(PyObject *name_obj,
|
||||||
const EVP_MD *digest, const EVP_MD_CTX *initial_ctx,
|
const EVP_MD *digest, const EVP_MD_CTX *initial_ctx,
|
||||||
|
@ -407,7 +411,7 @@
|
||||||
{
|
{
|
||||||
EVPobject *self;
|
EVPobject *self;
|
||||||
|
|
||||||
@@ -409,7 +468,12 @@
|
@@ -387,7 +446,12 @@ EVPnew(PyObject *name_obj,
|
||||||
if (initial_ctx) {
|
if (initial_ctx) {
|
||||||
EVP_MD_CTX_copy(&self->ctx, initial_ctx);
|
EVP_MD_CTX_copy(&self->ctx, initial_ctx);
|
||||||
} else {
|
} else {
|
||||||
|
@ -421,7 +425,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cp && len) {
|
if (cp && len) {
|
||||||
@@ -433,21 +497,29 @@
|
@@ -411,21 +475,29 @@ PyDoc_STRVAR(EVP_new__doc__,
|
||||||
An optional string argument may be provided and will be\n\
|
An optional string argument may be provided and will be\n\
|
||||||
automatically hashed.\n\
|
automatically hashed.\n\
|
||||||
\n\
|
\n\
|
||||||
|
@ -455,7 +459,7 @@
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -461,7 +533,8 @@
|
@@ -439,7 +511,8 @@ EVP_new(PyObject *self, PyObject *args, PyObject *kwdict)
|
||||||
|
|
||||||
digest = EVP_get_digestbyname(name);
|
digest = EVP_get_digestbyname(name);
|
||||||
|
|
||||||
|
@ -465,7 +469,7 @@
|
||||||
|
|
||||||
if (data_obj)
|
if (data_obj)
|
||||||
PyBuffer_Release(&view);
|
PyBuffer_Release(&view);
|
||||||
@@ -742,57 +815,115 @@
|
@@ -722,57 +795,114 @@ generate_hash_name_list(void)
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -508,8 +512,8 @@
|
||||||
+ return implement_specific_EVP_new(self, args, kwdict, \
|
+ return implement_specific_EVP_new(self, args, kwdict, \
|
||||||
+ "|Oi:" #NAME, \
|
+ "|Oi:" #NAME, \
|
||||||
+ &cached_info_ ## NAME ); \
|
+ &cached_info_ ## NAME ); \
|
||||||
+ }
|
}
|
||||||
+
|
|
||||||
+static PyObject *
|
+static PyObject *
|
||||||
+implement_specific_EVP_new(PyObject *self, PyObject *args, PyObject *kwdict,
|
+implement_specific_EVP_new(PyObject *self, PyObject *args, PyObject *kwdict,
|
||||||
+ const char *format,
|
+ const char *format,
|
||||||
|
@ -554,8 +558,8 @@
|
||||||
+ } else {
|
+ } else {
|
||||||
+ PyErr_SetString(PyExc_ValueError, "Error initializing hash");
|
+ PyErr_SetString(PyExc_ValueError, "Error initializing hash");
|
||||||
+ }
|
+ }
|
||||||
}
|
+ }
|
||||||
|
+
|
||||||
+ if (data_obj)
|
+ if (data_obj)
|
||||||
+ PyBuffer_Release(&view);
|
+ PyBuffer_Release(&view);
|
||||||
+
|
+
|
||||||
|
@ -614,11 +618,10 @@
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
+
|
|
||||||
|
|
||||||
GEN_CONSTRUCTOR(md5)
|
GEN_CONSTRUCTOR(md5)
|
||||||
GEN_CONSTRUCTOR(sha1)
|
GEN_CONSTRUCTOR(sha1)
|
||||||
@@ -843,13 +974,10 @@
|
@@ -819,13 +949,10 @@ PyInit__hashlib(void)
|
||||||
{
|
{
|
||||||
PyObject *m, *openssl_md_meth_names;
|
PyObject *m, *openssl_md_meth_names;
|
||||||
|
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
diff -up Python-3.2.2/Lib/test/test_cmath.py.ppc Python-3.2.2/Lib/test/test_cmath.py
|
|
||||||
--- Python-3.2.2/Lib/test/test_cmath.py.ppc 2011-12-07 23:43:55.000000000 +0100
|
|
||||||
+++ Python-3.2.2/Lib/test/test_cmath.py 2011-12-07 23:49:44.000000000 +0100
|
|
||||||
@@ -95,6 +95,7 @@ class CMathTests(unittest.TestCase):
|
|
||||||
self.assertFloatIdentical(x.real, y.real)
|
|
||||||
self.assertFloatIdentical(x.imag, y.imag)
|
|
||||||
|
|
||||||
+ @unittest.skip('Known failure on PPC: glibc bug https://bugzilla.redhat.com/show_bug.cgi?id=750811')
|
|
||||||
def rAssertAlmostEqual(self, a, b, rel_err = 2e-15, abs_err = 5e-323,
|
|
||||||
msg=None):
|
|
||||||
"""Fail if the two floating-point numbers are not almost equal.
|
|
|
@ -1,52 +0,0 @@
|
||||||
diff -up Python-3.4.2/Lib/test/test_exceptions.py.ppc Python-3.4.2/Lib/test/test_exceptions.py
|
|
||||||
--- Python-3.4.2/Lib/test/test_exceptions.py.ppc 2014-10-08 04:18:13.000000000 -0400
|
|
||||||
+++ Python-3.4.2/Lib/test/test_exceptions.py 2015-01-12 05:56:15.922833055 -0500
|
|
||||||
@@ -429,6 +429,7 @@ class ExceptionTests(unittest.TestCase):
|
|
||||||
self.assertIsNone(e.__context__)
|
|
||||||
self.assertIsNone(e.__cause__)
|
|
||||||
|
|
||||||
+ @unittest.skip('rhbz#846849')
|
|
||||||
def testChainingDescriptors(self):
|
|
||||||
try:
|
|
||||||
raise Exception()
|
|
||||||
diff -up Python-3.4.2/Lib/test/test_io.py.ppc Python-3.4.2/Lib/test/test_io.py
|
|
||||||
--- Python-3.4.2/Lib/test/test_io.py.ppc 2015-01-12 05:56:15.922833055 -0500
|
|
||||||
+++ Python-3.4.2/Lib/test/test_io.py 2015-01-12 05:58:23.482833055 -0500
|
|
||||||
@@ -3296,12 +3296,15 @@ class SignalsTest(unittest.TestCase):
|
|
||||||
if e.errno != errno.EBADF:
|
|
||||||
raise
|
|
||||||
|
|
||||||
+ @unittest.skip('rhbz#846849')
|
|
||||||
def test_interrupted_write_unbuffered(self):
|
|
||||||
self.check_interrupted_write(b"xy", b"xy", mode="wb", buffering=0)
|
|
||||||
|
|
||||||
+ @unittest.skip('rhbz#846849')
|
|
||||||
def test_interrupted_write_buffered(self):
|
|
||||||
self.check_interrupted_write(b"xy", b"xy", mode="wb")
|
|
||||||
|
|
||||||
+ @unittest.skip('rhbz#846849')
|
|
||||||
# Issue #22331: The test hangs on FreeBSD 7.2
|
|
||||||
@support.requires_freebsd_version(8)
|
|
||||||
def test_interrupted_write_text(self):
|
|
||||||
diff -up Python-3.4.2/Lib/test/test_raise.py.ppc Python-3.4.2/Lib/test/test_raise.py
|
|
||||||
--- Python-3.4.2/Lib/test/test_raise.py.ppc 2014-10-08 04:18:14.000000000 -0400
|
|
||||||
+++ Python-3.4.2/Lib/test/test_raise.py 2015-01-12 05:56:15.922833055 -0500
|
|
||||||
@@ -151,6 +151,7 @@ class TestRaise(unittest.TestCase):
|
|
||||||
|
|
||||||
class TestCause(unittest.TestCase):
|
|
||||||
|
|
||||||
+ @unittest.skip('rhbz#846849')
|
|
||||||
def testCauseSyntax(self):
|
|
||||||
try:
|
|
||||||
try:
|
|
||||||
diff -up Python-3.4.2/Lib/test/test_traceback.py.ppc Python-3.4.2/Lib/test/test_traceback.py
|
|
||||||
--- Python-3.4.2/Lib/test/test_traceback.py.ppc 2014-10-08 04:18:14.000000000 -0400
|
|
||||||
+++ Python-3.4.2/Lib/test/test_traceback.py 2015-01-12 05:56:15.922833055 -0500
|
|
||||||
@@ -314,6 +314,7 @@ class BaseExceptionReportingTests:
|
|
||||||
self.check_zero_div(blocks[0])
|
|
||||||
self.assertIn('inner_raise() # Marker', blocks[2])
|
|
||||||
|
|
||||||
+ @unittest.skip('rhbz#846849')
|
|
||||||
def test_context_suppression(self):
|
|
||||||
try:
|
|
||||||
try:
|
|
|
@ -96,12 +96,13 @@ Index: Lib/test/test_gc.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Lib/test/test_gc.py (revision 87911)
|
--- Lib/test/test_gc.py (revision 87911)
|
||||||
+++ Lib/test/test_gc.py (working copy)
|
+++ Lib/test/test_gc.py (working copy)
|
||||||
@@ -1,6 +1,6 @@
|
@@ -1,7 +1,7 @@
|
||||||
import unittest
|
import unittest
|
||||||
from test.support import (verbose, refcount_test, run_unittest,
|
from test.support import (verbose, refcount_test, run_unittest,
|
||||||
- strip_python_stderr, cpython_only)
|
strip_python_stderr, cpython_only, start_threads,
|
||||||
+ strip_python_stderr, cpython_only, import_module)
|
- temp_dir)
|
||||||
from test.script_helper import assert_python_ok, make_script, temp_dir
|
+ temp_dir, import_module)
|
||||||
|
from test.support.script_helper import assert_python_ok, make_script
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
@@ -512,6 +512,48 @@
|
@@ -512,6 +512,48 @@
|
||||||
|
@ -316,7 +317,7 @@ diff -up Lib/test/test_gc.py.old Lib/test/test_gc.py
|
||||||
--- Lib/test/test_gc.py.old 2014-12-10 12:50:58.252121318 +0100
|
--- Lib/test/test_gc.py.old 2014-12-10 12:50:58.252121318 +0100
|
||||||
+++ Lib/test/test_gc.py 2014-12-10 12:51:08.594266653 +0100
|
+++ Lib/test/test_gc.py 2014-12-10 12:51:08.594266653 +0100
|
||||||
@@ -4,6 +4,7 @@ from test.support import (verbose, refco
|
@@ -4,6 +4,7 @@ from test.support import (verbose, refco
|
||||||
from test.script_helper import assert_python_ok, make_script, temp_dir
|
from test.support.script_helper import assert_python_ok, make_script
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
+import sysconfig
|
+import sysconfig
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
--- Python-3.4.0b1/Lib/test/support/__init__.py.orig 2013-11-27 12:14:26.507216624 +0100
|
|
||||||
+++ Python-3.4.0b1/Lib/test/support/__init__.py 2013-11-27 12:17:01.490805587 +0100
|
|
||||||
@@ -593,7 +593,8 @@
|
|
||||||
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1:
|
|
||||||
raise TestFailed("tests should never set the SO_REUSEADDR " \
|
|
||||||
"socket option on TCP/IP sockets!")
|
|
||||||
- if hasattr(socket, 'SO_REUSEPORT'):
|
|
||||||
+ if hasattr(socket, 'SO_REUSEPORT') \
|
|
||||||
+ and 'WITHIN_PYTHON_RPM_BUILD' not in os.environ: # rhbz#913732
|
|
||||||
try:
|
|
||||||
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1:
|
|
||||||
raise TestFailed("tests should never set the SO_REUSEPORT " \
|
|
|
@ -1,48 +0,0 @@
|
||||||
--- a/Tools/gdb/libpython.py 2013-04-06 03:41:58.000000000 -0400
|
|
||||||
+++ b/Tools/gdb/libpython.py 2013-04-24 03:51:04.720540343 -0400
|
|
||||||
@@ -274,6 +274,9 @@
|
|
||||||
self.tp_name = tp_name
|
|
||||||
self.address = address
|
|
||||||
|
|
||||||
+ def __len__(self):
|
|
||||||
+ return len(repr(self))
|
|
||||||
+
|
|
||||||
def __repr__(self):
|
|
||||||
# For the NULL pointer, we have no way of knowing a type, so
|
|
||||||
# special-case it as per
|
|
||||||
@@ -881,6 +884,8 @@
|
|
||||||
filename = self.filename()
|
|
||||||
try:
|
|
||||||
f = open(os_fsencode(filename), 'r')
|
|
||||||
+ except TypeError: # filename is FakeRepr
|
|
||||||
+ return None
|
|
||||||
except IOError:
|
|
||||||
return None
|
|
||||||
with f:
|
|
||||||
@@ -1523,9 +1528,12 @@
|
|
||||||
|
|
||||||
def print_summary(self):
|
|
||||||
if self.is_evalframeex():
|
|
||||||
- pyop = self.get_pyop()
|
|
||||||
- if pyop:
|
|
||||||
+ try:
|
|
||||||
+ pyop = self.get_pyop()
|
|
||||||
line = pyop.get_truncated_repr(MAX_OUTPUT_LEN)
|
|
||||||
+ except:
|
|
||||||
+ pyop = None
|
|
||||||
+ if pyop:
|
|
||||||
write_unicode(sys.stdout, '#%i %s\n' % (self.get_index(), line))
|
|
||||||
if not pyop.is_optimized_out():
|
|
||||||
line = pyop.current_line()
|
|
||||||
@@ -1542,7 +1550,10 @@
|
|
||||||
|
|
||||||
def print_traceback(self):
|
|
||||||
if self.is_evalframeex():
|
|
||||||
- pyop = self.get_pyop()
|
|
||||||
+ try:
|
|
||||||
+ pyop = self.get_pyop()
|
|
||||||
+ except:
|
|
||||||
+ pyop = None
|
|
||||||
if pyop:
|
|
||||||
pyop.print_traceback()
|
|
||||||
if not pyop.is_optimized_out():
|
|
|
@ -1,12 +0,0 @@
|
||||||
diff -up Python-2.5.1/Lib/gettext.py.plural Python-2.5.1/Lib/gettext.py
|
|
||||||
--- Python-2.5.1/Lib/gettext.py.plural 2007-09-10 11:38:57.000000000 -0400
|
|
||||||
+++ Python-2.5.1/Lib/gettext.py 2007-09-10 11:39:00.000000000 -0400
|
|
||||||
@@ -299,6 +299,8 @@ class GNUTranslations(NullTranslations):
|
|
||||||
item = b_item.decode().strip()
|
|
||||||
if not item:
|
|
||||||
continue
|
|
||||||
+ if item.startswith("#"):
|
|
||||||
+ continue
|
|
||||||
if ':' in item:
|
|
||||||
k, v = item.split(':', 1)
|
|
||||||
k = k.strip().lower()
|
|
|
@ -1,10 +0,0 @@
|
||||||
--- Modules/_gdbmmodule.c.orig 2013-07-08 14:54:27.803790151 +0200
|
|
||||||
+++ Modules/_gdbmmodule.c 2013-07-08 14:55:25.006672443 +0200
|
|
||||||
@@ -106,6 +106,7 @@
|
|
||||||
if(okey.dsize) free(okey.dptr);
|
|
||||||
okey=key;
|
|
||||||
}
|
|
||||||
+ if(okey.dsize) free(okey.dptr);
|
|
||||||
dp->di_size = size;
|
|
||||||
}
|
|
||||||
return dp->di_size;
|
|
|
@ -1,11 +0,0 @@
|
||||||
diff -up Python-3.4.3/Lib/test/test_threading.py.mstuchli Python-3.4.3/Lib/test/test_threading.py
|
|
||||||
--- Python-3.4.3/Lib/test/test_threading.py.mstuchli 2015-03-10 10:00:42.917355215 +0100
|
|
||||||
+++ Python-3.4.3/Lib/test/test_threading.py 2015-03-10 10:00:47.735373842 +0100
|
|
||||||
@@ -988,6 +988,7 @@ class ThreadingExceptionTests(BaseTestCa
|
|
||||||
self.assertIn("ZeroDivisionError", err)
|
|
||||||
self.assertNotIn("Unhandled exception", err)
|
|
||||||
|
|
||||||
+ @unittest.skip('Fails in Koji due to mishandled signals')
|
|
||||||
def test_print_exception_stderr_is_none_1(self):
|
|
||||||
script = r"""if True:
|
|
||||||
import sys
|
|
|
@ -1,56 +0,0 @@
|
||||||
--- Python-3.5.1/Makefile.pre.in.kh 2015-12-17 05:51:08.466546157 -0500
|
|
||||||
+++ Python-3.5.1/Makefile.pre.in 2015-12-17 05:52:26.207761635 -0500
|
|
||||||
@@ -587,11 +587,15 @@ pybuilddir.txt: $(BUILDPYTHON)
|
|
||||||
exit 1 ; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
+# This is shared by the math and cmath modules
|
|
||||||
+Modules/_math.o: Modules/_math.c Modules/_math.h
|
|
||||||
+ $(CC) -c $(CCSHARED) $(PY_CORE_CFLAGS) -o $@ $<
|
|
||||||
+
|
|
||||||
# Build the shared modules
|
|
||||||
# Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for
|
|
||||||
# -s, --silent or --quiet is always the first char.
|
|
||||||
# Under BSD make, MAKEFLAGS might be " -s -v x=y".
|
|
||||||
-sharedmods: $(BUILDPYTHON) pybuilddir.txt
|
|
||||||
+sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
|
|
||||||
@case "$$MAKEFLAGS" in \
|
|
||||||
*\ -s*|s*) quiet="-q";; \
|
|
||||||
*) quiet="";; \
|
|
||||||
--- Python-3.5.1/Misc/NEWS.kh 2015-12-17 05:53:40.898929946 -0500
|
|
||||||
+++ Python-3.5.1/Misc/NEWS 2015-12-17 05:54:28.599676136 -0500
|
|
||||||
@@ -464,6 +464,10 @@ Build
|
|
||||||
- Issue #24986: It is now possible to build Python on Windows without errors
|
|
||||||
when external libraries are not available.
|
|
||||||
|
|
||||||
+- Issue #24421: Compile Modules/_math.c once, before building extensions.
|
|
||||||
+ Previously it could fail to compile properly if the math and cmath builds
|
|
||||||
+ were concurrent.
|
|
||||||
+
|
|
||||||
Windows
|
|
||||||
-------
|
|
||||||
|
|
||||||
--- Python-3.5.1/setup.py.kh 2015-12-17 06:38:30.950955607 -0500
|
|
||||||
+++ Python-3.5.1/setup.py 2015-12-17 06:42:32.074722493 -0500
|
|
||||||
@@ -582,13 +582,17 @@ class PyBuildExt(build_ext):
|
|
||||||
|
|
||||||
# array objects
|
|
||||||
exts.append( Extension('array', ['arraymodule.c']) )
|
|
||||||
+
|
|
||||||
+ shared_math = 'Modules/_math.o'
|
|
||||||
# complex math library functions
|
|
||||||
- exts.append( Extension('cmath', ['cmathmodule.c', '_math.c'],
|
|
||||||
- depends=['_math.h'],
|
|
||||||
+ exts.append( Extension('cmath', ['cmathmodule.c'],
|
|
||||||
+ extra_objects=[shared_math],
|
|
||||||
+ depends=['_math.h', shared_math],
|
|
||||||
libraries=math_libs) )
|
|
||||||
# math library functions, e.g. sin()
|
|
||||||
- exts.append( Extension('math', ['mathmodule.c', '_math.c'],
|
|
||||||
- depends=['_math.h'],
|
|
||||||
+ exts.append( Extension('math', ['mathmodule.c'],
|
|
||||||
+ extra_objects=[shared_math],
|
|
||||||
+ depends=['_math.h', shared_math],
|
|
||||||
libraries=math_libs) )
|
|
||||||
|
|
||||||
# time libraries: librt may be needed for clock_gettime()
|
|
|
@ -1,11 +0,0 @@
|
||||||
diff -up Python-3.5.1/Lib/test/test_venv.py.1292467 Python-3.5.1/Lib/test/test_venv.py
|
|
||||||
--- Python-3.5.1/Lib/test/test_venv.py.1292467 2015-12-21 13:37:44.740190595 +0100
|
|
||||||
+++ Python-3.5.1/Lib/test/test_venv.py 2015-12-21 13:40:25.707911828 +0100
|
|
||||||
@@ -319,6 +319,7 @@ class EnsurePipTest(BaseTest):
|
|
||||||
|
|
||||||
# Requesting pip fails without SSL (http://bugs.python.org/issue19744)
|
|
||||||
@unittest.skipIf(ssl is None, ensurepip._MISSING_SSL_MESSAGE)
|
|
||||||
+ @unittest.skip('rhbz#1292467')
|
|
||||||
def test_with_pip(self):
|
|
||||||
rmtree(self.env_dir)
|
|
||||||
with EnvironmentVarGuard() as envvars:
|
|
|
@ -1,35 +0,0 @@
|
||||||
From 761db274ca898f8a92348ed5979d3d3c1b0d634a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tomas Orsava <torsava@redhat.com>
|
|
||||||
Date: Fri, 17 Jun 2016 16:08:11 +0200
|
|
||||||
Subject: [PATCH] Raise an error when STARTTLS fails
|
|
||||||
|
|
||||||
CVE-2016-0772 python: smtplib StartTLS stripping attack
|
|
||||||
rhbz#1303647: https://bugzilla.redhat.com/show_bug.cgi?id=1303647
|
|
||||||
rhbz#1346345: https://bugzilla.redhat.com/show_bug.cgi?id=1346345
|
|
||||||
|
|
||||||
Based on an upstream change by Benjamin Peterson <benjamin@python.org>
|
|
||||||
- in changeset 101887:d590114c2394 3.4
|
|
||||||
- https://hg.python.org/cpython/rev/d590114c2394
|
|
||||||
---
|
|
||||||
Lib/smtplib.py | 5 +++++
|
|
||||||
1 file changed, 5 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/Lib/smtplib.py b/Lib/smtplib.py
|
|
||||||
index 4756973..dfbf5f9 100755
|
|
||||||
--- a/Lib/smtplib.py
|
|
||||||
+++ b/Lib/smtplib.py
|
|
||||||
@@ -773,6 +773,11 @@ class SMTP:
|
|
||||||
self.ehlo_resp = None
|
|
||||||
self.esmtp_features = {}
|
|
||||||
self.does_esmtp = 0
|
|
||||||
+ else:
|
|
||||||
+ # RFC 3207:
|
|
||||||
+ # 501 Syntax error (no parameters allowed)
|
|
||||||
+ # 454 TLS not available due to temporary reason
|
|
||||||
+ raise SMTPResponseException(resp, reply)
|
|
||||||
return (resp, reply)
|
|
||||||
|
|
||||||
def sendmail(self, from_addr, to_addrs, msg, mail_options=[],
|
|
||||||
--
|
|
||||||
2.5.5
|
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
From 531dfa4bcfe55d5cd1524425944b07c5b02bddf9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Charalampos Stratakis <cstratak@redhat.com>
|
|
||||||
Date: Fri, 8 Jul 2016 17:16:41 +0200
|
|
||||||
Subject: [PATCH] CVE-2016-5636 fix
|
|
||||||
|
|
||||||
---
|
|
||||||
Modules/zipimport.c | 9 +++++++++
|
|
||||||
1 file changed, 9 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/Modules/zipimport.c b/Modules/zipimport.c
|
|
||||||
index 06abb31..4d0d1de 100644
|
|
||||||
--- a/Modules/zipimport.c
|
|
||||||
+++ b/Modules/zipimport.c
|
|
||||||
@@ -1076,6 +1076,10 @@ get_data(PyObject *archive, PyObject *toc_entry)
|
|
||||||
&date, &crc)) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
+ if (data_size < 0) {
|
|
||||||
+ PyErr_Format(ZipImportError, "negative data size");
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
fp = _Py_fopen_obj(archive, "rb");
|
|
||||||
if (!fp)
|
|
||||||
@@ -1112,6 +1116,11 @@ get_data(PyObject *archive, PyObject *toc_entry)
|
|
||||||
}
|
|
||||||
file_offset += l; /* Start of file data */
|
|
||||||
|
|
||||||
+ if (data_size > LONG_MAX - 1) {
|
|
||||||
+ fclose(fp);
|
|
||||||
+ PyErr_NoMemory();
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
bytes_size = compress == 0 ? data_size : data_size + 1;
|
|
||||||
if (bytes_size == 0)
|
|
||||||
bytes_size++;
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
|
@ -1,20 +1,8 @@
|
||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User Senthil Kumaran <senthil@uthcode.com>
|
|
||||||
# Date 1469947146 25200
|
|
||||||
# Node ID a0ac52ed8f7918222603b584ec8fc93d9b7bc0a5
|
|
||||||
# Parent 4cb94e561e2db9865fb4d752f2bceefca4c6819a# Parent 3c19023c9fec5a615c25598468b44fade89049ce
|
|
||||||
[merge from 3.4] - Prevent HTTPoxy attack (CVE-2016-1000110)
|
|
||||||
|
|
||||||
Ignore the HTTP_PROXY variable when REQUEST_METHOD environment is set, which
|
|
||||||
indicates that the script is in CGI mode.
|
|
||||||
|
|
||||||
Issue #27568 Reported and patch contributed by Rémi Rampin.
|
|
||||||
|
|
||||||
diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst
|
diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst
|
||||||
|
index 24a4156..d2c7991 100644
|
||||||
--- a/Doc/howto/urllib2.rst
|
--- a/Doc/howto/urllib2.rst
|
||||||
+++ b/Doc/howto/urllib2.rst
|
+++ b/Doc/howto/urllib2.rst
|
||||||
@@ -538,6 +538,11 @@ setting up a `Basic Authentication`_ han
|
@@ -538,6 +538,11 @@ setting up a `Basic Authentication`_ handler: ::
|
||||||
through a proxy. However, this can be enabled by extending urllib.request as
|
through a proxy. However, this can be enabled by extending urllib.request as
|
||||||
shown in the recipe [#]_.
|
shown in the recipe [#]_.
|
||||||
|
|
||||||
|
@ -27,11 +15,12 @@ diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst
|
||||||
Sockets and Layers
|
Sockets and Layers
|
||||||
==================
|
==================
|
||||||
diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst
|
diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst
|
||||||
|
index 6c1bfb8..1291aeb 100644
|
||||||
--- a/Doc/library/urllib.request.rst
|
--- a/Doc/library/urllib.request.rst
|
||||||
+++ b/Doc/library/urllib.request.rst
|
+++ b/Doc/library/urllib.request.rst
|
||||||
@@ -166,6 +166,16 @@ The :mod:`urllib.request` module defines the following functions:
|
@@ -173,6 +173,16 @@ The :mod:`urllib.request` module defines the following functions:
|
||||||
cannot find it, looks for proxy information from Mac OSX System
|
If both lowercase and uppercase environment variables exist (and disagree),
|
||||||
Configuration for Mac OS X and Windows Systems Registry for Windows.
|
lowercase is preferred.
|
||||||
|
|
||||||
+ .. note::
|
+ .. note::
|
||||||
+
|
+
|
||||||
|
@ -46,25 +35,25 @@ diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst
|
||||||
|
|
||||||
The following classes are provided:
|
The following classes are provided:
|
||||||
|
|
||||||
@@ -275,6 +285,12 @@ The following classes are provided:
|
@@ -280,6 +290,11 @@ The following classes are provided:
|
||||||
|
list of hostname suffixes, optionally with ``:port`` appended, for example
|
||||||
To disable autodetected proxy pass an empty dictionary.
|
``cern.ch,ncsa.uiuc.edu,some.host:8080``.
|
||||||
|
|
||||||
+ .. note::
|
+ .. note::
|
||||||
+
|
+
|
||||||
+ ``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set;
|
+ ``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set;
|
||||||
+ see the documentation on :func:`~urllib.request.getproxies`.
|
+ see the documentation on :func:`~urllib.request.getproxies`.
|
||||||
+
|
|
||||||
+
|
+
|
||||||
|
|
||||||
.. class:: HTTPPasswordMgr()
|
.. class:: HTTPPasswordMgr()
|
||||||
|
|
||||||
diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
|
diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
|
||||||
|
index 5d05f8d..c26c52a 100644
|
||||||
--- a/Lib/test/test_urllib.py
|
--- a/Lib/test/test_urllib.py
|
||||||
+++ b/Lib/test/test_urllib.py
|
+++ b/Lib/test/test_urllib.py
|
||||||
@@ -225,6 +225,18 @@ class ProxyTests(unittest.TestCase):
|
@@ -232,6 +232,18 @@ class ProxyTests(unittest.TestCase):
|
||||||
self.env.set('NO_PROXY', 'localhost, anotherdomain.com, newdomain.com')
|
self.assertTrue(urllib.request.proxy_bypass_environment('anotherdomain.com:8888'))
|
||||||
self.assertTrue(urllib.request.proxy_bypass_environment('anotherdomain.com'))
|
self.assertTrue(urllib.request.proxy_bypass_environment('newdomain.com:1234'))
|
||||||
|
|
||||||
+ def test_proxy_cgi_ignore(self):
|
+ def test_proxy_cgi_ignore(self):
|
||||||
+ try:
|
+ try:
|
||||||
|
@ -78,13 +67,14 @@ diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
|
||||||
+ self.env.unset('REQUEST_METHOD')
|
+ self.env.unset('REQUEST_METHOD')
|
||||||
+ self.env.unset('HTTP_PROXY')
|
+ self.env.unset('HTTP_PROXY')
|
||||||
+
|
+
|
||||||
class urlopen_HttpTests(unittest.TestCase, FakeHTTPMixin, FakeFTPMixin):
|
def test_proxy_bypass_environment_host_match(self):
|
||||||
"""Test urlopen() opening a fake http connection."""
|
bypass = urllib.request.proxy_bypass_environment
|
||||||
|
self.env.set('NO_PROXY',
|
||||||
diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
|
diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
|
||||||
|
index 1731fe3..3be327d 100644
|
||||||
--- a/Lib/urllib/request.py
|
--- a/Lib/urllib/request.py
|
||||||
+++ b/Lib/urllib/request.py
|
+++ b/Lib/urllib/request.py
|
||||||
@@ -2394,6 +2394,12 @@ def getproxies_environment():
|
@@ -2412,6 +2412,12 @@ def getproxies_environment():
|
||||||
name = name.lower()
|
name = name.lower()
|
||||||
if value and name[-6:] == '_proxy':
|
if value and name[-6:] == '_proxy':
|
||||||
proxies[name[:-6]] = value
|
proxies[name[:-6]] = value
|
||||||
|
@ -94,7 +84,6 @@ diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
|
||||||
+ # If "proxy" is lowercase, it will still be used thanks to the next block
|
+ # If "proxy" is lowercase, it will still be used thanks to the next block
|
||||||
+ if 'REQUEST_METHOD' in os.environ:
|
+ if 'REQUEST_METHOD' in os.environ:
|
||||||
+ proxies.pop('http', None)
|
+ proxies.pop('http', None)
|
||||||
return proxies
|
for name, value in os.environ.items():
|
||||||
|
if name[-6:] == '_proxy':
|
||||||
def proxy_bypass_environment(host):
|
name = name.lower()
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
diff -urp Python-3.5.0/configure p/configure
|
||||||
|
--- Python-3.5.0/configure 2016-02-25 16:12:12.615184011 +0000
|
||||||
|
+++ p/configure 2016-02-25 16:13:01.293412517 +0000
|
||||||
|
@@ -5133,7 +5133,7 @@ cat >> conftest.c <<EOF
|
||||||
|
# elif _MIPS_SIM == _ABIN32
|
||||||
|
mips64el-linux-gnuabin32
|
||||||
|
# elif _MIPS_SIM == _ABI64
|
||||||
|
- mips64el-linux-gnuabi64
|
||||||
|
+ mips64el-linux-gnu
|
||||||
|
# else
|
||||||
|
# error unknown platform triplet
|
||||||
|
# endif
|
||||||
|
@@ -5143,7 +5143,7 @@ cat >> conftest.c <<EOF
|
||||||
|
# elif _MIPS_SIM == _ABIN32
|
||||||
|
mips64-linux-gnuabin32
|
||||||
|
# elif _MIPS_SIM == _ABI64
|
||||||
|
- mips64-linux-gnuabi64
|
||||||
|
+ mips64-linux-gnu
|
||||||
|
# else
|
||||||
|
# error unknown platform triplet
|
||||||
|
# endif
|
||||||
|
diff -urp Python-3.5.0/configure.ac p/configure.ac
|
||||||
|
--- Python-3.5.0/configure.ac 2016-02-25 16:12:11.663159985 +0000
|
||||||
|
+++ p/configure.ac 2016-02-25 16:13:18.814854710 +0000
|
||||||
|
@@ -784,7 +784,7 @@ cat >> conftest.c <<EOF
|
||||||
|
# elif _MIPS_SIM == _ABIN32
|
||||||
|
mips64el-linux-gnuabin32
|
||||||
|
# elif _MIPS_SIM == _ABI64
|
||||||
|
- mips64el-linux-gnuabi64
|
||||||
|
+ mips64el-linux-gnu
|
||||||
|
# else
|
||||||
|
# error unknown platform triplet
|
||||||
|
# endif
|
||||||
|
@@ -794,7 +794,7 @@ cat >> conftest.c <<EOF
|
||||||
|
# elif _MIPS_SIM == _ABIN32
|
||||||
|
mips64-linux-gnuabin32
|
||||||
|
# elif _MIPS_SIM == _ABI64
|
||||||
|
- mips64-linux-gnuabi64
|
||||||
|
+ mips64-linux-gnu
|
||||||
|
# else
|
||||||
|
# error unknown platform triplet
|
||||||
|
# endif
|
|
@ -1,58 +0,0 @@
|
||||||
From 7cedccf19a4a653b3e591928dc7b3d0e7d1ec50a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tomas Orsava <torsava@redhat.com>
|
|
||||||
Date: Fri, 16 Sep 2016 17:58:35 +0200
|
|
||||||
Subject: [PATCH] Updated the buildtime check for the getrandom syscall
|
|
||||||
|
|
||||||
to the one from Python version 3.5.2
|
|
||||||
---
|
|
||||||
configure | 6 ++++--
|
|
||||||
configure.ac | 6 ++++--
|
|
||||||
2 files changed, 8 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/configure b/configure
|
|
||||||
index 3a46658..f7f3717 100755
|
|
||||||
--- a/configure
|
|
||||||
+++ b/configure
|
|
||||||
@@ -16111,13 +16111,15 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
|
|
||||||
+ #include <unistd.h>
|
|
||||||
#include <sys/syscall.h>
|
|
||||||
+ #include <linux/random.h>
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
char buffer[1];
|
|
||||||
const size_t buflen = sizeof(buffer);
|
|
||||||
- const int flags = 0;
|
|
||||||
- /* ignore the result, Python checks for ENOSYS at runtime */
|
|
||||||
+ const int flags = GRND_NONBLOCK;
|
|
||||||
+ /* ignore the result, Python checks for ENOSYS and EAGAIN at runtime */
|
|
||||||
(void)syscall(SYS_getrandom, buffer, buflen, flags);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index 05e067e..526688c 100644
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -5168,13 +5168,15 @@ AC_MSG_CHECKING(for the Linux getrandom() syscall)
|
|
||||||
AC_LINK_IFELSE(
|
|
||||||
[
|
|
||||||
AC_LANG_SOURCE([[
|
|
||||||
+ #include <unistd.h>
|
|
||||||
#include <sys/syscall.h>
|
|
||||||
+ #include <linux/random.h>
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
char buffer[1];
|
|
||||||
const size_t buflen = sizeof(buffer);
|
|
||||||
- const int flags = 0;
|
|
||||||
- /* ignore the result, Python checks for ENOSYS at runtime */
|
|
||||||
+ const int flags = GRND_NONBLOCK;
|
|
||||||
+ /* ignore the result, Python checks for ENOSYS and EAGAIN at runtime */
|
|
||||||
(void)syscall(SYS_getrandom, buffer, buflen, flags);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.9.0
|
|
||||||
|
|
|
@ -1,72 +0,0 @@
|
||||||
diff -up ./configure.autotool-intermediates ./configure
|
|
||||||
--- ./configure.autotool-intermediates 2013-04-09 14:52:49.831773426 +0200
|
|
||||||
+++ ./configure 2013-04-09 14:52:53.204765347 +0200
|
|
||||||
@@ -802,6 +802,8 @@ with_thread
|
|
||||||
enable_ipv6
|
|
||||||
with_doc_strings
|
|
||||||
with_tsc
|
|
||||||
+with_count_allocs
|
|
||||||
+with_call_profile
|
|
||||||
with_pymalloc
|
|
||||||
with_valgrind
|
|
||||||
with_systemtap
|
|
||||||
@@ -1479,6 +1481,8 @@ Optional Packages:
|
|
||||||
deprecated; use --with(out)-threads
|
|
||||||
--with(out)-doc-strings disable/enable documentation strings
|
|
||||||
--with(out)-tsc enable/disable timestamp counter profile
|
|
||||||
+ --with(out)count-allocs enable/disable per-type instance accounting
|
|
||||||
+ --with(out)-call-profile enable/disable statistics on function call invocation
|
|
||||||
--with(out)-pymalloc disable/enable specialized mallocs
|
|
||||||
--with-valgrind Enable Valgrind support
|
|
||||||
--with(out)-systemtap disable/enable SystemTap support
|
|
||||||
@@ -10117,6 +10121,50 @@ $as_echo "#define WITH_TSC 1" >>confdefs
|
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
|
||||||
$as_echo "yes" >&6; }
|
|
||||||
+else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
+$as_echo "no" >&6; }
|
|
||||||
+fi
|
|
||||||
+else
|
|
||||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
+$as_echo "no" >&6; }
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-count-allocs" >&5
|
|
||||||
+$as_echo_n "checking for --with-count-allocs... " >&6; }
|
|
||||||
+
|
|
||||||
+# Check whether --with-count-allocs was given.
|
|
||||||
+if test "${with_count_allocs+set}" = set; then :
|
|
||||||
+ withval=$with_count_allocs;
|
|
||||||
+if test "$withval" != no
|
|
||||||
+then
|
|
||||||
+
|
|
||||||
+$as_echo "#define COUNT_ALLOCS 1" >>confdefs.h
|
|
||||||
+
|
|
||||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
|
||||||
+$as_echo "yes" >&6; }
|
|
||||||
+else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
+$as_echo "no" >&6; }
|
|
||||||
+fi
|
|
||||||
+else
|
|
||||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
+$as_echo "no" >&6; }
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-call-profile" >&5
|
|
||||||
+$as_echo_n "checking for --with-call-profile... " >&6; }
|
|
||||||
+
|
|
||||||
+# Check whether --with-call-profile was given.
|
|
||||||
+if test "${with_call_profile+set}" = set; then :
|
|
||||||
+ withval=$with_call_profile;
|
|
||||||
+if test "$withval" != no
|
|
||||||
+then
|
|
||||||
+
|
|
||||||
+$as_echo "#define CALL_PROFILE 1" >>confdefs.h
|
|
||||||
+
|
|
||||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
|
||||||
+$as_echo "yes" >&6; }
|
|
||||||
else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
$as_echo "no" >&6; }
|
|
||||||
fi
|
|
|
@ -1,12 +0,0 @@
|
||||||
--- Python-3.3.2/Lib/test/test_gdb.py.orig 2013-07-26 09:52:15.533852708 -0500
|
|
||||||
+++ Python-3.3.2/Lib/test/test_gdb.py 2013-07-26 15:07:53.733623014 -0500
|
|
||||||
@@ -729,8 +729,7 @@
|
|
||||||
foo\(1, 2, 3\)
|
|
||||||
''')
|
|
||||||
|
|
||||||
- @unittest.skipUnless(_thread,
|
|
||||||
- "Python was compiled without thread support")
|
|
||||||
+ @unittest.skip('Known failure on ARM: https://bugzilla.redhat.com/show_bug.cgi?id=986713')
|
|
||||||
def test_threads(self):
|
|
||||||
'Verify that "py-bt" indicates threads that are waiting for the GIL'
|
|
||||||
cmd = '''
|
|
172
python3.spec
172
python3.spec
|
@ -71,7 +71,7 @@
|
||||||
%global with_systemtap 1
|
%global with_systemtap 1
|
||||||
|
|
||||||
# some arches don't have valgrind so we need to disable its support on them
|
# some arches don't have valgrind so we need to disable its support on them
|
||||||
%ifnarch s390
|
%ifnarch s390 %{mips} riscv64
|
||||||
%global with_valgrind 1
|
%global with_valgrind 1
|
||||||
%else
|
%else
|
||||||
%global with_valgrind 0
|
%global with_valgrind 0
|
||||||
|
@ -111,8 +111,8 @@
|
||||||
# ==================
|
# ==================
|
||||||
Summary: Version 3 of the Python programming language aka Python 3000
|
Summary: Version 3 of the Python programming language aka Python 3000
|
||||||
Name: python3
|
Name: python3
|
||||||
Version: %{pybasever}.1
|
Version: %{pybasever}.2
|
||||||
Release: 17%{?dist}
|
Release: 3%{?dist}
|
||||||
License: Python
|
License: Python
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
|
|
||||||
|
@ -232,13 +232,6 @@ Patch104: 00104-lib64-fix-for-test_install.patch
|
||||||
# Downstream only: not appropriate for upstream
|
# Downstream only: not appropriate for upstream
|
||||||
Patch111: 00111-no-static-lib.patch
|
Patch111: 00111-no-static-lib.patch
|
||||||
|
|
||||||
# 00131 #
|
|
||||||
# The four tests in test_io built on top of check_interrupted_write_retry
|
|
||||||
# fail when built in Koji, for ppc and ppc64; for some reason, the SIGALRM
|
|
||||||
# handlers are never called, and the call to write runs to completion
|
|
||||||
# (rhbz#732998)
|
|
||||||
Patch131: 00131-disable-tests-in-test_io.patch
|
|
||||||
|
|
||||||
# 00132 #
|
# 00132 #
|
||||||
# Add non-standard hooks to unittest for use in the "check" phase below, when
|
# Add non-standard hooks to unittest for use in the "check" phase below, when
|
||||||
# running selftests within the build:
|
# running selftests within the build:
|
||||||
|
@ -261,14 +254,6 @@ Patch132: 00132-add-rpmbuild-hooks-to-unittest.patch
|
||||||
# Some tests within distutils fail when run in an rpmbuild:
|
# Some tests within distutils fail when run in an rpmbuild:
|
||||||
Patch137: 00137-skip-distutils-tests-that-fail-in-rpmbuild.patch
|
Patch137: 00137-skip-distutils-tests-that-fail-in-rpmbuild.patch
|
||||||
|
|
||||||
# 00139 #
|
|
||||||
# ARM-specific: skip known failure in test_float:
|
|
||||||
# http://bugs.python.org/issue8265 (rhbz#706253)
|
|
||||||
Patch139: 00139-skip-test_float-known-failure-on-arm.patch
|
|
||||||
|
|
||||||
# ideally short lived patch disabling a test thats fragile on different arches
|
|
||||||
Patch140: python3-arm-skip-failing-fragile-test.patch
|
|
||||||
|
|
||||||
# 00143 #
|
# 00143 #
|
||||||
# Fix the --with-tsc option on ppc64, and rework it on 32-bit ppc to avoid
|
# Fix the --with-tsc option on ppc64, and rework it on 32-bit ppc to avoid
|
||||||
# aliasing violations (rhbz#698726)
|
# aliasing violations (rhbz#698726)
|
||||||
|
@ -299,13 +284,6 @@ Patch143: 00143-tsc-on-ppc.patch
|
||||||
# implementation and OpenSSL still doesn't support it. For now, they're harmless.
|
# implementation and OpenSSL still doesn't support it. For now, they're harmless.
|
||||||
Patch146: 00146-hashlib-fips.patch
|
Patch146: 00146-hashlib-fips.patch
|
||||||
|
|
||||||
# 00150 #
|
|
||||||
# temporarily disable rAssertAlmostEqual in test_cmath on PPC (bz #750811)
|
|
||||||
# caused by a glibc bug. This patch can be removed when we have a glibc with
|
|
||||||
# the patch mentioned here:
|
|
||||||
# http://sourceware.org/bugzilla/show_bug.cgi?id=13472
|
|
||||||
Patch150: 00150-disable-rAssertAlmostEqual-cmath-on-ppc.patch
|
|
||||||
|
|
||||||
# 00155 #
|
# 00155 #
|
||||||
# Avoid allocating thunks in ctypes unless absolutely necessary, to avoid
|
# Avoid allocating thunks in ctypes unless absolutely necessary, to avoid
|
||||||
# generating SELinux denials on "import ctypes" and "import uuid" when
|
# generating SELinux denials on "import ctypes" and "import uuid" when
|
||||||
|
@ -342,12 +320,6 @@ Patch160: 00160-disable-test_fs_holes-in-rpm-build.patch
|
||||||
# Not yet sent upstream
|
# Not yet sent upstream
|
||||||
Patch163: 00163-disable-parts-of-test_socket-in-rpm-build.patch
|
Patch163: 00163-disable-parts-of-test_socket-in-rpm-build.patch
|
||||||
|
|
||||||
# 0164 #
|
|
||||||
# some tests in test._io interrupted_write-* fail on PPC (rhbz#846849)
|
|
||||||
# testChainingDescriptors test in test_exceptions fails on PPc, too (rhbz#846849)
|
|
||||||
# disable those tests so that rebuilds on PPC can continue
|
|
||||||
Patch164: 00164-disable-interrupted_write-tests-on-ppc.patch
|
|
||||||
|
|
||||||
# 00170 #
|
# 00170 #
|
||||||
# In debug builds, try to print repr() when a C-level assert fails in the
|
# In debug builds, try to print repr() when a C-level assert fails in the
|
||||||
# garbage collector (typically indicating a reference-counting error
|
# garbage collector (typically indicating a reference-counting error
|
||||||
|
@ -359,26 +331,12 @@ Patch164: 00164-disable-interrupted_write-tests-on-ppc.patch
|
||||||
# (rhbz#850013
|
# (rhbz#850013
|
||||||
Patch170: 00170-gc-assertions.patch
|
Patch170: 00170-gc-assertions.patch
|
||||||
|
|
||||||
# 00173 #
|
|
||||||
# Workaround for ENOPROTOOPT seen in Koji withi test.support.bind_port()
|
|
||||||
# (rhbz#913732)
|
|
||||||
Patch173: 00173-workaround-ENOPROTOOPT-in-bind_port.patch
|
|
||||||
|
|
||||||
# 00178 #
|
# 00178 #
|
||||||
# Don't duplicate various FLAGS in sysconfig values
|
# Don't duplicate various FLAGS in sysconfig values
|
||||||
# http://bugs.python.org/issue17679
|
# http://bugs.python.org/issue17679
|
||||||
# Does not affect python2 AFAICS (different sysconfig values initialization)
|
# Does not affect python2 AFAICS (different sysconfig values initialization)
|
||||||
Patch178: 00178-dont-duplicate-flags-in-sysconfig.patch
|
Patch178: 00178-dont-duplicate-flags-in-sysconfig.patch
|
||||||
|
|
||||||
# 00179 #
|
|
||||||
# Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=951802
|
|
||||||
# Reported upstream in http://bugs.python.org/issue17737
|
|
||||||
# This patch basically looks at every frame and if it is somehow corrupted,
|
|
||||||
# it just stops printing the traceback - it doesn't fix the actual bug.
|
|
||||||
# This bug seems to only affect ARM.
|
|
||||||
# Doesn't seem to affect Python 2 AFAICS.
|
|
||||||
Patch179: 00179-dont-raise-error-on-gdb-corrupted-frames-in-backtrace.patch
|
|
||||||
|
|
||||||
# 00180 #
|
# 00180 #
|
||||||
# Enable building on ppc64p7
|
# Enable building on ppc64p7
|
||||||
# Not appropriate for upstream, Fedora-specific naming
|
# Not appropriate for upstream, Fedora-specific naming
|
||||||
|
@ -424,31 +382,6 @@ Patch188: 00188-fix-lib2to3-tests-when-hashlib-doesnt-compile-properly.patch
|
||||||
Patch189: 00189-add-rewheel-module.patch
|
Patch189: 00189-add-rewheel-module.patch
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# 00194 #
|
|
||||||
# Tests requiring SIGHUP to work don't work in Koji
|
|
||||||
# see rhbz#1088233
|
|
||||||
Patch194: temporarily-disable-tests-requiring-SIGHUP.patch
|
|
||||||
|
|
||||||
# 00196 #
|
|
||||||
# Fix test_gdb failure on ppc64le
|
|
||||||
Patch196: 00196-test-gdb-match-addr-before-builtin.patch
|
|
||||||
|
|
||||||
# 00200 #
|
|
||||||
# Fix for gettext plural form headers (lines that begin with "#")
|
|
||||||
# Note: Backported from scl
|
|
||||||
Patch200: 00200-gettext-plural-fix.patch
|
|
||||||
|
|
||||||
# 00201 #
|
|
||||||
# Fixes memory leak in gdbm module (rhbz#977308)
|
|
||||||
# This was upstreamed as a part of bigger patch, but for our purposes
|
|
||||||
# this is ok: http://bugs.python.org/issue18404
|
|
||||||
# Note: Backported from scl
|
|
||||||
Patch201: 00201-fix-memory-leak-in-gdbm.patch
|
|
||||||
|
|
||||||
# 00203 #
|
|
||||||
# test_threading fails in koji dues to it's handling of signals
|
|
||||||
Patch203: 00203-disable-threading-test-koji.patch
|
|
||||||
|
|
||||||
# 00205 #
|
# 00205 #
|
||||||
# LIBPL variable in makefile takes LIBPL from configure.ac
|
# LIBPL variable in makefile takes LIBPL from configure.ac
|
||||||
# but the LIBPL variable defined there doesn't respect libdir macro
|
# but the LIBPL variable defined there doesn't respect libdir macro
|
||||||
|
@ -459,40 +392,12 @@ Patch205: 00205-make-libpl-respect-lib64.patch
|
||||||
# by debian but fedora infra uses only eabi without hf
|
# by debian but fedora infra uses only eabi without hf
|
||||||
Patch206: 00206-remove-hf-from-arm-triplet.patch
|
Patch206: 00206-remove-hf-from-arm-triplet.patch
|
||||||
|
|
||||||
# 00207 #
|
|
||||||
# Avoid truncated _math.o files caused by parallel builds
|
|
||||||
# modified version of https://bugs.python.org/issue24421
|
|
||||||
# rhbz#1292461
|
|
||||||
Patch207: 00207-math-once.patch
|
|
||||||
|
|
||||||
# 00208 #
|
|
||||||
# test_with_pip (test.test_venv.EnsurePipTest) fails on ppc64*
|
|
||||||
# rhbz#1292467
|
|
||||||
Patch208: 00208-disable-test_with_pip-on-ppc.patch
|
|
||||||
|
|
||||||
# 00209 #
|
# 00209 #
|
||||||
# Fix test breakage with version 2.2.0 of Expat
|
# Fix test breakage with version 2.2.0 of Expat
|
||||||
# rhbz#1353918: https://bugzilla.redhat.com/show_bug.cgi?id=1353918
|
# rhbz#1353918: https://bugzilla.redhat.com/show_bug.cgi?id=1353918
|
||||||
# FIXED UPSTREAM: http://bugs.python.org/issue27369
|
# FIXED UPSTREAM: http://bugs.python.org/issue27369
|
||||||
Patch209: 00209-fix-test-pyexpat-failure.patch
|
Patch209: 00209-fix-test-pyexpat-failure.patch
|
||||||
|
|
||||||
# 00237 #
|
|
||||||
# CVE-2016-0772 python: smtplib StartTLS stripping attack
|
|
||||||
# rhbz#1303647: https://bugzilla.redhat.com/show_bug.cgi?id=1303647
|
|
||||||
# rhbz#1346345: https://bugzilla.redhat.com/show_bug.cgi?id=1346345
|
|
||||||
# FIXED UPSTREAM: https://hg.python.org/cpython/rev/d590114c2394
|
|
||||||
# Raise an error when STARTTLS fails
|
|
||||||
Patch237: 00237-Raise-an-error-when-STARTTLS-fails.patch
|
|
||||||
|
|
||||||
# 00241 #
|
|
||||||
# CVE-2016-5636: http://seclists.org/oss-sec/2016/q2/560
|
|
||||||
# rhbz#1345859: https://bugzilla.redhat.com/show_bug.cgi?id=1345859
|
|
||||||
# https://hg.python.org/cpython/rev/10dad6da1b28/
|
|
||||||
# https://hg.python.org/cpython/rev/5533a9e02b21
|
|
||||||
# Fix possible integer overflow and heap corruption in zipimporter.get_data()
|
|
||||||
# FIXED UPSTREAM: https://bugs.python.org/issue26171
|
|
||||||
Patch241: 00241-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch
|
|
||||||
|
|
||||||
# 00242 #
|
# 00242 #
|
||||||
# HTTPoxy attack (CVE-2016-1000110)
|
# HTTPoxy attack (CVE-2016-1000110)
|
||||||
# https://httpoxy.org/
|
# https://httpoxy.org/
|
||||||
|
@ -501,14 +406,12 @@ Patch241: 00241-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch
|
||||||
# Resolves: rhbz#1359177
|
# Resolves: rhbz#1359177
|
||||||
Patch242: 00242-CVE-2016-1000110-httpoxy.patch
|
Patch242: 00242-CVE-2016-1000110-httpoxy.patch
|
||||||
|
|
||||||
# 00246 #
|
# 00243 #
|
||||||
# Backported the build-time check for the getrandom syscall from Python 3.5.2.
|
# Fix the triplet used on 64-bit MIPS
|
||||||
# The Python 3.5.1 build-time check was failing due to missing headers.
|
# rhbz#1322526: https://bugzilla.redhat.com/show_bug.cgi?id=1322526
|
||||||
# Note: After rhbz#1377240 is resolved, the patch for the configure file
|
# Upstream uses Debian-like style mips64-linux-gnuabi64
|
||||||
# can be omitted.
|
# Fedora needs the default mips64-linux-gnu
|
||||||
# Resolves: rhbz#1350123
|
Patch243: 00243-fix-mips64-triplet.patch
|
||||||
Patch246: 00246-Updated-the-buildtime-check-for-the-getrandom-syscal.patch
|
|
||||||
|
|
||||||
|
|
||||||
# (New patches go here ^^^)
|
# (New patches go here ^^^)
|
||||||
#
|
#
|
||||||
|
@ -520,10 +423,6 @@ Patch246: 00246-Updated-the-buildtime-check-for-the-getrandom-syscal.patch
|
||||||
# https://fedoraproject.org/wiki/SIGs/Python/PythonPatches
|
# https://fedoraproject.org/wiki/SIGs/Python/PythonPatches
|
||||||
|
|
||||||
|
|
||||||
# This is the generated patch to "configure"; see the description of
|
|
||||||
# %{regenerate_autotooling_patch}
|
|
||||||
# above:
|
|
||||||
|
|
||||||
# add correct arch for ppc64/ppc64le
|
# add correct arch for ppc64/ppc64le
|
||||||
# it should be ppc64le-linux-gnu/ppc64-linux-gnu instead powerpc64le-linux-gnu/powerpc64-linux-gnu
|
# it should be ppc64le-linux-gnu/ppc64-linux-gnu instead powerpc64le-linux-gnu/powerpc64-linux-gnu
|
||||||
Patch5001: python3-powerppc-arch.patch
|
Patch5001: python3-powerppc-arch.patch
|
||||||
|
@ -715,7 +614,7 @@ for f in md5module.c sha1module.c sha256module.c sha512module.c; do
|
||||||
done
|
done
|
||||||
|
|
||||||
%if 0%{with_rewheel}
|
%if 0%{with_rewheel}
|
||||||
%global pip_version 7.1.0
|
%global pip_version 8.0.2
|
||||||
sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/ensurepip/__init__.py
|
sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/ensurepip/__init__.py
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
@ -733,30 +632,16 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
|
||||||
%patch104 -p1
|
%patch104 -p1
|
||||||
%endif
|
%endif
|
||||||
%patch111 -p1
|
%patch111 -p1
|
||||||
%ifarch ppc %{power64}
|
|
||||||
%patch131 -p1
|
|
||||||
%endif
|
|
||||||
%patch132 -p1
|
%patch132 -p1
|
||||||
%patch137 -p1
|
%patch137 -p1
|
||||||
%ifarch %{arm}
|
|
||||||
%patch139 -p1
|
|
||||||
%patch140 -p1
|
|
||||||
%endif
|
|
||||||
%patch143 -p1 -b .tsc-on-ppc
|
%patch143 -p1 -b .tsc-on-ppc
|
||||||
%patch146 -p1
|
%patch146 -p1
|
||||||
%ifarch ppc %{power64}
|
|
||||||
%patch150 -p1
|
|
||||||
%endif
|
|
||||||
%patch155 -p1
|
%patch155 -p1
|
||||||
%patch157 -p1
|
%patch157 -p1
|
||||||
%patch160 -p1
|
%patch160 -p1
|
||||||
%patch163 -p1
|
%patch163 -p1
|
||||||
%ifarch ppc %{power64}
|
%patch170 -p0
|
||||||
%patch164 -p1
|
|
||||||
%endif
|
|
||||||
%patch173 -p1
|
|
||||||
%patch178 -p1
|
%patch178 -p1
|
||||||
%patch179 -p1
|
|
||||||
%patch180 -p1
|
%patch180 -p1
|
||||||
%patch184 -p1
|
%patch184 -p1
|
||||||
%patch186 -p1
|
%patch186 -p1
|
||||||
|
@ -766,18 +651,11 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
|
||||||
%patch189 -p1
|
%patch189 -p1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%patch194 -p1
|
|
||||||
%patch196 -p1
|
|
||||||
%patch203 -p1
|
|
||||||
%patch205 -p1
|
%patch205 -p1
|
||||||
%patch206 -p1
|
%patch206 -p1
|
||||||
%patch207 -p1
|
|
||||||
%patch208 -p1
|
|
||||||
%patch209 -p1
|
%patch209 -p1
|
||||||
%patch237 -p1
|
|
||||||
%patch241 -p1
|
|
||||||
%patch242 -p1
|
%patch242 -p1
|
||||||
%patch246 -p1
|
%patch243 -p1
|
||||||
|
|
||||||
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
|
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
|
||||||
# are many differences between 2.6 and the Python 3 library.
|
# are many differences between 2.6 and the Python 3 library.
|
||||||
|
@ -982,7 +860,7 @@ install -d -m 0755 %{buildroot}/%{_prefix}/lib/python%{pybasever}/site-packages/
|
||||||
%global _pyconfig32_h pyconfig-32.h
|
%global _pyconfig32_h pyconfig-32.h
|
||||||
%global _pyconfig64_h pyconfig-64.h
|
%global _pyconfig64_h pyconfig-64.h
|
||||||
|
|
||||||
%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64
|
%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64} riscv64
|
||||||
%global _pyconfig_h %{_pyconfig64_h}
|
%global _pyconfig_h %{_pyconfig64_h}
|
||||||
%else
|
%else
|
||||||
%global _pyconfig_h %{_pyconfig32_h}
|
%global _pyconfig_h %{_pyconfig32_h}
|
||||||
|
@ -1136,7 +1014,7 @@ ln -s \
|
||||||
# Install a tapset for this libpython into tapsetdir, fixing up the path to the
|
# Install a tapset for this libpython into tapsetdir, fixing up the path to the
|
||||||
# library:
|
# library:
|
||||||
mkdir -p %{buildroot}%{tapsetdir}
|
mkdir -p %{buildroot}%{tapsetdir}
|
||||||
%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64
|
%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64}
|
||||||
%global libpython_stp_optimized libpython%{pybasever}-64.stp
|
%global libpython_stp_optimized libpython%{pybasever}-64.stp
|
||||||
%global libpython_stp_debug libpython%{pybasever}-debug-64.stp
|
%global libpython_stp_debug libpython%{pybasever}-debug-64.stp
|
||||||
%else
|
%else
|
||||||
|
@ -1215,7 +1093,10 @@ CheckPython() {
|
||||||
%ifarch ppc64le aarch64
|
%ifarch ppc64le aarch64
|
||||||
-x test_faulthandler \
|
-x test_faulthandler \
|
||||||
%endif
|
%endif
|
||||||
%ifarch %{power64} s390 s390x armv7hl aarch64
|
%ifarch %{mips64}
|
||||||
|
-x test_ctypes \
|
||||||
|
%endif
|
||||||
|
%ifarch %{power64} s390 s390x armv7hl aarch64 %{mips}
|
||||||
-x test_gdb
|
-x test_gdb
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
@ -1674,6 +1555,23 @@ rm -fr %{buildroot}
|
||||||
# ======================================================
|
# ======================================================
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Oct 11 2016 Tomas Orsava <torsava@redhat.com> - 3.5.2-3
|
||||||
|
- Merged F25 branch into F24 thus updating Python to 3.5.2 in F24
|
||||||
|
- Added missing changelog entries below this one for the sake of completeness
|
||||||
|
|
||||||
|
* Tue Oct 11 2016 Tomas Orsava <torsava@redhat.com> - 3.5.2-2
|
||||||
|
- Update %py_byte_compile macro
|
||||||
|
- Remove unused configure flags (rhbz#1374357)
|
||||||
|
|
||||||
|
* Tue Oct 11 2016 Tomas Orsava <torsava@redhat.com> - 3.5.2-1
|
||||||
|
- Rebased to version 3.5.2
|
||||||
|
- Set to work with pip version 8.1.2
|
||||||
|
- Removed patches 207, 237, 241 as fixes are already contained in Python 3.5.2
|
||||||
|
- Removed arch or environment specific patches 194, 196, 203, and 208
|
||||||
|
as test builds indicate they are no longer needed
|
||||||
|
- Updated patches 102, 146, and 242 to work with the new Python codebase
|
||||||
|
- Removed patches 200, 201, 5000 which weren't even being applied
|
||||||
|
|
||||||
* Fri Sep 16 2016 Tomas Orsava <torsava@redhat.com> - 3.5.1-17
|
* Fri Sep 16 2016 Tomas Orsava <torsava@redhat.com> - 3.5.1-17
|
||||||
- Backported the build-time check for the getrandom syscall from Python 3.5.2
|
- Backported the build-time check for the getrandom syscall from Python 3.5.2
|
||||||
- The Python 3.5.1 build-time check was failing due to missing headers
|
- The Python 3.5.1 build-time check was failing due to missing headers
|
||||||
|
|
Loading…
Reference in New Issue