Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-flask-oidc for openSUSE:Factory checked in at 2025-05-06 16:42:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-flask-oidc (Old) and /work/SRC/openSUSE:Factory/.python-flask-oidc.new.30101 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-flask-oidc" Tue May 6 16:42:36 2025 rev:6 rq:1274786 version:2.3.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-flask-oidc/python-flask-oidc.changes 2023-04-13 14:11:36.800594851 +0200 +++ /work/SRC/openSUSE:Factory/.python-flask-oidc.new.30101/python-flask-oidc.changes 2025-05-06 16:42:51.819801039 +0200 @@ -1,0 +2,35 @@ +Tue May 6 06:20:57 UTC 2025 - Steve Kowalik <steven.kowa...@suse.com> + +- Update to 2.3.1: + * Important + + Rebased the Flask OIDC API on Authlib. + * Added + + Make the client_secrets.json file optional when OIDC is disabled + + Support Python 3.12 + + Re-add redirect_to_auth_server() for compatibility with v1.x + + Add a user model to flask.g with convenience properties + + Add signals to hook into the login and logout process + * Fixed + + Include the root_path when redirecting to the custom callback route + + Avoid redirect loops when the app is not mounted on the webserver root + + Handle token expiration when there is no refresh_token or no token URL + + Use the OIDC_CALLBACK_ROUTE with the ID provider when it is defined, + instead of the default + + Auto-renew tokens when they have expired (if possible), as version 1.x + used to do + + Avoid a redirect loop on logout when the token is expired + + Don't crash if the client_secrets don't contain a userinfo_uri key + + Handle older versions of Werkzeug. + * Changed + + Ship the licenses files in the sdist + + Don't request the profile scope by default, as version 1.x used to do. + * Deprecated + + Configuration option OIDC_USERINFO_URL (and the userinfo_uri key in + client_secrets) +- Switch to pyproject macros. +- Add patch ignore-quoting-madness.patch: + * Ignore quoting madness that is different for each Python version. +- Drop patch authlib.patch, included upstream. +- Run the testsuite, tests are included. + +------------------------------------------------------------------- Old: ---- authlib.patch flask-oidc-1.4.0.tar.gz New: ---- flask_oidc-2.3.1.tar.gz ignore-quoting-madness.patch BETA DEBUG BEGIN: Old: * Ignore quoting madness that is different for each Python version. - Drop patch authlib.patch, included upstream. - Run the testsuite, tests are included. BETA DEBUG END: BETA DEBUG BEGIN: New:- Switch to pyproject macros. - Add patch ignore-quoting-madness.patch: * Ignore quoting madness that is different for each Python version. BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-flask-oidc.spec ++++++ --- /var/tmp/diff_new_pack.d5jTc7/_old 2025-05-06 16:42:52.311821741 +0200 +++ /var/tmp/diff_new_pack.d5jTc7/_new 2025-05-06 16:42:52.311821741 +0200 @@ -1,7 +1,7 @@ # -# spec file +# spec file for package python-flask-oidc # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2025 SUSE LLC # Copyright (c) 2020 Neal Gompa <ngomp...@gmail.com>. # # All modifications and additions to the file contributed by third parties @@ -19,26 +19,28 @@ %global pypi_name flask-oidc Name: python-%{pypi_name} -Version: 1.4.0 +Version: 2.3.1 Release: 0 Summary: OpenID Connect support for Flask License: BSD-2-Clause -Group: Development/Libraries/Python URL: https://github.com/fedora-infra/%{pypi_name} -Source0: https://pypi.io/packages/source/f/%{pypi_name}/%{pypi_name}-%{version}.tar.gz -# PATCH-FIX-OPENSUSE authlib.patch -- gh#puiterwijk/flask-oidc#138 -Patch0: authlib.patch -BuildRequires: %{python_module Authlib} +Source0: https://pypi.io/packages/source/f/%{pypi_name}/flask_oidc-%{version}.tar.gz +# PATCH-FIX-OPENSUSE Don't fail a test due to quoting +Patch0: ignore-quoting-madness.patch +BuildRequires: %{python_module Authlib >= 1.2} BuildRequires: %{python_module Flask} -BuildRequires: %{python_module requests} -BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module base >= 3.8} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module poetry-core} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module requests >= 2.20} +BuildRequires: %{python_module responses} BuildRequires: fdupes BuildRequires: python-rpm-macros -Requires: python-Authlib +Requires: python-Authlib >= 1.2 Requires: python-Flask -Requires: python-requests -Requires(post): update-alternatives -Requires(postun):update-alternatives +Requires: python-blinker >= 1.4 +Requires: python-requests >= 2.20 BuildArch: noarch %python_subpackages @@ -49,26 +51,21 @@ * Ipsilon %prep -%autosetup -p1 -n %{pypi_name}-%{version} +%autosetup -p1 -n flask_oidc-%{version} %build -%python_build +%pyproject_wheel %install -%python_install +%pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitelib} -%python_clone -a %{buildroot}%{_bindir}/oidc-register -%post -%python_install_alternative oidc-register - -%postun -%python_uninstall_alternative oidc-register +%check +%pytest %files %{python_files} %doc README.rst -%license LICENSE.txt +%license LICENSES/BSD-2-Clause.txt %{python_sitelib}/flask_oidc/ -%{python_sitelib}/*.egg-info/ -%python_alternative %{_bindir}/oidc-register +%{python_sitelib}/flask_oidc-%{version}.dist-info ++++++ ignore-quoting-madness.patch ++++++ Index: flask_oidc-2.3.1/tests/test_flask_oidc.py =================================================================== --- flask_oidc-2.3.1.orig/tests/test_flask_oidc.py +++ flask_oidc-2.3.1/tests/test_flask_oidc.py @@ -299,10 +299,11 @@ def test_accept_token(client, mocked_res def test_accept_token_no_token(client, mocked_responses): resp = client.get("/need-token") assert resp.status_code == 401 - assert resp.json == { - "error": "missing_authorization", - "error_description": 'Missing "Authorization" in headers.', - } + assert resp.json["error"] == "missing_authorization" + assert resp.json["error_description"] in ( + "Missing 'Authorization' in headers.", + 'Missing "Authorization" in headers.', + ) def test_accept_token_invalid(client, mocked_responses):