Compare commits
No commits in common. "c8" and "c10s" have entirely different histories.
7
.gitignore
vendored
7
.gitignore
vendored
@ -1 +1,6 @@
|
||||
SOURCES/setuptools-39.2.0.zip
|
||||
/setuptools-*.tar.gz
|
||||
/setuptools-*.zip
|
||||
/setuptools-*/
|
||||
/pkg_resources-tests-data-*.tar.gz
|
||||
/results_python-setuptools/
|
||||
*.rpm
|
||||
|
@ -1 +0,0 @@
|
||||
83e75ec6b04423735e0a9a384b465c68f5206bcf SOURCES/setuptools-39.2.0.zip
|
41
Adjust-the-setup.py-install-deprecation-message.patch
Normal file
41
Adjust-the-setup.py-install-deprecation-message.patch
Normal file
@ -0,0 +1,41 @@
|
||||
From 58f33f0aef5b137287e6f425b922a03123735a77 Mon Sep 17 00:00:00 2001
|
||||
From: Lumir Balhar <lbalhar@redhat.com>
|
||||
Date: Wed, 20 Sep 2023 17:18:47 +0200
|
||||
Subject: [PATCH] Adjust the setup.py install deprecation message and URL
|
||||
|
||||
But only when building RPM packages.
|
||||
---
|
||||
setuptools/command/install.py | 10 ++++++++--
|
||||
1 file changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/setuptools/command/install.py b/setuptools/command/install.py
|
||||
index 606cce9..0af1631 100644
|
||||
--- a/setuptools/command/install.py
|
||||
+++ b/setuptools/command/install.py
|
||||
@@ -1,6 +1,7 @@
|
||||
from distutils.errors import DistutilsArgError
|
||||
import inspect
|
||||
import glob
|
||||
+import os
|
||||
import platform
|
||||
import distutils.command.install as orig
|
||||
|
||||
@@ -40,8 +41,13 @@ class install(orig.install):
|
||||
Please avoid running ``setup.py`` directly.
|
||||
Instead, use pypa/build, pypa/installer or other
|
||||
standards-based tools.
|
||||
- """,
|
||||
- see_url="https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html",
|
||||
+ """
|
||||
+ + ("""
|
||||
+ Follow the current Python packaging guidelines when building
|
||||
+ Python RPM packages.
|
||||
+ """ if "RPM_BUILD_ROOT" in os.environ else ""),
|
||||
+ see_url=("https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html" +
|
||||
+ ("\nand https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/" if "RPM_BUILD_ROOT" in os.environ else "")),
|
||||
# TODO: Document how to bootstrap setuptools without install
|
||||
# (e.g. by unziping the wheel file)
|
||||
# and then add a due_date to this warning.
|
||||
--
|
||||
2.41.0
|
||||
|
116
CVE-2024-6345.patch
Normal file
116
CVE-2024-6345.patch
Normal file
@ -0,0 +1,116 @@
|
||||
From 472528deea4063f20c5d9525f0faf64ae0cd0a90 Mon Sep 17 00:00:00 2001
|
||||
From: Lumir Balhar <lbalhar@redhat.com>
|
||||
Date: Wed, 24 Jul 2024 14:26:09 +0200
|
||||
Subject: [PATCH] CVE-2024-6345
|
||||
|
||||
---
|
||||
setuptools/package_index.py | 21 +++++----------------
|
||||
setuptools/tests/test_packageindex.py | 20 ++++++++++----------
|
||||
2 files changed, 15 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/setuptools/package_index.py b/setuptools/package_index.py
|
||||
index 7095585..1368bde 100644
|
||||
--- a/setuptools/package_index.py
|
||||
+++ b/setuptools/package_index.py
|
||||
@@ -1,5 +1,6 @@
|
||||
"""PyPI and direct package downloading."""
|
||||
|
||||
+import subprocess
|
||||
import sys
|
||||
import os
|
||||
import re
|
||||
@@ -881,17 +882,11 @@ class PackageIndex(Environment):
|
||||
url, rev = self._vcs_split_rev_from_url(url, pop_prefix=True)
|
||||
|
||||
self.info("Doing git clone from %s to %s", url, filename)
|
||||
- os.system("git clone --quiet %s %s" % (url, filename))
|
||||
+ subprocess.check_call(["git", "clone", "--quiet", url, filename])
|
||||
|
||||
if rev is not None:
|
||||
self.info("Checking out %s", rev)
|
||||
- os.system(
|
||||
- "git -C %s checkout --quiet %s"
|
||||
- % (
|
||||
- filename,
|
||||
- rev,
|
||||
- )
|
||||
- )
|
||||
+ subprocess.check_call(["git", "-C", filename, "checkout", "--quiet", rev])
|
||||
|
||||
return filename
|
||||
|
||||
@@ -900,17 +895,11 @@ class PackageIndex(Environment):
|
||||
url, rev = self._vcs_split_rev_from_url(url, pop_prefix=True)
|
||||
|
||||
self.info("Doing hg clone from %s to %s", url, filename)
|
||||
- os.system("hg clone --quiet %s %s" % (url, filename))
|
||||
+ subprocess.check_call(["hg", "clone", "--quiet", url, filename])
|
||||
|
||||
if rev is not None:
|
||||
self.info("Updating to %s", rev)
|
||||
- os.system(
|
||||
- "hg --cwd %s up -C -r %s -q"
|
||||
- % (
|
||||
- filename,
|
||||
- rev,
|
||||
- )
|
||||
- )
|
||||
+ subprocess.check_call(["hg", "--cwd", filename, "up", "-C", "-r", rev, "-q"])
|
||||
|
||||
return filename
|
||||
|
||||
diff --git a/setuptools/tests/test_packageindex.py b/setuptools/tests/test_packageindex.py
|
||||
index 0287063..c136e8d 100644
|
||||
--- a/setuptools/tests/test_packageindex.py
|
||||
+++ b/setuptools/tests/test_packageindex.py
|
||||
@@ -190,37 +190,37 @@ class TestPackageIndex:
|
||||
url = 'git+https://github.example/group/project@master#egg=foo'
|
||||
index = setuptools.package_index.PackageIndex()
|
||||
|
||||
- with mock.patch("os.system") as os_system_mock:
|
||||
+ with mock.patch("subprocess.check_call") as subprocess_check_call_mock:
|
||||
result = index.download(url, str(tmpdir))
|
||||
|
||||
- os_system_mock.assert_called()
|
||||
+ subprocess_check_call_mock.assert_called()
|
||||
|
||||
expected_dir = str(tmpdir / 'project@master')
|
||||
expected = (
|
||||
'git clone --quiet ' 'https://github.example/group/project {expected_dir}'
|
||||
- ).format(**locals())
|
||||
- first_call_args = os_system_mock.call_args_list[0][0]
|
||||
+ ).format(**locals()).split()
|
||||
+ first_call_args = subprocess_check_call_mock.call_args_list[0][0]
|
||||
assert first_call_args == (expected,)
|
||||
|
||||
tmpl = 'git -C {expected_dir} checkout --quiet master'
|
||||
- expected = tmpl.format(**locals())
|
||||
- assert os_system_mock.call_args_list[1][0] == (expected,)
|
||||
+ expected = tmpl.format(**locals()).split()
|
||||
+ assert subprocess_check_call_mock.call_args_list[1][0] == (expected,)
|
||||
assert result == expected_dir
|
||||
|
||||
def test_download_git_no_rev(self, tmpdir):
|
||||
url = 'git+https://github.example/group/project#egg=foo'
|
||||
index = setuptools.package_index.PackageIndex()
|
||||
|
||||
- with mock.patch("os.system") as os_system_mock:
|
||||
+ with mock.patch("subprocess.check_call") as subprocess_check_call_mock:
|
||||
result = index.download(url, str(tmpdir))
|
||||
|
||||
- os_system_mock.assert_called()
|
||||
+ subprocess_check_call_mock.assert_called()
|
||||
|
||||
expected_dir = str(tmpdir / 'project')
|
||||
expected = (
|
||||
'git clone --quiet ' 'https://github.example/group/project {expected_dir}'
|
||||
- ).format(**locals())
|
||||
- os_system_mock.assert_called_once_with(expected)
|
||||
+ ).format(**locals()).split()
|
||||
+ subprocess_check_call_mock.assert_called_once_with(expected)
|
||||
|
||||
def test_download_svn(self, tmpdir):
|
||||
url = 'svn+https://svn.example/project#egg=foo'
|
||||
--
|
||||
2.45.2
|
||||
|
48
Remove-optional-or-unpackaged-test-deps.patch
Normal file
48
Remove-optional-or-unpackaged-test-deps.patch
Normal file
@ -0,0 +1,48 @@
|
||||
From 850efbc4dfe5b8c64dd21617bc856ba0d4e3a082 Mon Sep 17 00:00:00 2001
|
||||
From: Lumir Balhar <lbalhar@redhat.com>
|
||||
Date: Wed, 20 Sep 2023 19:47:05 +0200
|
||||
Subject: [PATCH] Remove optional or unpackaged test deps
|
||||
|
||||
---
|
||||
setup.cfg | 14 --------------
|
||||
1 file changed, 14 deletions(-)
|
||||
|
||||
diff --git a/setup.cfg b/setup.cfg
|
||||
index c7aaf14..33b9cd7 100644
|
||||
--- a/setup.cfg
|
||||
+++ b/setup.cfg
|
||||
@@ -42,17 +42,7 @@ exclude =
|
||||
[options.extras_require]
|
||||
testing =
|
||||
pytest >= 6
|
||||
- pytest-checkdocs >= 2.4
|
||||
- pytest-black >= 0.3.7; \
|
||||
- python_implementation != "PyPy"
|
||||
- pytest-cov; \
|
||||
- python_implementation != "PyPy"
|
||||
- pytest-mypy >= 0.9.1; \
|
||||
- python_implementation != "PyPy"
|
||||
- pytest-enabler >= 2.2
|
||||
- pytest-ruff; sys_platform != "cygwin"
|
||||
|
||||
- flake8-2020
|
||||
virtualenv>=13.0.0
|
||||
wheel
|
||||
pip>=19.1 # For proper file:// URLs support.
|
||||
@@ -60,13 +50,9 @@ testing =
|
||||
pytest-xdist
|
||||
jaraco.path>=3.2.0
|
||||
build[virtualenv]
|
||||
- filelock>=3.4.0
|
||||
ini2toml[lite]>=0.9
|
||||
tomli-w>=1.0.0
|
||||
pytest-timeout
|
||||
- pytest-perf; \
|
||||
- sys_platform != "cygwin"
|
||||
- jaraco.develop >= 7.21; python_version >= "3.9" and sys_platform != "cygwin"
|
||||
testing-integration =
|
||||
pytest
|
||||
pytest-xdist
|
||||
--
|
||||
2.41.0
|
||||
|
@ -1,30 +0,0 @@
|
||||
diff --git a/setuptools/package_index.py b/setuptools/package_index.py
|
||||
index b6407be..bdcf4a6 100755
|
||||
--- a/setuptools/package_index.py
|
||||
+++ b/setuptools/package_index.py
|
||||
@@ -212,7 +212,7 @@ def unique_values(func):
|
||||
return wrapper
|
||||
|
||||
|
||||
-REL = re.compile(r"""<([^>]*\srel\s*=\s*['"]?([^'">]+)[^>]*)>""", re.I)
|
||||
+REL = re.compile(r"""<([^>]*\srel\s{0,10}=\s{0,10}['"]?([^'" >]+)[^>]*)>""", re.I)
|
||||
# this line is here to fix emacs' cruddy broken syntax highlighting
|
||||
|
||||
|
||||
diff --git a/setuptools/tests/test_packageindex.py b/setuptools/tests/test_packageindex.py
|
||||
index 63b9294..49bd819 100644
|
||||
--- a/setuptools/tests/test_packageindex.py
|
||||
+++ b/setuptools/tests/test_packageindex.py
|
||||
@@ -223,6 +223,12 @@ class TestPackageIndex:
|
||||
assert dists[0].version == ''
|
||||
assert dists[1].version == vc
|
||||
|
||||
+ def test_REL_DoS(self):
|
||||
+ """
|
||||
+ REL should not hang on a contrived attack string.
|
||||
+ """
|
||||
+ setuptools.package_index.REL.search('< rel=' + ' ' * 2**12)
|
||||
+
|
||||
|
||||
class TestContentCheckers:
|
||||
def test_md5(self):
|
@ -1,83 +0,0 @@
|
||||
From 8af1b3e03edc8a38565558aff3bf1689c1ca3545 Mon Sep 17 00:00:00 2001
|
||||
From: Lumir Balhar <lbalhar@redhat.com>
|
||||
Date: Fri, 26 Jul 2024 13:49:11 +0200
|
||||
Subject: [PATCH] CVE-2024-6345
|
||||
|
||||
---
|
||||
setuptools/package_index.py | 23 +++++++++--------------
|
||||
1 file changed, 9 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/setuptools/package_index.py b/setuptools/package_index.py
|
||||
index bdcf4a6..1d3e5b4 100755
|
||||
--- a/setuptools/package_index.py
|
||||
+++ b/setuptools/package_index.py
|
||||
@@ -1,4 +1,5 @@
|
||||
"""PyPI and direct package downloading"""
|
||||
+import subprocess
|
||||
import sys
|
||||
import os
|
||||
import re
|
||||
@@ -848,7 +849,7 @@ class PackageIndex(Environment):
|
||||
|
||||
def _download_svn(self, url, filename):
|
||||
url = url.split('#', 1)[0] # remove any fragment for svn's sake
|
||||
- creds = ''
|
||||
+ creds = []
|
||||
if url.lower().startswith('svn:') and '@' in url:
|
||||
scheme, netloc, path, p, q, f = urllib.parse.urlparse(url)
|
||||
if not netloc and path.startswith('//') and '/' in path[2:]:
|
||||
@@ -857,14 +858,14 @@ class PackageIndex(Environment):
|
||||
if auth:
|
||||
if ':' in auth:
|
||||
user, pw = auth.split(':', 1)
|
||||
- creds = " --username=%s --password=%s" % (user, pw)
|
||||
+ creds = ["--username=" + user, "--password=" + pw]
|
||||
else:
|
||||
- creds = " --username=" + auth
|
||||
+ creds = ["--username=" + auth]
|
||||
netloc = host
|
||||
parts = scheme, netloc, url, p, q, f
|
||||
url = urllib.parse.urlunparse(parts)
|
||||
self.info("Doing subversion checkout from %s to %s", url, filename)
|
||||
- os.system("svn checkout%s -q %s %s" % (creds, url, filename))
|
||||
+ subprocess.check_call(["svn", "checkout"] + creds + ["-q", url, filename])
|
||||
return filename
|
||||
|
||||
@staticmethod
|
||||
@@ -890,14 +891,11 @@ class PackageIndex(Environment):
|
||||
url, rev = self._vcs_split_rev_from_url(url, pop_prefix=True)
|
||||
|
||||
self.info("Doing git clone from %s to %s", url, filename)
|
||||
- os.system("git clone --quiet %s %s" % (url, filename))
|
||||
+ subprocess.check_call(["git", "clone", "--quiet", url, filename])
|
||||
|
||||
if rev is not None:
|
||||
self.info("Checking out %s", rev)
|
||||
- os.system("(cd %s && git checkout --quiet %s)" % (
|
||||
- filename,
|
||||
- rev,
|
||||
- ))
|
||||
+ subprocess.check_call(["git", "-C", filename, "checkout", "--quiet", rev])
|
||||
|
||||
return filename
|
||||
|
||||
@@ -906,14 +904,11 @@ class PackageIndex(Environment):
|
||||
url, rev = self._vcs_split_rev_from_url(url, pop_prefix=True)
|
||||
|
||||
self.info("Doing hg clone from %s to %s", url, filename)
|
||||
- os.system("hg clone --quiet %s %s" % (url, filename))
|
||||
+ subprocess.check_call(["hg", "clone", "--quiet", url, filename])
|
||||
|
||||
if rev is not None:
|
||||
self.info("Updating to %s", rev)
|
||||
- os.system("(cd %s && hg up -C -r %s -q)" % (
|
||||
- filename,
|
||||
- rev,
|
||||
- ))
|
||||
+ subprocess.check_call(["hg", "--cwd", filename, "up", "-C", "-r", rev, "-q"])
|
||||
|
||||
return filename
|
||||
|
||||
--
|
||||
2.45.2
|
||||
|
@ -1,17 +0,0 @@
|
||||
diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py
|
||||
index 91c48b3..0c9b0f4 100755
|
||||
--- a/setuptools/command/easy_install.py
|
||||
+++ b/setuptools/command/easy_install.py
|
||||
@@ -446,6 +446,12 @@ class easy_install(Command):
|
||||
instdir = normalize_path(self.install_dir)
|
||||
pth_file = os.path.join(instdir, 'easy-install.pth')
|
||||
|
||||
+ if not os.path.exists(instdir):
|
||||
+ try:
|
||||
+ os.makedirs(instdir)
|
||||
+ except (OSError, IOError):
|
||||
+ self.cant_write_to_target()
|
||||
+
|
||||
# Is it a configured, PYTHONPATH, implicit, or explicit site dir?
|
||||
is_site_dir = instdir in self.all_site_dirs
|
||||
|
@ -1,357 +1,320 @@
|
||||
%global srcname setuptools
|
||||
|
||||
# WARNING When bootstrapping, disable tests as well,
|
||||
# because tests need pip.
|
||||
%bcond_with bootstrap
|
||||
%bcond_without tests
|
||||
|
||||
%bcond_with py2_wheel
|
||||
|
||||
%if 0%{?rhel} && 0%{?rhel} <= 7
|
||||
%global _without_python3 1
|
||||
# define some macros for RHEL 6
|
||||
%global __python2 %__python
|
||||
%global python2_sitelib %python_sitelib
|
||||
%endif
|
||||
|
||||
# Note(hguemar): overrides must be placed *before* those
|
||||
# Otherwise it doesn't work
|
||||
%bcond_without python2
|
||||
%bcond_without python3
|
||||
|
||||
%if %{without bootstrap}
|
||||
%global python_wheelname %{srcname}-%{version}-py2.py3-none-any.whl
|
||||
%if %{with python2}
|
||||
%global python2_wheelname %python_wheelname
|
||||
%global python2_record %{python2_sitelib}/%{srcname}-%{version}.dist-info/RECORD
|
||||
%global python2_wheeldir %{_datadir}/python2-wheels
|
||||
%endif # with python2
|
||||
%if %{with python3}
|
||||
%global python3_wheelname %python_wheelname
|
||||
%global python3_record %{python3_sitelib}/%{srcname}-%{version}.dist-info/RECORD
|
||||
%global python3_wheeldir %{_datadir}/python3-wheels
|
||||
%endif # with python3
|
||||
%endif # without bootstrap
|
||||
|
||||
Name: python-setuptools
|
||||
Version: 39.2.0
|
||||
Release: 8%{?dist}
|
||||
Summary: Easily build and distribute Python packages
|
||||
|
||||
Group: Applications/System
|
||||
License: MIT
|
||||
URL: https://pypi.python.org/pypi/%{srcname}
|
||||
Source0: https://files.pythonhosted.org/packages/source/s/%{srcname}/%{srcname}-%{version}.zip
|
||||
|
||||
# In Fedora, sudo setup.py install installs to /usr/local/lib/pythonX.Y/site-packages
|
||||
# But pythonX doesn't own that dir, that would be against FHS
|
||||
# We need to create it if it doesn't exist
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1576924
|
||||
Patch0: create-site-packages.patch
|
||||
|
||||
# Security fix for CVE-2022-40897
|
||||
# Regular Expression Denial of Service (ReDoS) in package_index.py
|
||||
# Resolved upstream: https://github.com/pypa/setuptools/commit/43a9c9bfa6aa626ec2a22540bea28d2ca77964be
|
||||
Patch1: CVE-2022-40897.patch
|
||||
|
||||
# Security fix for CVE-2024-6345
|
||||
# Remote code execution via download functions in the package_index module
|
||||
# Tracking bug: https://bugzilla.redhat.com/show_bug.cgi?id=2297771
|
||||
# Upstream solution: https://github.com/pypa/setuptools/pull/4332
|
||||
# Patch simplified because upstream doesn't support SVN anymore.
|
||||
Patch2: CVE-2024-6345.patch
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
BuildRequires: gcc
|
||||
%if %{with python2}
|
||||
BuildRequires: python2-devel
|
||||
%if %{with py2_wheel}
|
||||
BuildRequires: python2-pip
|
||||
BuildRequires: python2-wheel
|
||||
%endif # with py2_wheel
|
||||
%endif # with python2
|
||||
|
||||
%if %{with python3}
|
||||
BuildRequires: python3-devel
|
||||
%if %{with tests}
|
||||
BuildRequires: python3-pip
|
||||
BuildRequires: python3-pytest
|
||||
BuildRequires: python3-mock
|
||||
%endif # with tests
|
||||
%if %{without bootstrap}
|
||||
BuildRequires: python3-pip
|
||||
BuildRequires: python3-wheel
|
||||
%endif # without bootstrap
|
||||
%endif # with python3
|
||||
|
||||
# We're now back to setuptools as the package.
|
||||
# Keep the python-distribute name active for a few releases. Eventually we'll
|
||||
# want to get rid of the Provides and just keep the Obsoletes
|
||||
Provides: python-distribute = %{version}-%{release}
|
||||
Obsoletes: python-distribute < 0.6.36-2
|
||||
|
||||
%global _description \
|
||||
Setuptools is a collection of enhancements to the Python distutils that allow \
|
||||
you to more easily build and distribute Python packages, especially ones that \
|
||||
have dependencies on other packages. \
|
||||
\
|
||||
This package also contains the runtime components of setuptools, necessary to \
|
||||
execute the software that requires pkg_resources.py.
|
||||
|
||||
%description %_description
|
||||
|
||||
%if %{with python3}
|
||||
%package -n platform-python-setuptools
|
||||
Summary: Easily build and distribute Python 3 packages
|
||||
Group: Applications/System
|
||||
Conflicts: python3-setuptools < 39.2.0-4%{?dist}
|
||||
|
||||
%description -n platform-python-setuptools %_description
|
||||
|
||||
%endif # with python3
|
||||
|
||||
|
||||
%if %{with python2}
|
||||
%package -n python2-setuptools
|
||||
Summary: Easily build and distribute Python packages
|
||||
%{?python_provide:%python_provide python2-setuptools}
|
||||
|
||||
%description -n python2-setuptools %_description
|
||||
|
||||
%endif # with python2
|
||||
|
||||
|
||||
%if %{with python3}
|
||||
%package -n python3-setuptools
|
||||
Summary: Easily build and distribute Python 3 packages
|
||||
Group: Applications/System
|
||||
Requires: platform-python-setuptools = %{version}-%{release}
|
||||
%{?python_provide:%python_provide python3-setuptools}
|
||||
|
||||
%description -n python3-setuptools %_description
|
||||
|
||||
%endif # with python3
|
||||
|
||||
%if %{without bootstrap}
|
||||
%if %{with py2_wheel}
|
||||
%if %{with python2}
|
||||
%package -n python2-setuptools-wheel
|
||||
Summary: The setuptools wheel
|
||||
|
||||
%description -n python2-setuptools-wheel
|
||||
A Python wheel of setuptools to use with venv.
|
||||
%endif #with python2
|
||||
%endif #with py2_wheel
|
||||
|
||||
%if %{with python3}
|
||||
%package -n python3-setuptools-wheel
|
||||
Summary: The setuptools wheel
|
||||
|
||||
%description -n python3-setuptools-wheel
|
||||
A Python wheel of setuptools to use with venv.
|
||||
%endif #with python3
|
||||
%endif #with bootstrap
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{srcname}-%{version}
|
||||
|
||||
# We can't remove .egg-info (but it doesn't matter, since it'll be rebuilt):
|
||||
# The problem is that to properly execute setuptools' setup.py,
|
||||
# it is needed for setuptools to be loaded as a Distribution
|
||||
# (with egg-info or .dist-info dir), it's not sufficient
|
||||
# to just have them on PYTHONPATH
|
||||
# Running "setup.py install" without having setuptools installed
|
||||
# as a distribution gives warnings such as
|
||||
# ... distutils/dist.py:267: UserWarning: Unknown distribution option: 'entry_points'
|
||||
# and doesn't create "easy_install" and .egg-info directory
|
||||
# Note: this is only a problem if bootstrapping wheel or building on RHEL,
|
||||
# otherwise setuptools are installed as dependency into buildroot
|
||||
|
||||
# Strip shbang
|
||||
find setuptools -name \*.py | xargs sed -i -e '1 {/^#!\//d}'
|
||||
# Remove bundled exes
|
||||
rm -f setuptools/*.exe
|
||||
# These tests require internet connection
|
||||
rm setuptools/tests/test_integration.py
|
||||
|
||||
%build
|
||||
|
||||
%if %{with python2}
|
||||
%if %{with py2_wheel} && %{without bootstrap}
|
||||
export RHEL_ALLOW_PYTHON2_FOR_BUILD=1
|
||||
%py2_build_wheel
|
||||
%else
|
||||
export RHEL_ALLOW_PYTHON2_FOR_BUILD=1
|
||||
%py2_build
|
||||
%endif # without bootstrap + py2_wheel
|
||||
%endif # with python2
|
||||
|
||||
%if %{with python3}
|
||||
%if %{without bootstrap}
|
||||
%py3_build_wheel
|
||||
%else
|
||||
%py3_build
|
||||
%endif # without bootstrap
|
||||
%endif # with python3
|
||||
|
||||
|
||||
%install
|
||||
# Must do the python3 install first because the scripts in /usr/bin are
|
||||
# overwritten with every setup.py install (and we want the python2 version to
|
||||
# be the default for now).
|
||||
%if %{with python3}
|
||||
%if %{without bootstrap}
|
||||
%py3_install_wheel %{python3_wheelname}
|
||||
|
||||
# Remove /usr/bin/easy_install from the record as later on we delete the file
|
||||
sed -i '/\/usr\/bin\/easy_install,/d' %{buildroot}%{python3_record}
|
||||
%else
|
||||
%py3_install
|
||||
%endif
|
||||
|
||||
# TODO: we have to remove this by hand now, but it'd be nice if we wouldn't have to
|
||||
# (pip install wheel doesn't overwrite)
|
||||
rm %{buildroot}%{_bindir}/easy_install
|
||||
|
||||
rm -rf %{buildroot}%{python3_sitelib}/setuptools/tests
|
||||
%if %{without bootstrap}
|
||||
sed -i '/^setuptools\/tests\//d' %{buildroot}%{python3_record}
|
||||
%endif
|
||||
|
||||
find %{buildroot}%{python3_sitelib} -name '*.exe' | xargs rm -f
|
||||
%endif # with python3
|
||||
|
||||
|
||||
%if %{with python2}
|
||||
export RHEL_ALLOW_PYTHON2_FOR_BUILD=1
|
||||
%if %{with py2_wheel}
|
||||
%py2_install_wheel %{python2_wheelname}
|
||||
%else
|
||||
%py2_install
|
||||
%endif #with py2_wheel
|
||||
|
||||
rm -rf %{buildroot}%{python2_sitelib}/setuptools/tests
|
||||
%if %{with py2_wheel}
|
||||
sed -i '/^setuptools\/tests\//d' %{buildroot}%{python2_record}
|
||||
%endif # with py2_wheel
|
||||
|
||||
find %{buildroot}%{python2_sitelib} -name '*.exe' | xargs rm -f
|
||||
%endif # with python2
|
||||
|
||||
# Don't ship these
|
||||
rm -r docs/{Makefile,conf.py,_*}
|
||||
|
||||
%if %{without bootstrap}
|
||||
%if %{with py2_wheel}
|
||||
%if %{with python2}
|
||||
mkdir -p %{buildroot}%{python2_wheeldir}
|
||||
install -p dist/%{python2_wheelname} -t %{buildroot}%{python2_wheeldir}
|
||||
%endif #with python2
|
||||
%endif #with py2_wheel
|
||||
|
||||
%if %{with python3}
|
||||
mkdir -p %{buildroot}%{python3_wheeldir}
|
||||
install -p dist/%{python3_wheelname} -t %{buildroot}%{python3_wheeldir}
|
||||
%endif #with python3
|
||||
%endif #with bootstrap
|
||||
|
||||
|
||||
%if %{with tests}
|
||||
%check
|
||||
%if %{with python3}
|
||||
# --ignore=setuptools/tests/test_virtualenv.py: because virtualenv executable
|
||||
# is configured only for Python 2 version of virtualenv—this needs to be fixed
|
||||
# in the `python-pytest-virtualenv` package
|
||||
PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=$(pwd) py.test-%{python3_version} --ignore=setuptools/tests/test_virtualenv.py
|
||||
%endif # with python3
|
||||
%endif # with tests
|
||||
|
||||
|
||||
%if %{with python2}
|
||||
%files -n python2-setuptools
|
||||
%license LICENSE
|
||||
%doc docs/* CHANGES.rst README.rst
|
||||
%{python2_sitelib}/*
|
||||
%{_bindir}/easy_install
|
||||
%{_bindir}/easy_install-2.*
|
||||
%endif # with python2
|
||||
|
||||
%if %{with python3}
|
||||
%files -n python3-setuptools
|
||||
%license LICENSE
|
||||
%doc docs/* CHANGES.rst README.rst
|
||||
# The easy_install-3 binary is created using alternatives
|
||||
# defined in the python36 package
|
||||
%{_bindir}/easy_install-3.*
|
||||
|
||||
%files -n platform-python-setuptools
|
||||
%license LICENSE
|
||||
%doc docs/* CHANGES.rst README.rst
|
||||
%{python3_sitelib}/easy_install.py
|
||||
%{python3_sitelib}/pkg_resources/
|
||||
%{python3_sitelib}/setuptools*/
|
||||
%{python3_sitelib}/__pycache__/*
|
||||
%endif # with python3
|
||||
|
||||
%if %{without bootstrap}
|
||||
%if %{with py2_wheel}
|
||||
%if %{with python2}
|
||||
%files -n python2-setuptools-wheel
|
||||
%license LICENSE
|
||||
# we own the dir for simplicity
|
||||
%dir %{python2_wheeldir}/
|
||||
%{python2_wheeldir}/%{python2_wheelname}
|
||||
%endif #with python2
|
||||
%endif #with py2_wheel
|
||||
|
||||
%if %{with python3}
|
||||
%files -n python3-setuptools-wheel
|
||||
%license LICENSE
|
||||
# we own the dir for simplicity
|
||||
%dir %{python3_wheeldir}/
|
||||
%{python3_wheeldir}/%{python3_wheelname}
|
||||
%endif #with python3
|
||||
%endif #with bootstrap
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Jul 24 2024 Lumír Balhar <lbalhar@redhat.com> - 39.2.0-8
|
||||
- Security fix for CVE-2024-6345
|
||||
Resolves: RHEL-50470
|
||||
|
||||
* Wed Jan 11 2023 Charalampos Stratakis <cstratak@redhat.com> - 39.2.0-7
|
||||
- Security fix for CVE-2022-40897
|
||||
Resolves: rhbz#2158559
|
||||
|
||||
* Wed Mar 25 2020 Charalampos Stratakis <cstratak@redhat.com> - 39.2.0-6
|
||||
- Create /usr/local/lib/pythonX.Y when needed
|
||||
Resolves: rhbz#1808301
|
||||
|
||||
* Wed Apr 17 2019 Petr Viktorin <pviktori@redhat.com> - 39.2.0-5
|
||||
- Add subpackages with wheels
|
||||
Resolves: rhbz#1718032
|
||||
|
||||
* Mon Oct 22 2018 Lumír Balhar <lbalhar@redhat.com> - 39.2.0-4
|
||||
- New subpackage platform-python-setuptools without files from /usr/bin/*
|
||||
- python3-setuptools contains only files from /usr/bin/* and depends
|
||||
on platform-python-setuptools
|
||||
- Resolves: rhbz#1641973
|
||||
|
||||
* Mon Jun 25 2018 Petr Viktorin <pviktori@redhat.com> - 39.2.0-3
|
||||
- Allow Python 2 for build
|
||||
see https://hurl.corp.redhat.com/rhel8-py2
|
||||
|
||||
* Fri Jun 22 2018 Petr Viktorin <pviktori@redhat.com> - 39.2.0-2
|
||||
- Do not use wheel on Python 2
|
||||
|
||||
* Tue Jun 19 2018 Charalampos Stratakis <cstratak@redhat.com> - 39.2.0-1
|
||||
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 68.2.2-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 68.2.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Wed Sep 20 2023 Lumír Balhar <lbalhar@redhat.com> - 68.2.2-1
|
||||
- Update to 68.2.2 (rhbz#2208644)
|
||||
|
||||
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 67.7.2-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Wed Jul 12 2023 Python Maint <python-maint@redhat.com> - 67.7.2-6
|
||||
- Rebuilt for Python 3.12
|
||||
|
||||
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 67.7.2-5
|
||||
- Bootstrap for Python 3.12
|
||||
|
||||
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 67.7.2-4
|
||||
- Bootstrap for Python 3.12
|
||||
|
||||
* Fri May 05 2023 Miro Hrončok <mhroncok@redhat.com> - 67.7.2-2
|
||||
- Adjust the `setup.py install` deprecation notice when building RPM packages
|
||||
|
||||
* Fri Apr 21 2023 Charalampos Stratakis <cstratak@redhat.com> - 67.7.2-1
|
||||
- Update to 67.7.2
|
||||
- Fixes: rhbz#2144132
|
||||
|
||||
* Thu Apr 20 2023 Charalampos Stratakis <cstratak@redhat.com> - 67.6.1-1
|
||||
- Update to 67.6.1
|
||||
- Fixes: rhbz#2144132
|
||||
|
||||
* Tue Mar 28 2023 Miro Hrončok <mhroncok@redhat.com> - 65.5.1-3
|
||||
- Fix tests with wheel 0.40
|
||||
|
||||
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 65.5.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Tue Nov 08 2022 Miro Hrončok <mhroncok@redhat.com> - 65.5.1-1
|
||||
- Update to 65.5.1
|
||||
- Fixes: rhbz#2140209
|
||||
|
||||
* Fri Oct 14 2022 Miro Hrončok <mhroncok@redhat.com> - 65.5.0-1
|
||||
- Update to 65.5.0
|
||||
- Fixes: rhbz#2129562
|
||||
|
||||
* Thu Oct 13 2022 Miro Hrončok <mhroncok@redhat.com> - 65.4.1-1
|
||||
- Update to 65.4.1
|
||||
- Update the RPM License field to use SPDX expressions
|
||||
|
||||
* Tue Sep 13 2022 Lumír Balhar <lbalhar@redhat.com> - 65.3.0-1
|
||||
- Update to 65.3.0
|
||||
Resolves: rhbz#2102402
|
||||
|
||||
* Thu Jul 28 2022 Tomáš Hrnčiar <thrnciar@redhat.com> - 65.0.2-1
|
||||
- Update to 65.0.2
|
||||
- Fixes: rhbz#2102402
|
||||
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 62.6.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Tue Jun 14 2022 Charalampos Stratakis <cstratak@redhat.com> - 62.6.0-1
|
||||
- Update to 62.6.0
|
||||
- Fixes: rhbz#2064842
|
||||
|
||||
* Tue Jun 14 2022 Python Maint <python-maint@redhat.com> - 60.9.3-5
|
||||
- Rebuilt for Python 3.11
|
||||
|
||||
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 60.9.3-4
|
||||
- Bootstrap for Python 3.11
|
||||
|
||||
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 60.9.3-3
|
||||
- Bootstrap for Python 3.11
|
||||
|
||||
* Tue Apr 19 2022 Tomáš Hrnčiar <thrnciar@redhat.com> - 60.9.3-2
|
||||
- No longer use the deprecated sre_constants module in bundled pyparsing
|
||||
- Fixes: rhbz#2075487
|
||||
|
||||
* Wed Feb 16 2022 Karolina Surma <ksurma@redhat.com> - 60.9.3-1
|
||||
- Update to 60.9.3
|
||||
- Fixes rhbz#2033860
|
||||
|
||||
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 59.6.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Wed Dec 08 2021 Tomáš Hrnčiar <thrnciar@redhat.com> - 59.6.0-1
|
||||
- Update to 59.6.0
|
||||
- Fixes: rhbz#2023119
|
||||
- Fixes: rhbz#2031556
|
||||
|
||||
* Wed Nov 10 2021 Karolina Surma <ksurma@redhat.com> - 58.5.3-1
|
||||
- Update to 58.5.3
|
||||
- Fixes rhbz#2016715
|
||||
|
||||
* Tue Oct 19 2021 Tomáš Hrnčiar <thrnciar@redhat.com> - 58.2.0-1
|
||||
- Update to 58.2.0
|
||||
- Fixes rhbz#2001228
|
||||
|
||||
* Tue Aug 03 2021 Miro Hrončok <mhroncok@redhat.com> - 57.4.0-1
|
||||
- Update to 57.4.0
|
||||
- https://setuptools.readthedocs.io/en/latest/history.html#v57-4-0
|
||||
- Fixes rhbz#1982493
|
||||
|
||||
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 57.1.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Mon Jul 19 2021 Miro Hrončok <mhroncok@redhat.com> - 57.1.0-2
|
||||
- Modernize packaging
|
||||
|
||||
* Fri Jul 09 2021 Tomas Hrnciar <thrnciar@redhat.com> - 57.1.0-1
|
||||
- Update to 57.1.0
|
||||
- Fixes rhbz#1979122
|
||||
|
||||
* Thu Jun 17 2021 Lumír Balhar <lbalhar@redhat.com> - 57.0.0-1
|
||||
- Update to 57.0.0
|
||||
Resolves: rhbz#1963411
|
||||
|
||||
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 56.2.0-4
|
||||
- Rebuilt for Python 3.10
|
||||
|
||||
* Tue Jun 01 2021 Python Maint <python-maint@redhat.com> - 56.2.0-3
|
||||
- Bootstrap for Python 3.10
|
||||
|
||||
* Tue Jun 01 2021 Python Maint <python-maint@redhat.com> - 56.2.0-2
|
||||
- Bootstrap for Python 3.10
|
||||
|
||||
* Mon May 17 2021 Miro Hrončok <mhroncok@redhat.com> - 56.2.0-1
|
||||
- Update to 56.2.0
|
||||
- Fixes rhbz#1958677
|
||||
|
||||
* Thu May 06 2021 Tomas Hrnciar <thrnciar@redhat.com> - 56.1.0-1
|
||||
- Update to 56.1.0
|
||||
|
||||
* Thu Apr 22 2021 Miro Hrončok <mhroncok@redhat.com> - 56.0.0-2
|
||||
- Provide python3-pkg_resources
|
||||
- Provide python3-pkg-resources
|
||||
|
||||
* Fri Apr 09 2021 Tomas Hrnciar <thrnciar@redhat.com> - 56.0.0-1
|
||||
- Update to 56.0.0
|
||||
|
||||
* Tue Mar 16 2021 Tomas Hrnciar <thrnciar@redhat.com> - 54.1.2-1
|
||||
- Update to 54.1.2
|
||||
|
||||
* Tue Feb 02 2021 Miro Hrončok <mhroncok@redhat.com> - 53.0.0-1
|
||||
- Update to 53.0.0
|
||||
- https://setuptools.readthedocs.io/en/latest/history.html#v53-0-0
|
||||
- Fixes: rhbz#1923249
|
||||
|
||||
* Tue Jan 26 2021 Lumír Balhar <lbalhar@redhat.com> - 52.0.0-1
|
||||
- Update to 52.0.0 (#1917060)
|
||||
- Removes easy_install module and executable
|
||||
|
||||
* Mon Jan 11 2021 Miro Hrončok <mhroncok@redhat.com> - 51.1.2-1
|
||||
- Update to 51.1.2
|
||||
- Removes tests from the wheel
|
||||
- https://setuptools.readthedocs.io/en/latest/history.html#v51-1-2
|
||||
- Fixes: rhbz#1914481
|
||||
|
||||
* Tue Dec 29 2020 Miro Hrončok <mhroncok@redhat.com> - 51.1.1-1
|
||||
- Update to 51.1.1
|
||||
- Fixes test failures with pip 20.3 as well as with pytest 6.2+
|
||||
- Fixes: rhbz#1909575
|
||||
|
||||
* Fri Dec 4 2020 Miro Hrončok <mhroncok@redhat.com> - 50.3.2-2
|
||||
- Disable tests in Fedora ELN (and RHEL)
|
||||
|
||||
* Tue Oct 20 2020 Tomas Hrnciar <thrnciar@redhat.com> - 50.3.2-1
|
||||
- Update to 50.3.2 (#1889093)
|
||||
|
||||
* Fri Sep 04 2020 Tomas Hrnciar <thrnciar@redhat.com> - 50.1.0-1
|
||||
- Update to 50.1.0 (#1873889)
|
||||
|
||||
* Fri Aug 21 2020 Petr Viktorin <pviktori@redhat.com> - 49.6.0-1
|
||||
- Update to 49.6.0 (#1862791)
|
||||
|
||||
* Wed Jul 29 2020 Miro Hrončok <mhroncok@redhat.com> - 49.1.3-1
|
||||
- Update to 49.1.3 (#1853597)
|
||||
- https://setuptools.readthedocs.io/en/latest/history.html#v49-1-3
|
||||
|
||||
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 47.3.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Fri Jun 26 2020 Miro Hrončok <mhroncok@redhat.com> - 47.3.1-1
|
||||
- Update to 47.3.1 (#1847049)
|
||||
- https://setuptools.readthedocs.io/en/latest/history.html#v47-3-1
|
||||
|
||||
* Mon Jun 01 2020 Charalampos Stratakis <cstratak@redhat.com> - 47.1.1-1
|
||||
- Update to 47.1.1 (#1841123)
|
||||
- https://setuptools.readthedocs.io/en/latest/history.html#v47-1-1
|
||||
|
||||
* Sun May 24 2020 Miro Hrončok <mhroncok@redhat.com> - 46.4.0-4
|
||||
- Rebuilt for Python 3.9
|
||||
|
||||
* Thu May 21 2020 Miro Hrončok <mhroncok@redhat.com> - 46.4.0-3
|
||||
- Bootstrap for Python 3.9
|
||||
|
||||
* Thu May 21 2020 Miro Hrončok <mhroncok@redhat.com> - 46.4.0-2
|
||||
- Bootstrap for Python 3.9
|
||||
|
||||
* Mon May 18 2020 Tomas Hrnciar <thrnciar@redhat.com> - 46.4.0-1
|
||||
- Update to 46.4.0 (#1835411)
|
||||
- https://setuptools.readthedocs.io/en/latest/history.html#v46-4-0
|
||||
|
||||
* Tue May 12 2020 Tomas Hrnciar <thrnciar@redhat.com> - 46.2.0-1
|
||||
- Update to 46.2.0 (#1833826)
|
||||
- https://setuptools.readthedocs.io/en/latest/history.html#v46-2-0
|
||||
|
||||
* Thu Mar 26 2020 Miro Hrončok <mhroncok@redhat.com> - 46.1.3-1
|
||||
- Upgrade to 46.1.3 (#1817189)
|
||||
- https://setuptools.readthedocs.io/en/latest/history.html#v46-1-3
|
||||
|
||||
* Tue Mar 10 2020 Miro Hrončok <mhroncok@redhat.com> - 46.0.0-1
|
||||
- Upgrade to 46.0.0 (#1811340)
|
||||
- https://setuptools.readthedocs.io/en/latest/history.html#v46-0-0
|
||||
|
||||
* Tue Feb 11 2020 Miro Hrončok <mhroncok@redhat.com> - 45.2.0-1
|
||||
- Upgrade to 45.2.0 (#1775943)
|
||||
- https://setuptools.readthedocs.io/en/latest/history.html#v45-2-0
|
||||
- No longer supports Python 2
|
||||
|
||||
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 41.6.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Mon Nov 04 2019 Tomas Orsava <torsava@redhat.com> - 41.6.0-1
|
||||
- Upgrade to 41.6.0 (#1758945).
|
||||
- https://setuptools.readthedocs.io/en/latest/history.html#v41-6-0
|
||||
- Disabled a failing upstream test: https://github.com/pypa/setuptools/issues/1896
|
||||
|
||||
* Tue Sep 03 2019 Randy Barlow <bowlofeggs@fedoraproject.org> - 41.2.0-1
|
||||
- Upgrade to 41.2.0 (#1742718).
|
||||
- https://setuptools.readthedocs.io/en/latest/history.html#v41-2-0
|
||||
|
||||
* Mon Aug 26 2019 Miro Hrončok <mhroncok@redhat.com> - 41.0.1-9
|
||||
- Move python2-setuptools to a separate package
|
||||
|
||||
* Sun Aug 18 2019 Miro Hrončok <mhroncok@redhat.com> - 41.0.1-8
|
||||
- Rebuilt for Python 3.8
|
||||
|
||||
* Wed Aug 14 2019 Miro Hrončok <mhroncok@redhat.com> - 41.0.1-7
|
||||
- Bootstrap for Python 3.8
|
||||
|
||||
* Wed Aug 14 2019 Miro Hrončok <mhroncok@redhat.com> - 41.0.1-6
|
||||
- Provide pythonXdist(setuptools) when bootstrapping
|
||||
|
||||
* Wed Aug 14 2019 Miro Hrončok <mhroncok@redhat.com> - 41.0.1-5
|
||||
- Bootstrap for Python 3.8
|
||||
|
||||
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 41.0.1-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Tue Jul 16 2019 Miro Hrončok <mhroncok@redhat.com> - 41.0.1-3
|
||||
- Make /usr/bin/easy_install Python 3
|
||||
- Drop obsoleted Obsoletes
|
||||
|
||||
* Fri Jun 21 2019 Petr Viktorin <pviktori@redhat.com> - 41.0.1-2
|
||||
- Remove optional test dependencies for Python 2
|
||||
- Skip test_virtualenv on Python 2
|
||||
|
||||
* Thu Apr 25 2019 Miro Hrončok <mhroncok@redhat.com> - 41.0.1-1
|
||||
- Update to 41.0.1 (#1695846)
|
||||
- https://github.com/pypa/setuptools/blob/v41.0.1/CHANGES.rst
|
||||
|
||||
* Tue Feb 05 2019 Miro Hrončok <mhroncok@redhat.com> - 40.8.0-1
|
||||
- Update to 40.8.0 (#1672756)
|
||||
- https://github.com/pypa/setuptools/blob/v40.8.0/CHANGES.rst
|
||||
|
||||
* Sun Feb 03 2019 Miro Hrončok <mhroncok@redhat.com> - 40.7.3-1
|
||||
- Hotfix update to 40.7.3 (#1672084)
|
||||
- https://github.com/pypa/setuptools/blob/v40.7.3/CHANGES.rst
|
||||
|
||||
* Sat Feb 02 2019 Miro Hrončok <mhroncok@redhat.com> - 40.7.2-1
|
||||
- Hotfix update to 40.7.2 (#1671608)
|
||||
- https://github.com/pypa/setuptools/blob/v40.7.2/CHANGES.rst
|
||||
|
||||
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 40.7.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Tue Jan 29 2019 Miro Hrončok <mhroncok@redhat.com> - 40.7.1-1
|
||||
- Hotfix update to 40.7.1 (#1670243)
|
||||
- https://github.com/pypa/setuptools/blob/v40.7.1/CHANGES.rst
|
||||
|
||||
* Mon Jan 28 2019 Miro Hrončok <mhroncok@redhat.com> - 40.7.0-1
|
||||
- Update to 40.7.0 (#1669876)
|
||||
- https://github.com/pypa/setuptools/blob/v40.7.0/CHANGES.rst
|
||||
|
||||
* Mon Sep 24 2018 Miro Hrončok <mhroncok@redhat.com> - 40.4.3-1
|
||||
- Update to 40.4.3 to fix dire DeprecationWarnings (#1627071)
|
||||
- List vendored libraries
|
||||
- https://github.com/pypa/setuptools/blob/v40.4.3/CHANGES.rst
|
||||
|
||||
* Wed Sep 19 2018 Randy Barlow <bowlofeggs@fedoraproject.org> - 40.4.1-1
|
||||
- Update to 40.4.1 (#1599307).
|
||||
- https://github.com/pypa/setuptools/blob/v40.4.1/CHANGES.rst
|
||||
|
||||
* Wed Aug 15 2018 Petr Viktorin <pviktori@redhat.com> - 39.2.0-7
|
||||
- Add a subpackage with wheels
|
||||
- Remove the python3 bcond
|
||||
- Remove macros for RHEL 6
|
||||
|
||||
* Thu Jul 19 2018 Miro Hrončok <mhroncok@redhat.com> - 39.2.0-6
|
||||
- Create /usr/local/lib/pythonX.Y when needed (#1576924)
|
||||
|
||||
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 39.2.0-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Mon Jun 18 2018 Miro Hrončok <mhroncok@redhat.com> - 39.2.0-4
|
||||
- Rebuilt for Python 3.7
|
||||
|
||||
* Wed Jun 13 2018 Miro Hrončok <mhroncok@redhat.com> - 39.2.0-3
|
||||
- Bootstrap for Python 3.7
|
||||
|
||||
* Wed Jun 13 2018 Miro Hrončok <mhroncok@redhat.com> - 39.2.0-2
|
||||
- Bootstrap for Python 3.7
|
||||
|
||||
* Wed May 23 2018 Charalampos Stratakis <cstratak@redhat.com> - 39.2.0-1
|
||||
- update to 39.2.0 Fixes bug #1572889
|
||||
|
||||
* Thu Jun 07 2018 Petr Viktorin <pviktori@redhat.com> - 39.0.1-2
|
||||
- Remove test requirements on python2 packages and some exotic packages
|
||||
- Skip tests on Python 2
|
||||
|
||||
* Tue Mar 20 2018 Charalampos Stratakis <cstratak@redhat.com> - 39.0.1-1
|
||||
- update to 39.0.1 Fixes bug #1531527
|
||||
|
||||
@ -876,7 +839,7 @@ Resolves: rhbz#1718032
|
||||
|
||||
* Thu Feb 04 2010 Toshio Kuratomi <toshio@fedoraproject.org> - 0.6.10-3
|
||||
- First build with python3 support enabled.
|
||||
|
||||
|
||||
* Fri Jan 29 2010 Toshio Kuratomi <toshio@fedoraproject.org> - 0.6.10-2
|
||||
- Really disable the python3 portion
|
||||
|
5
gating.yaml
Normal file
5
gating.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
--- !Policy
|
||||
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
14
python-setuptools.rpmlintrc
Normal file
14
python-setuptools.rpmlintrc
Normal file
@ -0,0 +1,14 @@
|
||||
# let's not report duplicate __init__s
|
||||
addFilter(r'W: files-duplicate .+__init__\.py ')
|
||||
|
||||
# setuptools and pkg_resources have duplicated vendored libraries
|
||||
# we might want to de-duplicate this somehow in the future, but not yet
|
||||
# regex a bit complex to allow arbitrary order
|
||||
addFilter(r'W: files-duplicate .+/(setuptools/_vendor/.+ .+/pkg_resources|pkg_resources/_vendor/.+ .+/setuptools)/_vendor/')
|
||||
|
||||
# When duplicate files are found, this errors is produced
|
||||
# as long as we filter out the warnings, we need to filter the error as well
|
||||
addFilter(r'E: files-duplicated-waste')
|
||||
|
||||
# no %doc in the wheel packages
|
||||
addFilter(r'python-setuptools-wheel.noarch: (E|W): no-documentation')
|
241
python-setuptools.spec
Normal file
241
python-setuptools.spec
Normal file
@ -0,0 +1,241 @@
|
||||
%global srcname setuptools
|
||||
|
||||
# used when bootstrapping new Python versions
|
||||
%bcond bootstrap 0
|
||||
|
||||
# Similar to what we have in pythonX.Y.spec files.
|
||||
# If enabled, provides unversioned executables and other stuff.
|
||||
# Disable it if you build this package in an alternative stack.
|
||||
%bcond main_python 1
|
||||
|
||||
# The original RHEL N+1 content set is defined by (build)dependencies
|
||||
# of the packages in Fedora ELN. Hence we disable tests and documentation here
|
||||
# to prevent pulling many unwanted packages in.
|
||||
# We intentionally keep this enabled on EPEL.
|
||||
%bcond tests %[%{without bootstrap} && (%{defined fedora} || %{defined epel})]
|
||||
|
||||
%global python_wheel_name %{srcname}-%{version}-py3-none-any.whl
|
||||
|
||||
Name: python-setuptools
|
||||
# When updating, update the bundled libraries versions bellow!
|
||||
Version: 69.0.3
|
||||
Release: %autorelease
|
||||
Summary: Easily build and distribute Python packages
|
||||
# setuptools is MIT
|
||||
# platformdirs is MIT
|
||||
# more-itertools is MIT
|
||||
# ordered-set is MIT
|
||||
# packaging is BSD-2-Clause OR Apache-2.0
|
||||
# importlib-metadata is Apache-2.0
|
||||
# importlib-resources is Apache-2.0
|
||||
# jaraco.text is MIT
|
||||
# typing-extensions is Python-2.0.1
|
||||
# zipp is MIT
|
||||
# nspektr is MIT
|
||||
# tomli is MIT
|
||||
# the setuptools logo is MIT
|
||||
License: MIT AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0) AND Python-2.0.1
|
||||
URL: https://pypi.python.org/pypi/%{srcname}
|
||||
Source0: %{pypi_source %{srcname} %{version}}
|
||||
|
||||
# Some test deps are optional and either not desired or not available in Fedora, thus this patch removes them.
|
||||
Patch: Remove-optional-or-unpackaged-test-deps.patch
|
||||
|
||||
# The `setup.py install` deprecation notice might be confusing for RPM packagers
|
||||
# adjust it, but only when $RPM_BUILD_ROOT is set
|
||||
Patch: Adjust-the-setup.py-install-deprecation-message.patch
|
||||
|
||||
# Security fix for CVE-2024-6345
|
||||
# Remote code execution via download functions in the package_index module
|
||||
# Tracking bug: https://bugzilla.redhat.com/show_bug.cgi?id=2297771
|
||||
# Upstream solution: https://github.com/pypa/setuptools/pull/4332
|
||||
# Patch simplified because upstream doesn't support SVN anymore.
|
||||
Patch: CVE-2024-6345.patch
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
BuildRequires: python%{python3_pkgversion}-devel
|
||||
|
||||
%if %{with tests}
|
||||
BuildRequires: gcc
|
||||
%endif
|
||||
|
||||
# python3 bootstrap: this is built before the final build of python3, which
|
||||
# adds the dependency on python3-rpm-generators, so we require it manually
|
||||
# The minimal version is for bundled provides verification script to accept multiple files as input
|
||||
BuildRequires: python3-rpm-generators >= 12-8
|
||||
|
||||
%if %{without bootstrap}
|
||||
BuildRequires: pyproject-rpm-macros >= 0-44
|
||||
# Not to use the pre-generated egg-info, we use setuptools from previous build to generate it
|
||||
BuildRequires: python%{python3_pkgversion}-setuptools
|
||||
%endif
|
||||
|
||||
%description
|
||||
Setuptools is a collection of enhancements to the Python distutils that allow
|
||||
you to more easily build and distribute Python packages, especially ones that
|
||||
have dependencies on other packages.
|
||||
|
||||
This package also contains the runtime components of setuptools, necessary to
|
||||
execute the software that requires pkg_resources.
|
||||
|
||||
# Virtual provides for the packages bundled by setuptools.
|
||||
# Bundled packages are defined in multiple files. Generate the list with:
|
||||
# %%{_rpmconfigdir}/pythonbundles.py --namespace 'python%%{python3_pkgversion}dist' */_vendor/vendored.txt
|
||||
%global bundled %{expand:
|
||||
Provides: bundled(python%{python3_pkgversion}dist(importlib-metadata)) = 6
|
||||
Provides: bundled(python%{python3_pkgversion}dist(importlib-resources)) = 5.10.2
|
||||
Provides: bundled(python%{python3_pkgversion}dist(jaraco-text)) = 3.7
|
||||
Provides: bundled(python%{python3_pkgversion}dist(more-itertools)) = 8.8
|
||||
Provides: bundled(python%{python3_pkgversion}dist(ordered-set)) = 3.1.1
|
||||
Provides: bundled(python%{python3_pkgversion}dist(packaging)) = 23.1
|
||||
Provides: bundled(python%{python3_pkgversion}dist(platformdirs)) = 2.6.2
|
||||
Provides: bundled(python%{python3_pkgversion}dist(tomli)) = 2.0.1
|
||||
Provides: bundled(python%{python3_pkgversion}dist(typing-extensions)) = 4.0.1
|
||||
Provides: bundled(python%{python3_pkgversion}dist(typing-extensions)) = 4.4
|
||||
Provides: bundled(python%{python3_pkgversion}dist(zipp)) = 3.7
|
||||
}
|
||||
|
||||
%package -n python%{python3_pkgversion}-setuptools
|
||||
Summary: Easily build and distribute Python 3 packages
|
||||
%{bundled}
|
||||
|
||||
# For users who might see ModuleNotFoundError: No module named 'pkg_resoureces'
|
||||
# NB: Those are two different provides: one contains underscore, the other hyphen
|
||||
%py_provides python%{python3_pkgversion}-pkg_resources
|
||||
%py_provides python%{python3_pkgversion}-pkg-resources
|
||||
|
||||
%description -n python%{python3_pkgversion}-setuptools
|
||||
Setuptools is a collection of enhancements to the Python 3 distutils that allow
|
||||
you to more easily build and distribute Python 3 packages, especially ones that
|
||||
have dependencies on other packages.
|
||||
|
||||
This package also contains the runtime components of setuptools, necessary to
|
||||
execute the software that requires pkg_resources.
|
||||
|
||||
%if %{without bootstrap}
|
||||
%package -n %{python_wheel_pkg_prefix}-%{srcname}-wheel
|
||||
Summary: The setuptools wheel
|
||||
%{bundled}
|
||||
|
||||
%description -n %{python_wheel_pkg_prefix}-%{srcname}-wheel
|
||||
A Python wheel of setuptools to use with venv.
|
||||
%endif
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{srcname}-%{version}
|
||||
%if %{without bootstrap}
|
||||
# If we don't have setuptools installed yet, we use the pre-generated .egg-info
|
||||
# See https://github.com/pypa/setuptools/pull/2543
|
||||
# And https://github.com/pypa/setuptools/issues/2550
|
||||
# WARNING: We cannot remove this folder since Python 3.11.1,
|
||||
# see https://github.com/pypa/setuptools/issues/3761
|
||||
#rm -r %%{srcname}.egg-info
|
||||
%endif
|
||||
|
||||
# Strip shbang
|
||||
find setuptools pkg_resources -name \*.py | xargs sed -i -e '1 {/^#!\//d}'
|
||||
# Remove bundled exes
|
||||
rm -f setuptools/*.exe
|
||||
# Don't ship these
|
||||
rm -r docs/conf.py
|
||||
|
||||
%if %{without bootstrap}
|
||||
%generate_buildrequires
|
||||
%pyproject_buildrequires -r %{?with_tests:-x testing}
|
||||
%endif
|
||||
|
||||
%build
|
||||
%if %{with bootstrap}
|
||||
%py3_build
|
||||
%else
|
||||
%pyproject_wheel
|
||||
%endif
|
||||
|
||||
|
||||
%install
|
||||
%if %{with bootstrap}
|
||||
# The setup.py install command tries to import distutils
|
||||
# but the distutils-precedence.pth file is not yet respected
|
||||
# and Python 3.12+ no longer has distutils in the standard library.
|
||||
ln -s setuptools/_distutils distutils
|
||||
PYTHONPATH=$PWD %py3_install
|
||||
unlink distutils
|
||||
%else
|
||||
%pyproject_install
|
||||
%pyproject_save_files setuptools pkg_resources _distutils_hack
|
||||
%endif
|
||||
|
||||
# https://github.com/pypa/setuptools/issues/2709
|
||||
rm -rf %{buildroot}%{python3_sitelib}/pkg_resources/tests/
|
||||
%if %{without bootstrap}
|
||||
sed -i '/\/pkg_resources\/tests\b/d' %{pyproject_files}
|
||||
|
||||
# Install the wheel for the python-setuptools-wheel package
|
||||
mkdir -p %{buildroot}%{python_wheel_dir}
|
||||
install -p %{_pyproject_wheeldir}/%{python_wheel_name} -t %{buildroot}%{python_wheel_dir}
|
||||
%endif
|
||||
|
||||
|
||||
%check
|
||||
# Verify bundled provides are up to date
|
||||
%{_rpmconfigdir}/pythonbundles.py */_vendor/vendored.txt --namespace 'python%{python3_pkgversion}dist' --compare-with '%{bundled}'
|
||||
|
||||
# Regression test, the tests are not supposed to be installed
|
||||
test ! -d %{buildroot}%{python3_sitelib}/pkg_resources/tests
|
||||
test ! -d %{buildroot}%{python3_sitelib}/setuptools/tests
|
||||
|
||||
%if %{without bootstrap}
|
||||
# Regression test, the wheel should not be larger than 900 kB
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1914481#c3
|
||||
test $(stat --format %%s %{_pyproject_wheeldir}/%{python_wheel_name}) -lt 900000
|
||||
|
||||
%pyproject_check_import
|
||||
%endif
|
||||
|
||||
%if %{with tests}
|
||||
# https://github.com/pypa/setuptools/discussions/2607
|
||||
rm pyproject.toml
|
||||
|
||||
# Upstream tests
|
||||
# --ignore=setuptools/tests/test_integration.py
|
||||
# --ignore=setuptools/tests/integration/
|
||||
# --ignore=setuptools/tests/config/test_apply_pyprojecttoml.py
|
||||
# -k "not test_pip_upgrade_from_source"
|
||||
# the tests require internet connection
|
||||
# --ignore=setuptools/tests/test_editable_install.py
|
||||
# the tests require pip-run which we don't have in Fedora
|
||||
PRE_BUILT_SETUPTOOLS_WHEEL=%{_pyproject_wheeldir}/%{python_wheel_name} \
|
||||
PYTHONPATH=$(pwd) %pytest \
|
||||
--ignore=setuptools/tests/test_integration.py \
|
||||
--ignore=setuptools/tests/integration/ \
|
||||
--ignore=setuptools/tests/test_editable_install.py \
|
||||
--ignore=setuptools/tests/config/test_apply_pyprojecttoml.py \
|
||||
--ignore=tools/finalize.py \
|
||||
-k "not test_pip_upgrade_from_source and not test_setup_requires_honors_fetch_params"
|
||||
%endif # with tests
|
||||
|
||||
|
||||
%files -n python%{python3_pkgversion}-setuptools %{?!with_bootstrap:-f %{pyproject_files}}
|
||||
%license LICENSE
|
||||
%doc docs/* NEWS.rst README.rst
|
||||
%{python3_sitelib}/distutils-precedence.pth
|
||||
%if %{with bootstrap}
|
||||
%{python3_sitelib}/setuptools-%{version}-py%{python3_version}.egg-info/
|
||||
%{python3_sitelib}/pkg_resources/
|
||||
%{python3_sitelib}/setuptools/
|
||||
%{python3_sitelib}/_distutils_hack/
|
||||
%endif
|
||||
|
||||
%if %{without bootstrap}
|
||||
%files -n %{python_wheel_pkg_prefix}-%{srcname}-wheel
|
||||
%license LICENSE
|
||||
# we own the dir for simplicity
|
||||
%dir %{python_wheel_dir}/
|
||||
%{python_wheel_dir}/%{python_wheel_name}
|
||||
%endif
|
||||
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
1
sources
Normal file
1
sources
Normal file
@ -0,0 +1 @@
|
||||
SHA512 (setuptools-69.0.3.tar.gz) = 11df934931f4b73f7e07ea5713479593c6baa134d423556b2ae7aff0f1e5bdbdee1f5b516131adb169c838231ceb0293441fbf275ef7030dabecf74122565b6d
|
36
tests/tests.yml
Normal file
36
tests/tests.yml
Normal file
@ -0,0 +1,36 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
roles:
|
||||
- role: standard-test-basic
|
||||
tags:
|
||||
- classic
|
||||
repositories:
|
||||
- repo: "https://gitlab.com/redhat/centos-stream/tests/python.git"
|
||||
dest: "python"
|
||||
- repo: "https://gitlab.com/redhat/centos-stream/rpms/pyproject-rpm-macros.git"
|
||||
dest: "pyproject-rpm-macros"
|
||||
tests:
|
||||
- smoke312:
|
||||
dir: python/smoke
|
||||
run: VERSION=3.12 ./venv.sh
|
||||
- smoke312_virtualenv:
|
||||
dir: python/smoke
|
||||
run: VERSION=3.12 METHOD=virtualenv ./venv.sh
|
||||
- pyproject_pytest:
|
||||
dir: pyproject-rpm-macros/tests
|
||||
run: ./mocktest.sh python-pytest
|
||||
- pyproject_pluggy:
|
||||
dir: pyproject-rpm-macros/tests
|
||||
run: ./mocktest.sh python-pluggy
|
||||
- import_test:
|
||||
run: python3 -c "import setuptools"
|
||||
required_packages:
|
||||
- https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm
|
||||
- gcc
|
||||
- virtualenv
|
||||
- python3.12
|
||||
- python3-devel
|
||||
- tox
|
||||
- mock
|
||||
- rpmdevtools
|
||||
- rpm-build
|
Loading…
Reference in New Issue
Block a user