Accepting request 1136302 from devel:languages:python

- update to 69.0.3:
  * Bugfixes - Retain valid names with underscores in egg_info.

- Drop fix-get-python-lib-python38.patch: No Python <3.9 built
- Drop ugly allow-only-direct-compilation.patch in favor of proper
  PEP517 compliant bootstrap, using a built-in pip and the wheel
  package

OBS-URL: https://build.opensuse.org/request/show/1136302
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-setuptools?expand=0&rev=81
This commit is contained in:
Ana Guerrero 2024-02-02 14:45:02 +00:00 committed by Git OBS Bridge
commit af1b828091
7 changed files with 52 additions and 95 deletions

View File

@ -1,4 +1,3 @@
<multibuild> <multibuild>
<package>test</package> <package>test</package>
<package>wheel</package>
</multibuild> </multibuild>

View File

@ -1,33 +0,0 @@
Index: setuptools-69.0.2/setuptools/_distutils/command/install_lib.py
===================================================================
--- setuptools-69.0.2.orig/setuptools/_distutils/command/install_lib.py
+++ setuptools-69.0.2/setuptools/_distutils/command/install_lib.py
@@ -133,6 +133,12 @@ class install_lib(Command):
# should at least generate usable bytecode in RPM distributions.
install_root = self.get_finalized_command('install').root
+ # UGLY HACK WARNING. Indirect compilation requires distutils, which
+ # means Python 3.11 or less. If and only if an environment variable
+ # is set, do we force direct compilation.
+ # See also https://github.com/pypa/setuptools/issues/4164
+ direct = os.environ.get('SETUPTOOLS_FORCE_DIRECT', None)
+
if self.compile:
byte_compile(
files,
@@ -140,6 +146,7 @@ class install_lib(Command):
force=self.force,
prefix=install_root,
dry_run=self.dry_run,
+ direct=direct,
)
if self.optimize > 0:
byte_compile(
@@ -149,6 +156,7 @@ class install_lib(Command):
prefix=install_root,
verbose=self.verbose,
dry_run=self.dry_run,
+ direct=direct,
)
# -- Utility methods -----------------------------------------------

View File

