Compare commits

...
Sign in to create a new pull request.

10 commits

Author SHA1 Message Date
Tomáš Hrnčiar
26e7b720df Add patch to revert "bpo-1596321: Fix threading._shutdown() for
the main thread"

https://bodhi.fedoraproject.org/updates/FEDORA-2021-e152ce5f31
https://github.com/GrahamDumpleton/mod_wsgi/issues/730
2021-11-19 14:19:06 +01:00
Tomáš Hrnčiar
23a285e10f Update to 3.9.9 2021-11-19 08:43:29 +01:00
Tomáš Hrnčiar
ad3f146b58 Update pip and setuptools to the latest bundled versions
In previous commit, patch 00189 was updated to the latest
bundled versions of pip and setuptools, but it was
forgotten to update also versions in spec file.
2021-11-19 08:43:29 +01:00
Tomáš Hrnčiar
1e3497ed34 Update to 3.9.8 2021-11-08 14:48:44 +01:00
Miro Hrončok
8020ec5862 Update to 3.9.7 2021-08-31 01:52:30 +02:00
Miro Hrončok
21411c50a9 Update description of the flat python3.9 package -- it is now older, not newer 2021-08-31 01:52:30 +02:00
Fedora Release Engineering
115911c72e - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-08-31 01:52:30 +02:00
Petr Viktorin
54ef9bd8dd Require pyproject-rpm-macros from python3-devel
Part of the new Python packaging guidelines change:
- https://fedoraproject.org/wiki/Changes/PythonPackagingGuidelines202x
- https://bugzilla.redhat.com/show_bug.cgi?id=1977883
2021-07-16 13:56:31 +02:00
Petr Viktorin
aa536db327 Provide python3-turtle from python3-tkinter
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1952565
2021-07-16 13:56:30 +02:00
Tomas Hrnciar
b5d38aa8d9 Update to 3.9.6 2021-06-29 08:07:05 +02:00
7 changed files with 170 additions and 28 deletions

View file

@ -9,7 +9,7 @@ Subject: [PATCH] 00001: Fixup distutils/unixccompiler.py to remove standard
1 file changed, 9 insertions(+)
diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py
index f0792de74a..4d837936c6 100644
index d00c48981e..0283a28c19 100644
--- a/Lib/distutils/unixccompiler.py
+++ b/Lib/distutils/unixccompiler.py
@@ -82,6 +82,15 @@ class UnixCCompiler(CCompiler):

View file

@ -21,10 +21,10 @@ Co-authored-by: Miro Hrončok <miro@hroncok.cz>
1 file changed, 2 insertions(+), 19 deletions(-)
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 0c3981c132..5587422ec7 100644
index 11230fa563..dc763e7197 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -589,7 +589,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c
@@ -588,7 +588,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 0c3981c132..5587422ec7 100644
$(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS)
platform: $(BUILDPYTHON) pybuilddir.txt
@@ -637,12 +637,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
@@ -636,12 +636,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 0c3981c132..5587422ec7 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); \
@@ -724,7 +718,7 @@ Makefile Modules/config.c: Makefile.pre \
@@ -723,7 +717,7 @@ Makefile Modules/config.c: Makefile.pre \
@echo "The Makefile was updated, you may need to re-run make."
@ -55,7 +55,7 @@ index 0c3981c132..5587422ec7 100644
$(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS)
############################################################################
@@ -1652,17 +1646,6 @@ libainstall: @DEF_MAKE_RULE@ python-config
@@ -1651,17 +1645,6 @@ libainstall: @DEF_MAKE_RULE@ python-config
else true; \
fi; \
done

View file

