Page MenuHomeFreeBSD

New port: mail/mailman3: The GNU Mailing List Management System, Core, version 3
Needs RevisionPublic

Authored by vishwin on Jan 29 2018, 8:10 PM.

Details

Reviewers
mandree
sbz
Group Reviewers
Python
Summary

Initial submission of GNU Mailman 3 into the ports tree. There will be separate ports for the rest of the suite: python client, Postorious, Hyperkitty.

Some peculiarities:

  • git snapshot instead of stable 3.1.1; the stable version explicitly requires an older mail/py-aiosmtpd no longer available in the tree
  • The use of devel/py-click requires a UTF-8 locale; the rc script reflects this
  • This port can also use databases/py-sqlalchemy11 but not databases/py-sqlalchemy12, but the dependency set here is for databases/py-sqlalchemy10 so as to not foul the databases/py-alembic dependency
  • Patches deal mainly with path fixes to conform to FreeBSD filesystem structure

Additionally, D14123 and D14125 need applied before this can build and run successfully.

Test Plan
  • Resolve D14123 and D14125
  • poudriere QA
  • portlint -AC
  • rclint

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 18470
Build 18175: arc lint + arc unit

Event Timeline

This has to start with svn cp mail/mailman mail/mailman3.

I'm not so sure about having the mailman2 (mail/mailman) origin. Mailman 3 is a complete re-architecture, re-write, etc and thus has absolutely nothing in common with the old mailman apart from the name.

Regenerate using git diff -U9999

In D14126#296439, @ml_vishwin.info wrote:

I'm not so sure about having the mailman2 (mail/mailman) origin. Mailman 3 is a complete re-architecture, re-write, etc and thus has absolutely nothing in common with the old mailman apart from the name.

It is the same software, even if it has been rewritten from scratch. The idea is to keep the ancestry of the *port* of the software.

vishwin edited the test plan for this revision. (Show Details)

Regenerate with devel/arcanist and rebase on svn copy

Update to 3.2.0. Still QAing on my end, but at least the port-plumbing looks somewhat sane now.

mail/mailman3/files/mailman.in
44

Is there a better way to enforce a UTF-8 encoding whilst preserving the user's language setting? Otherwise Mailman fails to run or crashes because dependency devel/py-click absolutely requires a UTF-8 environment.

mail/mailman3/pkg-message
4

Any better way to express this?

mail/mailman3/files/mailman.in
44

You could probably add a mailman_lang that defaults to en_US.UTF-8.
And add a check to make sure it is an UTF-8 lang.

linimon retitled this revision from New port: mail/mailman3 to New port: mail/mailman3: The GNU Mailing List Management System, Core, version 3.Aug 2 2018, 10:23 PM

IMHO it is a good idea to install minimum mailman.cfg using '@sample'.

mail/mailman3/files/mailman.in
14

Probably It is a typo and path shold be "%%PREFIX%%/etc/mailman/mailman.cfg" or just "%%PREFIX%%/etc/mailman.cfg"

25

Same as bove.

37

May be just required_files="${mailman_config}" ?

Mailman creates the config file upon first run, so specifying @sample in plist is not necessary. Furthermore such a directive doesn't play the nicest with autoplist.

mail/mailman3/files/mailman.in
14

Not a typo. Without an explicit config path passed to Mailman, the default behaviour is to create the config under the mailman user's $HOME, which is %%PREFIX%%/mailman.

25

Default path stands.

mail/mailman3/files/mailman.in
35

Please add reload to extra_commands. mailman reopens log files on SIGHUP: https://gitlab.com/mailman/mailman/blob/master/src/mailman/bin/master.py#L271

mail/mailman3/files/mailman.in
14

Well, on FreeBSD, configuration files go in PREFIX/etc, please respect that.

mandree requested changes to this revision.May 21 2020, 6:53 AM
mandree added a subscriber: mandree.

This needs to be updated to the current version, 3.3.1 added bounce processing.

This revision now requires changes to proceed.May 21 2020, 6:53 AM
In D14126#296415, @mat wrote:

This has to start with svn cp mail/mailman mail/mailman3.

No way! Veto! A repocopy must not happen.
Mailman 3 is a different project rewritten from scratch, redesigned, that just happens to share upstream infrastructure/people and the name, but is a rewrite from scratch.
A repocopy would be misleading and must not happen, as was already laid out earlier by e-mail.

That a project copies another project's name is not enough reason for svn cp.

In D14126#296458, @mat wrote:
In D14126#296439, @ml_vishwin.info wrote:

I'm not so sure about having the mailman2 (mail/mailman) origin. Mailman 3 is a complete re-architecture, re-write, etc and thus has absolutely nothing in common with the old mailman apart from the name.

It is the same software, even if it has been rewritten from scratch. The idea is to keep the ancestry of the *port* of the software.

It isn't the same software and the mailman3 port does not descend from mail/mailman. It would still be lying about the port's ancestry.

See PR for updated 3.3.1 diff

[repo-copy]

It isn't the same software and the mailman3 port does not descend from mail/mailman. It would still be lying about the port's ancestry.

While I agree, I would not let this patch die due to the repo-copy debate. That is a too steep price to pay for adherence to principles.

I found https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225543 and tried building with the 3.3.1 patch found there.

I get to:

> py37-mailman-3.3.1 depends on package: py37-setuptools>0 - found

> py37-mailman-3.3.1 depends on file: /usr/local/bin/python3.7 - found

  • Missing /usr/ports/mail/mailman3/files/mailman.in for py37-mailman-3.3.1.
    • Error code 1

Stop.
make: stopped in /usr/ports/mail/mailman3

Full log at https://services.unixathome.org/poudriere/data/121amd64-dvl/2020-08-19_13h48m33s/logs/errors/py37-mailman-3.3.1.log

This needs to be updated to the current version, 3.3.1 added bounce processing.

The PR has a 3.3.1 patch. https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225543

mail/mailman3/pkg-message
4

When first installing Mailman, run this command to set up the runtime directory, log files, and database: