mailman3 package missing in jammy, however mailman3 package from Debian 11 works with the other mailman3 packages from Jammy

Bug #1999197 reported by AlainKnaff
38
This bug affects 6 people
Affects Status Importance Assigned to Milestone
mailman3 (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

1)
root@ubuntu22:~# lsb_release -rd
Description: Ubuntu 22.04.1 LTS
Release: 22.04

2)
root@ubuntu22:~# apt-cache policy mailman3
mailman3:
  Installed: 3.2.2-1
  Candidate: 3.2.2-1
  Version table:
 *** 3.2.2-1 100
        100 /var/lib/dpkg/status

(shows version held from focal, see below)

3) I expect Jammy (22.04.1) to have a mailman3 versions to go along with the supplied mailman3-web package
4) What happened: mailman3 package missing in jammy, and mailman3-web supplied but incompatible with mailman3 version held over from focal.

When upgrading from Ubuntu 20.04.05 (focal) to 22.04.01 (jammy), mailman3 and mailman3-full packages are de-installed during upgrade. Strangely enough mailman3-web still makes it.

Of course, this results in a non-functional mailman3 installation (just a front-end without the backend).

Adding back the focal repositories and manually reinstalling mailman3 and mailman3-full 3.2.2-1 from focal into jammy gets mailman3 mostly up and running again (i.e. correctly distributes mails to lists).

Rest API password (i.e. admin_pass from /etc/mailman3/mailman.cfg needs to be copied to MAILMAN_REST_API_PASS in /etc/mailman3/mailman-web.py).

After doing this, front end *mostly* works.

However, lists cannot be viewed when logged in as admin, instead the following error is displayed:

Something went wrong
HTTP Error 404: {"title": "404 Not Found"}

Event downgrading mailman3-web from 0+20200530-2 to 0+20180916-10 and then rebooting does not help.

When this happens, the following is logged to /var/log/mailman3/web/mailman-web.log:

[pid: 749|app: 0|req: 9/9] 127.0.0.1 () {60 vars in 1359 bytes} [Fri Dec 9 00:21:22 2022] GET /mailman3/postorius/lists/ => generated 8958 bytes in 56 msecs (HTTP/1.1 200) 7 headers in 220 bytes (1 switches on core 0)
ERROR 2022-12-09 00:21:25,565 749 postorius Un-handled exception: HTTP Error 404: {"title": "404 Not Found"}
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python3/dist-packages/django/views/generic/base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/postorius/views/generic.py", line 74, in dispatch
    return super(MailingListView, self).dispatch(request, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/django/views/generic/base.py", line 98, in dispatch
    return handler(request, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/postorius/views/list.py", line 301, in get
    primary_email = set_preferred(request.user, mm_user)
  File "/usr/lib/python3/dist-packages/postorius/utils.py", line 77, in set_preferred
    mm_user.preferred_address = primary_email.email
  File "/usr/lib/python3/dist-packages/mailmanclient/restobjects/user.py", line 57, in __setattr__
    super(User, self).__setattr__(name, value)
  File "/usr/lib/python3/dist-packages/mailmanclient/restbase/base.py", line 131, in __setattr__
    return super(RESTObject, self).__setattr__(name, value)
  File "/usr/lib/python3/dist-packages/mailmanclient/restobjects/user.py", line 145, in preferred_address
    response, content = self._connection.call(url, {'email': email})
  File "/usr/lib/python3/dist-packages/mailmanclient/restbase/connection.py", line 160, in call
    raise HTTPError(params.get('url'), response.status_code,
urllib.error.HTTPError: HTTP Error 404: {"title": "404 Not Found"}
WARNING 2022-12-09 00:21:25,569 749 django.request Not Found: /mailman3/postorius/lists/lilux-info.lilux.lu/
WARNING 2022-12-09 00:21:25,569 749 django.request Not Found: /mailman3/postorius/lists/lilux-info.lilux.lu/
[pid: 749|app: 0|req: 10/10] 127.0.0.1 () {60 vars in 1399 bytes} [Fri Dec 9 00:21:25 2022] GET /mailman3/postorius/lists/lilux-info.lilux.lu/ => generated 6374 bytes in 192 msecs (HTTP/1.1 404) 7 headers in 227 bytes (1 switches on core 1)

Revision history for this message
AlainKnaff (kubuntu-misc) wrote :

Just "holding" the mailman3 and mailman3-full packages (using apt-mark hold) before upgrading from focal to jammy prevents them from being uninstalled. So no need to reinstall them and synchronize the REST password. However, the problem with list administration still happens:

Something went wrong
HTTP Error 404: {"title": "404 Not Found"}

summary: - mailman3 package missing in jammy
+ mailman3 package missing in jammy, and keeping focal version causes HTTP
+ Error 404: {"title": "404 Not Found"}
Revision history for this message
AlainKnaff (kubuntu-misc) wrote : Re: mailman3 package missing in jammy, but mailman3-web supplied but incompatible with mailman3 held over from focal

Holding all packages containing mailman3 and also all packages containing django produces a (mostly) working mailman installation:

dpkg -l | awk '$2 ~ /mailman/ {print $2}' | xargs apt-mark hold
dpkg -l | awk '$2 ~ /django/ {print $2}' | xargs apt-mark hold

[ ... do upgrade ... ]

sed -i 's/from collections import/from collections.abc import/' /usr/lib/python3/dist-packages/mailmanclient/restbase/base.py
service mailman3-web restart

=> so this does seem to prove that the issue is that indeed the mailman3-web included with jammy is incomptible with previous mailman3. So supplying that elusive mailman3 package in jammy is indeed direly needed

description: updated
summary: - mailman3 package missing in jammy, and keeping focal version causes HTTP
- Error 404: {"title": "404 Not Found"}
+ mailman3 package missing in jammy, but mailman3-web supplied but
+ incompatible with mailman3 held over from focal
Revision history for this message
AlainKnaff (kubuntu-misc) wrote :

Package mailman3 from *Debian* 11 works with the other mailman3 packages from Ubuntu Jammy:

wget http://ftp.de.debian.org/debian/pool/main/m/mailman3/mailman3-full_3.3.3-1_all.deb
dpkg -i ~alain/mailman3_3.3.3-1_all.deb
apt install -f

If I had known it was that easy... :-)

summary: - mailman3 package missing in jammy, but mailman3-web supplied but
- incompatible with mailman3 held over from focal
+ mailman3 package missing in jammy, however mailman3 package from Debian
+ 11 works with the other mailman3 packages from Jammy
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in mailman3 (Ubuntu):
status: New → Confirmed
Revision history for this message
Claus-Justus Heine (rotatingdrop) wrote :

Sad story. Seems to be this problem:

[Bug 1960547] Re: please remove mailman3, mailman-hyperkitty

And from mailman3 upstream it seems that Python 3.10 is only supported in the (not yet released) 3.3.8 version:

https://docs.mailman3.org/projects/mailman/en/latest/src/mailman/docs/NEWS.html

Revision history for this message
Dave Moskovitz (dave-thinktank) wrote :

Yup, having this problem too.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.