- Use correct PDM package to build, it's pdm-backend.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:mailman/python-postorius?expand=0&rev=64
This commit is contained in:
Steve Kowalik 2024-11-13 01:19:48 +00:00 committed by Git OBS Bridge
commit 5308866e11
15 changed files with 959 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

72
README.SUSE.md Normal file
View File

@ -0,0 +1,72 @@
Postorius
=========
## Configuration
The web application is configured in `/etc/postorius/settings_local.py` which
is included by the default configuration in
/srv/www/webapps/postorius/settings.py.
1. Optional: Change the default secret for the application:
We already created one, but feel free to replace with a stronger
alternative.
`/etc/postorius/settings_local.py`:
SECRET_KEY = 'something-very-secret'
2. Make sure to disable debugging when running in production:
`/etc/postorius/settings_local.py`:
DEBUG = False
3. The valid hosts or domain names for the application need to be defined:
`/etc/postorius/settings_local.py`:
ALLOWED_HOSTS = [
'localhost',
'lists.example.com'
]
4. To be able to configure a running mailman instance configuration options for
its REST API have to be added to postorius' configuration.
`/etc/postorius/settings_local.py`
MAILMAN_REST_API_URL = 'http://localhost:8001'
MAILMAN_REST_API_USER = 'rest_admin'
MAILMAN_REST_API_PASS = 'rest_admin_password'
5. Add a valid email configuration
`/etc/postorius/settings_local.py`:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_PORT = 25
EMAIL_HOST_USER = <username>
EMAIL_HOST_PASSWORD = <password>
7. Optional: Configure postgres or another database (default: sqlite3)
6. Create and setup the database
postorius-manage migrate
7. Create admin user
postorius-manage createsuperuser
## Apache2
To configure postorius with Apache and uwsgi, just add the follwing lines to a vhost:
ProxyPass /.well-known/acme-challenge !
ProxyPassMatch ^/static !
ProxyPass / unix:/run/uwsgi/uwsgi-postorius.sock|uwsgi://localhost/
<Directory /srv/www/webapps/mailman/postorius>
Require all granted
</Directory>

3
postorius-1.3.10.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1a66c8a8efb4dcb81b5312759d34ad5eb60ddedd8c7efcdb7984408a97d35b5a
size 3491545

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEVB6gRIRTOU/3eg7MnZsroGHQpnwFAmU0FPcACgkQnZsroGHQ
pnwAnw/+Iqc/Xw6Y4xug3GGoA5i85HG7Liip8v2ZeRmdarDkqdwkbLpu6n9nonjK
f62zh7YnstzV8hFQde33n2jSuo9IfDh0X7M+sD0JVjZZnoKM5HGA2c+NdsRY6ZIS
aBwMeAsLd03Pzon/3nUMLooQ+QYQfOVhBDEgnPKZMsAZeyY+15Hk/au0Cz2Ssjx2
JMaQKOKpKAiFmy7kbW5/acJSDLHutJiiCLHzSoZtQZikAvHF1siwkPzN5tS2phzz
4AedQnmb6oPzwHfZpDMqKmMuAXgmFVh8ROS/DWr3ZXnZkhC6mXUeUAN12tidhKG4
DEMacMu8/XAd8Am9xnm03Q0JWRGqFlLN4efC4ee4bx5wwTju0JHlNkhNkWMr/NDz
NYYQM9Lf9+JGp1DqZK/znQsYNj0ntERs3hLppXSFFK9ColxFllv+qD0FOcFM4slh
0O06Ziy/A0w9XxljAM46fO2GXmw4whGC9INycKByiwQ2p16MFiCr700gfSFS6W6h
JwSzSnH4rHED0iU3joA8J2NyZr93amLXVkhic16Y8YiAJmkBWt0D76yTcpzbFmGo
WTeIPrdusolKnfplph8Z3xHOPGQ/rHhyBmJIYs6MfJtB1rXwYMZdUU5pZuVYRCL2
1t/0Sy1w/hwWI2Cno0PRmtuxZn4A+WudI2JlKAHFvqSZKymv1XM=
=GWuI
-----END PGP SIGNATURE-----

