Update to Python 3.4 beta 1.
- Refreshed patches: 102 (lib64), 111 (no static lib), 125 (less verbose COUNT ALLOCS), 141 (fix COUNT_ALLOCS in test_module), 146 (hashlib fips), 157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port) - Removed patch 00187 (remove pthread atfork; upstreamed)
This commit is contained in:
parent
b282179093
commit
bf35167937
@ -1,6 +1,5 @@
|
|||||||
diff -up cpython-59223da36dec/Lib/distutils/command/install.py.lib64 cpython-59223da36dec/Lib/distutils/command/install.py
|
--- Python-3.4.0b1/Lib/distutils/command/install.py.lib64 2013-11-24 21:36:54.000000000 +0100
|
||||||
--- cpython-59223da36dec/Lib/distutils/command/install.py.lib64 2012-08-07 06:10:57.000000000 -0400
|
+++ Python-3.4.0b1/Lib/distutils/command/install.py 2013-11-27 11:10:43.821150774 +0100
|
||||||
+++ cpython-59223da36dec/Lib/distutils/command/install.py 2012-08-07 16:41:00.573477549 -0400
|
|
||||||
@@ -45,14 +45,14 @@ else:
|
@@ -45,14 +45,14 @@ else:
|
||||||
INSTALL_SCHEMES = {
|
INSTALL_SCHEMES = {
|
||||||
'unix_prefix': {
|
'unix_prefix': {
|
||||||
@ -18,10 +17,9 @@ diff -up cpython-59223da36dec/Lib/distutils/command/install.py.lib64 cpython-592
|
|||||||
'headers': '$base/include/python/$dist_name',
|
'headers': '$base/include/python/$dist_name',
|
||||||
'scripts': '$base/bin',
|
'scripts': '$base/bin',
|
||||||
'data' : '$base',
|
'data' : '$base',
|
||||||
diff -up cpython-59223da36dec/Lib/distutils/sysconfig.py.lib64 cpython-59223da36dec/Lib/distutils/sysconfig.py
|
--- Python-3.4.0b1/Lib/distutils/sysconfig.py.lib64 2013-11-24 21:36:54.000000000 +0100
|
||||||
--- cpython-59223da36dec/Lib/distutils/sysconfig.py.lib64 2012-08-07 06:10:57.000000000 -0400
|
+++ Python-3.4.0b1/Lib/distutils/sysconfig.py 2013-11-27 11:10:43.821150774 +0100
|
||||||
+++ cpython-59223da36dec/Lib/distutils/sysconfig.py 2012-08-07 16:41:00.573477549 -0400
|
@@ -141,8 +141,12 @@
|
||||||
@@ -139,8 +139,12 @@ def get_python_lib(plat_specific=0, stan
|
|
||||||
prefix = plat_specific and EXEC_PREFIX or PREFIX
|
prefix = plat_specific and EXEC_PREFIX or PREFIX
|
||||||
|
|
||||||
if os.name == "posix":
|
if os.name == "posix":
|
||||||
@ -35,10 +33,9 @@ diff -up cpython-59223da36dec/Lib/distutils/sysconfig.py.lib64 cpython-59223da36
|
|||||||
if standard_lib:
|
if standard_lib:
|
||||||
return libpython
|
return libpython
|
||||||
else:
|
else:
|
||||||
diff -up cpython-59223da36dec/Lib/site.py.lib64 cpython-59223da36dec/Lib/site.py
|
--- Python-3.4.0b1/Lib/site.py.lib64 2013-11-24 21:36:54.000000000 +0100
|
||||||
--- cpython-59223da36dec/Lib/site.py.lib64 2012-08-07 06:10:57.000000000 -0400
|
+++ Python-3.4.0b1/Lib/site.py 2013-11-27 11:10:43.822150773 +0100
|
||||||
+++ cpython-59223da36dec/Lib/site.py 2012-08-07 16:41:00.573477549 -0400
|
@@ -304,12 +304,16 @@
|
||||||
@@ -303,12 +303,16 @@ def getsitepackages(prefixes=None):
|
|
||||||
seen.add(prefix)
|
seen.add(prefix)
|
||||||
|
|
||||||
if os.sep == '/':
|
if os.sep == '/':
|
||||||
@ -55,10 +52,9 @@ diff -up cpython-59223da36dec/Lib/site.py.lib64 cpython-59223da36dec/Lib/site.py
|
|||||||
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
|
||||||
diff -up cpython-59223da36dec/Lib/sysconfig.py.lib64 cpython-59223da36dec/Lib/sysconfig.py
|
--- Python-3.4.0b1/Lib/sysconfig.py.lib64 2013-11-24 21:36:54.000000000 +0100
|
||||||
--- cpython-59223da36dec/Lib/sysconfig.py.lib64 2012-08-07 06:10:57.000000000 -0400
|
+++ Python-3.4.0b1/Lib/sysconfig.py 2013-11-27 11:10:43.822150773 +0100
|
||||||
+++ cpython-59223da36dec/Lib/sysconfig.py 2012-08-07 16:41:00.574477549 -0400
|
@@ -20,10 +20,10 @@
|
||||||
@@ -21,10 +21,10 @@ __all__ = [
|
|
||||||
|
|
||||||
_INSTALL_SCHEMES = {
|
_INSTALL_SCHEMES = {
|
||||||
'posix_prefix': {
|
'posix_prefix': {
|
||||||
@ -72,7 +68,7 @@ diff -up cpython-59223da36dec/Lib/sysconfig.py.lib64 cpython-59223da36dec/Lib/sy
|
|||||||
'include':
|
'include':
|
||||||
'{installed_base}/include/python{py_version_short}{abiflags}',
|
'{installed_base}/include/python{py_version_short}{abiflags}',
|
||||||
'platinclude':
|
'platinclude':
|
||||||
@@ -81,10 +81,10 @@ _INSTALL_SCHEMES = {
|
@@ -61,10 +61,10 @@
|
||||||
'data': '{userbase}',
|
'data': '{userbase}',
|
||||||
},
|
},
|
||||||
'posix_user': {
|
'posix_user': {
|
||||||
@ -86,10 +82,9 @@ diff -up cpython-59223da36dec/Lib/sysconfig.py.lib64 cpython-59223da36dec/Lib/sy
|
|||||||
'include': '{userbase}/include/python{py_version_short}',
|
'include': '{userbase}/include/python{py_version_short}',
|
||||||
'scripts': '{userbase}/bin',
|
'scripts': '{userbase}/bin',
|
||||||
'data': '{userbase}',
|
'data': '{userbase}',
|
||||||
diff -up cpython-59223da36dec/Lib/test/test_site.py.lib64 cpython-59223da36dec/Lib/test/test_site.py
|
--- Python-3.4.0b1/Lib/test/test_site.py.lib64 2013-11-24 21:36:55.000000000 +0100
|
||||||
--- cpython-59223da36dec/Lib/test/test_site.py.lib64 2012-08-07 06:10:57.000000000 -0400
|
+++ Python-3.4.0b1/Lib/test/test_site.py 2013-11-27 11:10:43.822150773 +0100
|
||||||
+++ cpython-59223da36dec/Lib/test/test_site.py 2012-08-07 16:41:00.574477549 -0400
|
@@ -244,12 +244,15 @@
|
||||||
@@ -239,12 +239,15 @@ class HelperFunctionsTests(unittest.Test
|
|
||||||
self.assertEqual(dirs[2], wanted)
|
self.assertEqual(dirs[2], wanted)
|
||||||
elif os.sep == '/':
|
elif os.sep == '/':
|
||||||
# OS X non-framwework builds, Linux, FreeBSD, etc
|
# OS X non-framwework builds, Linux, FreeBSD, etc
|
||||||
@ -108,10 +103,9 @@ diff -up cpython-59223da36dec/Lib/test/test_site.py.lib64 cpython-59223da36dec/L
|
|||||||
else:
|
else:
|
||||||
# other platforms
|
# other platforms
|
||||||
self.assertEqual(len(dirs), 2)
|
self.assertEqual(len(dirs), 2)
|
||||||
diff -up cpython-59223da36dec/Makefile.pre.in.lib64 cpython-59223da36dec/Makefile.pre.in
|
--- Python-3.4.0b1/Makefile.pre.in.lib64 2013-11-27 11:10:43.814150786 +0100
|
||||||
--- cpython-59223da36dec/Makefile.pre.in.lib64 2012-08-07 16:41:00.557477550 -0400
|
+++ Python-3.4.0b1/Makefile.pre.in 2013-11-27 11:10:43.823150771 +0100
|
||||||
+++ cpython-59223da36dec/Makefile.pre.in 2012-08-07 16:41:00.575477549 -0400
|
@@ -115,7 +115,7 @@
|
||||||
@@ -108,7 +108,7 @@ LIBDIR= @libdir@
|
|
||||||
MANDIR= @mandir@
|
MANDIR= @mandir@
|
||||||
INCLUDEDIR= @includedir@
|
INCLUDEDIR= @includedir@
|
||||||
CONFINCLUDEDIR= $(exec_prefix)/include
|
CONFINCLUDEDIR= $(exec_prefix)/include
|
||||||
@ -120,9 +114,8 @@ diff -up cpython-59223da36dec/Makefile.pre.in.lib64 cpython-59223da36dec/Makefil
|
|||||||
ABIFLAGS= @ABIFLAGS@
|
ABIFLAGS= @ABIFLAGS@
|
||||||
|
|
||||||
# Detailed destination directories
|
# Detailed destination directories
|
||||||
diff -up cpython-59223da36dec/Modules/getpath.c.lib64 cpython-59223da36dec/Modules/getpath.c
|
--- Python-3.4.0b1/Modules/getpath.c.lib64 2013-11-24 21:36:56.000000000 +0100
|
||||||
--- cpython-59223da36dec/Modules/getpath.c.lib64 2012-08-07 06:10:57.000000000 -0400
|
+++ Python-3.4.0b1/Modules/getpath.c 2013-11-27 11:17:33.619449704 +0100
|
||||||
+++ cpython-59223da36dec/Modules/getpath.c 2012-08-07 16:41:00.575477549 -0400
|
|
||||||
@@ -122,8 +122,8 @@
|
@@ -122,8 +122,8 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -134,16 +127,16 @@ diff -up cpython-59223da36dec/Modules/getpath.c.lib64 cpython-59223da36dec/Modul
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef LANDMARK
|
#ifndef LANDMARK
|
||||||
@@ -135,7 +135,7 @@ static wchar_t exec_prefix[MAXPATHLEN+1]
|
@@ -498,7 +498,7 @@
|
||||||
static wchar_t progpath[MAXPATHLEN+1];
|
_pythonpath = _Py_char2wchar(PYTHONPATH, NULL);
|
||||||
static wchar_t *module_search_path = NULL;
|
_prefix = _Py_char2wchar(PREFIX, NULL);
|
||||||
static int module_search_path_malloced = 0;
|
_exec_prefix = _Py_char2wchar(EXEC_PREFIX, NULL);
|
||||||
-static wchar_t *lib_python = L"lib/python" VERSION;
|
- lib_python = _Py_char2wchar("lib/python" VERSION, NULL);
|
||||||
+static wchar_t *lib_python = L"lib64/python" VERSION;
|
+ lib_python = _Py_char2wchar("lib/python64" VERSION, NULL);
|
||||||
|
|
||||||
static void
|
if (!_pythonpath || !_prefix || !_exec_prefix || !lib_python) {
|
||||||
reduce(wchar_t *dir)
|
Py_FatalError(
|
||||||
@@ -677,7 +677,7 @@ calculate_path(void)
|
@@ -687,7 +687,7 @@
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
wcsncpy(zip_path, _prefix, MAXPATHLEN);
|
wcsncpy(zip_path, _prefix, MAXPATHLEN);
|
||||||
@ -152,7 +145,7 @@ diff -up cpython-59223da36dec/Modules/getpath.c.lib64 cpython-59223da36dec/Modul
|
|||||||
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];
|
||||||
@@ -687,7 +687,7 @@ calculate_path(void)
|
@@ -699,7 +699,7 @@
|
||||||
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);
|
||||||
@ -161,10 +154,9 @@ diff -up cpython-59223da36dec/Modules/getpath.c.lib64 cpython-59223da36dec/Modul
|
|||||||
}
|
}
|
||||||
/* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */
|
/* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */
|
||||||
|
|
||||||
diff -up cpython-59223da36dec/setup.py.lib64 cpython-59223da36dec/setup.py
|
--- Python-3.4.0b1/setup.py.lib64 2013-11-24 21:36:56.000000000 +0100
|
||||||
--- cpython-59223da36dec/setup.py.lib64 2012-08-07 06:10:57.000000000 -0400
|
+++ Python-3.4.0b1/setup.py 2013-11-27 11:10:43.824150769 +0100
|
||||||
+++ cpython-59223da36dec/setup.py 2012-08-07 16:41:32.153475390 -0400
|
@@ -441,7 +441,7 @@
|
||||||
@@ -438,7 +438,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:
|
||||||
@ -173,7 +165,7 @@ diff -up cpython-59223da36dec/setup.py.lib64 cpython-59223da36dec/setup.py
|
|||||||
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:
|
||||||
@@ -708,11 +708,11 @@ class PyBuildExt(build_ext):
|
@@ -718,11 +718,11 @@
|
||||||
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 +
|
||||||
@ -187,7 +179,7 @@ diff -up cpython-59223da36dec/setup.py.lib64 cpython-59223da36dec/setup.py
|
|||||||
extra_link_args=readline_extra_link_args,
|
extra_link_args=readline_extra_link_args,
|
||||||
libraries=readline_libs) )
|
libraries=readline_libs) )
|
||||||
else:
|
else:
|
||||||
@@ -749,8 +749,8 @@ class PyBuildExt(build_ext):
|
@@ -759,8 +759,8 @@
|
||||||
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,
|
@ -2,7 +2,7 @@ diff -up cpython-59223da36dec/Makefile.pre.in.no-static-lib cpython-59223da36dec
|
|||||||
--- cpython-59223da36dec/Makefile.pre.in.no-static-lib 2012-08-07 16:43:43.296466422 -0400
|
--- cpython-59223da36dec/Makefile.pre.in.no-static-lib 2012-08-07 16:43:43.296466422 -0400
|
||||||
+++ cpython-59223da36dec/Makefile.pre.in 2012-08-07 16:44:13.299464371 -0400
|
+++ cpython-59223da36dec/Makefile.pre.in 2012-08-07 16:44:13.299464371 -0400
|
||||||
@@ -464,7 +464,7 @@ coverage:
|
@@ -464,7 +464,7 @@ coverage:
|
||||||
$(MAKE) coverage-lcov
|
$(RUNSHARED) $(PYTHON_FOR_BUILD) ./Tools/clinic/clinic.py --make
|
||||||
|
|
||||||
# Build the interpreter
|
# Build the interpreter
|
||||||
-$(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
|
-$(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
|
||||||
|
@ -16,5 +16,5 @@ diff -up Python-2.7/Python/pythonrun.c.less-verbose-COUNT_ALLOCS Python-2.7/Pyth
|
|||||||
+ if (Py_GETENV("PYTHONDUMPCOUNTS"))
|
+ if (Py_GETENV("PYTHONDUMPCOUNTS"))
|
||||||
+ dump_counts(stdout);
|
+ dump_counts(stdout);
|
||||||
#endif
|
#endif
|
||||||
|
/* dump hash stats */
|
||||||
PRINT_TOTAL_REFS();
|
_PyHash_Fini();
|
||||||
|
@ -60,8 +60,8 @@ diff -r e245b0d7209b Lib/test/test_module.py
|
|||||||
m = ModuleType("foo")
|
m = ModuleType("foo")
|
||||||
wr = weakref.ref(m)
|
wr = weakref.ref(m)
|
||||||
@@ -190,6 +194,8 @@
|
@@ -190,6 +194,8 @@
|
||||||
self.assertEqual(r[:25], "<module 'unittest' from '")
|
self.assertEqual(r[-len(ends_with):], ends_with,
|
||||||
self.assertEqual(r[-13:], "__init__.py'>")
|
'{!r} does not end with {!r}'.format(r, ends_with))
|
||||||
|
|
||||||
+ @unittest.skipIf(hasattr(sys, 'getcounts'),
|
+ @unittest.skipIf(hasattr(sys, 'getcounts'),
|
||||||
+ 'skipping since COUNT_ALLOCS was used, see issue19527')
|
+ 'skipping since COUNT_ALLOCS was used, see issue19527')
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
--- Python-3.4.0a4/Lib/hashlib.py.hashlib-fips 2013-11-07 13:29:43.046881440 +0100
|
--- Python-3.4.0b1/Lib/hashlib.py.hashlib-fips 2013-11-24 21:36:54.000000000 +0100
|
||||||
+++ Python-3.4.0a4/Lib/hashlib.py 2013-11-07 13:42:04.438486289 +0100
|
+++ Python-3.4.0b1/Lib/hashlib.py 2013-11-27 11:45:17.073617547 +0100
|
||||||
@@ -23,6 +23,16 @@
|
@@ -23,6 +23,16 @@
|
||||||
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,27 +17,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
|
||||||
@@ -64,6 +74,19 @@
|
@@ -108,34 +118,41 @@
|
||||||
'algorithms_available', 'pbkdf2_hmac')
|
|
||||||
|
|
||||||
|
|
||||||
+import functools
|
|
||||||
+def __ignore_usedforsecurity(func):
|
|
||||||
+ """Used for sha3_* functions. Until OpenSSL implements them, we want
|
|
||||||
+ to use them from Python _sha3 module, but we want them to accept
|
|
||||||
+ usedforsecurity argument too."""
|
|
||||||
+ # TODO: remove this function when OpenSSL implements sha3
|
|
||||||
+ @functools.wraps(func)
|
|
||||||
+ def inner(*args, **kwargs):
|
|
||||||
+ if 'usedforsecurity' in kwargs:
|
|
||||||
+ kwargs.pop('usedforsecurity')
|
|
||||||
+ return func(*args, **kwargs)
|
|
||||||
+ return inner
|
|
||||||
+
|
|
||||||
def __get_builtin_constructor(name):
|
|
||||||
try:
|
|
||||||
if name in ('SHA1', 'sha1'):
|
|
||||||
@@ -109,34 +132,41 @@
|
|
||||||
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.
|
||||||
@ -92,7 +72,7 @@
|
|||||||
try:
|
try:
|
||||||
import _hashlib
|
import _hashlib
|
||||||
new = __hash_new
|
new = __hash_new
|
||||||
@@ -216,7 +246,10 @@
|
@@ -215,7 +232,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,13 +84,13 @@
|
|||||||
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)
|
||||||
@@ -224,3 +257,4 @@
|
@@ -223,3 +243,4 @@
|
||||||
# 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.0a4/Lib/test/test_hashlib.py.hashlib-fips 2013-11-07 13:43:08.763454594 +0100
|
--- Python-3.4.0b1/Lib/test/test_hashlib.py.hashlib-fips 2013-11-24 21:36:55.000000000 +0100
|
||||||
+++ Python-3.4.0a4/Lib/test/test_hashlib.py 2013-11-07 13:55:23.233038101 +0100
|
+++ Python-3.4.0b1/Lib/test/test_hashlib.py 2013-11-27 11:55:42.769601363 +0100
|
||||||
@@ -26,6 +26,20 @@
|
@@ -26,6 +26,20 @@
|
||||||
c_hashlib = import_fresh_module('hashlib', fresh=['_hashlib'])
|
c_hashlib = import_fresh_module('hashlib', fresh=['_hashlib'])
|
||||||
py_hashlib = import_fresh_module('hashlib', blocked=['_hashlib'])
|
py_hashlib = import_fresh_module('hashlib', blocked=['_hashlib'])
|
||||||
@ -164,32 +144,37 @@
|
|||||||
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,22 +106,9 @@
|
@@ -82,27 +106,13 @@
|
||||||
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:
|
||||||
- constructors.add(constructor)
|
- constructors.add(constructor)
|
||||||
+ constructors.add(suppress_fips(constructor))
|
+ constructors.add(suppress_fips(constructor))
|
||||||
|
|
||||||
|
def add_builtin_constructor(name):
|
||||||
|
constructor = getattr(hashlib, "__get_builtin_constructor")(name)
|
||||||
|
self.constructors_to_test[name].add(constructor)
|
||||||
|
|
||||||
- _md5 = self._conditional_import_module('_md5')
|
- _md5 = self._conditional_import_module('_md5')
|
||||||
- if _md5:
|
- if _md5:
|
||||||
- self.constructors_to_test['md5'].add(_md5.md5)
|
- add_builtin_constructor('md5')
|
||||||
- _sha1 = self._conditional_import_module('_sha1')
|
- _sha1 = self._conditional_import_module('_sha1')
|
||||||
- if _sha1:
|
- if _sha1:
|
||||||
- self.constructors_to_test['sha1'].add(_sha1.sha1)
|
- add_builtin_constructor('sha1')
|
||||||
- _sha256 = self._conditional_import_module('_sha256')
|
- _sha256 = self._conditional_import_module('_sha256')
|
||||||
- if _sha256:
|
- if _sha256:
|
||||||
- self.constructors_to_test['sha224'].add(_sha256.sha224)
|
- add_builtin_constructor('sha224')
|
||||||
- self.constructors_to_test['sha256'].add(_sha256.sha256)
|
- add_builtin_constructor('sha256')
|
||||||
- _sha512 = self._conditional_import_module('_sha512')
|
- _sha512 = self._conditional_import_module('_sha512')
|
||||||
- if _sha512:
|
- if _sha512:
|
||||||
- self.constructors_to_test['sha384'].add(_sha512.sha384)
|
- add_builtin_constructor('sha384')
|
||||||
- self.constructors_to_test['sha512'].add(_sha512.sha512)
|
- add_builtin_constructor('sha512')
|
||||||
|
- _sha3 = self._conditional_import_module('_sha3')
|
||||||
+ # TODO: remove this after sha3 is available through OpenSSL
|
+ # TODO: remove this after sha3 is available through OpenSSL
|
||||||
_sha3 = self._conditional_import_module('_sha3')
|
|
||||||
if _sha3:
|
if _sha3:
|
||||||
self.constructors_to_test['sha3_224'].add(_sha3.sha3_224)
|
add_builtin_constructor('sha3_224')
|
||||||
@@ -547,6 +558,65 @@
|
add_builtin_constructor('sha3_256')
|
||||||
|
@@ -558,6 +568,65 @@
|
||||||
|
|
||||||
self.assertEqual(expected_hash, hasher.hexdigest())
|
self.assertEqual(expected_hash, hasher.hexdigest())
|
||||||
|
|
||||||
@ -255,7 +240,7 @@
|
|||||||
|
|
||||||
class KDFTests(unittest.TestCase):
|
class KDFTests(unittest.TestCase):
|
||||||
|
|
||||||
@@ -628,6 +698,7 @@
|
@@ -639,6 +708,7 @@
|
||||||
with self.assertRaisesRegex(ValueError, 'unsupported hash type'):
|
with self.assertRaisesRegex(ValueError, 'unsupported hash type'):
|
||||||
pbkdf2('unknown', b'pass', b'salt', 1)
|
pbkdf2('unknown', b'pass', b'salt', 1)
|
||||||
|
|
||||||
@ -263,8 +248,8 @@
|
|||||||
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.0a4/Modules/_hashopenssl.c.hashlib-fips 2013-11-07 13:55:47.466025086 +0100
|
--- Python-3.4.0b1/Modules/_hashopenssl.c.hashlib-fips 2013-11-24 21:36:56.000000000 +0100
|
||||||
+++ Python-3.4.0a4/Modules/_hashopenssl.c 2013-11-07 14:14:32.745272791 +0100
|
+++ Python-3.4.0b1/Modules/_hashopenssl.c 2013-11-27 12:01:57.443537463 +0100
|
||||||
@@ -19,6 +19,8 @@
|
@@ -19,6 +19,8 @@
|
||||||
|
|
||||||
|
|
||||||
@ -298,7 +283,7 @@
|
|||||||
|
|
||||||
DEFINE_CONSTS_FOR_NEW(md5)
|
DEFINE_CONSTS_FOR_NEW(md5)
|
||||||
DEFINE_CONSTS_FOR_NEW(sha1)
|
DEFINE_CONSTS_FOR_NEW(sha1)
|
||||||
@@ -125,6 +135,48 @@
|
@@ -97,6 +107,48 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -347,7 +332,7 @@
|
|||||||
/* Internal methods for a hash object */
|
/* Internal methods for a hash object */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -309,15 +361,16 @@
|
@@ -281,15 +333,16 @@
|
||||||
static int
|
static int
|
||||||
EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
|
EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
|
||||||
{
|
{
|
||||||
@ -367,7 +352,7 @@
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -338,7 +391,12 @@
|
@@ -310,7 +363,12 @@
|
||||||
PyBuffer_Release(&view);
|
PyBuffer_Release(&view);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -381,7 +366,7 @@
|
|||||||
|
|
||||||
self->name = name_obj;
|
self->name = name_obj;
|
||||||
Py_INCREF(self->name);
|
Py_INCREF(self->name);
|
||||||
@@ -422,7 +480,8 @@
|
@@ -394,7 +452,8 @@
|
||||||
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,
|
||||||
@ -391,7 +376,7 @@
|
|||||||
{
|
{
|
||||||
EVPobject *self;
|
EVPobject *self;
|
||||||
|
|
||||||
@@ -437,7 +495,12 @@
|
@@ -409,7 +468,12 @@
|
||||||
if (initial_ctx) {
|
if (initial_ctx) {
|
||||||
EVP_MD_CTX_copy(&self->ctx, initial_ctx);
|
EVP_MD_CTX_copy(&self->ctx, initial_ctx);
|
||||||
} else {
|
} else {
|
||||||
@ -405,7 +390,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (cp && len) {
|
if (cp && len) {
|
||||||
@@ -461,21 +524,29 @@
|
@@ -433,21 +497,29 @@
|
||||||
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\
|
||||||
@ -439,7 +424,7 @@
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -489,7 +560,8 @@
|
@@ -461,7 +533,8 @@
|
||||||
|
|
||||||
digest = EVP_get_digestbyname(name);
|
digest = EVP_get_digestbyname(name);
|
||||||
|
|
||||||
@ -449,7 +434,7 @@
|
|||||||
|
|
||||||
if (data_obj)
|
if (data_obj)
|
||||||
PyBuffer_Release(&view);
|
PyBuffer_Release(&view);
|
||||||
@@ -744,57 +816,115 @@
|
@@ -742,57 +815,115 @@
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -602,11 +587,12 @@
|
|||||||
|
|
||||||
GEN_CONSTRUCTOR(md5)
|
GEN_CONSTRUCTOR(md5)
|
||||||
GEN_CONSTRUCTOR(sha1)
|
GEN_CONSTRUCTOR(sha1)
|
||||||
@@ -845,12 +974,10 @@
|
@@ -843,13 +974,10 @@
|
||||||
{
|
{
|
||||||
PyObject *m, *openssl_md_meth_names;
|
PyObject *m, *openssl_md_meth_names;
|
||||||
|
|
||||||
- OpenSSL_add_all_digests();
|
- OpenSSL_add_all_digests();
|
||||||
|
- ERR_load_crypto_strings();
|
||||||
+ SSL_load_error_strings();
|
+ SSL_load_error_strings();
|
||||||
+ SSL_library_init();
|
+ SSL_library_init();
|
||||||
|
|
||||||
|
@ -1,35 +1,34 @@
|
|||||||
diff -up Python-3.3.0b1/Lib/test/test_os.py.uid-gid-overflows Python-3.3.0b1/Lib/test/test_os.py
|
--- Python-3.4.0b1/Lib/test/test_os.py.orig 2013-11-27 12:07:32.368411798 +0100
|
||||||
--- Python-3.3.0b1/Lib/test/test_os.py.uid-gid-overflows 2012-06-26 16:19:48.000000000 -0400
|
+++ Python-3.4.0b1/Lib/test/test_os.py 2013-11-27 12:12:11.220265174 +0100
|
||||||
+++ Python-3.3.0b1/Lib/test/test_os.py 2012-07-20 14:21:46.856688739 -0400
|
@@ -1319,30 +1319,36 @@
|
||||||
@@ -1174,30 +1174,36 @@ if sys.platform != 'win32':
|
|
||||||
def test_setuid(self):
|
def test_setuid(self):
|
||||||
if os.getuid() != 0:
|
if os.getuid() != 0:
|
||||||
self.assertRaises(OSError, os.setuid, 0)
|
self.assertRaises(OSError, os.setuid, 0)
|
||||||
+ self.assertRaises(TypeError, os.setuid, 'not an int')
|
+ self.assertRaises(TypeError, os.setuid, 'not an int')
|
||||||
self.assertRaises(OverflowError, os.setuid, 1<<32)
|
self.assertRaises(OverflowError, os.setuid, 1<<32)
|
||||||
|
|
||||||
if hasattr(os, 'setgid'):
|
@unittest.skipUnless(hasattr(os, 'setgid'), 'test needs os.setgid()')
|
||||||
def test_setgid(self):
|
def test_setgid(self):
|
||||||
if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
|
if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
|
||||||
self.assertRaises(OSError, os.setgid, 0)
|
self.assertRaises(OSError, os.setgid, 0)
|
||||||
+ self.assertRaises(TypeError, os.setgid, 'not an int')
|
+ self.assertRaises(TypeError, os.setgid, 'not an int')
|
||||||
self.assertRaises(OverflowError, os.setgid, 1<<32)
|
self.assertRaises(OverflowError, os.setgid, 1<<32)
|
||||||
|
|
||||||
if hasattr(os, 'seteuid'):
|
@unittest.skipUnless(hasattr(os, 'seteuid'), 'test needs os.seteuid()')
|
||||||
def test_seteuid(self):
|
def test_seteuid(self):
|
||||||
if os.getuid() != 0:
|
if os.getuid() != 0:
|
||||||
self.assertRaises(OSError, os.seteuid, 0)
|
self.assertRaises(OSError, os.seteuid, 0)
|
||||||
+ self.assertRaises(TypeError, os.seteuid, 'not an int')
|
+ self.assertRaises(TypeError, os.seteuid, 'not an int')
|
||||||
self.assertRaises(OverflowError, os.seteuid, 1<<32)
|
self.assertRaises(OverflowError, os.seteuid, 1<<32)
|
||||||
|
|
||||||
if hasattr(os, 'setegid'):
|
@unittest.skipUnless(hasattr(os, 'setegid'), 'test needs os.setegid()')
|
||||||
def test_setegid(self):
|
def test_setegid(self):
|
||||||
if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
|
if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
|
||||||
self.assertRaises(OSError, os.setegid, 0)
|
self.assertRaises(OSError, os.setegid, 0)
|
||||||
+ self.assertRaises(TypeError, os.setegid, 'not an int')
|
+ self.assertRaises(TypeError, os.setegid, 'not an int')
|
||||||
self.assertRaises(OverflowError, os.setegid, 1<<32)
|
self.assertRaises(OverflowError, os.setegid, 1<<32)
|
||||||
|
|
||||||
if hasattr(os, 'setreuid'):
|
@unittest.skipUnless(hasattr(os, 'setreuid'), 'test needs os.setreuid()')
|
||||||
def test_setreuid(self):
|
def test_setreuid(self):
|
||||||
if os.getuid() != 0:
|
if os.getuid() != 0:
|
||||||
self.assertRaises(OSError, os.setreuid, 0, 0)
|
self.assertRaises(OSError, os.setreuid, 0, 0)
|
||||||
@ -38,7 +37,7 @@ diff -up Python-3.3.0b1/Lib/test/test_os.py.uid-gid-overflows Python-3.3.0b1/Lib
|
|||||||
self.assertRaises(OverflowError, os.setreuid, 1<<32, 0)
|
self.assertRaises(OverflowError, os.setreuid, 1<<32, 0)
|
||||||
self.assertRaises(OverflowError, os.setreuid, 0, 1<<32)
|
self.assertRaises(OverflowError, os.setreuid, 0, 1<<32)
|
||||||
|
|
||||||
@@ -1212,6 +1218,8 @@ if sys.platform != 'win32':
|
@@ -1358,6 +1364,8 @@
|
||||||
def test_setregid(self):
|
def test_setregid(self):
|
||||||
if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
|
if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
|
||||||
self.assertRaises(OSError, os.setregid, 0, 0)
|
self.assertRaises(OSError, os.setregid, 0, 0)
|
||||||
@ -47,10 +46,9 @@ diff -up Python-3.3.0b1/Lib/test/test_os.py.uid-gid-overflows Python-3.3.0b1/Lib
|
|||||||
self.assertRaises(OverflowError, os.setregid, 1<<32, 0)
|
self.assertRaises(OverflowError, os.setregid, 1<<32, 0)
|
||||||
self.assertRaises(OverflowError, os.setregid, 0, 1<<32)
|
self.assertRaises(OverflowError, os.setregid, 0, 1<<32)
|
||||||
|
|
||||||
diff -up Python-3.3.0b1/Lib/test/test_pwd.py.uid-gid-overflows Python-3.3.0b1/Lib/test/test_pwd.py
|
--- Python-3.4.0b1/Lib/test/test_pwd.py.orig 2013-11-24 21:36:55.000000000 +0100
|
||||||
--- Python-3.3.0b1/Lib/test/test_pwd.py.uid-gid-overflows 2012-06-26 16:19:48.000000000 -0400
|
+++ Python-3.4.0b1/Lib/test/test_pwd.py 2013-11-27 12:07:32.369411798 +0100
|
||||||
+++ Python-3.3.0b1/Lib/test/test_pwd.py 2012-07-20 14:21:46.857688726 -0400
|
@@ -89,9 +89,9 @@
|
||||||
@@ -87,9 +87,9 @@ class PwdTest(unittest.TestCase):
|
|
||||||
# In some cases, byuids isn't a complete list of all users in the
|
# In some cases, byuids isn't a complete list of all users in the
|
||||||
# system, so if we try to pick a value not in byuids (via a perturbing
|
# system, so if we try to pick a value not in byuids (via a perturbing
|
||||||
# loop, say), pwd.getpwuid() might still be able to find data for that
|
# loop, say), pwd.getpwuid() might still be able to find data for that
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
diff -up Python-3.3.0/Lib/test/support.py.rhbz913732 Python-3.3.0/Lib/test/support.py
|
--- Python-3.4.0b1/Lib/test/support/__init__.py.orig 2013-11-27 12:14:26.507216624 +0100
|
||||||
--- Python-3.4.0a4/Lib/test/support/__init__.py.rhbz913732 2013-03-04 16:25:53.885258476 -0500
|
+++ Python-3.4.0b1/Lib/test/support/__init__.py 2013-11-27 12:17:01.490805587 +0100
|
||||||
+++ Python-3.4.0a4/Lib/test/support/__init__.py 2013-03-04 16:25:58.499258157 -0500
|
@@ -593,7 +593,8 @@
|
||||||
@@ -544,7 +544,8 @@ def bind_port(sock, host=HOST):
|
|
||||||
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1:
|
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1:
|
||||||
raise TestFailed("tests should never set the SO_REUSEADDR " \
|
raise TestFailed("tests should never set the SO_REUSEADDR " \
|
||||||
"socket option on TCP/IP sockets!")
|
"socket option on TCP/IP sockets!")
|
||||||
- if hasattr(socket, 'SO_REUSEPORT'):
|
- if hasattr(socket, 'SO_REUSEPORT'):
|
||||||
+ if hasattr(socket, 'SO_REUSEPORT') \
|
+ if hasattr(socket, 'SO_REUSEPORT') \
|
||||||
+ and 'WITHIN_PYTHON_RPM_BUILD' not in os.environ: # rhbz#913732
|
+ and 'WITHIN_PYTHON_RPM_BUILD' not in os.environ: # rhbz#913732
|
||||||
|
try:
|
||||||
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1:
|
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1:
|
||||||
raise TestFailed("tests should never set the SO_REUSEPORT " \
|
raise TestFailed("tests should never set the SO_REUSEPORT " \
|
||||||
"socket option on TCP/IP sockets!")
|
|
||||||
|
@ -1,89 +0,0 @@
|
|||||||
diff -r 6fdbb81b4020 -r 705f2addd0f0 Modules/_ssl.c
|
|
||||||
--- a/Modules/_ssl.c Tue Oct 29 12:14:55 2013 +0100
|
|
||||||
+++ b/Modules/_ssl.c Tue Oct 29 21:11:55 2013 +0100
|
|
||||||
@@ -19,9 +19,6 @@
|
|
||||||
#ifdef WITH_THREAD
|
|
||||||
#include "pythread.h"
|
|
||||||
|
|
||||||
-#ifdef HAVE_PTHREAD_ATFORK
|
|
||||||
-# include <pthread.h>
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
#define PySSL_BEGIN_ALLOW_THREADS_S(save) \
|
|
||||||
do { if (_ssl_locks_count>0) { (save) = PyEval_SaveThread(); } } while (0)
|
|
||||||
@@ -2950,64 +2947,6 @@
|
|
||||||
Returns number of bytes read. Raises SSLError if connection to EGD\n\
|
|
||||||
fails or if it does not provide enough data to seed PRNG.");
|
|
||||||
|
|
||||||
-/* Seed OpenSSL's PRNG at fork(), http://bugs.python.org/issue18747
|
|
||||||
- *
|
|
||||||
- * The parent handler seeds the PRNG from pseudo-random data like pid, the
|
|
||||||
- * current time (miliseconds or seconds) and an uninitialized array.
|
|
||||||
- * The array contains stack variables that are impossible to predict
|
|
||||||
- * on most systems, e.g. function return address (subject to ASLR), the
|
|
||||||
- * stack protection canary and automatic variables.
|
|
||||||
- * The code is inspired by Apache's ssl_rand_seed() function.
|
|
||||||
- *
|
|
||||||
- * Note:
|
|
||||||
- * The code uses pthread_atfork() until Python has a proper atfork API. The
|
|
||||||
- * handlers are not removed from the child process. A parent handler is used
|
|
||||||
- * instead of a child handler because fork() is supposed to be async-signal
|
|
||||||
- * safe but the handler calls unsafe functions.
|
|
||||||
- */
|
|
||||||
-
|
|
||||||
-#if defined(HAVE_PTHREAD_ATFORK) && defined(WITH_THREAD)
|
|
||||||
-#define PYSSL_RAND_ATFORK 1
|
|
||||||
-
|
|
||||||
-static void
|
|
||||||
-PySSL_RAND_atfork_parent(void)
|
|
||||||
-{
|
|
||||||
- struct {
|
|
||||||
- char stack[128]; /* uninitialized (!) stack data, 128 is an
|
|
||||||
- arbitrary number. */
|
|
||||||
- pid_t pid; /* current pid */
|
|
||||||
- _PyTime_timeval tp; /* current time */
|
|
||||||
- } seed;
|
|
||||||
-
|
|
||||||
-#ifdef WITH_VALGRIND
|
|
||||||
- VALGRIND_MAKE_MEM_DEFINED(seed.stack, sizeof(seed.stack));
|
|
||||||
-#endif
|
|
||||||
- seed.pid = getpid();
|
|
||||||
- _PyTime_gettimeofday(&(seed.tp));
|
|
||||||
- RAND_add((unsigned char *)&seed, sizeof(seed), 0.0);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static int
|
|
||||||
-PySSL_RAND_atfork(void)
|
|
||||||
-{
|
|
||||||
- static int registered = 0;
|
|
||||||
- int retval;
|
|
||||||
-
|
|
||||||
- if (registered)
|
|
||||||
- return 0;
|
|
||||||
-
|
|
||||||
- retval = pthread_atfork(NULL, /* prepare */
|
|
||||||
- PySSL_RAND_atfork_parent, /* parent */
|
|
||||||
- NULL); /* child */
|
|
||||||
- if (retval != 0) {
|
|
||||||
- PyErr_SetFromErrno(PyExc_OSError);
|
|
||||||
- return -1;
|
|
||||||
- }
|
|
||||||
- registered = 1;
|
|
||||||
- return 0;
|
|
||||||
-}
|
|
||||||
-#endif /* HAVE_PTHREAD_ATFORK */
|
|
||||||
-
|
|
||||||
#endif /* HAVE_OPENSSL_RAND */
|
|
||||||
|
|
||||||
|
|
||||||
@@ -3623,10 +3561,5 @@
|
|
||||||
if (r == NULL || PyModule_AddObject(m, "_OPENSSL_API_VERSION", r))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
-#ifdef PYSSL_RAND_ATFORK
|
|
||||||
- if (PySSL_RAND_atfork() == -1)
|
|
||||||
- return NULL;
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
return m;
|
|
||||||
}
|
|
17
python3.spec
17
python3.spec
@ -8,7 +8,7 @@
|
|||||||
%global pyshortver 34
|
%global pyshortver 34
|
||||||
|
|
||||||
# prereleasetag
|
# prereleasetag
|
||||||
%global prerel a4
|
%global prerel b1
|
||||||
|
|
||||||
%global pylibdir %{_libdir}/python%{pybasever}
|
%global pylibdir %{_libdir}/python%{pybasever}
|
||||||
%global dynload_dir %{pylibdir}/lib-dynload
|
%global dynload_dir %{pylibdir}/lib-dynload
|
||||||
@ -240,7 +240,7 @@ Patch1: Python-3.1.1-rpath.patch
|
|||||||
# (where sys.getfilesystemencoding() == 'ascii')
|
# (where sys.getfilesystemencoding() == 'ascii')
|
||||||
Patch55: 00055-systemtap.patch
|
Patch55: 00055-systemtap.patch
|
||||||
|
|
||||||
Patch102: python-3.3.0b1-lib64.patch
|
Patch102: 00102-lib64.patch
|
||||||
|
|
||||||
# 00104 #
|
# 00104 #
|
||||||
# Only used when "%{_lib}" == "lib64"
|
# Only used when "%{_lib}" == "lib64"
|
||||||
@ -611,8 +611,8 @@ Patch184: 00184-ctypes-should-build-with-libffi-multilib-wrapper.patch
|
|||||||
Patch186: 00186-dont-raise-from-py_compile.patch
|
Patch186: 00186-dont-raise-from-py_compile.patch
|
||||||
|
|
||||||
# 00187 #
|
# 00187 #
|
||||||
# Temporarily add this upstream patch, should be in next upstream release
|
# Fixed upstream as of Python 3.4.0b1
|
||||||
Patch187: 00187-remove-pthread-atfork.patch
|
# Patch187: 00187-remove-pthread-atfork.patch
|
||||||
|
|
||||||
# 00188 #
|
# 00188 #
|
||||||
# Downstream only patch that should be removed when we compile all guaranteed
|
# Downstream only patch that should be removed when we compile all guaranteed
|
||||||
@ -889,7 +889,7 @@ done
|
|||||||
%patch184 -p1
|
%patch184 -p1
|
||||||
# 00185 upstream as of Python 3.4.0a4
|
# 00185 upstream as of Python 3.4.0a4
|
||||||
%patch186 -p1
|
%patch186 -p1
|
||||||
%patch187 -p1
|
# 00187: upstream as of Python 3.4.0b1
|
||||||
%patch188 -p1
|
%patch188 -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
|
||||||
@ -1751,6 +1751,13 @@ rm -fr %{buildroot}
|
|||||||
# ======================================================
|
# ======================================================
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Nov 25 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 3.4.0-0.1.b1
|
||||||
|
- Update to Python 3.4 beta 1.
|
||||||
|
- Refreshed patches: 102 (lib64), 111 (no static lib), 125 (less verbose COUNT
|
||||||
|
ALLOCS), 141 (fix COUNT_ALLOCS in test_module), 146 (hashlib fips),
|
||||||
|
157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port)
|
||||||
|
- Removed patch 00187 (remove pthread atfork; upstreamed)
|
||||||
|
|
||||||
* Mon Nov 04 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 3.4.0-0.1.a4
|
* Mon Nov 04 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 3.4.0-0.1.a4
|
||||||
- Update to Python 3.4 alpha 4.
|
- Update to Python 3.4 alpha 4.
|
||||||
- Refreshed patches: 55 (systemtap), 102 (lib64), 111 (no static lib),
|
- Refreshed patches: 55 (systemtap), 102 (lib64), 111 (no static lib),
|
||||||
|
Loading…
Reference in New Issue
Block a user