- Update to 3.3.8:
* The deprecated SQLAlchemy query.values() method is replaced by query.with_entities(). This fixes an issue with MariaDB that truncated the generated postfix_lmtp file. (Closes #1044) * An uncaught passlib.exc.UnknownHashError in utilities/passwords.py is now caught and handled appropriately. (Closes #1046) * Rejection notices for a message with an RFC 2047 encoded Subject: now display the decoded subject. (Closes #672) * Don't RFC 2047 encode display names in UserNotifications. Allow sending utf-8 encoded notifications. (Closes #673) * Don't replace non-ascii in subjects in notifications. (Closes #673) * The mailman members command no longer RFC 2047 encodes non-ascii display names. (Closes #1048) * Improve the performance of Held message handling by reducing the total number of database calls required. (Fixes #1026 and #1045) * Add support for Python 3.10. (Closes #936) * Add support for Python 3.11 (See !1076) * Add support for SQLAlchemy 1.4+ (Closes #964) * Drop support for Python 3.6 since SQLAlchemy 2.0 will drop support for it and it is EOL by now. (See !1035) * The fix for #994 in 3.3.6 blocked too many subscription attempts. This is now corrected and another test added. - Drop patches now included upstream: * mailman-support-sqlalchemy-1-4.patch * python-mailman-test_interact_default_banner.patch * support-alembic-1-8.patch * support-attrs-22.patch * support-sqlalchemy-1-4.patch OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:mailman/python-mailman?expand=0&rev=76
This commit is contained in:
parent
89b49bca00
commit
a9fb9ccfa3
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0d2ece475c020ad9d063d70f3637c86a31df0d48a0148f8ed6c8b9481e8e5d63
|
||||
size 1628026
|
3
mailman-3.3.8.tar.gz
Normal file
3
mailman-3.3.8.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:83ac07ee55ea2b4c89f00c4ed4717132f06270127d3465a53de3c5cb197d41ce
|
||||
size 1676901
|
@ -1,71 +0,0 @@
|
||||
The TypeDecorator.cache_ok class-level flag indicates if this custom
|
||||
TypeDecorator is safe to be used as part of a cache key. This flag defaults to
|
||||
None which will initially generate a warning when the SQL compiler attempts to
|
||||
generate a cache key for a statement that uses this type. If the TypeDecorator
|
||||
is not guaranteed to produce the same bind/result behavior and SQL generation
|
||||
every time, this flag should be set to False; otherwise if the class produces
|
||||
the same behavior each time, it may be set to True. See TypeDecorator.cache_ok
|
||||
for further notes on how this works.
|
||||
|
||||
As I don't know if those can be safely cached, just disable the warning.
|
||||
|
||||
Index: mailman-3.3.5/src/mailman/database/types.py
|
||||
===================================================================
|
||||
--- mailman-3.3.5.orig/src/mailman/database/types.py 2021-09-06 02:19:59.000000000 +0200
|
||||
+++ mailman-3.3.5/src/mailman/database/types.py 2022-06-23 08:57:19.527825754 +0200
|
||||
@@ -34,6 +34,7 @@ class Enum(TypeDecorator):
|
||||
converts it on-the-fly.
|
||||
"""
|
||||
impl = Integer
|
||||
+ cache_ok = False
|
||||
|
||||
def __init__(self, enum, *args, **kw):
|
||||
super().__init__(*args, **kw)
|
||||
@@ -59,6 +60,7 @@ class UUID(TypeDecorator):
|
||||
|
||||
"""
|
||||
impl = CHAR
|
||||
+ cache_ok = False
|
||||
|
||||
def load_dialect_impl(self, dialect):
|
||||
if dialect.name == 'postgresql':
|
||||
@@ -97,6 +99,7 @@ class SAUnicode(TypeDecorator):
|
||||
column needs to be indexed, otherwise use SAUnicode4Byte.
|
||||
"""
|
||||
impl = Unicode
|
||||
+ cache_ok = False
|
||||
|
||||
|
||||
@compiles(SAUnicode)
|
||||
@@ -120,6 +123,7 @@ class SAUnicode4Byte(TypeDecorator):
|
||||
type and it can still be used if needed in the codebase.
|
||||
"""
|
||||
impl = Unicode
|
||||
+ cache_ok = False
|
||||
|
||||
|
||||
@compiles(SAUnicode4Byte)
|
||||
@@ -140,6 +144,7 @@ class SAUnicodeLarge(TypeDecorator):
|
||||
This is double size of SAUnicode defined above.
|
||||
"""
|
||||
impl = Unicode
|
||||
+ cache_ok = False
|
||||
|
||||
|
||||
@compiles(SAUnicodeLarge, 'mysql')
|
||||
@@ -166,6 +171,7 @@ class SAUnicodeXL(TypeDecorator):
|
||||
See https://docs.sqlalchemy.org/en/latest/dialects/mysql.html#index-length
|
||||
"""
|
||||
impl = Unicode
|
||||
+ cache_ok = False
|
||||
|
||||
|
||||
@compiles(SAUnicodeXL, 'mysql')
|
||||
@@ -187,6 +193,7 @@ class SAText(TypeDecorator):
|
||||
case of other dialects defaults to the Text type.
|
||||
"""
|
||||
impl = Text
|
||||
+ cache_ok = False
|
||||
|
||||
|
||||
@compiles(SAText)
|
@ -1,13 +0,0 @@
|
||||
Index: mailman-3.3.0/src/mailman/utilities/tests/test_interact.py
|
||||
===================================================================
|
||||
--- mailman-3.3.0.orig/src/mailman/utilities/tests/test_interact.py 2019-04-25 07:07:47.000000000 +0200
|
||||
+++ mailman-3.3.0/src/mailman/utilities/tests/test_interact.py 2019-09-30 16:27:50.460382346 +0200
|
||||
@@ -67,7 +67,7 @@ class TestInteract(unittest.TestCase):
|
||||
self._enter(hackenv('PYTHONSTARTUP', None))
|
||||
interact()
|
||||
stderr = self._stderr.getvalue().splitlines()
|
||||
- banner = 'Python {} on {} '.format(sys.version, sys.platform)
|
||||
+ banner = 'Python {} on {}'.format(sys.version, sys.platform)
|
||||
self.assertEqual(stderr[0], banner.splitlines()[0])
|
||||
|
||||
def test_interact_custom_banner(self):
|
@ -1,3 +1,35 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 6 05:02:02 UTC 2023 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
- Update to 3.3.8:
|
||||
* The deprecated SQLAlchemy query.values() method is replaced by
|
||||
query.with_entities(). This fixes an issue with MariaDB that truncated
|
||||
the generated postfix_lmtp file. (Closes #1044)
|
||||
* An uncaught passlib.exc.UnknownHashError in utilities/passwords.py is
|
||||
now caught and handled appropriately. (Closes #1046)
|
||||
* Rejection notices for a message with an RFC 2047 encoded Subject: now
|
||||
display the decoded subject. (Closes #672)
|
||||
* Don't RFC 2047 encode display names in UserNotifications. Allow sending
|
||||
utf-8 encoded notifications. (Closes #673)
|
||||
* Don't replace non-ascii in subjects in notifications. (Closes #673)
|
||||
* The mailman members command no longer RFC 2047 encodes non-ascii display
|
||||
names. (Closes #1048)
|
||||
* Improve the performance of Held message handling by reducing the total
|
||||
number of database calls required. (Fixes #1026 and #1045)
|
||||
* Add support for Python 3.10. (Closes #936)
|
||||
* Add support for Python 3.11 (See !1076)
|
||||
* Add support for SQLAlchemy 1.4+ (Closes #964)
|
||||
* Drop support for Python 3.6 since SQLAlchemy 2.0 will drop support for
|
||||
it and it is EOL by now. (See !1035)
|
||||
* The fix for #994 in 3.3.6 blocked too many subscription attempts. This is
|
||||
now corrected and another test added.
|
||||
- Drop patches now included upstream:
|
||||
* mailman-support-sqlalchemy-1-4.patch
|
||||
* python-mailman-test_interact_default_banner.patch
|
||||
* support-alembic-1-8.patch
|
||||
* support-attrs-22.patch
|
||||
* support-sqlalchemy-1-4.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 14 22:47:22 UTC 2022 - Luiz Angelo Daros de Luca <luizluca@tre-sc.jus.br>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file
|
||||
#
|
||||
# Copyright (c) 2022 SUSE LLC
|
||||
# Copyright (c) 2023 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -46,7 +46,7 @@
|
||||
%define mypython_sitelib %{python3_sitelib}
|
||||
%endif
|
||||
Name: python-mailman%{psuffix}
|
||||
Version: 3.3.6
|
||||
Version: 3.3.8
|
||||
Release: 0
|
||||
Summary: A Mailing List Manager
|
||||
Group: Productivity/Networking/Email/Mailinglists
|
||||
@ -69,16 +69,6 @@ Source31: python-mailman.rpmlintrc
|
||||
#
|
||||
Source100: https://gitlab.com/mailman/mailman/-/raw/master/src/mailman/testing/ssl_test_cert.crt
|
||||
Source101: https://gitlab.com/mailman/mailman/-/raw/master/src/mailman/testing/ssl_test_key.key
|
||||
# whitespace fix
|
||||
Patch0: python-mailman-test_interact_default_banner.patch
|
||||
# Support SQLAlchemy 1.4 ... maybe backward compatible
|
||||
Patch1: support-sqlalchemy-1-4.patch
|
||||
# Suppprt Alembic 1.8.x
|
||||
Patch2: support-alembic-1-8.patch
|
||||
# Disable cache_ok warnings on console messages: disable caching completely at the moment
|
||||
Patch3: mailman-support-sqlalchemy-1-4.patch
|
||||
# Support attrs 22.1
|
||||
Patch4: support-attrs-22.patch
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python-rpm-macros
|
||||
@ -100,12 +90,12 @@ Mailman is a mailing list manager from the GNU project.
|
||||
%package -n mailman3
|
||||
Summary: A mailing list manager
|
||||
Requires: %{mypython}-SQLAlchemy >= 1.2.3
|
||||
Requires: %{mypython}-aiosmtpd >= 1.4.1
|
||||
Requires: %{mypython}-aiosmtpd >= 1.4.3
|
||||
Requires: %{mypython}-alembic
|
||||
Requires: %{mypython}-atpublic
|
||||
Requires: %{mypython}-authheaders >= 0.14.0
|
||||
Requires: %{mypython}-authres >= 1.0.1
|
||||
Requires: %{mypython}-click >= 7.0
|
||||
Requires: %{mypython}-click >= 8.0
|
||||
Requires: %{mypython}-dnspython >= 1.14.0
|
||||
Requires: %{mypython}-falcon > 3.0.0
|
||||
Requires: %{mypython}-flufl.bounce >= 4.0
|
||||
|
@ -1,24 +0,0 @@
|
||||
Index: mailman-3.3.6/setup.py
|
||||
===================================================================
|
||||
--- mailman-3.3.6.orig/setup.py 2022-10-27 11:00:31.427260047 +0200
|
||||
+++ mailman-3.3.6/setup.py 2022-10-27 11:01:57.051868729 +0200
|
||||
@@ -111,7 +111,7 @@ case second 'm'. Any other spelling is
|
||||
},
|
||||
install_requires = [
|
||||
'aiosmtpd>=1.4.1',
|
||||
- 'alembic>=1.6.2,!=1.7.0',
|
||||
+ 'alembic>=1.6.2,<1.9.0',
|
||||
'atpublic',
|
||||
'attrs<21.3.0',
|
||||
'authheaders>=0.14.0',
|
||||
Index: mailman-3.3.6/src/mailman.egg-info/requires.txt
|
||||
===================================================================
|
||||
--- mailman-3.3.6.orig/src/mailman.egg-info/requires.txt 2022-10-26 06:26:52.000000000 +0200
|
||||
+++ mailman-3.3.6/src/mailman.egg-info/requires.txt 2022-10-27 11:02:22.972052996 +0200
|
||||
@@ -1,5 +1,5 @@
|
||||
aiosmtpd>=1.4.1
|
||||
-alembic!=1.7.0,>=1.6.2
|
||||
+alembic<1.9.0,>=1.6.2
|
||||
atpublic
|
||||
attrs<21.3.0
|
||||
authheaders>=0.14.0
|
@ -1,26 +0,0 @@
|
||||
Index: mailman-3.3.6/setup.py
|
||||
===================================================================
|
||||
--- mailman-3.3.6.orig/setup.py 2022-10-27 11:14:04.065047157 +0200
|
||||
+++ mailman-3.3.6/setup.py 2022-10-27 11:15:25.901631179 +0200
|
||||
@@ -113,7 +113,7 @@ case second 'm'. Any other spelling is
|
||||
'aiosmtpd>=1.4.1',
|
||||
'alembic>=1.6.2,<1.9.0',
|
||||
'atpublic',
|
||||
- 'attrs<21.3.0',
|
||||
+ 'attrs<22.2',
|
||||
'authheaders>=0.14.0',
|
||||
'authres>=1.0.1',
|
||||
'click>=8.0.0',
|
||||
Index: mailman-3.3.6/src/mailman.egg-info/requires.txt
|
||||
===================================================================
|
||||
--- mailman-3.3.6.orig/src/mailman.egg-info/requires.txt 2022-10-27 11:02:22.972052996 +0200
|
||||
+++ mailman-3.3.6/src/mailman.egg-info/requires.txt 2022-10-27 11:15:33.805687581 +0200
|
||||
@@ -1,7 +1,7 @@
|
||||
aiosmtpd>=1.4.1
|
||||
alembic<1.9.0,>=1.6.2
|
||||
atpublic
|
||||
-attrs<21.3.0
|
||||
+attrs<22.2.0
|
||||
authheaders>=0.14.0
|
||||
authres>=1.0.1
|
||||
click>=8.0.0
|
@ -1,68 +0,0 @@
|
||||
Index: mailman-3.3.6/setup.py
|
||||
===================================================================
|
||||
--- mailman-3.3.6.orig/setup.py 2022-09-02 05:49:42.000000000 +0200
|
||||
+++ mailman-3.3.6/setup.py 2022-10-27 11:00:31.427260047 +0200
|
||||
@@ -128,7 +128,7 @@ case second 'm'. Any other spelling is
|
||||
'python-dateutil>=2.0',
|
||||
'passlib',
|
||||
'requests',
|
||||
- 'sqlalchemy>=1.2.3,<1.4',
|
||||
+ 'sqlalchemy>=1.2.3,<1.5',
|
||||
'zope.component',
|
||||
'zope.configuration',
|
||||
'zope.event',
|
||||
Index: mailman-3.3.6/src/mailman/database/tests/test_factory.py
|
||||
===================================================================
|
||||
--- mailman-3.3.6.orig/src/mailman/database/tests/test_factory.py 2022-09-02 05:49:42.000000000 +0200
|
||||
+++ mailman-3.3.6/src/mailman/database/tests/test_factory.py 2022-10-27 11:00:31.427260047 +0200
|
||||
@@ -76,10 +76,11 @@ class TestSchemaManager(unittest.TestCas
|
||||
# In case of MySQL, you cannot create/drop indexes on primary keys
|
||||
# manually as it is handled automatically by MySQL.
|
||||
if not is_mysql(config.db.engine):
|
||||
- Index('ix_user__user_id').drop(bind=config.db.engine)
|
||||
# Don't pollute our main metadata object, create a new one.
|
||||
md = MetaData()
|
||||
user_table = Model.metadata.tables['user'].tometadata(md)
|
||||
+ Index('ix_user__user_id', user_table.c._user_id).drop(
|
||||
+ bind=config.db.engine)
|
||||
Index('ix_user_user_id', user_table.c._user_id).create(
|
||||
bind=config.db.engine)
|
||||
config.db.commit()
|
||||
@@ -98,7 +99,11 @@ class TestSchemaManager(unittest.TestCas
|
||||
# indexes for primary keys, don't try doing it with that backend.
|
||||
if not is_mysql(config.db.engine):
|
||||
with suppress(ProgrammingError, OperationalError):
|
||||
- Index('ix_user_user_id').drop(bind=config.db.engine)
|
||||
+ # Don't pollute our main metadata object, create a new one.
|
||||
+ md = MetaData()
|
||||
+ user_table = Model.metadata.tables['user'].tometadata(md)
|
||||
+ Index('ix_user_user_id', user_table.c._user_id).drop(
|
||||
+ bind=config.db.engine)
|
||||
config.db.commit()
|
||||
|
||||
def test_current_database(self):
|
||||
Index: mailman-3.3.6/src/mailman/model/listmanager.py
|
||||
===================================================================
|
||||
--- mailman-3.3.6.orig/src/mailman/model/listmanager.py 2022-09-02 05:49:42.000000000 +0200
|
||||
+++ mailman-3.3.6/src/mailman/model/listmanager.py 2022-10-27 11:00:31.427260047 +0200
|
||||
@@ -39,6 +39,11 @@ from mailman.model.mime import ContentFi
|
||||
from mailman.utilities.datetime import now
|
||||
from mailman.utilities.queries import QuerySequence
|
||||
from public import public
|
||||
+try:
|
||||
+ from sqlalchemy.engine import Row
|
||||
+except ImportError:
|
||||
+ from sqlalchemy.engine import RowProxy as Row
|
||||
+
|
||||
from zope.event import notify
|
||||
from zope.interface import implementer
|
||||
|
||||
@@ -128,7 +133,7 @@ class ListManager:
|
||||
"""See `IListManager`."""
|
||||
result_set = store.query(MailingList)
|
||||
for list_id in result_set.values(MailingList._list_id):
|
||||
- assert isinstance(list_id, tuple) and len(list_id) == 1
|
||||
+ assert isinstance(list_id, (tuple, Row)) and len(list_id) == 1
|
||||
yield list_id[0]
|
||||
|
||||
@property
|
Loading…
Reference in New Issue
Block a user