@ -8,11 +8,11 @@ We keep them in /usr/share/python-wheels
Downstream only: upstream bundles
We might eventually pursuit upstream support, but it's low prio
---
Lib/ensurepip/__init__.py | 33 ++++++++++++++++++++++-----------
1 file changed, 22 insertions(+), 11 deletions(-)
Lib/ensurepip/__init__.py | 37 ++++++++++++++++++++++++++-----------
1 file changed, 26 insertions(+), 11 deletions(-)
diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py
index 57e576d1a3..5bd16a6c59 100644
index 2a140a2624..5bd16a6c59 100644
--- a/Lib/ensurepip/__init__.py
+++ b/Lib/ensurepip/__init__.py
@@ -1,3 +1,5 @@
@ -21,7 +21,7 @@ index 57e576d1a3..5bd16a6c59 100644
import os
import os.path
import sys
@@ -6,16 +8,28 @@ import tempfile
@@ -6,13 +8,29 @@ import tempfile
import subprocess
from importlib import resources
@ -30,13 +30,13 @@ index 57e576d1a3..5bd16a6c59 100644
__all__ = ["version", "bootstrap"]
-_SETUPTOOLS_VERSION = "58.1.0"
-_PIP_VERSION = "21.2.4"
+
+_WHEEL_DIR = "/usr/share/python-wheels/"
-_SETUPTOOLS_VERSION = "56.0.0"
+
+_wheels = {}
-_PIP_VERSION = "21.1.1"
+
+def _get_most_recent_wheel_version(pkg):
+ prefix = os.path.join(_WHEEL_DIR, "{}-".format(pkg))
+ _wheels[pkg] = {}
@ -51,10 +51,11 @@ index 57e576d1a3..5bd16a6c59 100644
+_SETUPTOOLS_VERSION = _get_most_recent_wheel_version("setuptools")
+
+_PIP_VERSION = _get_most_recent_wheel_version("pip")
+
_PROJECTS = [
("setuptools", _SETUPTOOLS_VERSION, "py3"),
@@ -105,13 +119,10 @@ def _bootstrap(*, root=None, upgrade=False, user=False,
("pip", _PIP_VERSION, "py3"),
@@ -101,13 +119,10 @@ def _bootstrap(*, root=None, upgrade=False, user=False,
# additional paths that need added to sys.path
additional_paths = []
for project, version, py_tag in _PROJECTS:

View file

@ -34,7 +34,7 @@ Co-authored-by: Miro Hrončok <miro@hroncok.cz>
1 file changed, 38 insertions(+), 2 deletions(-)
diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
index 7c4157369d..c3b95638a6 100644
index fe31f437da..b5b70757f0 100644
--- a/Lib/importlib/_bootstrap_external.py
+++ b/Lib/importlib/_bootstrap_external.py
@@ -1636,7 +1636,7 @@ def _get_supported_file_loaders():

View file

@ -0,0 +1,103 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hrn=C4=8Diar?= <thrnciar@redhat.com>
Date: Fri, 19 Nov 2021 13:37:16 +0100
Subject: [PATCH] 00371: Revert "bpo-1596321: Fix threading._shutdown() for the
main thread (GH-28549) (GH-28589)"
This reverts commit 94d19f606fa18a1c4d2faca1caf2f470a8ce6d46. It
introduced regression causing FreeIPA's tests to fail.
For more info see:
https://bodhi.fedoraproject.org/updates/FEDORA-2021-e152ce5f31
https://github.com/GrahamDumpleton/mod_wsgi/issues/730
---
Lib/test/test_threading.py | 33 ---------------------------------
Lib/threading.py | 25 ++++++++-----------------
2 files changed, 8 insertions(+), 50 deletions(-)
diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
index af480b9014..a57085b75d 100644
--- a/Lib/test/test_threading.py
+++ b/Lib/test/test_threading.py
@@ -814,39 +814,6 @@ class ThreadTests(BaseTestCase):
threading.Thread(target=noop).start()
# Thread.join() is not called
- def test_import_from_another_thread(self):
- # bpo-1596321: If the threading module is first import from a thread
- # different than the main thread, threading._shutdown() must handle
- # this case without logging an error at Python exit.
- code = textwrap.dedent('''
- import _thread
- import sys
-
- event = _thread.allocate_lock()
- event.acquire()
-
- def import_threading():
- import threading
- event.release()
-
- if 'threading' in sys.modules:
- raise Exception('threading is already imported')
-
- _thread.start_new_thread(import_threading, ())
-
- # wait until the threading module is imported
- event.acquire()
- event.release()
-
- if 'threading' not in sys.modules:
- raise Exception('threading is not imported')
-
- # don't wait until the thread completes
- ''')
- rc, out, err = assert_python_ok("-c", code)
- self.assertEqual(out, b'')
- self.assertEqual(err, b'')
-
class ThreadJoinOnShutdown(BaseTestCase):
diff --git a/Lib/threading.py b/Lib/threading.py
index a3cb245ab9..ca1d6f08c4 100644
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -1433,29 +1433,20 @@ def _shutdown():
global _SHUTTING_DOWN
_SHUTTING_DOWN = True
+ # Main thread
+ tlock = _main_thread._tstate_lock
+ # The main thread isn't finished yet, so its thread state lock can't have
+ # been released.
+ assert tlock is not None
+ assert tlock.locked()
+ tlock.release()
+ _main_thread._stop()
# Call registered threading atexit functions before threads are joined.
# Order is reversed, similar to atexit.
for atexit_call in reversed(_threading_atexits):
atexit_call()
- # Main thread
- if _main_thread.ident == get_ident():
- tlock = _main_thread._tstate_lock
- # The main thread isn't finished yet, so its thread state lock can't
- # have been released.
- assert tlock is not None
- assert tlock.locked()
- tlock.release()
- _main_thread._stop()
- else:
- # bpo-1596321: _shutdown() must be called in the main thread.
- # If the threading module was not imported by the main thread,
- # _main_thread is the thread which imported the threading module.
- # In this case, ignore _main_thread, similar behavior than for threads
- # spawned by C libraries or using _thread.start_new_thread().
- pass
-
# Join all non-deamon threads
while True:
with _shutdown_locks_lock:

View file

@ -13,11 +13,11 @@ 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}.5
%global general_version %{pybasever}.9
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
Release: 3%{?dist}
Release: 2%{?dist}
License: Python
@ -305,7 +305,7 @@ Patch1: 00001-rpath.patch
# See https://bugzilla.redhat.com/show_bug.cgi?id=556092
Patch111: 00111-no-static-lib.patch
# 00189 # 4cb983ce1c5ef32068ca9349203a6f1ef9667451
# 00189 # d06cf137c00fd3907b436fdb92a8f007a7f2fb50
# Instead of bundled wheels, use our RPM packaged wheels
#
# We keep them in /usr/share/python-wheels
@ -317,8 +317,8 @@ Patch189: 00189-use-rpm-wheels.patch
# The versions are written in Lib/ensurepip/__init__.py, this patch removes them.
# When the bundled setuptools/pip wheel is updated, the patch no longer applies cleanly.
# In such cases, the patch needs to be amended and the versions updated here:
%global pip_version 21.1.1
%global setuptools_version 56.0.0
%global pip_version 21.2.4
%global setuptools_version 58.1.0
# 00251 # 2eabd04356402d488060bc8fe316ad13fc8a3356
# Change user install location
@ -370,6 +370,17 @@ Patch328: 00328-pyc-timestamp-invalidation-mode.patch
# a nightmare because it's basically a binary file.
Patch353: 00353-architecture-names-upstream-downstream.patch
# 00371 # 1fc313929648e9b543542de09f59c55e175ac45a
# Revert "bpo-1596321: Fix threading._shutdown() for the main thread (GH-28549) (GH-28589)"
#
# This reverts commit 94d19f606fa18a1c4d2faca1caf2f470a8ce6d46. It
# introduced regression causing FreeIPA's tests to fail.
#
# For more info see:
# https://bodhi.fedoraproject.org/updates/FEDORA-2021-e152ce5f31
# https://github.com/GrahamDumpleton/mod_wsgi/issues/730
Patch371: 00371-revert-bpo-1596321-fix-threading-_shutdown-for-the-main-thread-gh-28549-gh-28589.patch
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@ -563,6 +574,7 @@ Requires: %{pkgname}-libs%{?_isa} = %{version}-%{release}
# But we want them when packages BuildRequire python3-devel
Requires: (python-rpm-macros if rpm-build)
Requires: (python3-rpm-macros if rpm-build)
Requires: (pyproject-rpm-macros if rpm-build)
%if %{without bootstrap}
# This is not "API" (packages that need setuptools should still BuildRequire it)
@ -633,6 +645,10 @@ configuration, browsers, and other dialogs.
Summary: A GUI toolkit for Python
Requires: %{pkgname} = %{version}-%{release}
# The importable module "turtle" is here, so provide python3-turtle.
# (We don't provide python3-turtledemo, that's not too useful when imported.)
%py_provides %{pkgname}-turtle
%description -n %{pkgname}-tkinter
The Tkinter (Tk interface) library is a graphical user interface toolkit for
the Python programming language.
@ -726,10 +742,10 @@ Requires: tzdata
%description
Python %{pybasever} package for developers.
This package exists to allow developers to test their code against a newer
This package exists to allow developers to test their code against an older
version of Python. This is not a full Python stack and if you wish to run
your applications with Python %{pybasever}, update your Fedora to a newer
version once Python %{pybasever} is stable.
your applications with Python %{pybasever}, see other distributions
that support it, such as CentOS or RHEL or older Fedora releases.
%endif # with flatpackage
@ -1778,6 +1794,28 @@ CheckPython optimized
# ======================================================
%changelog
* Fri Nov 19 2021 Tomáš Hrnčiar <thrnciar@redhat.com> - 3.9.9-2
- Add patch to revert "bpo-1596321: Fix threading._shutdown() for the main thread"
* Tue Nov 16 2021 Tomáš Hrnčiar <thrnciar@redhat.com> - 3.9.9-1
- Update to 3.9.9
* Mon Nov 08 2021 Tomáš Hrnčiar <thrnciar@redhat.com> - 3.9.8-1
- Update to 3.9.8
* Mon Aug 30 2021 Miro Hrončok <mhroncok@redhat.com> - 3.9.7-1
- Update to 3.9.7
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.9.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri Jul 16 2021 Petr Viktorin <pviktori@redhat.com> - 3.9.6-2
- Provide python3-turtle from python3-tkinter
- Require pyproject-rpm-macros from python3-devel
* Tue Jun 29 2021 Tomas Hrnciar <thrnciar@redhat.com> - 3.9.6-1
- Update to 3.9.6
* Tue Jun 01 2021 Python Maint <python-maint@redhat.com> - 3.9.5-3
- Rebuilt for Python 3.10

View file

@ -1,2 +1,2 @@
SHA512 (Python-3.9.5.tar.xz) = 7b581af1b3e73695f124ff6a3a960e22104153a5d920ca930c046f42ea313b1e7ec77e39876db2bf5d5da6d7412cb072ff8ae7814dda12c14f9da6c570fb0995
SHA512 (Python-3.9.5.tar.xz.asc) = cfee8c161447544d6f18c3490b96ce12c8df5e9b143fca09734066f3606abe767cd7b4d05315c691f41c0e565d9585456774c10770ffe2ef7983a911bbcfdb83
SHA512 (Python-3.9.9.tar.xz) = 0ab29fb9a7ecb808bd08d84d28908d5a934e0f021853da0f7a9c94670eb30c8dbbc233d461afdb3995b0de59275ef7e1de43e82d7f848802cbd6e6e50b7b25a6
SHA512 (Python-3.9.9.tar.xz.asc) = 84fb739c60216ab9a7a487a0ec4039a7e85c7684ef1f71d8b3bc415ff2ae284f79474103ae05385502bc2510401f8cfb33d84dccf5d0ea9a0dd62528519d935f