3
postorius-1.3.13.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:602def5c4852900d49e8ad95196a2334e13c31e49d9c0859324879e7c5131a22
size 3508385

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEVB6gRIRTOU/3eg7MnZsroGHQpnwFAmbudAYACgkQnZsroGHQ
pnzlZxAApgSauP24Lb4czStUNVNAz24t/0ibDpwO1ybRnVNz47sVR146W4csI8Op
f1ujcJQLbbRjesrzN06dWCu/J+AbmWjVyCOof8nEH76ahW/98She3YDTzz4ukh+o
saKmdNxqiVTIBjf5xKNL6WaUQ4zUaS/DTlyXGmaTQReluYQ2heVVr75Tcp4zqPBw
kmCaR7Yx8y6pvF8Va8GgVXDZ3oj73zlBXqqeHC2iv0KFV2jl9KaqWei6aWK97QuP
2/vCidDr65FdRUQGJUBk10BaCvjIUo5QL+ZJ0DL1TyqyiykTVYWu+15WBeURmIDV
UwpTsIPhm4DKsgvs4v16QxTaqI6KsC76IY9kwTAl4ba+9piECjamTOL0QIRLA43Q
+x94/bfp9T0n6D2evXUqTGhSqjpGoQhwxC/tCj9cNOLZSbDaEfN4kaiPf06myypz
D7QlzSsAqFPI4U29K/a6azAlBMRzT46cTWShk5vtCDKCr9IRHoSOpBxKRMTg/4V5
7hbWlSfxyGtWOFppoMndoRHGEHM2DQ99ksHDbPOhBcsOSmufPR+YS9DoHTLEgsp6
iyaG9x7EJTdPCACWn+73QKU6rt42qptWCNBnW5q6y0ViAByXJTincHYUCc3nU90v
DxyrhimDJj4HmcaEUoX3DkmjllEknL2kEpakpV5JjpAz6cljVbc=
=PF1U
-----END PGP SIGNATURE-----

3
postorius-manage.sh Normal file
View File

@ -0,0 +1,3 @@
#!/bin/bash
sudo -u postorius /usr/bin/python3 /srv/www/webapps/mailman/postorius/manage.py "$@"

31
postorius-settings.patch Normal file
View File

@ -0,0 +1,31 @@
Index: postorius-1.3.7/example_project/settings.py
===================================================================
--- postorius-1.3.7.orig/example_project/settings.py 2022-10-22 07:10:31.000000000 +0200
+++ postorius-1.3.7/example_project/settings.py 2022-11-17 16:05:22.163232646 +0100
@@ -142,7 +142,7 @@ WSGI_APPLICATION = 'wsgi.application'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
- 'NAME': os.path.join(BASE_DIR, 'postorius.db'),
+ 'NAME': '/var/lib/postorius/data/postorius.db',
}
}
@@ -190,7 +190,7 @@ USE_TZ = True
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/var/www/example.com/static/"
-STATIC_ROOT = os.path.join(BASE_DIR, 'static')
+STATIC_ROOT = '/srv/www/webapps/mailman/postorius/static'
# URL prefix for static files.
# Example: "http://example.com/static/", "http://static.example.com/"
@@ -269,7 +269,7 @@ LOGGING = {
'level': 'INFO',
#'class': 'logging.handlers.RotatingFileHandler',
'class': 'logging.handlers.WatchedFileHandler',
- 'filename': os.path.join(BASE_DIR, 'logs', 'postorius.log'),
+ 'filename': '/var/log/postorius/postorius.log',
'formatter': 'verbose',
},
},

3
postorius-v1.3.12.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:933fa3a954774d149737bc986afd6beedf545aafeb1d4aeed7f8653205588f4d
size 3556298

17
postorius.uwsgi Normal file
View File

@ -0,0 +1,17 @@
[uwsgi]
#plugin = apparmor
#apparmor-hat = postorius
uid = postorius
gid = postorius
processes = 1
threads = 25
socket = /run/uwsgi/uwsgi-postorius.sock
chmod-socket = 660
chown-socket = wwwrun:www
plugin = python3
chdir = /srv/www/webapps/mailman/postorius
module = wsgi

View File

@ -0,0 +1,5 @@
addFilter("zero-length")
addFilter("non-standard-gid")
addFilter("non-standard-uid")
addFilter("spurious-executable-perm .*example_project/wsgi.py")
addFilter("obsolete-not-provided python3-postorius")

377
python-postorius.changes Normal file
View File

