Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-Flask-Security-Too for
openSUSE:Factory checked in at 2022-10-03 15:59:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Flask-Security-Too (Old)
and /work/SRC/openSUSE:Factory/.python-Flask-Security-Too.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Flask-Security-Too"
Mon Oct 3 15:59:29 2022 rev:12 rq:1007165 version:5.0.2
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-Flask-Security-Too/python-Flask-Security-Too.changes
2022-09-08 14:24:04.398726976 +0200
+++
/work/SRC/openSUSE:Factory/.python-Flask-Security-Too.new.2275/python-Flask-Security-Too.changes
2022-10-03 15:59:30.490972210 +0200
@@ -1,0 +2,25 @@
+Fri Sep 30 06:52:16 UTC 2022 - Steve Kowalik <[email protected]>
+
+- Upate to 5.0.2:
+ * Role permissions backwards compatibility bug.
+ * Fix Change Password regression.
+ * Support for WebAuthn.
+ * Support Two-factor recovery codes.
+ * Provide option to prevent user enumeration (i.e. Generic Responses).
+ * Support for Python 3.10.
+ * Support for Flask >= 2.2.
+ * Add custom HTML attributes to improve user experience.
+ * Make the required zxcvbn complexity score configurable.
+ * Get rid of Flask-Mail. Flask-Mailman is now the default preferred email
+ package.
+ * A delete option has been added to us-setup (form and view).
+ * Improve username support - the LoginForm now has a separate field for
+ username.
+ * Fix test and other failures with newer Flask-Login/Werkzeug versions.
+ * Fix test failures with newer Flask versions.
+- Drop patch endswith-assert.patch:
+ * Included upstream.
+- Rebase patches no-mongodb.patch and use-pyqrcodeng.patch
+- Update {Build,}Requires versions.
+
+-------------------------------------------------------------------
Old:
----
Flask-Security-Too-4.1.3.tar.gz
endswith-assert.patch
New:
----
Flask-Security-Too-5.0.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-Flask-Security-Too.spec ++++++
--- /var/tmp/diff_new_pack.5SYDBX/_old 2022-10-03 15:59:31.614974461 +0200
+++ /var/tmp/diff_new_pack.5SYDBX/_new 2022-10-03 15:59:31.622974477 +0200
@@ -19,41 +19,39 @@
%define skip_python2 1
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-Flask-Security-Too
-Version: 4.1.3
+Version: 5.0.2
Release: 0
Summary: Security for Flask apps
License: MIT
-URL: https://github.com/jwag956/flask-security
+URL: https://github.com/Flask-Middleware/flask-security
Source:
https://files.pythonhosted.org/packages/source/F/Flask-Security-Too/Flask-Security-Too-%{version}.tar.gz
Patch0: no-mongodb.patch
Patch1: use-pyqrcodeng.patch
-# PATCH-FIX-UPSTREAM endswith-assert.patch
gh#Flask-Middleware/flask-security#605 [email protected]
-# don't test for euqality of response.headers['Location'], just for .endswith
-Patch2: endswith-assert.patch
-BuildRequires: %{python_module Babel >= 1.3}
+BuildRequires: %{python_module Babel >= 2.9.1}
BuildRequires: %{python_module Flask >= 1.1.1}
-BuildRequires: %{python_module Flask-Babel}
+BuildRequires: %{python_module Flask-Babel >= 2.0.0}
BuildRequires: %{python_module Flask-Login >= 0.4.1}
-BuildRequires: %{python_module Flask-Mail >= 0.9.1}
+BuildRequires: %{python_module Flask-Mailman >= 0.3.0}
BuildRequires: %{python_module Flask-Principal >= 0.4.0}
-BuildRequires: %{python_module Flask-SQLAlchemy >= 2.3}
+BuildRequires: %{python_module Flask-SQLAlchemy >= 2.5.1}
BuildRequires: %{python_module Flask-WTF >= 0.14.3}
BuildRequires: %{python_module PyQRCode >= 1.2}
-BuildRequires: %{python_module SQLAlchemy >= 1.2.6}
+BuildRequires: %{python_module SQLAlchemy >= 1.3.24}
BuildRequires: %{python_module WTForms-lang}
BuildRequires: %{python_module WTForms}
BuildRequires: %{python_module Werkzeug >= 0.14.1}
BuildRequires: %{python_module argon2_cffi >= 19.1.0}
BuildRequires: %{python_module bcrypt >= 3.1.4}
-BuildRequires: %{python_module bleach}
+BuildRequires: %{python_module bleach >= 3.3.1}
BuildRequires: %{python_module blinker >= 1.4}
BuildRequires: %{python_module cachetools >= 3.1.0}
-BuildRequires: %{python_module cryptography >= 2.1.4}
+BuildRequires: %{python_module cryptography >= 3.4.8}
+BuildRequires: %{python_module dateutil}
BuildRequires: %{python_module email-validator >= 1.1.1}
BuildRequires: %{python_module itsdangerous >= 1.1.0}
BuildRequires: %{python_module passlib >= 1.7.2}
BuildRequires: %{python_module peewee >= 3.7.1}
-BuildRequires: %{python_module phonenumbers >= 8.11.1}
+BuildRequires: %{python_module phonenumbers >= 8.12.18}
BuildRequires: %{python_module pony}
BuildRequires: %{python_module pytest >= 6.2.5}
BuildRequires: %{python_module setuptools}
@@ -61,22 +59,23 @@
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-Flask >= 1.1.1
-Requires: python-Flask-Babel
+Requires: python-Flask-Babel >= 2.0.0
Requires: python-Flask-Login >= 0.4.1
Requires: python-Flask-Principal >= 0.4.0
Requires: python-Flask-WTF >= 0.14.3
Requires: python-Werkzeug >= 0.14.1
Requires: python-bcrypt >= 3.1.4
+Requires: python-bleach >= 3.3.1
Requires: python-blinker >= 1.4
-Requires: python-cryptography >= 2.1.4
+Requires: python-cryptography >= 3.4.8
Requires: python-email-validator >= 1.1.1
Requires: python-itsdangerous >= 1.1.0
Requires: python-passlib >= 1.7.2
Recommends: python-PyQRCode >= 1.2
-Recommends: python-SQLAlchemy >= 1.2.6
+Recommends: python-SQLAlchemy >= 1.3.24
Recommends: python-zxcvbn >= 4.4.28
Suggests: python-argon2_cffi >= 19.1.0
-Suggests: python-phonenumbers >= 8.11.1
+Suggests: python-phonenumbers >= 8.12.18
Conflicts: python-Flask-Security < 3.2.0
Obsoletes: python-Flask-Security < 3.2.0
Provides: python-Flask-Security = %{version}
++++++ Flask-Security-Too-4.1.3.tar.gz -> Flask-Security-Too-5.0.2.tar.gz ++++++
++++ 39914 lines of diff (skipped)
++++++ no-mongodb.patch ++++++
--- /var/tmp/diff_new_pack.5SYDBX/_old 2022-10-03 15:59:31.830974893 +0200
+++ /var/tmp/diff_new_pack.5SYDBX/_new 2022-10-03 15:59:31.834974902 +0200
@@ -1,23 +1,23 @@
-Index: Flask-Security-Too-4.1.2/tests/conftest.py
+Index: Flask-Security-Too-5.0.2/tests/conftest.py
===================================================================
---- Flask-Security-Too-4.1.2.orig/tests/conftest.py
-+++ Flask-Security-Too-4.1.2/tests/conftest.py
-@@ -683,7 +683,7 @@ def client_nc(request, sqlalchemy_app):
+--- Flask-Security-Too-5.0.2.orig/tests/conftest.py
++++ Flask-Security-Too-5.0.2/tests/conftest.py
+@@ -862,7 +862,7 @@ def client_nc(request, sqlalchemy_app):
return app.test_client(use_cookies=False)
[email protected](params=["cl-sqlalchemy", "c2", "cl-mongo", "cl-peewee"])
[email protected](params=["cl-sqlalchemy", "c2", "cl-peewee"])
- def clients(request, app, tmpdir, realdburl):
+ def clients(request, app, tmpdir, realdburl, realmongodburl):
if request.param == "cl-sqlalchemy":
ds = sqlalchemy_setup(request, app, tmpdir, realdburl)
-@@ -729,7 +729,7 @@ def get_message_local(app):
+@@ -908,7 +908,7 @@ def get_message_local(app):
@pytest.fixture(
- params=["sqlalchemy", "sqlalchemy-session", "mongoengine", "peewee",
"pony"]
+ params=["sqlalchemy", "sqlalchemy-session", "peewee", "pony"]
)
- def datastore(request, app, tmpdir, realdburl):
+ def datastore(request, app, tmpdir, realdburl, realmongodburl):
if request.param == "sqlalchemy":
++++++ use-pyqrcodeng.patch ++++++
--- /var/tmp/diff_new_pack.5SYDBX/_old 2022-10-03 15:59:31.846974925 +0200
+++ /var/tmp/diff_new_pack.5SYDBX/_new 2022-10-03 15:59:31.850974934 +0200
@@ -1,30 +1,37 @@
-Index: Flask-Security-Too-4.1.2/flask_security/core.py
+Index: Flask-Security-Too-5.0.2/flask_security/core.py
===================================================================
---- Flask-Security-Too-4.1.2.orig/flask_security/core.py
-+++ Flask-Security-Too-4.1.2/flask_security/core.py
-@@ -1411,7 +1411,7 @@ class Security:
+--- Flask-Security-Too-5.0.2.orig/flask_security/core.py
++++ Flask-Security-Too-5.0.2/flask_security/core.py
+@@ -1523,7 +1523,7 @@ class Security:
and "authenticator" in cv("TWO_FACTOR_ENABLED_METHODS",
app=app)
)
if need_qrcode:
-- self._check_modules("pyqrcode", "TWO_FACTOR or
UNIFIED_SIGNIN")
+- self._check_modules("qrcode", "TWO_FACTOR or UNIFIED_SIGNIN")
+ self._check_modules("pyqrcodeng", "TWO_FACTOR or
UNIFIED_SIGNIN")
need_sms = (
cv("UNIFIED_SIGNIN", app=app)
-Index: Flask-Security-Too-4.1.2/flask_security/totp.py
+Index: Flask-Security-Too-5.0.2/flask_security/totp.py
===================================================================
---- Flask-Security-Too-4.1.2.orig/flask_security/totp.py
-+++ Flask-Security-Too-4.1.2/flask_security/totp.py
-@@ -139,9 +139,9 @@ class Totp:
+--- Flask-Security-Too-5.0.2.orig/flask_security/totp.py
++++ Flask-Security-Too-5.0.2/flask_security/totp.py
+@@ -140,15 +140,11 @@ class Totp:
.. versionadded:: 4.0.0
"""
try:
-- import pyqrcode
+- import qrcode
+- import qrcode.image.svg
+ import pyqrcodeng
-- code = pyqrcode.create(self.get_totp_uri(username, totp))
-+ code = pyqrcodeng.create(self.get_totp_uri(username, totp))
+- image = qrcode.make(
+- self.get_totp_uri(username, totp),
+- image_factory=qrcode.image.svg.SvgImage,
+- )
++ image = pyqrcodeng.create(self.get_totp_uri(username, totp))
with io.BytesIO() as virtual_file:
- code.svg(file=virtual_file, scale=3)
+- image.save(virtual_file)
++ image.svg(virtual_file, scale=1)
image_as_str =
base64.b64encode(virtual_file.getvalue()).decode("ascii")
+
+ return f"data:image/svg+xml;base64,{image_as_str}"