diff --git a/00111-no-static-lib.patch b/00111-no-static-lib.patch index 428d63c..d659273 100644 --- a/00111-no-static-lib.patch +++ b/00111-no-static-lib.patch @@ -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 d8b9e8498d..5f4fbe6eb4 100644 +index 0b22bdd559..dfd21d837f 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -576,7 +576,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c +@@ -578,7 +578,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 d8b9e8498d..5f4fbe6eb4 100644 $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) platform: $(BUILDPYTHON) pybuilddir.txt -@@ -624,12 +624,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o +@@ -626,12 +626,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 d8b9e8498d..5f4fbe6eb4 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); \ -@@ -711,7 +705,7 @@ Makefile Modules/config.c: Makefile.pre \ +@@ -713,7 +707,7 @@ Makefile Modules/config.c: Makefile.pre \ @echo "The Makefile was updated, you may need to re-run make." @@ -55,7 +55,7 @@ index d8b9e8498d..5f4fbe6eb4 100644 $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) ############################################################################ -@@ -1647,17 +1641,6 @@ libainstall: @DEF_MAKE_RULE@ python-config +@@ -1661,17 +1655,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 deleted file mode 100644 index e23fa59..0000000 --- a/00189-use-rpm-wheels.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 0000000000000000000000000000000000000000 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] 00189: Instead of bundled wheels, use our RPM packaged wheels - -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(-) - -diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py -index cb2882e336..984e587ea0 100644 ---- a/Lib/ensurepip/__init__.py -+++ b/Lib/ensurepip/__init__.py -@@ -1,3 +1,5 @@ -+import distutils.version -+import glob - import os - import os.path - import sys -@@ -6,16 +8,28 @@ - import subprocess - from importlib import resources - --from . import _bundled -- - - - __all__ = ["version", "bootstrap"] - -+_WHEEL_DIR = "/usr/share/python-wheels/" - --_SETUPTOOLS_VERSION = "47.1.0" -+_wheels = {} - --_PIP_VERSION = "20.2.3" -+def _get_most_recent_wheel_version(pkg): -+ prefix = os.path.join(_WHEEL_DIR, "{}-".format(pkg)) -+ _wheels[pkg] = {} -+ for suffix in "-py2.py3-none-any.whl", "-py3-none-any.whl": -+ pattern = "{}*{}".format(prefix, suffix) -+ for path in glob.glob(pattern): -+ version_str = path[len(prefix):-len(suffix)] -+ _wheels[pkg][version_str] = os.path.basename(path) -+ return str(max(_wheels[pkg], key=distutils.version.LooseVersion)) -+ -+ -+_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, - # additional paths that need added to sys.path - additional_paths = [] - for project, version, py_tag in _PROJECTS: -- wheel_name = "{}-{}-{}-none-any.whl".format(project, version, py_tag) -- whl = resources.read_binary( -- _bundled, -- wheel_name, -- ) -- with open(os.path.join(tmpdir, wheel_name), "wb") as fp: -- fp.write(whl) -+ wheel_name = _wheels[project][version] -+ with open(os.path.join(_WHEEL_DIR, wheel_name), "rb") as sfp: -+ with open(os.path.join(tmpdir, wheel_name), "wb") as fp: -+ fp.write(sfp.read()) - - additional_paths.append(os.path.join(tmpdir, wheel_name)) - diff --git a/python3.10.spec b/python3.10.spec index 25c4058..7552d0f 100644 --- a/python3.10.spec +++ b/python3.10.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 a5 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 3%{?dist} +Release: 1%{?dist} License: Python @@ -65,6 +65,11 @@ License: Python # Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package # Uses upstream bundled prebuilt wheels otherwise %bcond_without rpmwheels +# If the rpmwheels condition is disabled, we use the bundled wheel packages +# from Python with the versions below. +# This needs to be manually updated when we update Python. +%global pip_version 21.0.1 +%global setuptools_version 52.0.0 # Expensive optimizations (mainly, profile-guided optimizations) %bcond_without optimizations @@ -269,21 +274,6 @@ Patch1: 00001-rpath.patch # See https://bugzilla.redhat.com/show_bug.cgi?id=556092 Patch111: 00111-no-static-lib.patch -# 00189 # f40d9755abf593ffd64af2e909199958c285084d -# Instead of bundled wheels, use our RPM packaged wheels -# -# We keep them in /usr/share/python-wheels -# -# Downstream only: upstream bundles -# We might eventually pursuit upstream support, but it's low prio -Patch189: 00189-use-rpm-wheels.patch -# The following versions of setuptools/pip are bundled when this patch is not applied. -# 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 20.2.3 -%global setuptools_version 47.1.0 - # 00251 # 5c445123f04d96be42a35eef5119378ba1713a96 # Change user install location # @@ -621,19 +611,13 @@ version once Python %{pybasever} is stable. %prep %gpgverify -k2 -s1 -d0 -%autosetup -S git_am -N -n Python-%{upstream_version} - -# Apply patches up to 188 -%autopatch -M 188 +%autosetup -S git_am -n Python-%{upstream_version} %if %{with rpmwheels} -%apply_patch -q %{PATCH189} -rm Lib/ensurepip/_bundled/*.whl +rm Lib/ensurepip/_bundled/pip-%{pip_version}-py3-none-any.whl +rm Lib/ensurepip/_bundled/setuptools-%{setuptools_version}-py3-none-any.whl %endif -# Apply the remaining patches -%autopatch -m 190 - # 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 @@ -730,6 +714,9 @@ BuildPython() { --with-dtrace \ --with-lto \ --with-ssl-default-suites=openssl \ +%if %{with rpmwheels} + --with-wheel-pkg-dir=%{_datadir}/python-wheels \ +%endif %if %{with valgrind} --with-valgrind \ %endif @@ -1167,7 +1154,8 @@ CheckPython optimized %exclude %{pylibdir}/ensurepip/_bundled %else %dir %{pylibdir}/ensurepip/_bundled -%{pylibdir}/ensurepip/_bundled/*.whl +%{pylibdir}/ensurepip/_bundled/pip-%{pip_version}-py3-none-any.whl +%{pylibdir}/ensurepip/_bundled/setuptools-%{setuptools_version}-py3-none-any.whl %{pylibdir}/ensurepip/_bundled/__init__.py %{pylibdir}/ensurepip/_bundled/__pycache__/*%{bytecode_suffixes} %endif @@ -1594,6 +1582,9 @@ CheckPython optimized # ====================================================== %changelog +* Wed Feb 3 15:01:21 CET 2021 Tomas Hrnciar - 3.10.0~a5-1 +- Update to 3.10.0a5 + * Wed Jan 27 2021 Fedora Release Engineering - 3.10.0~a4-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild diff --git a/sources b/sources index 78e48d7..637192a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (Python-3.10.0a4.tar.xz) = 2bf756e581315a7f242683931bffb275edcd5d864b8242e3de42ccf07cca27208f0468ba1663ff12263c128060bab400ba2ed707e0c3bcc422a619adc3171c34 -SHA512 (Python-3.10.0a4.tar.xz.asc) = 6b94e27982e8344f0bd343bb0e04041a82608eff537105815a90a54f48cc6fa4804af10403e9729ada469c876352693144e3922de8fb2e48dc78151fa6520973 +SHA512 (Python-3.10.0a5.tar.xz) = d686f9044ea964af2b5556068c0d804511d3148b455643d06a8b566f265a5fa9a9a3713ff0c3fee2c0da9bba33b913983ea4fcb22d679cfdcb83c6de32aa575e +SHA512 (Python-3.10.0a5.tar.xz.asc) = 4f1fe9b42830c89cb35ea1634fd7484f3bbf7ff22868c71fadc0601c3b02ff2ea386cfbc7ea167a2770d732aa01532fb7d4abb198a07e4710565e3eec138408c