From 1fb3c04b752501b90fca0c90b67d0fa1050909e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 5 Feb 2019 01:40:25 +0100 Subject: [PATCH 01/42] Update to 3.8.0a1 Uses tilde for prerelease information, https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/#_versioning_prereleases_with_tilde Patches rebased: 111, 132 Patches merged upstream: 155, 170 (differently), 317 /usr/bin/pyvenv is no more --- 00111-no-static-lib.patch | 22 +- 00132-add-rpmbuild-hooks-to-unittest.patch | 36 +-- 00155-avoid-ctypes-thunks.patch | 15 - 00170-gc-assertions.patch | 311 --------------------- 00317-CVE-2019-5010.patch | 111 -------- python3.spec | 51 ++-- sources | 2 +- 7 files changed, 48 insertions(+), 500 deletions(-) delete mode 100644 00155-avoid-ctypes-thunks.patch delete mode 100644 00170-gc-assertions.patch delete mode 100644 00317-CVE-2019-5010.patch diff --git a/00111-no-static-lib.patch b/00111-no-static-lib.patch index 4cce364..3d667e9 100644 --- a/00111-no-static-lib.patch +++ b/00111-no-static-lib.patch @@ -1,17 +1,17 @@ diff --git a/Makefile.pre.in b/Makefile.pre.in -index 0db0dd0..bd8f769 100644 +index f8ff1ce..f297d05 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -574,7 +574,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c +@@ -573,7 +573,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c $(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py --make --srcdir $(srcdir) # Build the interpreter -$(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) +$(BUILDPYTHON): Programs/python.o $(LDLIBRARY) $(PY3LIBRARY) - $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) + $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) platform: $(BUILDPYTHON) pybuilddir.txt -@@ -622,12 +622,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o +@@ -621,12 +621,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build @@ -21,19 +21,19 @@ index 0db0dd0..bd8f769 100644 - -rm -f $@ - $(AR) $(ARFLAGS) $@ $(LIBRARY_OBJS) - - libpython$(LDVERSION).so: $(LIBRARY_OBJS) + libpython$(LDVERSION).so: $(LIBRARY_OBJS) $(DTRACE_OBJS) if test $(INSTSONAME) != $(LDLIBRARY); then \ - $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \ -@@ -715,7 +709,7 @@ Modules/Setup: $(srcdir)/Modules/Setup.dist - echo "-----------------------------------------------"; \ - fi + $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM); \ +@@ -704,7 +698,7 @@ Makefile Modules/config.c: Makefile.pre \ + @echo "The Makefile was updated, you may need to re-run make." + -Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) +Programs/_testembed: Programs/_testembed.o $(LDLIBRARY) $(PY3LIBRARY) - $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) + $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) ############################################################################ -@@ -1483,17 +1477,6 @@ libainstall: @DEF_MAKE_RULE@ python-config +@@ -1545,17 +1539,6 @@ libainstall: @DEF_MAKE_RULE@ python-config else true; \ fi; \ done diff --git a/00132-add-rpmbuild-hooks-to-unittest.patch b/00132-add-rpmbuild-hooks-to-unittest.patch index 77dc6ec..b187c6a 100644 --- a/00132-add-rpmbuild-hooks-to-unittest.patch +++ b/00132-add-rpmbuild-hooks-to-unittest.patch @@ -1,6 +1,20 @@ -diff -up Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest Python-3.2.2/Lib/unittest/case.py ---- Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest 2011-09-03 12:16:44.000000000 -0400 -+++ Python-3.2.2/Lib/unittest/case.py 2011-09-09 06:35:16.365568382 -0400 +diff --git a/Lib/unittest/__init__.py b/Lib/unittest/__init__.py +index 5ff1bf3..4d63954 100644 +--- a/Lib/unittest/__init__.py ++++ b/Lib/unittest/__init__.py +@@ -58,7 +58,7 @@ __unittest = True + + from .result import TestResult + from .case import (addModuleCleanup, TestCase, FunctionTestCase, SkipTest, skip, +- skipIf, skipUnless, expectedFailure) ++ skipIf, skipUnless, expectedFailure, _skipInRpmBuild) + from .suite import BaseTestSuite, TestSuite + from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames, + findTestCases) +diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py +index a157ae8..64f912c 100644 +--- a/Lib/unittest/case.py ++++ b/Lib/unittest/case.py @@ -3,6 +3,7 @@ import sys import functools @@ -9,7 +23,8 @@ 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,21 @@ def expectedFailure(func): +@@ -158,6 +159,22 @@ class _BaseTestCaseContext: + msg = self.test_case._formatMessage(self.msg, standardMsg) raise self.test_case.failureException(msg) +# Non-standard/downstream-only hooks for handling issues with specific test @@ -31,16 +46,3 @@ diff -up Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest Python class _AssertRaisesBaseContext(_BaseTestCaseContext): def __init__(self, expected, test_case, expected_regex=None): -diff -up Python-3.2.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest Python-3.2.2/Lib/unittest/__init__.py ---- Python-3.2.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest 2011-09-03 12:16:44.000000000 -0400 -+++ Python-3.2.2/Lib/unittest/__init__.py 2011-09-09 06:35:16.366568382 -0400 -@@ -57,7 +57,8 @@ __unittest = True - - from .result import TestResult - from .case import (TestCase, FunctionTestCase, SkipTest, skip, skipIf, -- skipUnless, expectedFailure) -+ skipUnless, expectedFailure, -+ _skipInRpmBuild) - from .suite import BaseTestSuite, TestSuite - from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames, - findTestCases) diff --git a/00155-avoid-ctypes-thunks.patch b/00155-avoid-ctypes-thunks.patch deleted file mode 100644 index f03890e..0000000 --- a/00155-avoid-ctypes-thunks.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -up Python-3.2.3/Lib/ctypes/__init__.py.rhbz814391 Python-3.2.3/Lib/ctypes/__init__.py ---- Python-3.2.3/Lib/ctypes/__init__.py.rhbz814391 2012-04-20 15:12:49.017867692 -0400 -+++ Python-3.2.3/Lib/ctypes/__init__.py 2012-04-20 15:15:09.501111408 -0400 -@@ -275,11 +275,6 @@ def _reset_cache(): - # _SimpleCData.c_char_p_from_param - POINTER(c_char).from_param = c_char_p.from_param - _pointer_type_cache[None] = c_void_p -- # XXX for whatever reasons, creating the first instance of a callback -- # function is needed for the unittests on Win64 to succeed. This MAY -- # be a compiler bug, since the problem occurs only when _ctypes is -- # compiled with the MS SDK compiler. Or an uninitialized variable? -- CFUNCTYPE(c_int)(lambda: None) - - def create_unicode_buffer(init, size=None): - """create_unicode_buffer(aString) -> character array diff --git a/00170-gc-assertions.patch b/00170-gc-assertions.patch deleted file mode 100644 index fb3ad85..0000000 --- a/00170-gc-assertions.patch +++ /dev/null @@ -1,311 +0,0 @@ -diff --git a/Include/object.h b/Include/object.h -index c772dea..5729797 100644 ---- a/Include/object.h -+++ b/Include/object.h -@@ -1098,6 +1098,49 @@ PyAPI_FUNC(void) - _PyObject_DebugTypeStats(FILE *out); - #endif /* ifndef Py_LIMITED_API */ - -+/* -+ Define a pair of assertion macros. -+ -+ These work like the regular C assert(), in that they will abort the -+ process with a message on stderr if the given condition fails to hold, -+ but compile away to nothing if NDEBUG is defined. -+ -+ However, before aborting, Python will also try to call _PyObject_Dump() on -+ the given object. This may be of use when investigating bugs in which a -+ particular object is corrupt (e.g. buggy a tp_visit method in an extension -+ module breaking the garbage collector), to help locate the broken objects. -+ -+ The WITH_MSG variant allows you to supply an additional message that Python -+ will attempt to print to stderr, after the object dump. -+*/ -+#ifdef NDEBUG -+/* No debugging: compile away the assertions: */ -+#define PyObject_ASSERT_WITH_MSG(obj, expr, msg) ((void)0) -+#else -+/* With debugging: generate checks: */ -+#define PyObject_ASSERT_WITH_MSG(obj, expr, msg) \ -+ ((expr) \ -+ ? (void)(0) \ -+ : _PyObject_AssertFailed((obj), \ -+ (msg), \ -+ (__STRING(expr)), \ -+ (__FILE__), \ -+ (__LINE__), \ -+ (__PRETTY_FUNCTION__))) -+#endif -+ -+#define PyObject_ASSERT(obj, expr) \ -+ PyObject_ASSERT_WITH_MSG(obj, expr, NULL) -+ -+/* -+ Declare and define the entrypoint even when NDEBUG is defined, to avoid -+ causing compiler/linker errors when building extensions without NDEBUG -+ against a Python built with NDEBUG defined -+*/ -+PyAPI_FUNC(void) _PyObject_AssertFailed(PyObject *, const char *, -+ const char *, const char *, int, -+ const char *); -+ - #ifdef __cplusplus - } - #endif -diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py -index 8d806db..dc8bb16 100644 ---- a/Lib/test/test_gc.py -+++ b/Lib/test/test_gc.py -@@ -1,10 +1,12 @@ - import unittest - from test.support import (verbose, refcount_test, run_unittest, - strip_python_stderr, cpython_only, start_threads, -- temp_dir, requires_type_collecting, TESTFN, unlink) -+ temp_dir, requires_type_collecting, TESTFN, unlink, -+ import_module) - from test.support.script_helper import assert_python_ok, make_script - - import sys -+import sysconfig - import time - import gc - import weakref -@@ -46,6 +48,8 @@ class GC_Detector(object): - # gc collects it. - self.wr = weakref.ref(C1055820(666), it_happened) - -+BUILD_WITH_NDEBUG = ('-DNDEBUG' in sysconfig.get_config_vars()['PY_CFLAGS']) -+ - @with_tp_del - class Uncollectable(object): - """Create a reference cycle with multiple __del__ methods. -@@ -878,6 +882,50 @@ class GCCallbackTests(unittest.TestCase): - self.assertEqual(len(gc.garbage), 0) - - -+ @unittest.skipIf(BUILD_WITH_NDEBUG, -+ 'built with -NDEBUG') -+ def test_refcount_errors(self): -+ self.preclean() -+ # Verify the "handling" of objects with broken refcounts -+ import_module("ctypes") #skip if not supported -+ -+ import subprocess -+ code = '''if 1: -+ a = [] -+ b = [a] -+ -+ # Simulate the refcount of "a" being too low (compared to the -+ # references held on it by live data), but keeping it above zero -+ # (to avoid deallocating it): -+ import ctypes -+ ctypes.pythonapi.Py_DecRef(ctypes.py_object(a)) -+ -+ # The garbage collector should now have a fatal error when it reaches -+ # the broken object: -+ import gc -+ gc.collect() -+ ''' -+ p = subprocess.Popen([sys.executable, "-c", code], -+ stdout=subprocess.PIPE, -+ stderr=subprocess.PIPE) -+ stdout, stderr = p.communicate() -+ p.stdout.close() -+ p.stderr.close() -+ # Verify that stderr has a useful error message: -+ self.assertRegex(stderr, -+ b'Modules/gcmodule.c:[0-9]+: visit_decref: Assertion "\(\(gc\)->gc.gc_refs >> \(1\)\) != 0" failed.') -+ self.assertRegex(stderr, -+ b'refcount was too small') -+ self.assertRegex(stderr, -+ b'object : \[\]') -+ self.assertRegex(stderr, -+ b'type : list') -+ self.assertRegex(stderr, -+ b'refcount: 1') -+ self.assertRegex(stderr, -+ b'address : 0x[0-9a-f]+') -+ -+ - class GCTogglingTests(unittest.TestCase): - def setUp(self): - gc.enable() -diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c -index 4d701cb..388dd78 100644 ---- a/Modules/gcmodule.c -+++ b/Modules/gcmodule.c -@@ -239,7 +239,8 @@ update_refs(PyGC_Head *containers) - { - PyGC_Head *gc = containers->gc.gc_next; - for (; gc != containers; gc = gc->gc.gc_next) { -- assert(_PyGCHead_REFS(gc) == GC_REACHABLE); -+ PyObject_ASSERT(FROM_GC(gc), -+ _PyGCHead_REFS(gc) == GC_REACHABLE); - _PyGCHead_SET_REFS(gc, Py_REFCNT(FROM_GC(gc))); - /* Python's cyclic gc should never see an incoming refcount - * of 0: if something decref'ed to 0, it should have been -@@ -259,7 +260,8 @@ update_refs(PyGC_Head *containers) - * so serious that maybe this should be a release-build - * check instead of an assert? - */ -- assert(_PyGCHead_REFS(gc) != 0); -+ PyObject_ASSERT(FROM_GC(gc), -+ _PyGCHead_REFS(gc) != 0); - } - } - -@@ -274,7 +276,9 @@ visit_decref(PyObject *op, void *data) - * generation being collected, which can be recognized - * because only they have positive gc_refs. - */ -- assert(_PyGCHead_REFS(gc) != 0); /* else refcount was too small */ -+ PyObject_ASSERT_WITH_MSG(FROM_GC(gc), -+ _PyGCHead_REFS(gc) != 0, -+ "refcount was too small"); /* else refcount was too small */ - if (_PyGCHead_REFS(gc) > 0) - _PyGCHead_DECREF(gc); - } -@@ -334,9 +338,10 @@ visit_reachable(PyObject *op, PyGC_Head *reachable) - * If gc_refs == GC_UNTRACKED, it must be ignored. - */ - else { -- assert(gc_refs > 0 -- || gc_refs == GC_REACHABLE -- || gc_refs == GC_UNTRACKED); -+ PyObject_ASSERT(FROM_GC(gc), -+ gc_refs > 0 -+ || gc_refs == GC_REACHABLE -+ || gc_refs == GC_UNTRACKED); - } - } - return 0; -@@ -378,7 +383,7 @@ move_unreachable(PyGC_Head *young, PyGC_Head *unreachable) - */ - PyObject *op = FROM_GC(gc); - traverseproc traverse = Py_TYPE(op)->tp_traverse; -- assert(_PyGCHead_REFS(gc) > 0); -+ PyObject_ASSERT(op, _PyGCHead_REFS(gc) > 0); - _PyGCHead_SET_REFS(gc, GC_REACHABLE); - (void) traverse(op, - (visitproc)visit_reachable, -@@ -441,7 +446,7 @@ move_legacy_finalizers(PyGC_Head *unreachable, PyGC_Head *finalizers) - for (gc = unreachable->gc.gc_next; gc != unreachable; gc = next) { - PyObject *op = FROM_GC(gc); - -- assert(IS_TENTATIVELY_UNREACHABLE(op)); -+ PyObject_ASSERT(op, IS_TENTATIVELY_UNREACHABLE(op)); - next = gc->gc.gc_next; - - if (has_legacy_finalizer(op)) { -@@ -517,7 +522,7 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old) - PyWeakReference **wrlist; - - op = FROM_GC(gc); -- assert(IS_TENTATIVELY_UNREACHABLE(op)); -+ PyObject_ASSERT(op, IS_TENTATIVELY_UNREACHABLE(op)); - next = gc->gc.gc_next; - - if (! PyType_SUPPORTS_WEAKREFS(Py_TYPE(op))) -@@ -538,9 +543,9 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old) - * the callback pointer intact. Obscure: it also - * changes *wrlist. - */ -- assert(wr->wr_object == op); -+ PyObject_ASSERT(wr->wr_object, wr->wr_object == op); - _PyWeakref_ClearRef(wr); -- assert(wr->wr_object == Py_None); -+ PyObject_ASSERT(wr->wr_object, wr->wr_object == Py_None); - if (wr->wr_callback == NULL) - continue; /* no callback */ - -@@ -574,7 +579,7 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old) - */ - if (IS_TENTATIVELY_UNREACHABLE(wr)) - continue; -- assert(IS_REACHABLE(wr)); -+ PyObject_ASSERT(op, IS_REACHABLE(wr)); - - /* Create a new reference so that wr can't go away - * before we can process it again. -@@ -583,7 +588,8 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old) - - /* Move wr to wrcb_to_call, for the next pass. */ - wrasgc = AS_GC(wr); -- assert(wrasgc != next); /* wrasgc is reachable, but -+ PyObject_ASSERT(op, wrasgc != next); -+ /* wrasgc is reachable, but - next isn't, so they can't - be the same */ - gc_list_move(wrasgc, &wrcb_to_call); -@@ -599,11 +605,11 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old) - - gc = wrcb_to_call.gc.gc_next; - op = FROM_GC(gc); -- assert(IS_REACHABLE(op)); -- assert(PyWeakref_Check(op)); -+ PyObject_ASSERT(op, IS_REACHABLE(op)); -+ PyObject_ASSERT(op, PyWeakref_Check(op)); - wr = (PyWeakReference *)op; - callback = wr->wr_callback; -- assert(callback != NULL); -+ PyObject_ASSERT(op, callback != NULL); - - /* copy-paste of weakrefobject.c's handle_callback() */ - temp = PyObject_CallFunctionObjArgs(callback, wr, NULL); -@@ -717,12 +723,14 @@ check_garbage(PyGC_Head *collectable) - for (gc = collectable->gc.gc_next; gc != collectable; - gc = gc->gc.gc_next) { - _PyGCHead_SET_REFS(gc, Py_REFCNT(FROM_GC(gc))); -- assert(_PyGCHead_REFS(gc) != 0); -+ PyObject_ASSERT(FROM_GC(gc), -+ _PyGCHead_REFS(gc) != 0); - } - subtract_refs(collectable); - for (gc = collectable->gc.gc_next; gc != collectable; - gc = gc->gc.gc_next) { -- assert(_PyGCHead_REFS(gc) >= 0); -+ PyObject_ASSERT(FROM_GC(gc), -+ _PyGCHead_REFS(gc) >= 0); - if (_PyGCHead_REFS(gc) != 0) - return -1; - } -diff --git a/Objects/object.c b/Objects/object.c -index 220aa90..f6c7161 100644 ---- a/Objects/object.c -+++ b/Objects/object.c -@@ -2177,6 +2177,35 @@ _PyTrash_thread_destroy_chain(void) - --tstate->trash_delete_nesting; - } - -+PyAPI_FUNC(void) -+_PyObject_AssertFailed(PyObject *obj, const char *msg, const char *expr, -+ const char *file, int line, const char *function) -+{ -+ fprintf(stderr, -+ "%s:%d: %s: Assertion \"%s\" failed.\n", -+ file, line, function, expr); -+ if (msg) { -+ fprintf(stderr, "%s\n", msg); -+ } -+ -+ fflush(stderr); -+ -+ if (obj) { -+ /* This might succeed or fail, but we're about to abort, so at least -+ try to provide any extra info we can: */ -+ _PyObject_Dump(obj); -+ } -+ else { -+ fprintf(stderr, "NULL object\n"); -+ } -+ -+ fflush(stdout); -+ fflush(stderr); -+ -+ /* Terminate the process: */ -+ abort(); -+} -+ - #ifndef Py_TRACE_REFS - /* For Py_LIMITED_API, we need an out-of-line version of _Py_Dealloc. - Define this here, so we can undefine the macro. */ diff --git a/00317-CVE-2019-5010.patch b/00317-CVE-2019-5010.patch deleted file mode 100644 index 62e931e..0000000 --- a/00317-CVE-2019-5010.patch +++ /dev/null @@ -1,111 +0,0 @@ -From c660debb97f4f422255a82fef2d77804552c043a Mon Sep 17 00:00:00 2001 -From: Christian Heimes -Date: Tue, 15 Jan 2019 18:16:30 +0100 -Subject: [PATCH] bpo-35746: Fix segfault in ssl's cert parser - -CVE-2019-5010, Fix a NULL pointer deref in ssl module. The cert parser did -not handle CRL distribution points with empty DP or URI correctly. A -malicious or buggy certificate can result into segfault. - -Signed-off-by: Christian Heimes ---- - Lib/test/talos-2019-0758.pem | 22 +++++++++++++++++++ - Lib/test/test_ssl.py | 22 +++++++++++++++++++ - .../2019-01-15-18-16-05.bpo-35746.nMSd0j.rst | 3 +++ - Modules/_ssl.c | 4 ++++ - 4 files changed, 51 insertions(+) - create mode 100644 Lib/test/talos-2019-0758.pem - create mode 100644 Misc/NEWS.d/next/Security/2019-01-15-18-16-05.bpo-35746.nMSd0j.rst - -diff --git a/Lib/test/talos-2019-0758.pem b/Lib/test/talos-2019-0758.pem -new file mode 100644 -index 000000000000..13b95a77fd8a ---- /dev/null -+++ b/Lib/test/talos-2019-0758.pem -@@ -0,0 +1,22 @@ -+-----BEGIN CERTIFICATE----- -+MIIDqDCCApKgAwIBAgIBAjALBgkqhkiG9w0BAQswHzELMAkGA1UEBhMCVUsxEDAO -+BgNVBAMTB2NvZHktY2EwHhcNMTgwNjE4MTgwMDU4WhcNMjgwNjE0MTgwMDU4WjA7 -+MQswCQYDVQQGEwJVSzEsMCoGA1UEAxMjY29kZW5vbWljb24tdm0tMi50ZXN0Lmxh -+bC5jaXNjby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC63fGB -+J80A9Av1GB0bptslKRIUtJm8EeEu34HkDWbL6AJY0P8WfDtlXjlPaLqFa6sqH6ES -+V48prSm1ZUbDSVL8R6BYVYpOlK8/48xk4pGTgRzv69gf5SGtQLwHy8UPBKgjSZoD -+5a5k5wJXGswhKFFNqyyxqCvWmMnJWxXTt2XDCiWc4g4YAWi4O4+6SeeHVAV9rV7C -+1wxqjzKovVe2uZOHjKEzJbbIU6JBPb6TRfMdRdYOw98n1VXDcKVgdX2DuuqjCzHP -+WhU4Tw050M9NaK3eXp4Mh69VuiKoBGOLSOcS8reqHIU46Reg0hqeL8LIL6OhFHIF -+j7HR6V1X6F+BfRS/AgMBAAGjgdYwgdMwCQYDVR0TBAIwADAdBgNVHQ4EFgQUOktp -+HQjxDXXUg8prleY9jeLKeQ4wTwYDVR0jBEgwRoAUx6zgPygZ0ZErF9sPC4+5e2Io -+UU+hI6QhMB8xCzAJBgNVBAYTAlVLMRAwDgYDVQQDEwdjb2R5LWNhggkA1QEAuwb7 -+2s0wCQYDVR0SBAIwADAuBgNVHREEJzAlgiNjb2Rlbm9taWNvbi12bS0yLnRlc3Qu -+bGFsLmNpc2NvLmNvbTAOBgNVHQ8BAf8EBAMCBaAwCwYDVR0fBAQwAjAAMAsGCSqG -+SIb3DQEBCwOCAQEAvqantx2yBlM11RoFiCfi+AfSblXPdrIrHvccepV4pYc/yO6p -+t1f2dxHQb8rWH3i6cWag/EgIZx+HJQvo0rgPY1BFJsX1WnYf1/znZpkUBGbVmlJr -+t/dW1gSkNS6sPsM0Q+7HPgEv8CPDNK5eo7vU2seE0iWOkxSyVUuiCEY9ZVGaLVit -+p0C78nZ35Pdv4I+1cosmHl28+es1WI22rrnmdBpH8J1eY6WvUw2xuZHLeNVN0TzV -+Q3qq53AaCWuLOD1AjESWuUCxMZTK9DPS4JKXTK8RLyDeqOvJGjsSWp3kL0y3GaQ+ -+10T1rfkKJub2+m9A9duin1fn6tHc2wSvB7m3DA== -+-----END CERTIFICATE----- -diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py -index 7f6b93148f45..1fc657f4d867 100644 ---- a/Lib/test/test_ssl.py -+++ b/Lib/test/test_ssl.py -@@ -115,6 +115,7 @@ def data_file(*name): - BADKEY = data_file("badkey.pem") - NOKIACERT = data_file("nokia.pem") - NULLBYTECERT = data_file("nullbytecert.pem") -+TALOS_INVALID_CRLDP = data_file("talos-2019-0758.pem") - - DHFILE = data_file("ffdh3072.pem") - BYTES_DHFILE = os.fsencode(DHFILE) -@@ -348,6 +349,27 @@ def test_parse_cert(self): - self.assertEqual(p['crlDistributionPoints'], - ('http://SVRIntl-G3-crl.verisign.com/SVRIntlG3.crl',)) - -+ def test_parse_cert_CVE_2019_5010(self): -+ p = ssl._ssl._test_decode_cert(TALOS_INVALID_CRLDP) -+ if support.verbose: -+ sys.stdout.write("\n" + pprint.pformat(p) + "\n") -+ self.assertEqual( -+ p, -+ { -+ 'issuer': ( -+ (('countryName', 'UK'),), (('commonName', 'cody-ca'),)), -+ 'notAfter': 'Jun 14 18:00:58 2028 GMT', -+ 'notBefore': 'Jun 18 18:00:58 2018 GMT', -+ 'serialNumber': '02', -+ 'subject': ((('countryName', 'UK'),), -+ (('commonName', -+ 'codenomicon-vm-2.test.lal.cisco.com'),)), -+ 'subjectAltName': ( -+ ('DNS', 'codenomicon-vm-2.test.lal.cisco.com'),), -+ 'version': 3 -+ } -+ ) -+ - def test_parse_cert_CVE_2013_4238(self): - p = ssl._ssl._test_decode_cert(NULLBYTECERT) - if support.verbose: -diff --git a/Misc/NEWS.d/next/Security/2019-01-15-18-16-05.bpo-35746.nMSd0j.rst b/Misc/NEWS.d/next/Security/2019-01-15-18-16-05.bpo-35746.nMSd0j.rst -new file mode 100644 -index 000000000000..dffe347eec84 ---- /dev/null -+++ b/Misc/NEWS.d/next/Security/2019-01-15-18-16-05.bpo-35746.nMSd0j.rst -@@ -0,0 +1,3 @@ -+[CVE-2019-5010] Fix a NULL pointer deref in ssl module. The cert parser did -+not handle CRL distribution points with empty DP or URI correctly. A -+malicious or buggy certificate can result into segfault. -diff --git a/Modules/_ssl.c b/Modules/_ssl.c -index 4e3352d9e661..0e720e268d93 100644 ---- a/Modules/_ssl.c -+++ b/Modules/_ssl.c -@@ -1515,6 +1515,10 @@ _get_crl_dp(X509 *certificate) { - STACK_OF(GENERAL_NAME) *gns; - - dp = sk_DIST_POINT_value(dps, i); -+ if (dp->distpoint == NULL) { -+ /* Ignore empty DP value, CVE-2019-5010 */ -+ continue; -+ } - gns = dp->distpoint->name.fullname; - - for (j=0; j < sk_GENERAL_NAME_num(gns); j++) { diff --git a/python3.spec b/python3.spec index b910bd2..ca2d3e3 100644 --- a/python3.spec +++ b/python3.spec @@ -2,10 +2,10 @@ # Top-level metadata # ================== -%global pybasever 3.7 +%global pybasever 3.8 # pybasever without the dot: -%global pyshortver 37 +%global pyshortver 38 Name: python3 Summary: Interpreter of the Python programming language @@ -13,8 +13,11 @@ URL: https://www.python.org/ # WARNING When rebasing to a new Python version, # remember to update the python3-docs package as well -Version: %{pybasever}.2 -Release: 5%{?dist} +%global general_version %{pybasever}.0 +%global prerel a1 +%global upstream_version %{general_version}%{?prerel} +Version: %{general_version}%{?prerel:~%{prerel}} +Release: 1%{?dist} License: Python @@ -197,7 +200,7 @@ BuildRequires: python-pip-wheel # Source code and patches # ======================= -Source: https://www.python.org/ftp/python/%{version}/Python-%{version}%{?prerel}.tar.xz +Source: https://www.python.org/ftp/python/%{general_version}/Python-%{upstream_version}.tar.xz # A simple script to check timestamps of bytecode files # Run in check section with Python that is currently being built @@ -242,13 +245,6 @@ Patch111: 00111-no-static-lib.patch # these unittest hooks in their own "check" phases) Patch132: 00132-add-rpmbuild-hooks-to-unittest.patch -# 00155 # -# Avoid allocating thunks in ctypes unless absolutely necessary, to avoid -# generating SELinux denials on "import ctypes" and "import uuid" when -# embedding Python within httpd -# See https://bugzilla.redhat.com/show_bug.cgi?id=814391 -Patch155: 00155-avoid-ctypes-thunks.patch - # 00160 # # Python 3.3 added os.SEEK_DATA and os.SEEK_HOLE, which may be present in the # header files in the build chroot, but may not be supported in the running @@ -263,16 +259,6 @@ 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 -# 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) -# The new macros/functions within gcmodule.c are hidden to avoid exposing -# them within the extension API. -# Sent upstream: http://bugs.python.org/issue9263 -# See https://bugzilla.redhat.com/show_bug.cgi?id=614680 -Patch170: 00170-gc-assertions.patch - # 00178 # # Don't duplicate various FLAGS in sysconfig values # http://bugs.python.org/issue17679 @@ -305,11 +291,6 @@ Patch274: 00274-fix-arch-names.patch # So we mark the command as unsupported - and the tests are skipped Patch316: 00316-mark-bdist_wininst-unsupported.patch -# 00317 # -# Security fix for CVE-2019-5010: Fix segfault in ssl's cert parser -# Fixed upstream https://bugs.python.org/issue35746 -Patch317: 00317-CVE-2019-5010.patch - # (New patches go here ^^^) # # When adding new patches to "python" and "python3" in Fedora, EL, etc., @@ -580,7 +561,7 @@ version once Python %{pybasever} is stable. # ====================================================== %prep -%setup -q -n Python-%{version}%{?prerel} +%setup -q -n Python-%{upstream_version} # Remove all exe files to ensure we are not shipping prebuilt binaries # note that those are only used to create Microsoft Windows installers # and that functionality is broken on Linux anyway @@ -599,10 +580,8 @@ rm -r Modules/expat %endif %patch111 -p1 %patch132 -p1 -%patch155 -p1 %patch160 -p1 %patch163 -p1 -%patch170 -p1 %patch178 -p1 %if %{with rpmwheels} @@ -614,7 +593,6 @@ rm Lib/ensurepip/_bundled/*.whl %patch251 -p1 %patch274 -p1 %patch316 -p1 -%patch317 -p1 # Remove files that should be generated by the build @@ -942,7 +920,6 @@ rm %{buildroot}%{_bindir}/pygettext3.py rm %{buildroot}%{_bindir}/msgfmt3.py rm %{buildroot}%{_bindir}/idle3 rm %{buildroot}%{_bindir}/python3-* -rm %{buildroot}%{_bindir}/pyvenv rm %{buildroot}%{_bindir}/2to3 rm %{buildroot}%{_libdir}/libpython3.so rm %{buildroot}%{_mandir}/man1/python3.1* @@ -1048,14 +1025,12 @@ CheckPython optimized %if %{without flatpackage} %{_bindir}/pydoc* %{_bindir}/python3 -%{_bindir}/pyvenv %else %{_bindir}/pydoc%{pybasever} %endif %{_bindir}/python%{pybasever} %{_bindir}/python%{pybasever}m -%{_bindir}/pyvenv-%{pybasever} %{_mandir}/*/* @@ -1186,6 +1161,7 @@ CheckPython optimized %{dynload_dir}/nis.%{SOABI_optimized}.so %{dynload_dir}/ossaudiodev.%{SOABI_optimized}.so %{dynload_dir}/parser.%{SOABI_optimized}.so +%{dynload_dir}/_posixshmem.%{SOABI_optimized}.so %{dynload_dir}/pyexpat.%{SOABI_optimized}.so %{dynload_dir}/readline.%{SOABI_optimized}.so %{dynload_dir}/resource.%{SOABI_optimized}.so @@ -1197,6 +1173,7 @@ CheckPython optimized %{dynload_dir}/unicodedata.%{SOABI_optimized}.so %{dynload_dir}/_uuid.%{SOABI_optimized}.so %{dynload_dir}/xxlimited.%{SOABI_optimized}.so +%{dynload_dir}/_xxsubinterpreters.%{SOABI_optimized}.so %{dynload_dir}/zlib.%{SOABI_optimized}.so %dir %{pylibdir}/site-packages/ @@ -1301,6 +1278,7 @@ CheckPython optimized %endif %{_includedir}/python%{LDVERSION_optimized}/*.h %{_includedir}/python%{LDVERSION_optimized}/internal/ +%{_includedir}/python%{LDVERSION_optimized}/cpython/ %doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit %if %{without flatpackage} @@ -1457,6 +1435,7 @@ CheckPython optimized %{dynload_dir}/nis.%{SOABI_debug}.so %{dynload_dir}/ossaudiodev.%{SOABI_debug}.so %{dynload_dir}/parser.%{SOABI_debug}.so +%{dynload_dir}/_posixshmem.%{SOABI_debug}.so %{dynload_dir}/pyexpat.%{SOABI_debug}.so %{dynload_dir}/readline.%{SOABI_debug}.so %{dynload_dir}/resource.%{SOABI_debug}.so @@ -1467,6 +1446,7 @@ CheckPython optimized %{dynload_dir}/_testmultiphase.%{SOABI_debug}.so %{dynload_dir}/unicodedata.%{SOABI_debug}.so %{dynload_dir}/_uuid.%{SOABI_debug}.so +%{dynload_dir}/_xxsubinterpreters.%{SOABI_debug}.so %{dynload_dir}/_xxtestfuzz.%{SOABI_debug}.so %{dynload_dir}/zlib.%{SOABI_debug}.so @@ -1521,6 +1501,9 @@ CheckPython optimized # ====================================================== %changelog +* Tue Feb 05 2019 Miro Hrončok - 3.8.0~a1-1 +- Update to 3.8.0a1 + * Sat Feb 02 2019 Fedora Release Engineering - 3.7.2-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild diff --git a/sources b/sources index 64dca46..8f72af4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Python-3.7.2.tar.xz) = 6cd2d6d8455558783b99d55985cd7b22d67b98f41a09b4fdd96f680a630a4e035220d2b903f8c59ed513aa5ffe6730fa947ddb55bb72ce36f0e945ef8af5d971 +SHA512 (Python-3.8.0a1.tar.xz) = 81e0aea4cf37f432d72464579f1b97db574496fa7105c7b2e02caed2e27d95288f21605666e80b60a01c66afb115714004b4a219b31ce21c8f732828b70b24e2 From d051c04cb17c3265311ff2aa70260e714afa8fcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 5 Feb 2019 12:33:45 +0100 Subject: [PATCH 02/42] Drop obsoletes for platform-python --- python3.spec | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/python3.spec b/python3.spec index ca2d3e3..bb6d0a9 100644 --- a/python3.spec +++ b/python3.spec @@ -329,13 +329,6 @@ Provides: python%{pyshortver} = %{version}-%{release} # replace python36-3.6.2. Obsoletes: python%{pyshortver} -# Shall be removed in Fedora 31 -# The release is bumped to 20, so we can do f27 platform-python updates -# If the release in f27 ever goes >= 20, raise it here -# If platform-python is ever reintroduced, make it higher version than this: -%global platpyver 3.6.2-20 -Obsoletes: platform-python < %{platpyver} - # Previously, this was required for our rewheel patch to work. # This is technically no longer needed, but we keep it recommended # for the developer experience. @@ -388,10 +381,6 @@ Provides: bundled(python3-setuptools) = 40.6.2 # See https://bugzilla.redhat.com/show_bug.cgi?id=1547131 Recommends: %{name}%{?_isa} = %{version}-%{release} -# Shall be removed in Fedora 31 -Obsoletes: platform-python-libs < %{platpyver} -Obsoletes: platform-python-libs-devel < %{platpyver} - %description libs This package contains runtime libraries for use by Python: - the majority of the Python standard library @@ -428,9 +417,6 @@ Provides: 2to3 = %{version}-%{release} Conflicts: %{name} < %{version}-%{release} -# Shall be removed in Fedora 31 -Obsoletes: platform-python-devel < %{platpyver} - %description devel This package contains the header files and configuration needed to compile Python extension modules (typically written in C or C++), to embed Python @@ -451,9 +437,6 @@ Provides: %{name}-tools = %{version}-%{release} Provides: %{name}-tools%{?_isa} = %{version}-%{release} Obsoletes: %{name}-tools < %{version}-%{release} -# Shall be removed in Fedora 31 -Obsoletes: platform-python-tools < %{platpyver} - %description idle IDLE is Python’s Integrated Development and Learning Environment. @@ -471,9 +454,6 @@ configuration, browsers, and other dialogs. Summary: A GUI toolkit for Python Requires: %{name} = %{version}-%{release} -# Shall be removed in Fedora 31 -Obsoletes: platform-python-tkinter < %{platpyver} - %description tkinter The Tkinter (Tk interface) library is a graphical user interface toolkit for the Python programming language. @@ -484,9 +464,6 @@ Summary: The self-test suite for the main python3 package Requires: %{name} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release} -# Shall be removed in Fedora 31 -Obsoletes: platform-python-test < %{platpyver} - %description test The self-test suite for the Python interpreter. From 3dcd1e8c08308e6f98071561a324124279951d69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 5 Feb 2019 12:35:53 +0100 Subject: [PATCH 03/42] Make flat, rename to python38 --- python3.rpmlintrc => python38.rpmlintrc | 0 python3.spec => python38.spec | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) rename python3.rpmlintrc => python38.rpmlintrc (100%) rename python3.spec => python38.spec (99%) diff --git a/python3.rpmlintrc b/python38.rpmlintrc similarity index 100% rename from python3.rpmlintrc rename to python38.rpmlintrc diff --git a/python3.spec b/python38.spec similarity index 99% rename from python3.spec rename to python38.spec index bb6d0a9..1c2ee75 100644 --- a/python3.spec +++ b/python38.spec @@ -7,8 +7,8 @@ # pybasever without the dot: %global pyshortver 38 -Name: python3 -Summary: Interpreter of the Python programming language +Name: python%{pyshortver} +Summary: Version %{pybasever} of the Python interpreter URL: https://www.python.org/ # WARNING When rebasing to a new Python version, @@ -34,7 +34,7 @@ License: Python # in Fedora, never turn this on for the python3 package # and always keep it on for python37 etc. # WARNING: This does not change the package name and summary above -%bcond_with flatpackage +%bcond_without flatpackage # Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package # Uses upstream bundled prebuilt wheels otherwise From 13cea58a5cc47a3318ab3a999861fa522576e19c Mon Sep 17 00:00:00 2001 From: Gwyn Ciesla Date: Wed, 6 Feb 2019 16:18:54 +0000 Subject: [PATCH 04/42] Added the README --- README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..4a3c78a --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# python38 + +The python38 package \ No newline at end of file From 1f112461d177f38849195230eacf0a99c9021aa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 6 Feb 2019 17:24:49 +0100 Subject: [PATCH 05/42] Trim the %changelog --- python38.spec | 1191 ------------------------------------------------- 1 file changed, 1191 deletions(-) diff --git a/python38.spec b/python38.spec index 1c2ee75..c822f64 100644 --- a/python38.spec +++ b/python38.spec @@ -1480,1194 +1480,3 @@ CheckPython optimized %changelog * Tue Feb 05 2019 Miro Hrončok - 3.8.0~a1-1 - Update to 3.8.0a1 - -* Sat Feb 02 2019 Fedora Release Engineering - 3.7.2-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Wed Jan 16 2019 Miro Hrončok - 3.7.2-4 -- Security fix for CVE-2019-5010 (#1666519, #1666522) - -* Mon Jan 14 2019 Björn Esser - 3.7.2-3 -- Rebuilt for libcrypt.so.2 (#1666033) - -* Fri Jan 04 2019 Miro Hrončok - 3.7.2-2 -- No longer revert upstream commit 3b699932e5ac3e7 -- This was a dirty workaround for (#1644936) - -* Tue Dec 25 2018 Miro Hrončok - 3.7.2-1 -- Update to 3.7.2 - -* Fri Dec 07 2018 Miro Hrončok - 3.7.1-5 -- Make sure we don't ship any exe files (not needed an prebuilt) - -* Wed Nov 21 2018 Miro Hrončok - 3.7.1-4 -- Make sure the entire test.support module is in python3-libs (#1651245) - -* Tue Nov 06 2018 Victor Stinner - 3.7.1-3 -- Verify the value of '-s' when execute the CLI of cProfile (rhbz#1160640) - -* Sun Nov 04 2018 Miro Hrončok - 3.7.1-2 -- Temporarily revert upstream commit 3b699932e5ac3e7 -- This is dirty workaround for (#1644936) - -* Mon Oct 22 2018 Miro Hrončok - 3.7.1-1 -- Update to 3.7.1 - -* Thu Sep 27 2018 Petr Viktorin - 3.7.0-10 -- Compile the debug build with -Og rather than -O0 - -* Thu Aug 30 2018 Miro Hrončok - 3.7.0-9 -- Require python3-setuptools from python3-devel to prevent packaging errors (#1623914) - -* Fri Aug 17 2018 Miro Hrončok - 3.7.0-8 -- Add /usr/bin/pygettext3.py and msgfmt3.py to python3-devel -Resolves: rhbz#1571474 - -* Fri Aug 17 2018 Miro Hrončok - 3.7.0-7 -- Backport TLS 1.3 related fixes to fix FTBFS -Resolves: rhbz#1609291 - -* Wed Aug 15 2018 Miro Hrončok - 3.7.0-6 -- Use RPM built wheels of pip and setuptools in ensurepip instead of our rewheel patch - -* Fri Aug 10 2018 Igor Gnatenko - 3.7.0-5 -- Fix wrong requirement on gdbm - -* Fri Jul 20 2018 Miro Hrončok - 3.7.0-4 -- Allow to call Py_Main() after Py_Initialize() -Resolves: rhbz#1595421 - -* Sat Jul 14 2018 Fedora Release Engineering - 3.7.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Thu Jul 12 2018 Igor Gnatenko - 3.7.0-2 -- Rebuild for new gdbm - -* Wed Jun 27 2018 Miro Hrončok - 3.7.0-1 -- Update to 3.7.0 final - -* Wed Jun 13 2018 Miro Hrončok - 3.7.0-0.21.rc1 -- Finish bootstrapping, enable rewheel, tests, optimizations - -* Tue Jun 12 2018 Miro Hrončok - 3.7.0-0.20.rc1 -- Update to 3.7.0rc1 -- Bootstrap, disable rewheel, tests, optimizations - -* Mon Apr 23 2018 Miro Hrončok - 3.6.5-4 -- Fix multiprocessing regression on newer glibcs -- Enable test_multiprocessing_fork(server) and _spawn again -Resolves: rhbz#1569933 - -* Thu Apr 19 2018 Miro Hrončok - 3.6.5-3 -- Skip test_multiprocessing_fork(server) and _spawn for now - -* Wed Apr 18 2018 Miro Hrončok - 3.6.5-2 -- Add flatpackage conditionals - -* Thu Mar 29 2018 Charalampos Stratakis - 3.6.5-1 -- Update to 3.6.5 - -* Sat Mar 24 2018 Miro Hrončok - 3.6.4-20 -- Fix broken macro invocation and broken building of C Python extensions -Resolves: rhbz#1560103 - -* Fri Mar 16 2018 Miro Hrončok - 3.6.4-19 -- Add -n option for pathfix.py -Resolves: rhbz#1546990 - -* Thu Mar 15 2018 Miro Hrončok - 3.6.4-18 -- Fix the py_byte_compile macro to work on Python 2 -- Remove the pybytecompile macro file from the flat package -Resolves: rhbz#1484993 - -* Tue Mar 13 2018 Charalampos Stratakis - 3.6.4-17 -- Do not send IP addresses in SNI TLS extension - -* Sat Feb 24 2018 Florian Weimer - 3.6.4-16 -- Rebuild with new LDFLAGS from redhat-rpm-config - -* Wed Feb 21 2018 Miro Hrončok - 3.6.4-15 -- Filter out automatic /usr/bin/python3.X requirement, - recommend the main package from libs instead -Resolves: rhbz#1547131 - -* Thu Feb 15 2018 Iryna Shcherbina - 3.6.4-14 -- Remove the python3-tools package (#rhbz 1312030) -- Move /usr/bin/2to3 to python3-devel -- Move /usr/bin/idle and idlelib to python3-idle -- Provide python3-tools from python3-idle - -* Fri Feb 09 2018 Igor Gnatenko - 3.6.4-13 -- Escape macros in %%changelog - -* Fri Feb 02 2018 Michal Cyprian - 3.6.4-12 -- Remove sys.executable check from change-user-install-location patch -Resolves: rhbz#1532287 - -* Thu Feb 01 2018 Charalampos Stratakis - 3.6.4-11 -- Define TLS cipher suite on build time. - -* Wed Jan 31 2018 Tomas Orsava - 3.6.4-10 -- Disable test_gdb for all arches and test_buffer for ppc64le in anticipation - of the F28 mass rebuild -- Re-enable these tests after the mass rebuild when they can be properly - addressed - -* Tue Jan 23 2018 Charalampos Stratakis - 3.6.4-9 -- Restore the PyExc_RecursionErrorInst public symbol - -* Tue Jan 23 2018 Björn Esser - 3.6.4-8 -- Add patch to explicitly link _ctypes module with -ldl (#1537489) -- Refactored patch for libxcrypt -- Re-enable strict symbol checks in the link editor - -* Mon Jan 22 2018 Björn Esser - 3.6.4-7 -- Add patch for libxcrypt -- Disable strict symbol checks in the link editor - -* Sat Jan 20 2018 Björn Esser - 3.6.4-6 -- Rebuilt for switch to libxcrypt - -* Fri Jan 19 2018 Charalampos Stratakis - 3.6.4-5 -- Fix localeconv() encoding for LC_NUMERIC - -* Thu Jan 18 2018 Igor Gnatenko - 3.6.4-4 -- R: gdbm-devel → R: gdbm for python3-libs - -* Wed Jan 17 2018 Miro Hrončok - 3.6.4-3 -- Require large enough gdbm (fixup for previous bump) - -* Tue Jan 16 2018 Charalampos Stratakis - 3.6.4-2 -- Rebuild for reverted gdbm 1.13 on Fedora 27 - -* Mon Jan 15 2018 Charalampos Stratakis - 3.6.4-1 -- Update to version 3.6.4 - -* Fri Jan 12 2018 Charalampos Stratakis - 3.6.3-5 -- Fix the compilation of the nis module. - -* Tue Nov 21 2017 Miro Hrončok - 3.6.3-4 -- Raise the release of platform-python obsoletes for better maintainability - -* Wed Nov 15 2017 Miro Hrončok - 3.6.3-3 -- Obsolete platform-python and it's subpackages - -* Mon Oct 09 2017 Charalampos Stratakis - 3.6.3-2 -- Fix memory corruption due to allocator mix -Resolves: rhbz#1498207 - -* Fri Oct 06 2017 Charalampos Stratakis - 3.6.3-1 -- Update to Python 3.6.3 - -* Fri Sep 29 2017 Miro Hrončok - 3.6.2-19 -- Move pathfix.py to bindir, https://github.com/fedora-python/python-rpm-porting/issues/24 -- Make the -devel package require redhat-rpm-config -Resolves: rhbz#1496757 - -* Wed Sep 13 2017 Iryna Shcherbina - 3.6.2-18 -- Fix /usr/bin/env dependency from python3-tools -Resolves: rhbz#1482118 - -* Wed Sep 06 2017 Iryna Shcherbina - 3.6.2-17 -- Include `-g` in the flags sent to the linker (LDFLAGS) -Resolves: rhbz#1483222 - -* Tue Sep 05 2017 Petr Viktorin - 3.6.2-16 -- Specfile cleanup -- Make the main description also applicable to the SRPM -- Add audiotest.au to the test package - -* Fri Sep 01 2017 Miro Hrončok - 3.6.2-15 -- Remove %%{pylibdir}/Tools/scripts/2to3 - -* Fri Sep 01 2017 Miro Hrončok - 3.6.2-14 -- Expat >= 2.1.0 is everywhere, remove explicit requires -- Conditionalize systemtap-devel BuildRequires -- For consistency, require /usr/sbin/ifconfig instead of net-tools - -* Mon Aug 28 2017 Petr Viktorin - 3.6.2-13 -- Rename patch files to be consistent -- Run autotools to generate the configure script before building -- Merge lib64 patches (104 into 102) -- Skip test_bdist_rpm using test config rather than a patch (removes patch 137) -- Remove patches 157 and 186, which had test changes left over after upstreaming -- Remove patch 188, a temporary workaround for hashlib tests -- Merge patches 180, 206, 243, 5001 (architecture naming) into new patch 274 -- Move python2-tools conflicts to tools subpackage (it was wrongly in tkinter) - -* Mon Aug 28 2017 Michal Cyprian - 3.6.2-12 -- Use python3 style of calling super() without arguments in rpath - patch to prevent recursion in UnixCCompiler subclasses -Resolves: rhbz#1458122 - -* Mon Aug 21 2017 Petr Viktorin - 3.6.2-11 -- Add bcond for --without optimizations -- Reword package descriptions -- Remove Group declarations -- Skip failing test_float_with_comma - -* Mon Aug 21 2017 Miro Hrončok - 3.6.2-10 -- Remove system-python, see https://fedoraproject.org/wiki/Changes/Platform_Python_Stack - -* Wed Aug 16 2017 Petr Viktorin - 3.6.2-9 -- Use bconds for configuring the build -- Reorganize the initial sections - -* Wed Aug 16 2017 Miro Hrončok - 3.6.2-8 -- Have /usr/bin/2to3 (rhbz#1111275) -- Provide 2to3 and idle3, list them in summary and description (rhbz#1076401) - -* Fri Aug 11 2017 Michal Cyprian - 3.6.2-7 -- Revert "Add --executable option to install.py command" - This enhancement is currently not needed and it can possibly - collide with `pip --editable`option - -* Mon Aug 07 2017 Iryna Shcherbina - 3.6.2-6 -- Fix the "urllib FTP protocol stream injection" vulnerability -Resolves: rhbz#1478916 - -* Tue Aug 01 2017 Tomas Orsava - 3.6.2-5 -- Dropped BuildRequires on db4-devel which was useful for Python 2 (module - bsddb), however, no longer needod for Python 3 -- Tested building Python 3 with and without the dependency, all tests pass and - filelists of resulting RPMs are identical - -* Sun Jul 30 2017 Florian Weimer - 3.6.2-4 -- Do not generate debuginfo subpackages (#1476593) -- Rebuild with binutils fix for ppc64le (#1475636) - -* Thu Jul 27 2017 Fedora Release Engineering - 3.6.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Tue Jul 25 2017 Charalampos Stratakis - 3.6.2-2 -- Make test_asyncio to not depend on the current SIGHUP signal handler. - -* Tue Jul 18 2017 Charalampos Stratakis - 3.6.2-1 -- Update to Python 3.6.2 - -* Tue Jun 27 2017 Charalampos Stratakis - 3.6.1-10 -- Update to the latest upstream implementation of PEP 538 - -* Mon Jun 26 2017 Michal Cyprian - 3.6.1-9 -- Make pip and distutils in user environment install into separate location - -* Fri Jun 23 2017 Charalampos Stratakis - 3.6.1-8 -- Fix test_alpn_protocols from test_ssl -- Do not require rebundled setuptools dependencies - -* Tue May 16 2017 Tomas Orsava - 3.6.1-7 -- Added a dependency to the devel subpackage on python3-rpm-generators which - have been excised out of rpm-build -- Updated notes on bootstrapping Python on top of this specfile accordingly -- Involves: rhbz#1410631, rhbz#1444925 - -* Tue May 09 2017 Charalampos Stratakis - 3.6.1-6 -- Enable profile guided optimizations for x86_64 and i686 architectures -- Update to a newer implementation of PEP 538 -- Update description to reflect that Python 3 is now the default Python - -* Fri May 05 2017 Charalampos Stratakis - 3.6.1-5 -- Update PEP 538 to the latest upstream implementation - -* Tue Apr 18 2017 Charalampos Stratakis - 3.6.1-4 -- Enable link time optimizations -- Move windows executables to the devel subpackage (rhbz#1426257) - -* Thu Apr 13 2017 Tomas Orsava - 3.6.1-3 -- Rename python3.Xdm-config script from -debug to be arch specific -Resolves: rhbz#1179073 - -* Wed Apr 05 2017 Charalampos Stratakis - 3.6.1-2 -- Install the Makefile in its proper location (rhbz#1438219) - -* Wed Mar 22 2017 Iryna Shcherbina - 3.6.1-1 -- Update to version 3.6.1 final - -* Tue Mar 21 2017 Tomas Orsava - 3.6.1-0.2.rc1 -- Fix syntax error in %%py_byte_compile macro (rhbz#1433569) - -* Thu Mar 16 2017 Iryna Shcherbina - 3.6.1-0.1.rc1 -- Update to Python 3.6.1 release candidate 1 -- Add patch 264 to skip a known test failure on aarch64 - -* Fri Mar 10 2017 Charalampos Stratakis - 3.6.0-21 -- Use proper command line parsing in _testembed -- Backport of PEP 538: Coercing the legacy C locale to a UTF-8 based locale - https://fedoraproject.org/wiki/Changes/python3_c.utf-8_locale - -* Mon Feb 27 2017 Charalampos Stratakis - 3.6.0-20 -- Add desktop entry and appdata.xml file for IDLE 3 (rhbz#1392049) - -* Fri Feb 24 2017 Michal Cyprian - 3.6.0-19 -- Revert "Set values of prefix and exec_prefix to /usr/local for - /usr/bin/python* executables..." to prevent build failures - of packages using alternate build tools - -* Tue Feb 21 2017 Michal Cyprian - 3.6.0-18 -- Set values of prefix and exec_prefix to /usr/local for - /usr/bin/python* executables -- Use new %%_module_build macro - -* Fri Feb 17 2017 Michal Cyprian - 3.6.0-13 -- Add --executable option to install.py command - -* Wed Feb 15 2017 Charalampos Stratakis - 3.6.0-12 -- BuildRequire the new dependencies of setuptools when rewheel mode is enabled -in order for the virtualenvs to work properly - -* Sat Feb 11 2017 Fedora Release Engineering - 3.6.0-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Feb 01 2017 Stephen Gallagher - 3.6.0-10 -- Add missing %%license macro - -* Thu Jan 26 2017 Tomas Orsava - 3.6.0-9 -- Modify the runtime dependency of python3-libs on system-python-libs again, - because previous attempt didn't work properly with dnf resolving mechanism - -* Wed Jan 25 2017 Tomas Orsava - 3.6.0-8 -- Modify the runtime dependency of python3-libs on system-python-libs to use - just the version and release number, but not the dist tag due to Modularity - -* Mon Jan 16 2017 Charalampos Stratakis - 3.6.0-7 -- Fix error check, so that Random.seed actually uses OS randomness (rhbz#1412275) -- Skip test_aead_aes_gcm during rpmbuild - -* Thu Jan 12 2017 Igor Gnatenko - 3.6.0-6 -- Rebuild for readline 7.x - -* Tue Jan 10 2017 Charalampos Stratakis - 3.6.0-5 -- Require glibc >= 2.24.90-26 for system-python-libs (rhbz#1410644) - -* Mon Jan 09 2017 Charalampos Stratakis - 3.6.0-4 -- Define HAVE_LONG_LONG as 1 for backwards compatibility - -* Thu Jan 05 2017 Miro Hrončok - 3.6.0-3 -- Don't blow up on EL7 kernel (random generator) (rhbz#1410175) - -* Tue Dec 27 2016 Charalampos Stratakis - 3.6.0-1 -- Update to Python 3.6.0 final - -* Fri Dec 09 2016 Charalampos Stratakis - 3.6.0-0.6.rc1 -- Enable rewheel - -* Wed Dec 07 2016 Charalampos Stratakis - 3.6.0-0.5.rc1 -- Update to Python 3.6.0 release candidate 1 - -* Mon Dec 05 2016 Charalampos Stratakis - 3.6.0-0.4.b4 -- Update to Python 3.6.0 beta 4 - -* Mon Dec 05 2016 Charalampos Stratakis - 3.5.2-7 -- Set to work with pip version 9.0.1 - -* Wed Oct 12 2016 Charalampos Stratakis - 3.5.2-6 -- Use proper patch numbering and base upstream branch for -porting ssl and hashlib modules to OpenSSL 1.1.0 -- Drop hashlib patch for now -- Add riscv64 arch to 64bit and no-valgrind arches - -* Tue Oct 11 2016 Tomáš Mráz - 3.5.2-5 -- Make it build with OpenSSL-1.1.0 based on upstream patch - -* Wed Sep 14 2016 Charalampos Stratakis - 3.5.2-4 -- Obsolete and Provide python35 package - -* Mon Sep 12 2016 Charalampos Stratakis - 3.5.2-3 -- Update %%py_byte_compile macro -- Remove unused configure flags (rhbz#1374357) - -* Fri Sep 09 2016 Tomas Orsava - 3.5.2-2 -- Updated .pyc 'bytecompilation with the newly installed interpreter' to also - recompile optimized .pyc files -- Removed .pyo 'bytecompilation with the newly installed interpreter', as .pyo - files are no more -- Resolves rhbz#1373635 - -* Mon Aug 15 2016 Tomas Orsava - 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 - -* Tue Aug 09 2016 Charalampos Stratakis - 3.5.1-15 -- Fix for CVE-2016-1000110 HTTPoxy attack -- SPEC file cleanup - -* Mon Aug 01 2016 Michal Toman - 3.5.1-14 -- Build properly on MIPS - -* Tue Jul 19 2016 Fedora Release Engineering - 3.5.1-13 -- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages - -* Fri Jul 08 2016 Charalampos Stratakis - 3.5.1-12 -- Refactor patch for properly fixing CVE-2016-5636 - -* Fri Jul 08 2016 Charalampos Stratakis - 3.5.1-11 -- Fix test_pyexpat failure with Expat version of 2.2.0 - -* Fri Jul 08 2016 Miro Hrončok - 3.5.1-10 -- Move xml module to system-python-libs - -* Thu Jun 16 2016 Tomas Orsava - 3.5.1-9 -- Fix for: CVE-2016-0772 python: smtplib StartTLS stripping attack -- Raise an error when STARTTLS fails -- 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 - -* Mon Jun 13 2016 Charalampos Stratakis - 3.5.1-8 -- Added patch for fixing possible integer overflow and heap corruption in zipimporter.get_data() - -* Fri Mar 04 2016 Miro Hrončok - 3.5.1-7 -- Move distutils to system-python-libs - -* Wed Feb 24 2016 Robert Kuska - 3.5.1-6 -- Provide python3-enum34 - -* Fri Feb 19 2016 Miro Hrončok - 3.5.1-5 -- Provide System Python packages and macros - -* Thu Feb 04 2016 Fedora Release Engineering - 3.5.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Wed Jan 13 2016 Orion Poplwski - 3.5.1-2 -- Drop python3 macros, require python/python3-rpm-macros - -* Mon Dec 14 2015 Robert Kuska - 3.5.1-1 -- Update to 3.5.1 -- Removed patch 199 and 207 (upstream) - -* Sun Nov 15 2015 Robert Kuska - 3.5.0-5 -- Remove versioned libpython from devel package - -* Fri Nov 13 2015 Than Ngo 3.5.0-4 -- add correct arch for ppc64/ppc64le to fix build failure - -* Wed Nov 11 2015 Robert Kuska - 3.5.0-3 -- Hide the private _Py_atomic_xxx symbols from public header - -* Wed Oct 14 2015 Robert Kuska - 3.5.0-2 -- Rebuild with wheel set to 1 - -* Tue Sep 15 2015 Matej Stuchlik - 3.5.0-1 -- Update to 3.5.0 - -* Mon Jun 29 2015 Thomas Spura - 3.4.3-4 -- python3-devel: Require python-macros for version independant macros such as - python_provide. See fpc#281 and fpc#534. - -* Thu Jun 18 2015 Fedora Release Engineering - 3.4.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Wed Jun 17 2015 Matej Stuchlik - 3.4.3-4 -- Use 1024bit DH key in test_ssl -- Use -O0 when compiling -debug build -- Update pip version variable to the version we actually ship - -* Wed Jun 17 2015 Matej Stuchlik - 3.4.3-3 -- Make relocating Python by changing _prefix actually work -Resolves: rhbz#1231801 - -* Mon May 4 2015 Peter Robinson 3.4.3-2 -- Disable test_gdb on aarch64 (rhbz#1196181), it joins all other non x86 arches - -* Thu Mar 12 2015 Matej Stuchlik - 3.4.3-1 -- Updated to 3.4.3 -- BuildPython now accepts additional build options -- Temporarily disabled test_gdb on arm (rhbz#1196181) - -* Wed Feb 25 2015 Matej Stuchlik - 3.4.2-7 -- Fixed undefined behaviour in faulthandler which caused test to hang on x86_64 - (http://bugs.python.org/issue23433) - -* Sat Feb 21 2015 Till Maas - 3.4.2-6 -- Rebuilt for Fedora 23 Change - https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code - -* Tue Feb 17 2015 Ville Skyttä - 3.4.2-5 -- Own systemtap dirs (#710733) - -* Mon Jan 12 2015 Dan Horák - 3.4.2-4 -- build with valgrind on ppc64le -- disable test_gdb on s390(x) until rhbz#1181034 is resolved - -* Tue Dec 16 2014 Robert Kuska - 3.4.2-3 -- New patches: 170 (gc asserts), 200 (gettext headers), - 201 (gdbm memory leak) - -* Thu Dec 11 2014 Robert Kuska - 3.4.2-2 -- OpenSSL disabled SSLv3 in SSLv23 method - -* Thu Nov 13 2014 Matej Stuchlik - 3.4.2-1 -- Update to 3.4.2 -- Refreshed patches: 156 (gdb autoload) -- Removed: 195 (Werror declaration), 197 (CVE-2014-4650) - -* Mon Nov 03 2014 Slavek Kabrda - 3.4.1-16 -- Fix CVE-2014-4650 - CGIHTTPServer URL handling -Resolves: rhbz#1113529 - -* Sun Sep 07 2014 Karsten Hopp 3.4.1-15 -- exclude test_gdb on ppc* (rhbz#1132488) - -* Thu Aug 21 2014 Slavek Kabrda - 3.4.1-14 -- Update rewheel patch with fix from https://github.com/bkabrda/rewheel/pull/1 - -* Sun Aug 17 2014 Fedora Release Engineering - 3.4.1-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sun Jun 8 2014 Peter Robinson 3.4.1-12 -- aarch64 has valgrind, just list those that don't support it - -* Sun Jun 08 2014 Fedora Release Engineering - 3.4.1-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Wed Jun 04 2014 Karsten Hopp 3.4.1-10 -- bump release and rebuild to link with the correct tcl/tk libs on ppcle - -* Tue Jun 03 2014 Matej Stuchlik - 3.4.1-9 -- Change paths to bundled projects in rewheel patch - -* Fri May 30 2014 Miro Hrončok - 3.4.1-8 -- In config script, use uname -m to write the arch - -* Thu May 29 2014 Dan Horák - 3.4.1-7 -- update the arch list where valgrind exists - %%power64 includes also - ppc64le which is not supported yet - -* Thu May 29 2014 Miro Hrončok - 3.4.1-6 -- Forward arguments to the arch specific config script -Resolves: rhbz#1102683 - -* Wed May 28 2014 Miro Hrončok - 3.4.1-5 -- Rename python3.Xm-config script to arch specific. -Resolves: rhbz#1091815 - -* Tue May 27 2014 Bohuslav Kabrda - 3.4.1-4 -- Use python3-*, not python-* runtime requires on setuptools and pip -- rebuild for tcl-8.6 - -* Tue May 27 2014 Matej Stuchlik - 3.4.1-3 -- Update the rewheel module - -* Mon May 26 2014 Miro Hrončok - 3.4.1-2 -- Fix multilib dependencies. -Resolves: rhbz#1091815 - -* Sun May 25 2014 Matej Stuchlik - 3.4.1-1 -- Update to Python 3.4.1 - -* Sun May 25 2014 Matej Stuchlik - 3.4.0-8 -- Fix test_gdb failure on ppc64le -Resolves: rhbz#1095355 - -* Thu May 22 2014 Miro Hrončok - 3.4.0-7 -- Add macro %%python3_version_nodots - -* Sun May 18 2014 Matej Stuchlik - 3.4.0-6 -- Disable test_faulthandler, test_gdb on aarch64 -Resolves: rhbz#1045193 - -* Fri May 16 2014 Matej Stuchlik - 3.4.0-5 -- Don't add Werror=declaration-after-statement for extension - modules through setup.py (PyBT#21121) - -* Mon May 12 2014 Matej Stuchlik - 3.4.0-4 -- Add setuptools and pip to Requires - -* Tue Apr 29 2014 Matej Stuchlik - 3.4.0-3 -- Point __os_install_post to correct brp-* files - -* Tue Apr 15 2014 Matej Stuchlik - 3.4.0-2 -- Temporarily disable tests requiring SIGHUP (rhbz#1088233) - -* Tue Apr 15 2014 Matej Stuchlik - 3.4.0-1 -- Update to Python 3.4 final -- Add patch adding the rewheel module -- Merge patches from master - -* Wed Jan 08 2014 Bohuslav Kabrda - 3.4.0-0.1.b2 -- Update to Python 3.4 beta 2. -- Refreshed patches: 55 (systemtap), 146 (hashlib-fips), 154 (test_gdb noise) -- Dropped patches: 114 (statvfs constants), 177 (platform unicode) - -* Mon Nov 25 2013 Bohuslav Kabrda - 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 - 3.4.0-0.1.a4 -- Update to Python 3.4 alpha 4. -- Refreshed patches: 55 (systemtap), 102 (lib64), 111 (no static lib), -114 (statvfs flags), 132 (unittest rpmbuild hooks), 134 (fix COUNT_ALLOCS in -test_sys), 143 (tsc on ppc64), 146 (hashlib fips), 153 (test gdb noise), -157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port), 186 (dont raise -from py_compile) -- Removed patches: 129 (test_subprocess nonreadable dir - no longer fails in -Koji), 142 (the mock issue that caused this is fixed) -- Added patch 187 (remove thread atfork) - will be in next version -- Refreshed script for checking pyc and pyo timestamps with new ignored files. -- The fips patch is disabled for now until upstream makes a final decision -what to do with sha3 implementation for 3.4.0. - -* Wed Oct 30 2013 Bohuslav Kabrda - 3.3.2-7 -- Bytecompile all *.py files properly during build (rhbz#1023607) - -* Fri Aug 23 2013 Matej Stuchlik - 3.3.2-6 -- Added fix for CVE-2013-4238 (rhbz#996399) - -* Fri Jul 26 2013 Dennis Gilmore - 3.3.2-5 -- fix up indentation in arm patch - -* Fri Jul 26 2013 Dennis Gilmore - 3.3.2-4 -- disable a test that fails on arm -- enable valgrind support on arm arches - -* Tue Jul 02 2013 Bohuslav Kabrda - 3.3.2-3 -- Fix build with libffi containing multilib wrapper for ffi.h (rhbz#979696). - -* Mon May 20 2013 Bohuslav Kabrda - 3.3.2-2 -- Add patch for CVE-2013-2099 (rhbz#963261). - -* Thu May 16 2013 Bohuslav Kabrda - 3.3.2-1 -- Updated to Python 3.3.2. -- Refreshed patches: 153 (gdb test noise) -- Dropped patches: 175 (configure -Wformat, fixed upstream), 182 (gdb -test threads) -- Synced patch numbers with python.spec. - -* Thu May 9 2013 David Malcolm - 3.3.1-4 -- fix test.test_gdb.PyBtTests.test_threads on ppc64 (patch 181; rhbz#960010) - -* Thu May 02 2013 Bohuslav Kabrda - 3.3.1-3 -- Add patch that enables building on ppc64p7 (replace the sed, so that -we get consistent with python2 spec and it's more obvious that we're doing it. - -* Wed Apr 24 2013 Bohuslav Kabrda - 3.3.1-2 -- Add fix for gdb tests failing on arm, rhbz#951802. - -* Tue Apr 09 2013 Bohuslav Kabrda - 3.3.1-1 -- Updated to Python 3.3.1. -- Refreshed patches: 55 (systemtap), 111 (no static lib), 146 (hashlib fips), -153 (fix test_gdb noise), 157 (uid, gid overflow - fixed upstream, just -keeping few more downstream tests) -- Removed patches: 3 (audiotest.au made it to upstream tarball) -- Removed workaround for http://bugs.python.org/issue14774, discussed in -http://bugs.python.org/issue15298 and fixed in revision 24d52d3060e8. - -* Mon Mar 25 2013 David Malcolm - 3.3.0-10 -- fix gcc 4.8 incompatibility (rhbz#927358); regenerate autotool intermediates - -* Mon Mar 25 2013 David Malcolm - 3.3.0-9 -- renumber patches to keep them in sync with python.spec - -* Fri Mar 15 2013 Toshio Kuratomi - 3.3.0-8 -- Fix error in platform.platform() when non-ascii byte strings are decoded to - unicode (rhbz#922149) - -* Thu Mar 14 2013 Toshio Kuratomi - 3.3.0-7 -- Fix up shared library extension (rhbz#889784) - -* Thu Mar 07 2013 Karsten Hopp 3.3.0-6 -- add ppc64p7 build target, optimized for Power7 - -* Mon Mar 4 2013 David Malcolm - 3.3.0-5 -- add workaround for ENOPROTOOPT seen running selftests in Koji -(rhbz#913732) - -* Mon Mar 4 2013 David Malcolm - 3.3.0-4 -- remove config flag from /etc/rpm/macros.{python3|pybytecompile} - -* Mon Feb 11 2013 David Malcolm - 3.3.0-3 -- add aarch64 (rhbz#909783) - -* Thu Nov 29 2012 David Malcolm - 3.3.0-2 -- add BR on bluez-libs-devel (rhbz#879720) - -* Sat Sep 29 2012 David Malcolm - 3.3.0-1 -- 3.3.0rc3 -> 3.3.0; drop alphatag - -* Mon Sep 24 2012 David Malcolm - 3.3.0-0.6.rc3 -- 3.3.0rc2 -> 3.3.0rc3 - -* Mon Sep 10 2012 David Malcolm - 3.3.0-0.5.rc2 -- 3.3.0rc1 -> 3.3.0rc2; refresh patch 55 - -* Mon Aug 27 2012 David Malcolm - 3.3.0-0.4.rc1 -- 3.3.0b2 -> 3.3.0rc1; refresh patches 3, 55 - -* Mon Aug 13 2012 David Malcolm - 3.3.0-0.3.b2 -- 3.3b1 -> 3.3b2; drop upstreamed patch 152; refresh patches 3, 102, 111, -134, 153, 160; regenenerate autotools patch; rework systemtap patch to work -correctly when LANG=C (patch 55); importlib.test was moved to -test.test_importlib upstream - -* Mon Aug 13 2012 Karsten Hopp 3.3.0-0.2.b1 -- disable some failing checks on PPC* (rhbz#846849) - -* Fri Aug 3 2012 David Malcolm - 3.3.0-0.1.b1 -- 3.2 -> 3.3: https://fedoraproject.org/wiki/Features/Python_3.3 -- 3.3.0b1: refresh patches 3, 55, 102, 111, 113, 114, 134, 157; drop upstream -patch 147; regenenerate autotools patch; drop "--with-wide-unicode" from -configure (PEP 393); "plat-linux2" -> "plat-linux" (upstream issue 12326); -"bz2" -> "_bz2" and "crypt" -> "_crypt"; egg-info files are no longer shipped -for stdlib (upstream issues 10645 and 12218); email/test moved to -test/test_email; add /usr/bin/pyvenv[-3.3] and venv module (PEP 405); add -_decimal and _lzma modules; make collections modules explicit in payload again -(upstream issue 11085); add _testbuffer module to tests subpackage (added in -upstream commit 3f9b3b6f7ff0); fix test failures (patches 160 and 161); -workaround erroneously shared _sysconfigdata.py upstream issue #14774; fix -distutils.sysconfig traceback (patch 162); add BuildRequires: xz-devel (for -_lzma module); skip some tests within test_socket (patch 163) - -* Sat Jul 21 2012 Fedora Release Engineering - 3.2.3-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Fri Jul 20 2012 David Malcolm - 3.3.0-0.1.b1 - -* Fri Jun 22 2012 David Malcolm - 3.2.3-10 -- use macro for power64 (rhbz#834653) - -* Mon Jun 18 2012 David Malcolm - 3.2.3-9 -- fix missing include in uid/gid handling patch (patch 157; rhbz#830405) - -* Wed May 30 2012 Bohuslav Kabrda - 3.2.3-8 -- fix tapset for debug build - -* Tue May 15 2012 David Malcolm - 3.2.3-7 -- update uid/gid handling to avoid int overflows seen with uid/gid -values >= 2^31 on 32-bit architectures (patch 157; rhbz#697470) - -* Fri May 4 2012 David Malcolm - 3.2.3-6 -- renumber autotools patch from 300 to 5000 -- specfile cleanups - -* Mon Apr 30 2012 David Malcolm - 3.2.3-5 -- fix test_gdb.py (patch 156; rhbz#817072) - -* Fri Apr 20 2012 David Malcolm - 3.2.3-4 -- avoid allocating thunks in ctypes unless absolutely necessary, to avoid -generating SELinux denials on "import ctypes" and "import uuid" when embedding -Python within httpd (patch 155; rhbz#814391) - -* Fri Apr 20 2012 David Malcolm - 3.2.3-3 -- add explicit version requirements on expat to avoid linkage problems with -XML_SetHashSalt - -* Thu Apr 12 2012 David Malcolm - 3.2.3-2 -- fix test_gdb (patch 153) - -* Wed Apr 11 2012 David Malcolm - 3.2.3-1 -- 3.2.3; refresh patch 102 (lib64); drop upstream patches 148 (gdbm magic -values), 149 (__pycache__ fix); add patch 152 (test_gdb regex) - -* Thu Feb 9 2012 Thomas Spura - 3.2.2-13 -- use newly installed python for byte compiling (now for real) - -* Sun Feb 5 2012 Thomas Spura - 3.2.2-12 -- use newly installed python for byte compiling (#787498) - -* Wed Jan 4 2012 Ville Skyttä - 3.2.2-11 -- Build with $RPM_LD_FLAGS (#756863). -- Use xz-compressed source tarball. - -* Wed Dec 07 2011 Karsten Hopp 3.2.2-10 -- disable rAssertAlmostEqual in test_cmath on PPC (#750811) - -* Mon Oct 17 2011 Rex Dieter - 3.2.2-9 -- python3-devel missing autogenerated pkgconfig() provides (#746751) - -* Mon Oct 10 2011 David Malcolm - 3.2.2-8 -- cherrypick fix for distutils not using __pycache__ when byte-compiling -files (rhbz#722578) - -* Fri Sep 30 2011 David Malcolm - 3.2.2-7 -- re-enable gdbm (patch 148; rhbz#742242) - -* Fri Sep 16 2011 David Malcolm - 3.2.2-6 -- add a sys._debugmallocstats() function (patch 147) - -* Wed Sep 14 2011 David Malcolm - 3.2.2-5 -- support OpenSSL FIPS mode in _hashlib and hashlib; don't build the _md5 and -_sha* modules, relying on _hashlib in hashlib (rhbz#563986; patch 146) - -* Tue Sep 13 2011 David Malcolm - 3.2.2-4 -- disable gdbm module to prepare for gdbm soname bump - -* Mon Sep 12 2011 David Malcolm - 3.2.2-3 -- renumber and rename patches for consistency with python.spec (8 to 55, 106 -to 104, 6 to 111, 104 to 113, 105 to 114, 125, 131, 130 to 143) - -* Sat Sep 10 2011 David Malcolm - 3.2.2-2 -- rewrite of "check", introducing downstream-only hooks for skipping specific -cases in an rpmbuild (patch 132), and fixing/skipping failing tests in a more -fine-grained manner than before; (patches 106, 133-142 sparsely, moving -patches for consistency with python.spec: 128 to 134, 126 to 135, 127 to 141) - -* Tue Sep 6 2011 David Malcolm - 3.2.2-1 -- 3.2.2 - -* Thu Sep 1 2011 David Malcolm - 3.2.1-7 -- run selftests with "--verbose" -- disable parts of test_io on ppc (rhbz#732998) - -* Wed Aug 31 2011 David Malcolm - 3.2.1-6 -- use "--findleaks --verbose3" when running test suite - -* Tue Aug 23 2011 David Malcolm - 3.2.1-5 -- re-enable and fix the --with-tsc option on ppc64, and rework it on 32-bit -ppc to avoid aliasing violations (patch 130; rhbz#698726) - -* Tue Aug 23 2011 David Malcolm - 3.2.1-4 -- don't use --with-tsc on ppc64 debug builds (rhbz#698726) - -* Thu Aug 18 2011 David Malcolm - 3.2.1-3 -- add %%python3_version to the rpm macros (rhbz#719082) - -* Mon Jul 11 2011 Dennis Gilmore - 3.2.1-2 -- disable some tests on sparc arches - -* Mon Jul 11 2011 David Malcolm - 3.2.1-1 -- 3.2.1; refresh lib64 patch (102), subprocess unit test patch (129), disabling -of static library build (due to Modules/_testembed; patch 6), autotool -intermediates (patch 300) - -* Fri Jul 8 2011 David Malcolm - 3.2-5 -- use the gdb hooks from the upstream tarball, rather than keeping our own copy - -* Fri Jul 8 2011 David Malcolm - 3.2-4 -- don't run test_openpty and test_pty in %%check - -* Fri Jul 8 2011 David Malcolm - 3.2-3 -- cleanup of BuildRequires; add comment headings to specfile sections - -* Tue Apr 19 2011 David Malcolm - 3.2-2 -- fix the libpython.stp systemtap tapset (rhbz#697730) - -* Mon Feb 21 2011 David Malcolm - 3.2-1 -- 3.2 -- drop alphatag -- regenerate autotool patch - -* Mon Feb 14 2011 David Malcolm - 3.2-0.13.rc3 -- add a /usr/bin/python3-debug symlink within the debug subpackage - -* Mon Feb 14 2011 David Malcolm - 3.2-0.12.rc3 -- 3.2rc3 -- regenerate autotool patch - -* Wed Feb 09 2011 Fedora Release Engineering - 3.2-0.11.rc2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Mon Jan 31 2011 David Malcolm - 3.2-0.10.rc2 -- 3.2rc2 - -* Mon Jan 17 2011 David Malcolm - 3.2-0.9.rc1 -- 3.2rc1 -- rework patch 6 (static lib removal) -- remove upstreamed patch 130 (ppc debug build) -- regenerate patch 300 (autotool intermediates) -- updated packaging to reflect upstream rewrite of "Demo" (issue 7962) -- added libpython3.so and 2to3-3.2 - -* Wed Jan 5 2011 David Malcolm - 3.2-0.8.b2 -- set EXTRA_CFLAGS to our CFLAGS, rather than overriding OPT, fixing a linker -error with dynamic annotations (when configured using --with-valgrind) -- fix the ppc build of the debug configuration (patch 130; rhbz#661510) - -* Tue Jan 4 2011 David Malcolm - 3.2-0.7.b2 -- add --with-valgrind to configuration (on architectures that support this) - -* Wed Dec 29 2010 David Malcolm - 3.2-0.6.b2 -- work around test_subprocess failure seen in koji (patch 129) - -* Tue Dec 28 2010 David Malcolm - 3.2-0.5.b2 -- 3.2b2 -- rework patch 3 (removal of mimeaudio tests), patch 6 (no static libs), -patch 8 (systemtap), patch 102 (lib64) -- remove patch 4 (rendered redundant by upstream r85537), patch 103 (PEP 3149), -patch 110 (upstreamed expat fix), patch 111 (parallel build fix for grammar -fixed upstream) -- regenerate patch 300 (autotool intermediates) -- workaround COUNT_ALLOCS weakref issues in test suite (patch 126, patch 127, -patch 128) -- stop using runtest.sh in %%check (dropped by upstream), replacing with -regrtest; fixup list of failing tests -- introduce "pyshortver", "SOABI_optimized" and "SOABI_debug" macros -- rework manifests of shared libraries to use "SOABI_" macros, reflecting -PEP 3149 -- drop itertools, operator and _collections modules from the manifests as py3k -commit r84058 moved these inside libpython; json/tests moved to test/json_tests -- move turtle code into the tkinter subpackage - -* Wed Nov 17 2010 David Malcolm - 3.2-0.5.a1 -- fix sysconfig to not rely on the -devel subpackage (rhbz#653058) - -* Thu Sep 9 2010 David Malcolm - 3.2-0.4.a1 -- move most of the content of the core package to the libs subpackage, given -that the libs aren't meaningfully usable without the standard libraries - -* Wed Sep 8 2010 David Malcolm - 3.2-0.3.a1 -- Move test.support to core package (rhbz#596258) -- Add various missing __pycache__ directories to payload - -* Sun Aug 22 2010 Toshio Kuratomi - 3.2-0.2.a1 -- Add __pycache__ directory for site-packages - -* Sun Aug 22 2010 Thomas Spura - 3.2-0.1.a1 -- on 64bit "stdlib" was still "/usr/lib/python*" (modify *lib64.patch) -- make find-provides-without-python-sonames.sh 64bit aware - -* Sat Aug 21 2010 David Malcolm - 3.2-0.0.a1 -- 3.2a1; add alphatag -- rework %%files in the light of PEP 3147 (__pycache__) -- drop our configuration patch to Setup.dist (patch 0): setup.py should do a -better job of things, and the %%files explicitly lists our modules (r82746 -appears to break the old way of doing things). This leads to various modules -changing from "foomodule.so" to "foo.so". It also leads to the optimized build -dropping the _sha1, _sha256 and _sha512 modules, but these are provided by -_hashlib; _weakref becomes a builtin module; xxsubtype goes away (it's only for -testing/devel purposes) -- fixup patches 3, 4, 6, 8, 102, 103, 105, 111 for the rebase -- remove upstream patches: 7 (system expat), 106, 107, 108 (audioop reformat -plus CVE-2010-1634 and CVE-2010-2089), 109 (CVE-2008-5983) -- add machinery for rebuilding "configure" and friends, using the correct -version of autoconf (patch 300) -- patch the debug build's usage of COUNT_ALLOCS to be less verbose (patch 125) -- "modulator" was removed upstream -- drop "-b" from patch applications affecting .py files to avoid littering the -installation tree - -* Thu Aug 19 2010 Toshio Kuratomi - 3.1.2-13 -- Turn on computed-gotos. -- Fix for parallel make and graminit.c - -* Fri Jul 2 2010 David Malcolm - 3.1.2-12 -- rebuild - -* Fri Jul 2 2010 David Malcolm - 3.1.2-11 -- Fix an incompatibility between pyexpat and the system expat-2.0.1 that led to -a segfault running test_pyexpat.py (patch 110; upstream issue 9054; rhbz#610312) - -* Fri Jun 4 2010 David Malcolm - 3.1.2-10 -- ensure that the compiler is invoked with "-fwrapv" (rhbz#594819) -- reformat whitespace in audioop.c (patch 106) -- CVE-2010-1634: fix various integer overflow checks in the audioop -module (patch 107) -- CVE-2010-2089: further checks within the audioop module (patch 108) -- CVE-2008-5983: the new PySys_SetArgvEx entry point from r81399 (patch 109) - -* Thu May 27 2010 Dan Horák - 3.1.2-9 -- reading the timestamp counter is available only on some arches (see Python/ceval.c) - -* Wed May 26 2010 David Malcolm - 3.1.2-8 -- add flags for statvfs.f_flag to the constant list in posixmodule (i.e. "os") -(patch 105) - -* Tue May 25 2010 David Malcolm - 3.1.2-7 -- add configure-time support for COUNT_ALLOCS and CALL_PROFILE debug options -(patch 104); enable them and the WITH_TSC option within the debug build - -* Mon May 24 2010 David Malcolm - 3.1.2-6 -- build and install two different configurations of Python 3: debug and -standard, packaging the debug build in a new "python3-debug" subpackage -(patch 103) - -* Tue Apr 13 2010 David Malcolm - 3.1.2-5 -- exclude test_http_cookies when running selftests, due to hang seen on -http://koji.fedoraproject.org/koji/taskinfo?taskID=2088463 (cancelled after -11 hours) -- update python-gdb.py from v5 to py3k version submitted upstream - -* Wed Mar 31 2010 David Malcolm - 3.1.2-4 -- update python-gdb.py from v4 to v5 (improving performance and stability, -adding commands) - -* Thu Mar 25 2010 David Malcolm - 3.1.2-3 -- update python-gdb.py from v3 to v4 (fixing infinite recursion on reference -cycles and tracebacks on bytes 0x80-0xff in strings, adding handlers for sets -and exceptions) - -* Wed Mar 24 2010 David Malcolm - 3.1.2-2 -- refresh gdb hooks to v3 (reworking how they are packaged) - -* Sun Mar 21 2010 David Malcolm - 3.1.2-1 -- update to 3.1.2: http://www.python.org/download/releases/3.1.2/ -- drop upstreamed patch 2 (.pyc permissions handling) -- drop upstream patch 5 (fix for the test_tk and test_ttk_* selftests) -- drop upstreamed patch 200 (path-fixing script) - -* Sat Mar 20 2010 David Malcolm - 3.1.1-28 -- fix typo in libpython.stp (rhbz:575336) - -* Fri Mar 12 2010 David Malcolm - 3.1.1-27 -- add pyfuntop.stp example (source 7) -- convert usage of $$RPM_BUILD_ROOT to %%{buildroot} throughout, for -consistency with python.spec - -* Mon Feb 15 2010 Thomas Spura - 3.1.1-26 -- rebuild for new package of redhat-rpm-config (rhbz:564527) -- use 'install -p' when running 'make install' - -* Fri Feb 12 2010 David Malcolm - 3.1.1-25 -- split configure options into multiple lines for easy of editing -- add systemtap static markers (wcohen, mjw, dmalcolm; patch 8), a systemtap -tapset defining "python.function.entry" and "python.function.return" to make -the markers easy to use (dmalcolm; source 5), and an example of using the -tapset to the docs (dmalcolm; source 6) (rhbz:545179) - -* Mon Feb 8 2010 David Malcolm - 3.1.1-24 -- move the -gdb.py file from %%{_libdir}/INSTSONAME-gdb.py to -%%{_prefix}/lib/debug/%%{_libdir}/INSTSONAME.debug-gdb.py to avoid noise from -ldconfig (bug 562980), and which should also ensure it becomes part of the -debuginfo subpackage, rather than the libs subpackage -- introduce %%{py_SOVERSION} and %%{py_INSTSONAME} to reflect the upstream -configure script, and to avoid fragile scripts that try to figure this out -dynamically (e.g. for the -gdb.py change) - -* Mon Feb 8 2010 David Malcolm - 3.1.1-23 -- add gdb hooks for easier debugging (Source 4) - -* Thu Jan 28 2010 David Malcolm - 3.1.1-22 -- update python-3.1.1-config.patch to remove downstream customization of build -of pyexpat and elementtree modules -- add patch adapted from upstream (patch 7) to add support for building against -system expat; add --with-system-expat to "configure" invocation -- remove embedded copies of expat and zlib from source tree during "prep" - -* Mon Jan 25 2010 David Malcolm - 3.1.1-21 -- introduce %%{dynload_dir} macro -- explicitly list all lib-dynload files, rather than dynamically gathering the -payload into a temporary text file, so that we can be sure what we are -shipping -- introduce a macros.pybytecompile source file, to help with packaging python3 -modules (Source3; written by Toshio) -- rename "2to3-3" to "python3-2to3" to better reflect python 3 module packaging -plans - -* Mon Jan 25 2010 David Malcolm - 3.1.1-20 -- change python-3.1.1-config.patch to remove our downstream change to curses -configuration in Modules/Setup.dist, so that the curses modules are built using -setup.py with the downstream default (linking against libncursesw.so, rather -than libncurses.so), rather than within the Makefile; add a test to %%install -to verify the dso files that the curses module is linked against the correct -DSO (bug 539917; changes _cursesmodule.so -> _curses.so) - -* Fri Jan 22 2010 David Malcolm - 3.1.1-19 -- add %%py3dir macro to macros.python3 (to be used during unified python 2/3 -builds for setting up the python3 copy of the source tree) - -* Wed Jan 20 2010 David Malcolm - 3.1.1-18 -- move lib2to3 from -tools subpackage to main package (bug 556667) - -* Sun Jan 17 2010 David Malcolm - 3.1.1-17 -- patch Makefile.pre.in to avoid building static library (patch 6, bug 556092) - -* Fri Jan 15 2010 David Malcolm - 3.1.1-16 -- use the %%{_isa} macro to ensure that the python-devel dependency on python -is for the correct multilib arch (#555943) -- delete bundled copy of libffi to make sure we use the system one - -* Fri Jan 15 2010 David Malcolm - 3.1.1-15 -- fix the URLs output by pydoc so they point at python.org's 3.1 build of the -docs, rather than the 2.6 build - -* Wed Jan 13 2010 David Malcolm - 3.1.1-14 -- replace references to /usr with %%{_prefix}; replace references to -/usr/include with %%{_includedir} (Toshio) - -* Mon Jan 11 2010 David Malcolm - 3.1.1-13 -- fix permission on find-provides-without-python-sonames.sh from 775 to 755 - -* Mon Jan 11 2010 David Malcolm - 3.1.1-12 -- remove build-time requirements on tix and tk, since we already have -build-time requirements on the -devel subpackages for each of these (Thomas -Spura) -- replace usage of %%define with %%global (Thomas Spura) -- remove forcing of CC=gcc as this old workaround for bug 109268 appears to -longer be necessary -- move various test files from the "tools"/"tkinter" subpackages to the "test" -subpackage - -* Thu Jan 7 2010 David Malcolm - 3.1.1-11 -- add %%check section (thanks to Thomas Spura) -- update patch 4 to use correct shebang line -- get rid of stray patch file from buildroot - -* Tue Nov 17 2009 Andrew McNabb - 3.1.1-10 -- switched a few instances of "find |xargs" to "find -exec" for consistency. -- made the description of __os_install_post more accurate. - -* Wed Nov 4 2009 David Malcolm - 3.1.1-9 -- add macros.python3 to the -devel subpackage, containing common macros for use -when packaging python3 modules - -* Tue Nov 3 2009 David Malcolm - 3.1.1-8 -- add a provides of "python(abi)" (see bug 532118) -- fix issues identified by a.badger in package review (bug 526126, comment 39): - - use "3" thoughout metadata, rather than "3.*" - - remove conditional around "pkg-config openssl" - - use standard cleanup of RPM_BUILD_ROOT - - replace hardcoded references to /usr with _prefix macro - - stop removing egg-info files - - use /usr/bin/python3.1 rather than /use/bin/env python3.1 when fixing -up shebang lines - - stop attempting to remove no-longer-present .cvsignore files - - move the post/postun sections above the "files" sections - -* Thu Oct 29 2009 David Malcolm - 3.1.1-7 -- remove commented-away patch 51 (python-2.6-distutils_rpm.patch): the -O1 -flag is used by default in the upstream code -- "Makefile" and the config-32/64.h file are needed by distutils/sysconfig.py -_init_posix(), so we include them in the core package, along with their parent -directories (bug 531901) - -* Tue Oct 27 2009 David Malcolm - 3.1.1-6 -- reword description, based on suggestion by amcnabb -- fix the test_email and test_imp selftests (patch 3 and patch 4 respectively) -- fix the test_tk and test_ttk_* selftests (patch 5) -- fix up the specfile's handling of shebang/perms to avoid corrupting -test_httpservers.py (sed command suggested by amcnabb) - -* Thu Oct 22 2009 David Malcolm - 3.1.1-5 -- fixup importlib/_bootstrap.py so that it correctly handles being unable to -open .pyc files for writing (patch 2, upstream issue 7187) -- actually apply the rpath patch (patch 1) - -* Thu Oct 22 2009 David Malcolm - 3.1.1-4 -- update patch0's setup of the crypt module to link it against libcrypt -- update patch0 to comment "datetimemodule" back out, so that it is built -using setup.py (see Setup, option 3), thus linking it statically against -timemodule.c and thus avoiding a run-time "undefined symbol: -_PyTime_DoubleToTimet" failure on "import datetime" - -* Wed Oct 21 2009 David Malcolm - 3.1.1-3 -- remove executable flag from various files that shouldn't have it -- fix end-of-line encodings -- fix a character encoding - -* Tue Oct 20 2009 David Malcolm - 3.1.1-2 -- disable invocation of brp-python-bytecompile in postprocessing, since -it would be with the wrong version of python (adapted from ivazquez' -python3000 specfile) -- use a custom implementation of __find_provides in order to filter out bogus -provides lines for the various .so modules -- fixup distutils/unixccompiler.py to remove standard library path from rpath -(patch 1, was Patch0 in ivazquez' python3000 specfile) -- split out libraries into a -libs subpackage -- update summaries and descriptions, basing content on ivazquez' specfile -- fixup executable permissions on .py, .xpm and .xbm files, based on work in -ivazquez's specfile -- get rid of DOS batch files -- fixup permissions for shared libraries from non-standard 555 to standard 755 -- move /usr/bin/python*-config to the -devel subpackage -- mark various directories as being documentation - -* Thu Sep 24 2009 Andrew McNabb 3.1.1-1 -- Initial package for Python 3. - From 4aedf056ed1b66ccc2b8de1e13aec2e5322c250e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 6 Feb 2019 17:28:13 +0100 Subject: [PATCH 06/42] Update Fedora CI tests definitions for 3.8 --- tests/tests.yml | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/tests/tests.yml b/tests/tests.yml index d26ece2..558953f 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -10,18 +10,12 @@ tests: - smoke: dir: python/smoke - run: VERSION=3.7 ./venv.sh + run: VERSION=3.8 ./venv.sh - selftest: dir: python/selftest - run: VERSION=3.7 X="-x test_socket -x test_asyncgen -x test_asyncio -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./parallel.sh - - findleaks: - dir: python/selftest - run: VERSION=3.7 X="-x test_socket -x test_asyncgen -x test_asyncio -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./findleaks.sh + run: VERSION=3.8 X="-x test_socket -x test_asyncgen -x test_asyncio -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./parallel.sh required_packages: - gcc # for extension building in venv and selftest - - python3-debug # for leak testing - - python3-devel # for extension building in venv and selftest - - python3-tkinter # for selftest - - python3-test # for selftest + - python38 # the test subject - python3-tox # for venv tests - glibc-all-langpacks # for locale tests From 553fd279baf25122ce00ea8b4ae565a27a72c9d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 6 Feb 2019 02:25:20 +0100 Subject: [PATCH 07/42] rpmlint: Python modules don't need to be linked against libc They are loaded from Python and Python is already linked against libc. See https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/QGJEDBFN7OXMP7OVTSVBO4DCGTX4K4WI/ --- python38.rpmlintrc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/python38.rpmlintrc b/python38.rpmlintrc index d59fe13..e1e2cbe 100644 --- a/python38.rpmlintrc +++ b/python38.rpmlintrc @@ -71,5 +71,8 @@ addFilter(r'read-error /usr/lib(64)?/pkgconfig/python-3\.\ddm\.pc \[Errno 2\]') # we need this macro to evaluate, even if the line starts with # addFilter(r'macro-in-comment %\{_pyconfig(32|64)_h\}') +# Python modules don't need to be linked against libc +addFilter(r'E: library-not-linked-against-libc /usr/lib(64)?/python3.\d/lib-dynload/') + # SPELLING ERRORS addFilter(r'spelling-error .* en_US (bytecode|pyc|filename|tkinter|namespaces|pytest) ') From d08091876766f5badc6ca946edb3652a8ab4f758 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Sun, 17 Feb 2019 09:30:52 +0100 Subject: [PATCH 08/42] Rebuild for readline 8.0 --- python38.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python38.spec b/python38.spec index c822f64..942b233 100644 --- a/python38.spec +++ b/python38.spec @@ -17,7 +17,7 @@ URL: https://www.python.org/ %global prerel a1 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 1%{?dist} +Release: 2%{?dist} License: Python @@ -1478,5 +1478,8 @@ CheckPython optimized # ====================================================== %changelog +* Sun Feb 17 2019 Igor Gnatenko - 3.8.0~a1-2 +- Rebuild for readline 8.0 + * Tue Feb 05 2019 Miro Hrončok - 3.8.0~a1-1 - Update to 3.8.0a1 From 8449402f77556af669063726e55a7e65c3809da6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 2 Jan 2019 18:15:20 +0100 Subject: [PATCH 09/42] Reduced default build flags used to build extension modules Utilize extension_...flags for extension builds. See https://fedoraproject.org/wiki/Changes/Python_Extension_Flags Depends on https://src.fedoraproject.org/rpms/redhat-rpm-config/c/e80fa1344a49662fec08d650debf793048c87429 --- python38.spec | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/python38.spec b/python38.spec index 942b233..b06ab0f 100644 --- a/python38.spec +++ b/python38.spec @@ -17,7 +17,7 @@ URL: https://www.python.org/ %global prerel a1 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 2%{?dist} +Release: 3%{?dist} License: Python @@ -170,6 +170,7 @@ BuildRequires: ncurses-devel BuildRequires: openssl-devel BuildRequires: pkgconfig BuildRequires: readline-devel +BuildRequires: redhat-rpm-config >= 127 BuildRequires: sqlite-devel BuildRequires: gdb @@ -406,12 +407,6 @@ Requires: python3-rpm-generators # See https://fedoraproject.org/wiki/Packaging:Directory_Replacement Requires: python3-setuptools -# https://bugzilla.redhat.com/show_bug.cgi?id=1217376 -# https://bugzilla.redhat.com/show_bug.cgi?id=1496757 -# https://bugzilla.redhat.com/show_bug.cgi?id=1218294 -# TODO change to a specific subpackage once available (#1218294) -Requires: redhat-rpm-config - Provides: %{name}-2to3 = %{version}-%{release} Provides: 2to3 = %{version}-%{release} @@ -507,8 +502,6 @@ so extensions for both versions can co-exist in the same directory. %else # with flatpackage -Requires: redhat-rpm-config - # We'll not provide this, on purpose # No package in Fedora shall ever depend on flatpackage via this %global __requires_exclude ^python\\(abi\\) = 3\\..$ @@ -605,13 +598,21 @@ topdir=$(pwd) %endif # Set common compiler/linker flags -export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv" -export CXXFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv" +# We utilize the %%extension_...flags macros here so users building C/C++ +# extensions with our python won't get all the compiler/linker flags used +# in Fedora RPMs. +# Standard library built here will still use the %%build_...flags, +# Fedora packages utilizing %%py3_build will use them as well +# https://fedoraproject.org/wiki/Changes/Python_Extension_Flags +export CFLAGS="%{extension_cflags} -D_GNU_SOURCE -fPIC -fwrapv" +export CFLAGS_NODIST="%{build_cflags} -D_GNU_SOURCE -fPIC -fwrapv" +export CXXFLAGS="%{extension_cxxflags} -D_GNU_SOURCE -fPIC -fwrapv" export CPPFLAGS="$(pkg-config --cflags-only-I libffi)" -export OPT="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv" +export OPT="%{extension_cflags} -D_GNU_SOURCE -fPIC -fwrapv" export LINKCC="gcc" export CFLAGS="$CFLAGS $(pkg-config --cflags openssl)" -export LDFLAGS="$RPM_LD_FLAGS -g $(pkg-config --libs-only-L openssl)" +export LDFLAGS="%{extension_ldflags} -g $(pkg-config --libs-only-L openssl)" +export LDFLAGS_NODIST="%{build_ldflags} -g $(pkg-config --libs-only-L openssl)" # We can build several different configurations of Python: regular and debug. # Define a common function that does one build: @@ -1478,6 +1479,10 @@ CheckPython optimized # ====================================================== %changelog +* Mon Feb 18 2019 Miro Hrončok - 3.8.0~a1-3 +- Reduced default build flags used to build extension modules + https://fedoraproject.org/wiki/Changes/Python_Extension_Flags + * Sun Feb 17 2019 Igor Gnatenko - 3.8.0~a1-2 - Rebuild for readline 8.0 From 5e25a870914dc63f4fe6811b4c2fca9cc3d90e7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 26 Feb 2019 00:51:48 +0100 Subject: [PATCH 10/42] Update to 3.8.0a2 --- python38.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/python38.spec b/python38.spec index b06ab0f..ca79117 100644 --- a/python38.spec +++ b/python38.spec @@ -14,10 +14,10 @@ URL: https://www.python.org/ # WARNING When rebasing to a new Python version, # remember to update the python3-docs package as well %global general_version %{pybasever}.0 -%global prerel a1 +%global prerel a2 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 3%{?dist} +Release: 1%{?dist} License: Python @@ -1479,6 +1479,9 @@ CheckPython optimized # ====================================================== %changelog +* Mon Feb 25 2019 Miro Hrončok - 3.8.0~a2-1 +- Update to 3.8.0a2 + * Mon Feb 18 2019 Miro Hrončok - 3.8.0~a1-3 - Reduced default build flags used to build extension modules https://fedoraproject.org/wiki/Changes/Python_Extension_Flags diff --git a/sources b/sources index 8f72af4..29d07a2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Python-3.8.0a1.tar.xz) = 81e0aea4cf37f432d72464579f1b97db574496fa7105c7b2e02caed2e27d95288f21605666e80b60a01c66afb115714004b4a219b31ce21c8f732828b70b24e2 +SHA512 (Python-3.8.0a2.tar.xz) = ebba962aa73bf690f33f4e2183da5f64f13cdd892d94c48b433cd04f7cdbc8baf88ff60d7998c330683b590f7c02fa2f426c9cbde461f36871bda728ab4f07ac From ad7d856a30e0b7d042f8d6365146296e62a801d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Sun, 10 Mar 2019 19:48:49 +0100 Subject: [PATCH 11/42] Add bootstrap bcond for Python 3.8 --- python38.spec | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/python38.spec b/python38.spec index ca79117..6614951 100644 --- a/python38.spec +++ b/python38.spec @@ -36,6 +36,17 @@ License: Python # WARNING: This does not change the package name and summary above %bcond_without flatpackage +# When bootstrapping python3, we need to build setuptools. +# but setuptools BR python3-devel and that brings in python3-rpm-generators; +# python3-rpm-generators needs python3-setuptools, so we cannot have it yet. +# +# Procedure: https://fedoraproject.org/wiki/SIGs/Python/UpgradingPython +# +# IMPORTANT: When bootstrapping, it's very likely the wheels for pip and +# setuptools are not available. Turn off the rpmwheels bcond until +# the two packages are built with wheels to get around the issue. +%bcond_with bootstrap + # Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package # Uses upstream bundled prebuilt wheels otherwise %bcond_without rpmwheels @@ -77,10 +88,6 @@ License: Python %endif -# Notes from bootstraping Python 3.7: -# https://fedoraproject.org/wiki/SIGs/Python/UpgradingPython - - # ===================== # General global macros # ===================== @@ -396,8 +403,8 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release} BuildRequires: python-rpm-macros Requires: python-rpm-macros Requires: python3-rpm-macros -Requires: python3-rpm-generators +%if %{without bootstrap} # This is not "API" (packages that need setuptools should still BuildRequire it) # However some packages apparently can build both with and without setuptools # producing egg-info as file or directory (depending on setuptools presence). @@ -407,6 +414,9 @@ Requires: python3-rpm-generators # See https://fedoraproject.org/wiki/Packaging:Directory_Replacement Requires: python3-setuptools +Requires: python3-rpm-generators +%endif + Provides: %{name}-2to3 = %{version}-%{release} Provides: 2to3 = %{version}-%{release} From 804ec7c37d91ca30ddaf9465cff955d886b95616 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 27 Mar 2019 01:14:40 +0100 Subject: [PATCH 12/42] Update to 3.8.0a3 Rebased patches: 102 Updated pip/setuptools versions in spec and patch 189 --- 00102-lib64.patch | 62 +++++++++++++++++++------------------- 00189-use-rpm-wheels.patch | 4 +-- python38.spec | 13 +++++--- sources | 2 +- 4 files changed, 42 insertions(+), 39 deletions(-) diff --git a/00102-lib64.patch b/00102-lib64.patch index b082083..33b2422 100644 --- a/00102-lib64.patch +++ b/00102-lib64.patch @@ -23,7 +23,7 @@ diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py index e07a6c8..554740d 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py -@@ -129,8 +129,12 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): +@@ -140,8 +140,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": @@ -108,7 +108,7 @@ diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py index 266adf0..e8513b6 100644 --- a/Lib/test/test_site.py +++ b/Lib/test/test_site.py -@@ -275,8 +275,8 @@ class HelperFunctionsTests(unittest.TestCase): +@@ -266,8 +266,8 @@ class HelperFunctionsTests(unittest.TestCase): dirs = site.getsitepackages() if os.sep == '/': # OS X, Linux, FreeBSD, etc @@ -123,7 +123,7 @@ diff --git a/Makefile.pre.in b/Makefile.pre.in index 59ba9d4..5780ed8 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -133,7 +133,7 @@ LIBDIR= @libdir@ +@@ -140,7 +140,7 @@ LIBDIR= @libdir@ MANDIR= @mandir@ INCLUDEDIR= @includedir@ CONFINCLUDEDIR= $(exec_prefix)/include @@ -133,28 +133,28 @@ index 59ba9d4..5780ed8 100644 # Detailed destination directories diff --git a/Modules/getpath.c b/Modules/getpath.c -index 85e737b..2a1fc79 100644 +index dd188c6..6e69eed 100644 --- a/Modules/getpath.c +++ b/Modules/getpath.c -@@ -500,7 +500,7 @@ calculate_exec_prefix(const _PyCoreConfig *core_config, - "Could not find platform dependent libraries \n"); +@@ -688,7 +688,7 @@ calculate_exec_prefix(const _PyCoreConfig *core_config, + if (safe_wcscpy(exec_prefix, calculate->exec_prefix, exec_prefix_len) < 0) { + return PATHLEN_ERR(); + } +- err = joinpath(exec_prefix, L"lib/lib-dynload", exec_prefix_len); ++ err = joinpath(exec_prefix, L"lib64/lib-dynload", exec_prefix_len); + if (_Py_INIT_FAILED(err)) { + return err; + } +@@ -1015,7 +1015,7 @@ calculate_zip_path(PyCalculatePath *calculate, const wchar_t *prefix) + return PATHLEN_ERR(); } - wcsncpy(exec_prefix, calculate->exec_prefix, MAXPATHLEN); -- joinpath(exec_prefix, L"lib/lib-dynload"); -+ joinpath(exec_prefix, L"lib64/lib-dynload"); } - /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */ - } -@@ -742,7 +742,7 @@ calculate_zip_path(PyCalculatePath *calculate, const wchar_t *prefix) - else { - wcsncpy(calculate->zip_path, calculate->prefix, MAXPATHLEN); +- err = joinpath(calculate->zip_path, L"lib/python00.zip", zip_path_len); ++ err = joinpath(calculate->zip_path, L"lib64/python00.zip", zip_path_len); + if (_Py_INIT_FAILED(err)) { + return err; } -- joinpath(calculate->zip_path, L"lib/python00.zip"); -+ joinpath(calculate->zip_path, L"lib64/python00.zip"); - - /* Replace "00" with version */ - size_t bufsz = wcslen(calculate->zip_path); -@@ -867,7 +867,7 @@ calculate_init(PyCalculatePath *calculate, +@@ -1144,7 +1144,7 @@ calculate_init(PyCalculatePath *calculate, if (!calculate->prefix) { return DECODE_LOCALE_ERR("EXEC_PREFIX define", len); } @@ -164,29 +164,29 @@ index 85e737b..2a1fc79 100644 return DECODE_LOCALE_ERR("EXEC_PREFIX define", len); } diff --git a/setup.py b/setup.py -index f1933f7..450cd8a 100644 +index 0258d3d..4b969bf 100644 --- a/setup.py +++ b/setup.py -@@ -531,7 +531,7 @@ class PyBuildExt(build_ext): +@@ -610,7 +610,7 @@ class PyBuildExt(build_ext): # directories (i.e. '.' and 'Include') must be first. See issue # 10520. - if not cross_compiling: + if not CROSS_COMPILING: - add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') + add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib64') 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: -@@ -830,11 +830,11 @@ class PyBuildExt(build_ext): + if CROSS_COMPILING: +@@ -902,11 +902,11 @@ class PyBuildExt(build_ext): elif curses_library: readline_libs.append(curses_library) - elif self.compiler.find_library_file(lib_dirs + + elif self.compiler.find_library_file(self.lib_dirs + - ['/usr/lib/termcap'], + ['/usr/lib64/termcap'], 'termcap'): readline_libs.append('termcap') - exts.append( Extension('readline', ['readline.c'], -- library_dirs=['/usr/lib/termcap'], -+ library_dirs=['/usr/lib64/termcap'], - extra_link_args=readline_extra_link_args, - libraries=readline_libs) ) + self.add(Extension('readline', ['readline.c'], +- library_dirs=['/usr/lib/termcap'], ++ library_dirs=['/usr/lib64/termcap'], + extra_link_args=readline_extra_link_args, + libraries=readline_libs)) else: diff --git a/00189-use-rpm-wheels.patch b/00189-use-rpm-wheels.patch index 1afdab1..ffb80af 100644 --- a/00189-use-rpm-wheels.patch +++ b/00189-use-rpm-wheels.patch @@ -16,9 +16,9 @@ index 4748ba4..fc02255 100644 +_WHEEL_DIR = "/usr/share/python-wheels/" --_SETUPTOOLS_VERSION = "40.6.2" +-_SETUPTOOLS_VERSION = "40.8.0" --_PIP_VERSION = "18.1" +-_PIP_VERSION = "19.0.3" +def _get_most_recent_wheel_version(pkg): + prefix = os.path.join(_WHEEL_DIR, "{}-".format(pkg)) + suffix = "-py2.py3-none-any.whl" diff --git a/python38.spec b/python38.spec index 6614951..30f4dd3 100644 --- a/python38.spec +++ b/python38.spec @@ -14,7 +14,7 @@ URL: https://www.python.org/ # WARNING When rebasing to a new Python version, # remember to update the python3-docs package as well %global general_version %{pybasever}.0 -%global prerel a2 +%global prerel a3 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} Release: 1%{?dist} @@ -379,8 +379,8 @@ Summary: Python runtime libraries Requires: python-setuptools-wheel Requires: python-pip-wheel %else -Provides: bundled(python3-pip) = 18.1 -Provides: bundled(python3-setuptools) = 40.6.2 +Provides: bundled(python3-pip) = 19.0.3 +Provides: bundled(python3-setuptools) = 40.8.0 %endif # There are files in the standard library that have python shebang. @@ -521,8 +521,8 @@ so extensions for both versions can co-exist in the same directory. Requires: python-setuptools-wheel Requires: python-pip-wheel %else -Provides: bundled(python3-pip) = 18.1 -Provides: bundled(python3-setuptools) = 40.6.2 +Provides: bundled(python3-pip) = 19.0.3 +Provides: bundled(python3-setuptools) = 40.8.0 %endif # The description for the flat package @@ -1489,6 +1489,9 @@ CheckPython optimized # ====================================================== %changelog +* Tue Mar 26 2019 Miro Hrončok - 3.8.0~a3-1 +- Update to 3.8.0a3 + * Mon Feb 25 2019 Miro Hrončok - 3.8.0~a2-1 - Update to 3.8.0a2 diff --git a/sources b/sources index 29d07a2..4f6b5c4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Python-3.8.0a2.tar.xz) = ebba962aa73bf690f33f4e2183da5f64f13cdd892d94c48b433cd04f7cdbc8baf88ff60d7998c330683b590f7c02fa2f426c9cbde461f36871bda728ab4f07ac +SHA512 (Python-3.8.0a3.tar.xz) = 2348416c3118d1ff6b88b1ee823046de6a26305c10dd900fcb59fbc5b37a8f54db7afcd2f8e7c927c50c4f317a8c20370478030f996f93c63381d2167247e6fd From 136178652c45553ed8b1135d98edf572ca098b89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 20 Mar 2019 11:31:21 +0000 Subject: [PATCH 13/42] Temporarily skip test_asyncio to workaround bpo-35998 https://bugs.python.org/issue35998 --- python38.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/python38.spec b/python38.spec index 30f4dd3..217db85 100644 --- a/python38.spec +++ b/python38.spec @@ -978,6 +978,8 @@ CheckPython() { # our non-standard decorators take effect on the relevant tests: # @unittest._skipInRpmBuild(reason) # @unittest._expectedFailureInRpmBuild + # test_asyncio skipped: + # https://bugs.python.org/issue35998 WITHIN_PYTHON_RPM_BUILD= \ LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \ -wW --slowest -j0 \ @@ -990,6 +992,7 @@ CheckPython() { %ifarch ppc64le -x test_buffer \ %endif + -x test_asyncio \ echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName From b02de40d57688ae9f50044e848e69daf775ff011 Mon Sep 17 00:00:00 2001 From: Tomas Orsava Date: Thu, 14 Feb 2019 17:37:18 +0100 Subject: [PATCH 14/42] Fix arch names for the ppc architecture Updated patch 00274 --- 00274-fix-arch-names.patch | 39 +++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/00274-fix-arch-names.patch b/00274-fix-arch-names.patch index c8e53c1..ee15930 100644 --- a/00274-fix-arch-names.patch +++ b/00274-fix-arch-names.patch @@ -1,8 +1,19 @@ +From 3b0d3a25576e74c2ac1eb25136ae811bdbdd7c6c Mon Sep 17 00:00:00 2001 +From: Tomas Orsava +Date: Thu, 14 Feb 2019 16:08:57 +0100 +Subject: [PATCH] Upstream uses Debian-style architecture naming. Change to + match Fedora / RHEL + +--- + config.sub | 2 +- + configure.ac | 16 ++++++++-------- + 2 files changed, 9 insertions(+), 9 deletions(-) + diff --git a/config.sub b/config.sub -index ba37cf9..52a9ec6 100755 +index 40ea5df..932128b 100755 --- a/config.sub +++ b/config.sub -@@ -1042,7 +1042,7 @@ case $basic_machine in +@@ -1045,7 +1045,7 @@ case $basic_machine in ;; ppc64) basic_machine=powerpc64-unknown ;; @@ -12,10 +23,10 @@ index ba37cf9..52a9ec6 100755 ppc64le | powerpc64little) basic_machine=powerpc64le-unknown diff --git a/configure.ac b/configure.ac -index 2535969..9fb3193 100644 +index a075ce3..b7f2ee3 100644 --- a/configure.ac +++ b/configure.ac -@@ -765,9 +765,9 @@ cat >> conftest.c <> conftest.c <> conftest.c <> conftest.c <> conftest.c <> conftest.c <> conftest.c < Date: Fri, 15 Feb 2019 14:55:26 +0100 Subject: [PATCH 15/42] Reenable test_buffer on ppc64le The test failed because of a GCC bug which has been fixed in GCC master branch and Rawhide uses GCC 9 (master branch): * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88892 * https://bugzilla.redhat.com/show_bug.cgi?id=1540995 --- python38.spec | 3 --- 1 file changed, 3 deletions(-) diff --git a/python38.spec b/python38.spec index 217db85..b5797a8 100644 --- a/python38.spec +++ b/python38.spec @@ -989,9 +989,6 @@ CheckPython() { %ifarch %{mips64} -x test_ctypes \ %endif - %ifarch ppc64le - -x test_buffer \ - %endif -x test_asyncio \ echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName From 0cd827e77ed2a322f12b484dd38a0306ba6c565d Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 31 Jan 2019 11:56:28 +0100 Subject: [PATCH 16/42] Reenable test_gdb on most archs except arm and s390x gdb has been fixed in Rawhide: https://bugzilla.redhat.com/show_bug.cgi?id=1638798 https://bugzilla.redhat.com/show_bug.cgi?id=1634781 Install also gdb in selftest to no longer skip test_gdb on the x86_64 CI. But test_gdb is still skipped on armv7hl: https://bugzilla.redhat.com/show_bug.cgi?id=1196181 And skipped on s390x: https://bugzilla.redhat.com/show_bug.cgi?id=1678277 --- python38.spec | 6 ++++++ tests/tests.yml | 1 + 2 files changed, 7 insertions(+) diff --git a/python38.spec b/python38.spec index b5797a8..1261dcd 100644 --- a/python38.spec +++ b/python38.spec @@ -978,6 +978,10 @@ CheckPython() { # our non-standard decorators take effect on the relevant tests: # @unittest._skipInRpmBuild(reason) # @unittest._expectedFailureInRpmBuild + # test_gdb skipped on armv7hl: + # https://bugzilla.redhat.com/show_bug.cgi?id=1196181 + # test_gdb skipped on s390x: + # https://bugzilla.redhat.com/show_bug.cgi?id=1678277 # test_asyncio skipped: # https://bugs.python.org/issue35998 WITHIN_PYTHON_RPM_BUILD= \ @@ -985,7 +989,9 @@ CheckPython() { -wW --slowest -j0 \ -x test_distutils \ -x test_bdist_rpm \ + %ifarch %{arm} s390x -x test_gdb \ + %endif %ifarch %{mips64} -x test_ctypes \ %endif diff --git a/tests/tests.yml b/tests/tests.yml index 558953f..ccc6808 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -16,6 +16,7 @@ run: VERSION=3.8 X="-x test_socket -x test_asyncgen -x test_asyncio -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./parallel.sh required_packages: - gcc # for extension building in venv and selftest + - gdb # for test_gdb - python38 # the test subject - python3-tox # for venv tests - glibc-all-langpacks # for locale tests From b564dce4fa452ad42ade6b898c551b64253ba2ba Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 5 Mar 2019 15:35:12 +0100 Subject: [PATCH 17/42] Reenable RecvmsgGenericStreamTests.testRecvmsgEOF() Reenable RecvmsgGenericStreamTests.testRecvmsgEOF() of test_socket: remove 00163-disable-parts-of-test_socket-in-rpm-build.patch. --- 00163-disable-parts-of-test_socket-in-rpm-build.patch | 11 ----------- python38.spec | 7 ------- 2 files changed, 18 deletions(-) delete mode 100644 00163-disable-parts-of-test_socket-in-rpm-build.patch diff --git a/00163-disable-parts-of-test_socket-in-rpm-build.patch b/00163-disable-parts-of-test_socket-in-rpm-build.patch deleted file mode 100644 index 0e28036..0000000 --- a/00163-disable-parts-of-test_socket-in-rpm-build.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up Python-3.3.0b1/Lib/test/test_socket.py.disable-test_socket-in-rpm-builds Python-3.3.0b1/Lib/test/test_socket.py ---- Python-3.3.0b1/Lib/test/test_socket.py.disable-test_socket-in-rpm-builds 2012-07-24 15:02:30.823355067 -0400 -+++ Python-3.3.0b1/Lib/test/test_socket.py 2012-07-24 15:08:13.021354999 -0400 -@@ -2188,6 +2188,7 @@ class RecvmsgGenericStreamTests(RecvmsgG - # Tests which require a stream socket and can use either recvmsg() - # or recvmsg_into(). - -+ @unittest._skipInRpmBuild('fails intermittently when run within Koji') - def testRecvmsgEOF(self): - # Receive end-of-stream indicator (b"", peer socket closed). - msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock, 1024) diff --git a/python38.spec b/python38.spec index 1261dcd..341d436 100644 --- a/python38.spec +++ b/python38.spec @@ -261,12 +261,6 @@ Patch132: 00132-add-rpmbuild-hooks-to-unittest.patch # Not yet sent upstream Patch160: 00160-disable-test_fs_holes-in-rpm-build.patch -# 00163 # -# Some tests within test_socket fail intermittently when run inside Koji; -# disable them using unittest._skipInRpmBuild -# Not yet sent upstream -Patch163: 00163-disable-parts-of-test_socket-in-rpm-build.patch - # 00178 # # Don't duplicate various FLAGS in sysconfig values # http://bugs.python.org/issue17679 @@ -561,7 +555,6 @@ rm -r Modules/expat %patch111 -p1 %patch132 -p1 %patch160 -p1 -%patch163 -p1 %patch178 -p1 %if %{with rpmwheels} From 35551f989b91c87d44c2b81b5b12e643060fdbe7 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 5 Mar 2019 15:50:30 +0100 Subject: [PATCH 18/42] Reenable test_posix.test_fs_holes() Since 2012, when the test was skipped from Python 3.3.0b1 (commit 3b4dd24c42a177bd8bda0ebf127f199ef32364ef), Linux now have a good support for punching holes in filesystems. Only 00160-disable-test_fs_holes-in-rpm-build.patch and 00163-disable-parts-of-test_socket-in-rpm-build.patch patches used @unittest._skipInRpmBuild @unittest._expectedFailureInRpmBuild decorators, but these 2 patches have been removed: remove 00132-add-rpmbuild-hooks-to-unittest.patch and WITHIN_PYTHON_RPM_BUILD environment variable as well. --- 00132-add-rpmbuild-hooks-to-unittest.patch | 48 ------------------- ...0-disable-test_fs_holes-in-rpm-build.patch | 11 ----- python38.spec | 30 +----------- 3 files changed, 1 insertion(+), 88 deletions(-) delete mode 100644 00132-add-rpmbuild-hooks-to-unittest.patch delete mode 100644 00160-disable-test_fs_holes-in-rpm-build.patch diff --git a/00132-add-rpmbuild-hooks-to-unittest.patch b/00132-add-rpmbuild-hooks-to-unittest.patch deleted file mode 100644 index b187c6a..0000000 --- a/00132-add-rpmbuild-hooks-to-unittest.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff --git a/Lib/unittest/__init__.py b/Lib/unittest/__init__.py -index 5ff1bf3..4d63954 100644 ---- a/Lib/unittest/__init__.py -+++ b/Lib/unittest/__init__.py -@@ -58,7 +58,7 @@ __unittest = True - - from .result import TestResult - from .case import (addModuleCleanup, TestCase, FunctionTestCase, SkipTest, skip, -- skipIf, skipUnless, expectedFailure) -+ skipIf, skipUnless, expectedFailure, _skipInRpmBuild) - from .suite import BaseTestSuite, TestSuite - from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames, - findTestCases) -diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py -index a157ae8..64f912c 100644 ---- a/Lib/unittest/case.py -+++ b/Lib/unittest/case.py -@@ -3,6 +3,7 @@ - import sys - import functools - import difflib -+import os - import logging - import pprint - import re -@@ -158,6 +159,22 @@ class _BaseTestCaseContext: - msg = self.test_case._formatMessage(self.msg, standardMsg) - raise self.test_case.failureException(msg) - -+# Non-standard/downstream-only hooks for handling issues with specific test -+# cases: -+ -+def _skipInRpmBuild(reason): -+ """ -+ Non-standard/downstream-only decorator for marking a specific unit test -+ to be skipped when run 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. -+ """ -+ if 'WITHIN_PYTHON_RPM_BUILD' in os.environ: -+ return skip(reason) -+ else: -+ return _id -+ - class _AssertRaisesBaseContext(_BaseTestCaseContext): - - def __init__(self, expected, test_case, expected_regex=None): diff --git a/00160-disable-test_fs_holes-in-rpm-build.patch b/00160-disable-test_fs_holes-in-rpm-build.patch deleted file mode 100644 index 9fa91d5..0000000 --- a/00160-disable-test_fs_holes-in-rpm-build.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up cpython-59223da36dec/Lib/test/test_posix.py.disable-test_fs_holes-in-rpm-build cpython-59223da36dec/Lib/test/test_posix.py ---- cpython-59223da36dec/Lib/test/test_posix.py.disable-test_fs_holes-in-rpm-build 2012-08-07 17:15:59.000000000 -0400 -+++ cpython-59223da36dec/Lib/test/test_posix.py 2012-08-07 17:16:53.528330330 -0400 -@@ -973,6 +973,7 @@ class PosixTester(unittest.TestCase): - posix.RTLD_GLOBAL - posix.RTLD_LOCAL - -+ @unittest._skipInRpmBuild('running kernel may not match kernel in chroot') - @unittest.skipUnless(hasattr(os, 'SEEK_HOLE'), - "test needs an OS that reports file holes") - def test_fs_holes(self): diff --git a/python38.spec b/python38.spec index 341d436..036563b 100644 --- a/python38.spec +++ b/python38.spec @@ -239,28 +239,6 @@ Patch102: 00102-lib64.patch # Downstream only: not appropriate for upstream Patch111: 00111-no-static-lib.patch -# 00132 # -# Add non-standard hooks to unittest for use in the "check" phase below, when -# running selftests within the build: -# @unittest._skipInRpmBuild(reason) -# for tests that hang or fail intermittently within the build environment, and: -# @unittest._expectedFailureInRpmBuild -# for tests that always fail within the build environment -# -# The hooks only take effect if WITHIN_PYTHON_RPM_BUILD is set in the -# environment, which we set manually in the appropriate portion of the "check" -# phase below (and which potentially other python-* rpms could set, to reuse -# these unittest hooks in their own "check" phases) -Patch132: 00132-add-rpmbuild-hooks-to-unittest.patch - -# 00160 # -# Python 3.3 added os.SEEK_DATA and os.SEEK_HOLE, which may be present in the -# header files in the build chroot, but may not be supported in the running -# kernel, hence we disable this test in an rpm build. -# Adding these was upstream issue http://bugs.python.org/issue10142 -# Not yet sent upstream -Patch160: 00160-disable-test_fs_holes-in-rpm-build.patch - # 00178 # # Don't duplicate various FLAGS in sysconfig values # http://bugs.python.org/issue17679 @@ -553,8 +531,6 @@ rm -r Modules/expat %patch102 -p1 %endif %patch111 -p1 -%patch132 -p1 -%patch160 -p1 %patch178 -p1 %if %{with rpmwheels} @@ -967,17 +943,13 @@ CheckPython() { # Show some info, helpful for debugging test failures LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.pythoninfo - # Run the upstream test suite, setting "WITHIN_PYTHON_RPM_BUILD" so that the - # our non-standard decorators take effect on the relevant tests: - # @unittest._skipInRpmBuild(reason) - # @unittest._expectedFailureInRpmBuild + # Run the upstream test suite # test_gdb skipped on armv7hl: # https://bugzilla.redhat.com/show_bug.cgi?id=1196181 # test_gdb skipped on s390x: # https://bugzilla.redhat.com/show_bug.cgi?id=1678277 # test_asyncio skipped: # https://bugs.python.org/issue35998 - WITHIN_PYTHON_RPM_BUILD= \ LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \ -wW --slowest -j0 \ -x test_distutils \ From 084a366e3d465801793c881800b016a776ba7c68 Mon Sep 17 00:00:00 2001 From: Patrik Kopkan Date: Thu, 18 Apr 2019 16:40:00 +0200 Subject: [PATCH 19/42] add symlink for python3.Xm manpages --- python38.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/python38.spec b/python38.spec index 036563b..7329aa6 100644 --- a/python38.spec +++ b/python38.spec @@ -868,6 +868,9 @@ ln -s \ # See https://bugzilla.redhat.com/show_bug.cgi?id=1111275 mv %{buildroot}%{_bindir}/2to3-%{pybasever} %{buildroot}%{_bindir}/2to3 +# make man python3.Xm work https://bugzilla.redhat.com/show_bug.cgi?id=1612241 +ln -s ./python%{pybasever}.1 %{buildroot}%{_mandir}/man1/python%{pybasever}m.1 + %if %{with flatpackage} # Remove stuff that would conflict with python3 package rm %{buildroot}%{_bindir}/python3 From 285f5549c610fb22fc5bea4cc2c7bb203a600d7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 7 May 2019 17:13:12 +0200 Subject: [PATCH 20/42] Update to 3.8.0a4 Patches rebased via git, see https://github.com/fedora-python/cpython/tree/fedora-3.8.0a4 ABIFLAGS changed not to contain m, see https://bugs.python.org/issue36707 --- 00001-rpath.patch | 22 +++++-- 00102-lib64.patch | 59 +++++++++++++++---- 00111-no-static-lib.patch | 35 +++++++++-- 00178-dont-duplicate-flags-in-sysconfig.patch | 34 ++++++++--- 00189-use-rpm-wheels.patch | 16 ++++- 00205-make-libpl-respect-lib64.patch | 26 ++++++-- 00251-change-user-install-location.patch | 30 ++++++++-- 00274-fix-arch-names.patch | 30 ++++++---- 00316-mark-bdist_wininst-unsupported.patch | 16 ++++- python38.spec | 24 +++++--- sources | 2 +- 11 files changed, 231 insertions(+), 63 deletions(-) diff --git a/00001-rpath.patch b/00001-rpath.patch index 9fae54c..e18f37f 100644 --- a/00001-rpath.patch +++ b/00001-rpath.patch @@ -1,7 +1,18 @@ -diff -up Python-3.1.1/Lib/distutils/unixccompiler.py.rpath Python-3.1.1/Lib/distutils/unixccompiler.py ---- Python-3.1.1/Lib/distutils/unixccompiler.py.rpath 2009-09-04 17:29:34.000000000 -0400 -+++ Python-3.1.1/Lib/distutils/unixccompiler.py 2009-09-04 17:49:54.000000000 -0400 -@@ -141,6 +141,15 @@ class UnixCCompiler(CCompiler): +From 39b5f58db91eea63fae2883c74f8a3f7fe49bc17 Mon Sep 17 00:00:00 2001 +From: David Malcolm +Date: Wed, 13 Jan 2010 21:25:18 +0000 +Subject: [PATCH 1/9] 00001: Fixup distutils/unixccompiler.py to remove + standard library path from rpath Was Patch0 in ivazquez' python3000 specfile + +--- + Lib/distutils/unixccompiler.py | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py +index d10a78da31..4df4b67810 100644 +--- a/Lib/distutils/unixccompiler.py ++++ b/Lib/distutils/unixccompiler.py +@@ -82,6 +82,15 @@ class UnixCCompiler(CCompiler): if sys.platform == "cygwin": exe_extension = ".exe" @@ -17,3 +28,6 @@ diff -up Python-3.1.1/Lib/distutils/unixccompiler.py.rpath Python-3.1.1/Lib/dist def preprocess(self, source, output_file=None, macros=None, include_dirs=None, extra_preargs=None, extra_postargs=None): fixed_args = self._fix_compile_args(None, macros, include_dirs) +-- +2.21.0 + diff --git a/00102-lib64.patch b/00102-lib64.patch index 33b2422..a22ec7b 100644 --- a/00102-lib64.patch +++ b/00102-lib64.patch @@ -1,5 +1,37 @@ +From 972d1ce207285b7b29407b95ea6519c289c71d89 Mon Sep 17 00:00:00 2001 +From: David Malcolm +Date: Wed, 13 Jan 2010 21:25:18 +0000 +Subject: [PATCH 2/9] 00102: Change the various install paths to use + /usr/lib64/ instead or /usr/lib/ +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Only used when "%{_lib}" == "lib64". + +Co-authored-by: David Malcolm +Co-authored-by: Thomas Spura +Co-authored-by: Slavek Kabrda +Co-authored-by: Matej Stuchlik +Co-authored-by: Tomas Orsava +Co-authored-by: Charalampos Stratakis +Co-authored-by: Petr Viktorin +Co-authored-by: Miro Hrončok +Co-authored-by: Iryna Shcherbina +--- + Lib/distutils/command/install.py | 4 ++-- + Lib/distutils/sysconfig.py | 6 +++++- + Lib/distutils/tests/test_install.py | 3 ++- + Lib/site.py | 4 ++++ + Lib/sysconfig.py | 12 ++++++------ + Lib/test/test_site.py | 4 ++-- + Makefile.pre.in | 2 +- + Modules/getpath.c | 6 +++--- + setup.py | 6 +++--- + 9 files changed, 28 insertions(+), 19 deletions(-) + diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py -index 0258d3d..4b969bf 100644 +index c625c95bf7..ae4f915669 100644 --- a/Lib/distutils/command/install.py +++ b/Lib/distutils/command/install.py @@ -30,14 +30,14 @@ WINDOWS_SCHEME = { @@ -20,10 +52,10 @@ index 0258d3d..4b969bf 100644 'scripts': '$base/bin', 'data' : '$base', diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py -index e07a6c8..554740d 100644 +index b51629eb94..9a4892a737 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py -@@ -140,8 +140,12 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): +@@ -146,8 +146,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": @@ -38,7 +70,7 @@ index e07a6c8..554740d 100644 return libpython else: diff --git a/Lib/distutils/tests/test_install.py b/Lib/distutils/tests/test_install.py -index 287ab19..d4c05e0 100644 +index 287ab1989e..d4c05e0ab1 100644 --- a/Lib/distutils/tests/test_install.py +++ b/Lib/distutils/tests/test_install.py @@ -57,8 +57,9 @@ class InstallTestCase(support.TempdirManager, @@ -53,7 +85,7 @@ index 287ab19..d4c05e0 100644 check_path(cmd.install_headers, os.path.join(destination, "include", "python", "foopkg")) diff --git a/Lib/site.py b/Lib/site.py -index 7dc1b04..85016b4 100644 +index ad1146332b..99149a564f 100644 --- a/Lib/site.py +++ b/Lib/site.py @@ -334,11 +334,15 @@ def getsitepackages(prefixes=None): @@ -73,7 +105,7 @@ index 7dc1b04..85016b4 100644 return sitepackages diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py -index 9ee4d31..53c8606 100644 +index 8446c8deb2..cf64d79c4d 100644 --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py @@ -20,10 +20,10 @@ __all__ = [ @@ -105,7 +137,7 @@ index 9ee4d31..53c8606 100644 'scripts': '{userbase}/bin', 'data': '{userbase}', diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py -index 266adf0..e8513b6 100644 +index 41c4229919..543c88432a 100644 --- a/Lib/test/test_site.py +++ b/Lib/test/test_site.py @@ -266,8 +266,8 @@ class HelperFunctionsTests(unittest.TestCase): @@ -120,10 +152,10 @@ index 266adf0..e8513b6 100644 'site-packages') self.assertEqual(dirs[0], wanted) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 59ba9d4..5780ed8 100644 +index 75eb66be3c..f1e21784af 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -140,7 +140,7 @@ LIBDIR= @libdir@ +@@ -143,7 +143,7 @@ LIBDIR= @libdir@ MANDIR= @mandir@ INCLUDEDIR= @includedir@ CONFINCLUDEDIR= $(exec_prefix)/include @@ -133,7 +165,7 @@ index 59ba9d4..5780ed8 100644 # Detailed destination directories diff --git a/Modules/getpath.c b/Modules/getpath.c -index dd188c6..6e69eed 100644 +index 3991ad719c..1baf8a2ff4 100644 --- a/Modules/getpath.c +++ b/Modules/getpath.c @@ -688,7 +688,7 @@ calculate_exec_prefix(const _PyCoreConfig *core_config, @@ -164,7 +196,7 @@ index dd188c6..6e69eed 100644 return DECODE_LOCALE_ERR("EXEC_PREFIX define", len); } diff --git a/setup.py b/setup.py -index 0258d3d..4b969bf 100644 +index 96a49b4e35..64420838af 100644 --- a/setup.py +++ b/setup.py @@ -610,7 +610,7 @@ class PyBuildExt(build_ext): @@ -176,7 +208,7 @@ index 0258d3d..4b969bf 100644 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: -@@ -902,11 +902,11 @@ class PyBuildExt(build_ext): +@@ -906,11 +906,11 @@ class PyBuildExt(build_ext): elif curses_library: readline_libs.append(curses_library) elif self.compiler.find_library_file(self.lib_dirs + @@ -190,3 +222,6 @@ index 0258d3d..4b969bf 100644 extra_link_args=readline_extra_link_args, libraries=readline_libs)) else: +-- +2.21.0 + diff --git a/00111-no-static-lib.patch b/00111-no-static-lib.patch index 3d667e9..d89455d 100644 --- a/00111-no-static-lib.patch +++ b/00111-no-static-lib.patch @@ -1,8 +1,30 @@ +From 031249155111abf6e971fff6516c4e828c394c05 Mon Sep 17 00:00:00 2001 +From: David Malcolm +Date: Mon, 18 Jan 2010 17:59:07 +0000 +Subject: [PATCH 3/9] 00111: Don't try to build a libpythonMAJOR.MINOR.a +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Downstream only: not appropriate for upstream. + +See https://bugzilla.redhat.com/show_bug.cgi?id=556092 + +Co-authored-by: David Malcolm +Co-authored-by: Bohuslav Kabrda +Co-authored-by: Matej Stuchlik +Co-authored-by: Robert Kuska +Co-authored-by: Charalampos Stratakis +Co-authored-by: Miro Hrončok +--- + Makefile.pre.in | 21 ++------------------- + 1 file changed, 2 insertions(+), 19 deletions(-) + diff --git a/Makefile.pre.in b/Makefile.pre.in -index f8ff1ce..f297d05 100644 +index f1e21784af..414aa96008 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -573,7 +573,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c +@@ -559,7 +559,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c $(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py --make --srcdir $(srcdir) # Build the interpreter @@ -11,7 +33,7 @@ index f8ff1ce..f297d05 100644 $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) platform: $(BUILDPYTHON) pybuilddir.txt -@@ -621,12 +621,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o +@@ -607,12 +607,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build @@ -24,7 +46,7 @@ index f8ff1ce..f297d05 100644 libpython$(LDVERSION).so: $(LIBRARY_OBJS) $(DTRACE_OBJS) if test $(INSTSONAME) != $(LDLIBRARY); then \ $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM); \ -@@ -704,7 +698,7 @@ Makefile Modules/config.c: Makefile.pre \ +@@ -690,7 +684,7 @@ Makefile Modules/config.c: Makefile.pre \ @echo "The Makefile was updated, you may need to re-run make." @@ -33,7 +55,7 @@ index f8ff1ce..f297d05 100644 $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) ############################################################################ -@@ -1545,17 +1539,6 @@ libainstall: @DEF_MAKE_RULE@ python-config +@@ -1532,17 +1526,6 @@ libainstall: @DEF_MAKE_RULE@ python-config else true; \ fi; \ done @@ -51,3 +73,6 @@ index f8ff1ce..f297d05 100644 $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c $(INSTALL_DATA) Programs/python.o $(DESTDIR)$(LIBPL)/python.o $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in +-- +2.21.0 + diff --git a/00178-dont-duplicate-flags-in-sysconfig.patch b/00178-dont-duplicate-flags-in-sysconfig.patch index fc49b30..4bbfed3 100644 --- a/00178-dont-duplicate-flags-in-sysconfig.patch +++ b/00178-dont-duplicate-flags-in-sysconfig.patch @@ -1,7 +1,21 @@ -diff -r 39b9b05c3085 Lib/distutils/sysconfig.py ---- a/Lib/distutils/sysconfig.py Wed Apr 10 00:27:23 2013 +0200 -+++ b/Lib/distutils/sysconfig.py Wed Apr 10 10:14:18 2013 +0200 -@@ -362,7 +362,10 @@ +From b9a703e3d37e325defe5baec111e1fbf5d42bede Mon Sep 17 00:00:00 2001 +From: Bohuslav Kabrda +Date: Wed, 10 Apr 2013 14:30:09 +0200 +Subject: [PATCH 4/9] 00178: Don't duplicate various FLAGS in sysconfig values + +http://bugs.python.org/issue17679 + +Does not affect python2 AFAICS (different sysconfig values initialization) +--- + Lib/distutils/sysconfig.py | 5 ++++- + Lib/sysconfig.py | 5 ++++- + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py +index 9a4892a737..ad4cef088b 100644 +--- a/Lib/distutils/sysconfig.py ++++ b/Lib/distutils/sysconfig.py +@@ -373,7 +373,10 @@ def parse_makefile(fn, g=None): done[n] = item = "" if found: after = value[m.end():] @@ -13,10 +27,11 @@ diff -r 39b9b05c3085 Lib/distutils/sysconfig.py if "$" in after: notdone[name] = value else: -diff -r 39b9b05c3085 Lib/sysconfig.py ---- a/Lib/sysconfig.py Wed Apr 10 00:27:23 2013 +0200 -+++ b/Lib/sysconfig.py Wed Apr 10 10:14:18 2013 +0200 -@@ -296,7 +296,10 @@ +diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py +index cf64d79c4d..fd972d658c 100644 +--- a/Lib/sysconfig.py ++++ b/Lib/sysconfig.py +@@ -295,7 +295,10 @@ def _parse_makefile(filename, vars=None): if found: after = value[m.end():] @@ -28,3 +43,6 @@ diff -r 39b9b05c3085 Lib/sysconfig.py if "$" in after: notdone[name] = value else: +-- +2.21.0 + diff --git a/00189-use-rpm-wheels.patch b/00189-use-rpm-wheels.patch index ffb80af..91cdb01 100644 --- a/00189-use-rpm-wheels.patch +++ b/00189-use-rpm-wheels.patch @@ -1,5 +1,16 @@ +From 0f59810bb72d2092729346c17e96bf0c23120ee1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= +Date: Wed, 15 Aug 2018 15:36:29 +0200 +Subject: [PATCH 5/9] 00189: Instead of bundled wheels, use our RPM packaged + wheels + +We keep them in /usr/share/python-wheels +--- + Lib/ensurepip/__init__.py | 26 +++++++++++++++++--------- + 1 file changed, 17 insertions(+), 9 deletions(-) + diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py -index 4748ba4..fc02255 100644 +index 526dfd004a..fc02255feb 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py @@ -1,16 +1,27 @@ @@ -49,3 +60,6 @@ index 4748ba4..fc02255 100644 additional_paths.append(os.path.join(tmpdir, wheel_name)) +-- +2.21.0 + diff --git a/00205-make-libpl-respect-lib64.patch b/00205-make-libpl-respect-lib64.patch index 3e7c797..ddd0021 100644 --- a/00205-make-libpl-respect-lib64.patch +++ b/00205-make-libpl-respect-lib64.patch @@ -1,7 +1,22 @@ -diff -up Python-3.5.0/Makefile.pre.in.lib Python-3.5.0/Makefile.pre.in ---- Python-3.5.0/Makefile.pre.in.lib 2015-09-21 15:39:47.928286620 +0200 -+++ Python-3.5.0/Makefile.pre.in 2015-09-21 15:42:58.004042762 +0200 -@@ -1340,7 +1340,7 @@ inclinstall: +From 5ee8362bd5cc991b956efa9cf06eb6ad2607f57c Mon Sep 17 00:00:00 2001 +From: Robert Kuska +Date: Mon, 21 Sep 2015 15:55:00 +0200 +Subject: [PATCH 6/9] 00205: Make LIBPL variable respect the libdir macro + +LIBPL variable in Makefile takes LIBPL from configure.ac, +but the LIBPL variable defined there doesn't respect the libdir macro. + +Co-authored-by: Robert Kuska +Co-authored-by: Charalampos Stratakis +--- + Makefile.pre.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.pre.in b/Makefile.pre.in +index 414aa96008..a07bd6718d 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1512,7 +1512,7 @@ inclinstall: # Install the library and miscellaneous stuff needed for extending/embedding # This goes into $(exec_prefix) @@ -10,3 +25,6 @@ diff -up Python-3.5.0/Makefile.pre.in.lib Python-3.5.0/Makefile.pre.in # pkgconfig directory LIBPC= $(LIBDIR)/pkgconfig +-- +2.21.0 + diff --git a/00251-change-user-install-location.patch b/00251-change-user-install-location.patch index 4104449..1775b6c 100644 --- a/00251-change-user-install-location.patch +++ b/00251-change-user-install-location.patch @@ -1,11 +1,26 @@ +From e9d8db2d243cf27b66083e0c6a9bb5d28866f937 Mon Sep 17 00:00:00 2001 +From: Michal Cyprian +Date: Mon, 26 Jun 2017 16:32:56 +0200 +Subject: [PATCH 7/9] 00251: Change user install location + +Set values of prefix and exec_prefix in distutils install command +to /usr/local if executable is /usr/bin/python* and RPM build +is not detected to make pip and distutils install into separate location. + +Fedora Change: https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe +--- + Lib/distutils/command/install.py | 15 +++++++++++++-- + Lib/site.py | 9 ++++++++- + 2 files changed, 21 insertions(+), 3 deletions(-) + diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py -index 0258d3d..4ebf50a 100644 +index ae4f915669..0e4fd5b74a 100644 --- a/Lib/distutils/command/install.py +++ b/Lib/distutils/command/install.py @@ -418,8 +418,19 @@ class install(Command): raise DistutilsOptionError( "must not supply exec-prefix without prefix") - + - self.prefix = os.path.normpath(sys.prefix) - self.exec_prefix = os.path.normpath(sys.exec_prefix) + # self.prefix is set to sys.prefix + /local/ @@ -21,16 +36,16 @@ index 0258d3d..4ebf50a 100644 + + self.prefix = os.path.normpath(sys.prefix) + addition + self.exec_prefix = os.path.normpath(sys.exec_prefix) + addition - + else: if self.exec_prefix is None: diff --git a/Lib/site.py b/Lib/site.py -index 0fc9200..c95202e 100644 +index 99149a564f..1107324848 100644 --- a/Lib/site.py +++ b/Lib/site.py -@@ -322,7 +322,14 @@ def getsitepackages(prefixes=None): +@@ -347,7 +347,14 @@ def getsitepackages(prefixes=None): return sitepackages - + def addsitepackages(known_paths, prefixes=None): - """Add site-packages to sys.path""" + """Add site-packages to sys.path @@ -44,3 +59,6 @@ index 0fc9200..c95202e 100644 for sitedir in getsitepackages(prefixes): if os.path.isdir(sitedir): addsitedir(sitedir, known_paths) +-- +2.21.0 + diff --git a/00274-fix-arch-names.patch b/00274-fix-arch-names.patch index ee15930..b8453a2 100644 --- a/00274-fix-arch-names.patch +++ b/00274-fix-arch-names.patch @@ -1,19 +1,25 @@ -From 3b0d3a25576e74c2ac1eb25136ae811bdbdd7c6c Mon Sep 17 00:00:00 2001 -From: Tomas Orsava -Date: Thu, 14 Feb 2019 16:08:57 +0100 -Subject: [PATCH] Upstream uses Debian-style architecture naming. Change to - match Fedora / RHEL +From e108d7026aab241d89ff3a90d6421af3e9ee8e12 Mon Sep 17 00:00:00 2001 +From: Petr Viktorin +Date: Mon, 28 Aug 2017 17:16:46 +0200 +Subject: [PATCH 8/9] 00274: Upstream uses Debian-style architecture naming, + change to match Fedora +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Co-authored-by: Petr Viktorin +Co-authored-by: Miro Hrončok +Co-authored-by: Tomas Orsava --- config.sub | 2 +- configure.ac | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config.sub b/config.sub -index 40ea5df..932128b 100755 +index ba37cf99e2..52a9ec6662 100755 --- a/config.sub +++ b/config.sub -@@ -1045,7 +1045,7 @@ case $basic_machine in +@@ -1042,7 +1042,7 @@ case $basic_machine in ;; ppc64) basic_machine=powerpc64-unknown ;; @@ -23,10 +29,10 @@ index 40ea5df..932128b 100755 ppc64le | powerpc64little) basic_machine=powerpc64le-unknown diff --git a/configure.ac b/configure.ac -index a075ce3..b7f2ee3 100644 +index a02597da2d..5742ef4176 100644 --- a/configure.ac +++ b/configure.ac -@@ -788,9 +788,9 @@ cat >> conftest.c <> conftest.c <> conftest.c <> conftest.c <> conftest.c <> conftest.c < +Date: Thu, 20 Dec 2018 12:46:25 +0100 +Subject: [PATCH 9/9] 00316: Mark bdist_wininst unsupported + +We remove the exe files from distutil's bdist_wininst. +So we mark the command as unsupported - and the tests are skipped. +--- + Lib/distutils/command/bdist_wininst.py | 2 ++ + 1 file changed, 2 insertions(+) + diff --git a/Lib/distutils/command/bdist_wininst.py b/Lib/distutils/command/bdist_wininst.py -index 0871a4f..8796b68 100644 +index 3a616883be..ba299a4028 100644 --- a/Lib/distutils/command/bdist_wininst.py +++ b/Lib/distutils/command/bdist_wininst.py @@ -12,6 +12,8 @@ from distutils.sysconfig import get_python_version @@ -11,3 +22,6 @@ index 0871a4f..8796b68 100644 description = "create an executable installer for MS Windows" +-- +2.21.0 + diff --git a/python38.spec b/python38.spec index 7329aa6..49041de 100644 --- a/python38.spec +++ b/python38.spec @@ -14,7 +14,7 @@ URL: https://www.python.org/ # WARNING When rebasing to a new Python version, # remember to update the python3-docs package as well %global general_version %{pybasever}.0 -%global prerel a3 +%global prerel a4 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} Release: 1%{?dist} @@ -97,8 +97,8 @@ License: Python # ABIFLAGS, LDVERSION and SOABI are in the upstream configure.ac # See PEP 3149 for some background: http://www.python.org/dev/peps/pep-3149/ -%global ABIFLAGS_optimized m -%global ABIFLAGS_debug dm +%global ABIFLAGS_optimized %{nil} +%global ABIFLAGS_debug d %global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized} %global LDVERSION_debug %{pybasever}%{ABIFLAGS_debug} @@ -279,6 +279,10 @@ Patch316: 00316-mark-bdist_wininst-unsupported.patch # More information, and a patch number catalog, is at: # # https://fedoraproject.org/wiki/SIGs/Python/PythonPatches +# +# The patches are stored and rebased at: +# +# https://github.com/fedora-python/cpython # ========================================== @@ -868,9 +872,6 @@ ln -s \ # See https://bugzilla.redhat.com/show_bug.cgi?id=1111275 mv %{buildroot}%{_bindir}/2to3-%{pybasever} %{buildroot}%{_bindir}/2to3 -# make man python3.Xm work https://bugzilla.redhat.com/show_bug.cgi?id=1612241 -ln -s ./python%{pybasever}.1 %{buildroot}%{_mandir}/man1/python%{pybasever}m.1 - %if %{with flatpackage} # Remove stuff that would conflict with python3 package rm %{buildroot}%{_bindir}/python3 @@ -992,7 +993,7 @@ CheckPython optimized %endif %{_bindir}/python%{pybasever} -%{_bindir}/python%{pybasever}m +%{_bindir}/python%{LDVERSION_optimized} %{_mandir}/*/* @@ -1131,7 +1132,6 @@ CheckPython optimized %{dynload_dir}/spwd.%{SOABI_optimized}.so %{dynload_dir}/syslog.%{SOABI_optimized}.so %{dynload_dir}/termios.%{SOABI_optimized}.so -%{dynload_dir}/_testmultiphase.%{SOABI_optimized}.so %{dynload_dir}/unicodedata.%{SOABI_optimized}.so %{dynload_dir}/_uuid.%{SOABI_optimized}.so %{dynload_dir}/xxlimited.%{SOABI_optimized}.so @@ -1308,6 +1308,8 @@ CheckPython optimized %{dynload_dir}/_testbuffer.%{SOABI_optimized}.so %{dynload_dir}/_testcapi.%{SOABI_optimized}.so %{dynload_dir}/_testimportmultiple.%{SOABI_optimized}.so +%{dynload_dir}/_testinternalcapi.%{SOABI_optimized}.so +%{dynload_dir}/_testmultiphase.%{SOABI_optimized}.so %{dynload_dir}/_xxtestfuzz.%{SOABI_optimized}.so %{pylibdir}/lib2to3/tests %{pylibdir}/tkinter/test @@ -1405,7 +1407,6 @@ CheckPython optimized %{dynload_dir}/spwd.%{SOABI_debug}.so %{dynload_dir}/syslog.%{SOABI_debug}.so %{dynload_dir}/termios.%{SOABI_debug}.so -%{dynload_dir}/_testmultiphase.%{SOABI_debug}.so %{dynload_dir}/unicodedata.%{SOABI_debug}.so %{dynload_dir}/_uuid.%{SOABI_debug}.so %{dynload_dir}/_xxsubinterpreters.%{SOABI_debug}.so @@ -1439,6 +1440,8 @@ CheckPython optimized %{dynload_dir}/_testbuffer.%{SOABI_debug}.so %{dynload_dir}/_testcapi.%{SOABI_debug}.so %{dynload_dir}/_testimportmultiple.%{SOABI_debug}.so +%{dynload_dir}/_testinternalcapi.%{SOABI_debug}.so +%{dynload_dir}/_testmultiphase.%{SOABI_debug}.so %endif # with debug_build @@ -1463,6 +1466,9 @@ CheckPython optimized # ====================================================== %changelog +* Tue May 07 2019 Miro Hrončok - 3.8.0~a4-1 +- Update to 3.8.0a4 + * Tue Mar 26 2019 Miro Hrončok - 3.8.0~a3-1 - Update to 3.8.0a3 diff --git a/sources b/sources index 4f6b5c4..4536033 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Python-3.8.0a3.tar.xz) = 2348416c3118d1ff6b88b1ee823046de6a26305c10dd900fcb59fbc5b37a8f54db7afcd2f8e7c927c50c4f317a8c20370478030f996f93c63381d2167247e6fd +SHA512 (Python-3.8.0a4.tar.xz) = 76088206e3eb4ff0b9060f35e0bf994018452cc98d7f576bf7d6842158a6f6ae173b281c442f1175402428c683667b7bacebb2b989a561a9f12db1ad5f0f42cb From 7e0c12521734cfcf7f848a77e2b869c71c641fbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Thu, 25 Apr 2019 18:55:05 +0200 Subject: [PATCH 21/42] Regenerate generated files with python3 Switch to %make_build when touching this Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1377240 --- python38.spec | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/python38.spec b/python38.spec index 49041de..782e59d 100644 --- a/python38.spec +++ b/python38.spec @@ -203,6 +203,10 @@ BuildRequires: python-setuptools-wheel BuildRequires: python-pip-wheel %endif +%if %{without bootstrap} +# for make regen-all +BuildRequires: python3 +%endif # ======================= # Source code and patches @@ -632,8 +636,14 @@ BuildPython() { $ExtraConfigArgs \ %{nil} +%if %{without bootstrap} + # Regenerate generated files (needs python3) + %make_build regen-all PYTHON_FOR_REGEN="python3" +%endif + + # Invoke the build - make EXTRA_CFLAGS="$CFLAGS $MoreCFlags" %{?_smp_mflags} + %make_build EXTRA_CFLAGS="$CFLAGS $MoreCFlags" popd echo FINISHED: BUILD OF PYTHON FOR CONFIGURATION: $ConfName From 9fbe2eee9d33879a17d01285d115b1cabb7240fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Thu, 16 May 2019 10:33:14 +0200 Subject: [PATCH 22/42] rpmlint: Filter out shared-lib-without-dependency-information Since Python 3.8.0a4, extension modules are no longer linked against libpython3.8.so.1.0. As a result, some of them are not linked against anything at all. And that is fine. They are not used as standard shared libraries. --- python38.rpmlintrc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/python38.rpmlintrc b/python38.rpmlintrc index e1e2cbe..1314d45 100644 --- a/python38.rpmlintrc +++ b/python38.rpmlintrc @@ -72,7 +72,9 @@ addFilter(r'read-error /usr/lib(64)?/pkgconfig/python-3\.\ddm\.pc \[Errno 2\]') addFilter(r'macro-in-comment %\{_pyconfig(32|64)_h\}') # Python modules don't need to be linked against libc +# Since 3.8 they are no longer linked against libpython3.8.so.1.0 addFilter(r'E: library-not-linked-against-libc /usr/lib(64)?/python3.\d/lib-dynload/') +addFilter(r'E: shared-lib-without-dependency-information /usr/lib(64)?/python3.\d/lib-dynload/') # SPELLING ERRORS addFilter(r'spelling-error .* en_US (bytecode|pyc|filename|tkinter|namespaces|pytest) ') From 7aab0ddc87c4c8476c8077800e765e52480fbc4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Fri, 17 May 2019 13:24:33 +0200 Subject: [PATCH 23/42] Remove Patch178, merge Patch205 into Patch102 Fixes invalid value of distutils.sysconfig.get_config_var('LIBPL'). Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1710767 GitHub PR: https://github.com/fedora-python/cpython/pull/2 --- 00001-rpath.patch | 2 +- 00102-lib64.patch | 40 ++++++++++++++-- 00111-no-static-lib.patch | 4 +- 00178-dont-duplicate-flags-in-sysconfig.patch | 48 ------------------- 00189-use-rpm-wheels.patch | 4 +- 00205-make-libpl-respect-lib64.patch | 30 ------------ 00251-change-user-install-location.patch | 4 +- 00274-fix-arch-names.patch | 6 +-- 00316-mark-bdist_wininst-unsupported.patch | 4 +- python38.spec | 19 ++------ 10 files changed, 54 insertions(+), 107 deletions(-) delete mode 100644 00178-dont-duplicate-flags-in-sysconfig.patch delete mode 100644 00205-make-libpl-respect-lib64.patch diff --git a/00001-rpath.patch b/00001-rpath.patch index e18f37f..504d2cc 100644 --- a/00001-rpath.patch +++ b/00001-rpath.patch @@ -1,7 +1,7 @@ From 39b5f58db91eea63fae2883c74f8a3f7fe49bc17 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Wed, 13 Jan 2010 21:25:18 +0000 -Subject: [PATCH 1/9] 00001: Fixup distutils/unixccompiler.py to remove +Subject: [PATCH 1/7] 00001: Fixup distutils/unixccompiler.py to remove standard library path from rpath Was Patch0 in ivazquez' python3000 specfile --- diff --git a/00102-lib64.patch b/00102-lib64.patch index a22ec7b..40da29f 100644 --- a/00102-lib64.patch +++ b/00102-lib64.patch @@ -1,7 +1,7 @@ -From 972d1ce207285b7b29407b95ea6519c289c71d89 Mon Sep 17 00:00:00 2001 +From c601ae9643cda53d9e1b898ea941bf9207c9f2f6 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Wed, 13 Jan 2010 21:25:18 +0000 -Subject: [PATCH 2/9] 00102: Change the various install paths to use +Subject: [PATCH 2/7] 00102: Change the various install paths to use /usr/lib64/ instead or /usr/lib/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -27,8 +27,10 @@ Co-authored-by: Iryna Shcherbina Lib/test/test_site.py | 4 ++-- Makefile.pre.in | 2 +- Modules/getpath.c | 6 +++--- + configure | 4 ++-- + configure.ac | 4 ++-- setup.py | 6 +++--- - 9 files changed, 28 insertions(+), 19 deletions(-) + 11 files changed, 32 insertions(+), 23 deletions(-) diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py index c625c95bf7..ae4f915669 100644 @@ -195,6 +197,38 @@ index 3991ad719c..1baf8a2ff4 100644 if (!calculate->lib_python) { return DECODE_LOCALE_ERR("EXEC_PREFIX define", len); } +diff --git a/configure b/configure +index e6e4007351..b01e6fa9b7 100755 +--- a/configure ++++ b/configure +@@ -15159,9 +15159,9 @@ fi + + + if test x$PLATFORM_TRIPLET = x; then +- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}" ++ LIBPL='$(prefix)'"/lib64/python${VERSION}/config-${LDVERSION}" + else +- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}" ++ LIBPL='$(prefix)'"/lib64/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}" + fi + + +diff --git a/configure.ac b/configure.ac +index a02597da2d..7f86f286b6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4653,9 +4653,9 @@ fi + dnl define LIBPL after ABIFLAGS and LDVERSION is defined. + AC_SUBST(PY_ENABLE_SHARED) + if test x$PLATFORM_TRIPLET = x; then +- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}" ++ LIBPL='$(prefix)'"/lib64/python${VERSION}/config-${LDVERSION}" + else +- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}" ++ LIBPL='$(prefix)'"/lib64/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}" + fi + AC_SUBST(LIBPL) + diff --git a/setup.py b/setup.py index 96a49b4e35..64420838af 100644 --- a/setup.py diff --git a/00111-no-static-lib.patch b/00111-no-static-lib.patch index d89455d..6d1dc16 100644 --- a/00111-no-static-lib.patch +++ b/00111-no-static-lib.patch @@ -1,7 +1,7 @@ -From 031249155111abf6e971fff6516c4e828c394c05 Mon Sep 17 00:00:00 2001 +From 0acdfa7c697ffb1087ded14819c7dcfe4784ca7c Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Mon, 18 Jan 2010 17:59:07 +0000 -Subject: [PATCH 3/9] 00111: Don't try to build a libpythonMAJOR.MINOR.a +Subject: [PATCH 3/7] 00111: Don't try to build a libpythonMAJOR.MINOR.a MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/00178-dont-duplicate-flags-in-sysconfig.patch b/00178-dont-duplicate-flags-in-sysconfig.patch deleted file mode 100644 index 4bbfed3..0000000 --- a/00178-dont-duplicate-flags-in-sysconfig.patch +++ /dev/null @@ -1,48 +0,0 @@ -From b9a703e3d37e325defe5baec111e1fbf5d42bede Mon Sep 17 00:00:00 2001 -From: Bohuslav Kabrda -Date: Wed, 10 Apr 2013 14:30:09 +0200 -Subject: [PATCH 4/9] 00178: Don't duplicate various FLAGS in sysconfig values - -http://bugs.python.org/issue17679 - -Does not affect python2 AFAICS (different sysconfig values initialization) ---- - Lib/distutils/sysconfig.py | 5 ++++- - Lib/sysconfig.py | 5 ++++- - 2 files changed, 8 insertions(+), 2 deletions(-) - -diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py -index 9a4892a737..ad4cef088b 100644 ---- a/Lib/distutils/sysconfig.py -+++ b/Lib/distutils/sysconfig.py -@@ -373,7 +373,10 @@ def parse_makefile(fn, g=None): - done[n] = item = "" - if found: - after = value[m.end():] -- value = value[:m.start()] + item + after -+ value = value[:m.start()] -+ if item.strip() not in value: -+ value += item -+ value += after - if "$" in after: - notdone[name] = value - else: -diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py -index cf64d79c4d..fd972d658c 100644 ---- a/Lib/sysconfig.py -+++ b/Lib/sysconfig.py -@@ -295,7 +295,10 @@ def _parse_makefile(filename, vars=None): - - if found: - after = value[m.end():] -- value = value[:m.start()] + item + after -+ value = value[:m.start()] -+ if item.strip() not in value: -+ value += item -+ value += after - if "$" in after: - notdone[name] = value - else: --- -2.21.0 - diff --git a/00189-use-rpm-wheels.patch b/00189-use-rpm-wheels.patch index 91cdb01..e75f6a8 100644 --- a/00189-use-rpm-wheels.patch +++ b/00189-use-rpm-wheels.patch @@ -1,7 +1,7 @@ -From 0f59810bb72d2092729346c17e96bf0c23120ee1 Mon Sep 17 00:00:00 2001 +From 7bb76d766aa5394e845f656b3f68b7910e9ee4e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 15 Aug 2018 15:36:29 +0200 -Subject: [PATCH 5/9] 00189: Instead of bundled wheels, use our RPM packaged +Subject: [PATCH 4/7] 00189: Instead of bundled wheels, use our RPM packaged wheels We keep them in /usr/share/python-wheels diff --git a/00205-make-libpl-respect-lib64.patch b/00205-make-libpl-respect-lib64.patch deleted file mode 100644 index ddd0021..0000000 --- a/00205-make-libpl-respect-lib64.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 5ee8362bd5cc991b956efa9cf06eb6ad2607f57c Mon Sep 17 00:00:00 2001 -From: Robert Kuska -Date: Mon, 21 Sep 2015 15:55:00 +0200 -Subject: [PATCH 6/9] 00205: Make LIBPL variable respect the libdir macro - -LIBPL variable in Makefile takes LIBPL from configure.ac, -but the LIBPL variable defined there doesn't respect the libdir macro. - -Co-authored-by: Robert Kuska -Co-authored-by: Charalampos Stratakis ---- - Makefile.pre.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.pre.in b/Makefile.pre.in -index 414aa96008..a07bd6718d 100644 ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -1512,7 +1512,7 @@ inclinstall: - - # Install the library and miscellaneous stuff needed for extending/embedding - # This goes into $(exec_prefix) --LIBPL= @LIBPL@ -+LIBPL= $(LIBDEST)/config-$(LDVERSION)-$(MULTIARCH) - - # pkgconfig directory - LIBPC= $(LIBDIR)/pkgconfig --- -2.21.0 - diff --git a/00251-change-user-install-location.patch b/00251-change-user-install-location.patch index 1775b6c..4c19ac8 100644 --- a/00251-change-user-install-location.patch +++ b/00251-change-user-install-location.patch @@ -1,7 +1,7 @@ -From e9d8db2d243cf27b66083e0c6a9bb5d28866f937 Mon Sep 17 00:00:00 2001 +From 377daf65817790e78ccec966221724f4523693c1 Mon Sep 17 00:00:00 2001 From: Michal Cyprian Date: Mon, 26 Jun 2017 16:32:56 +0200 -Subject: [PATCH 7/9] 00251: Change user install location +Subject: [PATCH 5/7] 00251: Change user install location Set values of prefix and exec_prefix in distutils install command to /usr/local if executable is /usr/bin/python* and RPM build diff --git a/00274-fix-arch-names.patch b/00274-fix-arch-names.patch index b8453a2..16a8b9e 100644 --- a/00274-fix-arch-names.patch +++ b/00274-fix-arch-names.patch @@ -1,7 +1,7 @@ -From e108d7026aab241d89ff3a90d6421af3e9ee8e12 Mon Sep 17 00:00:00 2001 +From e9def22e31801d9d75017e6752d3daf4099bc836 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Mon, 28 Aug 2017 17:16:46 +0200 -Subject: [PATCH 8/9] 00274: Upstream uses Debian-style architecture naming, +Subject: [PATCH 6/7] 00274: Upstream uses Debian-style architecture naming, change to match Fedora MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -29,7 +29,7 @@ index ba37cf99e2..52a9ec6662 100755 ppc64le | powerpc64little) basic_machine=powerpc64le-unknown diff --git a/configure.ac b/configure.ac -index a02597da2d..5742ef4176 100644 +index 7f86f286b6..6d7430e014 100644 --- a/configure.ac +++ b/configure.ac @@ -740,9 +740,9 @@ cat >> conftest.c < Date: Thu, 20 Dec 2018 12:46:25 +0100 -Subject: [PATCH 9/9] 00316: Mark bdist_wininst unsupported +Subject: [PATCH 7/7] 00316: Mark bdist_wininst unsupported We remove the exe files from distutil's bdist_wininst. So we mark the command as unsupported - and the tests are skipped. diff --git a/python38.spec b/python38.spec index 782e59d..90eb418 100644 --- a/python38.spec +++ b/python38.spec @@ -17,7 +17,7 @@ URL: https://www.python.org/ %global prerel a4 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 1%{?dist} +Release: 2%{?dist} License: Python @@ -243,22 +243,11 @@ Patch102: 00102-lib64.patch # Downstream only: not appropriate for upstream Patch111: 00111-no-static-lib.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 - # 00189 # # Instead of bundled wheels, use our RPM packaged wheels from # /usr/share/python-wheels Patch189: 00189-use-rpm-wheels.patch -# 00205 # -# LIBPL variable in makefile takes LIBPL from configure.ac -# but the LIBPL variable defined there doesn't respect libdir macro -Patch205: 00205-make-libpl-respect-lib64.patch - # 00251 # Set values of prefix and exec_prefix in distutils install command # to /usr/local if executable is /usr/bin/python* and RPM build @@ -539,14 +528,12 @@ rm -r Modules/expat %patch102 -p1 %endif %patch111 -p1 -%patch178 -p1 %if %{with rpmwheels} %patch189 -p1 rm Lib/ensurepip/_bundled/*.whl %endif -%patch205 -p1 %patch251 -p1 %patch274 -p1 %patch316 -p1 @@ -1476,6 +1463,10 @@ CheckPython optimized # ====================================================== %changelog +* Fri May 17 2019 Miro Hrončok - 3.8.0~a4-2 +- Remove a faulty patch that resulted in invalid value of + distutils.sysconfig.get_config_var('LIBPL') (#1710767) + * Tue May 07 2019 Miro Hrončok - 3.8.0~a4-1 - Update to 3.8.0a4 From a292838ccc250a7dc575efe316a347cc6f53dcc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 5 Jun 2019 09:14:07 +0200 Subject: [PATCH 24/42] Update to 3.8.0b1 --- 00001-rpath.patch | 2 +- 00102-lib64.patch | 42 +++++++++++----------- 00111-no-static-lib.patch | 12 +++---- 00189-use-rpm-wheels.patch | 2 +- 00251-change-user-install-location.patch | 2 +- 00274-fix-arch-names.patch | 10 +++--- 00316-mark-bdist_wininst-unsupported.patch | 2 +- python38.spec | 17 +++++++-- sources | 2 +- 9 files changed, 52 insertions(+), 39 deletions(-) diff --git a/00001-rpath.patch b/00001-rpath.patch index 504d2cc..fb55f99 100644 --- a/00001-rpath.patch +++ b/00001-rpath.patch @@ -1,4 +1,4 @@ -From 39b5f58db91eea63fae2883c74f8a3f7fe49bc17 Mon Sep 17 00:00:00 2001 +From 068ae6b9d422e5deeb950d1354a003025642413a Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Wed, 13 Jan 2010 21:25:18 +0000 Subject: [PATCH 1/7] 00001: Fixup distutils/unixccompiler.py to remove diff --git a/00102-lib64.patch b/00102-lib64.patch index 40da29f..9e03dcc 100644 --- a/00102-lib64.patch +++ b/00102-lib64.patch @@ -1,4 +1,4 @@ -From c601ae9643cda53d9e1b898ea941bf9207c9f2f6 Mon Sep 17 00:00:00 2001 +From 1b28c83def441be0e9377058b9a29a1ea3558ae0 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Wed, 13 Jan 2010 21:25:18 +0000 Subject: [PATCH 2/7] 00102: Change the various install paths to use @@ -154,7 +154,7 @@ index 41c4229919..543c88432a 100644 'site-packages') self.assertEqual(dirs[0], wanted) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 75eb66be3c..f1e21784af 100644 +index a0bc9c1f1c..780118c410 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -143,7 +143,7 @@ LIBDIR= @libdir@ @@ -167,28 +167,28 @@ index 75eb66be3c..f1e21784af 100644 # Detailed destination directories diff --git a/Modules/getpath.c b/Modules/getpath.c -index 3991ad719c..1baf8a2ff4 100644 +index 5f80738188..73d7913441 100644 --- a/Modules/getpath.c +++ b/Modules/getpath.c -@@ -688,7 +688,7 @@ calculate_exec_prefix(const _PyCoreConfig *core_config, +@@ -689,7 +689,7 @@ calculate_exec_prefix(const PyConfig *config, if (safe_wcscpy(exec_prefix, calculate->exec_prefix, exec_prefix_len) < 0) { return PATHLEN_ERR(); } -- err = joinpath(exec_prefix, L"lib/lib-dynload", exec_prefix_len); -+ err = joinpath(exec_prefix, L"lib64/lib-dynload", exec_prefix_len); - if (_Py_INIT_FAILED(err)) { - return err; +- status = joinpath(exec_prefix, L"lib/lib-dynload", exec_prefix_len); ++ status = joinpath(exec_prefix, L"lib64/lib-dynload", exec_prefix_len); + if (_PyStatus_EXCEPTION(status)) { + return status; } -@@ -1015,7 +1015,7 @@ calculate_zip_path(PyCalculatePath *calculate, const wchar_t *prefix) +@@ -1016,7 +1016,7 @@ calculate_zip_path(PyCalculatePath *calculate, const wchar_t *prefix) return PATHLEN_ERR(); } } -- err = joinpath(calculate->zip_path, L"lib/python00.zip", zip_path_len); -+ err = joinpath(calculate->zip_path, L"lib64/python00.zip", zip_path_len); - if (_Py_INIT_FAILED(err)) { - return err; +- status = joinpath(calculate->zip_path, L"lib/python00.zip", zip_path_len); ++ status = joinpath(calculate->zip_path, L"lib64/python00.zip", zip_path_len); + if (_PyStatus_EXCEPTION(status)) { + return status; } -@@ -1144,7 +1144,7 @@ calculate_init(PyCalculatePath *calculate, +@@ -1145,7 +1145,7 @@ calculate_init(PyCalculatePath *calculate, if (!calculate->prefix) { return DECODE_LOCALE_ERR("EXEC_PREFIX define", len); } @@ -198,10 +198,10 @@ index 3991ad719c..1baf8a2ff4 100644 return DECODE_LOCALE_ERR("EXEC_PREFIX define", len); } diff --git a/configure b/configure -index e6e4007351..b01e6fa9b7 100755 +index b606fc808c..50b578a551 100755 --- a/configure +++ b/configure -@@ -15159,9 +15159,9 @@ fi +@@ -15175,9 +15175,9 @@ fi if test x$PLATFORM_TRIPLET = x; then @@ -214,10 +214,10 @@ index e6e4007351..b01e6fa9b7 100755 diff --git a/configure.ac b/configure.ac -index a02597da2d..7f86f286b6 100644 +index 3d589ac258..3bb44e6993 100644 --- a/configure.ac +++ b/configure.ac -@@ -4653,9 +4653,9 @@ fi +@@ -4649,9 +4649,9 @@ fi dnl define LIBPL after ABIFLAGS and LDVERSION is defined. AC_SUBST(PY_ENABLE_SHARED) if test x$PLATFORM_TRIPLET = x; then @@ -230,10 +230,10 @@ index a02597da2d..7f86f286b6 100644 AC_SUBST(LIBPL) diff --git a/setup.py b/setup.py -index 96a49b4e35..64420838af 100644 +index 598f5819f8..0685620484 100644 --- a/setup.py +++ b/setup.py -@@ -610,7 +610,7 @@ class PyBuildExt(build_ext): +@@ -648,7 +648,7 @@ class PyBuildExt(build_ext): # directories (i.e. '.' and 'Include') must be first. See issue # 10520. if not CROSS_COMPILING: @@ -242,7 +242,7 @@ index 96a49b4e35..64420838af 100644 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: -@@ -906,11 +906,11 @@ class PyBuildExt(build_ext): +@@ -944,11 +944,11 @@ class PyBuildExt(build_ext): elif curses_library: readline_libs.append(curses_library) elif self.compiler.find_library_file(self.lib_dirs + diff --git a/00111-no-static-lib.patch b/00111-no-static-lib.patch index 6d1dc16..fbfa2f3 100644 --- a/00111-no-static-lib.patch +++ b/00111-no-static-lib.patch @@ -1,4 +1,4 @@ -From 0acdfa7c697ffb1087ded14819c7dcfe4784ca7c Mon Sep 17 00:00:00 2001 +From 79544450450248e4967a8b41aa6d08d32d5cd41a Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Mon, 18 Jan 2010 17:59:07 +0000 Subject: [PATCH 3/7] 00111: Don't try to build a libpythonMAJOR.MINOR.a @@ -21,10 +21,10 @@ Co-authored-by: Miro Hrončok 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index f1e21784af..414aa96008 100644 +index 780118c410..3431ca815e 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -559,7 +559,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c +@@ -560,7 +560,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c $(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py --make --srcdir $(srcdir) # Build the interpreter @@ -33,7 +33,7 @@ index f1e21784af..414aa96008 100644 $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) platform: $(BUILDPYTHON) pybuilddir.txt -@@ -607,12 +607,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o +@@ -608,12 +608,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build @@ -46,7 +46,7 @@ index f1e21784af..414aa96008 100644 libpython$(LDVERSION).so: $(LIBRARY_OBJS) $(DTRACE_OBJS) if test $(INSTSONAME) != $(LDLIBRARY); then \ $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM); \ -@@ -690,7 +684,7 @@ Makefile Modules/config.c: Makefile.pre \ +@@ -691,7 +685,7 @@ Makefile Modules/config.c: Makefile.pre \ @echo "The Makefile was updated, you may need to re-run make." @@ -55,7 +55,7 @@ index f1e21784af..414aa96008 100644 $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) ############################################################################ -@@ -1532,17 +1526,6 @@ libainstall: @DEF_MAKE_RULE@ python-config +@@ -1546,17 +1540,6 @@ libainstall: @DEF_MAKE_RULE@ python-config else true; \ fi; \ done diff --git a/00189-use-rpm-wheels.patch b/00189-use-rpm-wheels.patch index e75f6a8..14648d5 100644 --- a/00189-use-rpm-wheels.patch +++ b/00189-use-rpm-wheels.patch @@ -1,4 +1,4 @@ -From 7bb76d766aa5394e845f656b3f68b7910e9ee4e6 Mon Sep 17 00:00:00 2001 +From 56d0cce46e634840578af18492f3dffea55774a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 15 Aug 2018 15:36:29 +0200 Subject: [PATCH 4/7] 00189: Instead of bundled wheels, use our RPM packaged diff --git a/00251-change-user-install-location.patch b/00251-change-user-install-location.patch index 4c19ac8..7ac4ea2 100644 --- a/00251-change-user-install-location.patch +++ b/00251-change-user-install-location.patch @@ -1,4 +1,4 @@ -From 377daf65817790e78ccec966221724f4523693c1 Mon Sep 17 00:00:00 2001 +From 31460771d57aa535ed4672547d268c38f9eed755 Mon Sep 17 00:00:00 2001 From: Michal Cyprian Date: Mon, 26 Jun 2017 16:32:56 +0200 Subject: [PATCH 5/7] 00251: Change user install location diff --git a/00274-fix-arch-names.patch b/00274-fix-arch-names.patch index 16a8b9e..c5e92b2 100644 --- a/00274-fix-arch-names.patch +++ b/00274-fix-arch-names.patch @@ -1,4 +1,4 @@ -From e9def22e31801d9d75017e6752d3daf4099bc836 Mon Sep 17 00:00:00 2001 +From d63983e350f673cf9a5f4267e73475535432ebe7 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Mon, 28 Aug 2017 17:16:46 +0200 Subject: [PATCH 6/7] 00274: Upstream uses Debian-style architecture naming, @@ -29,10 +29,10 @@ index ba37cf99e2..52a9ec6662 100755 ppc64le | powerpc64little) basic_machine=powerpc64le-unknown diff --git a/configure.ac b/configure.ac -index 7f86f286b6..6d7430e014 100644 +index 3bb44e6993..98b5e32ad9 100644 --- a/configure.ac +++ b/configure.ac -@@ -740,9 +740,9 @@ cat >> conftest.c <> conftest.c <> conftest.c <> conftest.c <> conftest.c <> conftest.c < Date: Thu, 20 Dec 2018 12:46:25 +0100 Subject: [PATCH 7/7] 00316: Mark bdist_wininst unsupported diff --git a/python38.spec b/python38.spec index 90eb418..b7f69fc 100644 --- a/python38.spec +++ b/python38.spec @@ -14,10 +14,10 @@ URL: https://www.python.org/ # WARNING When rebasing to a new Python version, # remember to update the python3-docs package as well %global general_version %{pybasever}.0 -%global prerel a4 +%global prerel b1 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 2%{?dist} +Release: 1%{?dist} License: Python @@ -882,6 +882,7 @@ rm %{buildroot}%{_bindir}/2to3 rm %{buildroot}%{_libdir}/libpython3.so rm %{buildroot}%{_mandir}/man1/python3.1* rm %{buildroot}%{_libdir}/pkgconfig/python3.pc +rm %{buildroot}%{_libdir}/pkgconfig/python3-embed.pc %endif @@ -1184,6 +1185,11 @@ CheckPython optimized %{pylibdir}/importlib/*.py %{pylibdir}/importlib/__pycache__/*%{bytecode_suffixes} +%dir %{pylibdir}/importlib/metadata/ +%dir %{pylibdir}/importlib/metadata/__pycache__/ +%{pylibdir}/importlib/metadata/*.py +%{pylibdir}/importlib/metadata/__pycache__/*%{bytecode_suffixes} + %dir %{pylibdir}/json/ %dir %{pylibdir}/json/__pycache__/ %{pylibdir}/json/*.py @@ -1243,6 +1249,7 @@ CheckPython optimized %if %{without flatpackage} %{_bindir}/python3-config %{_libdir}/pkgconfig/python3.pc +%{_libdir}/pkgconfig/python3-embed.pc %{_bindir}/pathfix.py %{_bindir}/pygettext3.py %{_bindir}/msgfmt3.py @@ -1256,7 +1263,9 @@ CheckPython optimized %{_bindir}/python%{LDVERSION_optimized}-*-config %{_libdir}/libpython%{LDVERSION_optimized}.so %{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc +%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}-embed.pc %{_libdir}/pkgconfig/python-%{pybasever}.pc +%{_libdir}/pkgconfig/python-%{pybasever}-embed.pc %if %{without flatpackage} @@ -1424,6 +1433,7 @@ CheckPython optimized %{_libdir}/libpython%{LDVERSION_debug}.so %{_libdir}/libpython%{LDVERSION_debug}.so.1.0 %{_libdir}/pkgconfig/python-%{LDVERSION_debug}.pc +%{_libdir}/pkgconfig/python-%{LDVERSION_debug}-embed.pc # Analog of the -tools subpackage's files: # None for now; we could build precanned versions that have the appropriate @@ -1463,6 +1473,9 @@ CheckPython optimized # ====================================================== %changelog +* Wed Jun 05 2019 Miro Hrončok - 3.8.0~b1-1 +- Update to 3.8.0b1 + * Fri May 17 2019 Miro Hrončok - 3.8.0~a4-2 - Remove a faulty patch that resulted in invalid value of distutils.sysconfig.get_config_var('LIBPL') (#1710767) diff --git a/sources b/sources index 4536033..663a3ab 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Python-3.8.0a4.tar.xz) = 76088206e3eb4ff0b9060f35e0bf994018452cc98d7f576bf7d6842158a6f6ae173b281c442f1175402428c683667b7bacebb2b989a561a9f12db1ad5f0f42cb +SHA512 (Python-3.8.0b1.tar.xz) = 0e2547691fde3a88408211146cd3be0de8e3e79c11485aec1062c17fabccefbcf2c1b188c96e570387f86b2e1b6a2fcbbb7329b241ff978974ca43e01ef014ca From 3a6f3f6941b5212d29a61908a51ab0656f2ed8af Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 11 Jun 2019 15:01:09 +0200 Subject: [PATCH 25/42] Reenable test_distutils and test_bdist_rpm Resolves: rhbz#1685557 --- python38.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/python38.spec b/python38.spec index b7f69fc..73113c4 100644 --- a/python38.spec +++ b/python38.spec @@ -954,8 +954,6 @@ CheckPython() { # https://bugs.python.org/issue35998 LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \ -wW --slowest -j0 \ - -x test_distutils \ - -x test_bdist_rpm \ %ifarch %{arm} s390x -x test_gdb \ %endif From 17d397670a1f5942c051038baeafa66ebcd68528 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 17 Jun 2019 17:29:58 +0200 Subject: [PATCH 26/42] Skip test_distutils if bootstraping, use python3.X for regen-all --- python38.spec | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/python38.spec b/python38.spec index 73113c4..3f40c79 100644 --- a/python38.spec +++ b/python38.spec @@ -204,8 +204,8 @@ BuildRequires: python-pip-wheel %endif %if %{without bootstrap} -# for make regen-all -BuildRequires: python3 +# for make regen-all and distutils.tests.test_bdist_rpm +BuildRequires: python%{pyshortver} %endif # ======================= @@ -625,7 +625,7 @@ BuildPython() { %if %{without bootstrap} # Regenerate generated files (needs python3) - %make_build regen-all PYTHON_FOR_REGEN="python3" + %make_build regen-all PYTHON_FOR_REGEN="python%{pybasever}" %endif @@ -952,8 +952,14 @@ CheckPython() { # https://bugzilla.redhat.com/show_bug.cgi?id=1678277 # test_asyncio skipped: # https://bugs.python.org/issue35998 + # test_distutils + # distutils.tests.test_bdist_rpm tests fail when bootstraping the Python + # package: rpmbuild requires /usr/bin/pythonX.Y to be installed LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \ -wW --slowest -j0 \ + %if %{with bootstrap} + -x test_distutils \ + %endif %ifarch %{arm} s390x -x test_gdb \ %endif From 949410ed57834259ee4c891af64c76ff3f784ce9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Fri, 28 Jun 2019 13:12:55 +0200 Subject: [PATCH 27/42] Fedora CI: Provision 3 GiB of RAM --- tests/.fmf/version | 1 + tests/provision.fmf | 4 ++++ 2 files changed, 5 insertions(+) create mode 100644 tests/.fmf/version create mode 100644 tests/provision.fmf diff --git a/tests/.fmf/version b/tests/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/tests/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/tests/provision.fmf b/tests/provision.fmf new file mode 100644 index 0000000..1a4f0f0 --- /dev/null +++ b/tests/provision.fmf @@ -0,0 +1,4 @@ +--- +standard-inventory-qcow2: + qemu: + m: 3G # Amount of VM memory From b6a6e97b8fa0c4322cb62677644c07b52aae1716 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Fri, 28 Jun 2019 10:34:48 +0200 Subject: [PATCH 28/42] Don't skip so many tests on the CI test_wsgiref is tracked in https://bugs.python.org/issue37411 --- tests/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/tests.yml b/tests/tests.yml index ccc6808..6d53a9c 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -13,7 +13,7 @@ run: VERSION=3.8 ./venv.sh - selftest: dir: python/selftest - run: VERSION=3.8 X="-x test_socket -x test_asyncgen -x test_asyncio -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./parallel.sh + run: VERSION=3.8 X="-x test_wsgiref" ./parallel.sh required_packages: - gcc # for extension building in venv and selftest - gdb # for test_gdb From 13257b57b3fc88a65ec1b5d8454e81243c5f1878 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Fri, 5 Jul 2019 12:10:54 +0200 Subject: [PATCH 29/42] Update to 3.8.0b2 --- 00001-rpath.patch | 2 +- 00102-lib64.patch | 20 ++++++++++---------- 00111-no-static-lib.patch | 6 +++--- 00189-use-rpm-wheels.patch | 6 +++--- 00251-change-user-install-location.patch | 6 +++--- 00274-fix-arch-names.patch | 4 ++-- 00316-mark-bdist_wininst-unsupported.patch | 4 ++-- python38.spec | 5 ++++- sources | 2 +- 9 files changed, 29 insertions(+), 26 deletions(-) diff --git a/00001-rpath.patch b/00001-rpath.patch index fb55f99..c78445d 100644 --- a/00001-rpath.patch +++ b/00001-rpath.patch @@ -1,4 +1,4 @@ -From 068ae6b9d422e5deeb950d1354a003025642413a Mon Sep 17 00:00:00 2001 +From 8738c39204297788bcb07940a99608f80592829f Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Wed, 13 Jan 2010 21:25:18 +0000 Subject: [PATCH 1/7] 00001: Fixup distutils/unixccompiler.py to remove diff --git a/00102-lib64.patch b/00102-lib64.patch index 9e03dcc..88d7fbd 100644 --- a/00102-lib64.patch +++ b/00102-lib64.patch @@ -1,4 +1,4 @@ -From 1b28c83def441be0e9377058b9a29a1ea3558ae0 Mon Sep 17 00:00:00 2001 +From 6a503d0ad4512af57ef8a784f12bc439701d8cc7 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Wed, 13 Jan 2010 21:25:18 +0000 Subject: [PATCH 2/7] 00102: Change the various install paths to use @@ -87,10 +87,10 @@ index 287ab1989e..d4c05e0ab1 100644 check_path(cmd.install_headers, os.path.join(destination, "include", "python", "foopkg")) diff --git a/Lib/site.py b/Lib/site.py -index ad1146332b..99149a564f 100644 +index a065ab0b5d..22d53fa562 100644 --- a/Lib/site.py +++ b/Lib/site.py -@@ -334,11 +334,15 @@ def getsitepackages(prefixes=None): +@@ -335,11 +335,15 @@ def getsitepackages(prefixes=None): seen.add(prefix) if os.sep == '/': @@ -107,7 +107,7 @@ index ad1146332b..99149a564f 100644 return sitepackages diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py -index 8446c8deb2..cf64d79c4d 100644 +index e76e6927cb..0cfbea54b9 100644 --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py @@ -20,10 +20,10 @@ __all__ = [ @@ -154,7 +154,7 @@ index 41c4229919..543c88432a 100644 'site-packages') self.assertEqual(dirs[0], wanted) diff --git a/Makefile.pre.in b/Makefile.pre.in -index a0bc9c1f1c..780118c410 100644 +index 88abb56360..6c2edf32f7 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -143,7 +143,7 @@ LIBDIR= @libdir@ @@ -198,10 +198,10 @@ index 5f80738188..73d7913441 100644 return DECODE_LOCALE_ERR("EXEC_PREFIX define", len); } diff --git a/configure b/configure -index b606fc808c..50b578a551 100755 +index 6e7f277bac..6cd8344c21 100755 --- a/configure +++ b/configure -@@ -15175,9 +15175,9 @@ fi +@@ -15181,9 +15181,9 @@ fi if test x$PLATFORM_TRIPLET = x; then @@ -214,10 +214,10 @@ index b606fc808c..50b578a551 100755 diff --git a/configure.ac b/configure.ac -index 3d589ac258..3bb44e6993 100644 +index 324ce0bd99..9a587f3c3f 100644 --- a/configure.ac +++ b/configure.ac -@@ -4649,9 +4649,9 @@ fi +@@ -4655,9 +4655,9 @@ fi dnl define LIBPL after ABIFLAGS and LDVERSION is defined. AC_SUBST(PY_ENABLE_SHARED) if test x$PLATFORM_TRIPLET = x; then @@ -230,7 +230,7 @@ index 3d589ac258..3bb44e6993 100644 AC_SUBST(LIBPL) diff --git a/setup.py b/setup.py -index 598f5819f8..0685620484 100644 +index edc3434242..59cfc01a2a 100644 --- a/setup.py +++ b/setup.py @@ -648,7 +648,7 @@ class PyBuildExt(build_ext): diff --git a/00111-no-static-lib.patch b/00111-no-static-lib.patch index fbfa2f3..2cfeaf0 100644 --- a/00111-no-static-lib.patch +++ b/00111-no-static-lib.patch @@ -1,4 +1,4 @@ -From 79544450450248e4967a8b41aa6d08d32d5cd41a Mon Sep 17 00:00:00 2001 +From efbafc6328f45da6d38a1848933a37497206fb3f Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Mon, 18 Jan 2010 17:59:07 +0000 Subject: [PATCH 3/7] 00111: Don't try to build a libpythonMAJOR.MINOR.a @@ -21,7 +21,7 @@ Co-authored-by: Miro Hrončok 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 780118c410..3431ca815e 100644 +index 6c2edf32f7..28c0cead24 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -560,7 +560,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c @@ -55,7 +55,7 @@ index 780118c410..3431ca815e 100644 $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) ############################################################################ -@@ -1546,17 +1540,6 @@ libainstall: @DEF_MAKE_RULE@ python-config +@@ -1551,17 +1545,6 @@ libainstall: @DEF_MAKE_RULE@ python-config else true; \ fi; \ done diff --git a/00189-use-rpm-wheels.patch b/00189-use-rpm-wheels.patch index 14648d5..124fe81 100644 --- a/00189-use-rpm-wheels.patch +++ b/00189-use-rpm-wheels.patch @@ -1,4 +1,4 @@ -From 56d0cce46e634840578af18492f3dffea55774a5 Mon Sep 17 00:00:00 2001 +From 2edaa31dec042fb8720add80814ca4a3cc4f788f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 15 Aug 2018 15:36:29 +0200 Subject: [PATCH 4/7] 00189: Instead of bundled wheels, use our RPM packaged @@ -10,7 +10,7 @@ We keep them in /usr/share/python-wheels 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py -index 526dfd004a..fc02255feb 100644 +index 6f2569da81..4d17e413db 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py @@ -1,16 +1,27 @@ @@ -44,7 +44,7 @@ index 526dfd004a..fc02255feb 100644 _PROJECTS = [ ("setuptools", _SETUPTOOLS_VERSION), -@@ -94,12 +105,9 @@ def _bootstrap(*, root=None, upgrade=False, user=False, +@@ -96,12 +107,9 @@ def _bootstrap(*, root=None, upgrade=False, user=False, additional_paths = [] for project, version in _PROJECTS: wheel_name = "{}-{}-py2.py3-none-any.whl".format(project, version) diff --git a/00251-change-user-install-location.patch b/00251-change-user-install-location.patch index 7ac4ea2..b00e6a7 100644 --- a/00251-change-user-install-location.patch +++ b/00251-change-user-install-location.patch @@ -1,4 +1,4 @@ -From 31460771d57aa535ed4672547d268c38f9eed755 Mon Sep 17 00:00:00 2001 +From 3e26b01573488b015065139689be3aa47dac17cf Mon Sep 17 00:00:00 2001 From: Michal Cyprian Date: Mon, 26 Jun 2017 16:32:56 +0200 Subject: [PATCH 5/7] 00251: Change user install location @@ -40,10 +40,10 @@ index ae4f915669..0e4fd5b74a 100644 else: if self.exec_prefix is None: diff --git a/Lib/site.py b/Lib/site.py -index 99149a564f..1107324848 100644 +index 22d53fa562..9513526109 100644 --- a/Lib/site.py +++ b/Lib/site.py -@@ -347,7 +347,14 @@ def getsitepackages(prefixes=None): +@@ -348,7 +348,14 @@ def getsitepackages(prefixes=None): return sitepackages def addsitepackages(known_paths, prefixes=None): diff --git a/00274-fix-arch-names.patch b/00274-fix-arch-names.patch index c5e92b2..63f23f5 100644 --- a/00274-fix-arch-names.patch +++ b/00274-fix-arch-names.patch @@ -1,4 +1,4 @@ -From d63983e350f673cf9a5f4267e73475535432ebe7 Mon Sep 17 00:00:00 2001 +From b92e29a8cc17f9c02a08b7a005e5ece71a409a0b Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Mon, 28 Aug 2017 17:16:46 +0200 Subject: [PATCH 6/7] 00274: Upstream uses Debian-style architecture naming, @@ -29,7 +29,7 @@ index ba37cf99e2..52a9ec6662 100755 ppc64le | powerpc64little) basic_machine=powerpc64le-unknown diff --git a/configure.ac b/configure.ac -index 3bb44e6993..98b5e32ad9 100644 +index 9a587f3c3f..695ff85e4b 100644 --- a/configure.ac +++ b/configure.ac @@ -741,9 +741,9 @@ cat >> conftest.c < Date: Thu, 20 Dec 2018 12:46:25 +0100 Subject: [PATCH 7/7] 00316: Mark bdist_wininst unsupported @@ -10,7 +10,7 @@ So we mark the command as unsupported - and the tests are skipped. 1 file changed, 2 insertions(+) diff --git a/Lib/distutils/command/bdist_wininst.py b/Lib/distutils/command/bdist_wininst.py -index 3a616883be..ba299a4028 100644 +index acaa184b5f..6b458cb364 100644 --- a/Lib/distutils/command/bdist_wininst.py +++ b/Lib/distutils/command/bdist_wininst.py @@ -12,6 +12,8 @@ from distutils.sysconfig import get_python_version diff --git a/python38.spec b/python38.spec index 3f40c79..1fca8bb 100644 --- a/python38.spec +++ b/python38.spec @@ -14,7 +14,7 @@ URL: https://www.python.org/ # WARNING When rebasing to a new Python version, # remember to update the python3-docs package as well %global general_version %{pybasever}.0 -%global prerel b1 +%global prerel b2 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} Release: 1%{?dist} @@ -1477,6 +1477,9 @@ CheckPython optimized # ====================================================== %changelog +* Fri Jul 05 2019 Miro Hrončok - 3.8.0~b2-1 +- Update to 3.8.0b2 + * Wed Jun 05 2019 Miro Hrončok - 3.8.0~b1-1 - Update to 3.8.0b1 diff --git a/sources b/sources index 663a3ab..b6aaea1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Python-3.8.0b1.tar.xz) = 0e2547691fde3a88408211146cd3be0de8e3e79c11485aec1062c17fabccefbcf2c1b188c96e570387f86b2e1b6a2fcbbb7329b241ff978974ca43e01ef014ca +SHA512 (Python-3.8.0b2.tar.xz) = 5d4fdabad098b5273d34ecd939e7f7c104f4f9fc1460e5abaf4a8d1ad1c5d2ff26d579de03106f000672e0a20fcd6e4e1e44ce03be4bb4a734f937f3cc81cb3e From f16aa02ebf66256fb4c82f25548ff827ad7f9b5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 8 Jul 2019 09:48:15 +0200 Subject: [PATCH 30/42] Remove patch 316 The patch landed in Python in be5bb52f5f2d4da4b9d6f42399f7275ab47910f3 However patch 316 still applied cleanly. Removing it doesn't make any difference, so not bumping anything. --- 00316-mark-bdist_wininst-unsupported.patch | 27 ---------------------- python38.spec | 6 ----- 2 files changed, 33 deletions(-) delete mode 100644 00316-mark-bdist_wininst-unsupported.patch diff --git a/00316-mark-bdist_wininst-unsupported.patch b/00316-mark-bdist_wininst-unsupported.patch deleted file mode 100644 index b54d9e1..0000000 --- a/00316-mark-bdist_wininst-unsupported.patch +++ /dev/null @@ -1,27 +0,0 @@ -From b4bb0385ffcfafb2a203b0863777b135d37feb3a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= -Date: Thu, 20 Dec 2018 12:46:25 +0100 -Subject: [PATCH 7/7] 00316: Mark bdist_wininst unsupported - -We remove the exe files from distutil's bdist_wininst. -So we mark the command as unsupported - and the tests are skipped. ---- - Lib/distutils/command/bdist_wininst.py | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/Lib/distutils/command/bdist_wininst.py b/Lib/distutils/command/bdist_wininst.py -index acaa184b5f..6b458cb364 100644 ---- a/Lib/distutils/command/bdist_wininst.py -+++ b/Lib/distutils/command/bdist_wininst.py -@@ -12,6 +12,8 @@ from distutils.sysconfig import get_python_version - from distutils import log - - class bdist_wininst(Command): -+ # Marker for tests that we have the unsupported bdist_wininst -+ _unsupported = True - - description = "create an executable installer for MS Windows" - --- -2.21.0 - diff --git a/python38.spec b/python38.spec index 1fca8bb..d0e347e 100644 --- a/python38.spec +++ b/python38.spec @@ -259,11 +259,6 @@ Patch251: 00251-change-user-install-location.patch # Upstream uses Debian-style architecture naming. Change to match Fedora. Patch274: 00274-fix-arch-names.patch -# 00316 # -# We remove the exe files from distutil's bdist_wininst -# So we mark the command as unsupported - and the tests are skipped -Patch316: 00316-mark-bdist_wininst-unsupported.patch - # (New patches go here ^^^) # # When adding new patches to "python" and "python3" in Fedora, EL, etc., @@ -536,7 +531,6 @@ rm Lib/ensurepip/_bundled/*.whl %patch251 -p1 %patch274 -p1 -%patch316 -p1 # Remove files that should be generated by the build From bc1bef742babda61369307e8352f81e1a5e69b28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 26 Jun 2019 10:30:21 +0200 Subject: [PATCH 31/42] Remove the OPENSSL_CONF=/non-existing-file workaround The test was fixed upstream to expect different config on Fedora. Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1618753 (Note that we still keep that on the CI for older Python versions.) --- python38.spec | 6 ------ 1 file changed, 6 deletions(-) diff --git a/python38.spec b/python38.spec index d0e347e..b9a8a11 100644 --- a/python38.spec +++ b/python38.spec @@ -925,12 +925,6 @@ CheckPython() { ConfName=$1 ConfDir=$(pwd)/build/$ConfName - # Fedora sets TLSv1 as explicit minimum version. - # Python's test suite assumes that the minimum protocol version is set to - # a magic marker. We workaround the test problem by setting: - export OPENSSL_CONF=/non-existing-file - # https://bugzilla.redhat.com/show_bug.cgi?id=1618753 - echo STARTING: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName # Note that we're running the tests using the version of the code in the From b9306b1085cc75b1a409c1520adf1fbf8dba6f33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 8 Jul 2019 11:44:23 +0200 Subject: [PATCH 32/42] Add %python_provide provides This allows easier compatibility back and forth once (and if) https://fedoraproject.org/wiki/Changes/Python_means_Python3 happens. This is not the full implementation of the change, as the python-unversioned package still needs to be added. This is currently a no-op as %python_provide does nothing for python3. --- python38.spec | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/python38.spec b/python38.spec index b9a8a11..326b000 100644 --- a/python38.spec +++ b/python38.spec @@ -198,6 +198,9 @@ BuildRequires: /usr/bin/dtrace # workaround http://bugs.python.org/issue19804 (test_uuid requires ifconfig) BuildRequires: /usr/sbin/ifconfig +# For %%python_provide +BuildRequires: python-rpm-macros + %if %{with rpmwheels} BuildRequires: python-setuptools-wheel BuildRequires: python-pip-wheel @@ -347,6 +350,8 @@ Provides: bundled(python3-pip) = 19.0.3 Provides: bundled(python3-setuptools) = 40.8.0 %endif +%{?python_provide:%python_provide python3-libs} + # There are files in the standard library that have python shebang. # We've filtered the automatic requirement out so libs are installable without # the main package. This however makes it pulled in by default. @@ -368,6 +373,8 @@ BuildRequires: python-rpm-macros Requires: python-rpm-macros Requires: python3-rpm-macros +%{?python_provide:%python_provide python3-devel} + %if %{without bootstrap} # This is not "API" (packages that need setuptools should still BuildRequire it) # However some packages apparently can build both with and without setuptools @@ -406,6 +413,8 @@ Provides: %{name}-tools = %{version}-%{release} Provides: %{name}-tools%{?_isa} = %{version}-%{release} Obsoletes: %{name}-tools < %{version}-%{release} +%{?python_provide:%python_provide python3-idle} + %description idle IDLE is Python’s Integrated Development and Learning Environment. @@ -423,6 +432,8 @@ configuration, browsers, and other dialogs. Summary: A GUI toolkit for Python Requires: %{name} = %{version}-%{release} +%{?python_provide:%python_provide python3-tkinter} + %description tkinter The Tkinter (Tk interface) library is a graphical user interface toolkit for the Python programming language. @@ -433,6 +444,8 @@ Summary: The self-test suite for the main python3 package Requires: %{name} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release} +%{?python_provide:%python_provide python3-test} + %description test The self-test suite for the Python interpreter. @@ -455,6 +468,8 @@ Requires: %{name}-test%{?_isa} = %{version}-%{release} Requires: %{name}-tkinter%{?_isa} = %{version}-%{release} Requires: %{name}-idle%{?_isa} = %{version}-%{release} +%{?python_provide:%python_provide python3-debug} + %description debug python3-debug provides a version of the Python runtime with numerous debugging features enabled, aimed at advanced Python users such as developers of Python From 988896a172b407d31d4425c5ceb9254d26a6c07f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Fri, 12 Jul 2019 19:03:54 +0200 Subject: [PATCH 33/42] Python now means Python 3 - https://fedoraproject.org/wiki/Changes/Python_means_Python3 - The python-unversioned-command package is no longer Python 2, but 3 - The python, pydoc, python-config, python-debug, idle, pygettext.py and msgfmt.py commands are now in python3 --- python38.spec | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/python38.spec b/python38.spec index 326b000..d9ba192 100644 --- a/python38.spec +++ b/python38.spec @@ -304,6 +304,18 @@ Provides: python%{pyshortver} = %{version}-%{release} # replace python36-3.6.2. Obsoletes: python%{pyshortver} +# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_package +# https://fedoraproject.org/wiki/Changes/Python_means_Python3 +# We recommend /usr/bin/python so users get it by default +# Versioned recommends are problematic, and we know that the package requires +# python3 back with fixed version, so we just use the path here: +Recommends: %{_bindir}/python + +# In Fedora 31, /usr/bin/pydoc was moved here from Python 2. +# Ideally we'd have an explicit conflict with "/usr/bin/pydoc < 3", +# but file provides aren't versioned and the file moved across packages. +# Instead, we rely on the conflict in python3-libs. + # Previously, this was required for our rewheel patch to work. # This is technically no longer needed, but we keep it recommended # for the developer experience. @@ -339,6 +351,22 @@ Packages containing additional libraries for Python are generally named with the "%{name}-" prefix. +# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_package +# https://fedoraproject.org/wiki/Changes/Python_means_Python3 +%package -n python-unversioned-command +Summary: The "python" command that runs Python 3 +BuildArch: noarch + +# In theory this could require any python3 version +Requires: python3 == %{version}-%{release} +# But since we want to provide versioned python, we require exact version +Provides: python = %{version}-%{release} +# This also save us an explicit conflict for older python3 builds + +%description -n python-unversioned-command +This package contains /usr/bin/python - the "python" command that runs Python 3. + + %package libs Summary: Python runtime libraries @@ -358,6 +386,18 @@ Provides: bundled(python3-setuptools) = 40.8.0 # See https://bugzilla.redhat.com/show_bug.cgi?id=1547131 Recommends: %{name}%{?_isa} = %{version}-%{release} +# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_package +# In Fedora 31, several "unversioned" files like /usr/bin/pydoc and all the +# "unversioned" provides were moved from python2 to python3. +# So, newer python3 packages need to conflict with old Python 2 builds that +# still provided unversioned Python. +# Since all python packages, new and old, have versioned requires on +# python?-libs, we do it here: +Conflicts: python-libs < 3 +# (We explicitly conflict with python-libs and not python2-libs, so only the +# old Python 2 builds that still provided unversioned Python are handled.) + + %description libs This package contains runtime libraries for use by Python: - the majority of the Python standard library @@ -393,6 +433,10 @@ Provides: 2to3 = %{version}-%{release} Conflicts: %{name} < %{version}-%{release} +# In Fedora 31, several "unversioned" files were moved here from Python 2: +# pygettext.py, msgfmt.py, python-config, python.pc +Conflicts: python-devel < 3 + %description devel This package contains the header files and configuration needed to compile Python extension modules (typically written in C or C++), to embed Python @@ -408,11 +452,15 @@ Requires: %{name} = %{version}-%{release} Requires: %{name}-tkinter = %{version}-%{release} Provides: idle3 = %{version}-%{release} +Provides: idle = %{version}-%{release} Provides: %{name}-tools = %{version}-%{release} Provides: %{name}-tools%{?_isa} = %{version}-%{release} Obsoletes: %{name}-tools < %{version}-%{release} +# In Fedora 31, /usr/bin/idle was moved here from Python 2. +Conflicts: python-tools < 3 + %{?python_provide:%python_provide python3-idle} %description idle @@ -468,6 +516,9 @@ Requires: %{name}-test%{?_isa} = %{version}-%{release} Requires: %{name}-tkinter%{?_isa} = %{version}-%{release} Requires: %{name}-idle%{?_isa} = %{version}-%{release} +# In Fedora 31, /usr/bin/python-debug was moved here from Python 2. +Conflicts: python-debug < 3 + %{?python_provide:%python_provide python3-debug} %description debug @@ -892,6 +943,20 @@ rm %{buildroot}%{_libdir}/libpython3.so rm %{buildroot}%{_mandir}/man1/python3.1* rm %{buildroot}%{_libdir}/pkgconfig/python3.pc rm %{buildroot}%{_libdir}/pkgconfig/python3-embed.pc +%else +# Link the unversioned stuff +# https://fedoraproject.org/wiki/Changes/Python_means_Python3 +ln -s ./python3 %{buildroot}%{_bindir}/python +ln -s ./pydoc3 %{buildroot}%{_bindir}/pydoc +ln -s ./pygettext3.py %{buildroot}%{_bindir}/pygettext.py +ln -s ./msgfmt3.py %{buildroot}%{_bindir}/msgfmt.py +ln -s ./idle3 %{buildroot}%{_bindir}/idle +ln -s ./python3-config %{buildroot}%{_bindir}/python-config +ln -s ./python3.1 %{buildroot}%{_mandir}/man1/python.1 +ln -s ./python3.pc %{buildroot}%{_libdir}/pkgconfig/python.pc +%if %{with debug_build} +ln -s ./python3-debug %{buildroot}%{_bindir}/python-debug +%endif %endif @@ -999,10 +1064,14 @@ CheckPython optimized %{_bindir}/python%{pybasever} %{_bindir}/python%{LDVERSION_optimized} -%{_mandir}/*/* +%{_mandir}/*/*3* %if %{without flatpackage} +%files -n python-unversioned-command +%{_bindir}/python +%{_mandir}/*/python.1* + %files libs %license LICENSE %doc README.rst @@ -1255,11 +1324,15 @@ CheckPython optimized %if %{without flatpackage} %{_bindir}/python3-config +%{_bindir}/python-config %{_libdir}/pkgconfig/python3.pc +%{_libdir}/pkgconfig/python.pc %{_libdir}/pkgconfig/python3-embed.pc %{_bindir}/pathfix.py %{_bindir}/pygettext3.py +%{_bindir}/pygettext.py %{_bindir}/msgfmt3.py +%{_bindir}/msgfmt.py %endif %{_bindir}/pygettext%{pybasever}.py @@ -1348,6 +1421,7 @@ CheckPython optimized %if %{without flatpackage} %files debug %{_bindir}/python3-debug +%{_bindir}/python-debug %endif # Analog of the core subpackage's files: From 7bf69ee163cd3cdbb3241dd717d001f617ea8d86 Mon Sep 17 00:00:00 2001 From: Lumir Balhar Date: Mon, 15 Jul 2019 12:19:12 +0000 Subject: [PATCH 34/42] Move test.support module to python3-test subpackage More info: https://fedoraproject.org/wiki/Changes/Move_test.support_module_to_python3-test_subpackage --- python38.spec | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/python38.spec b/python38.spec index d9ba192..d4a6314 100644 --- a/python38.spec +++ b/python38.spec @@ -1116,20 +1116,6 @@ CheckPython optimized %{pylibdir}/ensurepip/_bundled/*.whl %endif -# The majority of the test module lives in the test subpackage -# However test.support is in libs - it contains stuff used when testing your code -# https://bugzilla.redhat.com/show_bug.cgi?id=596258 -%if %{without flatpackage} -%dir %{pylibdir}/test/ -%dir %{pylibdir}/test/__pycache__/ -%dir %{pylibdir}/test/support/ -%dir %{pylibdir}/test/support/__pycache__/ -%{pylibdir}/test/__init__.py -%{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes} -%{pylibdir}/test/support/*.py -%{pylibdir}/test/support/__pycache__/*%{bytecode_suffixes} -%endif - %dir %{pylibdir}/concurrent/ %dir %{pylibdir}/concurrent/__pycache__/ %{pylibdir}/concurrent/*.py @@ -1401,16 +1387,6 @@ CheckPython optimized %{pylibdir}/tkinter/test %{pylibdir}/unittest/test -# stuff already owned by the libs subpackage -# test requires libs, so we are safe not owning those dirs -%if %{without flatpackage} -%exclude %dir %{pylibdir}/test/ -%exclude %dir %{pylibdir}/test/__pycache__/ -%exclude %{pylibdir}/test/__init__.py -%exclude %{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes} -%exclude %{pylibdir}/test/support/ -%endif - # We don't bother splitting the debug build out into further subpackages: # if you need it, you're probably a developer. From 9213c03924aeb612d1b754dbe0b4397782c6b3fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 15 Jul 2019 15:38:52 +0200 Subject: [PATCH 35/42] Restore pyc to TIMESTAMP invalidation mode as default in rpmbubild See https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/57#comment-27426 --- 00328-pyc-timestamp-invalidation-mode.patch | 55 +++++++++++++++++++++ python38.spec | 6 +++ 2 files changed, 61 insertions(+) create mode 100644 00328-pyc-timestamp-invalidation-mode.patch diff --git a/00328-pyc-timestamp-invalidation-mode.patch b/00328-pyc-timestamp-invalidation-mode.patch new file mode 100644 index 0000000..87515c4 --- /dev/null +++ b/00328-pyc-timestamp-invalidation-mode.patch @@ -0,0 +1,55 @@ +From 746a45acd333174c3174230833b45f537bd92889 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= +Date: Thu, 11 Jul 2019 13:44:13 +0200 +Subject: [PATCH] 00328: Restore pyc to TIMESTAMP invalidation mode as default + in rpmbuild + +Since Fedora 31, the $SOURCE_DATE_EPOCH is set in rpmbuild to the latest +%changelog date. This makes Python default to the CHECKED_HASH pyc +invalidation mode, bringing more reproducible builds traded for an import +performance decrease. To avoid that, we don't default to CHECKED_HASH +when $RPM_BUILD_ROOT is set (i.e. when we are building RPM packages). + +See https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/57#comment-27426 +--- + Lib/py_compile.py | 3 ++- + Lib/test/test_py_compile.py | 2 ++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/Lib/py_compile.py b/Lib/py_compile.py +index 21736896af..310bed5620 100644 +--- a/Lib/py_compile.py ++++ b/Lib/py_compile.py +@@ -70,7 +70,8 @@ class PycInvalidationMode(enum.Enum): + + + def _get_default_invalidation_mode(): +- if os.environ.get('SOURCE_DATE_EPOCH'): ++ if (os.environ.get('SOURCE_DATE_EPOCH') and not ++ os.environ.get('RPM_BUILD_ROOT')): + return PycInvalidationMode.CHECKED_HASH + else: + return PycInvalidationMode.TIMESTAMP +diff --git a/Lib/test/test_py_compile.py b/Lib/test/test_py_compile.py +index d6677ab45f..88059b127e 100644 +--- a/Lib/test/test_py_compile.py ++++ b/Lib/test/test_py_compile.py +@@ -17,6 +17,7 @@ def without_source_date_epoch(fxn): + def wrapper(*args, **kwargs): + with support.EnvironmentVarGuard() as env: + env.unset('SOURCE_DATE_EPOCH') ++ env.unset('RPM_BUILD_ROOT') + return fxn(*args, **kwargs) + return wrapper + +@@ -27,6 +28,7 @@ def with_source_date_epoch(fxn): + def wrapper(*args, **kwargs): + with support.EnvironmentVarGuard() as env: + env['SOURCE_DATE_EPOCH'] = '123456789' ++ env.unset('RPM_BUILD_ROOT') + return fxn(*args, **kwargs) + return wrapper + +-- +2.21.0 + diff --git a/python38.spec b/python38.spec index d4a6314..aef6396 100644 --- a/python38.spec +++ b/python38.spec @@ -262,6 +262,11 @@ Patch251: 00251-change-user-install-location.patch # Upstream uses Debian-style architecture naming. Change to match Fedora. Patch274: 00274-fix-arch-names.patch +# 00328 # +# Restore pyc to TIMESTAMP invalidation mode as default in rpmbubild +# See https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/57#comment-27426 +Patch328: 00328-pyc-timestamp-invalidation-mode.patch + # (New patches go here ^^^) # # When adding new patches to "python" and "python3" in Fedora, EL, etc., @@ -597,6 +602,7 @@ rm Lib/ensurepip/_bundled/*.whl %patch251 -p1 %patch274 -p1 +%patch328 -p1 # Remove files that should be generated by the build From ff90d23b8f5d2b721aa55289d69cf1e27ba86449 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Thu, 11 Jul 2019 16:20:09 +0200 Subject: [PATCH 36/42] Keep the LICENSE.txt file in lib/pythonX.Y dir The license() builtin tries to read it and virtualenv tries to copy it. See https://github.com/pypa/virtualenv/issues/1352 Up until now, the license() builtin juts felt back to: See https://www.python.org/psf/license/ However it should output the full license text. Virtualenv ~16.6 warns: No LICENSE.txt / LICENSE found in source Technically, it is probably possible to install the package without %license files, but that would simply resort to the previous noncritical behavior. This fix is not critical and hence it doesn't bump release, for easier backporting to all our Python packages. --- python38.spec | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/python38.spec b/python38.spec index aef6396..1155db0 100644 --- a/python38.spec +++ b/python38.spec @@ -904,9 +904,6 @@ find %{buildroot} -name \*.bat -exec rm {} \; find %{buildroot}/ -name "*~" -exec rm -f {} \; find . -name "*~" -exec rm -f {} \; -# Get rid of a stray copy of the license: -rm %{buildroot}%{pylibdir}/LICENSE.txt - # Do bytecompilation with the newly installed interpreter. # This is similar to the script in macros.pybytecompile # compile *.pyc @@ -1058,7 +1055,6 @@ CheckPython optimized %files -%license LICENSE %doc README.rst %if %{without flatpackage} @@ -1079,13 +1075,14 @@ CheckPython optimized %{_mandir}/*/python.1* %files libs -%license LICENSE %doc README.rst %endif %dir %{pylibdir} %dir %{dynload_dir} +%license %{pylibdir}/LICENSE.txt + %{pylibdir}/lib2to3 %if %{without flatpackage} %exclude %{pylibdir}/lib2to3/tests From d35394ed786118a8e0712d0edaed78113371ef40 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 26 Jul 2019 17:27:40 +0000 Subject: [PATCH 37/42] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- python38.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python38.spec b/python38.spec index 1155db0..9e863f4 100644 --- a/python38.spec +++ b/python38.spec @@ -17,7 +17,7 @@ URL: https://www.python.org/ %global prerel b2 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 1%{?dist} +Release: 2%{?dist} License: Python @@ -1533,6 +1533,9 @@ CheckPython optimized # ====================================================== %changelog +* Fri Jul 26 2019 Fedora Release Engineering - 3.8.0~b2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Fri Jul 05 2019 Miro Hrončok - 3.8.0~b2-1 - Update to 3.8.0b2 From 69c2d11d9a3af934e22f5648cb8bc4368ed72e25 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Fri, 19 Jul 2019 17:49:16 +0200 Subject: [PATCH 38/42] Update python-debug description for Python 3.8 ABI unification --- python38.spec | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/python38.spec b/python38.spec index 9e863f4..e541158 100644 --- a/python38.spec +++ b/python38.spec @@ -534,15 +534,13 @@ extension modules. This version uses more memory and will be slower than the regular Python build, but is useful for tracking down reference-counting issues and other bugs. -The bytecode format is unchanged, so that .pyc files are compatible between -this and the standard version of Python, but the debugging features mean that -C/C++ extension modules are ABI-incompatible and must be built for each version -separately. - The debug build shares installation directories with the standard Python -runtime, so that .py and .pyc files can be shared. -Compiled extension modules use a special ABI flag ("d") in the filename, -so extensions for both versions can co-exist in the same directory. +runtime. Python modules -- source (.py), bytecode (.pyc), and C-API extensions +(.cpython*.so) -- are compatible between this and the standard version +of Python. + +The debug runtime additionally supports debug builds of C-API extensions +(with the "d" ABI flag) for debugging issues in those extensions. %endif # with debug_build %else # with flatpackage From 29530ba2a88dd55c7da7207d128004dfdb07a9e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 30 Jul 2019 00:48:16 +0200 Subject: [PATCH 39/42] Update to 3.8.0b3 --- 00001-rpath.patch | 6 +++--- 00102-lib64.patch | 18 +++++++++--------- 00111-no-static-lib.patch | 14 +++++++------- 00189-use-rpm-wheels.patch | 11 +++++------ 00251-change-user-install-location.patch | 4 ++-- 00274-fix-arch-names.patch | 8 ++++---- 00328-pyc-timestamp-invalidation-mode.patch | 2 +- python38.spec | 15 +++++++++------ sources | 2 +- 9 files changed, 41 insertions(+), 39 deletions(-) diff --git a/00001-rpath.patch b/00001-rpath.patch index c78445d..030bc3c 100644 --- a/00001-rpath.patch +++ b/00001-rpath.patch @@ -1,8 +1,8 @@ -From 8738c39204297788bcb07940a99608f80592829f Mon Sep 17 00:00:00 2001 +From 8a93e612de3f9f1e1c04ca2b31f207a2ce611fe1 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Wed, 13 Jan 2010 21:25:18 +0000 -Subject: [PATCH 1/7] 00001: Fixup distutils/unixccompiler.py to remove - standard library path from rpath Was Patch0 in ivazquez' python3000 specfile +Subject: [PATCH] 00001: Fixup distutils/unixccompiler.py to remove standard + library path from rpath Was Patch0 in ivazquez' python3000 specfile --- Lib/distutils/unixccompiler.py | 9 +++++++++ diff --git a/00102-lib64.patch b/00102-lib64.patch index 88d7fbd..45677ca 100644 --- a/00102-lib64.patch +++ b/00102-lib64.patch @@ -1,8 +1,8 @@ -From 6a503d0ad4512af57ef8a784f12bc439701d8cc7 Mon Sep 17 00:00:00 2001 +From ee7b218babbed91c283445021a99d4b28fc12b2f Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Wed, 13 Jan 2010 21:25:18 +0000 -Subject: [PATCH 2/7] 00102: Change the various install paths to use - /usr/lib64/ instead or /usr/lib/ +Subject: [PATCH] 00102: Change the various install paths to use /usr/lib64/ + instead or /usr/lib/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -154,7 +154,7 @@ index 41c4229919..543c88432a 100644 'site-packages') self.assertEqual(dirs[0], wanted) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 88abb56360..6c2edf32f7 100644 +index 6a9f4b5270..61d650882f 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -143,7 +143,7 @@ LIBDIR= @libdir@ @@ -198,10 +198,10 @@ index 5f80738188..73d7913441 100644 return DECODE_LOCALE_ERR("EXEC_PREFIX define", len); } diff --git a/configure b/configure -index 6e7f277bac..6cd8344c21 100755 +index cb5f130d38..b30b4008f2 100755 --- a/configure +++ b/configure -@@ -15181,9 +15181,9 @@ fi +@@ -15195,9 +15195,9 @@ fi if test x$PLATFORM_TRIPLET = x; then @@ -214,10 +214,10 @@ index 6e7f277bac..6cd8344c21 100755 diff --git a/configure.ac b/configure.ac -index 324ce0bd99..9a587f3c3f 100644 +index b31ed242f1..42d17bc0ad 100644 --- a/configure.ac +++ b/configure.ac -@@ -4655,9 +4655,9 @@ fi +@@ -4663,9 +4663,9 @@ fi dnl define LIBPL after ABIFLAGS and LDVERSION is defined. AC_SUBST(PY_ENABLE_SHARED) if test x$PLATFORM_TRIPLET = x; then @@ -230,7 +230,7 @@ index 324ce0bd99..9a587f3c3f 100644 AC_SUBST(LIBPL) diff --git a/setup.py b/setup.py -index edc3434242..59cfc01a2a 100644 +index 6cbbec9e12..a5092861cf 100644 --- a/setup.py +++ b/setup.py @@ -648,7 +648,7 @@ class PyBuildExt(build_ext): diff --git a/00111-no-static-lib.patch b/00111-no-static-lib.patch index 2cfeaf0..bc326cb 100644 --- a/00111-no-static-lib.patch +++ b/00111-no-static-lib.patch @@ -1,7 +1,7 @@ -From efbafc6328f45da6d38a1848933a37497206fb3f Mon Sep 17 00:00:00 2001 +From 65208ffdf868d06e6e16eeb12e3f47205a738ed3 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Mon, 18 Jan 2010 17:59:07 +0000 -Subject: [PATCH 3/7] 00111: Don't try to build a libpythonMAJOR.MINOR.a +Subject: [PATCH] 00111: Don't try to build a libpythonMAJOR.MINOR.a MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -21,10 +21,10 @@ Co-authored-by: Miro Hrončok 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 6c2edf32f7..28c0cead24 100644 +index 61d650882f..3f5be819c4 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -560,7 +560,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c +@@ -561,7 +561,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c $(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py --make --srcdir $(srcdir) # Build the interpreter @@ -33,7 +33,7 @@ index 6c2edf32f7..28c0cead24 100644 $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) platform: $(BUILDPYTHON) pybuilddir.txt -@@ -608,12 +608,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o +@@ -609,12 +609,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build @@ -46,7 +46,7 @@ index 6c2edf32f7..28c0cead24 100644 libpython$(LDVERSION).so: $(LIBRARY_OBJS) $(DTRACE_OBJS) if test $(INSTSONAME) != $(LDLIBRARY); then \ $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM); \ -@@ -691,7 +685,7 @@ Makefile Modules/config.c: Makefile.pre \ +@@ -692,7 +686,7 @@ Makefile Modules/config.c: Makefile.pre \ @echo "The Makefile was updated, you may need to re-run make." @@ -55,7 +55,7 @@ index 6c2edf32f7..28c0cead24 100644 $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) ############################################################################ -@@ -1551,17 +1545,6 @@ libainstall: @DEF_MAKE_RULE@ python-config +@@ -1552,17 +1546,6 @@ libainstall: @DEF_MAKE_RULE@ python-config else true; \ fi; \ done diff --git a/00189-use-rpm-wheels.patch b/00189-use-rpm-wheels.patch index 124fe81..7be6406 100644 --- a/00189-use-rpm-wheels.patch +++ b/00189-use-rpm-wheels.patch @@ -1,8 +1,7 @@ -From 2edaa31dec042fb8720add80814ca4a3cc4f788f Mon Sep 17 00:00:00 2001 +From 327e040bd14b6bd05314b24e59ffcdb2179f9757 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 15 Aug 2018 15:36:29 +0200 -Subject: [PATCH 4/7] 00189: Instead of bundled wheels, use our RPM packaged - wheels +Subject: [PATCH] 00189: Instead of bundled wheels, use our RPM packaged wheels We keep them in /usr/share/python-wheels --- @@ -10,7 +9,7 @@ We keep them in /usr/share/python-wheels 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py -index 6f2569da81..4d17e413db 100644 +index 63de20e288..4d17e413db 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py @@ -1,16 +1,27 @@ @@ -27,9 +26,9 @@ index 6f2569da81..4d17e413db 100644 +_WHEEL_DIR = "/usr/share/python-wheels/" --_SETUPTOOLS_VERSION = "40.8.0" +-_SETUPTOOLS_VERSION = "41.0.1" --_PIP_VERSION = "19.0.3" +-_PIP_VERSION = "19.2.1" +def _get_most_recent_wheel_version(pkg): + prefix = os.path.join(_WHEEL_DIR, "{}-".format(pkg)) + suffix = "-py2.py3-none-any.whl" diff --git a/00251-change-user-install-location.patch b/00251-change-user-install-location.patch index b00e6a7..1b6f283 100644 --- a/00251-change-user-install-location.patch +++ b/00251-change-user-install-location.patch @@ -1,7 +1,7 @@ -From 3e26b01573488b015065139689be3aa47dac17cf Mon Sep 17 00:00:00 2001 +From 27348866d660c1344a1f78a6337436443e1ed19c Mon Sep 17 00:00:00 2001 From: Michal Cyprian Date: Mon, 26 Jun 2017 16:32:56 +0200 -Subject: [PATCH 5/7] 00251: Change user install location +Subject: [PATCH] 00251: Change user install location Set values of prefix and exec_prefix in distutils install command to /usr/local if executable is /usr/bin/python* and RPM build diff --git a/00274-fix-arch-names.patch b/00274-fix-arch-names.patch index 63f23f5..9bca39d 100644 --- a/00274-fix-arch-names.patch +++ b/00274-fix-arch-names.patch @@ -1,8 +1,8 @@ -From b92e29a8cc17f9c02a08b7a005e5ece71a409a0b Mon Sep 17 00:00:00 2001 +From c827bec294a7fb9481a55c1f7d78e80007e38816 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Mon, 28 Aug 2017 17:16:46 +0200 -Subject: [PATCH 6/7] 00274: Upstream uses Debian-style architecture naming, - change to match Fedora +Subject: [PATCH] 00274: Upstream uses Debian-style architecture naming, change + to match Fedora MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -29,7 +29,7 @@ index ba37cf99e2..52a9ec6662 100755 ppc64le | powerpc64little) basic_machine=powerpc64le-unknown diff --git a/configure.ac b/configure.ac -index 9a587f3c3f..695ff85e4b 100644 +index 42d17bc0ad..637a99f159 100644 --- a/configure.ac +++ b/configure.ac @@ -741,9 +741,9 @@ cat >> conftest.c < Date: Thu, 11 Jul 2019 13:44:13 +0200 Subject: [PATCH] 00328: Restore pyc to TIMESTAMP invalidation mode as default diff --git a/python38.spec b/python38.spec index e541158..adfe97f 100644 --- a/python38.spec +++ b/python38.spec @@ -14,10 +14,10 @@ URL: https://www.python.org/ # WARNING When rebasing to a new Python version, # remember to update the python3-docs package as well %global general_version %{pybasever}.0 -%global prerel b2 +%global prerel b3 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 2%{?dist} +Release: 1%{?dist} License: Python @@ -379,8 +379,8 @@ Summary: Python runtime libraries Requires: python-setuptools-wheel Requires: python-pip-wheel %else -Provides: bundled(python3-pip) = 19.0.3 -Provides: bundled(python3-setuptools) = 40.8.0 +Provides: bundled(python3-pip) = 19.2.1 +Provides: bundled(python3-setuptools) = 41.0.1 %endif %{?python_provide:%python_provide python3-libs} @@ -554,8 +554,8 @@ The debug runtime additionally supports debug builds of C-API extensions Requires: python-setuptools-wheel Requires: python-pip-wheel %else -Provides: bundled(python3-pip) = 19.0.3 -Provides: bundled(python3-setuptools) = 40.8.0 +Provides: bundled(python3-pip) = 19.2.1 +Provides: bundled(python3-setuptools) = 41.0.1 %endif # The description for the flat package @@ -1531,6 +1531,9 @@ CheckPython optimized # ====================================================== %changelog +* Mon Jul 29 2019 Miro Hrončok - 3.8.0~b3-1 +- Update to 3.8.0b3 + * Fri Jul 26 2019 Fedora Release Engineering - 3.8.0~b2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild diff --git a/sources b/sources index b6aaea1..58d4f5b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Python-3.8.0b2.tar.xz) = 5d4fdabad098b5273d34ecd939e7f7c104f4f9fc1460e5abaf4a8d1ad1c5d2ff26d579de03106f000672e0a20fcd6e4e1e44ce03be4bb4a734f937f3cc81cb3e +SHA512 (Python-3.8.0b3.tar.xz) = 5b29e580514704150b397850b5bf5f3e4b98a45d9a9f8ac0364bef51caac74862f9f349b5d3d1bbcdcc5b48b2722f1a9e5e0a9837bf44360fe74a396e915ae35 From 2d19c7ecdce73a9e51d4a64916761d3e4d69eae9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Fri, 9 Aug 2019 20:57:37 +0200 Subject: [PATCH 40/42] Skip test_gdb everywhere https://bugzilla.redhat.com/show_bug.cgi?id=1734327 Also remove a note about test_gdb skipped on armv7hl, that one was fixed: https://bugzilla.redhat.com/show_bug.cgi?id=1196181 --- python38.spec | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/python38.spec b/python38.spec index adfe97f..00ef010 100644 --- a/python38.spec +++ b/python38.spec @@ -1015,10 +1015,10 @@ CheckPython() { LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.pythoninfo # Run the upstream test suite - # test_gdb skipped on armv7hl: - # https://bugzilla.redhat.com/show_bug.cgi?id=1196181 # test_gdb skipped on s390x: # https://bugzilla.redhat.com/show_bug.cgi?id=1678277 + # test_gdb skipped everywhere: + # https://bugzilla.redhat.com/show_bug.cgi?id=1734327 # test_asyncio skipped: # https://bugs.python.org/issue35998 # test_distutils @@ -1029,9 +1029,7 @@ CheckPython() { %if %{with bootstrap} -x test_distutils \ %endif - %ifarch %{arm} s390x -x test_gdb \ - %endif %ifarch %{mips64} -x test_ctypes \ %endif From 2d970f424cd99c706818edde79a8893629c4e02f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Fri, 9 Aug 2019 21:04:49 +0200 Subject: [PATCH 41/42] Stop disabling test_asyncio, the problem was fixed --- python38.spec | 3 --- 1 file changed, 3 deletions(-) diff --git a/python38.spec b/python38.spec index 00ef010..3013707 100644 --- a/python38.spec +++ b/python38.spec @@ -1019,8 +1019,6 @@ CheckPython() { # https://bugzilla.redhat.com/show_bug.cgi?id=1678277 # test_gdb skipped everywhere: # https://bugzilla.redhat.com/show_bug.cgi?id=1734327 - # test_asyncio skipped: - # https://bugs.python.org/issue35998 # test_distutils # distutils.tests.test_bdist_rpm tests fail when bootstraping the Python # package: rpmbuild requires /usr/bin/pythonX.Y to be installed @@ -1033,7 +1031,6 @@ CheckPython() { %ifarch %{mips64} -x test_ctypes \ %endif - -x test_asyncio \ echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName From e9ba67b74b9849d00cfc8e332b711db142dfd3e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Sun, 11 Aug 2019 11:23:07 +0200 Subject: [PATCH 42/42] Conditionalize python3-devel runtime dependencies on RPM packages and setuptools Installing python3-devel currently brings in: - annobin - dwz - efi-srpm-macros - fpc-srpm-macros - ghc-srpm-macros - gnat-srpm-macros - go-srpm-macros - nim-srpm-macros - ocaml-srpm-macros - openblas-srpm-macros - perl-srpm-macros - python-rpm-macros - python-srpm-macros - python3-rpm-generators - python3-rpm-macros - qt5-srpm-macros - redhat-rpm-config - rust-srpm-macros For somebody who needs python3-devel to build extension modules, those are all useless, so we conditionalize it on rpm-build. Based on the reason for setuptools dependency, we do the same here (but note that python3 already recommends it). --- python38.spec | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/python38.spec b/python38.spec index 3013707..85512cf 100644 --- a/python38.spec +++ b/python38.spec @@ -415,10 +415,10 @@ Summary: Libraries and header files needed for Python development Requires: %{name} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release} BuildRequires: python-rpm-macros -Requires: python-rpm-macros -Requires: python3-rpm-macros - -%{?python_provide:%python_provide python3-devel} +# The RPM related dependencies bring nothing to a non-RPM Python developer +# But we want them when packages BuildRequire python3-devel +Requires: (python-rpm-macros if rpm-build) +Requires: (python3-rpm-macros if rpm-build) %if %{without bootstrap} # This is not "API" (packages that need setuptools should still BuildRequire it) @@ -428,11 +428,13 @@ Requires: python3-rpm-macros # installed when -devel is required. # See https://bugzilla.redhat.com/show_bug.cgi?id=1623914 # See https://fedoraproject.org/wiki/Packaging:Directory_Replacement -Requires: python3-setuptools +Requires: (python3-setuptools if rpm-build) -Requires: python3-rpm-generators +Requires: (python3-rpm-generators if rpm-build) %endif +%{?python_provide:%python_provide python3-devel} + Provides: %{name}-2to3 = %{version}-%{release} Provides: 2to3 = %{version}-%{release}