
Thomas Krichel writes
No email reaches the list. I did not notice, but now the listowner has written to me.
Here I try to document how I change from the mailman Debian package to the virtualenv. The change appears necessary because Debian testing's default python is 3.13 and Mailman is not ready for that.
root@server:/usr/local# rm -rf mailman/ root@server:/usr/local# mkdir mailman root@server:/usr/local# cd mailman
Not sure whether my default python3.13 can be used so I explicitly call python3.12
root@server:/usr/local/mailman# python3.12 -m venv venv source /usr/local/mailman/venv/bin/activate
I used sqlite as the database, so I don't install psycopg2-binary
(venv) root@server:/usr/local/mailman# pip install wheel mailman
Now look at systemd
root@server:/lib/systemd# find . -name *mailman* ./system/mailman3-web.service ./system/mailman3.service
After examining mailman-web I guess it does not need changing.
root@server:/lib/systemd# systemctl stop mailman3
root@server:/lib/systemd# systemctl disable mailman3 Synchronizing state of mailman3.service with SysV service script with /usr/lib/systemd/systemd-sysv-install. Executing: /usr/lib/systemd/systemd-sysv-install disable mailman3 Removed '/etc/systemd/system/multi-user.target.wants/mailman3.service'.
root@server:/lib/systemd/system# cp -a mailman3.service mailman3_debian.service
Let's reference the the virtual environment's mailman
root@server:/lib/systemd/system# diff mailman3.service mailman3_debian.service 12,14c12,14 < ExecStart=/usr/local/mailman/venv/bin/mailman -C /etc/mailman3/mailman.cfg start --force < ExecReload=/usr/local/mailman/venv/bin/mailman -C /etc/mailman3/mailman.cfg restart < ExecStop=/usr/local/mailman/venv/bin/mailman -C /etc/mailman3/mailman.cfg stop
ExecStart=/usr/bin/mailman -C /etc/mailman3/mailman.cfg start --force ExecReload=/usr/bin/mailman -C /etc/mailman3/mailman.cfg restart ExecStop=/usr/bin/mailman -C /etc/mailman3/mailman.cfg stop
root@server:/lib/systemd/system# systemctl enable mailman3.service Synchronizing state of mailman3.service with SysV service script with /usr/lib/systemd/systemd-sysv-install. Executing: /usr/lib/systemd/systemd-sysv-install enable mailman3
root@server:/lib/systemd/system# systemctl start mailman3
Seems to start. A test mail to the list yields
Feb 13 09:36:37 2025 (872373) Uncaught runner exception: No module named 'mailman_hyperkitty'
Even though I did not see this at
https://docs.mailman3.org/en/latest/install/virtualenv.html
It looks like I need to get mailman_hyperkitty.
root@server~# systemctl stop mailman3
root@server~# source /usr/local/mailman/venv/bin/activate
(venv) root@server~# pip install mailman_hyperkitty
root@server~# systemctl start mailman3
Now my test email seems to be starting to be delivered to the list.
I am particularly grateful to Stephen J. Turnbull's contribution, especially when he wrote
(I think Debian puts mailman3 configs there and that's what we recommend)
So in fact there is no need to fiddle with configs apart from the systemd file.
-- Written by Thomas Krichel http://openlib.org/home/krichel on his 21804th day.