From ouerheni.nouha at gmail.com Tue Aug 1 10:22:41 2017 From: ouerheni.nouha at gmail.com (Nouha ouerheni) Date: Tue, 1 Aug 2017 16:22:41 +0200 Subject: [Mailman-Developers] Mailman3 integration Message-ID: Hello Team , I configured mailman suite following this guide http://docs.mailman3.org/en/latest/devsetup.html and now I want to configure MySQL and postfix . I will appreciated if there are some documents to provide to cotinue the intergration of mailman3 . ps : The web interface works correctly . Thanks in advance Ms Ouerheni Nouha From johny at neuromancer.sk Tue Aug 1 10:40:34 2017 From: johny at neuromancer.sk (Jan Jancar) Date: Tue, 1 Aug 2017 16:40:34 +0200 Subject: [Mailman-Developers] Mailman3 integration In-Reply-To: References: Message-ID: <3cbde305-f55e-2674-a0d2-a086ae111317@neuromancer.sk> On 08/01/2017 04:22 PM, Nouha ouerheni wrote: > Hello Team , > > I configured mailman suite following this guide > http://docs.mailman3.org/en/latest/devsetup.html and now I want to > configure MySQL and postfix . I will appreciated if there are some > documents to provide to cotinue the intergration of mailman3 . > > ps : The web interface works correctly . > > Thanks in advance > Ms Ouerheni Nouha You can have a look at: http://docs.mailman3.org/en/latest/config-core.html both MTA and database configuration is covered there. Cheers, -- Jan ______________________________________________________ /\ # PGP: 362056ADA8F2F4E421565EF87F4A448FE68F329D /__\ # https://neuromancer.sk /\ /\ # Eastern Seaboard Phishing Authority /__\/__\ # -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 862 bytes Desc: OpenPGP digital signature URL: From johny at neuromancer.sk Fri Aug 4 15:30:23 2017 From: johny at neuromancer.sk (Jan Jancar) Date: Fri, 4 Aug 2017 21:30:23 +0200 Subject: [Mailman-Developers] [GSoC] Encrypted mailing lists - update v11 In-Reply-To: References: Message-ID: <2182d27b-fb7d-208f-4a8f-36fcf3e0bff2@neuromancer.sk> Hi all! Another week, another update. https://neuromancer.sk/article/15 ==================== GSoC 2017 - Progress ==================== This week was tough but productive. Temperatures spiking to 34?C in my hometown have a really bad effect on my daily productivity. Setup instance with PGP plugin ------------------------------ Finally got a complete mailman [instance](https://mail.neuromancer.sk) setup and running with J08nY/mailman/plugin + J08nY/mailman-pgp/master and J08nY/Postorius/plugin + J08nY/mailmanclient/plugin + mailman/HyperKitty/master + mailman/django-mailman3/master. The `plugin` branches merge MR branches that introduce the plugin infrastructure for that particular Mailman component. For Mailman Core, the `plugin` branch merges the `pluggable-components`, `pluggable-workflows` and `list-style-descriptions` branches. The `pluggable-components` one introduces the concept of a `plugin` to Mailman Core and replaces the `(pre|post)_hooks` and is essential to let site admins easily add plugins to Mailman Core by simply installing them to the same environment as Mailman Core and some simple configuration to enable. `pluggable-workflows` splits the subscription/unsubscription monolithic workflows into composable workflows, that are also pluggable by a plugin and set per-list. `list-style-descriptions` are exposed via the REST api and Postorius uses them for displaying list style selection. I even successfully created a PGP enabled discussion list through Postorius. Subscribed to it by sending the subscription request, confirming it, replying to the `key set ` challenge with key attached, replying to the `key confirm ` with the challenge body signed by the key being set. This would of course be followed by the moderator verifying the supplied key in any real application of PGP enabled lists, which is also supported. The instance runs on a Raspberry Pi with 512MB RAM along with my web-server, mail-server and several other services, so don't expect lightning fast performance, or it being up anyway, reserving the right for any extended downtime ;). Key revocation -------------- Working on proper key revocation behavior from the PGP plugin took much of my week as getting this right is pretty hard and the OpenPGP revocation mechanism is quite complex. The usual workflow for just an ordinary key change was already presented in one of my previous posts. However if the user needs to revoke a key with a revocation signature, we cannot use the old key to perform the key change challenge. Also, the key revocation can be only partial, as in a subkey being revoked, and the key can still be used for encryption and signing, then it's usable for the PGP plugin and nothing needs to be done. This also gets more complex as when we allow a user to change his key without moderator approval, only with the challenge (which makes the user sign a challenge/statement signifying they are changing their key to the new one, by the old key). Then if the user revokes his former key using a reason for revocation that invalidates all signatures by that key(even former ones), we cannot trust the users current key, as the old one could have been compromised and used to set the new one. For now, giving a mechanism for users to provide a revocation certificate that is verified merged with the key is implemented. If the revocation certificate revoked the key or a subkey/uid that makes the key not usable by the PGP plugin (the key can no longer be encrypted to or can sign) then the users key is reset and he/she has to send and confirm a new one with moderator approval necessary. That is almost completely implemented as it's almost the same as the subscription challenge. More PGPy work -------------- Necessary to make it usable, as for example, not having support for partial length headers would break handling of most messages encrypted with GPG as it likes to create plenty of packets with partial lengths. However, now I think that my development branch of PGPy is feature complete enough to support an instance of Mailman with the PGP plugin running. Trello board ------------ Setup a Trello board to better track the issues that I came up and keep my head sane (private board): https://neuromancer.sk/static/mailman_pgp_trello.png Next up ======= Web UI integration ------------------ The original proposal proposed adding support for PGP enabled lists to Postorius and HyperKitty directly, now when mailman-pgp is dynamically enabled in Mailman Core a similar approach needs to be taken with the Postorius and HyperKitty integration. Archiving --------- Thinking of doing local archiving very similar to the prototype archiver, encrypted by the list local-archive key. The remote archiving capability is a much tougher nut to crack and depends a lot on how the HyperKitty integration ends up looking. Cheers, -- Jan ______________________________________________________ /\ # PGP: 362056ADA8F2F4E421565EF87F4A448FE68F329D /__\ # https://neuromancer.sk /\ /\ # Eastern Seaboard Phishing Authority /__\/__\ # -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 862 bytes Desc: OpenPGP digital signature URL: From vbnlohani at gmail.com Sat Aug 5 09:21:10 2017 From: vbnlohani at gmail.com (Vaibhav Lohani) Date: Sat, 5 Aug 2017 18:51:10 +0530 Subject: [Mailman-Developers] Discourse Integration In-Reply-To: <22904.57620.954910.92582@turnbull.sk.tsukuba.ac.jp> References: <22717.13813.915523.526404@turnbull.sk.tsukuba.ac.jp> <22904.57620.954910.92582@turnbull.sk.tsukuba.ac.jp> Message-ID: Stephen J. Turnbull wrote: > The big issue here is that Discourse provides a centralized server, > which means that conversations can be serialized properly, and you can > even be notified if somebody else is replying at the same time. > Mailing lists are asynchronous, so that posts often "cross in the > mail". While these two modes are *fundamentally* incompatible, so > cannot be perfectly merged, it's important that the two systems behave > as much like each other as possible. In particular, you can't assume > that mailing list subscribers will be using a browser. Many people > use dedicated mail clients. Yes this is correct. But, mailing lists are also hosted on centralised server, so we can try to synchronize them on the server. Although the level of dynamic binding between client and server may get little bit reduced as compared to discourse which is browser based and synced with centralised server in real time. > But you should be aware that that Mailman API will be > firewalled from the Internet in any public instance for the > foreseeable future. Hitting the mailman api from the discourse front end in public browser would have eased the process of binding messages from discourse to mailman. With this, mailman and discourse instances even on different servers could have integrated with each other. Now without this, we will have to host the whole integrated package on the same server. This would also require to do some modifications in discourse api to notify mailman api on the same server about some new message. Please suggest if anyone else has some other better design. Also, if anyone is interested to work on this. Thanks and Regards, Vaibhav Lohani From tom.browder at gmail.com Sat Aug 5 09:59:32 2017 From: tom.browder at gmail.com (Tom Browder) Date: Sat, 05 Aug 2017 13:59:32 +0000 Subject: [Mailman-Developers] Discourse Integration In-Reply-To: References: <22717.13813.915523.526404@turnbull.sk.tsukuba.ac.jp> <22904.57620.954910.92582@turnbull.sk.tsukuba.ac.jp> Message-ID: On Sat, Aug 5, 2017 at 09:21 Vaibhav Lohani wrote: > Stephen J. Turnbull wrote: > I'm happy just to hear about discourse. Without additional fancy new integration features not yet available, can Discourse just be made to work now as is on the same server as MM3? If so, I will probably try it after I get my MM3 working. Thanks. -Tom From vbnlohani at gmail.com Sat Aug 5 13:28:11 2017 From: vbnlohani at gmail.com (Vaibhav Lohani) Date: Sat, 5 Aug 2017 22:58:11 +0530 Subject: [Mailman-Developers] Discourse Integration In-Reply-To: References: <22717.13813.915523.526404@turnbull.sk.tsukuba.ac.jp> <22904.57620.954910.92582@turnbull.sk.tsukuba.ac.jp> Message-ID: Tom Browder wrote: > I'm happy just to hear about discourse. > > Without additional fancy new integration features not yet available, can > Discourse just be made to work now as is on the same server as MM3? I don't think it can be as of now without some modifications in the code. But will try to implement at least one way binding from mailman to discourse as soon as possible. Thanks and Regards, Vaibhav Lohani From johny at neuromancer.sk Wed Aug 9 12:56:03 2017 From: johny at neuromancer.sk (Jan Jancar) Date: Wed, 9 Aug 2017 18:56:03 +0200 Subject: [Mailman-Developers] [GSoC] Encrypted mailing lists - update v12 In-Reply-To: References: Message-ID: <6a878678-f0f9-b840-efdb-7bdb33f5d173@neuromancer.sk> Hi all! https://neuromancer.sk/article/16 ================== Web UI integration ================== This post is about my current plans on how to implement the web ui part of PGP enabled Mailman. It strives to integrate into the Mailman Suite and use its features to the maximum possible degree. General idea: Refactor general stuff to django-mailman3, to allow apps to hook up together in Mailman Suite easily, and then use that to hook up django-pgpmailman. Features ======== Show PGP enabled public lists, with their key fingerprints, with the option to download their public keys, also show some of their configuration (so that subscribers can see that for example if they send a cleartext message to a list that requires encrypted messages, it will be bounced). Enable list owner to configure the PGP related per-list configuration options. Enable list owner to set/see the list key (private part). This is quite questionable and will have a site-level option to be turned off (the REST API will then not serve the list private key). The same level of user key management as the `key` command allows, with similar steps during key change/revocation. Implementation ============== Another django app is installed in the same project as Postorius + HyperKitty, django-pgpmailman. This app provides a list of PGP enabled mailing lists and their PGP related management in a similar way Postorius does, also user key management. There are few places where Postorius refers to HyperKitty and vice versa, for adding the appropriate links/icons to the navbar as well as for the user menu entries. These references will be refactored to some mechanism in django-mailman3, which will allow any installed django app to add it's entry to the navbar or the user menu. This will allow django-pgpmailman to hook up rather easily, without any direct references to it from Postorius/HyperKitty/django-mailman3. Archiving ========= The archiving web UI is a tougher nut to crack. I either have to develop a custom PGP mail archive frontend and integrate it similar to the PGP list management app, or integrate with HyperKitty transparently, so that archives are received encrypted, stored encrypted, and yet served to subscribers in clear. Developing a custom app is quite unrealistic and it would lack most HyperKitty functions. However hooking up an encrypted message store to HyperKitty is also non-trivial, as HyperKitty is strongly tied with storing messages in it's database and using a django Model to represent a message. I currently have no realistic ideas, one that comes to mind, is to create a custom django database backend, that somehow stores everything encrypted, but thats a very unwieldy solution that likely won't work well. Other progress ============== Fixed many little issues with the PGP plugin and PGPy. Got it to work quite nicely, below you can see a message received by a subscriber, by a PGP enabled discussion list, encrypted to his key, as shown by Thunderbird with the EnigMail plugin: https://neuromancer.sk/static/mailman_pgp_message.png Also finally merged the finished `key revoke` command to mailman-pgp/master. Cheers, -- Jan ______________________________________________________ /\ # PGP: 362056ADA8F2F4E421565EF87F4A448FE68F329D /__\ # https://neuromancer.sk /\ /\ # Eastern Seaboard Phishing Authority /__\/__\ # -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 862 bytes Desc: OpenPGP digital signature URL: From barry at python.org Tue Aug 15 13:26:48 2017 From: barry at python.org (Barry Warsaw) Date: Tue, 15 Aug 2017 10:26:48 -0700 Subject: [Mailman-Developers] Mailgun email libraries Message-ID: Hi folks - apologies for the cross-posting; there is some intersection on the topic so I don?t want to leave anyone out. This past weekend, I was at PyBay 2017 and attended an excellent talk by Christine Spang, founder and CTO of Nylas, an email syncing platform. They?ve been using Mailgun?s Flanker library for email address and MIME parsing. Flanker is Apache 2.0 licensed although unfortunately only Python 2 currently. Here?s a blog post about it, along with their GitHub repo: http://blog.mailgun.com/we-just-open-sourced-flanker-our-python-email-address-and-mime-parsing-library/ https://github.com/mailgun/flanker This is mostly an FYI email since I?ve only had time to read the blog post and briefly skim the docs, but there may be interesting things we can learn from their work. Cheers, -Barry -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: Message signed with OpenPGP URL: From johny at neuromancer.sk Wed Aug 16 11:32:59 2017 From: johny at neuromancer.sk (Jan Jancar) Date: Wed, 16 Aug 2017 17:32:59 +0200 Subject: [Mailman-Developers] [GSoC] Encrypted mailing lists - update v13 In-Reply-To: References: Message-ID: Hi all! Another progress report, on the PGPMailman web ui status. =============== Web UI progress =============== django-pgpmailman progress ========================== Successfully created the mail list views. Inspired heavily by Postorius, to get the same look, both in templates and views. There is a list index view, which lists only PGP enabled lists, and their key fingerprints. This also allows one to download the list key as it's linked from the list key fingerprint. The list name link leads to a list settings/info view. The info tab is available to any logged in user, while the settings are list owner only. All the per-list PGP settings are configurable there. List index screenshot: https://neuromancer.sk/static/mailman_pgp_web_index.png List encryption settings screenshot: https://neuromancer.sk/static/mailman_pgp_web_settings.png django-mailman3 template chunks =============================== In order to make plugging the django-mailman3 based apps together and deduplicate some of their code, as well as to integrate the django-pgpmailman app into any Postorius + HyperKitty project I refactored the direct references of Postorius to HyperKitty and vice versa. This is done in the [template chunk MR](https://gitlab.com/mailman/django-mailman3/merge_requests/8). It introduces a new template tag in django-mailman3, which is intended to be used by all django-mailman3 based apps to let other installed apps add their entries to the navbar and user menu. Which I are two main ways Postorius and HyperKitty reference each other. Cheers, -- Jan ______________________________________________________ /\ # PGP: 362056ADA8F2F4E421565EF87F4A448FE68F329D /__\ # https://neuromancer.sk /\ /\ # Eastern Seaboard Phishing Authority /__\/__\ # -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 862 bytes Desc: OpenPGP digital signature URL: From barry at list.org Sun Aug 27 17:14:49 2017 From: barry at list.org (Barry Warsaw) Date: Sun, 27 Aug 2017 17:14:49 -0400 Subject: [Mailman-Developers] Plugins Message-ID: As part of his GSoC project, Jan Jancar implemented a plugin architecture for Mailman Core. I really liked a lot of it, and it serves as the basis for a set of my own tweaks on top of his branch. I think it?s very close to being ready to merge so I wanted to give folks here a heads up, especially if you don?t follow the GitLab MRs too closely. For reference, here?s Jan?s original MR: https://gitlab.com/mailman/mailman/merge_requests/288 Here?s my MR that builds on top of that. My current intent is to land this MR instead: https://gitlab.com/mailman/mailman/merge_requests/308 It may not be terribly helpful at this point to scour the MR?s comments. Instead, please read the documentation on plugins here: https://gitlab.com/mailman/mailman/blob/3572b11c2d42de0fa749786d35df5e660b21c4b3/src/mailman/plugins/docs/intro.rst GitLab does a passable job of rendering this, but it will look even better once this MR lands and the RTD docs are built. Notably, you?ll miss the ?literal includes? which show how some of the configuration files and hook modules will look. Check out the branch and run `tox -e docs` to see the locally rendered page, or just view the source of the MR. You should be able to get enough of a gist about how it?ll work. Comments welcome, either here or in MR!308. Cheers, -Barry -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: Message signed with OpenPGP URL: From johny at neuromancer.sk Tue Aug 29 13:23:40 2017 From: johny at neuromancer.sk (Jan Jancar) Date: Tue, 29 Aug 2017 19:23:40 +0200 Subject: [Mailman-Developers] [GSoC] Encrypted mailing lists - final evaluation In-Reply-To: References: Message-ID: <119687ad-e197-d414-1d74-321772e0fac8@neuromancer.sk> Hi all. https://neuromancer.sk/article/18 ===================== Final work submission ===================== As the GSoC 2017 final evaluation period just ended, my final work product is finally submitted. This post is a summary of my final work product. Mailman-pgp =========== - https://gitlab.com/J08nY/mailman-pgp - https://mailman-pgp.readthedocs.io/en/latest/ - Plugin for Mailman Core. - Enables creating a PGP mailing list, which has a list key, can receive and serve messages encrypted, can sign and receive signed messages from subscribers. - Creates the `key` email command, which is used for per-address user key management. - Subscription to a PGP enabled mailing list the subscribing address to send and confirm an address public key, which the moderator must verify. - Somewhat confirms the user has possession of the appropriate private key to the one sent on subscription. - Has per-list settings for encryption/signatures/what to do with non encrypted / non signed messages, etc.. - Optionally exposes a REST API for list configuration. - Has local archivers which can store the messages encrypted by the list key. - Stores list and address keys in configurable key directories. - requires (some not merged) MRs in Mailman Core - [mailman/pluggable-components], merged as [mailman!308] - [mailman/list-style-descriptions] - [mailman/pluggable-workflows] - [mailman/pipelines-dynamical-instantiation], merged - additional MR (not required) - [mailman/mta-smtps-starttls] - Required branches are merged and maintained at [J08nY/mailman/plugin. - To install, do `pip install mailman-pgp`, warning: it will pull in a development version of Mailman Core and PGPy. django-pgpmailman ================= - https://gitlab.com/J08nY/django-pgpmailman - A Django app, uses django-mailman3 and mailmanclient, integrates well with Postorius and HyperKitty. - Provides management of PGP enabled mailing lists to the list owner, and of PGP related subscription settings to the subscriber. - requires (currently not merged) MRs in mailmanclient, django-mailman3, Postorius and HyperKitty - [mailmanclient/plugin-bindings] - [django-mailman3/template-chunks] - [postorius/template-chunks] - [hyperkitty/template-chunks] mailman-rest-events =================== - https://gitlab.com/J08nY/mailman-rest-events - A plugin for Mailman Core that turned out to be unnecessary for the working of django-pgpmailman, but implemented a similar feature as this [MR](https://gitlab.com/mailman/mailman/merge_requests/264). - This plugin sends the events (and some information about them) from Mailman Core to a list of configurable endpoints using JSON in HTTP POST requests. Other contributions =================== - [mailmanclient/split-sources], merged - [postorius/list-style-selection] - Many many PRs to [PGPy], a Python only implementation of OpenPGP. [19 PRs] and counting. As PGPy was not and still is not feature complete in regards to RFC4880 I found out many times that it's missing features/bugs broke mailman-pgp CI. It would not make sense fixing them locally, both from a software design perspective and open source software one aswell. ## Overall I think I met almost all goals that the project idea required and my original proposal stated, with the noteworthy exception of remote archiving to HyperKitty which I just couldn't find a way to integrate. [mailman/pluggable-components]: https://gitlab.com/mailman/mailman/merge_requests/288 [mailman!308]: https://gitlab.com/mailman/mailman/merge_requests/308 [mailman/list-style-descriptions]: https://gitlab.com/mailman/mailman/merge_requests/289 [mailman/pluggable-workflows]: https://gitlab.com/mailman/mailman/merge_requests/299 [mailman/pipelines-dynamical-instantiation]: https://gitlab.com/mailman/mailman/merge_requests/287 [mailman/mta-smtps-starttls]: https://gitlab.com/mailman/mailman/merge_requests/286 [J08nY/mailman/plugin]: https://gitlab.com/J08nY/mailman/tree/plugin [mailmanclient/plugin-bindings]: https://gitlab.com/mailman/mailmanclient/merge_requests/34 [django-mailman3/template-chunks]: https://gitlab.com/mailman/django-mailman3/merge_requests/8 [postorius/template-chunks]: https://gitlab.com/mailman/postorius/merge_requests/215 [hyperkitty/template-chunks]: https://gitlab.com/mailman/hyperkitty/merge_requests/65 [mailmanclient/split-sources]: https://gitlab.com/mailman/mailmanclient/merge_requests/38 [postorius/list-style-selection]: https://gitlab.com/mailman/postorius/merge_requests/214 [PGPy]: https://github.com/SecurityInnovation/PGPy [19 PRs]: https://github.com/SecurityInnovation/PGPy/pulls?utf8=%E2%9C%93&q=is%3Apr%20author%3AJ08nY Cheers, -- Jan ______________________________________________________ /\ # PGP: 362056ADA8F2F4E421565EF87F4A448FE68F329D /__\ # https://neuromancer.sk /\ /\ # Eastern Seaboard Phishing Authority /__\/__\ # -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 862 bytes Desc: OpenPGP digital signature URL: From subhadip1997a at gmail.com Wed Aug 30 02:06:12 2017 From: subhadip1997a at gmail.com (sj boss) Date: Wed, 30 Aug 2017 11:36:12 +0530 Subject: [Mailman-Developers] Multilingual Support Message-ID: Can someone brief on the technologies that were used to provide multilingual support to mailman and how were they implemented ?