Notification time stamped 2023-05-13 21:59:32 UTC
From cb382c5e443e4e36e4363eb93a6df09743119c61 Mon Sep 17 00:00:00 2001
From: Python Maint <python-maint(a)redhat.com>
Date: Oct 03 2022 09:24:49 +0000
Subject: Retired: Fails to install with Python 3.11
See
https://bugzilla.redhat.com/show_bug.cgi?id=2098746
And
https://pagure.io/fesco/issue/2876
---
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 99b3b75..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/mailman-3.2.2.tar.gz
-/mailman-3.3.2rc2.tar.gz
-/mailman-3.3.4.tar.gz
diff --git a/README.md b/README.md
deleted file mode 100644
index cea3471..0000000
--- a/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# mailman3
-
-The mailman3 package
\ No newline at end of file
diff --git a/dead.package b/dead.package
new file mode 100644
index 0000000..48203dc
--- /dev/null
+++ b/dead.package
@@ -0,0 +1,4 @@
+Retired: Fails to install with Python 3.11
+
+See
https://bugzilla.redhat.com/show_bug.cgi?id=2098746
+And
https://pagure.io/fesco/issue/2876
diff --git a/mailman3-click8.patch b/mailman3-click8.patch
deleted file mode 100644
index 91fcf76..0000000
--- a/mailman3-click8.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 465c2ff847d462c1a9cf8f548093ba4b5be84c3b Mon Sep 17 00:00:00 2001
-From: Mark Sapiro <mark(a)msapiro.net>
-Date: Tue, 11 May 2021 18:14:59 -0700
-Subject: [PATCH] Require click >=8.0.0 and fix the tests it breaks.
-
----
- setup.py | 2 +-
- src/mailman/commands/docs/import.rst | 1 +
- src/mailman/commands/tests/test_cli_addmembers.py | 8 ++++----
- src/mailman/commands/tests/test_cli_delmembers.py | 4 ++--
- src/mailman/commands/tests/test_cli_syncmembers.py | 8 ++++----
- 5 files changed, 12 insertions(+), 11 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index cd36456..ad04e77 100644
---- a/setup.py
-+++ b/setup.py
-@@ -115,7 +115,7 @@ case second 'm'. Any other spelling is
incorrect.""",
- 'atpublic',
- 'authheaders>=0.9.2',
- 'authres>=1.0.1',
-- 'click>=7.0.0',
-+ 'click>=8.0.0',
- 'dnspython>=1.14.0',
- 'falcon>1.0.0',
- 'flufl.bounce',
-diff --git a/src/mailman/commands/docs/import.rst b/src/mailman/commands/docs/import.rst
-index 947d932..66f72be 100644
---- 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(a)example.com ' + pickle_file)
-+ Importing ...
- >>> print(mlist.display_name)
- Test
-diff --git a/src/mailman/commands/tests/test_cli_addmembers.py
b/src/mailman/commands/tests/test_cli_addmembers.py
-index e257da5..95f8542 100644
---- 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:
-diff --git a/src/mailman/commands/tests/test_cli_delmembers.py
b/src/mailman/commands/tests/test_cli_delmembers.py
-index cf24b54..e34c22a 100644
---- 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:
-diff --git a/src/mailman/commands/tests/test_cli_syncmembers.py
b/src/mailman/commands/tests/test_cli_syncmembers.py
-index 658b867..faed507 100644
---- 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
---
-2.32.0
-
diff --git a/mailman3-digests.service b/mailman3-digests.service
deleted file mode 100644
index d6b018f..0000000
--- a/mailman3-digests.service
+++ /dev/null
@@ -1,8 +0,0 @@
-[Unit]
-Description=Sends Mailman digests
-
-[Service]
-Type=oneshot
-ExecStart=/usr/bin/mailman3 digests --send
-User=mailman
-Group=mailman
diff --git a/mailman3-digests.timer b/mailman3-digests.timer
deleted file mode 100644
index 02b6420..0000000
--- a/mailman3-digests.timer
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=Run mailman3-digests.service every day
-
-[Timer]
-OnCalendar=*-*-* 04:00:00
-RandomizedDelaySec=3600
-Persistent=true
-
-[Install]
-WantedBy=basic.target
diff --git a/mailman3-do-not-assume-sapce-in-banner.patch
b/mailman3-do-not-assume-sapce-in-banner.patch
deleted file mode 100644
index 95c42d5..0000000
--- a/mailman3-do-not-assume-sapce-in-banner.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/mailman/utilities/tests/test_interact.py
b/src/mailman/utilities/tests/test_interact.py
-index 24c186c..dca1866 100644
---- a/src/mailman/utilities/tests/test_interact.py
-+++ b/src/mailman/utilities/tests/test_interact.py
-@@ -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):
diff --git a/mailman3-subject-prefix.patch b/mailman3-subject-prefix.patch
deleted file mode 100644
index 261d777..0000000
--- a/mailman3-subject-prefix.patch
+++ /dev/null
@@ -1,224 +0,0 @@
-From d3dbbbfe7e660e2f5f3fe953c434f9cb163cd423 Mon Sep 17 00:00:00 2001
-From: Neal Gompa <ngompa13(a)gmail.com>
-Date: Thu, 15 Oct 2020 10:30:07 -0400
-Subject: [PATCH] Cover some subject prefix use cases
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The subject_prefix handler has many bugs and was mostly not covered
-for lists with a non-ascii charset.
-
-Co-authored-by: Aurélien Bompard <aurelien(a)bompard.org>
-Signed-off-by: Neal Gompa <ngompa13(a)gmail.com>
----
- src/mailman/handlers/subject_prefix.py | 19 +++--
- .../handlers/tests/test_subject_prefix.py | 81 +++++++++++++++++--
- 2 files changed, 87 insertions(+), 13 deletions(-)
-
-diff --git a/src/mailman/handlers/subject_prefix.py
b/src/mailman/handlers/subject_prefix.py
-index 0f0180563..7f1761b53 100644
---- a/src/mailman/handlers/subject_prefix.py
-+++ b/src/mailman/handlers/subject_prefix.py
-@@ -39,13 +39,12 @@ def ascii_header(mlist, msgdata, subject, prefix, prefix_pattern,
ws):
- if charset not in ASCII_CHARSETS:
- return None
- subject_text = EMPTYSTRING.join(str(subject).splitlines())
-+ subject_text = re.sub(prefix_pattern, '', subject_text)
- # At this point, the subject may become null if someone posted mail
- # with "Subject: [subject prefix]".
- if subject_text.strip() == '':
- with _.using(mlist.preferred_language.code):
- subject_text = _('(no subject)')
-- else:
-- subject_text = re.sub(prefix_pattern, '', subject_text)
- msgdata['stripped_subject'] = subject_text
- rematch = re.match(RE_PATTERN, subject_text, re.I)
- if rematch:
-@@ -83,13 +82,12 @@ def all_same_charset(mlist, msgdata, subject, prefix, prefix_pattern,
ws):
- if charset != list_charset:
- return None
- subject_text = EMPTYSTRING.join(chunks)
-+ subject_text = re.sub(prefix_pattern, '', subject_text)
- # At this point, the subject may become null if someone posted mail
- # with "Subject: [subject prefix]".
- if subject_text.strip() == '':
-- with _.push(mlist.preferred_language.code):
-+ with _.using(mlist.preferred_language.code):
- subject_text = _('(no subject)')
-- else:
-- subject_text = re.sub(prefix_pattern, '', subject_text)
- msgdata['stripped_subject'] = subject_text
- rematch = re.match(RE_PATTERN, subject_text, re.I)
- if rematch:
-@@ -114,7 +112,7 @@ def mixed_charsets(mlist, msgdata, subject, prefix, prefix_pattern,
ws):
- list_charset = mlist.preferred_language.charset
- chunks = decode_header(subject.encode())
- if len(chunks) == 0:
-- with _.push(mlist.preferred_language.code):
-+ with _.using(mlist.preferred_language.code):
- subject_text = _('(no subject)')
- chunks = [(prefix, list_charset),
- (subject_text, list_charset),
-@@ -134,13 +132,20 @@ def mixed_charsets(mlist, msgdata, subject, prefix, prefix_pattern,
ws):
- chunks.insert(0, ('', 'us-ascii'))
- first_text = ''
- first_text = re.sub(prefix_pattern, '', first_text).lstrip()
-+ if not first_text.strip() and len(chunks) <= 1:
-+ with _.using(mlist.preferred_language.code):
-+ subject_text = _('(no subject)')
-+ chunks = [(prefix.strip(), list_charset),
-+ (subject_text, list_charset),
-+ ]
-+ return make_header(chunks, continuation_ws=ws)
- rematch = re.match(RE_PATTERN, first_text, re.I)
- if rematch:
- first_text = 'Re: ' + first_text[rematch.end():]
- chunks[0] = (first_text, chunk_charset)
- # The subject text stripped of the prefix, for use in the NNTP gateway.
- msgdata['stripped_subject'] = str(make_header(chunks, continuation_ws=ws))
-- chunks.insert(0, (prefix, list_charset))
-+ chunks.insert(0, (prefix.strip(), list_charset))
- return make_header(chunks, continuation_ws=ws)
-
-
-diff --git a/src/mailman/handlers/tests/test_subject_prefix.py
b/src/mailman/handlers/tests/test_subject_prefix.py
-index fe6f57643..916e201ca 100644
---- a/src/mailman/handlers/tests/test_subject_prefix.py
-+++ b/src/mailman/handlers/tests/test_subject_prefix.py
-@@ -33,6 +33,13 @@ class TestSubjectPrefix(unittest.TestCase):
- def setUp(self):
- self._mlist = create_list('test(a)example.com')
- self._process = config.handlers['subject-prefix'].process
-+ language_manager = getUtility(ILanguageManager)
-+ if 'xx' not in language_manager:
-+ language_manager.add('xx', 'utf-8', 'Freedonia')
-+
-+ def tearDown(self):
-+ # The LanguageManager may need a 'remove' method.
-+ del getUtility(ILanguageManager)._languages['xx']
-
- def test_isdigest(self):
- # If the message is destined for the digest, the Subject header does
-@@ -114,6 +121,14 @@ class TestSubjectPrefix(unittest.TestCase):
- self._process(self._mlist, msg, {})
- self.assertEqual(str(msg['subject']), '[Test] A test message')
-
-+ def test_multiline_subject_non_ascii_list(self):
-+ # The subject appears on multiple lines on a non-ascii list.
-+ self._mlist.preferred_language = 'xx'
-+ msg = Message()
-+ msg['Subject'] = '\n A test message'
-+ self._process(self._mlist, msg, {})
-+ self.assertEqual(str(msg['subject']), '[Test] A test message')
-+
- def test_i18n_prefix(self):
- # The Subject header is encoded, but the prefix is still added.
- msg = Message()
-@@ -130,7 +145,7 @@ class TestSubjectPrefix(unittest.TestCase):
- msg['Subject'] = '[Test] '
- self._process(self._mlist, msg, {})
- subject = msg['subject']
-- self.assertEqual(str(subject), '[Test] ')
-+ self.assertEqual(str(subject), '[Test] (no subject)')
-
- def test_prefix_only_all_same(self):
- # Incoming subject is only the prefix.
-@@ -141,7 +156,7 @@ class TestSubjectPrefix(unittest.TestCase):
- self._process(self._mlist, msg, {})
- self._mlist.preferred_language.charset = old_charset
- subject = msg['subject']
-- self.assertEqual(str(subject), '[Test] ')
-+ self.assertEqual(str(subject), '[Test] (no subject)')
-
- def test_prefix_only_mixed(self):
- # Incoming subject is only the prefix.
-@@ -149,7 +164,7 @@ class TestSubjectPrefix(unittest.TestCase):
- msg['Subject'] = '=?utf-8?Q?[Test]_?='
- self._process(self._mlist, msg, {})
- subject = msg['subject']
-- self.assertEqual(str(subject), '[Test] ')
-+ self.assertEqual(str(subject), '[Test] (no subject)')
-
- def test_re_only(self):
- # Incoming subject is only Re:.
-@@ -198,15 +213,13 @@ class TestSubjectPrefix(unittest.TestCase):
- def test_decode_header_returns_string(self):
- # Under some circumstances, email.header.decode_header() returns a
- # string value. Ensure we can handle that.
-- manager = getUtility(ILanguageManager)
-- manager.add('xx', 'iso-8859-1', 'Xlandia')
- self._mlist.preferred_language = 'xx'
- msg = Message()
- msg['Subject'] = 'Plain text'
- self._process(self._mlist, msg, {})
- subject = msg['subject']
- self.assertEqual(subject.encode(),
-- '=?iso-8859-1?q?=5BTest=5D_?= Plain text')
-+ '=?utf-8?b?W1Rlc3Rd?= Plain text')
-
- def test_unknown_encoded_subject(self):
- msg = Message()
-@@ -215,3 +228,59 @@ class TestSubjectPrefix(unittest.TestCase):
- subject = msg['subject']
- self.assertEqual(str(subject),
- '[Test] Non-ascii subject - fran�ais')
-+
-+ def test_non_ascii_list(self):
-+ # The mailing list has a non-ascii language
-+ self._mlist.preferred_language = 'xx'
-+ msg = Message()
-+ msg['Subject'] = 'A test message'
-+ self._process(self._mlist, msg, {})
-+ self.assertEqual(str(msg['subject']), '[Test] A test message')
-+
-+ def test_no_subject(self):
-+ # The email has no subject
-+ msg = Message()
-+ msg['Subject'] = ''
-+ self._process(self._mlist, msg, {})
-+ self.assertEqual(str(msg['subject']), '[Test] (no subject)')
-+
-+ def test_no_subject_non_ascii_list(self):
-+ # The email has no subject on a non-ascii list
-+ self._mlist.preferred_language = 'xx'
-+ msg = Message()
-+ msg['Subject'] = ''
-+ self._process(self._mlist, msg, {})
-+ self.assertEqual(str(msg['subject']), '[Test] (no subject)')
-+
-+ def test_no_real_subject(self):
-+ # The email has no subject
-+ msg = Message()
-+ msg['Subject'] = '[Test] '
-+ self._process(self._mlist, msg, {})
-+ self.assertEqual(str(msg['subject']), '[Test] (no subject)')
-+
-+ def test_no_real_subject_non_ascii_list(self):
-+ # The email has no subject on a non-ascii list
-+ self._mlist.preferred_language = 'xx'
-+ msg = Message()
-+ msg['Subject'] = '[Test] '
-+ self._process(self._mlist, msg, {})
-+ self.assertEqual(str(msg['subject']), '[Test] (no subject)')
-+
-+ def test_non_ascii_subject_and_list(self):
-+ # The mailing list has a non-ascii language and the subject is
-+ # non-ascii with the same encoding.
-+ self._mlist.preferred_language = 'xx'
-+ msg = Message()
-+ msg['Subject'] = '=?utf-8?q?d=C3=A9sirable?='
-+ self._process(self._mlist, msg, {})
-+ self.assertEqual(str(msg['subject']), '[Test] d\xe9sirable')
-+
-+ def test_non_ascii_empty_subject_and_non_ascii_list(self):
-+ # The mailing list has a non-ascii language and the subject is
-+ # non-ascii with the same encoding, but actually empty.
-+ self._mlist.preferred_language = 'xx'
-+ msg = Message()
-+ msg['Subject'] = '=?utf-8?q?[Test]_?='
-+ self._process(self._mlist, msg, {})
-+ self.assertEqual(str(msg['subject']), '[Test] (no subject)')
---
-2.30.1
-
diff --git a/mailman3-tmpfiles.conf b/mailman3-tmpfiles.conf
deleted file mode 100644
index 750231e..0000000
--- a/mailman3-tmpfiles.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-d /var/lock/mailman3 0755 mailman mailman
-d /var/run/mailman3 0755 mailman mailman
diff --git a/mailman3-use-either-importlib_resources-or-directly-importlib.patch
b/mailman3-use-either-importlib_resources-or-directly-importlib.patch
deleted file mode 100644
index ce1f158..0000000
--- a/mailman3-use-either-importlib_resources-or-directly-importlib.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 0eced2d273535577645493340c7319ebf27a559c Mon Sep 17 00:00:00 2001
-From: Neal Gompa <ngompa13(a)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(a)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
---
-2.30.1
-
diff --git a/mailman3.cfg b/mailman3.cfg
deleted file mode 100644
index 2fd5df6..0000000
--- a/mailman3.cfg
+++ /dev/null
@@ -1,26 +0,0 @@
-# This is the absolute bare minimum base configuration file. User supplied
-# configurations are pushed onto this.
-
-[mailman]
-# This address is the "site owner" address. Certain messages which must be
-# delivered to a human, but which can't be delivered to a list owner (e.g. a
-# bounce from a list owner), will be sent to this address. It should point to
-# a human.
-site_owner: root@localhost
-
-# The local URL part to the administration interface (Postorius).
-# The full URL will be constructed by prepending the domain URL set in the
-# list's domain properties.
-#listinfo_url = /postorius/
-
-
-# Set the paths to be Fedora-compliant
-layout: fhs
-[paths.fhs]
-bin_dir: /usr/libexec/mailman3
-var_dir: /var/lib/mailman3
-queue_dir: /var/spool/mailman3
-log_dir: /var/log/mailman3
-lock_dir: /run/lock/mailman3
-ext_dir: /etc/mailman3.d
-pid_file: /run/mailman3/master.pid
diff --git a/mailman3.logrotate b/mailman3.logrotate
deleted file mode 100644
index 644530d..0000000
--- a/mailman3.logrotate
+++ /dev/null
@@ -1,11 +0,0 @@
-@LOGDIR(a)/*.log {
- missingok
- sharedscripts
- su mailman mailman
- postrotate
- /bin/kill -HUP `cat /run/mailman3/master.pid 2>/dev/null` 2>/dev/null ||
true
- # Don't run "mailman3 reopen" with SELinux on here in the
logrotate
- # context, it will be blocked
- #@BINDIR@/mailman3 reopen >/dev/null 2>&1 || true
- endscript
-}
diff --git a/mailman3.service b/mailman3.service
deleted file mode 100644
index 4ee57d9..0000000
--- a/mailman3.service
+++ /dev/null
@@ -1,25 +0,0 @@
-# It's not recommended to modify this file in-place, because it will be
-# overwritten during package upgrades. If you want to customize, the
-# best way is to create a file "/etc/systemd/system/mailman3.service",
-# containing
-# .include /usr/lib/systemd/system/mailman3.service
-# ...make your changes here...
-# For more info about custom unit files, see
-#
http://fedoraproject.org/wiki/Systemd#How_do_I_customize_a_unit_file.2F_a...
-
-
-[Unit]
-Description=GNU Mailing List Manager
-After=syslog.target network.target
-
-[Service]
-Type=forking
-PIDFile=/run/mailman3/master.pid
-User=mailman
-Group=mailman
-ExecStart=/usr/bin/mailman3 start --force
-ExecReload=/usr/bin/mailman3 restart
-ExecStop=/usr/bin/mailman3 stop
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mailman3.spec b/mailman3.spec
deleted file mode 100644
index 725557a..0000000
--- a/mailman3.spec
+++ /dev/null
@@ -1,421 +0,0 @@
-%global pypi_name mailman
-
-%global baseversion 3.3.4
-#global prerelease rc2
-
-# The user and group Mailman will run as, same values as in the mailman 2 RPM
-%global mmuser mailman
-%global mmuserid 41
-%global mmgroup mailman
-%global mmgroupid 41
-
-%{?python_enable_dependency_generator}
-
-
-Name: mailman3
-Version: %{baseversion}%{?prerelease:~%{prerelease}}
-Release: 7%{?dist}
-Summary: The GNU mailing list manager
-
-License: GPLv3
-URL:
http://www.list.org
-Source0:
https://pypi.python.org/packages/source/m/%{pypi_name}/%{pypi_name}-%{bas...
-Source1: mailman3.cfg
-Source2: mailman3-tmpfiles.conf
-Source3: mailman3.service
-Source4: mailman3.logrotate
-Source5: mailman3-digests.service
-Source6: mailman3-digests.timer
-
-# <
https://gitlab.com/mailman/mailman/-/merge_requests/860>
-Patch01: %{name}-click8.patch
-# <
https://gitlab.com/mailman/mailman/merge_requests/721>
-Patch11: %{name}-subject-prefix.patch
-# <
https://gitlab.com/mailman/mailman/merge_requests/722>
-Patch14: %{name}-use-either-importlib_resources-or-directly-importlib.patch
-
-# Fix a test failure that only fails becasue of an extra/missing space
-# No idea how severe this is, but it does not appear to be
-# See
https://bugzilla.redhat.com/show_bug.cgi?id=1900668#c9
-Patch15: %{name}-do-not-assume-sapce-in-banner.patch
-
-BuildArch: noarch
-
-%if 0%{?fedora} || 0%{?rhel} >= 8
-# Ensure that tests will work...
-BuildRequires: glibc-langpack-en
-%endif
-
-BuildRequires: python%{python3_pkgversion}-devel >= 3.5
-BuildRequires: python%{python3_pkgversion}-setuptools
-
-%if %{undefined python_enable_dependency_generator}
-Requires: python%{python3_pkgversion} >= 3.5
-Requires: python%{python3_pkgversion}-setuptools
-Requires: python%{python3_pkgversion}-aiosmtpd >= 1.4.1
-Requires: python%{python3_pkgversion}-alembic
-Requires: python%{python3_pkgversion}-atpublic
-Requires: python%{python3_pkgversion}-authheaders >= 0.9.2
-Requires: python%{python3_pkgversion}-authres >= 1.0.1
-Requires: python%{python3_pkgversion}-click >= 8.0
-Requires: python%{python3_pkgversion}-dateutil >= 2.0
-Requires: python%{python3_pkgversion}-dns >= 1.14.0
-Requires: python%{python3_pkgversion}-falcon > 1.0.0
-Requires: python%{python3_pkgversion}-flufl-bounce
-Requires: python%{python3_pkgversion}-flufl-i18n >= 2.0.1
-Requires: python%{python3_pkgversion}-flufl-lock >= 3.1
-Requires: python%{python3_pkgversion}-gunicorn
-Requires: python%{python3_pkgversion}-lazr-config
-# Versionned dep on python-passlib, or else it fails with AttributeError in
-# mailman/utilities/passwords.py", line 43: 'CryptContext' has no attribute
'from_string'
-Requires: python%{python3_pkgversion}-passlib >= 1.6.0
-Requires: python%{python3_pkgversion}-requests
-Requires: python%{python3_pkgversion}-sqlalchemy1.3 >= 1.2.3
-Requires: python%{python3_pkgversion}-zope-component
-Requires: python%{python3_pkgversion}-zope-configuration
-Requires: python%{python3_pkgversion}-zope-event
-Requires: python%{python3_pkgversion}-zope-interface >= 5.0
-%if (%{defined fedora} && 0%{?fedora} < 29) || (%{defined rhel} &&
0%{?rhel} < 9)
-Requires: python%{python3_pkgversion}-importlib-resources
-%endif
-%endif
-
-# To run the test suite:
-BuildRequires: python%{python3_pkgversion}-aiosmtpd >= 1.4.1
-BuildRequires: python%{python3_pkgversion}-alembic
-BuildRequires: python%{python3_pkgversion}-atpublic
-BuildRequires: python%{python3_pkgversion}-authheaders >= 0.9.2
-BuildRequires: python%{python3_pkgversion}-authres >= 1.0.1
-BuildRequires: python%{python3_pkgversion}-click >= 8.0
-BuildRequires: python%{python3_pkgversion}-dateutil >= 2.0
-BuildRequires: python%{python3_pkgversion}-dns >= 1.14.0
-BuildRequires: python%{python3_pkgversion}-falcon > 1.0.0
-BuildRequires: python%{python3_pkgversion}-flufl-bounce
-BuildRequires: python%{python3_pkgversion}-flufl-i18n >= 2.0.1
-BuildRequires: python%{python3_pkgversion}-flufl-lock >= 3.1
-BuildRequires: python%{python3_pkgversion}-flufl-testing
-BuildRequires: python%{python3_pkgversion}-gunicorn
-BuildRequires: python%{python3_pkgversion}-lazr-config
-BuildRequires: python%{python3_pkgversion}-lazr-smtptest
-BuildRequires: python%{python3_pkgversion}-mock
-BuildRequires: python%{python3_pkgversion}-nose2
-BuildRequires: python%{python3_pkgversion}-passlib >= 1.6.0
-BuildRequires: python%{python3_pkgversion}-psycopg2
-BuildRequires: python%{python3_pkgversion}-requests
-BuildRequires: python%{python3_pkgversion}-sqlalchemy1.3 >= 1.2.3
-BuildRequires: python%{python3_pkgversion}-zope-component
-BuildRequires: python%{python3_pkgversion}-zope-configuration
-BuildRequires: python%{python3_pkgversion}-zope-event
-BuildRequires: python%{python3_pkgversion}-zope-interface >= 5.0
-%if (%{defined fedora} && 0%{?fedora} < 29) || (%{defined rhel} &&
0%{?rhel} < 9)
-BuildRequires: python%{python3_pkgversion}-importlib-resources
-%endif
-
-# SELinux
https://fedoraproject.org/wiki/SELinux/IndependentPolicy#Creating_the_Spe...
-Provides: %{name}-selinux == %{version}-%{release}
-%global selinux_variants mls targeted
-Requires: selinux-policy >= %{_selinux_policy_version}
-BuildRequires: git
-BuildRequires: pkgconfig(systemd)
-BuildRequires: selinux-policy
-BuildRequires: selinux-policy-devel
-Requires(post): selinux-policy-base >= %{_selinux_policy_version}
-Requires(post): libselinux-utils
-Requires(post): policycoreutils
-%if 0%{?fedora} || 0%{?rhel} >= 8
-Requires(post): policycoreutils-python-utils
-%else
-Requires(post): policycoreutils-python
-%endif
-# SELinux
https://fedoraproject.org/wiki/SELinux_Policy_Modules_Packaging_Draft
-BuildRequires: checkpolicy, selinux-policy-devel
-BuildRequires: hardlink
-
-# Scriptlets
-%{?systemd_requires}
-BuildRequires: systemd
-Requires(pre): shadow-utils
-
-
-%description
-This is GNU Mailman, a mailing list management system distributed under the
-terms of the GNU General Public License (GPL) version 3 or later. The name of
-this software is spelled 'Mailman' with a leading capital 'M' but with a
lower
-case second `m'. Any other spelling is incorrect.
-
-
-%prep
-%autosetup -p1 -n %{pypi_name}-%{baseversion}%{?prerelease}
-
-# SELinux
-mkdir SELinux
-echo '%{_localstatedir}/lib/%{name}/data(/.*)?
gen_context(system_u:object_r:etc_mail_t,s0)' \
- > SELinux/%{name}.fc
-# remember to bump the following version if the policy is updated
-cat > SELinux/%{name}.te << EOF
-policy_module(%{name}, 1.4)
-EOF
-
-
-%build
-%py3_build
-
-cd SELinux
-for selinuxvariant in %{selinux_variants}; do
- make NAME=${selinuxvariant} -f /usr/share/selinux/devel/Makefile
- mv %{name}.pp %{name}.pp.${selinuxvariant}
- make NAME=${selinuxvariant} -f /usr/share/selinux/devel/Makefile clean
-done
-cd -
-
-
-%install
-%py3_install
-
-# move scripts away from _bindir to avoid conflicts and create a wrapper script
-mkdir -p %{buildroot}%{_libexecdir}/%{name}
-mv %{buildroot}%{_bindir}/* %{buildroot}%{_libexecdir}/%{name}/
-cat > %{buildroot}%{_bindir}/%{name} << EOF
-#!/bin/sh
-if [ "\$(whoami)" != "mailman" ]; then
- echo "This command must be run under the mailman user."
- exit 1
-fi
-%{_libexecdir}/%{name}/mailman \$@
-EOF
-chmod +x %{buildroot}%{_bindir}/%{name}
-
-# service files
-install -D -m 0640 %{SOURCE1} %{buildroot}%{_sysconfdir}/mailman.cfg
-install -D -m 0644 %{SOURCE2} %{buildroot}%{_prefix}/lib/tmpfiles.d/%{name}.conf
-install -D -m 0644 %{SOURCE3} %{buildroot}%{_unitdir}/%{name}.service
-mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d/
-sed -e 's,@LOGDIR@,%{_localstatedir}/log/%{name},g;s,@BINDIR@,%{_bindir},g' \
- %{SOURCE4} > %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
-# periodic task
-install -D -m 0644 %{SOURCE5} %{buildroot}%{_unitdir}/%{name}-digests.service
-install -D -m 0644 %{SOURCE6} %{buildroot}%{_unitdir}/%{name}-digests.timer
-
-mkdir -p %{buildroot}%{_localstatedir}/{lib,spool,log}/%{name}
-mkdir -p %{buildroot}/run/%{name} %{buildroot}/run/lock/%{name}
-mkdir -p %{buildroot}%{_sysconfdir}/%{name}.d
-# Mailman will auto-create the following dir, but not with the correct group
-# owner (MTAs such as Postfix must read and write to it). Set it here in RPM's
-# file listing.
-mkdir -p %{buildroot}%{_localstatedir}/lib/%{name}/data
-
-# SELinux
-for selinuxvariant in %{selinux_variants}; do
- install -d %{buildroot}%{_datadir}/selinux/${selinuxvariant}
- install -p -m 644 SELinux/%{name}.pp.${selinuxvariant} \
- %{buildroot}%{_datadir}/selinux/${selinuxvariant}/%{name}.pp
-done
-hardlink -cv %{buildroot}%{_datadir}/selinux
-
-
-%check
-# tests need a proper locale
-export LANG=en_US.UTF-8
-export LC_ALL=en_US.UTF-8
-# Mailman3 can only be tested when its installed (it starts runners and won't
-# find the buildroot), so we use a venv
-%{__python3} -m venv --system-site-packages --without-pip --clear venv
-venv/bin/python setup.py develop
-venv/bin/python -m nose2 -v
-
-
-%pre
-# User & Group
-getent group %{mmgroup} >/dev/null || \
- groupadd -g %{mmgroupid} %{mmgroup} >/dev/null
-getent passwd %{mmuser} >/dev/null || \
- useradd -r -u %{mmuserid} -g %{mmgroupid} -d %{_localstatedir}/lib/%{name} -s
/sbin/nologin \
- -c "Mailman, the mailing-list manager" %{mmuser} >/dev/null
-# SELinux
-for selinuxvariant in %{selinux_variants}; do
- %selinux_relabel_pre -s ${selinuxvariant}
-done
-
-%post
-# Service
-%systemd_post %{name}.service %{name}-digests.timer
-# SELinux
-for selinuxvariant in %{selinux_variants}; do
- %selinux_modules_install -s ${selinuxvariant}
%{_datadir}/selinux/${selinuxvariant}/%{name}.pp || :
-done
-
-%preun
-# Service
-%systemd_preun %{name}.service %{name}-digests.timer
-
-%postun
-# Service
-%systemd_postun_with_restart %{name}.service %{name}-digests.timer
-# SELinux
-if [ $1 -eq 0 ] ; then
- for selinuxvariant in %{selinux_variants}; do
- %selinux_modules_uninstall -s ${selinuxvariant}
%{_datadir}/selinux/${selinuxvariant}/%{name}.pp || :
- done
-fi
-
-%posttrans
-# SELinux
-for selinuxvariant in %{selinux_variants}; do
- %selinux_relabel_post -s ${selinuxvariant}
-done
-
-
-%files
-%doc README.rst
-%license COPYING
-%{_bindir}/%{name}
-%{_libexecdir}/%{name}
-%{python3_sitelib}/%{pypi_name}
-%{python3_sitelib}/%{pypi_name}-*-py%{python3_version}.egg-info
-%{_unitdir}/*.service
-%{_unitdir}/*.timer
-%{_prefix}/lib/tmpfiles.d/%{name}.conf
-%config(noreplace) %attr(640,mailman,mailman) %{_sysconfdir}/mailman.cfg
-%dir %{_sysconfdir}/%{name}.d
-%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
-%dir %attr(755,mailman,mailman) %{_localstatedir}/lib/%{name}
-%dir %attr(2775,mailman,mail) %{_localstatedir}/lib/%{name}/data
-%dir %attr(755,mailman,mailman) %{_localstatedir}/spool/%{name}
-%dir %attr(755,mailman,mailman) %{_localstatedir}/log/%{name}
-%dir %attr(755,mailman,mailman) /run/%{name}
-%dir %attr(755,mailman,mailman) /run/lock/%{name}
-# SELinux
-%doc SELinux/*
-%{_datadir}/selinux/*/%{name}.pp
-
-
-%changelog
-* Thu Jul 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.3.4-7
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
-
-* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.3.4-6
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
-
-* Fri Sep 17 2021 Neal Gompa <ngompa(a)fedoraproject.org> - 3.3.4-5
-- Backport fix for click >= 8.0
-
-* Fri Sep 17 2021 Neal Gompa <ngompa(a)fedoraproject.org> - 3.3.4-4
-- Fix sqlalchemy dependency to < 1.4
-
-* Thu Jul 22 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.3.4-3
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
-
-* Fri Jun 04 2021 Python Maint <python-maint(a)redhat.com> - 3.3.4-2
-- Rebuilt for Python 3.10
-
-* Tue Mar 30 2021 Neal Gompa <ngompa13(a)gmail.com> - 3.3.4-1
-- Update to 3.3.4 to fix build
-- Refresh patch set
-
-* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek(a)in.waw.pl> - 3.3.2~rc2-3
-- Rebuilt for updated systemd-rpm-macros
- See
https://pagure.io/fesco/issue/2583.
-
-* Tue Jan 26 2021 Fedora Release Engineering <releng(a)fedoraproject.org> -
3.3.2~rc2-2
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
-
-* Fri Oct 16 2020 Neal Gompa <ngompa13(a)gmail.com> - 3.3.2~rc2-1
-- Update to 3.3.2rc2 to fix build
-- Refresh and clean up patch set
-
-* Sat Aug 01 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.2.2-5
-- Second attempt - Rebuilt for
-
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-
-* Tue Jul 28 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.2.2-4
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-
-* Thu Jun 18 2020 Marc Dequènes (Duck) <duck(a)redhat.com> - 3.2.2-3
-- backport patch to use new Python 3.9 files API, fixes tests hang,
- adapted for older importlib_resources library
-- backport patch to fix tests failing due to quote comparison
-- remove obsolete tweaking of Python macros
-
-* Tue May 26 2020 Miro Hrončok <mhroncok(a)redhat.com> - 3.2.2-2
-- Rebuilt for Python 3.9
-
-* Thu Mar 19 2020 Marc Dequènes (Duck) <duck(a)redhat.com> - 3.2.2-1
-- NUR
-- remove Python 3.7 support patch, applied upstream
-- refreshed/adapted patches
-- don't hardcode the path to `hardlink`
-- update and tighten dependencies
-- adapt tests after changes in mailman3-subject-prefix.patch
-- backport content-type fix for tests
-- use importlib.resources instead of importlib_resources is available
-- fix stale lock preventing mailman3.service from starting
- (see Debian#919160)
-- add upstream patch to fix compatibility with Python 3.7.4 and
- Python 3.8b4
-- ported upstream patch to fix compatibility with Python 3.8
-- upstream patch to fix model deletion and template init
-
-* Wed Jan 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.2.0-6
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
-
-* Mon Sep 30 2019 Aurelien Bompard <abompard(a)fedoraproject.org> - 3.2.0-5
-- Fix hardlink
-
-* Mon Aug 19 2019 Miro Hrončok <mhroncok(a)redhat.com> - 3.2.0-4
-- Rebuilt for Python 3.8
-
-* Thu Jul 25 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.2.0-3
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
-
-* Fri Feb 01 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.2.0-2
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
-
-* Fri Aug 03 2018 Aurelien Bompard <abompard(a)fedoraproject.org> - 3.2.0-1
-- Version 3.2.0
-- Update dependencies
-- Merge the -selinux subpackage
-- Use the SELinux macros
-
-* Tue Mar 06 2018 Aurelien Bompard <abompard(a)fedoraproject.org> - 3.1.1-0.7
-- Rebuild
-
-* Tue Feb 13 2018 Aurelien Bompard <abompard(a)fedoraproject.org> - 3.1.1-0.6
-- git update to 8207caa09
-
-* Mon May 29 2017 Aurelien Bompard <abompard(a)fedoraproject.org> - 3.1.1-0.1
-- version 3.1.0 final
-
-* Thu Feb 09 2017 Aurelien Bompard <abompard(a)fedoraproject.org> - 3.1.0-0.30
-- add a cron job to send digests daily
-
-* Wed Apr 29 2015 Aurelien Bompard <abompard(a)fedoraproject.org> - 3.0.0-1
-- version 3.0.0 final
-
-* Fri Jul 18 2014 Aurelien Bompard <abompard(a)fedoraproject.org> -
3.0.0-0.18.bzr7251
-- add Patch11 (missing PostgreSQL upgrade file)
-
-* Mon Nov 25 2013 Aurelien Bompard <abompard(a)fedoraproject.org> -
3.0.0-0.11.bzr7226
-- add SELinux policy module, according to:
-
http://fedoraproject.org/wiki/SELinux_Policy_Modules_Packaging_Draft
-
-* Sun Oct 27 2013 Aurelien Bompard <abompard(a)fedoraproject.org> -
3.0.0-0.10.bzr7226
-- update to BZR snapshot (rev7226)
-
-* Thu Aug 29 2013 Aurelien Bompard <abompard(a)fedoraproject.org> -
3.0.0-0.6.bzr7218
-- update to BZR snapshot (rev7218)
-
-* Wed Aug 28 2013 Aurelien Bompard <abompard(a)fedoraproject.org> -
3.0.0-0.6.bzr7217
-- update to BZR snapshot (rev7217)
-- drop patch 0
-- rename to mailman3 and make it parallel-installable with Mailman 2
-
-* Wed Jul 24 2013 Aurelien Bompard <abompard(a)fedoraproject.org> - 3:3.0.0-0.6
-- update to BZR snapshot (rev7215)
-- drop patch 1
-
-* Thu Mar 07 2013 Aurelien Bompard <abompard(a)fedoraproject.org> - 3:3.0.0-0.2.b3
-- update to beta3
-- add a systemd service and a default config file
-
-* Wed Nov 28 2012 Aurelien Bompard <abompard(a)fedoraproject.org> - 3.0.0b2-1
-- Initial package.
diff --git a/sources b/sources
deleted file mode 100644
index 9355f9b..0000000
--- a/sources
+++ /dev/null
@@ -1 +0,0 @@
-SHA512 (mailman-3.3.4.tar.gz) =
52d7e8355744730f608605b05bc9c977c3e4daf22a78267b1ea6cd3922b2826d3f70dd61a591f13633fc7cbcc536b6d56a2076c00752a6590964cbd4e1aec3cc
https://src.fedoraproject.org/rpms/mailman3/c/cb382c5e443e4e36e4363eb93a6...