From bf5c57710616f614f4c1e860b584b4015e1c7301 Mon Sep 17 00:00:00 2001 From: Miro HronĨok Date: Aug 12 2020 21:19:20 +0000 Subject: Use %autosetup with git am Some patches are applied conditionally, so we need to use %autosetup with -N, to prevent automatic patch application. Later patches from 190 up are applied (with -m for minimum). While not necessary shorter, this no longer requires adding/removing %patch XYZ when adding/removing patches > 190. While at it, we also use git am to apply the patches since they are all generated from git anyway. This makes it easier if we ever patch binary files. This is partial backport of https://src.fedoraproject.org/rpms/python3.9/c/0a760f01ca --- diff --git a/python3.spec b/python3.spec index 6524f58..0a23217 100644 --- a/python3.spec +++ b/python3.spec @@ -158,6 +158,7 @@ BuildRequires: gcc-c++ %if %{with gdbm} BuildRequires: gdbm-devel %endif +BuildRequires: git-core BuildRequires: glibc-all-langpacks BuildRequires: glibc-devel BuildRequires: gmp-devel @@ -612,34 +613,31 @@ version once Python %{pybasever} is stable. %prep %gpgverify -k2 -s1 -d0 -%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 -find -name '*.exe' -print -delete +%autosetup -S git_am -N -n Python-%{upstream_version} -# Remove bundled libraries to ensure that we're using the system copy. -rm -r Modules/expat - -# -# Apply patches: -# -%patch1 -p1 +# Apply initial patches manually +%apply_patch -q %{PATCH1} %if "%{_lib}" == "lib64" -%patch102 -p1 +%apply_patch -q %{PATCH102} %endif -%patch111 -p1 +%apply_patch -q %{PATCH111} %if %{with rpmwheels} -%patch189 -p1 +%apply_patch -q %{PATCH189} rm Lib/ensurepip/_bundled/*.whl %endif -%patch251 -p1 -%patch274 -p1 -%patch328 -p1 +# 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 +find -name '*.exe' -print -delete +# Remove bundled libraries to ensure that we're using the system copy. +rm -r Modules/expat # Remove files that should be generated by the build # (This is after patching, so that we can use patches directly from upstream)