diff options
Diffstat (limited to 'net-mail')
-rw-r--r-- | net-mail/mailman/Manifest | 1 | ||||
-rw-r--r-- | net-mail/mailman/files/mailman-3.3.4-fix-click-8.patch | 75 | ||||
-rw-r--r-- | net-mail/mailman/files/mailman-3.3.4-py3.9-importlib.patch | 73 | ||||
-rw-r--r-- | net-mail/mailman/mailman-3.3.4.ebuild | 60 |
4 files changed, 209 insertions, 0 deletions
diff --git a/net-mail/mailman/Manifest b/net-mail/mailman/Manifest index f87f5acd1552..0772b97b920e 100644 --- a/net-mail/mailman/Manifest +++ b/net-mail/mailman/Manifest @@ -1 +1,2 @@ DIST mailman-3.3.2.tar.gz 1396750 BLAKE2B f7db82d8cb217d80313ee7a6c28f7b62876a6d176a108b3fafdc744e0a9fcec3d11a0665069a5c27a42d49c22257bfe2ca8f18233d30fc9acb964027fea3bf12 SHA512 af8b300a9fea9e40a9a42f97531cf0fcd36f9b30a88a5b062994ec6480d91a698dbc37f4910045aacf3bedebf7c9ccacdf8d11bb0ee560d11e1eeef266f19b29 +DIST mailman-3.3.4.tar.gz 1578084 BLAKE2B d0c8ba6dd0df481915397b55521c9a524b44bbdb7c4efe789c6fe92c1383950b6107a76db43337b7a310a7d97eb3931a4289566271ac5b6360645ec8d316230a SHA512 52d7e8355744730f608605b05bc9c977c3e4daf22a78267b1ea6cd3922b2826d3f70dd61a591f13633fc7cbcc536b6d56a2076c00752a6590964cbd4e1aec3cc diff --git a/net-mail/mailman/files/mailman-3.3.4-fix-click-8.patch b/net-mail/mailman/files/mailman-3.3.4-fix-click-8.patch new file mode 100644 index 000000000000..c5f5d774fdaa --- /dev/null +++ b/net-mail/mailman/files/mailman-3.3.4-fix-click-8.patch @@ -0,0 +1,75 @@ +From 5d27492403f80c4b4ea1820b3d6f821bd8401ca8 Mon Sep 17 00:00:00 2001 +From: Mark Sapiro <mark@msapiro.net> +Date: Tue, 11 May 2021 18:14:59 -0700 +Subject: [PATCH] Require click >=8.0.0 and fix the tests it breaks. + +--- a/src/mailman/commands/docs/import.rst ++++ b/src/mailman/commands/docs/import.rst +@@ -58,5 +58,6 @@ import, the mailing list's "real name" will change. + Import + + >>> command('mailman import21 import@example.com ' + pickle_file) ++ Importing ... + >>> print(mlist.display_name) + Test +--- a/src/mailman/commands/tests/test_cli_addmembers.py ++++ b/src/mailman/commands/tests/test_cli_addmembers.py +@@ -57,8 +57,8 @@ class TestCLIAddMembers(unittest.TestCase): + result.output, + 'Usage: addmembers [OPTIONS] FILENAME LISTSPEC\n' + 'Try \'addmembers --help\' for help.\n\n' +- 'Error: Invalid value for \'FILENAME\': Could not open ' +- 'file: bad: No such file or directory\n') ++ 'Error: Invalid value for \'FILENAME\': ' ++ '\'bad\': No such file or directory\n') + + def test_already_subscribed_with_display_name(self): + subscribe(self._mlist, 'Anne') +@@ -265,8 +265,8 @@ class TestCLIAddMembers(unittest.TestCase): + 'Usage: addmembers [OPTIONS] FILENAME LISTSPEC\n' + 'Try \'addmembers --help\' for help.\n\n' + 'Error: Invalid value for \'--delivery\' / \'-d\': ' +- 'invalid choice: bogus. (choose from regular, mime, ' +- 'plain, summary, disabled)\n') ++ '\'bogus\' is not one of \'regular\', \'mime\', ' ++ '\'plain\', \'summary\', \'disabled\'.\n') + + def test_invite_member(self): + with NamedTemporaryFile('w', buffering=1, encoding='utf-8') as infp: +--- a/src/mailman/commands/tests/test_cli_delmembers.py ++++ b/src/mailman/commands/tests/test_cli_delmembers.py +@@ -56,8 +56,8 @@ class TestCLIDelMembers(unittest.TestCase): + result.output, + 'Usage: delmembers [OPTIONS]\n' + 'Try \'delmembers --help\' for help.\n\n' +- 'Error: Invalid value for \'--file\' / \'-f\': Could not open ' +- 'file: bad: No such file or directory\n') ++ 'Error: Invalid value for \'--file\' / \'-f\': ' ++ '\'bad\': No such file or directory\n') + + def test_not_subscribed_without_display_name(self): + with NamedTemporaryFile('w', buffering=1, encoding='utf-8') as infp: +--- a/src/mailman/commands/tests/test_cli_syncmembers.py ++++ b/src/mailman/commands/tests/test_cli_syncmembers.py +@@ -58,8 +58,8 @@ class TestCLISyncMembers(unittest.TestCase): + result.output, + 'Usage: syncmembers [OPTIONS] FILENAME LISTSPEC\n' + 'Try \'syncmembers --help\' for help.\n\n' +- 'Error: Invalid value for \'FILENAME\': Could not open ' +- 'file: bad: No such file or directory\n') ++ 'Error: Invalid value for \'FILENAME\': ' ++ '\'bad\': No such file or directory\n') + + def test_sync_invalid_email(self): + with NamedTemporaryFile('w', buffering=1, encoding='utf-8') as infp: +@@ -374,8 +374,8 @@ class TestCLISyncMembers(unittest.TestCase): + 'Usage: syncmembers [OPTIONS] FILENAME LISTSPEC\n' + 'Try \'syncmembers --help\' for help.\n\n' + 'Error: Invalid value for \'--delivery\' / \'-d\': ' +- 'invalid choice: bogus. (choose from regular, mime, ' +- 'plain, summary, disabled)\n') ++ '\'bogus\' is not one of \'regular\', \'mime\', ' ++ '\'plain\', \'summary\', \'disabled\'.\n') + + def test_override_no_welcome(self): + self._mlist.send_welcome_message = False diff --git a/net-mail/mailman/files/mailman-3.3.4-py3.9-importlib.patch b/net-mail/mailman/files/mailman-3.3.4-py3.9-importlib.patch new file mode 100644 index 000000000000..f8771678b3e9 --- /dev/null +++ b/net-mail/mailman/files/mailman-3.3.4-py3.9-importlib.patch @@ -0,0 +1,73 @@ +From 0eced2d273535577645493340c7319ebf27a559c Mon Sep 17 00:00:00 2001 +From: Neal Gompa <ngompa13@gmail.com> +Date: Fri, 16 Oct 2020 03:47:38 -0400 +Subject: [PATCH] Use importlib.resources for Python 3.9+ and + importlib_resources otherwise + +This makes it possible to use Mailman 3 in environments where importlib_resources +is not available. + +Signed-off-by: Neal Gompa <ngompa13@gmail.com> +--- + setup.py | 2 +- + src/mailman/__init__.py | 5 +++++ + src/mailman/testing/__init__.py | 23 +++++++++++++++++++++++ + 3 files changed, 29 insertions(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index cd3645611..6d871fbfd 100644 +--- a/setup.py ++++ b/setup.py +@@ -121,7 +121,7 @@ case second 'm'. Any other spelling is incorrect.""", + 'flufl.bounce', + 'flufl.i18n>=2.0', + 'flufl.lock>=3.1', +- 'importlib_resources>=1.1.0', ++ 'importlib_resources>=1.1.0 ; python_version<"3.9"', + 'gunicorn', + 'lazr.config', + 'python-dateutil>=2.0', +diff --git a/src/mailman/__init__.py b/src/mailman/__init__.py +index 2d94288e0..1c760008d 100644 +--- a/src/mailman/__init__.py ++++ b/src/mailman/__init__.py +@@ -37,3 +37,8 @@ if 'build_sphinx' not in sys.argv: # pragma: nocover + else: + from mailman.core.i18n import initialize + initialize() ++ ++# Switch over to the internal importlib.resources module on Python 3.9+ ++if sys.version_info >= (3, 9, 0): ++ import importlib.resources ++ sys.modules['importlib_resources'] = importlib.resources +diff --git a/src/mailman/testing/__init__.py b/src/mailman/testing/__init__.py +index e69de29bb..2b2ed536a 100644 +--- a/src/mailman/testing/__init__.py ++++ b/src/mailman/testing/__init__.py +@@ -0,0 +1,23 @@ ++# Copyright (C) 2009-2020 by the Free Software Foundation, Inc. ++# ++# This file is part of GNU Mailman. ++# ++# GNU Mailman is free software: you can redistribute it and/or modify it under ++# the terms of the GNU General Public License as published by the Free ++# Software Foundation, either version 3 of the License, or (at your option) ++# any later version. ++# ++# GNU Mailman is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for ++# more details. ++# ++# You should have received a copy of the GNU General Public License along with ++# GNU Mailman. If not, see <https://www.gnu.org/licenses/>. ++ ++import sys ++ ++# Switch over to the internal importlib.resources module on Python 3.9+ ++if sys.version_info >= (3, 9, 0): ++ import importlib.resources ++ sys.modules['importlib_resources'] = importlib.resources +-- +GitLab + diff --git a/net-mail/mailman/mailman-3.3.4.ebuild b/net-mail/mailman/mailman-3.3.4.ebuild new file mode 100644 index 000000000000..d6f428c545b1 --- /dev/null +++ b/net-mail/mailman/mailman-3.3.4.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..9} ) +inherit distutils-r1 + +DESCRIPTION="Mailman -- the GNU mailing list manager" +HOMEPAGE="https://www.list.org" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="GPL-3+" +SLOT="3" +KEYWORDS="~amd64" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-python/aiosmtpd-1.4.1[${PYTHON_USEDEP}] + dev-python/alembic[${PYTHON_USEDEP}] + dev-python/atpublic[${PYTHON_USEDEP}] + >=dev-python/authheaders-0.13.0[${PYTHON_USEDEP}] + >=dev-python/authres-1.0.1[${PYTHON_USEDEP}] + >=dev-python/click-8.0[${PYTHON_USEDEP}] + >=dev-python/dnspython-1.14.0[${PYTHON_USEDEP}] + >=dev-python/falcon-2.0.0[${PYTHON_USEDEP}] + dev-python/flufl-bounce[${PYTHON_USEDEP}] + >=dev-python/flufl-i18n-2.0.1[${PYTHON_USEDEP}] + >=dev-python/flufl-lock-3.1[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/importlib_resources[${PYTHON_USEDEP}] + ' python3_8) + www-servers/gunicorn[${PYTHON_USEDEP}] + dev-python/lazr-config[${PYTHON_USEDEP}] + >=dev-python/python-dateutil-2.0[${PYTHON_USEDEP}] + dev-python/passlib[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + <dev-python/sqlalchemy-1.4[${PYTHON_USEDEP}] + dev-python/zope-component[${PYTHON_USEDEP}] + dev-python/zope-configuration[${PYTHON_USEDEP}] + dev-python/zope-event[${PYTHON_USEDEP}] + >=dev-python/zope-interface-5.0[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/flufl-testing[${PYTHON_USEDEP}] + virtual/python-greenlet[${PYTHON_USEDEP}] + ) +" + +PATCHES=( + "${FILESDIR}/${P}-py3.9-importlib.patch" + "${FILESDIR}/${P}-fix-click-8.patch" +) + +python_test() { + distutils_install_for_testing --via-venv + "${EPYTHON}" -m nose2 -vv || die "Tests failed with ${EPYTHON}" +} |