Search results for query "sapiro"
- 5617 messages

[MM3-users] Re: Apache+mod_wsgi issue
by Odhiambo Washington
On Thu, Dec 22, 2022 at 8:02 PM Mark Sapiro <mark(a)msapiro.net> wrote:
> On 12/22/22 03:49, Odhiambo Washington wrote:
> >
> > My challenge now is to get Apache+mod_uwsgi to serve my pages,
>
> I assume that's a typo. I.e, mod_wsgi, not mod_uwsgi.
>
That's right :)
> > but I am hitting the error below which has gotten me stuck.
> > Thanking you in advance for your advice on how to overcome this.
> >
> ...> [Thu Dec 22 14:21:23.041064 2022] [wsgi:error] [pid 4288] [remote
> > 197.232.81.246:15107] ModuleNotFoundError: No module named 'settings'
>
>
> Django can't import your settings.py. Is the directory that contains it
> in your Python path and does that directory contain (an empty) __init__.py?
>
Here is the VHOST...
<CUT> vhost ---8<
[00:53 mm ]$ less /usr/local/etc/apache24/Includes/mailman3-uwsgi.cf
# mm3-lists.kictanet.or.ke
<VirtualHost *:80>
ServerName mm3-lists.kictanet.or.ke
ServerAdmin odhiambo(a)gmail.com
Redirect permanent / https://mm3-lists.kictanet.or.ke
</VirtualHost>
# This goes in a global section.
WSGIDaemonProcess mailman-web display-name=mailman-web
maximum-requests=1000 umask=0002 user=mailman group=mailman
python-path=/opt/mailman/mm/venv/lib/python3.9/site-packages:/opt/mailman/mm/venv/lib/python3.9
python-home=/opt/mailman/mm/venv home=/opt/mailman/mm/var
WSGIRestrictSignal Off
<VirtualHost *:443>
ServerName mm3-lists.kictanet.or.ke
ServerAdmin odhiambo(a)gmail.com
SSLEngine on
SSLCipherSuite
ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "/usr/local/etc/letsencrypt/live/
mm3-lists.kictanet.or.ke/cert.pem"
SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/
mm3-lists.kictanet.or.ke/privkey.pem"
SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/
mm3-lists.kictanet.or.ke/chain.pem"
CustomLog /var/log/mm3-lists-access.log combined
ErrorLog /var/log/mm3-lists-error.log
LogLevel info
Alias /favicon.ico /opt/mailman/mm/static/hyperkitty/img/favicon.ico
# (I'm not sure that WSGIRestrictSignal Off is required, but it was in the
# provided example so I kept it. I also made changes to WSGIDaemonProcess
# based on my own mod_wsgi experience elsewhere.)
# This goes in the VirtualHost block for the domain.
# Mailman 3 stuff
Alias /static "/opt/mailman/mm/static"
<Directory "/opt/mailman/mm/static">
Require all granted
</Directory>
WSGIScriptAlias /mailman3 /opt/mailman/mm/wsgi.py
<Directory "/opt/mailman/mm/">
<Files wsgi.py>
Order deny,allow
Allow from all
Require all granted
</Files>
WSGIProcessGroup mailman-web
</Directory>
</VirtualHost>
</CUT>
And here is the path - or maybe there is something I am missing in the
VHOST?
[00:53 ~ ]$ cd /opt/mailman/mm/
[00:53 mm ]$ ls -al
total 116
drwxr-xr-x 9 mailman mailman 512 Dec 22 13:54 .
drwxr-xr-x 6 mailman mailman 512 Dec 21 07:54 ..
-rw-r--r-- 1 mailman mailman 0 Sep 29 2021 __init__.py
drwxr-xr-x 2 mailman mailman 512 Dec 22 14:18 __pycache__
-rw-r--r-- 1 mailman mailman 15574 Dec 20 18:16 _settings.py
drwxr-xr-x 3 mailman mailman 512 Dec 20 19:47 bin
drwxr-xr-x 5 mailman mailman 512 Dec 8 10:32 etc
drwxr-xr-x 2 mailman mailman 1536 Dec 21 11:54 fulltext_index
-rw-r--r-- 1 mailman mailman 317 Dec 21 16:53 gunicorn.conf
lrwxr-xr-x 1 mailman mailman 13 Dec 21 16:55 gunicorn.conf.py ->
gunicorn.conf
-rw-r--r-- 1 mailman mailman 0 Dec 5 18:10 init.py
lrwxr-xr-x 1 mailman mailman 24 Dec 5 17:38 logs ->
/opt/mailman/mm/var/logs
-rw-r--r-- 1 mailman mailman 592 Oct 2 2021 mailman-crontab
-rw-r--r-- 1 mailman mailman 409 Dec 20 16:32 mailman-hyperkitty.cfg
-rw-r--r-- 1 mailman mailman 1330 Dec 20 16:24 mailman.cfg
-rw-r--r-- 1 mailman mailman 183 Dec 2 15:17 main.py
-rwxr-xr-x 1 mailman mailman 243 Sep 29 2021 manage.py
-rw-r--r-- 1 mailman mailman 510 Dec 11 14:11 modify-db.sql
-rw-r--r-- 1 mailman mailman 15844 Dec 22 14:18 settings.py
-rw-r--r-- 1 mailman mailman 6622 Dec 22 11:27 settings_local.py
drwxr-xr-x 10 mailman mailman 512 Dec 5 17:38 static
-rw-r--r-- 1 mailman mailman 1453 Dec 20 16:32 urls.py
-rw-r--r-- 1 mailman mailman 1266 Dec 22 13:55 uwsgi.ini
drwxr-xr-x 12 mailman mailman 512 Dec 22 14:21 var
drwxr-xr-x 7 mailman mailman 512 Dec 6 15:35 venv
-rw-r--r-- 1 mailman mailman 1173 Sep 29 2021 wsgi.py
--
Best regards,
Odhiambo WASHINGTON,
Nairobi,KE
+254 7 3200 0004/+254 7 2274 3223
"Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-)
2 years, 4 months

