Bug 260228

Summary: mail/py-django-mailman3: version skew?
Product: Ports & Packages Reporter: Phil Budne <phil.budne>
Component: Individual Port(s)Assignee: Dan Langille <dvl>
Status: In Progress ---    
Severity: Affects Many People Flags: bugzilla: maintainer-feedback? (dvl)
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   

Description Phil Budne 2021-12-05 05:43:29 UTC
pkg vers | egrep 'mailman|posto'
py38-django-mailman3-1.3.7         =
py38-mailman-3.3.1                 =
py38-mailmanclient-3.3.1           =
py38-postorius-1.3.5               =

Seeing the following error from postorius:

ERROR 2021-12-05 05:16:40,697 49904 django.request Internal Server Error: /postorius/lists/
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.8/site-packages/postorius/views/list.py", line 882, in list_index
    lists = paginate(
  File "/usr/local/lib/python3.8/site-packages/django_mailman3/lib/paginator.py", line 71, in paginate
    objects = paginator.page(page_num)
  File "/usr/local/lib/python3.8/site-packages/django_mailman3/lib/paginator.py", line 46, in page
    number = self.validate_number(number)
  File "/usr/local/lib/python3.8/site-packages/django/core/paginator.py", line 48, in validate_number
    if number > self.num_pages:
  File "/usr/local/lib/python3.8/site-packages/django/utils/functional.py", line 80, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python3.8/site-packages/django/core/paginator.py", line 97, in num_pages
    if self.count == 0 and not self.allow_empty_first_page:
  File "/usr/local/lib/python3.8/site-packages/django/utils/functional.py", line 80, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python3.8/site-packages/django_mailman3/lib/paginator.py", line 56, in count
    return self.function(count=0, page=1).total_size
  File "/usr/local/lib/python3.8/site-packages/postorius/views/list.py", line 876, in _get_list_page
    client = get_mailman_client()
  File "/usr/local/lib/python3.8/site-packages/django_mailman3/lib/mailman.py", line 64, in get_mailman_client
    client = MailmanClient(
TypeError: __init__() takes from 2 to 4 positional arguments but 5 were given

Looks very much like the issue described at
https://gitlab.com/mailman/django-mailman3/-/issues/46
Comment 1 Dan Langille freebsd_committer 2021-12-05 14:13:59 UTC
Do we agree this is the right change for what you're talking about?

- ${PYTHON_PKGNAMEPREFIX}mailmanclient>=3.3.1:mail/py-mailmanclient@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}mailmanclient>=3.3.3:mail/py-mailmanclient@${PY_FLAVOR} \
Comment 2 Dan Langille freebsd_committer 2021-12-05 14:38:24 UTC
And this for mail/py-mailmanclient

+++ b/mail/py-mailmanclient/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=      mailmanclient
-PORTVERSION=   3.3.1
+PORTVERSION=   3.3.3
Comment 3 commit-hook freebsd_committer 2021-12-05 15:14:56 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1939c390fadd8b784362889fab120df80f8e9728

commit 1939c390fadd8b784362889fab120df80f8e9728
Author:     Dan Langille <dvl@FreeBSD.org>
AuthorDate: 2021-12-05 15:12:21 +0000
Commit:     Dan Langille <dvl@FreeBSD.org>
CommitDate: 2021-12-05 15:13:58 +0000

    mail/py-django-mailman3: Require mail/py-mailmanclient >= 3.3.3

    mail/py-mailmanclient: Update to 3.3.3

    PR:             260228
    Reported by:    Phil Budne <phil.budne@gmail.com>

 mail/py-django-mailman3/Makefile | 3 ++-
 mail/py-mailmanclient/Makefile   | 2 +-
 mail/py-mailmanclient/distinfo   | 6 +++---
 3 files changed, 6 insertions(+), 5 deletions(-)
Comment 4 Dan Langille freebsd_committer 2022-01-27 19:10:17 UTC
(In reply to Phil Budne from comment #0)
Anything more to do here?
Comment 5 Phil Budne 2022-01-27 19:32:43 UTC
Yes, and no!

After getting past the "Internal Server Error", I started seeing a 404 error:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258941

which, I think is a result of a skew between mailman and mailmanclient.

I *JUST* resolved this on my system this week by:

Removing FreeBSD packages for sqlalchemy and alembic, and installing 
SQLAlchemy 1.3.24 and alembic 1.6.2 via pip, and building/installing mailman 3.3.3 (via hand tweaked ports Makefile).

I can't help wondering if running mailman3 in a virtual environment (venv) would help avoid headaches like this one?
Comment 6 Dan Langille freebsd_committer 2022-01-27 19:34:57 UTC
Oh boy.

Sounds like those other packages need to be updated too.