Compare commits
No commits in common. "c8-stream-3.8" and "stream-python39-3.9-rhel-8.10.0" have entirely different histories.
c8-stream-
...
stream-pyt
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
SOURCES/setuptools-41.6.0.zip
|
/setuptools-50.3.2.zip
|
||||||
|
|||||||
@ -1 +0,0 @@
|
|||||||
79f4ba0be27967d8f02b0d21a1e34fba9432481d SOURCES/setuptools-41.6.0.zip
|
|
||||||
13
CVE-2022-40897.patch
Normal file
13
CVE-2022-40897.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/setuptools/package_index.py b/setuptools/package_index.py
|
||||||
|
index 123e958..a90b810 100644
|
||||||
|
--- a/setuptools/package_index.py
|
||||||
|
+++ b/setuptools/package_index.py
|
||||||
|
@@ -215,7 +215,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
|
||||||
|
|
||||||
|
|
||||||
159
CVE-2024-6345.patch
Normal file
159
CVE-2024-6345.patch
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
From 39a1aa65fb4163d917131b4814d4c2dd2bf19677 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lumir Balhar <lbalhar@redhat.com>
|
||||||
|
Date: Wed, 24 Jul 2024 12:43:20 +0200
|
||||||
|
Subject: [PATCH] CVE-2024-6345
|
||||||
|
|
||||||
|
---
|
||||||
|
setuptools/package_index.py | 23 +++++++++-------------
|
||||||
|
setuptools/tests/test_packageindex.py | 28 +++++++++++++--------------
|
||||||
|
2 files changed, 23 insertions(+), 28 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/setuptools/package_index.py b/setuptools/package_index.py
|
||||||
|
index 123e9582b..07cc8924b 100644
|
||||||
|
--- 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
|
||||||
|
@@ -860,7 +861,7 @@ class PackageIndex(Environment):
|
||||||
|
def _download_svn(self, url, filename):
|
||||||
|
warnings.warn("SVN download support is deprecated", UserWarning)
|
||||||
|
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:]:
|
||||||
|
@@ -869,14 +870,14 @@ class PackageIndex(Environment):
|
||||||
|
if auth:
|
||||||
|
if ':' in auth:
|
||||||
|
user, pw = auth.split(':', 1)
|
||||||
|
- creds = " --username=%s --password=%s" % (user, pw)
|
||||||
|
+ creds = [f"--username={user}", f"--password={pw}"]
|
||||||
|
else:
|
||||||
|
- creds = " --username=" + auth
|
||||||
|
+ creds = [f"--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
|
||||||
|
@@ -902,14 +903,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
|
||||||
|
|
||||||
|
@@ -918,14 +916,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 8e9435efe..9289b9032 100644
|
||||||
|
--- a/setuptools/tests/test_packageindex.py
|
||||||
|
+++ b/setuptools/tests/test_packageindex.py
|
||||||
|
@@ -197,56 +197,56 @@ 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'
|
||||||
|
index = setuptools.package_index.PackageIndex()
|
||||||
|
|
||||||
|
with pytest.warns(UserWarning):
|
||||||
|
- 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 = (
|
||||||
|
'svn checkout -q '
|
||||||
|
'svn+https://svn.example/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)
|
||||||
|
|
||||||
|
|
||||||
|
class TestContentCheckers:
|
||||||
|
--
|
||||||
|
2.45.2
|
||||||
|
|
||||||
30
CVE-2025-47273.patch
Normal file
30
CVE-2025-47273.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
From ff1c62ede76e29a9d00bbbad266afa59ee153e51 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Jason R. Coombs" <jaraco@jaraco.com>
|
||||||
|
Date: Sat, 19 Apr 2025 13:03:47 -0400
|
||||||
|
Subject: [PATCH] Add a check to ensure the name resolves relative to the
|
||||||
|
tmpdir.
|
||||||
|
|
||||||
|
Closes #4946
|
||||||
|
|
||||||
|
---
|
||||||
|
setuptools/package_index.py | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/setuptools/package_index.py b/setuptools/package_index.py
|
||||||
|
index 1d3e5b4..79953f8 100755
|
||||||
|
--- a/setuptools/package_index.py
|
||||||
|
+++ b/setuptools/package_index.py
|
||||||
|
@@ -808,6 +808,10 @@ class PackageIndex(Environment):
|
||||||
|
|
||||||
|
filename = os.path.join(tmpdir, name)
|
||||||
|
|
||||||
|
+ # ensure path resolves within the tmpdir
|
||||||
|
+ if not filename.startswith(str(tmpdir)):
|
||||||
|
+ raise ValueError("Invalid filename {filename}".format(filename = filename))
|
||||||
|
+
|
||||||
|
# Download the file
|
||||||
|
#
|
||||||
|
if scheme == 'svn' or scheme.startswith('svn+'):
|
||||||
|
--
|
||||||
|
2.49.0
|
||||||
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
@ -6,29 +6,44 @@
|
|||||||
%bcond_with tests
|
%bcond_with tests
|
||||||
|
|
||||||
%if %{without bootstrap}
|
%if %{without bootstrap}
|
||||||
%global python_wheelname %{srcname}-%{version}-py2.py3-none-any.whl
|
%global python_wheelname %{srcname}-%{version}-py3-none-any.whl
|
||||||
%global python3_record %{python3_sitelib}/%{srcname}-%{version}.dist-info/RECORD
|
%global python3_record %{python3_sitelib}/%{srcname}-%{version}.dist-info/RECORD
|
||||||
%endif
|
%endif
|
||||||
%global python_wheeldir %{_datadir}/python38-wheels
|
%global python_wheeldir %{_datadir}/python%{python3_pkgversion}-wheels
|
||||||
|
|
||||||
Name: python3x-setuptools
|
Name: python3x-setuptools
|
||||||
# When updating, update the bundled libraries versions bellow!
|
# When updating, update the bundled libraries versions bellow!
|
||||||
Version: 41.6.0
|
Version: 50.3.2
|
||||||
Release: 5%{?dist}
|
Release: 7%{?dist}
|
||||||
Summary: Easily build and distribute Python packages
|
Summary: Easily build and distribute Python packages
|
||||||
# setuptools is MIT
|
# setuptools is MIT
|
||||||
|
# appdirs is MIT
|
||||||
# packaging is BSD or ASL 2.0
|
# packaging is BSD or ASL 2.0
|
||||||
# pyparsing is MIT
|
# pyparsing is MIT
|
||||||
# six is MIT
|
# the setuptools logo has unknown license and possible TM problems,
|
||||||
|
# but the sdist **does not** contain it,
|
||||||
|
# see https://github.com/pypa/setuptools/issues/2227
|
||||||
License: MIT and (BSD or ASL 2.0)
|
License: MIT and (BSD or ASL 2.0)
|
||||||
URL: https://pypi.python.org/pypi/%{srcname}
|
URL: https://pypi.python.org/pypi/%{srcname}
|
||||||
Source0: %{pypi_source %{srcname} %{version} zip}
|
Source0: %{pypi_source %{srcname} %{version} zip}
|
||||||
|
|
||||||
# In Fedora, sudo setup.py install installs to /usr/local/lib/pythonX.Y/site-packages
|
# Security fix for CVE-2022-40897
|
||||||
# But pythonX doesn't own that dir, that would be against FHS
|
# Regular Expression Denial of Service (ReDoS) in package_index.py
|
||||||
# We need to create it if it doesn't exist
|
# Resolved upstream: https://github.com/pypa/setuptools/commit/43a9c9bfa6aa626ec2a22540bea28d2ca77964be
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1576924
|
# The patch is backported without test because that requires pytest.timeout.
|
||||||
Patch0: create-site-packages.patch
|
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
|
||||||
|
|
||||||
|
# Security fix for CVE-2025-47273
|
||||||
|
# Path traversal in PackageIndex.download leads to Arbitrary File Write
|
||||||
|
# Upstream solution: https://github.com/pypa/setuptools/pull/4951/
|
||||||
|
Patch3: CVE-2025-47273.patch
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
# Exclude i686 arch. Due to a modularity issue it's being added to the
|
# Exclude i686 arch. Due to a modularity issue it's being added to the
|
||||||
@ -36,20 +51,23 @@ BuildArch: noarch
|
|||||||
# See: https://projects.engineering.redhat.com/browse/RCM-72605
|
# See: https://projects.engineering.redhat.com/browse/RCM-72605
|
||||||
ExcludeArch: i686
|
ExcludeArch: i686
|
||||||
|
|
||||||
BuildRequires: gcc
|
|
||||||
|
|
||||||
BuildRequires: python%{python3_pkgversion}-devel
|
BuildRequires: python%{python3_pkgversion}-devel
|
||||||
BuildRequires: python%{python3_pkgversion}-rpm-macros
|
BuildRequires: python%{python3_pkgversion}-rpm-macros
|
||||||
%if %{with tests}
|
%if %{with tests}
|
||||||
|
BuildRequires: gcc
|
||||||
BuildRequires: python%{python3_pkgversion}-pip
|
BuildRequires: python%{python3_pkgversion}-pip
|
||||||
BuildRequires: python%{python3_pkgversion}-pytest
|
BuildRequires: python%{python3_pkgversion}-pytest
|
||||||
BuildRequires: python%{python3_pkgversion}-mock
|
BuildRequires: python%{python3_pkgversion}-mock
|
||||||
BuildRequires: python%{python3_pkgversion}-pytest-fixture-config
|
BuildRequires: python%{python3_pkgversion}-pytest-fixture-config
|
||||||
BuildRequires: python%{python3_pkgversion}-pytest-virtualenv
|
BuildRequires: python%{python3_pkgversion}-pytest-virtualenv
|
||||||
|
BuildRequires: python%{python3_pkgversion}-jaraco-envs
|
||||||
%endif # with tests
|
%endif # with tests
|
||||||
%if %{without bootstrap}
|
%if %{without bootstrap}
|
||||||
BuildRequires: python%{python3_pkgversion}-pip
|
BuildRequires: python%{python3_pkgversion}-pip
|
||||||
BuildRequires: python%{python3_pkgversion}-wheel
|
BuildRequires: python%{python3_pkgversion}-wheel
|
||||||
|
# python3 bootstrap: this is built before the final build of python3, which
|
||||||
|
# adds the dependency on python3-rpm-generators, so we require it manually
|
||||||
|
BuildRequires: python3-rpm-generators
|
||||||
%endif # without bootstrap
|
%endif # without bootstrap
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -58,20 +76,20 @@ you to more easily build and distribute Python packages, especially ones that
|
|||||||
have dependencies on other packages.
|
have dependencies on other packages.
|
||||||
|
|
||||||
This package also contains the runtime components of setuptools, necessary to
|
This package also contains the runtime components of setuptools, necessary to
|
||||||
execute the software that requires pkg_resources.py.
|
execute the software that requires pkg_resources.
|
||||||
|
|
||||||
# Virtual provides for the packages bundled by setuptools.
|
# Virtual provides for the packages bundled by setuptools.
|
||||||
# You can find the versions in setuptools/setuptools/_vendor/vendored.txt
|
# Copied from Fedora where you can generate it with:
|
||||||
%global bundled() %{expand:
|
# %%{_rpmconfigdir}/pythonbundles.py --namespace 'python%%{python3_pkgversion}dist' pkg_resources/_vendor/vendored.txt
|
||||||
Provides: bundled(python%{1}dist(packaging)) = 16.8
|
%global bundled %{expand:
|
||||||
Provides: bundled(python%{1}dist(pyparsing)) = 2.2.1
|
Provides: bundled(python%{python3_version}dist(appdirs)) = 1.4.3
|
||||||
Provides: bundled(python%{1}dist(six)) = 1.10.0
|
Provides: bundled(python%{python3_version}dist(packaging)) = 20.4
|
||||||
|
Provides: bundled(python%{python3_version}dist(pyparsing)) = 2.2.1
|
||||||
}
|
}
|
||||||
|
|
||||||
%package -n python%{python3_pkgversion}-setuptools
|
%package -n python%{python3_pkgversion}-setuptools
|
||||||
Summary: Easily build and distribute Python 3 packages
|
Summary: Easily build and distribute Python 3 packages
|
||||||
%{?python_provide:%python_provide python%{python3_pkgversion}-setuptools}
|
%{bundled}
|
||||||
%{bundled 3.8}
|
|
||||||
|
|
||||||
%if %{with bootstrap}
|
%if %{with bootstrap}
|
||||||
Provides: python%{python3_version}dist(setuptools) = %{version}
|
Provides: python%{python3_version}dist(setuptools) = %{version}
|
||||||
@ -79,10 +97,10 @@ Provides: python%{python3_version}dist(setuptools) = %{version}
|
|||||||
|
|
||||||
# Require alternatives version that implements the --keep-foreign flag
|
# Require alternatives version that implements the --keep-foreign flag
|
||||||
Requires(postun): alternatives >= 1.19.1-1
|
Requires(postun): alternatives >= 1.19.1-1
|
||||||
# python38 installs the alternatives master symlink to which we attach a slave
|
# python39 installs the alternatives master symlink to which we attach a slave
|
||||||
Requires: python38
|
Requires: python%{python3_pkgversion}
|
||||||
Requires(post): python38
|
Requires(post): python%{python3_pkgversion}
|
||||||
Requires(postun): python38
|
Requires(postun): python%{python3_pkgversion}
|
||||||
|
|
||||||
|
|
||||||
%description -n python%{python3_pkgversion}-setuptools
|
%description -n python%{python3_pkgversion}-setuptools
|
||||||
@ -91,12 +109,12 @@ you to more easily build and distribute Python 3 packages, especially ones that
|
|||||||
have dependencies on other packages.
|
have dependencies on other packages.
|
||||||
|
|
||||||
This package also contains the runtime components of setuptools, necessary to
|
This package also contains the runtime components of setuptools, necessary to
|
||||||
execute the software that requires pkg_resources.py.
|
execute the software that requires pkg_resources.
|
||||||
|
|
||||||
%if %{without bootstrap}
|
%if %{without bootstrap}
|
||||||
%package -n python%{python3_pkgversion}-setuptools-wheel
|
%package -n python%{python3_pkgversion}-setuptools-wheel
|
||||||
Summary: The setuptools wheel
|
Summary: The setuptools wheel
|
||||||
%{bundled 3.8}
|
%{bundled}
|
||||||
|
|
||||||
%description -n python%{python3_pkgversion}-setuptools-wheel
|
%description -n python%{python3_pkgversion}-setuptools-wheel
|
||||||
A Python wheel of setuptools to use with venv.
|
A Python wheel of setuptools to use with venv.
|
||||||
@ -113,8 +131,9 @@ find setuptools pkg_resources -name \*.py | xargs sed -i -e '1 {/^#!\//d}'
|
|||||||
rm -f setuptools/*.exe
|
rm -f setuptools/*.exe
|
||||||
# These tests require internet connection
|
# These tests require internet connection
|
||||||
rm setuptools/tests/test_integration.py
|
rm setuptools/tests/test_integration.py
|
||||||
# Spurious executable perm https://github.com/pypa/setuptools/pull/1441
|
# We don't do linting or coverage here
|
||||||
chmod -x README.rst
|
sed -i pytest.ini -e 's/ --flake8//' \
|
||||||
|
-e 's/ --cov//'
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# Warning, different bootstrap meaning here, has nothing to do with our bcond
|
# Warning, different bootstrap meaning here, has nothing to do with our bcond
|
||||||
@ -136,7 +155,9 @@ chmod -x README.rst
|
|||||||
%py3_install
|
%py3_install
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
rm -rf %{buildroot}%{python3_sitelib}/setuptools/tests
|
# This is not installed (in 45.2.0 anyway), but better be safe than sorry
|
||||||
|
rm -rf %{buildroot}%{python3_sitelib}/{setuptools,pkg_resources}/tests
|
||||||
|
|
||||||
%if %{without bootstrap}
|
%if %{without bootstrap}
|
||||||
sed -i '/^setuptools\/tests\//d' %{buildroot}%{python3_record}
|
sed -i '/^setuptools\/tests\//d' %{buildroot}%{python3_record}
|
||||||
%endif
|
%endif
|
||||||
@ -144,7 +165,7 @@ sed -i '/^setuptools\/tests\//d' %{buildroot}%{python3_record}
|
|||||||
find %{buildroot}%{python3_sitelib} -name '*.exe' | xargs rm -f
|
find %{buildroot}%{python3_sitelib} -name '*.exe' | xargs rm -f
|
||||||
|
|
||||||
# Don't ship these
|
# Don't ship these
|
||||||
rm -r docs/{Makefile,conf.py,_*}
|
rm -r docs/{conf.py,_*}
|
||||||
|
|
||||||
%if %{without bootstrap}
|
%if %{without bootstrap}
|
||||||
mkdir -p %{buildroot}%{python_wheeldir}
|
mkdir -p %{buildroot}%{python_wheeldir}
|
||||||
@ -161,26 +182,23 @@ touch %{buildroot}%{_bindir}/easy_install-3
|
|||||||
|
|
||||||
%if %{with tests}
|
%if %{with tests}
|
||||||
%check
|
%check
|
||||||
# --ignore=pavement.py: No python3-paver in Fedora
|
# Upstream tests
|
||||||
|
# --ignore=pavement.py:
|
||||||
# pavement.py is only used by upstream to do releases and vendoring, we don't ship it
|
# pavement.py is only used by upstream to do releases and vendoring, we don't ship it
|
||||||
# --deselect=setuptools/tests/test_setuptools.py::TestDepends::testRequire
|
PYTHONPATH=$(pwd) %pytest --ignore=pavement.py
|
||||||
# Test failure reported upstream: https://github.com/pypa/setuptools/issues/1896
|
|
||||||
PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=$(pwd) pytest-%{python3_version} \
|
|
||||||
--ignore=pavement.py \
|
|
||||||
--deselect=setuptools/tests/test_setuptools.py::TestDepends::testRequire
|
|
||||||
%endif # with tests
|
%endif # with tests
|
||||||
|
|
||||||
|
|
||||||
%post -n python%{python3_pkgversion}-setuptools
|
%post -n python%{python3_pkgversion}-setuptools
|
||||||
alternatives --add-slave python3 %{_bindir}/python3.8 \
|
alternatives --add-slave python3 %{_bindir}/python%{python3_version} \
|
||||||
%{_bindir}/easy_install-3 \
|
%{_bindir}/easy_install-3 \
|
||||||
easy_install-3 \
|
easy_install-3 \
|
||||||
%{_bindir}/easy_install-3.8 \
|
%{_bindir}/easy_install-%{python3_version} \
|
||||||
|
|
||||||
%postun -n python%{python3_pkgversion}-setuptools
|
%postun -n python%{python3_pkgversion}-setuptools
|
||||||
# Do this only during uninstall process (not during update)
|
# Do this only during uninstall process (not during update)
|
||||||
if [ $1 -eq 0 ]; then
|
if [ $1 -eq 0 ]; then
|
||||||
alternatives --keep-foreign --remove-slave python3 %{_bindir}/python3.8 \
|
alternatives --keep-foreign --remove-slave python3 %{_bindir}/python%{python3_version} \
|
||||||
easy_install-3
|
easy_install-3
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -191,6 +209,8 @@ fi
|
|||||||
%{python3_sitelib}/easy_install.py
|
%{python3_sitelib}/easy_install.py
|
||||||
%{python3_sitelib}/pkg_resources/
|
%{python3_sitelib}/pkg_resources/
|
||||||
%{python3_sitelib}/setuptools*/
|
%{python3_sitelib}/setuptools*/
|
||||||
|
%{python3_sitelib}/_distutils_hack/
|
||||||
|
%{python3_sitelib}/distutils-precedence.pth
|
||||||
%{python3_sitelib}/__pycache__/*
|
%{python3_sitelib}/__pycache__/*
|
||||||
%{_bindir}/easy_install-3.*
|
%{_bindir}/easy_install-3.*
|
||||||
%ghost %{_bindir}/easy_install-3
|
%ghost %{_bindir}/easy_install-3
|
||||||
@ -205,19 +225,85 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Mon Aug 02 2021 Tomas Orsava <torsava@redhat.com> - 41.6.0-5
|
* Mon Aug 04 2025 Tomáš Hrnčiar <thrnciar@redhat.com> - 50.3.2-7
|
||||||
|
- Security fix for CVE-2025-47273
|
||||||
|
Resolves: RHEL-104339
|
||||||
|
|
||||||
|
* Thu Jul 25 2024 Charalampos Stratakis <cstratak@redhat.com> - 50.3.2-6
|
||||||
|
- Security fix for CVE-2024-6345
|
||||||
|
Resolves: RHEL-50493
|
||||||
|
|
||||||
|
* Tue Oct 03 2023 Lumír Balhar <lbalhar@redhat.com> - 50.3.2-5
|
||||||
|
- Fix for CVE-2022-40897
|
||||||
|
Resolves: RHEL-9764
|
||||||
|
|
||||||
|
* Thu Aug 05 2021 Tomas Orsava <torsava@redhat.com> - 50.3.2-4
|
||||||
- Adjusted the postun scriptlets to enable upgrading to RHEL 9
|
- Adjusted the postun scriptlets to enable upgrading to RHEL 9
|
||||||
- Resolves: rhbz#1933055
|
- Resolves: rhbz#1933055
|
||||||
|
|
||||||
* Mon Mar 09 2020 Tomas Orsava <torsava@redhat.com> - 41.6.0-4
|
* Tue Jan 05 2021 Tomas Orsava <torsava@redhat.com> - 50.3.2-3
|
||||||
- Implement the alternatives system for the executables
|
- Convert from Fedora to the python39 module in RHEL8
|
||||||
- Resolves: rhbz#1807041
|
- Resolves: rhbz#1877430
|
||||||
|
|
||||||
* Fri Dec 13 2019 Tomas Orsava <torsava@redhat.com> - 41.6.0-3
|
* Fri Dec 4 2020 Miro Hrončok <mhroncok@redhat.com> - 50.3.2-2
|
||||||
- Exclude unsupported i686 arch
|
- Disable tests in Fedora ELN (and RHEL)
|
||||||
|
|
||||||
* Mon Nov 18 2019 Tomas Orsava <torsava@redhat.com> - 41.6.0-2
|
* Tue Oct 20 2020 Tomas Hrnciar <thrnciar@redhat.com> - 50.3.2-1
|
||||||
- Convert to RHEL8 python38 module
|
- 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
|
* Mon Nov 04 2019 Tomas Orsava <torsava@redhat.com> - 41.6.0-1
|
||||||
- Upgrade to 41.6.0 (#1758945).
|
- Upgrade to 41.6.0 (#1758945).
|
||||||
Loading…
Reference in New Issue
Block a user