#45 mailman: cope with mails containing broken unicode
Merged 3 years ago by zlopez. Opened 3 years ago by nphilipp.
fedora-infra/ nphilipp/ansible master--infra8824  into  master

@@ -0,0 +1,19 @@ 

+ --- a/src/mailman/email/message.py

+ +++ b/src/mailman/email/message.py

+ @@ -47,6 +47,16 @@ class Message(email.message.Message):

+      def __setstate__(self, values):

+          self.__dict__ = values

+ 

+ +    def as_string(self):

+ +        # Work around for https://bugs.python.org/issue27321 and

+ +        # https://bugs.python.org/issue32330.

+ +        try:

+ +            value = email.message.Message.as_string(self)

+ +        except (KeyError, UnicodeEncodeError):

+ +            value = email.message.Message.as_bytes(self).decode(

+ +                'ascii', 'replace')

+ +        return value

+ +

+      @property

+      def sender(self):

+          """The address considered to be the author of the email.

@@ -155,6 +155,16 @@ 

    - packages

    - mailman

  

+ ## install hotfix for e-mails containing broken unicode

+ ## see issue https://pagure.io/fedora-infrastructure/issue/8824

+ ## see upstream merge request https://gitlab.com/mailman/mailman/-/merge_requests/350

+ - name: hotfix - let mailman cope with e-mails containing broken unicode

+   patch: src=files/hotfix/mailman3/mailman3-broken-unicode-emails.patch dest=/usr/lib/python3.4/site-packages/mailman/email/message.py

+   when: env == "staging"

+   tags:

+   - mailman

+   - hotfix

+   - patches

  

  #

  # Initialize mailman (must be done after settings up the DBs)

See https://pagure.io/fedora-infrastructure/issue/8824 for details. This
enables the hotfix on staging only to enable testing.

Signed-off-by: Nils Philippsen nils@redhat.com

LGTM, I see that this is already fixed upstream https://gitlab.com/mailman/mailman/-/blob/master/src/mailman/email/message.py

Shouldn't it be better to package a new version of mailman?

@zlopez We're working on it. :sweat_smile:

Currently, our mailman machines are RHEL7 and use mailman/hyperkitty packages from a fedorapeople repo for an old Python 3.4 stack (see here). We're trying to make this more official in #8455.

Ok, so this is a quick fix for now.

Pull-Request has been merged by zlopez

3 years ago