diff --git a/.gitignore b/.gitignore index b0ab6c2..6ace296 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/websockets-11.0.3.tar.gz +SOURCES/websockets-14.2.tar.gz diff --git a/.python-websockets.metadata b/.python-websockets.metadata index 5237d0d..e4a3d65 100644 --- a/.python-websockets.metadata +++ b/.python-websockets.metadata @@ -1 +1 @@ -3a82ef3e6015d985564ed04d2fbc308e0ee8d187 SOURCES/websockets-11.0.3.tar.gz +b30f7f15e69192894d232e8097f49006865203e0 SOURCES/websockets-14.2.tar.gz diff --git a/SOURCES/remove-shell-true.patch b/SOURCES/remove-shell-true.patch new file mode 100644 index 0000000..b84c667 --- /dev/null +++ b/SOURCES/remove-shell-true.patch @@ -0,0 +1,37 @@ +diff --git a/experiments/compression/corpus.py b/experiments/compression/corpus.py +index 56e2621..c8bd343 100644 +--- a/experiments/compression/corpus.py ++++ b/experiments/compression/corpus.py +@@ -10,16 +10,17 @@ import time + + def github_commits(): + OAUTH_TOKEN = getpass.getpass("OAuth Token? ") +- COMMIT_API = ( +- f'curl -H "Authorization: token {OAUTH_TOKEN}" ' +- f"https://api.github.com/repos/python-websockets/websockets/git/commits/:sha" +- ) ++ ++ def fetch_commit(sha): ++ url = f"https://api.github.com/repos/python-websockets/websockets/git/commits/{sha}" ++ headers = ["-H", f"Authorization: token {OAUTH_TOKEN}"] ++ cmd = ["curl"] + headers + [url] ++ return subprocess.check_output(cmd) + + commits = [] + + head = subprocess.check_output( +- "git rev-parse origin/main", +- shell=True, ++ ["git", "rev-parse", "origin/main"], + text=True, + ).strip() + todo = [head] +@@ -27,7 +28,7 @@ def github_commits(): + + while todo: + sha = todo.pop(0) +- commit = subprocess.check_output(COMMIT_API.replace(":sha", sha), shell=True) ++ commit = fetch_commit(sha) + commits.append(commit) + seen.add(sha) + for parent in json.loads(commit)["parents"]: diff --git a/SPECS/python-websockets.spec b/SPECS/python-websockets.spec index d820921..141f3ec 100644 --- a/SPECS/python-websockets.spec +++ b/SPECS/python-websockets.spec @@ -1,30 +1,26 @@ %global pypi_name websockets -%ifarch x86_64 -%bcond_without tests -%endif - Name: python-%{pypi_name} -Version: 11.0.3 -Release: 6%{?dist} +Version: 14.2 +Release: 2%{?dist} Summary: Implementation of the WebSocket Protocol for Python -License: BSD +License: BSD-3-Clause URL: https://github.com/aaugustin/websockets -Source0: %{url}/archive/%{version}/%{pypi_name}-%{version}.tar.gz +Source0: %{pypi_source %{pypi_name}} + +# remove shell=True from experiments/compression/corpus.py +Patch0: remove-shell-true.patch BuildRequires: gcc -%if %{with tests} -BuildRequires: python3dist(pytest) -%endif %global _description %{expand: websockets is a library for developing WebSocket servers and clients in Python. It implements RFC 6455 with a focus on correctness and simplicity. It passes the Autobahn Testsuite. -Built on top of Python’s asynchronous I/O support introduced in PEP 3156, it +Built on top of Python's asynchronous I/O support introduced in PEP 3156, it provides an API based on coroutines, making it easy to write highly concurrent applications.} @@ -39,25 +35,19 @@ BuildRequires: python3-devel %prep %autosetup -n %{pypi_name}-%{version} -p1 -# Upstream uses a src package but does not specify this explicitly in the -# pyproject.toml. This causes the build to fail on CentOS Stream 9 and RHEL 9. -# Workaround this problem by adding a very small setup.cfg file that specifies where -# the source code lives inside `src`. -%if %{defined el9} -cat << EOF > setup.cfg +# Create setup.cfg to fix package name metadata +cat > setup.cfg < - 14.2-2 +- Bump revision to address packaging issues + Resolves: RHEL-157865 + +* Tue Sep 09 2025 Kseniia Nivnia - 14.2-1 +- Update to 14.2 and add patch to remove shell=True + Resolves: RHEL-113034 + * Tue Jan 30 2024 Major Hayden - 11.0.3-6 - Bump revision to add gating.yaml