[MM3-users] Re: Post-installation documentation?
by David Newman
On 11/24/21 2:36 PM, Mark Sapiro wrote:
> On 11/24/21 9:40 AM, David Newman wrote:
>>
>> IMO post-installation docs for list admins would be a big help in
>> Mailman3 adoption. I'm willing to help with this.
>
>
> Thank you for being willing to contribute. I think the place for list
> admin docs would be in the https://gitlab.com/mailman/mailman-suite-doc
> project which is the source for https://docs.mailman3.org/en/latest/.
> There is currently a userguide there at source/userguide.rst and
> referenced from source/index.rst. the addition of an adminguide.rst
> would be welcom if you want to work on that.
Thanks, will get into this ASAP. Am happy to contribute once I acquire a
bit more clue.
>
>
>> When I say "working": I'm looking to migrate Mailman2 mailing lists to
>> Mailman3, but am struggling with even basic setup tasks before we
>> attempt list migtration.
>>
>> For example, on admin page I've set up two lists, one public and one
>> private (each with unique list IDs), but neither appear in the site's
>> list index.
>
>
> Here are the steps to migrate a 2.1 list named `alist(a)example.com` and
> its archives.
>
> run Mailman's `bin/mailman create alist(a)example.com`
>
> follow that with
> ```
> bin/mailman import21 alist(a)example.com
> /path/to/mailman2.1/lists/alist/config.pck
> ```
> That will create the list and import its members and settings.
>
> To import archives run the Django admin command with arguments
> ```
> hyperkitty_import -l alist(a)example.com
> /path/to/mailman2.1/archives/private/alist.mbox/alist.mbox
Good up to here, but ... hyperkitty_import not found.
This wasn't covered in the venv docs:
https://docs.mailman3.org/en/latest/install/virtualenv.html
or in the web frontend docs [1]:
https://docs.mailman3.org/en/latest/config-web.html
or in the howto Brian Carpenter (RIP) wrote for Debian 10:
https://wiki.list.org/DOC/Howto_Install_Mailman3_On_Debian10
Also, I had previously created two other lists under the site admin
page. These do not appear in the site's mailing lists page, nor does the
list I successfully imported from MM 2.1 appear in the admin page, under
mailing lists.
> ```
>
>> And I don't know where to add list members.
>
>
> For imported lists, they are already added, but for new lists, you can
> add them in Postorius under Mass operations -> Mass subscribe or via the
> bin/mailman commands `addmembers` or `syncmembers`. See
> https://docs.mailman3.org/projects/mailman/en/latest/src/mailman/commands/d…
>
>
>
>> And clicking the site archives link throws this error:
>>
>> django.urls.exceptions.NoReverseMatch: Reverse for 'hk_list_overview'
>> with keyword arguments '{'mlist_fqdn': 'wheee'}' not found. 1
>> pattern(s) tried: ['archives/list/(?P<mlist_fqdn>[^/@]+@[^/@]+)/$']
>
>
> Did you specify the list's fqdn as in
> https://www.example.com/archives/list/list@example.com/
No. I clicked the archives icon at the top of a Postorious page. This is
possibly related to the hyperkitty_import issue above.
Thanks again.
dn
[1] In addition to the web frontend docs, there is also a hyperkitty
docs page:
https://docs.mailman3.org/projects/hyperkitty/en/latest/install.html
I found this page unhelpful. For example it starts with this command:
sudo python setup.py install
but doesn't say where setup.py resides, or which directory the command
should be run from. (And yes, different OSs use different locations. I'd
setting for one being named, along with a YMMV disclaimer.)
Then this doc goes to database setup, with this example:
django-admin migrate --pythonpath example_project --settings settings
Again, this is unclear. I don't know what "example_project" is, or in
what context it's used here.
This doc also describes a different, and less straightforward,
import-from-2.1 procedure than Mark described above.
It's possible the hyperkitty doc is now outdated. I'd be glad to help
bring the various different install guides together and update them --
once I better understand how they work. Thanks.
3 years, 5 months

[MM3-users] Re: hyperkitty threads by month question
by Bryan Fields
On 7/26/24 4:01 PM, Mark Sapiro wrote:
> Yes, I suspect this bad date is part of the issue.
>
> I would do a few things. First,
>
> SELECT message_id FROM hyperkitty_email WHERE thread_id = 35670;
mailmanweb=> SELECT message_id FROM hyperkitty_email WHERE thread_id = 35670;
message_id
-------------------------------------
200204151506953.SM01412(a)sunchar.com
Yep, that matches the bad date message ID.
> If this returns just the one message_id, I would then
>
> DELETE FROM hyperkitty_thread WHERE id = 35670;
> DELETE FROM hyperkitty_email WHERE id = 150555;
It's giving an error due to a fk constraint on another table. I'm not
familiar with the db structure enough to be certain how to clean/fix it.
mailmanweb=> DELETE FROM hyperkitty_thread WHERE id = 35670;
ERROR: update or delete on table "hyperkitty_thread" violates foreign key constraint "hyperkitty_lastview_thread_id_5bd4f0ad_fk_hyperkitty_thread_id" on table "hyperkitty_lastview"
DETAIL: Key (id)=(35670) is still referenced from table "hyperkitty_lastview".
mailmanweb=> DELETE FROM hyperkitty_email WHERE id = 150555;
ERROR: update or delete on table "hyperkitty_email" violates foreign key constraint "hyperkitty_thread_starting_email_id_fa7c55f5_fk_hyperkitt" on table "hyperkitty_thread"
DETAIL: Key (id)=(150555) is still referenced from table "hyperkitty_thread".
> and see if that fixes the internal server error when accessing the
> archive. I would also
>
> SELECT * FROM hyperkitty_email WHERE id = 136872;
mailmanweb=> SELECT * FROM hyperkitty_email WHERE id = 136872;
id | message_id | message_id_hash | subject | content | date | timezone | in_reply_to | archived_date | thread_depth | thread_order | mailinglist_id | parent_id | sender_id | thread_id | sender_name
--------+------------------------------------------+----------------------------------+------------------+-------------------------------------------------------------------+------------------------+----------+-------------+------------------------+--------------+--------------+----------------+-----------+-------------------------+-----------+---------------
136872 | 200001010102.BAA05112(a)genesis.domino.org | SGZJVBCSRYSHGHR4BB2632INFGYWOJYH | UK GMT roll over | +| 0100-01-01 01:02:34+00 | 0 | | 1999-12-31 20:20:13+00 | 0 | 0 | 3 | | neil(a)genesis.domino.org | 31067 | Neil J. McRae
| | | | GMT and CET rolled over without any major incidents. The cellular+| | | | | | | | | | |
| | | | networks were busy but thats to be expected. +| | | | | | | | | | |
| | | | +| | | | | | | | | | |
| | | | Regards, +| | | | | | | | | | |
| | | | Neil. +| | | | | | | | | | |
| | | | -- +| | | | | | | | | | |
| | | | Neil J. McRae - Alive and Kicking. +| | | | | | | | | | |
| | | | neil(a)DOMINO.ORG +| | | | | | | | | | |
| | | | +| | | | | | | | | | |
| | | | | | | | | | | | | | |
That message had "Date: Sat, 1 Jan 100 01:02:34 +0000 (GMT)" in the mbox.
It looks like it should be year 2000 from the rest of the headers
This message was found by your script too:
Date: changed at line 13785764
Date: Sat, 1 Jan 100 01:02:34 +0000 (GMT)
Date: Fri, 31 Dec 1999 20:20:13 -0000
> and maybe update the `date` in that entry.
I'm actually thinking I need to fix the archive mbox, then delete them and
re-import them once they are cleaned.
> Also, FYI, assuming those messages with very old Date: headers had
> reasonable unix from dates, the hyperkitty/contrib/cleanarch3 script
> would fix them, except you have to get the script from
> https://gitlab.com/mailman/hyperkitty/-/blob/master/hyperkitty/contrib/clea…
> or https://www.msapiro.net/scripts/cleanarch3 because the script in the
> latest release has a bug.
I tried the dry run option on your script and it gave a bunch of output for bad
dates. This was absent on the one shipping with the source. What's interesting
is that pipermail seems to have no issue with this, detecting the date
correctly.
https://mailman.nanog.org/pipermail/nanog/2000-January/137630.html
One other thing, I did notice a number of archives not showing up in sequence
due to missing "In-Reply-To:" headers from the source. The first message in
this is one like this, and pipermail in mmm2 seems to handle this by referencing
the subject, https://mailman.nanog.org/pipermail/nanog/2002-April/151325.html,
where as in hyperkitty it's an orphaned thread.
Is the archive tool in pipermail's import more robust in this manner? I'd argue
it's common to have missing In-Reply-To: headers where the subject and time
would need to be used to infer the likely thread. I'll agree this is a major
violation of the relevant RFC's to be missing this, but many MUA's (M$) are
famous for doing just this.
Thank you,
--
Bryan Fields
727-409-1194 - Voice
http://bryanfields.net
9 months, 2 weeks

