diff options
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 963 |
1 files changed, 953 insertions, 10 deletions
@@ -1,14 +1,890 @@ -*- coding: iso-8859-1 -*- Mailman - The GNU Mailing List Management System -Copyright (C) 1998-2011 by the Free Software Foundation, Inc. +Copyright (C) 1998-2016 by the Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Here is a history of user visible changes to Mailman. -2.1.16 (xx-xxx-xxxx) +2.1.24 (02-Jun-2017) + + Security + + - A most likely unexploitable XSS attach that relies on the Mailman web + server passing a crafted Host: header to the CGI environment has been + fixed. Apache for one is not vulnerable. Thanks to Alqnas Eslam. + + New Features + + - There is a new RCPT_BASE64_HEADER_NAME setting. If this is set to a + non-empty string, that string is the name of a header that will be added + to personalized and VERPed deliveries with value equal to the base64 + encoding of the recipient's email address. This is intended to enable + identification of the recipient otherwise redacted from "spam report" + feedback loop messages. + + - cron/senddigests has a new -e/--exceptlist option to send pending + digests for all but a named list. (LP: #1619770) + + - The values for DEFAULT_DIGEST_FOOTER and DEFAULT_MSG_FOOTER have been + changed to use a standard signature separator for DEFAULT_MSG_FOOTER + and to remove the unneded line of underscores from DEFAULT_DIGEST_FOOTER. + (LP: #266269) + + i18n + + - The Polish html templates have been recoded to use html entities + instead of non-ascii characters. + + - The Basque (Euskara) translation has been updated by Gari Araolaza. + + - The German "details for personalize" page has been updated by + Christian F Buser. + + - The Japanese translation has been updated by Yasuhito FUTATSUKI. + + Bug fixes and other patches + + - The list-owner@virtual.domain addresses are now added to virtual-mailman + as they are exposed in 'list created' emails. (LP: 1694384) + + - The 'list run by' addresses in web page footers are now just the + list-owner address. (LP: #1694384) + + - Changed member_verbosity_threshold from a >= test to a strictly > test + to avoid the issue of moderating every post when the threshold = 1. + (LP: #1693366) + + - Subject prefixing has been improved to always have a space between + the prefix and the subject even with non-ascii in the prefix. This + will sometimes result in two spaces when the prefix is non-ascii but + the subject is ascii, but this is the lesser evil. (LP: #1525954) + + - Treat message and digest headers and footers as empty if they contain + only whitespace. (LP: #1673307) + + - Ensured that added message and digest headers and footers always have + a terminating new-line. (LP: #1670033) + + - Fixed an uncaught TypeError in the subscribe CGI. (LP: #1667215) + + - Added recognition for a newly seen mailEnable bounce. + + - Fixed an uncaught NotAMemberError when a member is removed before a + probe bounce for the member is returned. (LP: #1664729) + + - Fixed a TypeError thrown in the roster CGI when called with a listname + containing a % character. (LP: #1661810) + + - Fixed a NameError issue in bin/add_members with + DISABLE_COMMAND_LOCALE_CSET = yes. (LP: #1647450) + + - The CleanseDKIM handler has been removed from OWNER_PIPELINE. It isn't + needed there and has adverse DMARC implications for messages to -owner + of an anonymous list. (LP: #1645901) + + - Fixed an issue with properly RFC 2047 encoding the display name in the + From: header for messages with DMARC mitigations. (LP: #1643210) + + - Fixed an issue causing UnicodeError in sending digests following a + change of a list's preferred_language. (LP: #1644356) + + - Enhanced the fix for race conditions in MailList().Load(). (LP: #266464) + + - Fixed a typo in Utils.py that could have resulted in a NameError in + logging an unlikely occurrence. (LP: #1637745) + + - Fixed a bug which created incorrect "view more members" links at the + bottom of the admin Membership List pages. (LP: #1637061) + + - The 2.1.23 fix for LP: #1604544 only fixed the letter links at the top + of the Membership List. The links at the bottom have now been fixed. + + - paths.py now adds dist-packages as well as site-packages to sys.path. + (LP: #1621172) + + - INIT INFO has been added to the sample init.d script. (LP: #1620121) + +2.1.23 (27-Aug-2016) + + Security + + - CSRF protection has been extended to the user options page. This was + actually fixed by Tokio Kikuchi as part of the fix for LP: #775294 and + intended for Mailman 2.1.15, but that fix wasn't completely merged at the + time. The full fix also addresses the admindb, and edithtml pages as + well as the user options page and the previously fixed admin pages. + Thanks to Nishant Agarwala for reporting the issue. CVE-2016-6893 + (LP: #1614841) + + New Features + + - For header_filter_rules matching, RFC 2047 encoded headers, non-encoded + headers and header_filter_rules patterns are now all decoded to unicode. + Both XML character references of the form &#nnnn; and unicode escapes + of the form \Uxxxx in patterns are converted to unicodes as well. Both + headers and patterns are normalized to 'NFKC' normal form before + matching, but the normalization form can be set via a new NORMALIZE_FORM + mm_cfg setting. Also, the web UI has been updated to encode characters + in text fields that are invalid in the character set of the page's + language as XML character references instead of '?'. This should help + with entering header_filter_rules patterns to match 'odd' characters. + This feature is experimental and is problematic for some cases where it + is desired to have a header_filter_rules pattern with characters not in + the character set of the list's preferred language. For patterns + without such characters, the only change in behavior should be because + of unicode normalization which should improve matching. For other + situations such as trying to match a Subject: with CJK characters (range + U+4E00..U+9FFF) on an English language (ascii) list, one can enter a + pattern like '^subject:.*[一-鿿]' or + '^subject:.*[\u4e00;-\u9fff;]' to match a Subject with any character in + the range, and it will work, but depending on the actual characters and + the browser, submitting another, even unrelated change can garble the + original entry although this usually occurs only with ascii pages and + characters in the range \u0080-\u00ff. The \Uxxxx unicode escapes must + have exactly 4 hex digits, but they are case insensitive. (LP: #558155) + + - Thanks to Jim Popovitch REMOVE_DKIM_HEADERS can now be set to 3 to + preserve the original headers as X-Mailman-Original-... before removing + them. + + - Several additional templates have been added to those that can be edited + via the web admin GUI. (LP: #1583387) + + - SMTPDirect.py can now do SASL authentication and STARTTLS security when + connecting to the outgoiung MTA. Associated with this are new + Defaults.py/mm_cfg.py settings SMTP_AUTH, SMTP_USER, SMTP_PASSWD and + SMTP_USE_TLS. (LP: #558281) + + - There is a new Defaults.py/mm_cfg.py setting SMTPLIB_DEBUG_LEVEL which + can be set to 1 to enable verbose smtplib debugging to Mailman's error + log to help with debugging 'low level smtp failures'. (LP: #1573074) + + - A list's nonmember_rejection_notice attribute will now be the default + rejection reason for a held non-member post in addition to it's prior + role as the reson for an automatically rejected non-member post. + (LP: #1572330) + + i18n + + - The French translation of 'Dutch' is changed from 'Hollandais' to + 'Néerlandais' per Francis Jorissen. + + - Some German language templates that were incorrectly utf-8 encoded have + been recoded as iso-8859-1. (LP: #1602779) + + - Japanese translation and documentation in messages/ja has been updated by + Yasuhito FUTATSUKI. + + Bug fixes and other patches + + - The admin Membership List letter links could be incorrectly rendered as + Unicode strings following a search. (LP: #1604544) + + - We no longer throw an uncaught TypeError with certain defective crafted + POST requests to Mailman's CGIs. (LP: #1602608) + + - Scrubber links in archives are now in the list's preferred_language + rather than the poster's language. (LP: #1586505) + + - Improved logging of banned subscription and address change attempts. + (LP: #1582856) + + - In rare circumstances a list can be removed while the admin or listinfo + CGI or bin/list_lists is running causing an uncaught MMUnknownListError + to be thrown. The exception is now caught and handled. (LP: #1582532) + + - Set the Date: header in the wrapper message when from_is_list or + dmarc_moderation_action is Wrap Message. (LP: #1581215) + + - A site can now set DMARC_ORGANIZATIONAL_DOMAIN_DATA_URL to None or the + null string if it wants to avoid using this. (LP: #1578450) + + - The white space to the left of the admindb Logout link is no longer + part of the link. (LP: #1573623) + +2.1.22 (17-Apr-2016) + + i18n + + - Fixed a typo in the German options.html template. (LP: #1562408) + + - An error in the Brazilian Portugese translation of Quarterly has been + fixed thanks to Kleber A. Benatti. + + - The Brazilian Portugese translation has been updated by Emerson Ribeiro + de Mello. + + Bug fixes and other patches + + - All addresses in data/virtual-mailman are now properly appended with + VIRTUAL_MAILMAN_LOCAL_DOMAIN and duplicates are not generated if the + site list is in a virtual domain. (LP: #1570630) + + - DMARC mitigations will now find the From: domain to the right of the + rightmost '@' rather than the leftmost '@'. (LP: #1568445) + + - DMARC mitigations for a sub-domain of an organizational domain will now + use the organizational domain's sp= policy if any. (LP: #1568398) + + - Modified NewsRunner.py to ensure that messages gated to Usenet have a + non-blank Subject: header and when munging the Message-ID to add the + original to References: to help with threading. (LP: #557955) + + - Fixed the pipermail archiver to do a better job of figuring the date of + a post when its Date: header is missing, unparseable or has an obviously + out of range date. This should only affect bin/arch as ArchRunner has + code to fix dates at least if ARCHIVER_CLOBBER_DATE_POLICY has not been + set to 0 in mm_cfg.py. If posts have been added in the past to a list's + archive using bin/arch and an imported mbox, running bin/arch again could + result is some of those posts being archived with a different date. + (LP: #1555798) + + - Fixed an issue with CommandRunner shunting a malformed message with a + null byte in the body. (LP: #1553888) + + - Don't collapse multipart with a single sub-part inside multipart/signed + parts. (LP: #1551075) + +2.1.21 (28-Feb-2016) + + New Features + + - There is a new dmarc_none_moderation_action list setting and a + DEFAULT_DMARC_NONE_MODERATION_ACTION mm_cfg.py setting to optionally + apply Munge From or Wrap Message actions to posts From: domains that + publish DMARC p=none. The intent is to eliminate failure reports to + the domain owner for messages that would be munged or wrapped if the + domain published a stronger DMARC policy. See the descriptions in + Defaults.py, the web UI and the bug report for more. (LP: #1539384) + + - Thanks to Jim Popovitch there is now a feature to automatically turn + on moderation for a malicious list member who attempts to flood a list + with spam. See the details for the Privacy options ... -> Sender + filters -> member_verbosity_threshold and member_verbosity_interval + settings in the web admin UI and the documentation in Defaults.py for + the DEFAULT_MEMBER_VERBOSITY_* and VERBOSE_CLEAN_LIMIT settings for + information. + + - bin/list_members now has options to display all moderated or all + non-moderated members. + + - There is now a mm_cfg.py setting GLOBAL_BAN_LIST which is like the + individual list's ban_list but applies globally to all subscribe + requests. See the description in Defaults.py for more details. + + i18n + + - The Japanese translation has been updated by Yasuhito FUTATSUKI. + + - Also thanks to Miloslav Trmac and Yasuhito FUTATSUKI, the l10n for + Mailman's bin/ commands has been fixed to display using the character + set of the user's work station even when Mailman's character set for + the language is different. Because this has not been tested over a + wide set of locales, there is an mm_cfg.py switch + DISABLE_COMMAND_LOCALE_CSET to disable it if it causes problems. + (LP: #558167) + + - The Polish translation has been updated by Stefan Plewako. + + - The German translation has been updated by Mirian Margiani and + Bernhard Schmidt. + + - The Russian translation has been updated by Danil Smirnov. + + - Several Galician templates that were improperly encoded as iso-8859-1 + have been fixed. (LP: #1532504) + + - The Brazilian Portugese translation has been updated by Emerson Ribeiro + de Mello. + + Bug fixes and other patches + + - If DMARC lookup fails to find a policy, also try the Organizational + Domain. Associated with this is a new mm_cfg.py setting + DMARC_ORGANIZATIONAL_DOMAIN_DATA_URL which sets the URL used to + retrieve the data for the algorithm that computes the Organizational + Domain. See https://publicsuffix.org/list/ for info. (LP: #1549420) + + - Modified contrib/mmdsr to correctly report No such list names that + contain ". + + - User's "Acknowledge" option will now be honored for posts to anonymous + lists. (LP: #1546679) + + - Fixed a typo in the Non-digest options regular_exclude_ignore + description thanks to Yasuhito FUTATSUKI. + + - DEFAULT_PASS_MIME_TYPES has been changed to accept text/plain sub-parts + from message/rfc822 parts and multipart parts other than mixed and + alternative and also accept pgp signatures. This only applies to newly + created lists and other than pgp signatures, still only accepts + text/plain. (LP: #1517446) + + - Modified contrib/mmdsr to report held and banned subscriptions and DMARC + lookups in their own categories. + + - Fixed a bug that could create a garbled From: header with certain DMARC + mitigation actions. (LP: #1536816) + + - Treat a poster's address which matches an equivalent_domains address as + a list member for the regular_exclude_ignore check. (LP: #1526550) + + - Fixed an issue that sometimes left no white space following + subject_prefix. (LP: #1525954) + + - Vette log entries for banned subscriptions now include the source of + the request if available. (LP: #1525733) + + - Submitting the user options form for a user who was asynchronously + unsubscribed would throw an uncaught NotAMemberError. (LP: #1523273) + + - It was possible under some circumstances for a message to be shunted + after a handler rejected or discarded it, and the handler would be + skipped upon unshunting and the message accepted. (LP: #1519062) + + - Posts gated to usenet will no longer have other than the target group + in the Newsgroups: header. (LP: #1512866) + + - Invalid regexps in *_these_nonmembers, subscribe_auto_approval and + ban_list are now logged. (LP: #1507241) + + - Refactored the GetPattern list method to simplify extending @listname + syntax to new attributes in the future. Changed Moderate.py to use the + GetPattern method to process the *_these_nonmembers lists. + + - Changed CookHeaders to default to using space rather than tab as + continuation_ws when folding headers. (LP: #1505878) + + - Fixed the 'pidfile' path in the sample init.d script. (LP: #1503422) + + - Subject prefixing could fail to collapse multiple 'Re:' in an incomming + message if they all came after the list's subject_prefix. This is now + fixed. (LP: #1496620) + + - Defended against a user submitting URLs with query fragments or POST + data containing multiple occurrences of the same variable. + (LP: #1496632) + + - Fixed bin/mailmanctl to check its effective rather than real uid. + (LP: #1491187) + + - Fixed cron/gate_news to catch EOFError on opening the newsgroup. + (LP: #1486263) + + - Fixed a bug where a delayed probe bounce can throw an AttributeError. + (LP: #1482940) + + - If a list is not digestable an the user is not currently set to + receive digests, the digest options will not be shown on the user's + options page. (LP: #1476298) + + - Improved identification of remote clients for logging and subscribe + form checking in cases where access is via a proxy server. Thanks to + Jim Popovitch. Also updated contrib/mmdsr for log change. + + - Fixed an issue with shunted messages on a list where the charset for + the list's preferred_language had been changed from iso-8859-1 to + utf-8 without recoding the list's description. (LP: #1462755) + + - Mailman-Postfix integration will now add mailman@domain entries in + data/virtual-mailman for each domain in POSTFIX_STYLE_VIRTUAL_DOMAINS + which is a host_name of a list. This is so the addresses which are + exposed on admin and listinfo overview pages of virtual domains will + be deliverable. (LP: #1459236) + + - The vette log entry for DMARC policy hits now contains the list name. + (LP: #1450826) + + - If SUBSCRIBE_FORM_SECRET is enabled and a user's network has a load + balancer or similar in use the POSTing IP might not exactly match the + GETting IP. This is now accounted for by not requiring the last + octet (16 bits for ipV6) to match. (LP: #1447445) + + - DKIM-Signature:, DomainKey-Signature: and Authentication-Results: + headers are now removed by default from posts to anonymous lists. + (LP: #1444673) + + - The list admin web UI Mambership List search function often doesn't + return correct results for search strings (regexps) that contain + non-ascii characters. This is partially fixed. (LP: #1442298) + +2.1.20 (31-Mar-2015) + + Security + + - A path traversal vulnerability has been discovered and fixed. This + vulnerability is only exploitable by a local user on a Mailman server + where the suggested Exim transport, the Postfix postfix_to_mailman.py + transport or some other programmatic MTA delivery not using aliases + is employed. CVE-2015-2775 (LP: #1437145) + + New Features + + - There is a new Address Change sub-section in the web admin Membership + Management section to allow a list admin to change a list member's + address in one step rather than adding the new address, copying settings + and deleting the old address. (LP: #266809) + + i18n + + - The Russian translation has been updated by Danil Smirnov. + + - The Polish translation has been updated by Stefan Plewako. + + Bug fixes and other patches + + - A LookupError in SpamDetect on a message with RFC 2047 encoded headers + in an unknown character set is fixed. (LP: #1427389) + + - Fixed a bug in CommandRunner that could process the second word of a + body line as a command word and a case sensitivity in commands in + Subject: with an Re: prefix. (LP: #1426829) + + - Fixed a bug in CommandRunner that threw an uncaught KeyError if + the input to the list-request address contained a command word + terminated by a period. (LP: #1426825) + +2.2 Branch Backports (released in conjunction with 2.1.19) + + The following New Features and Bug Fixes have been in an "unofficial, + never to be released" Mailman 2.2 branch for several years. Until now, + they were never implemented on the official 2.1 branch because of their + i18n impacts. Given that there have been a number of i18n impacting + changes due to DMARC mitigations in the last few releases, it has been + decided to backport these as well. + + All of these changes have been running in production on several lists + for years without problems other than untranslated strings, so they should + be reasonably "bug free". + + New Features + + - There is a new list attribute 'subscribe_auto_approval' which is a list + of email addresses and regular expressions matching email addresses + whose subscriptions are exempt from admin approval. (LP: #266609) + + - Confirmed member change of address is logged in the 'subscribe' log, + and if admin_notify_mchanges is true, a notice is sent to the list + owner using a new adminaddrchgack.txt template. + + - Added an 'automate' option to bin/newlist to send the notice to the + admin without the prompt. + + - The processing of Topics regular expressions has changed. Previously the + Topics regexp was compiled in verbose mode but not documented as such + which caused some confusion. Also, the documentation indicated that + topic keywords could be entered one per line, but these entries were not + handled properly. Topics regexps are now compiled in non-verbose mode + and multi-line entries are 'ored'. Existing Topics regexps will be + converted when the list is updated so they will continue to work. + + - Added real name display to the web roster. (LP: #266754) + + + Bug fixes and other patches + + - Changed the response to an invalid confirmation to be more generic. + Not all confirmations are subscription requests. + + - Changed the default nonmember_rejection_notice to be more user friendly. + (LP: #418728) + + - Added "If you are a list member" qualification to some messages from the + options login page. (LP: #266442) + + - Changed the 'Approve' wording in the admindbdetails.html template to + 'Accept/Approve' for better agreement with the button labels. + + - Added '(by thread)' to the previous and next message links in the + archive to emphasize that even if you got to the message from a + subject, date or author index, previous and next are still by thread. + +2.1.19 (28-Feb-2015) + + New Features + + - The subscribe_auto_approval feature backported from the 2.2 branch and + described above has been enhanced to accept entries of the form + @listname to auto approve members of another list. (LP: #1417093) + + - There is a new list attribute dmarc_wrapped_message_text and a + DEFAULT_DMARC_WRAPPED_MESSAGE_TEXT setting to set the default for new + lists. This text is added to a message which is wrapped because of + dmarc_moderation_action in a separate text/plain part that precedes the + message/rfc822 part containing the original message. It can be used to + provide an explanation of why the message was wrapped or similar info. + + - There is a new list attribute equivalent_domains and a + DEFAULT_EQUIVALENT_DOMAINS setting to set the default for new lists which + in turn defaults to the empty string. This provides a way to specify one + or more groups of domains, e.g., mac.com, me.com, icloud.com, which are + considered equivalent for validating list membership for posting and + moderation purposes. + + - There is a new WEB_HEAD_ADD setting to specify text to be added to the + <HEAD> section of Mailman's internally generated web pages. This doesn't + apply to pages built from templates, but in those cases, custom templates + can be created. (LP: #1409396) + + - There is a new DEFAULT_SUBSCRIBE_OR_INVITE setting. Set this to Yes + to make the default selection on the admin Mass Subscriptions page + Invite rather than Subscribe. (LP: #1404511) + + - There is a new list attribute in the Bounce processing section. + bounce_notify_owner_on_bounce_increment if set to Yes will cause + Mailman to notify the list owner on every bounce that increments a + list member's score but doesn't result in a probe or disable. There + is a new configuration setting setting + DEFAULT_BOUNCE_NOTIFY_OWNER_ON_BOUNCE_INCREMENT to set the default + for new lists. This in turn defaults to No. (LP: #1382150) + + Changed behavior + + - Mailman's log files, request.pck files and heldmsg-* files are no + longer created world readable to protect against access by untrusted + local users. Note that permissions on existing log files won't be + changed so if you are concerned about this and don't rotate logs or + have a logrotate process that creates new log files instead of letting + Mailman create them, you will need to address that. (LP: #1327404) + + Other changes + + - The Python Powered logo image has been replaced in the misc/ directory + in the source distribution. Depending on how you've installed these + images, you may need to copy PythonPowered.png from the misc/ directory + in the source or from the $prefix/icons/ installed directory to another + location for your web server. (LP: #1408575) + + i18n + + - The Polish translation has been updated by Stefan Plewako. + + - The Interlingua translation has been updated by Martijn Dekker. + + - The Japanese message catalog has been updated by SATOH Fumiyasu. + + - Mailman's character set for Romanian has been changed from iso-8859-2 + to utf-8 and the templates and messages recoded. This change will + require running 'bin/arch --wipe' on any existing Romanian language + lists in order to recode the list's archives, and will require recoding + any edited templates in lists/LISTNAME/ro/*, templates/DOMAIN/ro/* and + templates/site/ro/*. It may also require recoding any existing + iso-8859-2 text in list attributes. (LP: #1418735) + + - Mailman's character set for Russian has been changed from koi8-r to + utf-8 and the templates and messages recoded. This change will + require running 'bin/arch --wipe' on any existing Russian language + lists in order to recode the list's archives, and will require recoding + any edited templates in lists/LISTNAME/ru/*, templates/DOMAIN/ru/* and + templates/site/ru/*. It may also require recoding any existing koi8-r + text in list attributes. (LP: #1418448) + + - Mailman's versions.py has been augmented to help with the above two + character set changes. The first time a list with preferred_language + of Romanian or Russian is accessed or upon upgrade to this release, + any list attributes which have string values such as description, info, + welcome_msg, etc. that appear to be in the old character set will be + converted to utf-8. This is done recursively for the values (but not + the keys) of dictionary attributes and the elements of list and tuple + attributes. + + - The Russian message catalog and templates have been further updated by + Danil Smirnov. + + - The Romanian message catalog has been updated. (LP: #1415489) + + - The Russian templates have been updated by Danil Smirnov. (LP: #1403462) + + - The Japanese translation has been updated by SATOH Fumiyasu. + (LP: #1402989) + + - A minor change in the French translation of a listinfo subscribe form + message has been made. (LP: #1331194) + + Bug fixes and other patches + + - Because of privacy concerns with the 2.2 backport adding real name to + list rosters, this is controlled by a new ROSTER_DISPLAY_REALNAME + setting that defaults to No. You may wish to set this to Yes in + mm_cfg.py. + + - Organization: headers are now unconditionally removed from posts to + anonymous lists. Regexps in ANONYMOUS_LIST_KEEP_HEADERS weren't kept + if the regexp included the trailing ':'. This is fixed too. + (LP: #1419132) + + - The admindb interface has been fixed so the the detail message body + display doesn't lose part of a multi-byte character, and characters which + are invalid in the message's charset are replaced rather than the whole + body not being converted to the display charset. (LP: #1415406) + + - Fixed a bug in bin/rmlist that would throw an exception or just fail to + remove held message files for a list with regexp special characters in + its name. (LP:#1414864) + + - When applying DMARC mitigations, CookHeaders now adds the original From: + to Cc: rather than Reply-To: in some cases to make MUA 'reply' and + 'reply all' more consistent with the non-DMARC cases. (LP: #1407098) + + - The Subject: of the list welcome message wasn't always in the user's + preferred language. Fixed. (LP: #1400988) + + - Accept email command in Subject: prefixed with Re: or similar with no + intervening space. (LP: #1400200) + + - Fixed a UnicodeDecodeError that could occur in the web admin interface + if 'text' valued attributes have unicode values. (LP: #1397170) + + - We now catch the NotAMemberError exception thrown if an authenticated + unsubscribe is submitted from the user options page for a nonmember. + (LP: #1390653) + + - Fixed an archiving bug that would cause messages with 'Subject: Re:' + only to be indexed in the archives without a link to the message. + (LP: #1388614) + + - The vette log entry for a message discarded by a handler now includes + the list name and the name of the handler. (LP: #558096) + + - The options CGI now rejects all but HTTP GET and POST requests. + (LP: #1372199) + + - A list's poster password will now be accepted on an Urgent: header. + (LP: #1371678) + + - Fixed a bug which caused a setting of 2 for REMOVE_DKIM_HEADERS to be + ignored. (LP: #1363278) + + - Renamed messages/sr/readme.sr to README.sr. (LP: #1360616) + + - Moved the dmarc_moderation_action checks from the Moderate handler to + the SpamDetect handler so that the Reject and Discard actions will be + done before the message might be held by header_filter_rules, and the + Wrap Message and Munge From actions will be done on messages held by + header_filter_rules if the message is approved. (LP: #1334450) + + - <label> tags have been added around most check boxes and radio buttons + and their text labels in the admin and admindb web GUI so they can be + (de)selected by clicking the text. (LP: #266391) + + - If checking DNS for dmarc_moderation_action and DNS lookup is not + available, log it. (LP: #1324541) + + - Handle missing From: header addresses for DMARC mitigation actions. + (LP: #1318025) + +2.1.18-1 (06-May-2014) + + Bug fixes and other patches + + - A critical incompatibility between the DMARC Wrap Message action and + Python versions older than 2.6.x for some x <= 5 existed and caused + Wrapped message to be shunted. This is fixed. (LP: #1316682) + + - Sender: headers are no longer removed in from_is_list Munge From + actions. (LP: #1315970) + +2.1.18 (03-May-2014) + + Acknowledgements + + - Thanks to Jim Popovitch and Phil Pennock for the branch that formed the + basis of the dmarc_moderation_action feature. + + - Thanks to Franck Martin et al for the branch that formed the basis of + the from_is_list feature. + + Dependencies + + - There is a new dependency associated with the new Privacy options -> + Sender filters -> dmarc_moderation_action feature discussed below. + This requires that the dnspython <http://www.dnspython.org/> package + be available in Python. This package can be downloaded from the above + site or from the CheeseShop <https://pypi.python.org/pypi/dnspython/> + or installed with pip. + + New Features + + - The from_is_list feature introduced in 2.1.16 is now unconditionally + available to list owners. There is also, a new Privacy options -> + Sender filters -> dmarc_moderation_action feature which applies to list + messages where the From: address is in a domain which publishes a DMARC + policy of reject or possibly quarantine. This is a list setting with + values of Accept, Wrap Message, Munge From, Reject or Discard. There is + a new DEFAULT_DMARC_MODERATION_ACTION configuration setting to set the + default for this, and the list admin UI is not able to set an action + which is 'less' than the default. The prior ALLOW_FROM_IS_LIST setting + has been removed and is effectively always Yes. There is a new + dmarc_quarantine_moderation_action list setting with default set by a + new DEFAULT_DMARC_QUARANTINE_MODERATION_ACTION configuration setting + which in turn defaults to Yes. The list setting can be set to No to + exclude domains with DMARC policy of quarantine from + dmarc_moderation_action. + + dmarc_moderation_action and from_is_list interact in the following way. + If the message is From: a domain to which dmarc_moderation_action applies + and if dmarc_moderation_action is other than Accept, + dmarc_moderation_action applies to that message. Otherwise the + from_is_list action applies. + + Also associated with dmarc_moderation_action are configuration settings + DMARC_RESOLVER_TIMEOUT and DMARC_RESOLVER_LIFETIME. These are described + in more detail in Defaults.py. There are also new vette log entries + written when dmarc_moderation_action is found to apply to a post. + + i18n + + - Added missing <mm-digest-question-start> tag to French listinfo template. + (LP: #1275964) + + Bug Fixes and other patches + + - Removed HTML tags from the title of a couple of rmlist.py pages because + browsers don't render tags in the title. (LP: #265848) + + - Most Mailman generated notices to list owners and moderators are now + sent as Precedence: list instead of bulk. (LP: #1313146) + + - The Reply-To: munging options weren't honored if there was no + from_is_list action. (LP: #1313010) + + - Changed from_is_list actions to insert the list address in Cc: if the + list is fully personalized. Otherwise, the list address is only in + From: and Reply-To: overrides it. (LP: #1312970) + + - Fixed the Munge From action to only Munge the From: and/or Reply-To: in + the outgoing message and not in archives, digests and messages sent via + the usenet gateway. (LP: #1311431) + + - Fixed a long standing issue in which a notice sent to a user whose + language is other than that of the list can cause subsequent things + which should be in the list's language to be in the user's language + instead. (LP: #1308655) + + - Fixed the admin Membership List so a search string if any is not lost + when visiting subsequent fragments of a chunked list. (LP: #1307454) + + - For from_is_list feature, use email address from original From: if + original From: has no display name and strip domain part from resultant + names that look like email addresses. (LP: #1304511) + + - Added the list name to the vette log "held message approved" entry. + (LP: 1295875) + + - Added the CGI module name to various "No such list" error log entries. + (LP: 1295875) + + - Modified contrib/mmdsr to report module name if present in "No such list + error log entries. + + - Fixed a NameError exception in cron/nightly_gzip when it tries to print + the usage message. (LP: #1291038) + + - Fixed a bug in ListAdmin._handlepost that would crash when trying to + preserve a held message for the site admin if HOLD_MESSAGES_AS_PICKLES + is False. (LP: #1282365) + + - The from_is_list header munging feature introduced in Mailman 2.1.16 is + no longer erroneously applied to Mailman generated notices. + (LP: #1279667) + + - Changed the message from the confirm CGI to not indicate approval is + required for an acceptance of an invitation. (LP: #1277744) + + - Fixed POSTFIX_STYLE_VIRTUAL_DOMAINS to be case-insensitiive. + (LP: #1267003) + + - Added recognition for another simple warning to bounce processing. + (LP: #1263247) + + - Fixed a few failing tests in tests/test_handlers.py. (LP: #1262950) + + - Fixed bin/arch to not create scrubbed attachments for messages skipped + when processing the --start= option. (LP: #1260883) + + - Fixed email address validation to do a bit better in obscure cases. + (LP: #1258703) + + - Fixed a bug which caused some authentication cookies to expire too soon + if AUTHENTICATION_COOKIE_LIFETIME is non-zero. (LP: #1257112) + + - Fixed a possible TypeError in bin/sync_members introduced in 2.1.17. + (LP: #1243343) + + Miscellaneous + + - Added to the contrib directory, a script from Alain Williams to count + posts in a list's archive. + +2.1.17 (23-Nov-2013) New Features + - Handling of posts gated from usenet to a list via the Mail <-> News + gateway is changed. Formerly, no list membership, moderation or + *_these_nonmembers checks were done. Now, if the sender of the usenet + post is a moderated member or a nonmember matching a *_these_nonmembers + filter, those checks will be done and actions applied. Nonmember posts + from senders not matching a *_these_nonmembers filter are still accepted + as before. (LP: #1252575) + + - There is a new mm_cfg.py setting ANONYMOUS_LIST_KEEP_HEADERS. Since it + is not possible to know which non-standard headers in a message might + reveal sender information, we now remove all headers from incoming posts + to anonymous lists except those which match regular expressions in this + list. The default setting keeps non X- headers except those known to + reveal sender information, Mailman added X- headers and x-Spam- headers. + See the description in Defaults.py for more information. (LP: #1246039) + + i18n + + - The Japanese message catalog has been updated by SATOH Fumiyasu. + (LP: #1248855) + + Bug Fixes and other patches + + - Added a reopen command to the sample init.d script in misc/mailman.in. + (LP: #1251917) + + - Fixed a misspelling in Tagger.py causing an "unexpected keyword argument + 'Delete'" exception. (LP: #1251495) + + - Fixed contrib/qmail-to-mailman.py to work with a user other than + 'mailman' and to recognize more listname-* addresses. (LP: #412293) + + - Fixed a possible UnicodeDecodeError in bin/sync_members. (LP: #1243343) + + - Fixed Makefile to not include $DESTDIR in paths compiled into .pyc + files for traceback purposes. (LP: #1241770) + +2.1.16 (16-Oct-2013) + + New Features + + - There is a new list attribute from_is_list to either rewrite the From: + header of posts replacing the posters address with that of the list or + wrap the message in an outer message From: the list for compatability + with DMARC and or ADSP. There is a new mm_cfg.py setting + DEFAULT_FROM_IS_LIST to control the default for new lists, and the + existing REMOVE_DKIM_HEADERS setting has been extended to allow removing + those headers only for certain from_is_list lists. This feature must + be enabled by setting ALLOW_FROM_IS_LIST to Yes in mm_cfg.py. See the + description of these settings in Defaults.py for more detail. This + feature is experimental in 2.1.16, and it is subject to change or to + become just one of the two methods in a subsequent release. People + interested in this feature are encouraged to try it and report their + experiences to the mailman-users@python.org list. + + - There is a new DISPLAY_HELD_SUMMARY_SORT_BUTTONS setting which if set + in mm_cfg.py will display a set of radio buttons in the admindb held + message summary to select how the held messages are sorted and grouped + for display. The exact setting determines the default grouping and + sorting. See the description in Defaults.py for details. + + - Setting digest_size_threshhold to zero now means no digests will be + sent based on size instead of a digest being sent with every post. + (LP: #558274) + - There is a new mm_cfg.py setting SUBSCRIBE_FORM_SECRET which will put a dynamically generated, hidden hash in the listinfo subscribe form and check it upon submission. Setting this will prevent automated processes @@ -17,43 +893,110 @@ Here is a history of user visible changes to Mailman. submitted no later than FORM_LIFETIME nor no earlier than SUBSCRIBE_FORM_MIN_TIME after retrieval. Note that enabling this will break any static subscribe forms on your site. See the description in - Defaults.py for more info. (LP: 1082746) + Defaults.py for more info. (LP: #1082746) - add_members now has an option to add members with mail delivery disabled - by admin. (LP: 1070574) + by admin. (LP: #1070574) - IncomingRunner now logs rejected messages to the vette log. - (LP: 1068837) + (LP: #1068837) - The name of the mailmanctl master lock file is now congigurable via the - mm_cfg.py setting MASTER_LOCK_FILE. (LP: 1082308) + mm_cfg.py setting MASTER_LOCK_FILE. (LP: #1082308) - list_lists now has an option to list only lists with public archives. - (LP: 1082711) + (LP: #1082711) Contributed programs + - A new import_majordomo_into_mailman.pl script has been contributed by + Geoff Mayes. (LP: #1129742) + - A new "sitemap" bash script has been contributed by Tomasz Chmielewski <mangoo@wpkg.org> to generate a sitemap.xml file of an installation's public archives for submission to search engines. i18n + - The Danish translation has been updated thanks to Tom Christensen. + + - Fixed a string in the Czech message catalog. (LP: #1234567) + + - A Farsi (Persian) translation has been added thanks to Javad Hoseini and + Mahyar Moghimi. + + - Fixed several misspelled or garbled string replacements in the Spanish + message catalog. (LP: #1160138) + + - pt_BR message catalog has two new and an updated message per Hugo Koji + Kobayashi. (LP: #1138578) + - German message catalog has been updated per Ralf Hildebrandt. - Corrected typo in templates/it/private.html. Bug Fixes and other patches + - Fixed a crash in SpamDetect.py which caused messages with unparseable + RFC 2047 encoded headers to be shunted. (LP: #1235101) + + - Fixed cron/disabled to send a fresh cookie when notifying disabled + members. (LP: #1203200) + + - Added "message_id" to the interpolation dictionary for the Article.html + template. (LP: #725498) + + - Changed the admin GUI to report only the bad entries in a list of email + addresses if any are bad. (LP: #558253) + + - Added logging for template errors in HyperArch.py. (LP: #558254) + + - Added more explanation to the bad owner address message from + bin/newlist. (LP: #1200763) + + - Fixed a bug causing the admin web interface to fail CSRF checking if + the list name contains a '+' character. (LP: #1190802) + + - Fixed bin/mailmanctl -s to not remove the master lock if it can't be + determined to be truly stale. (LP: #1189558) + + - It is no longer possible to add 'invalid' addresses to the ban_list + and the *_these_nonmembers filters from the check boxes on the admindb + interface. (LP: #1187201) + + - Backported recognition for mail.ru DSNs and minor bug fixes from + lp:flufl.bounce. (LP: #1074592, LP: #1079249 and #1079254) + + - Defended against buggy web servers that don't include an empty + QUERY_STRING in the CGI environment. (LP: #1160647) + + - The Switchboard.finish() method now logs the text of the exception when + it fails to unlink/preserve a .bak file. (LP: #1165589) + + - The pending (un)subscriptions waiting approval are now sorted by email + address in the admindb interface as intended. (LP: #1164160) + + - The subscribe log entry for a bin/add_members subscribe now identifies + bin/add_members as the source. (LP: #1161642) + + - Fixed a bug where the Subject: of the user notification of a + bin/remove_members unsubscribe was not in the user's language. + (LP: #1161445) + + - Fixed a bug where BounceRunner could create and leave behind zero length + bounce-events files. (LP: #1161610) + + - Added recognition for another Yahoo bounce format. (LP: #1157961) + - Changed configure's method for getting Python's include directory from distutils.sysconfig.get_config_var('CONFINCLUDEPY') to - distutils.sysconfig.get_python_inc(). (LP: 1098162) + distutils.sysconfig.get_python_inc(). (LP: #1098162) - - Added an Auto-Generated: header to password reminders. (LP: 558240) + - Added an Auto-Generated: header to password reminders. (LP: #558240) - Fixed a bug where non-ascii characters in the real name in a subscription request could throw a UnicodeEncodeError upon subscription approval and - perhaps in other situations too. (LP: 1047100) + perhaps in other situations too. (LP: #1047100) - The query fragments send_unsub_notifications_to_list_owner and send_unsub_ack_to_this_batch will now assume default values if not set |