Sync from SUSE:SLFO:Main python-setuptools revision 85520adfc48bb4e0995b1b766e095916

This commit is contained in:
Adrian Schröter 2024-09-13 16:26:10 +02:00
parent eba857de12
commit 97080ff305
8 changed files with 120 additions and 111 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,62 @@
-------------------------------------------------------------------
Tue May 28 05:20:31 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- Update to 70.0.0:
* Features
+ Emit a warning when [tools.setuptools] is present in pyproject.toml and
will be ignored.
+ Improved AttributeError error message if pkg_resources.EntryPoint.require
is called without extras or distribution Gracefully "do nothing" when
trying to activate a pkg_resources.Distribution with a None location,
rather than raising a TypeError.
+ Refresh unpinned vendored dependencies.
+ Updated vendored packaging to version 24.0.
+ Merged with pypa/distutils@55982565e.
+ Support PEP 625 by canonicalizing package name and version in filenames.
+ Explicitly use encoding="locale" for .pth files whenever possible, to
reduce EncodingWarnings.
+ Updated and removed obsolete Python < 3.8 code and comments.
+ Updated pkg_resources to use stdlib importlib.machinery instead of
importlib_machinery.
+ Modernized and refactored VCS handling in package_index.
(bsc#1228105, CVE-2024-6345)
* Bugfixes
+ In install command, use super to call the superclass methods. Avoids
race conditions when monkeypatching from _distutils_system_mod occurs
late.
+ Fix finder template for lenient editable installs of implicit nested
namespaces constructed by using package_dir to reorganise directory
structure.
+ Remove attempt to canonicalize the version. It's already canonical
enough.
+ Clarify some pkg_resources methods return bytes, not str. Also return an
empty bytes in EmptyProvider._get.
+ Return an empty list by default in
pkg_resources.ResourceManager.cleanup_resources.
+ Made pkg_resoursces.NullProvider's has_metadata and metadata_isdir
methods return actual booleans like all other Providers.
+ In tests, rely on pytest-home for reusable fixture.
+ Explicitely marked as Protocol and fixed missing self argument in
interfaces pkg_resources.IMetadataProvider and
pkg_resources.IResourceProvider.
+ Restored expectation that egg-link files would be named with dash
separators for compatibility with pip prior to version 24.
- Refresh patch sort-for-reproducibility.patch
-------------------------------------------------------------------
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 for package python-setuptools
# #
# 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: 70.0.0
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}
@ -66,23 +55,22 @@ BuildRequires: %{python_module ini2toml-lite >= 0.9}
BuildRequires: %{python_module jaraco.develop >= 7.21} BuildRequires: %{python_module jaraco.develop >= 7.21}
BuildRequires: %{python_module jaraco.envs >= 2.2} BuildRequires: %{python_module jaraco.envs >= 2.2}
BuildRequires: %{python_module jaraco.path >= 3.2.0} BuildRequires: %{python_module jaraco.path >= 3.2.0}
BuildRequires: %{python_module packaging}
BuildRequires: %{python_module pip >= 19.1} BuildRequires: %{python_module pip >= 19.1}
BuildRequires: %{python_module pip-run >= 8.8} BuildRequires: %{python_module pip-run >= 8.8}
BuildRequires: %{python_module pytest >= 6} BuildRequires: %{python_module pytest >= 6}
BuildRequires: %{python_module pytest-home}
BuildRequires: %{python_module pytest-subprocess}
BuildRequires: %{python_module pytest-timeout} BuildRequires: %{python_module pytest-timeout}
BuildRequires: %{python_module pytest-xdist} BuildRequires: %{python_module pytest-xdist}
BuildRequires: %{python_module setuptools = %{version}} 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 +78,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 +93,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)
@ -124,6 +126,10 @@ export PYTHONPATH=$(pwd)
donttest="(test_apply_pyproject_equivalent_to_setupcfg and https)" donttest="(test_apply_pyproject_equivalent_to_setupcfg and https)"
# test_pbr_integration tries to install pbr from network using pip # test_pbr_integration tries to install pbr from network using pip
donttest+=" or test_pbr_integration" donttest+=" or test_pbr_integration"
# test_example_file_in_sdist wants wheel.whl
donttest+=" or test_example_file_in_sdist"
# Failing doctest: AttributeError: 'Path' object has no attribute 'iterdir'
donttest+=" or yield_top_level"
%pytest -rfE -n auto -k "not ($donttest)" %pytest -rfE -n auto -k "not ($donttest)"
%endif %endif
@ -133,17 +139,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.

BIN
setuptools-70.0.0.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -6,11 +6,11 @@
setuptools/tests/test_wheel.py | 8 ++++---- setuptools/tests/test_wheel.py | 8 ++++----
5 files changed, 8 insertions(+), 8 deletions(-) 5 files changed, 8 insertions(+), 8 deletions(-)
Index: setuptools-69.0.2/setuptools/command/easy_install.py Index: setuptools-70.0.0/setuptools/command/easy_install.py
=================================================================== ===================================================================
--- setuptools-69.0.2.orig/setuptools/command/easy_install.py --- setuptools-70.0.0.orig/setuptools/command/easy_install.py
+++ setuptools-69.0.2/setuptools/command/easy_install.py +++ setuptools-70.0.0/setuptools/command/easy_install.py
@@ -441,7 +441,7 @@ class easy_install(Command): @@ -436,7 +436,7 @@ class easy_install(Command):
for spec in self.args: for spec in self.args:
self.easy_install(spec, not self.no_deps) self.easy_install(spec, not self.no_deps)
if self.record: if self.record:
@ -19,31 +19,31 @@ Index: setuptools-69.0.2/setuptools/command/easy_install.py
if self.root: # strip any package prefix if self.root: # strip any package prefix
root_len = len(self.root) root_len = len(self.root)
for counter in range(len(outputs)): for counter in range(len(outputs)):
Index: setuptools-69.0.2/setuptools/tests/test_wheel.py Index: setuptools-70.0.0/setuptools/tests/test_wheel.py
=================================================================== ===================================================================
--- setuptools-69.0.2.orig/setuptools/tests/test_wheel.py --- setuptools-70.0.0.orig/setuptools/tests/test_wheel.py
+++ setuptools-69.0.2/setuptools/tests/test_wheel.py +++ setuptools-70.0.0/setuptools/tests/test_wheel.py
@@ -424,30 +424,30 @@ WHEEL_INSTALL_TESTS = ( @@ -411,30 +411,30 @@ WHEEL_INSTALL_TESTS = (
dict( dict(
id='requires_ensure_order', id='requires_ensure_order',
install_requires=''' install_requires="""
- foo - foo
bar bar
baz baz
+ foo + foo
qux qux
''', """,
extras_require={ extras_require={
'extra': ''' 'extra': """
- foobar>3 - foobar>3
barbaz>4 barbaz>4
bazqux>5 bazqux>5
+ foobar>3 + foobar>3
quxzap>6 quxzap>6
''', """,
}, },
requires_txt=DALS( requires_txt=DALS(
''' """
- foo - foo
bar bar
baz baz
@ -56,5 +56,5 @@ Index: setuptools-69.0.2/setuptools/tests/test_wheel.py
bazqux>5 bazqux>5
+ foobar>3 + foobar>3
quxzap>6 quxzap>6
''' """
), ),