@ -0,0 +1,377 @@
-------------------------------------------------------------------
Wed Nov 13 01:19:25 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- Use correct PDM package to build, it's pdm-backend.
-------------------------------------------------------------------
Sat Sep 21 07:30:43 UTC 2024 - Andreas Schneider <asn@cryptomilk.org>
- Update to version 1.3.13
* See https://gitlab.com/mailman/postorius/-/blob/v1.3.13/src/postorius/doc/news.rst
or packaged news.rst file.
- Re-added GPG signature
-------------------------------------------------------------------
Sun Sep 15 20:19:37 UTC 2024 - Andreas Schneider <asn@cryptomilk.org>
- Update to version 1.3.12
* See https://gitlab.com/mailman/postorius/-/blob/v1.3.12/src/postorius/doc/news.rst
or packaged news.rst file.
- Removed GPG signature as the download links don't work
-------------------------------------------------------------------
Sun Jun 23 08:40:28 UTC 2024 - Andreas Schneider <asn@cryptomilk.org>
- Update to version 1.3.11
* See https://gitlab.com/mailman/postorius/-/blob/v1.3.11/src/postorius/doc/news.rst
or packaged news.rst file.
-------------------------------------------------------------------
Thu Mar 7 09:40:26 UTC 2024 - Andreas Schneider <asn@cryptomilk.org>
- Validate source tarball
- Split out system user
-------------------------------------------------------------------
Mon Mar 4 09:51:32 UTC 2024 - Ben Greiner <code@bnavigator.de>
- Provide postorius name and group in web package (rpm 4.19)
-------------------------------------------------------------------
Thu Feb 29 20:31:42 UTC 2024 - Ben Greiner <code@bnavigator.de>
- Simplify python flavor selection
* Go back to primary python3 on Tumbleweed
* Use SLE15 python module pythons on 15.x
- Build PEP517 wheel
-------------------------------------------------------------------
Mon Nov 6 11:47:26 UTC 2023 - Marcus Rueckert <mrueckert@suse.de>
- make it easy to run a build without testsuite
osc build --without=testsuite
-------------------------------------------------------------------
Mon Nov 6 00:11:33 UTC 2023 - Marcus Rueckert <mrueckert@suse.de>
- 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 10:42:19 UTC 2023 - Andreas Schneider <asn@cryptomilk.org>
- Update to version 1.3.10
* See https://gitlab.com/mailman/postorius/-/blob/v1.3.10/src/postorius/doc/news.rst
or the file news.rst in the postorius package
-------------------------------------------------------------------
Sun Jul 2 06:30:47 UTC 2023 - Andreas Schneider <asn@cryptomilk.org>
- Fix uwsgi requirement
-------------------------------------------------------------------
Sat Jul 1 08:17:01 UTC 2023 - Andreas Schneider <asn@cryptomilk.org>
- Use sle15_python_module_pythons
-------------------------------------------------------------------
Fri Jun 30 07:27:48 UTC 2023 - Andreas Schneider <asn@cryptomilk.org>
- Fix building on Leap
-------------------------------------------------------------------
Sun Jun 25 08:12:39 UTC 2023 - Andreas Schneider <asn@cryptomilk.org>
- Update to version 1.3.8
* The buttons and confirmation page for removing members have been revised in
an attempt to reduce accidental removal of all members. (Fixes #545)
* Add bounce score for members in the Members table (See #12)
* Add support for Python 3.11.
- Use sle15_python_module_pythons
-------------------------------------------------------------------
Thu Nov 17 15:07:07 UTC 2022 - Andreas Schneider <asn@cryptomilk.org>
- Update to version 1.3.7
* Fix a bug where various form(s) allowed setting empty values for
delivery_mode and language. (Fixes #540, #522)
* Rename labels description and info fields as 'Short Description' and 'Long
Description' to signify what they mean. (Fixes #510)
* Use date to format the dates in 'List Metrics' section in the List summary
page. (Fixes #508)
* Sort the list of languages in all Select elements alphabetically so they
are easier to naviate with screen readers. (Fixes #498)
* Add support for Django 4.0
* A couple of unit tests are now marked expectedFailure due to
https://gitlab.com/mailman/mailman/-/merge_requests/997. (See #548)
* Translate template names in the “New Templates” page (See #547)
* Translate the section names in the MailingList->"Settings" tab. (See #550)
* Add support for Django 4.1
* Add support for Python 3.10
* Remove support for Django < 3.2
* Remove support for Python < 3.7
* Replace the use of mock with unittest.mock
* Change the way role is selector in the List index page to allow use of the
* filtering without javascript enabled dropdowns. It also enhances usability
by enabling the roles that are currently active by default. (See #544)
* Show the number of files in each Mailman queue under 'System Information'
tab for Admins. (Fixes #480)
- Removed postorius-fix-django-4.0-compatibility.patch
- Add BR for django debug toolbar
-------------------------------------------------------------------
Wed Jul 6 14:30:03 UTC 2022 - Andreas Schneider <asn@cryptomilk.org>
- Add missing makemigritions on update
-------------------------------------------------------------------
Wed Jul 6 13:19:16 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Fix Requires for %{mypython}-uwsgi-python3 on Tumbleweed vs.
uwsgi-python3 on 15.x
-------------------------------------------------------------------
Tue Jul 5 07:29:07 UTC 2022 - Andreas Schneider <asn@cryptomilk.org>
- Fix Requires for uwsgi-python3
-------------------------------------------------------------------
Mon Jul 4 15:18:15 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Use Python 3.9 like the rest of mailman3
-------------------------------------------------------------------
Thu Jun 9 17:23:56 UTC 2022 - Andreas Schneider <asn@cryptomilk.org>
- Fix BR for mailman3 (package has been renamed)
-------------------------------------------------------------------
Thu May 26 07:56:37 UTC 2022 - pgajdos@suse.com
- python-mock is not required for build
-------------------------------------------------------------------
Mon Feb 21 07:31:26 UTC 2022 - Andreas Schneider <asn@cryptomilk.org>
- Make compatible with django 4.0
* Added postorius-fix-django-4.0-compatibility.patch
-------------------------------------------------------------------
Thu Nov 18 18:03:59 UTC 2021 - Matej Cepl <mcepl@suse.com>
- Fix missing minimal requirements on Django.
-------------------------------------------------------------------
Thu Nov 18 08:02:22 UTC 2021 - Andreas Schneider <asn@cryptomilk.org>
- Update to version 1.3.6
- Security:
- Check that a user owns the email address they are trying
to unsubscribe. This fixes a bug in which any logged-in
user could unsubscribe any email address from any mailing
list, leaking whether that address was subscribed
originally. (CVE-2021-40347)
- UI:
- Add 'Delivery Mode' and 'Moderation Action' columns to
- List members page. Add support to list and handle pending
un-subscription requests.
- Add support to specify a reason when handling
(un)subscription requests
- Success messages to mass subscribes now properly
distinguish subscription from invitation and indicate
possible pending confirmation or approval.
- User profile dropdown no longer is too far right.
- Expose archive_rendering_mode in Archiver settings to
choose between plaintext and rich text rendering of emails
in Hyperkitty.
- Allow choosing delivery_mode and delivery_status when
subscribing to a List.
- Redirect to domain_index after domain_edit succeeds.
- Expose new bounce_notify_owner_on_bounce_increment list
setting on Bounce Processing settings, and expose the
corresponding template.
- Expose the forward_unrecognized_bounces_to setting on
Bounce Processing settings.
- Clarified the description of Maximum number of recipients.
- List summary view will now display a table for all
subscriptions with delivery_mode and delivery_status.
- Add a new user management interface for superusrs.
- Allow searching for users in list user views.
- Show both display name and email in user management
interface if available,
- Allow list:admin:notice:pending template to be set in
Postorius.
- Other:
- Use mass-subscription API in core for Mass Removal of
Members.
- Fix a bug where users with multiple subscriptions to a List
couldn't view their Preferences for all addresses.
- Check for pending unsubscription requests and notify user
when the request is pending approval.
- Improve the performance of Members' page by skipping an API
call.
- Improve the performance of List index page for Superuser.
- Skip looking up choosable_domains for non-superuser to
reduce API calls.
- Improve the performance of List owner access checks.
- Add a new APICountingMiddleware to performance testing
purposes.
- Use user_id as subscriber instead of addresses to improve
the efficiency of list index page.
- AUTOCREATE_MAILMAN_USER setting is now removed and
a Mailman user is always created when a User object in
created in Django. Also remove duplicate implementation of
get_mailman_user from MailmanUserManager so that we can use
a single implementation that uses caching for efficient
lookups. Bump bundled jQuery to 3.6.0.slim version.
- Use the full jQuery not the slim version.
- Do not show Ownerships and Moderator roles in the
'Subscriptions' page under mange new user interface.
- Ascessibility:
- Move the focus to the textarea in mass subscribe page if
there are errors in the form.
-------------------------------------------------------------------
Wed Jun 2 06:33:53 UTC 2021 - Andreas Schneider <asn@cryptomilk.org>
- Remove the postorius-admin user
-------------------------------------------------------------------
Tue May 25 19:29:40 UTC 2021 - Andreas Schneider <asn@cryptomilk.org>
- Create static files as part of the build process
- Fixed CVE-2021-31997
-------------------------------------------------------------------
Tue May 4 09:34:29 UTC 2021 - Ben Greiner <code@bnavigator.de>
- restrict to primary python3 flavor due to mailman
-------------------------------------------------------------------
Fri Feb 12 10:54:02 UTC 2021 - Andreas Schneider <asn@cryptomilk.org>
- Update to version 1.3.4
* Update the default Site when creating a domain to match the domain if it is
example.com. (Closes #427)
* Add the ability to subscribe via Primary Address instead of specific
address. (See !516)
* Fix a bug where the user's display name would be ignore when
subscribing. (Closes #429)
* Display a user's name in the pending subscription request list. (Closes #430)
* Set a user's preferrred_address in Core if it isn't already set and the user
has a Primary Address that is verified.
* Use the new APIs in Core to get the count of held messages and pending
subscriptions to improve peroformance of settings page for list
owners. (Fixes #417)
* Show held message is local time of the User. (Closes #434)
* Fix a bug where non-member options page would show an owner's options if the
same email was subscribed as owner and non-member in a list. (Closes #436)
* Switching subscription from one email address to other or Primary Address now
preserves preferences and does not require Moderator approval. (Closes #425)
* Make 'Archives' and 'List Options' urls more prominently visible in the
list summary page as buttons. (Closes #439)
* Added the ability to issue invitations from the mass subscribe view.
* Expose emergency moderation setting for MailingList.
* Fixed some minor HTML errors. (Closes #442)
* Fix the bug where ListOfStringsField couldn't be unset in Postorius. (Closes
#444)
* Allow list:user:action:invite template to be set in Postorius. (Closes
#454)
* Fix a bug where the Bans form would always use default language instead of
current request's language. (Closes #441)
* Fix the URL on cancel buttons in template's confirm delete page. (Closes
#458)
* Use server side filtering for pending subscription requests for moderator
approval. (See !559)
* Allow setting moderation action for a nonmember from Held Message modal. (
Closes #448)
* Add a new view to confirm subscriptions or new emails for Users using
Postorius. (Fixes #459)
* Fix a bug where membership check compared email addresses in different
cases. (Closes #457)
* Mass removal now accepts address formats with display names and/or angle
brackets. (Closes #455)
* Add support to override send_welcome_message when mass subscribing to
suppress welcome messages. (Closes #99)
* Add support for Django 3.1.x. (See !574)
* The list's send_goodbye_message is now settable on the Automatic
Responses view. (Closes #466)
* Support HYPERKITTY_ENABLE_GRAVATAR setting to control the user gravatar.
(Closes #467)
- Fix building on tumbleweed
-------------------------------------------------------------------
Sun Dec 20 14:35:33 UTC 2020 - Andreas Schneider <asn@cryptomilk.org>
- Improve documentation (README.SUSE.md)
-------------------------------------------------------------------
Sat Dec 12 19:19:35 UTC 2020 - Andreas Schneider <asn@cryptomilk.org>
- Fix chdir path in uwsgi config
- Update README.SUSE.md
-------------------------------------------------------------------
Sat Oct 3 07:55:13 UTC 2020 - Andreas Schneider <asn@cryptomilk.org>
- Create a postorius-web package with webroot files
- Create a postorius-web-uwsgi with uwsgi configuration
- Added postorius-settings.patch
* Sets the FHS default paths
-------------------------------------------------------------------
Tue Aug 4 02:03:24 UTC 2020 - Stasiek Michalski <stasiek@michalski.cc>
- Update to 1.3.3
* Expose additional list settings.
* Correct description of Digest Frequency.
* Added links to Reply-To munging articles.
* Fix "Show Headers" button to show the held message headers in the
held message popup.
* Fix the held message popup structure and increase the max width of the popup
to be 800px(modal-lg) for larger screens.
* Fix FILTER_VHOST = True option to try to find the email host corresponding
to the requesting web host.
* Allow specifying a reason when rejecting a held message.
* Allow users to set their preferred language in their preferences.
* Add support to ban addresses for the entire Mailman installation.
* Un-handled HTTPError exception raised from MailmanClient now results in an
error page and proper logging instead of mysterious KeyError in logs.
* Change List settings navigation to be vertical instead of horizontal.
* Move bounce processing settings into a new vertical tab for better
visibility.
* Add URL to edit the Web host for each domain in Domain Index page. Also, show
the SITE_ID for each webhost.
-------------------------------------------------------------------
Tue Apr 14 08:12:34 UTC 2020 - Paolo Stivanin <info@paolostivanin.com>
- Update to 1.3.2 (no changelog)
-------------------------------------------------------------------
Thu Jan 23 15:44:42 UTC 2020 - pgajdos@suse.com
- the pytest issue in 15 will be fixed on python rpm macros level
-------------------------------------------------------------------
Fri Jan 17 11:03:31 UTC 2020 - pgajdos@suse.com
- %check correctly also for 15
-------------------------------------------------------------------
Mon Dec 2 10:47:16 UTC 2019 - pgajdos@suse.com
- call spec-cleaner
-------------------------------------------------------------------
Wed Nov 27 08:20:57 UTC 2019 - pgajdos@suse.com
- package example_project in doc
-------------------------------------------------------------------
Fri Nov 15 08:58:29 UTC 2019 - pgajdos@suse.com
- initial version 1.3.0 [SLE-7686]

90
python-postorius.keyring Normal file
View File

@ -0,0 +1,90 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
13uS0qfwHEvxfNbR011PQGPf7eD4e4i0uh4IcTw=
=s7HB
-----END PGP PUBLIC KEY BLOCK-----

299
python-postorius.spec Normal file
View File

@ -0,0 +1,299 @@
#
# spec file for package python-postorius
#
# 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/
#
%bcond_without testsuite
# keep in sync with setup.py
%global django_mailman3_min_version 1.3.13
%global django_min_version 4.2
%global django_max_version 5.1
%global mailmanclient_min_version 3.3.3
%global webapps_dir /srv/www/webapps
%global postorius_pkgname postorius
%global postorius_basedir %{webapps_dir}/mailman/postorius
%global postorius_localedir %{postorius_basedir}/locale
%global postorius_staticdir %{postorius_basedir}/static
%global postorius_etcdir %{_sysconfdir}/postorius
%global postorius_libdir %{_localstatedir}/lib/postorius
%global postorius_logdir %{_localstatedir}/log/postorius
%global postorius_datadir %{postorius_libdir}/data
# keep in sync with python-HyperKitty/python-mailman-web
# 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}}
%global __mypython %{expand:%%{__%{mypython}}}
Name: python-postorius
Version: 1.3.13
Release: 0
Summary: A web user interface for GNU Mailman
License: GPL-3.0-only
URL: https://gitlab.com/mailman/postorius
#
Source0: https://gitlab.com/mailman/postorius/-/releases/v%{version}/downloads/postorius-%{version}.tar.gz
Source1: https://gitlab.com/mailman/postorius/-/releases/v%{version}/downloads/postorius-%{version}.tar.gz.asc
Source2: python-postorius.keyring
Source3: python-postorius-rpmlintrc
#
Source10: postorius-manage.sh
Source12: postorius.uwsgi
#
Source20: README.SUSE.md
#
Patch0: postorius-settings.patch
#
BuildRequires: %{python_module pip}
BuildRequires: %{python_module pdm-backend}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: acl
BuildRequires: fdupes
BuildRequires: openssl
BuildRequires: python-rpm-macros
BuildRequires: rsync
BuildRequires: sudo
BuildArch: noarch
%if 0%{?suse_version} >= 1550
# use the real python3 primary for rpm pythondistdeps.py
BuildRequires: python3-packaging
%endif
# SECTION test requirements
BuildRequires: mailman3 >= 3.3.5
BuildRequires: %{python_module Django >= %{django_min_version} with %python-Django < %{django_max_version}}
BuildRequires: %{python_module beautifulsoup4}
BuildRequires: %{python_module cmarkgfm}
BuildRequires: %{python_module django-debug-toolbar >= 2.2}
BuildRequires: %{python_module django-mailman3 >= %{django_mailman3_min_version}}
BuildRequires: %{python_module django-requests-debug-toolbar >= 0.0.3}
BuildRequires: %{python_module isort}
BuildRequires: %{python_module mailmanclient >= %{mailmanclient_min_version}}
BuildRequires: %{python_module pytest-django}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module readme_renderer}
BuildRequires: %{python_module vcrpy}
# /SECTION
%python_subpackages
%description
A web user interface for GNU Mailman
%package -n %{postorius_pkgname}
Summary: A web user interface for GNU Mailman
Requires: %{mypython}-django-debug-toolbar >= 2.2.0
Requires: %{mypython}-django-mailman3 >= %{django_mailman3_min_version}
Requires: %{mypython}-django-requests-debug-toolbar >= 0.0.3
Requires: %{mypython}-mailmanclient >= %{mailmanclient_min_version}
Requires: %{mypython}-readme_renderer
Requires: (%{mypython}-Django >= %{django_min_version} with %{mypython}-Django < %{django_max_version})
# help in replacing any previously installed flavor package back to the unprefixed package
%if 0%{?suse_version} < 1550
Obsoletes: python3-%{postorius_pkgname} < %{version}-%{release}
%endif
Provides: %{mypython}-%{postorius_pkgname} = %{version}-%{release}
Obsoletes: %{mypython}-%{postorius_pkgname} < %{version}-%{release}
%description -n %{postorius_pkgname}
A web user interface for GNU Mailman
%package -n %{postorius_pkgname}-web
Summary: The webroot for GNU Mailman
Requires: %{postorius_pkgname}
Requires: acl
Requires: openssl
Requires: sudo
Requires: system-user-%{postorius_pkgname}
%description -n %{postorius_pkgname}-web
A web user interface for GNU Mailman.
This package holds the web interface.
%package -n %{postorius_pkgname}-web-uwsgi
Summary: Postorius - uwsgi configuration
Requires: %{postorius_pkgname}-web
%if 0%{suse_version} >= 1550 || 0%{?sle_version} >= 150500
Requires: %{mypython}-uwsgi-python3
%else
Requires: uwsgi-python3
%endif
%description -n %{postorius_pkgname}-web-uwsgi
A web user interface for GNU Mailman.
This package holds the uwsgi configuration.
%package -n system-user-%{postorius_pkgname}
Summary: System user for HyperKitty
BuildArch: noarch
BuildRequires: sysuser-tools
%sysusers_requires
%description -n system-user-%{postorius_pkgname}
System user for HyperKitty.
%prep
%setup -q -n postorius-%{version}
cp %{SOURCE20} .
touch settings_local.py
# Copy exmaple_project to just build the static files
rsync -a example_project/* build_static_files
%autopatch -p1
tee > %{postorius_pkgname}.sysuser <<EOF
u %{postorius_pkgname} - "Postorius" %{postorius_basedir} -
EOF
%build
sed -i 's|^#!/usr/bin/env.*|#!%{__mypython}|' \
example_project/manage.py
sed -i 's|/usr/bin/python3|%{__mypython}|' %{SOURCE10}
sed -i 's|python3|%{mypython}|' %{SOURCE12}
%pyproject_wheel
# Build static files
install -d -m 0755 build_static_files/logs
export PYTHONPATH=$(pwd)/src
%python_exec build_static_files/manage.py collectstatic --clear --noinput
%sysusers_generate_pre %{postorius_pkgname}.sysuser %{postorius_pkgname}
%install
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
install -d -m 0750 \
%{buildroot}%{postorius_etcdir} \
%{buildroot}%{postorius_libdir} \
%{buildroot}%{postorius_datadir} \
%{buildroot}%{postorius_logdir}
install -d -m 0755 \
%{buildroot}%{postorius_basedir} \
%{buildroot}%{postorius_localedir} \
%{buildroot}%{postorius_staticdir} \
# Copy static files
rsync -a build_static_files/static %{buildroot}%{postorius_basedir}
rsync -a example_project/* %{buildroot}%{postorius_basedir}
chmod -x %{buildroot}%{postorius_basedir}/wsgi.py
%python_expand rm -rf %{buildroot}%{$python_sitelib}/example_project
rm -f %{buildroot}%{postorius_basedir}/README.rst
rm -f %{buildroot}%{postorius_basedir}/mailman.cfg
rm -f %{buildroot}%{postorius_basedir}/logs/.keep
# Create an empty settings_local.py. This will be filled with a SECRET_KEY in post
install -m 0644 settings_local.py %{buildroot}%{postorius_etcdir}/settings_local.py
ln -svf %{postorius_etcdir}/settings_local.py \
%{buildroot}/%{postorius_basedir}/settings_local.py
%fdupes %{buildroot}%{postorius_basedir}
# Manage script
install -d -m 0755 %{buildroot}%{_sbindir}
install -m 0750 %{SOURCE10} %{buildroot}%{_sbindir}/postorius-manage
install -d -m 0755 %{buildroot}%{_sysconfdir}/uwsgi/vassals
install -m 0644 %{SOURCE12} %{buildroot}%{_sysconfdir}/uwsgi/vassals/postorius.ini
install -d -m 0755 %{buildroot}%{_sysusersdir}
install -m 0644 %{postorius_pkgname}.sysuser %{buildroot}%{_sysusersdir}/%{postorius_pkgname}.conf
%if %{with testsuite}
%check
export PYTHONPATH="$(pwd):$(pwd)/src"
export LANG=C.UTF-8
%pytest
# clean flavored alternatives created by test setup, because we are going to install the example_project as docs
rm -rf build/flavorbin
rm -rf build/xdgflavorconfig
%endif
%pre -n %{postorius_pkgname}-web
/usr/sbin/groupadd -r postorius &>/dev/null || :
/usr/sbin/useradd -g postorius -s /bin/false -r -c "Postorius" -d %{postorius_basedir} postorius &>/dev/null || :
%post -n %{postorius_pkgname}-web
# We need a SECRET_KEY for manage to work
if ! grep -q "^SECRET_KEY.*" %{postorius_etcdir}/settings_local.py; then
echo "SECRET_KEY='$(openssl rand -base64 48)'" >> %{postorius_etcdir}/settings_local.py
fi
%{_sbindir}/postorius-manage makemigrations --pythonpath /srv/www/webapps/mailman/postorius/ --settings settings
%{_sbindir}/postorius-manage migrate --pythonpath /srv/www/webapps/mailman/postorius/ --settings settings
%pre -n system-user-%{postorius_pkgname} -f %{postorius_pkgname}.pre
%files -n %{postorius_pkgname}
%doc README.rst example_project src/postorius/doc/*.rst
%license COPYING
%{mypython_sitelib}/postorius
%{mypython_sitelib}/postorius-%{version}*-info
%files -n %{postorius_pkgname}-web
%doc README.SUSE.md
%{_sbindir}/postorius-manage
%dir %{webapps_dir}
%dir %{webapps_dir}/mailman
%defattr(-,root,postorius)
%dir %{postorius_basedir}
%{postorius_basedir}/__init__.py
%{postorius_basedir}/manage.py
%{postorius_basedir}/settings.py
%{postorius_basedir}/settings_local.py
%{postorius_basedir}/test_settings.py
%{postorius_basedir}/urls.py
%{postorius_basedir}/wsgi.py
%dir %{postorius_basedir}/static
%{postorius_basedir}/static/admin
%{postorius_basedir}/static/django-mailman3
%{postorius_basedir}/static/postorius
%{postorius_basedir}/static/debug_toolbar
%attr(750,root,postorius) %dir %{postorius_etcdir}
%attr(640,root,postorius) %config(noreplace) %{postorius_etcdir}/settings_local.py
%attr(750,root,postorius) %dir %{postorius_libdir}
%attr(750,postorius,postorius) %dir %{postorius_datadir}
%attr(750,postorius,postorius) %dir %{postorius_logdir}
%files -n %{postorius_pkgname}-web-uwsgi
%dir %{_sysconfdir}/uwsgi
%dir %{_sysconfdir}/uwsgi/vassals
%config (noreplace) %{_sysconfdir}/uwsgi/vassals/postorius.ini
%files -n system-user-%{postorius_pkgname}
%{_sysusersdir}/%{postorius_pkgname}.conf
%changelog