[MM3-users] Re: Database permission problem?
by Bill Oliver
On Tue, 2024-10-15 at 17:13 -0700, Mark Sapiro wrote:
> On 10/15/24 15:24, Bill Oliver wrote:
> >
> > Yeah, I saw that, too. The double db files are created by
> > postmap. I
> > haven't worried about it too much yet, since the permissions are
> > the
> > same. I don't know why postmap does this, but it's next on my
> > list of
> > things to fix.
>
>
> You should not be running postmap manually and never on a *.db file
> in
> any case. Mailman should be creating postfix_domains, postfix_lmtp
> and
> postfix_vmap and calling postmap on those to create the .db files.
>
> > In my main.cf postfix_lmtp is mentioned four times:
> >
> > virtual_mailbox_maps =
> > proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf,
> >
> > proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_map
> > s.cf
> > #added 20241009 for mailman
> > hash:/opt/mailman/mm/var/data/postfix_lmtp ${dovecot}
> >
> > virtual_alias_maps =
> > proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf,
> >
> > proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf,
> >
> > proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_ma
> > ps.c
> > f
> > #added 20241009 for mailman
> > hash:/opt/mailman/mm/var/data/postfix_vmap
> >
> > #Mailman transport stuff
> > transport_maps =
> > hash:/opt/mailman/mm/var/data/postfix_lmtp
> > local_recipient_maps =
> > hash:/opt/mailman/mm/var/data/postfix_lmtp ${dovecot}
>
>
> Are you adding ${dovecot} to the local_recipient_maps and
> virtual_mailbox_maps mailman entries or was that there before?
Thanks. The reason I created them by hand is that they are not being
created automatically it seemed. If I remove them and restart things, I
get the following errors in /var/log/mail.err:
2024-10-15T12:43:31.060478-04:00 mail postfix/smtpd[961837]: error:
open database /opt/mailman/mm/var/data/postfix_domains.db: No such file
or directory
2024-10-15T12:43:31.060874-04:00 mail postfix/smtpd[961837]: error:
open database /opt/mailman/mm/var/data/postfix_lmtp.db: No such file or
directory
2024-10-15T12:43:31.069450-04:00 mail postfix/smtpd[961837]: error:
open database /opt/mailman/mm/var/data/postfix_vmap.db: No such file or
directory
However.... I just looked at the /opt/mailman/mm/var/data directory and
the (single) db files are now there, and that error occurs only once.
So, I probably over-reacted to it.
Unfortunately, I'm back to the permission declined error:
2024-10-15T22:31:31.973125-04:00 mail postfix/virtual[3497]: error:
open database /opt/mailman/mm/var/data/postfix_lmtp.db: Permission
denied
As far as the addition of ${dovecot} goes, I did it myself because of
the instructions at:
https://docs.mailman3.org/projects/mailman/en/latest/src/mailman/docs/mta.h…
Dovecot is having a hard time authenticating mailinglist users. I
figured that problem arose because it can't use any of the mailman .db
files, but I don't know. In any case, a dovecot error message that
happens when a user (who has an account on the local machine) sends
mail to the mailing list includes:
2024-10-15T21:50:45.231465-04:00 mail dovecot: auth-worker(5669):
Debug: conn unix:auth-worker (pid=3690,uid=111): auth-worker<1>:
pam(oliver(a)billoblog.com,129.222.252.225): lookup service=dovecot
2024-10-15T21:50:45.234036-04:00 mail dovecot: auth-worker(5669):
Debug: conn unix:auth-worker (pid=3690,uid=111): auth-worker<1>:
pam(oliver(a)billoblog.com,129.222.252.225): #1/1 style=1 msg=Password:
2024-10-15T21:50:46.716360-04:00 mail dovecot: auth-worker(5669): conn
unix:auth-worker (pid=3690,uid=111): auth-worker<1>:
pam(oliver(a)billoblog.com,129.222.252.225): pam_authenticate() failed:
Authentication failure (Password mismatch?) (given password: XXXXXXX)
2024-10-15T21:50:46.716497-04:00 mail dovecot: auth-worker(5669):
Debug: conn unix:auth-worker (pid=3690,uid=111): auth-worker<1>:
pam(oliver(a)billoblog.com,129.222.252.225): Finished passdb lookup
2024-10-15T21:50:46.716562-04:00 mail dovecot: auth-worker(5669):
Debug: conn unix:auth-worker (pid=3690,uid=111): auth-worker<1>:
Finished: password_mismatch
It should be noted that mail works fine for that user, and this error
arises *only* when mail is sent to the mailinglist address. Dovecot
does not complain if I send mail elsewhere. Mail is received and
delivered to and from this address without a problem.
The other thing I did was add an alias domain when I set up the domain
in postorius, again because it seemed from reading the instructions
that this was advisable on a server with multiple virtual domains.
Thanks.
6 months, 4 weeks

