From fc042c69e63e3213d4ee07668339abc00f45bb302d783708ff5988d596688aba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mark=C3=A9ta=20Machov=C3=A1?= Date: Wed, 2 Oct 2024 07:43:15 +0000 Subject: [PATCH] - Update to version 3.3.10 * See https://gitlab.com/mailman/mailman/-/blob/v3.3.10/src/mailman/docs/NEWS.rst or the file NEWS.rst in this package - Update to version 3.3.10b2 * See https://gitlab.com/mailman/mailman/-/blob/v3.3.10b2/src/mailman/docs/NEWS.rst or the file NEWS.rst in this package - Update to version 3.3.10b1 * See https://gitlab.com/mailman/mailman/-/blob/v3.3.10b1/src/mailman/docs/NEWS.rst or the file NEWS.rst in this package - Removed find-flufl.patch OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:mailman/python-mailman?expand=0&rev=96 --- .gitattributes | 23 ++ .gitignore | 1 + README.SUSE.md | 15 ++ _multibuild | 3 + find-flufl.patch | 30 +++ mailman-3.3.10.tar.gz | 3 + mailman-3.3.10.tar.gz.asc | 16 ++ mailman-3.3.9.tar.gz | 3 + mailman-digests.service | 8 + mailman-digests.timer | 10 + mailman-notify.service | 8 + mailman-notify.timer | 10 + mailman-tmpfiles.conf | 2 + mailman-user.conf | 3 + mailman.cfg | 26 +++ mailman.logrotate | 9 + mailman.service | 25 +++ python-mailman.changes | 450 ++++++++++++++++++++++++++++++++++++++ python-mailman.keyring | 90 ++++++++ python-mailman.rpmlintrc | 5 + python-mailman.spec | 309 ++++++++++++++++++++++++++ ssl_test_cert.crt | 21 ++ ssl_test_key.key | 28 +++ 23 files changed, 1098 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 README.SUSE.md create mode 100644 _multibuild create mode 100644 find-flufl.patch create mode 100644 mailman-3.3.10.tar.gz create mode 100644 mailman-3.3.10.tar.gz.asc create mode 100644 mailman-3.3.9.tar.gz create mode 100644 mailman-digests.service create mode 100644 mailman-digests.timer create mode 100644 mailman-notify.service create mode 100644 mailman-notify.timer create mode 100644 mailman-tmpfiles.conf create mode 100644 mailman-user.conf create mode 100644 mailman.cfg create mode 100644 mailman.logrotate create mode 100644 mailman.service create mode 100644 python-mailman.changes create mode 100644 python-mailman.keyring create mode 100644 python-mailman.rpmlintrc create mode 100644 python-mailman.spec create mode 100644 ssl_test_cert.crt create mode 100644 ssl_test_key.key diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/README.SUSE.md b/README.SUSE.md new file mode 100644 index 0000000..8642510 --- /dev/null +++ b/README.SUSE.md @@ -0,0 +1,15 @@ +Mailman on SUSE +=============== + +To run the mailman command use: + + sudo -u mailman mailman info + +## Configuration + +The main config file can be found at `/etc/mailman.cfg`. It is important to add +new sections only below the [path.fhs] section! + +## Plugins + +The directory for mailman plugins is `/etc/mailman.d`. diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..fcc7b97 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + diff --git a/find-flufl.patch b/find-flufl.patch new file mode 100644 index 0000000..3718a93 --- /dev/null +++ b/find-flufl.patch @@ -0,0 +1,30 @@ +Index: mailman-3.3.9/setup.py +=================================================================== +--- mailman-3.3.9.orig/setup.py ++++ mailman-3.3.9/setup.py +@@ -119,8 +119,8 @@ case second 'm'. Any other spelling is + 'dnspython>=1.14.0', + 'falcon>=3.0.0', + 'flufl.bounce>=4.0', +- 'flufl.i18n>=3.2', +- 'flufl.lock>=5.1', ++ 'flufl-i18n>=3.2', ++ 'flufl_lock>=5.1', + 'gunicorn', + 'lazr.config', + 'python-dateutil>=2.0', +Index: mailman-3.3.9/src/mailman.egg-info/requires.txt +=================================================================== +--- mailman-3.3.9.orig/src/mailman.egg-info/requires.txt ++++ mailman-3.3.9/src/mailman.egg-info/requires.txt +@@ -7,8 +7,8 @@ click>=8.0.0 + dnspython>=1.14.0 + falcon>=3.0.0 + flufl.bounce>=4.0 +-flufl.i18n>=3.2 +-flufl.lock>=5.1 ++flufl-i18n>=3.2 ++flufl_lock>=5.1 + gunicorn + lazr.config + python-dateutil>=2.0 diff --git a/mailman-3.3.10.tar.gz b/mailman-3.3.10.tar.gz new file mode 100644 index 0000000..93229c3 --- /dev/null +++ b/mailman-3.3.10.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0de478fcf326f25d931938c3744e61c5cd67596b46e5b1e3bb2abf99d5445632 +size 2294293 diff --git a/mailman-3.3.10.tar.gz.asc b/mailman-3.3.10.tar.gz.asc new file mode 100644 index 0000000..594d729 --- /dev/null +++ b/mailman-3.3.10.tar.gz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEEVB6gRIRTOU/3eg7MnZsroGHQpnwFAmb8y7YACgkQnZsroGHQ +pnx1DA/+MJ+2Oebo0WUMcPsQF/20ytpj2jgdULQlTtl8ePMUlCTjX02VktLXgsbH +USmlDueRBoAj5HIDrJ2dyjHiQCa/uMNZPRxVM3pq59uL9SodkR6GsDuFBOadMxMX +jckVsrtCHTRqNedHwiMW31ltpqG5Cwza+ue6AQMsgA8uMbU124g3UPH4HgIwXRqo +CeoKPaGWUxr8uATMctqRN0zIY6TLGzFC+OOkBu+ybX4HnjKRpUt3SVM5JK8eEGGw +fSeOzRKT5pxkvGQPn1duPBUcKj5S7Tz0t77gcKhoZMELAB1PBeaoOdWvbgI0RFO/ +O7blDzFigZDUe2PTjj7PQCRciFI9zDTjFhEw7c41MEGFSYdPyUJ0daqba8M9I2ln +iBKAD+PQ89U3Les542FfzKN1y8G2IQEYKFO4sv1sKqwDOi3dkzsvmPGsltHOKeLu +tFLJcP2PcjKu2o4baQHU8wMWpkTw0lH3jRka0wn1ToaqMQTP/EbWkIcUKh2KOn6V +mI7hQ2dcicgRTzZ1xSTFVLUdXjUag8ZfX48lue4G/Ac5PRQmyOm4T9ULgn3H8vjj +A9jbM5uXfyYH1gENY81z6ZeFCc5CnfKUr/XFu2h65jNlY1fafg4lq5tgEf/FXTTv +iBBXekYl4bUdr8lUpziiOGlU5tmfcjlgDcucawimHLqQp2T07mw= +=nAgW +-----END PGP SIGNATURE----- diff --git a/mailman-3.3.9.tar.gz b/mailman-3.3.9.tar.gz new file mode 100644 index 0000000..a33d000 --- /dev/null +++ b/mailman-3.3.9.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19b95723a23090b97e5758046cc01ed5b695c9938731a61a6084d7713929d8ca +size 2173293 diff --git a/mailman-digests.service b/mailman-digests.service new file mode 100644 index 0000000..dacf6ee --- /dev/null +++ b/mailman-digests.service @@ -0,0 +1,8 @@ +[Unit] +Description=Sends Mailman digests + +[Service] +Type=oneshot +ExecStart=/usr/bin/mailman digests --send +User=mailman +Group=mailman diff --git a/mailman-digests.timer b/mailman-digests.timer new file mode 100644 index 0000000..55b5211 --- /dev/null +++ b/mailman-digests.timer @@ -0,0 +1,10 @@ +[Unit] +Description=Run mailman-digests.service every day + +[Timer] +OnCalendar=*-*-* 04:00:00 +RandomizedDelaySec=3600 +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/mailman-notify.service b/mailman-notify.service new file mode 100644 index 0000000..9439339 --- /dev/null +++ b/mailman-notify.service @@ -0,0 +1,8 @@ +[Unit] +Description=Notify list owners/moderators of pending requests. + +[Service] +Type=oneshot +ExecStart=/usr/bin/mailman notify +User=mailman +Group=mailman diff --git a/mailman-notify.timer b/mailman-notify.timer new file mode 100644 index 0000000..323c4b2 --- /dev/null +++ b/mailman-notify.timer @@ -0,0 +1,10 @@ +[Unit] +Description=Run mailman-notify.service every day + +[Timer] +OnCalendar=*-*-* 08:00:00 +RandomizedDelaySec=15m +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/mailman-tmpfiles.conf b/mailman-tmpfiles.conf new file mode 100644 index 0000000..5f07e0d --- /dev/null +++ b/mailman-tmpfiles.conf @@ -0,0 +1,2 @@ +d /run/lock/mailman 0755 mailman mailman +d /run/mailman 0755 mailman mailman diff --git a/mailman-user.conf b/mailman-user.conf new file mode 100644 index 0000000..fa5a232 --- /dev/null +++ b/mailman-user.conf @@ -0,0 +1,3 @@ +#Type Name ID GECOS Home directory Shell +u mailman - "mailman daemon user" /var/lib/mailman - +m mailman lock - - - diff --git a/mailman.cfg b/mailman.cfg new file mode 100644 index 0000000..7e9ab52 --- /dev/null +++ b/mailman.cfg @@ -0,0 +1,26 @@ +# 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 + +# Set the paths to be fhs compliant +layout: fhs +[paths.fhs] +ext_dir: /etc/mailman.d +bin_dir: /usr/bin +var_dir: /var/lib/mailman +queue_dir: /var/spool/mailman +log_dir: /var/log/mailman +lock_dir: /run/lock/mailman +pid_file: /run/mailman/master.pid + +### ADD NEW SECTIONS AFTER THIS LINE ### + +# [webservice] +# admin_user: restadmin +# admin_pass: secret diff --git a/mailman.logrotate b/mailman.logrotate new file mode 100644 index 0000000..dfcc44f --- /dev/null +++ b/mailman.logrotate @@ -0,0 +1,9 @@ +@LOGDIR@/*.log { + missingok + sharedscripts + su mailman mailman + postrotate + /bin/kill -HUP $(/dev/null || true + @BINDIR@/mailman reopen >/dev/null 2>&1 || true + endscript +} diff --git a/mailman.service b/mailman.service new file mode 100644 index 0000000..d7d8435 --- /dev/null +++ b/mailman.service @@ -0,0 +1,25 @@ +# 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_add_a_custom_unit_file.3F + + +[Unit] +Description=GNU Mailing List Manager +After=syslog.target network.target + +[Service] +Type=forking +PIDFile=/run/mailman/master.pid +User=mailman +Group=mailman +ExecStart=/usr/bin/mailman start --force +ExecReload=/usr/bin/mailman restart +ExecStop=/usr/bin/mailman stop + +[Install] +WantedBy=multi-user.target diff --git a/python-mailman.changes b/python-mailman.changes new file mode 100644 index 0000000..d48c193 --- /dev/null +++ b/python-mailman.changes @@ -0,0 +1,450 @@ +------------------------------------------------------------------- +Wed Oct 2 07:11:06 UTC 2024 - Andreas Schneider + +- Update to version 3.3.10 + * See https://gitlab.com/mailman/mailman/-/blob/v3.3.10/src/mailman/docs/NEWS.rst + or the file NEWS.rst in this package + +------------------------------------------------------------------- +Wed Sep 25 08:56:24 UTC 2024 - Andreas Schneider + +- Update to version 3.3.10b2 + * See https://gitlab.com/mailman/mailman/-/blob/v3.3.10b2/src/mailman/docs/NEWS.rst + or the file NEWS.rst in this package + +------------------------------------------------------------------- +Sun Sep 22 08:58:30 UTC 2024 - Andreas Schneider + +- Update to version 3.3.10b1 + * See https://gitlab.com/mailman/mailman/-/blob/v3.3.10b1/src/mailman/docs/NEWS.rst + or the file NEWS.rst in this package +- Removed find-flufl.patch + +------------------------------------------------------------------- +Thu Feb 29 17:32:20 UTC 2024 - Benjamin Greiner + +- Simplify python flavor selection + * Go back to primary python3 on Tumbleweed + * Use SLE15 python module pythons on 15.x + +------------------------------------------------------------------- +Thu Feb 15 10:53:34 UTC 2024 - Markéta Machová + +- Adapt to new RPM 4.19 and properly create mailman user/group (boo#1219674) +- Build on Python 3.12 for the Factory + +------------------------------------------------------------------- +Tue Jan 23 09:56:40 UTC 2024 - Markéta Machová + +- Add patch find-flufl.patch to fix the tests with recent flufl.* +- Don't require importlib-resources on new Pythons, they are already + a part of a standard library + +------------------------------------------------------------------- +Mon Nov 6 00:27:43 UTC 2023 - Marcus Rueckert + +- make it easier to notice to keep buildrequires and runtime + requires version limits in sync. This will also help us to notice + early when the version of other libraries do not match the + requires encoded in the source code. + +------------------------------------------------------------------- +Thu Nov 2 16:02:35 UTC 2023 - Andreas Schneider + +- Require authheaders >= 0.15.2 + +------------------------------------------------------------------- +Thu Nov 2 08:52:18 UTC 2023 - Andreas Schneider + +- Update to version 3.3.9 + * See https://gitlab.com/mailman/mailman/-/blob/v3.3.9/src/mailman/docs/NEWS.rst + or the file NEWS.rst in this package +- Removed mailman-fix-importlib-resources.patch + +------------------------------------------------------------------- +Thu Sep 21 08:01:21 UTC 2023 - Andreas Schneider + +- Add missing Pre-require for groupadd + +------------------------------------------------------------------- +Fri Aug 18 11:00:46 UTC 2023 - Andreas Schneider + +- Fix issues with importlib_resources for Python 3.11 + * Added mailman-fix-importlib-resources.patch + +------------------------------------------------------------------- +Sat Jul 1 12:49:02 UTC 2023 - Andreas Schneider + +- Add missing require for psycopg2 + +------------------------------------------------------------------- +Wed Jun 7 15:40:27 UTC 2023 - Andreas Schneider + +- Move mailman to Python 3.11 on TW and Leap 15.5 + +------------------------------------------------------------------- +Wed Jun 7 14:53:12 UTC 2023 - Andreas Schneider + +- Allow the mailman group to write to the data directory + * This will hold the postfix database for the domains and we need + to be able to write to it as the postfix user (member of mailman group). + +------------------------------------------------------------------- +Thu Mar 30 19:40:53 UTC 2023 - Luiz Angelo Daros de Luca + +- Compile and include .mo files, used by _() strings + +------------------------------------------------------------------- +Mon Feb 6 05:02:02 UTC 2023 - Steve Kowalik + +- 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 + +- Fix timers target to avoid systemd ordering cycle + +------------------------------------------------------------------- +Tue Nov 1 18:23:41 UTC 2022 - Andreas Schneider + +- Bump version requirement for python3-authheaders + +------------------------------------------------------------------- +Thu Oct 27 09:03:39 UTC 2022 - Andreas Schneider + +- Update to version 3.3.6 + * https://gitlab.com/mailman/mailman/-/blob/3.3.6/src/mailman/docs/NEWS.rst +- Added support-attrs-22.patch +- Removed ARC-message-fail-tests.patch + +------------------------------------------------------------------- +Tue Sep 27 12:31:25 UTC 2022 - Markéta Machová + +- Rewrite support-sqlalchemy-1-4.patch + * to be indeed backward-compatible + * to reflect newer mailman-support-sqlalchemy-1-4.patch + +------------------------------------------------------------------- +Wed Aug 31 08:52:38 UTC 2022 - Stefan Schubert + +- Moved logrotate files from user specific directory /etc/logrotate.d + to vendor specific directory /usr/etc/logrotate.d. + +------------------------------------------------------------------- +Mon Jul 4 13:14:27 UTC 2022 - Ben Greiner + +- Go back to Python 3.9 for mailman. Python 3.10 is not supported + and it is unclear whether the test failures are due to the + production code or only in the setup of aiosmtpd in the test + suite. -- https://gitlab.com/mailman/mailman/-/issues/936 + +------------------------------------------------------------------- +Wed Jun 29 18:14:25 UTC 2022 - Lars Vogdt + +- added mailman-support-sqlalchemy-1-4.patch (from Andreas Schneider): + 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. + +------------------------------------------------------------------- +Mon Jun 13 09:09:17 UTC 2022 - Andreas Schneider + +- Added support-alembic-1-8.patch +- Removed support-alembic-1-7.patch + +------------------------------------------------------------------- +Mon Feb 21 06:31:29 UTC 2022 - Steve Kowalik + +- Clean up a half-completed migration away from python-rpm-macros. + As a consequence, mailman3 now pulls in all dependencies again. + +------------------------------------------------------------------- +Thu Jan 20 11:05:31 UTC 2022 - pgajdos@suse.com + +- fix obsoletes + +------------------------------------------------------------------- +Wed Jan 19 20:26:32 UTC 2022 - Matej Cepl + +- Add patch ARC-message-fail-tests.patch which allows four tests + to pass with different format of the output. + +------------------------------------------------------------------- +Tue Jan 18 08:28:16 UTC 2022 - pgajdos@suse.com + +- rename python3-mailman package to mailman3 [bsc#1194497] + +------------------------------------------------------------------- +Wed Nov 17 08:15:44 UTC 2021 - Andreas Schneider + +- Update to 3.3.5, which provides many bug fixes and also these new features: + - There is a new bounce_notify_admin_on_bounce_increment list + setting and a corresponding list:admin:notice:increment + template for the notice. This setting, if True, will cause a + notice to be sent to the list admins when a member's bounce + score is incremented, but doesn't disable delivery. + - There is a new moderator_request_life setting in the + [mailman] section of mailman.cfg that controls the lifetime + of pending moderator requests as opposed to pending user + confirmations. Default is 180 days. + - There is a new task runner to do periodic tasks. The current + implementation evicts expired pendings and cache entries + and removes orphaned workflows and orphaned message store + messages. It does these tasks at intervals defined by the + new run_tasks_every setting in the [mailman] section of + mailman.cfg. Default is 1 hour. + - There is a new list:admin:notice:pending template for the + notice from the mailman notify command. + - The nntp runner will now run the gatenews subcommand at + intervals defined by a new gatenews_every setting in the + [nntp] section of mailman.cfg. Default is 5 every minutes. + - Check the REST API password in a way that is resistant to + timing attacks. (CVE-2021-34337) +- Added support-alembic-1-7.patch +- Removed obsolete support-click-8-0.patch +- Added rpmlintrc + +------------------------------------------------------------------- +Fri Jul 30 01:57:56 UTC 2021 - Steve Kowalik + +- Add support-click-8-0.patch: + * Lightly rebased from upstream to support click 8.0 +- Add support-sqlalchemy-1-4.patch: + * Support running with SQLAlchemy 1.4 + +------------------------------------------------------------------- +Tue May 4 09:23:40 UTC 2021 - Ben Greiner + +- Restrict build to primary python3 in order to avoid conflicting + packages. + +------------------------------------------------------------------- +Mon Mar 22 08:09:48 UTC 2021 - Michael Ströder + +- dropped obsolete gl823_exclude_failing_tests.patch +- Update to 3.3.4 + * Bugs + * Require aiosmtpd >= 1.4.1 to allow address local parts longer than 64 bytes + in the lmtp runner. (Closes #836) + * The email join command now honors the digest= option. + (Closes #19) + * Folded ``Message-ID`` headers no longer cause folded smtp.log messages. + (Closes #844) + * Removal of headers from posts to anonymous lists that can reveal the poster + or the poster's domain has been improved. (Closes #848) + * Command line + * The ``notify`` subcommand will now decode an RFC 2047 encoded Subject: for + the report of held messages. (Closes #831) + * The deprecated options ``--add``, ``--del`` and ``--sync`` are now disabled + on the ``mailman members`` command. + * REST + * Improve the speed of Members lookup via REST API. (Related to #700) + * Allow specifying ``delivery_mode`` and ``delivery_status`` when creating a + new Member. (Closes #828) + * Allow filtering members in ``/members/find`` API using ``delivery_status``, + ``delivery_mode`` and ``moderation_action``. (See #827) + * New Features + * There is a new setting ``filter_report`` in the ``[mailman]`` section of + mailman.cfg. If this is set to ``yes``, a report of changes by content + filtering will be added to the outgoing message. (Closes #833) + * There is a new setting ``check_max_size_on_filtered_message`` in the + ``[mailman]`` section of mailman.cfg. If this is set to ``yes`` and the + list does content filtering, the ``max_message_size`` hold will be based + on the size of the content filtered message. (Closes #377) + * There is a new setting ``anonymous_list_keep_headers`` in the ``[mailman]`` + section of mailman.cfg. This is part of improved removal of headers from + posts to anonymous lists. This setting is a space separated list of regexp + patterns. After anonomyzing removes the headers which are known to reveal + the poster or poster's domain, it then removes all headers whose names do + not match (case-insensitively) one of these patterns. The default setting + keeps non X- headers, those X- headers added by Mailman and any X-Spam- + headers. + +------------------------------------------------------------------- +Thu Feb 4 22:20:35 UTC 2021 - Matej Cepl + +- Add gl823_exclude_failing_tests.patch to skip two failing tests + (gl#mailman/mailman#823). + +------------------------------------------------------------------- +Wed Feb 3 22:23:10 UTC 2021 - Jan Engelhardt + +- Modernize specfile. Update summary so it does not fall under + rpmlint name-repeated-in-summary. + +------------------------------------------------------------------- +Wed Feb 3 16:31:26 UTC 2021 - Andreas Schneider + +- Fix building on tumbleweed + +------------------------------------------------------------------- +Wed Feb 3 09:35:05 UTC 2021 - Michael Ströder + +- Update to 3.3.3: + * Handle some UnicodeEncodeErrors in creating digests. (Closes #560) + * Increased the size of the data column in the workflowstate table. + (Closes #793) + * Implemented a ``scrubber`` for plain text digests. (Closes #473) + * The ``mailman gatenews`` command now adds ``original_size`` as a message + attribute. (Extends fix for #762) + * Handle FileNotFoundError when creating digest.mmdf file without a + parent directory present. (Closes #699) + * Fixed an issue where content filtering can throw UnicodeEncodeError when + converting HTML to plain text. (Closes #798) + * A bounce for a non-existent list is now handled. (Closes #799) + * RFC 2047 From: headers in emailed ``join`` commands are now decoded. + (Closes #802) + * The ``mailman addmembers`` command now catches and reports a + ``SubscriptionPendingError``. (Closes #805) + * RFC 2369 ``List-Owner`` header is now added when these headers are included. + (Closes #809) + * Header filters will now properly match RFC 2047 encoded headers. + (Closes #815) + * Mailman's ``vette`` log discard messages now include the reasons. + (Closes #816) + * Increase the default REST API (gunicorn) timeout to 360 seconds from 30 as + several API endpoinds can be very slow. (Closes #770) + * Header filter rules are now properly processed after deletions and/or + reordering. (Closes #818) + * Folded ``To: list-confirm+token@...`` headers are now parsed correctly. + (Closes: #819) + +------------------------------------------------------------------- +Tue Dec 15 19:28:48 UTC 2020 - Andreas Schneider + +- Added mailman-notify.service and mailman-notify.timer +- Added rcmailman* service symlinks +- Added missing logrotate requirement + +------------------------------------------------------------------- +Tue Dec 15 09:19:44 UTC 2020 - Andreas Schneider + +- Fix systemd services + +------------------------------------------------------------------- +Tue Dec 15 08:57:37 UTC 2020 - Andreas Schneider + +- Add missing services and timers to systemd + +------------------------------------------------------------------- +Sat Nov 28 17:49:08 UTC 2020 - Michael Ströder + +- Update to 3.3.2: + * Support for inviting users to join mailing lists. + * New adddmembers, delmembers and syncmembers command to + manage membership from CLI. + * Addition of new REST API endpoints that return the count of held messages + and subscription requests of much faster page loads in Postorius. + * Addition of support for filtering in some API endpoints like Members + and Subscription requests. + * Support for address= option in email join command to subscribe an address + other then sending address. + * Addition of who email command to lookup memberships. + * Expose emergency field for MailingList resource in REST API. + * Several bug fixes to support new major version of libraries like dnspython, + flufl.* etc. + +------------------------------------------------------------------- +Wed Oct 7 05:46:29 UTC 2020 - Andreas Schneider + +- Remove suid bit from /var/lib/mailman/data + +------------------------------------------------------------------- +Wed Sep 30 07:18:40 UTC 2020 - pgajdos@suse.com + +- remove systemd (build)requires + +------------------------------------------------------------------- +Sat Sep 26 10:38:00 UTC 2020 - Andreas Schneider + +- Create mailman user and group +- Create directories for mailman and use FHS directory layout +- Create initial /etc/mailman.cfg +- Create /etc/mailman.d/ directory for extensions +- Add systemd files + +------------------------------------------------------------------- +Mon May 25 06:50:41 UTC 2020 - Petr Gajdos + +- %python3_only -> %python_alternative + +------------------------------------------------------------------- +Fri Apr 24 07:26:05 UTC 2020 - Tomáš Chvátal + +- Update to 3.3.1: + * No obvious changelog + +------------------------------------------------------------------- +Thu Jan 23 15:04:12 UTC 2020 - pgajdos@suse.com + +- do not require python-cffi, it will be required by + python-PyNaCl + +------------------------------------------------------------------- +Tue Jan 14 12:55:34 UTC 2020 - pgajdos@suse.com + +- be able to run test on 15 + +------------------------------------------------------------------- +Tue Dec 10 16:56:29 UTC 2019 - pgajdos@suse.com + +- disable src/mailman/commands/tests/test_cli_create.py + https://gitlab.com/mailman/mailman/issues/654 + +------------------------------------------------------------------- +Mon Dec 2 10:47:14 UTC 2019 - pgajdos@suse.com + +- call spec-cleaner + +------------------------------------------------------------------- +Mon Dec 2 09:19:40 UTC 2019 - pgajdos@suse.com + +- requires setuptools + +------------------------------------------------------------------- +Wed Nov 20 16:06:34 UTC 2019 - pgajdos@suse.com + +- /usr/sbin instead of /sbin in mailman.cfg + +------------------------------------------------------------------- +Tue Nov 5 19:05:56 UTC 2019 - pgajdos@suse.com + +- run the testsuite + +------------------------------------------------------------------- +Tue Sep 24 13:44:55 UTC 2019 - pgajdos@suse.com + +- initial version 3.3.0 [SLE-7686] + diff --git a/python-mailman.keyring b/python-mailman.keyring new file mode 100644 index 0000000..45104e2 --- /dev/null +++ b/python-mailman.keyring @@ -0,0 +1,90 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=s7HB +-----END PGP PUBLIC KEY BLOCK----- diff --git a/python-mailman.rpmlintrc b/python-mailman.rpmlintrc new file mode 100644 index 0000000..c055668 --- /dev/null +++ b/python-mailman.rpmlintrc @@ -0,0 +1,5 @@ +addFilter("incoherent-logrotate-file /etc/logrotate.d/mailman") +addFilter("zero-length /usr/lib/python3../site-packages/mailman/templates/.*") +addFilter("obsolete-not-provided python3-mailman") +addFilter("explicit-lib-dependency python3.*-passlib") +addFilter("file-not-in-%lang") diff --git a/python-mailman.spec b/python-mailman.spec new file mode 100644 index 0000000..9c26787 --- /dev/null +++ b/python-mailman.spec @@ -0,0 +1,309 @@ +# +# spec file for package python-mailman +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global aiosmtpd_min_version 1.4.3 +# normally it would be 1.6.2,!=1.7.0 but to avoid super comlex constructs in the spec file ... lets go with the version that we have in TW +%global alembic_min_version 1.12 +%global authheaders_min_version 0.16 +%global authres_min_version 1.0.1 +%global click_min_version 8.0.0 +%global dnspython_min_version 1.14.0 +%global falcon_min_version 3.1.3 +%global flufl_bounce_min_version 4.0 +%global flufl_i18n_min_version 3.2 +%global flufl_lock_min_version 5.1 +%global python_dateutil_min_version 2.0 +%global sqlalchemy_min_version 1.4.0 +%global zope_interface_min_version 5.0 + +%define mailman_name mailman +%define mailman_homedir %{_localstatedir}/lib/%{mailman_name} +%define mailman_logdir %{_localstatedir}/log/%{mailman_name} +%define mailman_spooldir %{_localstatedir}/spool/%{mailman_name} +%define mailman_rundir %{_rundir}/%{mailman_name} +%define mailman_lockdir %{_rundir}/lock/%{mailman_name} +%global mailman_services %{mailman_name}.service %{mailman_name}-digests.service %{mailman_name}-digests.timer %{mailman_name}-notify.service %{mailman_name}-notify.timer + +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%bcond_without test +%else +%define psuffix %{nil} +%bcond_with test +%endif +# Keep this in sync with HyperKitty und Postorius +# Always only build one flavor: primary python for TW, python311 from the SLE15 python module for 15.x +%if 0%{?suse_version} >= 1550 +%define pythons python3 +%else +%{?sle15_python_module_pythons} +%endif +%global mypython %pythons +%global mypython_sitelib %{expand:%%{%{mypython}_sitelib}} +%define plainpython python + +Name: python-mailman%{psuffix} +Version: 3.3.10 +Release: 0 +Summary: A Mailing List Manager +Group: Productivity/Networking/Email/Mailinglists +License: GPL-3.0-only +URL: https://www.list.org +Source0: https://gitlab.com/mailman/mailman/-/releases/v%{version}/downloads/mailman-%{version}.tar.gz +Source1: https://gitlab.com/mailman/mailman/-/releases/v%{version}/downloads/mailman-%{version}.tar.gz.asc +Source2: python-mailman.keyring +# +Source10: mailman.cfg +Source11: mailman.service +Source12: mailman-tmpfiles.conf +Source13: mailman.logrotate +Source14: mailman-user.conf +# +Source20: mailman-digests.service +Source21: mailman-digests.timer +Source22: mailman-notify.service +Source23: mailman-notify.timer +# +Source30: README.SUSE.md +Source31: python-mailman.rpmlintrc +# +BuildRequires: %{python_module pdm} +BuildRequires: %{python_module pdm-backend} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +BuildRequires: sysuser-tools +%if 0%{?suse_version} >= 1550 +# use the real python3 primary for rpm pythondistdeps.py +BuildRequires: python3-packaging +%endif +BuildArch: noarch +%if %{with test} +BuildRequires: %{python_module flufl.testing} +BuildRequires: %{python_module nose2} +BuildRequires: %{python_module pytest} +BuildRequires: (mailman3 = %{version} with %mypython-mailman3) +%endif + +%description +Mailman is a mailing list manager from the GNU project. + +%package -n mailman3 +Summary: A mailing list manager +Requires: %{mypython}-SQLAlchemy >= %{sqlalchemy_min_version} +Requires: %{mypython}-aiosmtpd >= %{aiosmtpd_min_version} +Requires: %{mypython}-alembic >= %{alembic_min_version} +Requires: %{mypython}-atpublic +Requires: %{mypython}-authheaders >= %{authheaders_min_version} +Requires: %{mypython}-authres >= %{authres_min_version} +Requires: %{mypython}-click >= %{click_min_version} +Requires: %{mypython}-dnspython >= %{dnspython_min_version} +Requires: %{mypython}-falcon >= %{falcon_min_version} +Requires: %{mypython}-flufl.bounce >= %{flufl_bounce_min_version} +Requires: %{mypython}-flufl.i18n >= %{flufl_i18n_min_version} +Requires: %{mypython}-flufl.lock >= %{flufl_lock_min_version} +Requires: %{mypython}-gunicorn +Requires: %{mypython}-lazr.config +Requires: %{mypython}-passlib +Requires: %{mypython}-psycopg2 +Requires: %{mypython}-python-dateutil >= %{python_dateutil_min_version} +Requires: %{mypython}-requests +Requires: %{mypython}-zope.component +Requires: %{mypython}-zope.configuration +Requires: %{mypython}-zope.event +Requires: %{mypython}-zope.interface >= %{zope_interface_min_version} +Requires: logrotate +Requires(pre): /usr/sbin/groupadd +Requires(post): update-alternatives +Requires(postun): update-alternatives +Provides: mailman = %{version} +# help in replacing any previously installed flavor package back to the unprefixed package +%if 0%{?suse_version} < 1550 +Requires: %{mypython}-importlib-resources >= 1.1.0 +Obsoletes: python3-mailman < %{version}-%{release} +Obsoletes: python3-mailman3 < %{version}-%{release} +%endif +Provides: %{mypython}-mailman = %{version}-%{release} +Obsoletes: %{mypython}-mailman < %{version}-%{release} +Provides: %{mypython}-mailman3 = %{version}-%{release} +Obsoletes: %{mypython}-mailman3 < %{version}-%{release} + +%description -n mailman3 +Mailman is a mailing list manager from the GNU project. + +%package -n system-user-%{mailman_name} +Summary: System user and group mailman +Requires(pre): group(lock) +Requires(pre): group(mail) +%sysusers_requires + +%description -n system-user-%{mailman_name} +System user for use by the mailman client. + +%prep +%autosetup -p1 -n mailman-%{version} + +# README.SUSE.md +cp %{SOURCE30} . + +%build +sed -i 's:/sbin:%{_prefix}/bin:' src/mailman/config/mailman.cfg + +%pyproject_wheel +./generate_mo.sh + +%sysusers_generate_pre %{SOURCE14} mailman system-user-%{mailman_name}.conf + +%install +%if !%{with test} +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +install -d -m 0755 \ + %{buildroot}%{_sysconfdir} \ + %{buildroot}%{_sysconfdir}/%{mailman_name}.d \ + %{buildroot}%{_tmpfilesdir} \ + %{buildroot}%{_sbindir} \ + %{buildroot}%{_unitdir} \ + %{buildroot}%{mailman_homedir} \ + %{buildroot}%{mailman_homedir}/data \ + %{buildroot}%{mailman_rundir} \ + %{buildroot}%{mailman_lockdir} \ + %{buildroot}%{mailman_logdir} \ + %{buildroot}%{mailman_spooldir} + +%if 0%{?suse_version} > 1500 +install -d -m 0755 %{buildroot}%{_distconfdir}/logrotate.d +install -m 0644 %{SOURCE13} %{buildroot}%{_distconfdir}/logrotate.d/%{mailman_name} +sed -i 's,@LOGDIR@,%{mailman_logdir},g;s,@BINDIR@,%{_bindir},g' \ + %{buildroot}%{_distconfdir}/logrotate.d/%{mailman_name} +%else +install -d -m 0755 %{buildroot}%{_sysconfdir}/logrotate.d +install -m 0644 %{SOURCE13} %{buildroot}%{_sysconfdir}/logrotate.d/%{mailman_name} +sed -i 's,@LOGDIR@,%{mailman_logdir},g;s,@BINDIR@,%{_bindir},g' \ + %{buildroot}%{_sysconfdir}/logrotate.d/%{mailman_name} +%endif + +install -m 0640 %{SOURCE10} %{buildroot}%{_sysconfdir}/%{mailman_name}.cfg +install -m 0644 %{SOURCE11} %{buildroot}%{_unitdir}/%{mailman_name}.service +install -m 0644 %{SOURCE12} %{buildroot}%{_tmpfilesdir}/%{mailman_name}.conf + +install -D -m 0644 %{SOURCE14} %{buildroot}%{_sysusersdir}/system-user-%{mailman_name}.conf + +install -m 0644 %{SOURCE20} %{buildroot}%{_unitdir}/%{mailman_name}-digests.service +install -m 0644 %{SOURCE21} %{buildroot}%{_unitdir}/%{mailman_name}-digests.timer +install -m 0644 %{SOURCE22} %{buildroot}%{_unitdir}/%{mailman_name}-notify.service +install -m 0644 %{SOURCE23} %{buildroot}%{_unitdir}/%{mailman_name}-notify.timer + +ln -s /sbin/service %{buildroot}%{_sbindir}/rc%{mailman_name} +ln -s /sbin/service %{buildroot}%{_sbindir}/rc%{mailman_name}-digests +ln -s /sbin/service %{buildroot}%{_sbindir}/rc%{mailman_name}-notify + +%endif + +%check +%if %{with test} +export LANG=C.UTF-8 +%if 0%{?suse_version} <= 1500 +# mailman.rest.tests.test_wsgiapp.TestSupportedContentType +# AssertionError: 'application/json; charset=UTF-8' != 'application/json' +rm src/mailman/rest/tests/test_wsgiapp.py +%endif +# doctest fails miserably +find -name '*.rst' -exec rm {} \; +# used to have ports 902{4,5} +rm src/mailman/mta/tests/test_aliases.py +# PermissionError: [Errno 13] Permission denied: '/usr/bin/master' +rm src/mailman/core/tests/test_logging.py +# PermissionError: [Errno 13] Permission denied: '/usr/bin/master' +rm src/mailman/commands/tests/test_cli_control.py +# do not use well known ports 9024 and 9025 +sed -i "s:\(902\):4\1:" src/mailman/testing/testing.cfg +# https://gitlab.com/mailman/mailman/-/issues/1125 +rm src/mailman/handlers/tests/test_avoid_duplicates.py +# +%python_exec -m nose2 -v +%endif + +%if !%{with test} +%pre -n system-user-%{mailman_name} -f mailman.pre + +%pre -n mailman3 +%service_add_pre %{mailman_services} +%if 0%{?suse_version} > 1500 +# Prepare for migration to /usr/etc; save any old .rpmsave +for i in logrotate.d/%{mailman_name} ; do + test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i}.rpmsave.old ||: +done +%endif + +%if 0%{?suse_version} > 1500 +%posttrans -n mailman3 +# Migration to /usr/etc, restore just created .rpmsave +for i in logrotate.d/%{mailman_name} ; do + test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i} ||: +done +%endif + +%post -n mailman3 +%tmpfiles_create %{_tmpfilesdir}/%{mailman_name}.conf +%service_add_post %{mailman_services} + +%preun -n mailman3 +%service_del_preun %{mailman_services} + +%postun -n mailman3 +%service_del_postun %{mailman_services} + +%files -n mailman3 +%doc README.md README.SUSE.md src/mailman/docs/NEWS.rst +%license COPYING +%{_sbindir}/rc%{mailman_name}* +%{_bindir}/runner +%{_bindir}/mailman +%{_bindir}/master +%{mypython_sitelib}/mailman +%{mypython_sitelib}/mailman-%{version}*-info +%{_unitdir}/%{mailman_name}.service +%{_unitdir}/%{mailman_name}-digests.service +%{_unitdir}/%{mailman_name}-digests.timer +%{_unitdir}/%{mailman_name}-notify.service +%{_unitdir}/%{mailman_name}-notify.timer +%{_tmpfilesdir}/%{mailman_name}.conf +%config(noreplace) %attr(640,root,mailman) %{_sysconfdir}/mailman.cfg +%if 0%{?suse_version} > 1500 +%{_distconfdir}/logrotate.d/%{mailman_name} +%else +%config(noreplace) %{_sysconfdir}/logrotate.d/%{mailman_name} +%endif +%dir %attr(750,root,mailman) %{_sysconfdir}/%{mailman_name}.d +%dir %attr(750,mailman,mailman) %{mailman_homedir} +%dir %attr(770,mailman,mail) %{mailman_homedir}/data +%dir %attr(750,mailman,mailman) %{mailman_spooldir} +%dir %attr(750,mailman,mailman) %{mailman_logdir} +%ghost %dir %{mailman_rundir} +%ghost %dir %{_rundir}/lock +%ghost %dir %{mailman_lockdir} + +%files -n system-user-%{mailman_name} +%{_sysusersdir}/system-user-%{mailman_name}.conf +%endif + +%changelog diff --git a/ssl_test_cert.crt b/ssl_test_cert.crt new file mode 100644 index 0000000..5b5fd62 --- /dev/null +++ b/ssl_test_cert.crt @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDeDCCAmCgAwIBAgIJANA3MRKsRL/OMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNV +BAYTAlVTMQswCQYDVQQIDAJNQTEhMB8GA1UECgwYTWFpbG1hbiB0ZXN0IGNlcnRp +ZmljYXRlMRIwEAYDVQQDDAlsb2NhbGhvc3QwHhcNMTcwNTI3MTYxNzIzWhcNMjcw +NTI1MTYxNzIzWjBRMQswCQYDVQQGEwJVUzELMAkGA1UECAwCTUExITAfBgNVBAoM +GE1haWxtYW4gdGVzdCBjZXJ0aWZpY2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAycCl/y9Cpm0jW921eIraIieh +cxXPrYed66SxZwoZNt8StaFfNOeqykIiFpUR/5KYc1Sk0yF2tGfFv6l17xG0fuCI +OkH1EynhXZiPbdcvmqF2W6Fa1g5kZJ//KbhK4rRsUEVp/2pHVjMG6toenM+S/1LE +35XiNyIHF6ZeENAb/zR3ikjYH0MSEq2doBmKd9/m48+z5Vb+MbyIG7jbvN3MQ9f/ +NXAIwcGf37RO5+yNIcvqTV9SMBAZb1l+rMrsks6Ghr3NoBP1kuqJF5vFropKBx7R +1MKvYm2ISL5UaWbFPYs9A4VhtzhMWBLZGHQPFHnR7dub7et8eiC7fbsdx4uyGwID +AQABo1MwUTAdBgNVHQ4EFgQUe1Q+FbXTQjLoeTuSlxQQCeE+jpQwHwYDVR0jBBgw +FoAUe1Q+FbXTQjLoeTuSlxQQCeE+jpQwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG +9w0BAQsFAAOCAQEANbliLrarZfinHQ+/TQIOdqolsscw7RtyFtB7wA2uqWNsH/77 +EYDiv8AhpAQB3dzKwGdapgYgsWUe2awSD67TAJg5XS/h9F1PbbjDYGC9v6T7HDPd +SfGV34LbWmH60rE6B1lwyCACnOXhByFGrdicCm2Z073kTp5L7WuAqpwC1f3aMC0u +9goUWHSfqSIPPIv8yiV0vgKk4kP4KV/gi20x74c31pujExCiVGA4GGTXV9hqmAm7 +tZuPTYFN5n60U1tzbFXOuwK6CvCDzWeq27mYwNHTXSJw1GyG4XXM5t2wfSlu/4e4 +xDuZwvP0P7hTME5wC7KGeS7daYSWNCDiHa7g6A== +-----END CERTIFICATE----- diff --git a/ssl_test_key.key b/ssl_test_key.key new file mode 100644 index 0000000..2f612ad --- /dev/null +++ b/ssl_test_key.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDJwKX/L0KmbSNb +3bV4itoiJ6FzFc+th53rpLFnChk23xK1oV8056rKQiIWlRH/kphzVKTTIXa0Z8W/ +qXXvEbR+4Ig6QfUTKeFdmI9t1y+aoXZboVrWDmRkn/8puEritGxQRWn/akdWMwbq +2h6cz5L/UsTfleI3IgcXpl4Q0Bv/NHeKSNgfQxISrZ2gGYp33+bjz7PlVv4xvIgb +uNu83cxD1/81cAjBwZ/ftE7n7I0hy+pNX1IwEBlvWX6syuySzoaGvc2gE/WS6okX +m8WuikoHHtHUwq9ibYhIvlRpZsU9iz0DhWG3OExYEtkYdA8UedHt25vt63x6ILt9 +ux3Hi7IbAgMBAAECggEATRjFVmLlAVwrauuqcUn+WZbzZ1sqZZGxk174O/vr7sAI +Ekh8bWcqKOhkxmRo4FVQ1KG/6r6a8g3Fz5weaSFG7EU5Sany0UPrzyyBguP8WQbi +h9l9MNeHHbzWcUbvtvpjeblM7EHcyN/vAMghcqMP9WnXuek47QCf3TXCNIKScE8a +sU01o7Lw4CkZOLP9UyLmoKiQpurj7jWOMq10QOG4693dnfcgz7voPZPrt8OnAo7x +ap4ojK9nWfjFHFxpsddBhXBxzXw/U8FxtzYtCbzxL7iYpxpq0GEc/5eF8O+RE4MX +D1uqrkLfVM4HMOgQoFLrSGcPahYSVRrQ3X+lYV+OQQKBgQDotmodstq4T3D+7buY +J3zi+saEDvcPxgy31934jm465WfNiYSrnq5PqJCkzVpYMPuj0O8za75OoyRK2viT +glBKjP0vxNXh91tTi4eU7LCFPNwOwnt+e3tu+eA4klFpQIEUI8PHlEe4VBGlvpsD +DoPHuIHCouAEXhpu/ck58+QxKQKBgQDd8Rshc7h8PY26Rxrzgjob9PvDHxQODodU +iRUAELscSkr4gwYTgmDL4vL+lOog7IAYGmSOsHLJ19wTbLsaPMPfhUh+zXuvwlA5 +/01uYFp0UM4ax4DdTGPA5qOAIkLY3rL1x6U0eBf6XJhdG8mTW9SjbD1aCbDGdZk6 +9KJVUlDdowKBgD4NHeCLZ1zL+gJP27ynktpnKfXek6xGD/AZhFuZhvT3ZKVerNyi +NDKTbPY0t4lajk7REGcyrI0FXVEEcFHM5qHqVDyfjLRzI4v0YZOpRSxR3Q+mdg10 +2aXuxQXwpfqds41uN+8Ir9MLv6TlXSoEfckMfrUqfvdLLFs6GqT0Tn15AoGBANG0 +05HUKekasCPms8yKrCVmYcyIPQbbK3vw2uro5CNi/1u5UbB1bMi5dCigxGi/jnk3 +1vQMPSoC0Gt6PYAZEmrNISbPOaNk0zE5zgwQ9ucYwuYCw/xWBZtrUensdYU9R5N8 +RNlC8EUb4Mt5Sgn2pwCTcZT1uxaKX3KZXBmKYeZJAoGAAtWlzPxgwDglNhhuLpgW +vSOH0lpHlR//Ne7kMPCfG4lrAaPo5VSfQrjlzoF9tlhu0IuRKnwOg4HmFD9COaLA +RWTNDLMxBct5lZNAjgIzI5nZm6VLioCQkAdThzSBTxpGrIR0iDR99RWf/M4p7cK6 +tiqX285r1nogUpROl0uraV4= +-----END PRIVATE KEY-----