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
|
||||
+++ Python-3.4.0b1/Lib/distutils/command/install.py 2013-11-27 11:10:43.821150774 +0100
|
||||
@@ -45,14 +45,14 @@ else:
|
||||
diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
|
||||
index 67db007..b16fe0f 100644
|
||||
--- a/Lib/distutils/command/install.py
|
||||
+++ b/Lib/distutils/command/install.py
|
||||
@@ -30,14 +30,14 @@ WINDOWS_SCHEME = {
|
||||
INSTALL_SCHEMES = {
|
||||
'unix_prefix': {
|
||||
'purelib': '$base/lib/python$py_version_short/site-packages',
|
||||
@ -17,9 +19,11 @@
|
||||
'headers': '$base/include/python/$dist_name',
|
||||
'scripts': '$base/bin',
|
||||
'data' : '$base',
|
||||
--- Python-3.4.0b1/Lib/distutils/sysconfig.py.lib64 2013-11-24 21:36:54.000000000 +0100
|
||||
+++ Python-3.4.0b1/Lib/distutils/sysconfig.py 2013-11-27 11:10:43.821150774 +0100
|
||||
@@ -141,8 +141,12 @@
|
||||
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
|
||||
index e5c493d..a4846eb 100644
|
||||
--- 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
|
||||
|
||||
if os.name == "posix":
|
||||
@ -33,9 +37,11 @@
|
||||
if standard_lib:
|
||||
return libpython
|
||||
else:
|
||||
--- Python-3.4.0b1/Lib/site.py.lib64 2013-11-24 21:36:54.000000000 +0100
|
||||
+++ Python-3.4.0b1/Lib/site.py 2013-11-27 11:10:43.822150773 +0100
|
||||
@@ -304,11 +304,15 @@
|
||||
diff --git a/Lib/site.py b/Lib/site.py
|
||||
index 3f78ef5..ad1033e 100644
|
||||
--- a/Lib/site.py
|
||||
+++ b/Lib/site.py
|
||||
@@ -303,11 +303,15 @@ def getsitepackages(prefixes=None):
|
||||
seen.add(prefix)
|
||||
|
||||
if os.sep == '/':
|
||||
@ -51,9 +57,11 @@
|
||||
sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
|
||||
if sys.platform == "darwin":
|
||||
# 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
|
||||
+++ Python-3.4.0b1/Lib/sysconfig.py 2013-11-27 11:10:43.822150773 +0100
|
||||
@@ -20,10 +20,10 @@
|
||||
diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
|
||||
index 61451b2..b021cce 100644
|
||||
--- a/Lib/sysconfig.py
|
||||
+++ b/Lib/sysconfig.py
|
||||
@@ -20,10 +20,10 @@ __all__ = [
|
||||
|
||||
_INSTALL_SCHEMES = {
|
||||
'posix_prefix': {
|
||||
@ -67,7 +75,7 @@
|
||||
'include':
|
||||
'{installed_base}/include/python{py_version_short}{abiflags}',
|
||||
'platinclude':
|
||||
@@ -61,10 +61,10 @@
|
||||
@@ -61,10 +61,10 @@ _INSTALL_SCHEMES = {
|
||||
'data': '{userbase}',
|
||||
},
|
||||
'posix_user': {
|
||||
@ -81,9 +89,11 @@
|
||||
'include': '{userbase}/include/python{py_version_short}',
|
||||
'scripts': '{userbase}/bin',
|
||||
'data': '{userbase}',
|
||||
--- Python-3.4.0b1/Lib/test/test_site.py.lib64 2013-11-24 21:36:55.000000000 +0100
|
||||
+++ Python-3.4.0b1/Lib/test/test_site.py 2013-11-27 11:10:43.822150773 +0100
|
||||
@@ -244,8 +244,8 @@
|
||||
diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py
|
||||
index da20a3d..f38ce06 100644
|
||||
--- 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)
|
||||
elif os.sep == '/':
|
||||
# OS X non-framwework builds, Linux, FreeBSD, etc
|
||||
@ -94,9 +104,11 @@
|
||||
'site-packages')
|
||||
self.assertEqual(dirs[0], wanted)
|
||||
else:
|
||||
--- Python-3.4.0b1/Makefile.pre.in.lib64 2013-11-27 11:10:43.814150786 +0100
|
||||
+++ Python-3.4.0b1/Makefile.pre.in 2013-11-27 11:10:43.823150771 +0100
|
||||
@@ -115,7 +115,7 @@
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
index 58d4258..e8364f0 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -125,7 +125,7 @@ LIBDIR= @libdir@
|
||||
MANDIR= @mandir@
|
||||
INCLUDEDIR= @includedir@
|
||||
CONFINCLUDEDIR= $(exec_prefix)/include
|
||||
@ -105,20 +117,11 @@
|
||||
ABIFLAGS= @ABIFLAGS@
|
||||
|
||||
# Detailed destination directories
|
||||
--- Python-3.4.0b1/Modules/getpath.c.lib64 2013-11-24 21:36:56.000000000 +0100
|
||||
+++ Python-3.4.0b1/Modules/getpath.c 2013-11-27 11:17:33.619449704 +0100
|
||||
@@ -122,8 +122,8 @@
|
||||
#endif
|
||||
|
||||
#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 @@
|
||||
diff --git a/Modules/getpath.c b/Modules/getpath.c
|
||||
index 18deb60..27ca814 100644
|
||||
--- a/Modules/getpath.c
|
||||
+++ b/Modules/getpath.c
|
||||
@@ -494,7 +494,7 @@ calculate_path(void)
|
||||
_pythonpath = Py_DecodeLocale(PYTHONPATH, NULL);
|
||||
_prefix = Py_DecodeLocale(PREFIX, NULL);
|
||||
_exec_prefix = Py_DecodeLocale(EXEC_PREFIX, NULL);
|
||||
@ -127,7 +130,7 @@
|
||||
|
||||
if (!_pythonpath || !_prefix || !_exec_prefix || !lib_python) {
|
||||
Py_FatalError(
|
||||
@@ -687,7 +687,7 @@
|
||||
@@ -683,7 +683,7 @@ calculate_path(void)
|
||||
}
|
||||
else
|
||||
wcsncpy(zip_path, _prefix, MAXPATHLEN);
|
||||
@ -136,7 +139,7 @@
|
||||
bufsz = wcslen(zip_path); /* Replace "00" with version */
|
||||
zip_path[bufsz - 6] = VERSION[0];
|
||||
zip_path[bufsz - 5] = VERSION[2];
|
||||
@@ -699,7 +699,7 @@
|
||||
@@ -695,7 +695,7 @@ calculate_path(void)
|
||||
fprintf(stderr,
|
||||
"Could not find platform dependent libraries <exec_prefix>\n");
|
||||
wcsncpy(exec_prefix, _exec_prefix, MAXPATHLEN);
|
||||
@ -145,9 +148,11 @@
|
||||
}
|
||||
/* 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
|
||||
+++ Python-3.4.0b1/setup.py 2013-11-27 11:10:43.824150769 +0100
|
||||
@@ -441,7 +441,7 @@
|
||||
diff --git a/setup.py b/setup.py
|
||||
index be33c46..f2779cc 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -492,7 +492,7 @@ class PyBuildExt(build_ext):
|
||||
# directories (i.e. '.' and 'Include') must be first. See issue
|
||||
# 10520.
|
||||
if not cross_compiling:
|
||||
@ -156,7 +161,7 @@
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
# only change this for cross builds for 3.3, issues on Mageia
|
||||
if cross_compiling:
|
||||
@@ -718,11 +718,11 @@
|
||||
@@ -780,11 +780,11 @@ class PyBuildExt(build_ext):
|
||||
elif curses_library:
|
||||
readline_libs.append(curses_library)
|
||||
elif self.compiler.find_library_file(lib_dirs +
|
||||
@ -170,7 +175,7 @@
|
||||
extra_link_args=readline_extra_link_args,
|
||||
libraries=readline_libs) )
|
||||
else:
|
||||
@@ -759,8 +759,8 @@
|
||||
@@ -821,8 +821,8 @@ class PyBuildExt(build_ext):
|
||||
if krb5_h:
|
||||
ssl_incs += krb5_h
|
||||
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 pprint
|
||||
import re
|
||||
@@ -101,5 +102,42 @@ def expectedFailure(func):
|
||||
@@ -101,5 +102,21 @@ def expectedFailure(func):
|
||||
raise self.test_case.failureException(msg)
|
||||
|
||||
+# 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)
|
||||
+ else:
|
||||
+ 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):
|
||||
|
||||
@ -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,
|
||||
- skipUnless, expectedFailure)
|
||||
+ skipUnless, expectedFailure,
|
||||
+ _skipInRpmBuild, _expectedFailureInRpmBuild)
|
||||
+ _skipInRpmBuild)
|
||||
from .suite import BaseTestSuite, TestSuite
|
||||
from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames,
|
||||
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
|
||||
+++ Python-3.4.0b1/Lib/hashlib.py 2013-11-27 11:45:17.073617547 +0100
|
||||
@@ -23,6 +23,16 @@
|
||||
diff --git a/Lib/hashlib.py b/Lib/hashlib.py
|
||||
index 316cece..b7ad879 100644
|
||||
--- 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.
|
||||
sha384 and sha512 will be slow on 32 bit platforms.
|
||||
|
||||
@ -17,7 +19,7 @@
|
||||
Hash objects have these methods:
|
||||
- update(arg): Update the hash object with the bytes in arg. Repeated calls
|
||||
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',
|
||||
'algorithms_available', 'pbkdf2_hmac')
|
||||
|
||||
@ -33,11 +35,10 @@
|
||||
+ kwargs.pop('usedforsecurity')
|
||||
+ return func(*args, **kwargs)
|
||||
+ return inner
|
||||
+
|
||||
|
||||
__builtin_constructor_cache = {}
|
||||
|
||||
@@ -108,34 +131,41 @@
|
||||
@@ -100,31 +122,39 @@ def __get_openssl_constructor(name):
|
||||
f = getattr(_hashlib, 'openssl_' + name)
|
||||
# Allow the C module to raise ValueError. The function will be
|
||||
# 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
|
||||
return __get_builtin_constructor(name)(data)
|
||||
|
||||
-
|
||||
try:
|
||||
import _hashlib
|
||||
new = __hash_new
|
||||
@@ -215,7 +245,10 @@
|
||||
|
||||
@@ -207,7 +237,10 @@ for __func_name in __always_supported:
|
||||
# try them all, some may not work due to the OpenSSL
|
||||
# version not supporting that algorithm.
|
||||
try:
|
||||
@ -104,14 +102,17 @@
|
||||
except ValueError:
|
||||
import logging
|
||||
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()
|
||||
del __always_supported, __func_name, __get_hash
|
||||
del __py_new, __hash_new, __get_openssl_constructor
|
||||
+del __ignore_usedforsecurity
|
||||
--- Python-3.4.0b1/Lib/test/test_hashlib.py 2013-11-27 11:55:42.769601363 +0100
|
||||
+++ Python-3.4.0b1/Lib/test/test_hashlib.py 2013-11-28 09:33:03.929008508 +0100
|
||||
@@ -24,7 +24,22 @@
|
||||
\ No newline at end of file
|
||||
diff --git a/Lib/test/test_hashlib.py b/Lib/test/test_hashlib.py
|
||||
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')
|
||||
|
||||
c_hashlib = import_fresh_module('hashlib', fresh=['_hashlib'])
|
||||
@ -135,7 +136,7 @@
|
||||
|
||||
def hexstr(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]
|
||||
return r
|
||||
|
||||
@ -152,7 +153,7 @@
|
||||
|
||||
class HashLibTestCase(unittest.TestCase):
|
||||
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
|
||||
# of hashlib.new given the algorithm name.
|
||||
for algorithm, constructors in self.constructors_to_test.items():
|
||||
@ -167,7 +168,7 @@
|
||||
constructors.add(_test_algorithm_via_hashlib_new)
|
||||
|
||||
_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():
|
||||
constructor = getattr(_hashlib, 'openssl_'+algorithm, None)
|
||||
if constructor:
|
||||
@ -192,10 +193,11 @@
|
||||
- if _sha512:
|
||||
- add_builtin_constructor('sha384')
|
||||
- add_builtin_constructor('sha512')
|
||||
|
||||
-
|
||||
super(HashLibTestCase, self).__init__(*args, **kwargs)
|
||||
|
||||
@@ -157,9 +169,6 @@
|
||||
@property
|
||||
@@ -148,9 +158,6 @@ class HashLibTestCase(unittest.TestCase):
|
||||
else:
|
||||
del sys.modules['_md5']
|
||||
self.assertRaises(TypeError, get_builtin_constructor, 3)
|
||||
@ -205,7 +207,7 @@
|
||||
|
||||
def test_hexdigest(self):
|
||||
for cons in self.hash_constructors:
|
||||
@@ -558,6 +567,65 @@
|
||||
@@ -433,6 +440,64 @@ class HashLibTestCase(unittest.TestCase):
|
||||
|
||||
self.assertEqual(expected_hash, hasher.hexdigest())
|
||||
|
||||
@ -267,21 +269,23 @@
|
||||
+
|
||||
+ m = _hashlib.new('md5', b'abc\n', usedforsecurity=False)
|
||||
+ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
|
||||
+
|
||||
|
||||
class KDFTests(unittest.TestCase):
|
||||
|
||||
@@ -639,6 +707,7 @@
|
||||
with self.assertRaisesRegex(ValueError, 'unsupported hash type'):
|
||||
pbkdf2('unknown', b'pass', b'salt', 1)
|
||||
|
||||
@@ -516,7 +581,7 @@ class KDFTests(unittest.TestCase):
|
||||
out = pbkdf2(hash_name='sha1', password=b'password', salt=b'salt',
|
||||
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')
|
||||
def test_pbkdf2_hmac_py(self):
|
||||
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
|
||||
+++ Python-3.4.0b1/Modules/_hashopenssl.c 2013-11-27 12:01:57.443537463 +0100
|
||||
@@ -19,6 +19,8 @@
|
||||
diff --git a/Modules/_hashopenssl.c b/Modules/_hashopenssl.c
|
||||
index 44765ac..b8cf490 100644
|
||||
--- a/Modules/_hashopenssl.c
|
||||
+++ b/Modules/_hashopenssl.c
|
||||
@@ -20,6 +20,8 @@
|
||||
|
||||
|
||||
/* EVP is the preferred interface to hashing in OpenSSL */
|
||||
@ -290,7 +294,7 @@
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/hmac.h>
|
||||
/* We use the object interface to discover what hashes OpenSSL supports. */
|
||||
@@ -48,11 +50,19 @@
|
||||
@@ -45,11 +47,19 @@ typedef struct {
|
||||
|
||||
static PyTypeObject EVPtype;
|
||||
|
||||
@ -314,7 +318,7 @@
|
||||
|
||||
DEFINE_CONSTS_FOR_NEW(md5)
|
||||
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 */
|
||||
|
||||
static void
|
||||
@@ -281,15 +333,16 @@
|
||||
@@ -259,15 +311,16 @@ EVP_repr(EVPobject *self)
|
||||
static int
|
||||
EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
|
||||
{
|
||||
@ -383,7 +387,7 @@
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -310,7 +363,12 @@
|
||||
@@ -288,7 +341,12 @@ EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
|
||||
PyBuffer_Release(&view);
|
||||
return -1;
|
||||
}
|
||||
@ -397,7 +401,7 @@
|
||||
|
||||
self->name = name_obj;
|
||||
Py_INCREF(self->name);
|
||||
@@ -394,7 +452,8 @@
|
||||
@@ -372,7 +430,8 @@ static PyTypeObject EVPtype = {
|
||||
static PyObject *
|
||||
EVPnew(PyObject *name_obj,
|
||||
const EVP_MD *digest, const EVP_MD_CTX *initial_ctx,
|
||||
@ -407,7 +411,7 @@
|
||||
{
|
||||
EVPobject *self;
|
||||
|
||||
@@ -409,7 +468,12 @@
|
||||
@@ -387,7 +446,12 @@ EVPnew(PyObject *name_obj,
|
||||
if (initial_ctx) {
|
||||
EVP_MD_CTX_copy(&self->ctx, initial_ctx);
|
||||
} else {
|
||||
@ -421,7 +425,7 @@
|
||||
}
|
||||
|
||||
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\
|
||||
automatically hashed.\n\
|
||||
\n\
|
||||
@ -455,17 +459,17 @@
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -461,7 +533,8 @@
|
||||
@@ -439,7 +511,8 @@ EVP_new(PyObject *self, PyObject *args, PyObject *kwdict)
|
||||
|
||||
digest = EVP_get_digestbyname(name);
|
||||
|
||||
- ret_obj = EVPnew(name_obj, digest, NULL, (unsigned char*)view.buf, view.len);
|
||||
+ ret_obj = EVPnew(name_obj, digest, NULL, (unsigned char*)view.buf, view.len,
|
||||
+ usedforsecurity);
|
||||
+ usedforsecurity);
|
||||
|
||||
if (data_obj)
|
||||
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, \
|
||||
+ "|Oi:" #NAME, \
|
||||
+ &cached_info_ ## NAME ); \
|
||||
+ }
|
||||
+
|
||||
}
|
||||
|
||||
+static PyObject *
|
||||
+implement_specific_EVP_new(PyObject *self, PyObject *args, PyObject *kwdict,
|
||||
+ const char *format,
|
||||
@ -554,8 +558,8 @@
|
||||
+ } else {
|
||||
+ PyErr_SetString(PyExc_ValueError, "Error initializing hash");
|
||||
+ }
|
||||
}
|
||||
|
||||
+ }
|
||||
+
|
||||
+ if (data_obj)
|
||||
+ PyBuffer_Release(&view);
|
||||
+
|
||||
@ -614,11 +618,10 @@
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
|
||||
GEN_CONSTRUCTOR(md5)
|
||||
GEN_CONSTRUCTOR(sha1)
|
||||
@@ -843,13 +974,10 @@
|
||||
@@ -819,13 +949,10 @@ PyInit__hashlib(void)
|
||||
{
|
||||
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,13 +96,14 @@ Index: Lib/test/test_gc.py
|
||||
===================================================================
|
||||
--- Lib/test/test_gc.py (revision 87911)
|
||||
+++ Lib/test/test_gc.py (working copy)
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -1,7 +1,7 @@
|
||||
import unittest
|
||||
from test.support import (verbose, refcount_test, run_unittest,
|
||||
- strip_python_stderr, cpython_only)
|
||||
+ strip_python_stderr, cpython_only, import_module)
|
||||
from test.script_helper import assert_python_ok, make_script, temp_dir
|
||||
|
||||
strip_python_stderr, cpython_only, start_threads,
|
||||
- temp_dir)
|
||||
+ temp_dir, import_module)
|
||||
from test.support.script_helper import assert_python_ok, make_script
|
||||
|
||||
import sys
|
||||
@@ -512,6 +512,48 @@
|
||||
self.assertEqual(len(gc.garbage), 0)
|
||||
@ -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 2014-12-10 12:51:08.594266653 +0100
|
||||
@@ -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 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
|
||||
index 24a4156..d2c7991 100644
|
||||
--- a/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
|
||||
shown in the recipe [#]_.
|
||||
|
||||
@ -27,11 +15,12 @@ diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst
|
||||
Sockets and Layers
|
||||
==================
|
||||
diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst
|
||||
index 6c1bfb8..1291aeb 100644
|
||||
--- a/Doc/library/urllib.request.rst
|
||||
+++ b/Doc/library/urllib.request.rst
|
||||
@@ -166,6 +166,16 @@ The :mod:`urllib.request` module defines the following functions:
|
||||
cannot find it, looks for proxy information from Mac OSX System
|
||||
Configuration for Mac OS X and Windows Systems Registry for Windows.
|
||||
@@ -173,6 +173,16 @@ The :mod:`urllib.request` module defines the following functions:
|
||||
If both lowercase and uppercase environment variables exist (and disagree),
|
||||
lowercase is preferred.
|
||||
|
||||
+ .. note::
|
||||
+
|
||||
@ -46,25 +35,25 @@ diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst
|
||||
|
||||
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
|
||||
``cern.ch,ncsa.uiuc.edu,some.host:8080``.
|
||||
|
||||
To disable autodetected proxy pass an empty dictionary.
|
||||
|
||||
+ .. note::
|
||||
+ .. note::
|
||||
+
|
||||
+ ``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set;
|
||||
+ see the documentation on :func:`~urllib.request.getproxies`.
|
||||
+
|
||||
+
|
||||
|
||||
.. class:: HTTPPasswordMgr()
|
||||
|
||||
diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
|
||||
index 5d05f8d..c26c52a 100644
|
||||
--- a/Lib/test/test_urllib.py
|
||||
+++ b/Lib/test/test_urllib.py
|
||||
@@ -225,6 +225,18 @@ class ProxyTests(unittest.TestCase):
|
||||
self.env.set('NO_PROXY', 'localhost, anotherdomain.com, newdomain.com')
|
||||
self.assertTrue(urllib.request.proxy_bypass_environment('anotherdomain.com'))
|
||||
@@ -232,6 +232,18 @@ class ProxyTests(unittest.TestCase):
|
||||
self.assertTrue(urllib.request.proxy_bypass_environment('anotherdomain.com:8888'))
|
||||
self.assertTrue(urllib.request.proxy_bypass_environment('newdomain.com:1234'))
|
||||
|
||||
+ def test_proxy_cgi_ignore(self):
|
||||
+ 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('HTTP_PROXY')
|
||||
+
|
||||
class urlopen_HttpTests(unittest.TestCase, FakeHTTPMixin, FakeFTPMixin):
|
||||
"""Test urlopen() opening a fake http connection."""
|
||||
|
||||
def test_proxy_bypass_environment_host_match(self):
|
||||
bypass = urllib.request.proxy_bypass_environment
|
||||
self.env.set('NO_PROXY',
|
||||
diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
|
||||
index 1731fe3..3be327d 100644
|
||||
--- a/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()
|
||||
if value and name[-6:] == '_proxy':
|
||||
proxies[name[:-6]] = value
|
||||
@ -93,8 +83,7 @@ diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
|
||||
+ # header from the client
|
||||
+ # If "proxy" is lowercase, it will still be used thanks to the next block
|
||||
+ if 'REQUEST_METHOD' in os.environ:
|
||||
+ proxies.pop('http', None)
|
||||
return proxies
|
||||
|
||||
def proxy_bypass_environment(host):
|
||||
|
||||
+ proxies.pop('http', None)
|
||||
for name, value in os.environ.items():
|
||||
if name[-6:] == '_proxy':
|
||||
name = name.lower()
|
||||
|
42
00243-fix-mips64-triplet.patch
Normal file
42
00243-fix-mips64-triplet.patch
Normal file
@ -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 = '''
|
212
python3.spec
212
python3.spec
@ -71,7 +71,7 @@
|
||||
%global with_systemtap 1
|
||||
|
||||
# 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
|
||||
%else
|
||||
%global with_valgrind 0
|
||||
@ -87,7 +87,7 @@
|
||||
|
||||
# We want to byte-compile the .py files within the packages using the new
|
||||
# python3 binary.
|
||||
#
|
||||
#
|
||||
# Unfortunately, rpmbuild's infrastructure requires us to jump through some
|
||||
# hoops to avoid byte-compiling with the system python 2 version:
|
||||
# /usr/lib/rpm/redhat/macros sets up build policy that (amongst other things)
|
||||
@ -100,7 +100,7 @@
|
||||
%{!?__debug_package:/usr/lib/rpm/brp-strip %{__strip}} \
|
||||
/usr/lib/rpm/brp-strip-static-archive %{__strip} \
|
||||
/usr/lib/rpm/brp-strip-comment-note %{__strip} %{__objdump} \
|
||||
/usr/lib/rpm/brp-python-hardlink
|
||||
/usr/lib/rpm/brp-python-hardlink
|
||||
# to remove the invocation of brp-python-bytecompile, whilst keeping the
|
||||
# invocation of brp-python-hardlink (since this should still work for python3
|
||||
# pyc/pyo files)
|
||||
@ -111,8 +111,8 @@
|
||||
# ==================
|
||||
Summary: Version 3 of the Python programming language aka Python 3000
|
||||
Name: python3
|
||||
Version: %{pybasever}.1
|
||||
Release: 17%{?dist}
|
||||
Version: %{pybasever}.2
|
||||
Release: 3%{?dist}
|
||||
License: Python
|
||||
Group: Development/Languages
|
||||
|
||||
@ -232,13 +232,6 @@ Patch104: 00104-lib64-fix-for-test_install.patch
|
||||
# Downstream only: not appropriate for upstream
|
||||
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 #
|
||||
# Add non-standard hooks to unittest for use in the "check" phase below, when
|
||||
# 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:
|
||||
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 #
|
||||
# Fix the --with-tsc option on ppc64, and rework it on 32-bit ppc to avoid
|
||||
# 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.
|
||||
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 #
|
||||
# Avoid allocating thunks in ctypes unless absolutely necessary, to avoid
|
||||
# generating SELinux denials on "import ctypes" and "import uuid" when
|
||||
@ -342,43 +320,23 @@ Patch160: 00160-disable-test_fs_holes-in-rpm-build.patch
|
||||
# Not yet sent upstream
|
||||
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 #
|
||||
# In debug builds, try to print repr() when a C-level assert fails in the
|
||||
# garbage collector (typically indicating a reference-counting error
|
||||
# somewhere else e.g in an extension module)
|
||||
# Backported to 2.7 from a patch I sent upstream for py3k
|
||||
# http://bugs.python.org/issue9263 (rhbz#614680)
|
||||
# hiding the proposed new macros/functions within gcmodule.c to avoid exposing
|
||||
# them within the extension API.
|
||||
# 00170 #
|
||||
# In debug builds, try to print repr() when a C-level assert fails in the
|
||||
# garbage collector (typically indicating a reference-counting error
|
||||
# somewhere else e.g in an extension module)
|
||||
# Backported to 2.7 from a patch I sent upstream for py3k
|
||||
# http://bugs.python.org/issue9263 (rhbz#614680)
|
||||
# hiding the proposed new macros/functions within gcmodule.c to avoid exposing
|
||||
# them within the extension API.
|
||||
# (rhbz#850013
|
||||
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 #
|
||||
# Don't duplicate various FLAGS in sysconfig values
|
||||
# http://bugs.python.org/issue17679
|
||||
# Does not affect python2 AFAICS (different sysconfig values initialization)
|
||||
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 #
|
||||
# Enable building on ppc64p7
|
||||
# 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
|
||||
%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 #
|
||||
# LIBPL variable in makefile takes LIBPL from configure.ac
|
||||
# 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
|
||||
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 #
|
||||
# Fix test breakage with version 2.2.0 of Expat
|
||||
# rhbz#1353918: https://bugzilla.redhat.com/show_bug.cgi?id=1353918
|
||||
# FIXED UPSTREAM: http://bugs.python.org/issue27369
|
||||
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 #
|
||||
# HTTPoxy attack (CVE-2016-1000110)
|
||||
# https://httpoxy.org/
|
||||
@ -501,14 +406,12 @@ Patch241: 00241-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch
|
||||
# Resolves: rhbz#1359177
|
||||
Patch242: 00242-CVE-2016-1000110-httpoxy.patch
|
||||
|
||||
# 00246 #
|
||||
# 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.
|
||||
# Note: After rhbz#1377240 is resolved, the patch for the configure file
|
||||
# can be omitted.
|
||||
# Resolves: rhbz#1350123
|
||||
Patch246: 00246-Updated-the-buildtime-check-for-the-getrandom-syscal.patch
|
||||
|
||||
# 00243 #
|
||||
# Fix the triplet used on 64-bit MIPS
|
||||
# rhbz#1322526: https://bugzilla.redhat.com/show_bug.cgi?id=1322526
|
||||
# Upstream uses Debian-like style mips64-linux-gnuabi64
|
||||
# Fedora needs the default mips64-linux-gnu
|
||||
Patch243: 00243-fix-mips64-triplet.patch
|
||||
|
||||
# (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
|
||||
|
||||
|
||||
# This is the generated patch to "configure"; see the description of
|
||||
# %{regenerate_autotooling_patch}
|
||||
# above:
|
||||
|
||||
# add correct arch for ppc64/ppc64le
|
||||
# it should be ppc64le-linux-gnu/ppc64-linux-gnu instead powerpc64le-linux-gnu/powerpc64-linux-gnu
|
||||
Patch5001: python3-powerppc-arch.patch
|
||||
@ -715,7 +614,7 @@ for f in md5module.c sha1module.c sha256module.c sha512module.c; do
|
||||
done
|
||||
|
||||
%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
|
||||
%endif
|
||||
|
||||
@ -733,32 +632,18 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
|
||||
%patch104 -p1
|
||||
%endif
|
||||
%patch111 -p1
|
||||
%ifarch ppc %{power64}
|
||||
%patch131 -p1
|
||||
%endif
|
||||
%patch132 -p1
|
||||
%patch137 -p1
|
||||
%ifarch %{arm}
|
||||
%patch139 -p1
|
||||
%patch140 -p1
|
||||
%endif
|
||||
%patch143 -p1 -b .tsc-on-ppc
|
||||
%patch146 -p1
|
||||
%ifarch ppc %{power64}
|
||||
%patch150 -p1
|
||||
%endif
|
||||
%patch155 -p1
|
||||
%patch157 -p1
|
||||
%patch160 -p1
|
||||
%patch163 -p1
|
||||
%ifarch ppc %{power64}
|
||||
%patch164 -p1
|
||||
%endif
|
||||
%patch173 -p1
|
||||
%patch170 -p0
|
||||
%patch178 -p1
|
||||
%patch179 -p1
|
||||
%patch180 -p1
|
||||
%patch184 -p1
|
||||
%patch184 -p1
|
||||
%patch186 -p1
|
||||
%patch188 -p1
|
||||
|
||||
@ -766,18 +651,11 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
|
||||
%patch189 -p1
|
||||
%endif
|
||||
|
||||
%patch194 -p1
|
||||
%patch196 -p1
|
||||
%patch203 -p1
|
||||
%patch205 -p1
|
||||
%patch206 -p1
|
||||
%patch207 -p1
|
||||
%patch208 -p1
|
||||
%patch209 -p1
|
||||
%patch237 -p1
|
||||
%patch241 -p1
|
||||
%patch242 -p1
|
||||
%patch246 -p1
|
||||
%patch243 -p1
|
||||
|
||||
# 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.
|
||||
@ -809,7 +687,7 @@ export LDFLAGS="$RPM_LD_FLAGS `pkg-config --libs-only-L openssl`"
|
||||
# Define a function, for how to perform a "build" of python for a given
|
||||
# configuration:
|
||||
BuildPython() {
|
||||
ConfName=$1
|
||||
ConfName=$1
|
||||
BinaryName=$2
|
||||
SymlinkName=$3
|
||||
ExtraConfigArgs=$4
|
||||
@ -890,7 +768,7 @@ mkdir -p %{buildroot}%{_prefix} %{buildroot}%{_mandir}
|
||||
|
||||
InstallPython() {
|
||||
|
||||
ConfName=$1
|
||||
ConfName=$1
|
||||
PyInstSoName=$2
|
||||
MoreCFlags=$3
|
||||
|
||||
@ -982,7 +860,7 @@ install -d -m 0755 %{buildroot}/%{_prefix}/lib/python%{pybasever}/site-packages/
|
||||
%global _pyconfig32_h pyconfig-32.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}
|
||||
%else
|
||||
%global _pyconfig_h %{_pyconfig32_h}
|
||||
@ -1075,7 +953,7 @@ find %{buildroot}/ -name \*.py -exec sed -i 's/\r//' {} \;
|
||||
# Fix an encoding:
|
||||
iconv -f iso8859-1 -t utf-8 %{buildroot}/%{pylibdir}/Demo/rpc/README > README.conv && mv -f README.conv %{buildroot}/%{pylibdir}/Demo/rpc/README
|
||||
|
||||
# Note that
|
||||
# Note that
|
||||
# %{pylibdir}/Demo/distutils/test2to3/setup.py
|
||||
# is in iso-8859-1 encoding, and that this is deliberate; this is test data
|
||||
# for the 2to3 tool, and one of the functions of the 2to3 tool is to fixup
|
||||
@ -1111,7 +989,7 @@ for Module in %{buildroot}/%{dynload_dir}/*.so ; do
|
||||
*.%{SOABI_debug})
|
||||
ldd $Module | grep %{py_INSTSONAME_optimized} &&
|
||||
(echo Debug module $Module linked against optimized %{py_INSTSONAME_optimized} ; exit 1)
|
||||
|
||||
|
||||
;;
|
||||
*.%{SOABI_optimized})
|
||||
ldd $Module | grep %{py_INSTSONAME_debug} &&
|
||||
@ -1136,7 +1014,7 @@ ln -s \
|
||||
# Install a tapset for this libpython into tapsetdir, fixing up the path to the
|
||||
# library:
|
||||
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_debug libpython%{pybasever}-debug-64.stp
|
||||
%else
|
||||
@ -1194,7 +1072,7 @@ find %{buildroot} -type f -a -name "*.py" -print0 | \
|
||||
|
||||
topdir=$(pwd)
|
||||
CheckPython() {
|
||||
ConfName=$1
|
||||
ConfName=$1
|
||||
ConfDir=$(pwd)/build/$ConfName
|
||||
|
||||
echo STARTING: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
|
||||
@ -1215,7 +1093,10 @@ CheckPython() {
|
||||
%ifarch ppc64le aarch64
|
||||
-x test_faulthandler \
|
||||
%endif
|
||||
%ifarch %{power64} s390 s390x armv7hl aarch64
|
||||
%ifarch %{mips64}
|
||||
-x test_ctypes \
|
||||
%endif
|
||||
%ifarch %{power64} s390 s390x armv7hl aarch64 %{mips}
|
||||
-x test_gdb
|
||||
%endif
|
||||
|
||||
@ -1657,15 +1538,15 @@ rm -fr %{buildroot}
|
||||
|
||||
# We put the debug-gdb.py file inside /usr/lib/debug to avoid noise from
|
||||
# ldconfig (rhbz:562980).
|
||||
#
|
||||
#
|
||||
# The /usr/lib/rpm/redhat/macros defines %__debug_package to use
|
||||
# debugfiles.list, and it appears that everything below /usr/lib/debug and
|
||||
# (/usr/src/debug) gets added to this file (via LISTFILES) in
|
||||
# /usr/lib/rpm/find-debuginfo.sh
|
||||
#
|
||||
#
|
||||
# Hence by installing it below /usr/lib/debug we ensure it is added to the
|
||||
# -debuginfo subpackage
|
||||
# (if it doesn't, then the rpmbuild ought to fail since the debug-gdb.py
|
||||
# (if it doesn't, then the rpmbuild ought to fail since the debug-gdb.py
|
||||
# payload file would be unpackaged)
|
||||
|
||||
|
||||
@ -1674,6 +1555,23 @@ rm -fr %{buildroot}
|
||||
# ======================================================
|
||||
|
||||
%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
|
||||
- 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
|
||||
@ -2125,7 +2023,7 @@ ppc to avoid aliasing violations (patch 130; rhbz#698726)
|
||||
- add %%python3_version to the rpm macros (rhbz#719082)
|
||||
|
||||
* Mon Jul 11 2011 Dennis Gilmore <dennis@ausil.us> - 3.2.1-2
|
||||
- disable some tests on sparc arches
|
||||
- disable some tests on sparc arches
|
||||
|
||||
* Mon Jul 11 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.1-1
|
||||
- 3.2.1; refresh lib64 patch (102), subprocess unit test patch (129), disabling
|
||||
|
Loading…
Reference in New Issue
Block a user