[MM3-users] Re: The doubled entries issue
by Lars Bjørndal
Hi!
The problem seesm to be solved. Anyway, here's the answer to questions:
On Sun, Nov 12, 2023 at 08:07:59AM -0800, Mark Sapiro wrote:
> On 11/11/23 23:56, Lars Bjørndal wrote:
> >
> > Thank you. The script I try to run, is found here: https://gitlab.com/mailman/mailman/-/issues/657
> >
> > I named the script fix-doubled-entries.py. When I try
> >
> > `mailman shell --run ./fix-doubled-entries.py` I get:
>
> This is not the way to run a script with `mailman shell`. See
> ```
> mailman shell --details
> ```
> for info. However, that script cannot be run as is by `mailman shell --run`.
> It can be run by invoking `mailman shell` interactively and copying and
> pasting it,
Yes, that worked, e.g. no error messages.
> or if your Mailman is installed in a venv it can be run with the
> venv active by `python ./fix-doubled-entries.py`.
I have mailman installed in venv, but got the following when trying that:
"python fix-doubled-entries.py" need the IListManager interface but can't find it.
> However, that script will not fix your issue because you don't have multiple
> mhonarc entries for a list. See https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/message…
> and as it says, Tell us more about the "duplicate entries" error, and if
> possible copy it exactly from where you found it originally, including any
> traceback.
Here's the entries in the mailman.log file:
[11/Nov/2023:09:18:41 +0100] "GET /3.1/addresses/lars(a)lamasti.net HTTP/1.1" 200 365 "-" "GNU Mailman REST client v3.3.5"
[11/Nov/2023:09:18:42 +0100] "GET /3.1/lists/annonsering.hodr.no/roster/moderator HTTP/1.1" 200 90 "-" "GNU Mailman REST client v3.3.5"
Nov 11 09:18:43 2023 (1709) HyperKitty archived message <m3sf5cd7ok.fsf(a)dalen.lamasti.net> to https://hodr.no/archives/list/annonsering@hodr.no/message/NL5LTYANYLKOF5N33…
[11/Nov/2023:09:18:44 +0100] "GET /3.1/users/lars(a)lamasti.net HTTP/1.1" 200 259 "-" "GNU Mailman REST client v3.3.5"
Nov 11 09:18:47 2023 (1715) Uncaught runner exception: Multiple rows were found when one or none was required
Nov 11 09:18:47 2023 (1715) Traceback (most recent call last):
File "/opt/mailman3/venv/lib64/python3.11/site-packages/mailman/core/runner.py", line 179, in _one_iteration
self._process_one_file(msg, msgdata)
File "/opt/mailman3/venv/lib64/python3.11/site-packages/mailman/core/runner.py", line 272, in _process_one_file
keepqueued = self._dispose(mlist, msg, msgdata)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mailman3/venv/lib64/python3.11/site-packages/mailman/runners/outgoing.py", line 111, in _dispose
self._func(mlist, msg, msgdata)
File "/opt/mailman3/venv/lib64/python3.11/site-packages/mailman/mta/deliver.py", line 89, in deliver
refused = agent.deliver(mlist, msg, msgdata)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mailman3/venv/lib64/python3.11/site-packages/mailman/mta/base.py", line 167, in deliver
callback(mlist, message_copy, msgdata_copy)
File "/opt/mailman3/venv/lib64/python3.11/site-packages/mailman/mta/decorating.py", line 32, in decorate
decorator.process(mlist, msg, msgdata)
File "/opt/mailman3/venv/lib64/python3.11/site-packages/mailman/handlers/decorate.py", line 250, in process
process(mlist, msg, msgdata)
File "/opt/mailman3/venv/lib64/python3.11/site-packages/mailman/handlers/decorate.py", line 73, in process
for archiver in IListArchiverSet(mlist).archivers:
^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mailman3/venv/lib64/python3.11/site-packages/zope/component/_api.py", line 167, in adapter_hook
return sitemanager.queryAdapter(object, interface, name, default)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mailman3/venv/lib64/python3.11/site-packages/zope/interface/registry.py", line 351, in queryAdapter
return self.adapters.queryAdapter(object, interface, name, default)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mailman3/venv/lib64/python3.11/site-packages/mailman/database/transaction.py", line 106, in wrapper
return function(args[0], config.db.store, *args[1:], **kws)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mailman3/venv/lib64/python3.11/site-packages/mailman/model/mailinglist.py", line 653, in __init__
ListArchiver.name == archiver_name).one_or_none()
^^^^^^^^^^^^^
File "/opt/mailman3/venv/lib64/python3.11/site-packages/sqlalchemy/orm/query.py", line 2769, in one_or_none
return self._iter().one_or_none() # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mailman3/venv/lib64/python3.11/site-packages/sqlalchemy/engine/result.py", line 1813, in one_or_none
return self._only_one_row(
^^^^^^^^^^^^^^^^^^^
File "/opt/mailman3/venv/lib64/python3.11/site-packages/sqlalchemy/engine/result.py", line 816, in _only_one_row
raise exc.MultipleResultsFound(
sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when one or none was required
Nov 11 09:18:47 2023 (1715) SHUNTING: 1699690727.810848+3b6f3baba5576f3d87d3ff392aba2715d4dda793
[11/Nov/2023:10:00:02 +0100] "GET /3.1/lists?count=10&page=1 HTTP/1.1" 200 4061 "-" "GNU Mailman REST client v3.3.5"
I don't know what fixed the problem, but when I did `mailman unshunt` the message went through.
Will mailman notify when there's shunted messages?
Lars
1 year, 6 months

[MM3-users] Re: A little stuck with installation of MM3 - ModuleNotFoundError: No module named 'flufl.lock'
by Odhiambo Washington
On Sun, 26 Jul 2020 at 18:48, Mark Sapiro <mark(a)msapiro.net> wrote:
> On 7/26/20 3:15 AM, Odhiambo Washington wrote:
>
> > There is still some confusion on my part about the directives in the file
> > so allow me to seek some clarifications.
> >
> > The following are the contents of a file I have created and placed in my
> > Apache Includes/ directory.
> > I was hoping that with it, I can now access http://lists.my.server/mm3
> and
> > get the UI.
> >
> > <CUT>
> >
> > # Global section
> > WSGIDaemonProcess mailman-web display-name=mailman-web
> > maximum-requests=1000 umask=0002 user=mailman3 \
> > group=mailman3
> >
> python-path=/opt/mailman/mm/venv/lib/python3.7/site-packages:/opt/mailman/mm/venv/lib/python3.7
> > \
> > python-home=/opt/mailman/mm/venv home=/opt/mailman/mm/var
> > WSGIRestrictSignal Off
> >
> > <VirtualHost *:80>
> > ServerName lists.my.server
> > ServerAdmin odhiambo(a)gmail.com
> >
> > # (I'm not sure that WSGIRestrictSignal Off is required, but it was in
> the
> > # provided example so I kept it. I also made changes to WSGIDaemonProcess
> > # based on my own mod_wsgi experience elsewhere.)
> >
> > ErrorLog /var/log/myserver-error.log
> > LogLevel debug
> >
> > # This goes in the VirtualHost block for the domain.
> >
> > # Mailman 3 stuff
> > Alias /static "/var/spool/mailman-web/static" *<----- Where is this
> > directory supposed to be and what/who creates it and with what
> permissions?*
>
>
> It is created/updated by the mailman-post-update script based on CONFDIR
> and STATIC_DIR.
>
The fact that I have run the mailman-post-update script and these
directories aren't created means there is a problem in my setup, yes?
> > <Directory "/var/spool/mailman-web/static">
>
> With the settings in the sample, the above should be
>
> <Directory "/opt/mailman/mm/static">
>
> and the alias
>
> Alias /static "/opt/mailman/mm/static"
>
> Clearly
> <
> https://wiki.list.org/DOC/Mailman%203%20installation%20experience?action=At…
> >
> doesn't match some other files. I'll review abd update that.
>
Okay. I am anxiously waiting.
>
> > Require all granted
> > </Directory>
> > WSGIScriptAlias /mm3 /opt/mailman/mm/wsgi.py
> > <Directory "/opt/mailman/mm/">
> > <Files wsgi.py>
> > Order deny,allow
> > Allow from all
> > Require all granted
> > </Files>
> > WSGIProcessGroup mailman-web
> > </Directory>
> > </VirtualHost>
> >
> > </CUT-HERE>
> >
> > I end up with an "Internal server error" and from the error log I see:
> >
> ...
> > [Sun Jul 26 12:04:44.093265 2020] [wsgi:error] [pid 6444] [remote
> > 197.232.81.246:53383] ModuleNotFoundError: No module named 'settings'
>
>
> Django is trying to import your settings.py file and can't find it. Is
> it at /opt/mailman/mm/settings.py and also local settings at
> /opt/mailman/mm/settings_local.py?
Yes, I have these files:
(venv) [root@gw /opt/mailman/mm]# ls -al /opt/mailman/mm/settings*
-rw-r--r-- 1 mailman3 wheel 15518 Jul 25 14:34
/opt/mailman/mm/settings.py
-rw-r--r-- 1 mailman3 wheel 15773 Jul 26 10:33
/opt/mailman/mm/settings_local.py
PS: I made my /opt/mailman to be owned by mailman3:wheel because of a
confusion with the instructions at some point in the reading
of some documentation previously (in my previous attempt last year!) and
had noted that in my NOTES. I'll change this once things get clear for me.
Also, the fact that one of the init scripts
<https://wiki.list.org/DOC/Mailman%203%20installation%20experience?action=At…>
in your "reflection" page was calling sudo :)
--
Best regards,
Odhiambo WASHINGTON,
Nairobi,KE
+254 7 3200 0004/+254 7 2274 3223
"Oh, the cruft.", grep ^[^#] :-)
4 years, 9 months

[MM3-users] Re: SPF check fails for lists subdomain
by Jan Eden
On 2023-01-04 15:07, Mark Sapiro wrote:
> On 1/4/23 14:02, Jan Eden via Mailman-users wrote:
> > Although I could specify the IP address in my SPF records directly (as
> > you suggested), I do hope that my understanding of DNS records laid out
> > above is not entirely misguided. My current setup does work as expected
> > for eden.one, after all.
>
> As I said at <https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/message…>
> I was misreading your DNS and now I am as puzzled as you about the failure.
It gets even more mysterious. I tried sending messages from both
lists.eden.one and janeden.net (my other domain) to a gmail account and
to another mail provider. Both messages passed the SPF checks on both
services (s. the relevant headers quoted below). Now because I send
those messages via my SMTP user (smtpuser(a)eden.one) and use SRS, the SPF
check operates (and succeeds) on e.g.
srs0=jdm+=5c=lists.eden.one=testlist-bounces+gmailuser=googlemail.com(a)eden.one
(and not on somethingsomething(a)lists.eden.one or
somethingsomething(a)janeden.net) Could this be the reason for the failed
SPF checks in Yahoo's and Google's DMARC reports?
- Jan
==============================
Authentication-Results: posteo.de; dmarc=pass (p=quarantine dis=none) header.from=lists.eden.one
Authentication-Results: posteo.de; spf=pass smtp.mailfrom=eden.one
Authentication-Results: posteo.de;
dkim=pass (2048-bit key) header.d=lists.eden.one header.i=(a)lists.eden.one header.b=8FtNB1m3;
dkim-atps=neutral
------------------------------
Delivered-To: gmailuser(a)gmail.com
Received: by 2002:a05:7022:4584:b0:4b:2a9c:6c6f with SMTP id cf4csp83532dlb;
Wed, 4 Jan 2023 23:29:12 -0800 (PST)
ARC-Authentication-Results: i=1; mx.google.com;
dkim=pass header.i=(a)lists.eden.one header.s=s42 header.b=lrjRRPic;
spf=pass (google.com: domain of srs0=jdm+=5c=lists.eden.one=testlist-bounces+gmailuser=googlemail.com(a)eden.one designates 123.123.123.123 as permitted sender) smtp.mailfrom="SRS0=JDm+=5C=lists.eden.one=testlist-bounces+gmailuser=googlemail.com(a)eden.one";
dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=lists.eden.one
Received-SPF: pass (google.com: domain of srs0=jdm+=5c=lists.eden.one=testlist-bounces+gmailuser=googlemail.com(a)eden.one designates 123.123.123.123 as permitted sender) client-ip=123.123.123.123;
Authentication-Results: mx.google.com;
dkim=pass header.i=(a)lists.eden.one header.s=s42 header.b=lrjRRPic;
spf=pass (google.com: domain of srs0=jdm+=5c=lists.eden.one=testlist-bounces+gmailuser=googlemail.com(a)eden.one designates 123.123.123.123 as permitted sender) smtp.mailfrom="SRS0=JDm+=5C=lists.eden.one=testlist-bounces+gmailuser=googlemail.com(a)eden.one";
dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=lists.eden.one
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lists.eden.one; s=s42; t=1672903751; h=from:from:reply-to:reply-to:subject:subject:date:date:
message-id:message-id:to:to:cc:mime-version:mime-version:
content-type:content-type:list-id:list-help:list-owner:
list-unsubscribe:list-subscribe:list-post; bh=q4JtVWzFRbBZ12C26k1xKRRVOBGue+2uV43xiHohi3M=; b=lrjRRPicpiyGUP11wjj76yIg8qHib1aUAS99+RNhSwYE9HzXctedXbdMXeY7WJyUc1gE2Z PFkDPZD6YMGIAY9N35fzgzoMgrgNAWkTLqDF7i5d0kEXEhEuQ+hLbRHKMcsD8XDVff41iY vLnygg85AKj5L4dvq/p5o4TEjmfaXHadRJ6ZI6qY67Yys1D+LqZzbfIQyvgUH+U986d0Ed SO3POUWJLcYNwwQk0UzTc4iIenM7042alew/wXoncDc1lnMQrAYHY/lPwGHFyqqyPebkLZ bE3nM4g8pM9ODXBbn0Vs7602SzCFkHs2l1QScFtV9+pZbPaKgYL5TW6Q8BT0MA==
Received: from client.eden.one (unknown [195.37.242.24]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
Date: Thu, 5 Jan 2023 08:29:05 +0100
To: testlist(a)lists.eden.one
Subject: [Testlist] Test (Listenmail)
From: Jan Eden via Testlist <testlist(a)lists.eden.one>
Reply-To: Jan Eden <mailuser(a)eden.one>
==============================
==============================
Authentication-Results: posteo.de; dmarc=pass (p=quarantine dis=none) header.from=janeden.net
Authentication-Results: posteo.de; spf=pass smtp.mailfrom=eden.one
Authentication-Results: posteo.de;
dkim=pass (2048-bit key) header.d=janeden.net header.i=(a)janeden.net header.b=VV5k+gN7;
dkim-atps=neutral
------------------------------
Delivered-To: gmailuser(a)gmail.com
ARC-Authentication-Results: i=1; mx.google.com;
dkim=pass header.i=(a)janeden.net header.s=s42 header.b=B8NPELsC;
spf=pass (google.com: domain of srs0=xtlx=5c=janeden.net=mailuser(a)eden.one designates 123.123.123.123 as permitted sender) smtp.mailfrom="SRS0=Xtlx=5C=janeden.net=mailuser(a)eden.one";
dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=janeden.net
Received-SPF: pass (google.com: domain of srs0=xtlx=5c=janeden.net=mailuser(a)eden.one designates 123.123.123.123 as permitted sender) client-ip=123.123.123.123;
Authentication-Results: mx.google.com;
dkim=pass header.i=(a)janeden.net header.s=s42 header.b=B8NPELsC;
spf=pass (google.com: domain of srs0=xtlx=5c=janeden.net=mailuser(a)eden.one designates 123.123.123.123 as permitted sender) smtp.mailfrom="SRS0=Xtlx=5C=janeden.net=mailuser(a)eden.one";
dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=janeden.net
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janeden.net; s=s42; t=1672903599; h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
to:to:cc:mime-version:mime-version:content-type:content-type; bh=wE7NXSkgnx9PGiavN4OZhJztvkqPDlemV3OGuEnLwNo=; b=B8NPELsC7r7WI62YOpEFUhESxumSjhP/aQNOlWRmusnTHgbHgjEHeCKNRhEDUeh+fRRVZw JnRVZx9WAU58/3UXx0XJIN6ivLYJnOtJ9vw3r1nVAzU6wk7RCE1Zx6zTJLybwHNijHcCn4 A2cRJZc1IUfJTAok3RHclBB8c10difp5SNPKVGRtNEPAOEFnG5vaNecPvQWc0+4EyHNCYX WSEARKApxpL31gBcojCEHjtdAFgmcknReosUN9I3PUiQQIxqFQ6uU9hA6XWyg6qCsEAll7 E1sGL9HopGIHQA2pHXPanQ9FZxOFou8BcjwN4w65Vygr78hAO5e2Ru6tDFwr4g==
Date: Thu, 5 Jan 2023 08:26:37 +0100
From: Jan Eden <mailuser(a)janeden.net>
To: gmailuser(a)googlemail.com
Subject: Test
==============================
2 years, 4 months

[MM3-users] Re: New releases
by Danil Smirnov
On Tue, 9 Jun 2020 at 00:05, Mark Sapiro <mark(a)msapiro.net> wrote:
> The first row of horizontal tabs is unchanged, but the `Settings` tab
> used to have a second horizontal row and now has a vertical list on the
> left.
>
Yeah Mark, thanks - now I see it :)
> After you upgraded did you run these django-admin commands?
> ```
> django-admin collectstatic --clear --noinput --verbosity 0
> django-admin compress
> django-admin compilemessages
> django-admin migrate
> ```
> These 4 commands should be run after every update to Postorius,
> HyperKitty or django_mainlman3.
>
Hm, interesting... Could you point me to some related docs please?
To upgrade, I've just bumped app versions in my Dockerfiles, built and
restarted...
Mailman-core worked right away with no issues.
Mailman-web (Hyperkitty) failed with the error:
----------
ERROR 2020-06-08 19:46:41,942 14 django.request Internal Server Error:
/hyperkitty/
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/compressor/base.py", line 282, in
precompile
mod = import_module(mod_name)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in
import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'sassc -t compressed {infile}
{outfile}'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File
"/usr/lib/python3.6/site-packages/django/core/handlers/exception.py", line
34, in inner
response = get_response(request)
File "/usr/lib/python3.6/site-packages/django/core/handlers/base.py",
line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/usr/lib/python3.6/site-packages/django/core/handlers/base.py",
line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python3.6/site-packages/hyperkitty/views/index.py", line
118, in index
return render(request, "hyperkitty/index.html", context)
File "/usr/lib/python3.6/site-packages/django/shortcuts.py", line 36, in
render
content = loader.render_to_string(template_name, context, request,
using=using)
File "/usr/lib/python3.6/site-packages/django/template/loader.py", line
62, in render_to_string
return template.render(context, request)
File
"/usr/lib/python3.6/site-packages/django/template/backends/django.py", line
61, in render
return self.template.render(context)
File "/usr/lib/python3.6/site-packages/django/template/base.py", line
171, in render
return self._render(context)
File "/usr/lib/python3.6/site-packages/django/template/base.py", line
163, in _render
return self.nodelist.render(context)
File "/usr/lib/python3.6/site-packages/django/template/base.py", line
937, in render
bit = node.render_annotated(context)
File "/usr/lib/python3.6/site-packages/django/template/base.py", line
904, in render_annotated
return self.render(context)
File "/usr/lib/python3.6/site-packages/django/template/loader_tags.py",
line 150, in render
return compiled_parent._render(context)
File "/usr/lib/python3.6/site-packages/django/template/base.py", line
163, in _render
return self.nodelist.render(context)
File "/usr/lib/python3.6/site-packages/django/template/base.py", line
937, in render
bit = node.render_annotated(context)
File "/usr/lib/python3.6/site-packages/django/template/base.py", line
904, in render_annotated
return self.render(context)
File
"/usr/lib/python3.6/site-packages/compressor/templatetags/compress.py",
line 143, in render
return self.render_compressed(context, self.kind, self.mode,
forced=forced)
File
"/usr/lib/python3.6/site-packages/compressor/templatetags/compress.py",
line 119, in render_compressed
rendered_output = compressor.output(mode, forced=forced,
basename=file_basename)
File "/usr/lib/python3.6/site-packages/compressor/css.py", line 46, in
output
ret.append(subnode.output(*args, **kwargs))
File "/usr/lib/python3.6/site-packages/compressor/css.py", line 48, in
output
return super(CssCompressor, self).output(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/compressor/base.py", line 314, in
output
output = '\n'.join(self.filter_input(forced))
File "/usr/lib/python3.6/site-packages/compressor/base.py", line 254, in
filter_input
for hunk in self.hunks(forced):
File "/usr/lib/python3.6/site-packages/compressor/base.py", line 228, in
hunks
precompiled, value = self.precompile(value, **options)
File "/usr/lib/python3.6/site-packages/compressor/base.py", line 287, in
precompile
return True, filter.input(**kwargs)
File "/usr/lib/python3.6/site-packages/compressor/filters/base.py", line
239, in input
return super(CachedCompilerFilter, self).input(**kwargs)
File "/usr/lib/python3.6/site-packages/compressor/filters/base.py", line
206, in input
raise FilterError(err)
compressor.exceptions.FilterError: Error: It's not clear which file to
import for '@import "../libs/bootstrap/stylesheets/bootstrap"'.
Candidates:
../libs/bootstrap/stylesheets/_bootstrap.scss
../libs/bootstrap/stylesheets/bootstrap.scss
Please delete or rename all but one of these files.
on line 4 of
../mailman-web-data/static/hyperkitty/sass/hyperkitty.scss
>> @import "../libs/bootstrap/stylesheets/bootstrap";
----------
I've fixed the error by removing the older file which is
/opt/mailman-web-data/static/hyperkitty/libs/bootstrap/stylesheets/_bootstrap.scss
After that everything seems to be working fine.
My best regards,
Danil Smirnov
4 years, 11 months

[MM3-users] Re: Postorius no connection to REST API
by Richard Rosner
Mark Sapiro wrote:
> On 8/12/21 12:01 AM, Richard Rosner wrote:
> > All the mailman processes should run as list and all mailman related
> things should be readable and writable by list.
I have set both /usr/bin/uwsgi-core and /usr/share/mailman3-web to be owned by lists, no changes yet. But at least mailman3-web now can actually be started without throwing an error.
> > Yes, I meant if you want those URLs to work, you have to pass them to
> uwsgi. You don't need all of them. mailman2 and postorius are
> synonyms as are archives and hyperkitty
> However, you could try using TCP to communicate with uwsgi rather than a
> Unix socket.
> This means replacing
> uwsgi-socket = /run/mailman3-web/uwsgi.sock
> with
> uwsgi-socket = 0.0.0.0:8000
> in your uwsgi.ini file and using directives like
> ProxyPass "/postorius" "http://127.0.0.1:8000/postorius"
> ProxyPass "/hyperkitty" "http://127.0.0.1:8000/hyperkitty"
> ProxyPass "/accounts" "http://127.0.0.1:8000/accounts"
> ProxyPass "/django" "http://127.0.0.1:8000/django"
> ProxyPass "/user-profile" "http://127.0.0.1:8000/user-profile"
> ProxyPass "/mailman3" "http://127.0.0.1:8000/mailman3"
> ProxyPass "/archives" "http://127.0.0.1:8000/archives"
>
>
> in apache.
I tried that switch and got ERR_HTTP2_PROTOCOL_ERROR.
From the apache log:
[Fri Aug 13 16:08:38.871462 2021] [mpm_event:notice] [pid 27808:tid 140008999584896] AH00489: Apache/2.4.48 (Debian) OpenSSL/1.1.1d mod_wsgi/4.6.5 \
Python/3.7 configured -- resuming normal operations
[Fri Aug 13 16:08:38.871603 2021] [core:notice] [pid 27808:tid 140008999584896] AH00094: Command line: '/usr/sbin/apache2'
[Fri Aug 13 16:08:42.881615 2021] [proxy_http:error] [pid 27809:tid 140008751261440] (20014)Internal error (specific information not available): [c\
lient 134.61.99.193:36563] AH01102: error reading status line from remote server 127.0.0.1:8000
[Fri Aug 13 16:08:44.072665 2021] [proxy_http:error] [pid 27809:tid 140008751261440] (20014)Internal error (specific information not available): [c\
lient 134.61.99.193:36563] AH01102: error reading status line from remote server 127.0.0.1:8000
[Fri Aug 13 16:08:49.277000 2021] [proxy_http:error] [pid 27810:tid 140008709297920] (20014)Internal error (specific information not available): [c\
lient 134.61.99.193:36696] AH01102: error reading status line from remote server 127.0.0.1:8000
I set them all to https. which solved the https error. But I still get Error 500.
From apache log:
[Fri Aug 13 15:47:58.833305 2021] [mpm_event:notice] [pid 26720:tid 139986206332032] AH00489: Apache/2.4.48 (Debian) OpenSSL/1.1.1d mod_wsgi/4.6.5 \
Python/3.7 configured -- resuming normal operations
[Fri Aug 13 15:47:58.833436 2021] [core:notice] [pid 26720:tid 139986206332032] AH00094: Command line: '/usr/sbin/apache2'
[Fri Aug 13 15:49:41.673108 2021] [ssl:error] [pid 26722:tid 139985899259648] [remote 127.0.0.1:8000] AH01961: SSL Proxy requested for lists.fsmuw.\
rwth-aachen.de:443 but not enabled [Hint: SSLProxyEngine]
[Fri Aug 13 15:49:41.905868 2021] [proxy:error] [pid 26722:tid 139985899259648] AH00961: https: failed to enable ssl support for 127.0.0.1:8000 (12\
7.0.0.1)
[Fri Aug 13 15:59:25.049708 2021] [ssl:error] [pid 26722:tid 139985899259648] [remote 127.0.0.1:8000] AH01961: SSL Proxy requested for lists.fsmuw.\
rwth-aachen.de:443 but not enabled [Hint: SSLProxyEngine]
[Fri Aug 13 15:59:25.059217 2021] [proxy:error] [pid 26722:tid 139985899259648] AH00961: https: failed to enable ssl support for 127.0.0.1:8000 (12\
7.0.0.1)
From the mailman-web log:
uwsgi socket 0 bound to TCP address 0.0.0.0:8000 fd 4
Python version: 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
Python main interpreter initialized at 0x561db180adf0
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 166752 bytes (162 KB) for 2 cores
*** Operational MODE: threaded ***
WSGI app 0 (mountpoint='') ready in 3 seconds on interpreter 0x561db180adf0 pid: 26851 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 26851)
spawned uWSGI worker 1 (pid: 26861, cores: 2)
[uwsgi-daemons] spawning "python3 manage.py qcluster" (uid: 38 gid: 38)
13:48:04 [Q] INFO Q Cluster-26864 starting.
13:48:04 [Q] INFO Process-1:1 ready for work at 26866
13:48:04 [Q] INFO Process-1:2 ready for work at 26867
13:48:04 [Q] INFO Process-1:3 monitoring at 26868
13:48:04 [Q] INFO Process-1 guarding cluster at 26865
13:48:04 [Q] INFO Q Cluster-26864 running.
13:48:04 [Q] INFO Process-1:4 pushing tasks at 26869
So at least that seems to be fine now
> I am not familiar enough with apache/uwsgi configuration to be of more
> help. Have you seen https://wiki.list.org/x/12812344 and have you asked
> Debian for help with their package. They are the ones who should be
> supporting it https://www.debian.org/support.
I'll open an error report on mailman3-web. Maybe they have some input to that.
3 years, 9 months

[MM3-users] Re: Non-ascii characters missing from Pipermail archive txt and gz downloads
by Ruth Ivimey-Cook
Hi Mark
I'm not sure, but I think the problems are to do with the program you
are using to view the txt file.
A modern mail reader understands the Content-type: header and will
adjust its character processing accordingly, but a .txt file has no
default character encoding, so any text editor will have to "use its
best judgement". Some will default to utf-8, because that is compatible
with 7-bit ASCII (NOT Latin1) while others will just put characters out
and hope for the best (esentially leaving the result to the encoding of
the font).
In theory, a UTF-encoded text file can begin with the "BOM" marker, a
sequence of characters which is supposed to indicate which variety of
Unicode is in use, but this is rarely present, especially for UTF-8.
Try looking at your text file with a UTF-8 capable text editor **and
ensure that you tell the editor to use the UTF-8 encoding**. I expect it
will look ok then.
Hope this helps,
Ruth
On 09/04/2021 13:52, Mark Dale via Mailman-users wrote:
> Mailman 2.1.34
> Debian 10
> Postfix
>
> Hi
>
> I'm hoping someone can shine a light on character encoding issue I've encountered.
>
> A plain-text email with non-ascii characters in the body gets posted to the list.
>
> As per Mark Sapiro's guide I've captured the incoming message to file.
>
> - https://www.mail-archive.com/mailman-users@python.org/msg73469.html
>
> The message is received by Mailman with the non-ascii characters displaying correctly.
>
> The header of that message has:
>
> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
> Thunderbird/78.9.0
> MIME-Version: 1.0
> Content-Type: text/plain; charset=utf-8
> Content-Language: en-AU
> Content-Transfer-Encoding: 8bit
>
> In the list's mbox file and archive webpage, the message displays the non-ascii characters correctly.
>
> In the archive's downloaded .txt (and also .gz) file, the non-ascii characters are missing and displayed as "?".
>
> I've copied the message text in below, from both the correct one from the email and the erroneous .txt file. Hopefully they won't get scrambled up when I send this.
>
> Any advice on getting the non-ascii characters written into the archive .txt file would be gratefully received.
>
> Thanks,
> Mark
>
>
> === Message text as okay in mbox and as shown on the archive webpage ===
>
> If one goes by the definition of veḷippaṭai as given in the Tamil Lexicon that the meaning of an ambiguous word should be disambiguated by a qualifying word, then aruvi āmpal does not conform to that definition since in the case of aruvi āmpal in Patiṟṟuppattu 63, aruvi is really made up of aru+vi, a compound. Moreover, the expression aṭai aṭuppu aṟiyā is already there to clarify that āmpal is a number and not a flower. Thus, aruvi simply provides information in addition to aṭai aṭuppu aṟiyā that āmpal is not a flower. The modern commentator Aruḷampalavaṉār also does not call it veḷippaṭai.
>
> ===
>
> === Message text with missing characters in te archive's txt and gz downloads ==
>
> If one goes by the definition of ve?ippa?ai as given in the Tamil Lexicon that the meaning of an ambiguous word should be disambiguated by a qualifying word, then aruvi ?mpal does not conform to that definition since in the case of aruvi ?mpal in Pati??uppattu 63, aruvi is really made up of aru+vi, a compound. Moreover, the expression a?ai a?uppu a?iy? is already there to clarify that ?mpal is a number and not a flower. Thus, aruvi simply provides information in addition to a?ai a?uppu a?iy? that ?mpal is not a flower. The modern commentator Aru?ampalava??r also does not call it ve?ippa?ai.
>
> ===
> _______________________________________________
> Mailman-users mailing list -- mailman-users(a)mailman3.org
> To unsubscribe send an email to mailman-users-leave(a)mailman3.org
> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
--
Software Manager & Engineer
Tel: 01223 414180
Blog: http://www.ivimey.org/blog
LinkedIn: http://uk.linkedin.com/in/ruthivimeycook/
4 years, 1 month