@ -1,21 +0,0 @@
Index: setuptools-68.0.0/setuptools/_distutils/sysconfig.py
===================================================================
--- setuptools-68.0.0.orig/setuptools/_distutils/sysconfig.py
+++ setuptools-68.0.0/setuptools/_distutils/sysconfig.py
@@ -246,9 +246,13 @@ def get_python_lib(plat_specific=0, stan
if os.name == "posix":
if plat_specific or standard_lib:
- # Platform-specific modules (any module from a non-pure-Python
- # module distribution) or standard Python library modules.
- libdir = getattr(sys, "platlibdir", "lib")
+ # Python 3.8 doesn't have sys.platlibdir
+ if sys.version_info < (3, 9):
+ libdir = get_config_var("platsubdir") or "lib"
+ else:
+ # Platform-specific modules (any module from a non-pure-Python
+ # module distribution) or standard Python library modules.
+ libdir = getattr(sys, "platlibdir", "lib")
else:
# Pure Python
libdir = "lib"

View File

@ -1,3 +1,17 @@
-------------------------------------------------------------------
Tue Jan 2 21:55:38 UTC 2024 - Dirk Müller <dmueller@suse.com>
- update to 69.0.3:
* Bugfixes - Retain valid names with underscores in egg_info.
-------------------------------------------------------------------
Fri Dec 22 14:58:46 UTC 2023 - Ben Greiner <code@bnavigator.de>
- Drop fix-get-python-lib-python38.patch: No Python <3.9 built
- Drop ugly allow-only-direct-compilation.patch in favor of proper
PEP517 compliant bootstrap, using a built-in pip and the wheel
package
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Dec 22 04:10:44 UTC 2023 - Steve Kowalik <steven.kowalik@suse.com> Fri Dec 22 04:10:44 UTC 2023 - Steve Kowalik <steven.kowalik@suse.com>

View File

@ -1,7 +1,7 @@
# #
# spec file # spec file
# #
# Copyright (c) 2023 SUSE LLC # Copyright (c) 2024 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -21,43 +21,32 @@
%if "%{flavor}" == "test" %if "%{flavor}" == "test"
%define psuffix -test %define psuffix -test
%bcond_without test %bcond_without test
%bcond_with wheel
%endif
%if "%{flavor}" == "wheel"
%define psuffix -wheel
%bcond_with test
%bcond_without wheel
%endif %endif
%if "%{flavor}" == "" %if "%{flavor}" == ""
%define psuffix %{nil} %define psuffix %{nil}
%bcond_with test %bcond_with test
%bcond_with wheel
%endif %endif
# in order to avoid rewriting for subpackage generator # in order to avoid rewriting for subpackage generator
%define mypython python %define mypython python
%{?sle15_python_module_pythons} %{?sle15_python_module_pythons}
Name: python-setuptools%{psuffix} Name: python-setuptools%{psuffix}
Version: 69.0.2 Version: 69.0.3
Release: 0 Release: 0
Summary: Download, build, install, upgrade, and uninstall Python packages Summary: Download, build, install, upgrade, and uninstall Python packages
License: Apache-2.0 AND MIT AND BSD-2-Clause AND Python-2.0 License: Apache-2.0 AND MIT AND BSD-2-Clause AND Python-2.0
URL: https://github.com/pypa/setuptools URL: https://github.com/pypa/setuptools
Source: https://files.pythonhosted.org/packages/source/s/setuptools/setuptools-%{version}.tar.gz Source: https://files.pythonhosted.org/packages/source/s/setuptools/setuptools-%{version}.tar.gz
Patch0: sort-for-reproducibility.patch Patch0: sort-for-reproducibility.patch
# PATCH-FIX-OPENSUSE fix-get-python-lib-python38.patch bsc#1204395 # Bootstrap: Don't BuildRequire pip here!
Patch2: fix-get-python-lib-python38.patch BuildRequires: %{python_module base >= 3.9}
# PATCH-FIX-OPENSUSE Allow forcing direct compilation, see gh#pypa/setuptools#4164 # The rpm python-wheel build is bootstrap friendly since 0.42
Patch3: allow-only-direct-compilation.patch BuildRequires: %{python_module wheel >= 0.42}
BuildRequires: %{python_module base >= 3.7}
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: python-rpm-macros BuildRequires: python-rpm-macros
Requires(post): update-alternatives Requires(post): update-alternatives
Requires(postun):update-alternatives Requires(postun):update-alternatives
BuildArch: noarch BuildArch: noarch
%if %{with wheel}
Requires: %mypython(abi) = %python_version
%endif
%if %{with test} %if %{with test}
BuildRequires: %{python_module build} BuildRequires: %{python_module build}
BuildRequires: %{python_module devel} BuildRequires: %{python_module devel}
@ -75,14 +64,10 @@ BuildRequires: %{python_module setuptools = %{version}}
BuildRequires: %{python_module setuptools-wheel = %{version}} BuildRequires: %{python_module setuptools-wheel = %{version}}
BuildRequires: %{python_module tomli-w >= 1.0.0} BuildRequires: %{python_module tomli-w >= 1.0.0}
BuildRequires: %{python_module virtualenv >= 13.0.0} BuildRequires: %{python_module virtualenv >= 13.0.0}
BuildRequires: %{python_module wheel}
%endif %endif
%if 0%{?suse_version} || 0%{?fedora_version} >= 24 %if 0%{?suse_version} || 0%{?fedora_version} >= 24
Recommends: ca-certificates-mozilla Recommends: ca-certificates-mozilla
%endif %endif
%if %{with wheel}
BuildRequires: %{python_module wheel}
%endif
%python_subpackages %python_subpackages
%description %description
@ -90,6 +75,14 @@ setuptools is a collection of enhancements to the Python distutils that
allow you to build and distribute Python packages, allow you to build and distribute Python packages,
especially ones that have dependencies on other packages. especially ones that have dependencies on other packages.
%package wheel
Summary: The setuptools wheel for custom tests and install requirements
Requires: %mypython(abi) = %python_version
%description wheel
This packages provides the setuptools wheel as separate file for cases where
the wheel needs to be used directly in test or install setups
%prep %prep
%autosetup -p1 -n setuptools-%{version} %autosetup -p1 -n setuptools-%{version}
@ -97,26 +90,32 @@ especially ones that have dependencies on other packages.
rm -f setuptools/*.exe rm -f setuptools/*.exe
%build %build
%if ! %{with wheel} %if !%{with test}
%python_build %{python_expand # bootstrap with built-in pip
%else $python -m venv build/env
%python_exec setup.py bdist_wheel --universal build/env/bin/python -m ensurepip
export PYTHONPATH=build/env/lib/python%{$python_bin_suffix}/site-packages
%{$python_pyproject_wheel}
}
%endif %endif
%install %install
%if !%{with test} && !%{with wheel} %if !%{with test}
export SETUPTOOLS_FORCE_DIRECT=True %{python_expand # use pip bootstrapped above
%python_install export PYTHONPATH=build/env/lib/python%{$python_bin_suffix}/site-packages
%python_expand %fdupes %{buildroot}%{$python_sitelib} %{$python_pyproject_install}
%endif %fdupes %{buildroot}%{$python_sitelib}
install -D -m 0644 -t %{buildroot}%{$python_sitelib}/../wheels dist/*.whl
%if %{with wheel} }
%python_expand install -D -m 0644 -t %{buildroot}%{$python_sitelib}/../wheels dist/*.whl
%endif %endif
%check %check
%if %{with test} %if %{with test}
%python_expand export PRE_BUILT_SETUPTOOLS_WHEEL=%{$python_sitelib}/../wheels/setuptools-%{version}-py2.py3-none-any.whl %{python_expand # just use the last one from the expansion, they're all the same
mkdir -p dist/
cp %{$python_sitelib}/../wheels/setuptools-%{version}-py3-none-any.whl $PWD/dist/
}
export PRE_BUILT_SETUPTOOLS_WHEEL=$PWD/dist/setuptools-%{version}-py3-none-any.whl
export LANG=en_US.UTF-8 export LANG=en_US.UTF-8
# tests need imports from local source dir # tests need imports from local source dir
export PYTHONPATH=$(pwd) export PYTHONPATH=$(pwd)
@ -133,17 +132,16 @@ donttest+=" or test_pbr_integration"
%license LICENSE %license LICENSE
%doc NEWS.rst README.rst %doc NEWS.rst README.rst
%{python_sitelib}/setuptools %{python_sitelib}/setuptools
%{python_sitelib}/setuptools-%{version}*-info %{python_sitelib}/setuptools-%{version}.dist-info
%dir %{python_sitelib}/pkg_resources %dir %{python_sitelib}/pkg_resources
%{python_sitelib}/pkg_resources/* %{python_sitelib}/pkg_resources/*
%{python_sitelib}/_distutils_hack %{python_sitelib}/_distutils_hack
%{python_sitelib}/distutils-precedence.pth %{python_sitelib}/distutils-precedence.pth
%endif %endif
%if %{with wheel} %files %{python_files wheel}
%dir %{python_sitelib}/../wheels %dir %{python_sitelib}/../wheels
%{python_sitelib}/../wheels/* %{python_sitelib}/../wheels/*
%endif %endif
%endif
%changelog %changelog

BIN
setuptools-69.0.2.tar.gz (Stored with Git LFS)

Binary file not shown.

3
setuptools-69.0.3.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78
size 2219609