From 26fd3231f9de880708d40fd5b911ccfd3054cff7 Mon Sep 17 00:00:00 2001 From: tigro Date: Sat, 5 Oct 2024 11:22:43 +0300 Subject: [PATCH] import python-werkzeug-2.0.3-3.el9.1 --- .gitignore | 3 +- .python-werkzeug.metadata | 3 +- ...1-Python-3.11-ignore-ResourceWarning.patch | 24 ++ ...rve-any-existing-PYTHONPATH-in-tests.patch | 34 +++ SPECS/python-werkzeug.spec | 280 +++++++++++------- 5 files changed, 234 insertions(+), 110 deletions(-) create mode 100644 SOURCES/0001-Python-3.11-ignore-ResourceWarning.patch create mode 100644 SOURCES/preserve-any-existing-PYTHONPATH-in-tests.patch diff --git a/.gitignore b/.gitignore index 69b3f7d..d92f28a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -SOURCES/Werkzeug-0.12.2.tar.gz -SOURCES/werkzeug-sphinx-theme.tar.gz +SOURCES/Werkzeug-2.0.3.tar.gz diff --git a/.python-werkzeug.metadata b/.python-werkzeug.metadata index 16a5f88..f302ff4 100644 --- a/.python-werkzeug.metadata +++ b/.python-werkzeug.metadata @@ -1,2 +1 @@ -fe5c3e287ae54cfefc25fd3eec800599b8026b49 SOURCES/Werkzeug-0.12.2.tar.gz -d17d2797ce629f561c025229c30ab0622b2ab2d8 SOURCES/werkzeug-sphinx-theme.tar.gz +59fd1a49f10162b9ea98be7d70f10c7f4e39593f SOURCES/Werkzeug-2.0.3.tar.gz diff --git a/SOURCES/0001-Python-3.11-ignore-ResourceWarning.patch b/SOURCES/0001-Python-3.11-ignore-ResourceWarning.patch new file mode 100644 index 0000000..670eb6a --- /dev/null +++ b/SOURCES/0001-Python-3.11-ignore-ResourceWarning.patch @@ -0,0 +1,24 @@ +From 660318fc363dc008f9911065dc3477de7152e264 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hrn=C4=8Diar?= +Date: Tue, 31 May 2022 15:05:22 +0200 +Subject: [PATCH] Python 3.11 ignore ResourceWarning + +--- + setup.cfg | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/setup.cfg b/setup.cfg +index 6596935..29c751d 100644 +--- a/setup.cfg ++++ b/setup.cfg +@@ -44,6 +44,7 @@ where = src + testpaths = tests + filterwarnings = + error ++ ignore:.*Unclosed file.*:ResourceWarning + + [coverage:run] + branch = True +-- +2.36.1 + diff --git a/SOURCES/preserve-any-existing-PYTHONPATH-in-tests.patch b/SOURCES/preserve-any-existing-PYTHONPATH-in-tests.patch new file mode 100644 index 0000000..f70e6fc --- /dev/null +++ b/SOURCES/preserve-any-existing-PYTHONPATH-in-tests.patch @@ -0,0 +1,34 @@ +From b88042cfb32866a00d39b678bb224eb55ecf53c1 Mon Sep 17 00:00:00 2001 +From: Lumir Balhar +Date: Tue, 22 Jun 2021 22:10:17 +0200 +Subject: [PATCH] Preserve any existing PYTHONPATH in tests + +--- + tests/conftest.py | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/tests/conftest.py b/tests/conftest.py +index 4ad1ff23..7200d286 100644 +--- a/tests/conftest.py ++++ b/tests/conftest.py +@@ -118,9 +118,15 @@ def dev_server(xprocess, request, tmp_path): + class Starter(ProcessStarter): + args = [sys.executable, run_path, name, json.dumps(kwargs)] + # Extend the existing env, otherwise Windows and CI fails. +- # Modules will be imported from tmp_path for the reloader. ++ # Modules will be imported from tmp_path for the reloader ++ # but any existing PYTHONPATH is preserved. + # Unbuffered output so the logs update immediately. +- env = {**os.environ, "PYTHONPATH": str(tmp_path), "PYTHONUNBUFFERED": "1"} ++ original_python_path = os.getenv("PYTHONPATH") ++ if original_python_path: ++ new_python_path = os.pathsep.join((original_python_path, str(tmp_path))) ++ else: ++ new_python_path = str(tmp_path) ++ env = {**os.environ, "PYTHONPATH": new_python_path, "PYTHONUNBUFFERED": "1"} + + @cached_property + def pattern(self): +-- +2.31.1 + diff --git a/SPECS/python-werkzeug.spec b/SPECS/python-werkzeug.spec index f69c994..0f8f592 100644 --- a/SPECS/python-werkzeug.spec +++ b/SPECS/python-werkzeug.spec @@ -1,148 +1,216 @@ %global srcname Werkzeug +%global modname werkzeug -%if 0%{?rhel} > 7 -# Disable python2 build by default -%bcond_with python2 +# Many of the test and doc requirements are not in epel9 yet +%if 0%{?el9} +%bcond_with doc +%bcond_with tests %else -%bcond_without python2 +%bcond_without doc +%bcond_without tests %endif -Name: python-werkzeug -Version: 0.12.2 -Release: 4%{?dist} -Summary: The Swiss Army knife of Python web development +Name: python-%{modname} +Version: 2.0.3 +Release: 3%{?dist}.1 +Summary: Comprehensive WSGI web application library -Group: Development/Libraries License: BSD -URL: http://werkzeug.pocoo.org/ -Source0: https://files.pythonhosted.org/packages/source/W/Werkzeug/%{srcname}-%{version}.tar.gz -# Pypi version of werkzeug is missing _themes folder needed to build werkzeug sphinx docs -# See https://github.com/mitsuhiko/werkzeug/issues/761 -Source1: werkzeug-sphinx-theme.tar.gz +URL: https://werkzeug.palletsprojects.com +Source0: %{pypi_source} + +# Fixes PYTHONPATH handling in tests +# Upstream: https://github.com/pallets/werkzeug/pull/2172 +Patch0: preserve-any-existing-PYTHONPATH-in-tests.patch + +# Werkzeug throws ResourceWarning with Python 3.11 +# Upstream is not concerned about it so this patch will ignore it until it is fixed +# Upstream report: https://github.com/pallets/werkzeug/issues/2421 +Patch1: 0001-Python-3.11-ignore-ResourceWarning.patch BuildArch: noarch -%global _description\ -Werkzeug\ -========\ -\ -Werkzeug started as simple collection of various utilities for WSGI\ -applications and has become one of the most advanced WSGI utility\ -modules. It includes a powerful debugger, full featured request and\ -response objects, HTTP utilities to handle entity tags, cache control\ -headers, HTTP dates, cookie handling, file uploads, a powerful URL\ -routing system and a bunch of community contributed addon modules.\ -\ -Werkzeug is unicode aware and doesn't enforce a specific template\ -engine, database adapter or anything else. It doesn't even enforce\ -a specific way of handling requests and leaves all that up to the\ -developer. It's most useful for end user applications which should work\ -on as many server environments as possible (such as blogs, wikis,\ -bulletin boards, etc.).\ +%global _description %{expand: +Werkzeug +======== + +Werkzeug started as simple collection of various utilities for WSGI +applications and has become one of the most advanced WSGI utility +modules. It includes a powerful debugger, full featured request and +response objects, HTTP utilities to handle entity tags, cache control +headers, HTTP dates, cookie handling, file uploads, a powerful URL +routing system and a bunch of community contributed addon modules. + +Werkzeug is unicode aware and doesn't enforce a specific template +engine, database adapter or anything else. It doesn't even enforce +a specific way of handling requests and leaves all that up to the +developer. It's most useful for end user applications which should work +on as many server environments as possible (such as blogs, wikis, +bulletin boards, etc.).} + +%description %{_description} + +%package -n python3-%{modname} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{modname}} +BuildRequires: make +BuildRequires: python3-devel +BuildRequires: python3dist(setuptools) +%if %{with tests} +# For tests +BuildRequires: python3dist(pytest) +BuildRequires: python3dist(pytest-timeout) +BuildRequires: python3dist(pytest-xprocess) +BuildRequires: python3dist(requests) +BuildRequires: python3dist(requests-unixsocket) +BuildRequires: python3dist(cryptography) +BuildRequires: python3dist(greenlet) +BuildRequires: python3dist(watchdog) +%endif +%description -n python3-%{modname} %{_description} -%description %_description +%if %{with doc} +%package -n python3-werkzeug-doc +Summary: Documentation for python3-werkzeug +%{?python_provide:%python_provide python3-werkzeug-doc} +BuildRequires: python3dist(sphinx) +BuildRequires: python3dist(pallets-sphinx-themes) +BuildRequires: python3dist(sphinx-issues) +BuildRequires: python3dist(sphinxcontrib-log-cabinet) +Requires: python3-werkzeug = %{version}-%{release} -%if %{with python2} -%package -n python2-werkzeug -Summary: %summary +%description -n python3-werkzeug-doc +Documentation and examples for python3-werkzeug. +%endif -BuildRequires: python2-devel -BuildRequires: python2-setuptools -%{?python_provide:%python_provide python2-werkzeug} +%prep +%autosetup -p1 -n %{srcname}-%{version} +find examples/ -type f -name '*.png' -executable -print -exec chmod -x "{}" + -%description -n python2-werkzeug %_description -%endif # with python2 +%build +%py3_build +%if %{with doc} +pushd docs +make PYTHONPATH=../src/ SPHINXBUILD=sphinx-build-3 html +rm -v _build/html/.buildinfo +popd +%endif +%install +%py3_install -%package -n python3-werkzeug -Summary: %summary +%check +%if %{with tests} +%pytest +%endif -BuildRequires: python3-devel -BuildRequires: python3-setuptools +%files -n python3-%{modname} +%license LICENSE.rst +%doc CHANGES.rst README.rst +%{python3_sitelib}/%{srcname}-*.egg-info/ +%{python3_sitelib}/%{modname}/ -%{?python_provide:%python_provide python3-werkzeug} +%if %{with doc} +%files -n python3-werkzeug-doc +%doc docs/_build/html examples +%endif -%description -n python3-werkzeug %_description +%changelog +* Sat Oct 05 2024 Arkady L. Shane - 2.0.3-3R.1 +- Rebuilt for MSVSphere 9.4 +* Tue Jul 26 2022 Troy Dawson - 2.0.3-3.1 +- Skip tests and docs until dependencies are in epel9 -%package -n python-werkzeug-doc -Summary: Documentation for python3-werkzeug +* Fri Jul 22 2022 Fedora Release Engineering - 2.0.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild -BuildRequires: python3-sphinx +* Tue Jun 14 2022 Python Maint - 2.0.3-2 +- Rebuilt for Python 3.11 -Requires: python3-werkzeug = %{version}-%{release} +* Mon Feb 21 2022 Frantisek Zatloukal - 2.0.3-1 +- Update to 2.0.3 -%description -n python-werkzeug-doc -Documentation and examples for python-werkzeug. +* Fri Jan 21 2022 Fedora Release Engineering - 2.0.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild +* Wed Nov 10 2021 Frantisek Zatloukal - 2.0.2-1 +- Update to 2.0.2 -%prep -%setup -q -n %{srcname}-%{version} -%{__sed} -i 's/\r//' LICENSE -%{__sed} -i '1d' tests/multipart/test_collect.py -tar -xf %{SOURCE1} +* Fri Jul 23 2021 Fedora Release Engineering - 2.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild -rm -rf %{py3dir} -cp -a . %{py3dir} -find %{py3dir} -name '*.py' | xargs sed -i '1s|^#!python|#!%{__python3}|' +* Tue Jun 22 2021 Lumír Balhar - 2.0.1-1 +- Update to 2.0.1 +Resolves: rhbz#1795102 +* Thu Jun 03 2021 Python Maint - 1.0.1-6 +- Rebuilt for Python 3.10 -%build -%if %{with python2} -%py2_build -find examples/ -name '*.py' -executable | xargs chmod -x -find examples/ -name '*.png' -executable | xargs chmod -x -%endif # with python2 +* Thu May 13 2021 Miro Hrončok - 1.0.1-5 +- Workaround failing tests with pytest 6.2+ +- Fixes: rhbz#1928083 -pushd %{py3dir} -%py3_build -find examples/ -name '*.py' -executable | xargs chmod -x -find examples/ -name '*.png' -executable | xargs chmod -x -popd +* Wed Jan 27 2021 Fedora Release Engineering - 1.0.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild -pushd docs -# Add a symlink to the dir with the Python module so that __version__ can be -# obtained therefrom. -ln -s ../werkzeug werkzeug -make SPHINXBUILD=sphinx-build-3 html -popd +* Wed Jul 29 2020 Fedora Release Engineering - 1.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild +* Sat May 23 2020 Miro Hrončok - 1.0.1-2 +- Rebuilt for Python 3.9 -%install -%if %{with python2} -%py2_install -%endif # with python2 +* Wed Apr 08 2020 Igor Raits - 1.0.1-1 +- Update to 1.0.1 -pushd %{py3dir} -%py3_install -popd -%{__rm} -rf docs/_build/html/.buildinfo -%{__rm} -rf examples/cupoftee/db.pyc - -%if %{with python2} -%files -n python2-werkzeug -%license LICENSE -%doc AUTHORS PKG-INFO CHANGES -%{python2_sitelib}/* -%endif # with python2 - -%files -n python3-werkzeug -%license LICENSE -%doc AUTHORS PKG-INFO CHANGES -%{python3_sitelib}/* - -%files -n python-werkzeug-doc -%doc docs/_build/html examples +* Thu Jan 30 2020 Fedora Release Engineering - 0.16.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild +* Tue Jan 07 2020 Lumír Balhar - 0.16.0-1 +- New upstream version 0.16.0 (#1690599) -%changelog -* Fri Jun 22 2018 Charalampos Stratakis - 0.12.2-4 -- Use python3-sphinx for the docs +* Wed Sep 18 2019 Miro Hrončok - 0.14.1-12 +- Subpackage python2-werkzeug has been removed + See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal + +* Sat Aug 17 2019 Miro Hrončok - 0.14.1-11 +- Rebuilt for Python 3.8 + +* Mon Jul 29 2019 Petr Viktorin - 0.14.1-10 +- Remove non-essential Python 2 test dependencies + https://fedoraproject.org/wiki/Changes/F31_Mass_Python_2_Package_Removal#Removing_Requirements +- Use system Python interpreter in tests + +* Fri Jul 26 2019 Fedora Release Engineering - 0.14.1-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Apr 03 2019 Miro Hrončok - 0.14.1-8 +- Remove python2-werkzeug-doc + https://fedoraproject.org/wiki/Changes/Sphinx2 + +* Sun Feb 17 2019 Elliott Sales de Andrade - 0.14.1-7 +- Backport fix to tests using 'python' command + +* Sat Feb 02 2019 Fedora Release Engineering - 0.14.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jul 16 2018 Miro Hrončok - 0.14.1-5 +- Make sure we ship Python 3 docs in the Python 3 docs package + +* Sat Jul 14 2018 Fedora Release Engineering - 0.14.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jun 18 2018 Miro Hrončok - 0.14.1-3 +- Rebuilt for Python 3.7 + +* Tue Jun 05 2018 Miro Hrončok - 0.14.1-2 +- Don't BR watchdog, it is not needed -* Fri Jun 22 2018 Charalampos Stratakis - 0.12.2-3 -- Conditionalize the python2 subpackage +* Wed May 09 2018 Adam Williamson - 0.14.1-1 +- Update to 0.14.1 (needed by httpbin) +- Run tests during build * Fri Feb 09 2018 Fedora Release Engineering - 0.12.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild