From aeffbb968be477e7927d7aa652c9539fd7369fe683209c28ca03cf2b79166ab2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mark=C3=A9ta=20Machov=C3=A1?= Date: Thu, 2 Nov 2023 12:32:25 +0000 Subject: [PATCH] Accepting request 1122434 from home:gladiac:mailman - Update to version 1.3.8 * See https://gitlab.com/mailman/hyperkitty/-/blob/v1.3.8/doc/news.rst or the file news.ret included in this package - Removed fix-elasticsearch8.patch - Updated mistune3.patch - Add missing pre-require for useradd/groupadd OBS-URL: https://build.opensuse.org/request/show/1122434 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:mailman/python-HyperKitty?expand=0&rev=70 --- HyperKitty-1.3.7.tar.gz | 3 - HyperKitty-1.3.8.tar.gz | 3 + fix-elasticsearch8.patch | 34 --- mistune3.patch | 498 ++++++++++++++++++++++++++++++-------- python-HyperKitty.changes | 9 + python-HyperKitty.spec | 4 +- 6 files changed, 407 insertions(+), 144 deletions(-) delete mode 100644 HyperKitty-1.3.7.tar.gz create mode 100644 HyperKitty-1.3.8.tar.gz delete mode 100644 fix-elasticsearch8.patch diff --git a/HyperKitty-1.3.7.tar.gz b/HyperKitty-1.3.7.tar.gz deleted file mode 100644 index 0a3d82f..0000000 --- a/HyperKitty-1.3.7.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4d74aca3ec30546741ca62339ece72392e298f511d0a89e69bcedbfcdc8102cb -size 2691781 diff --git a/HyperKitty-1.3.8.tar.gz b/HyperKitty-1.3.8.tar.gz new file mode 100644 index 0000000..c578a74 --- /dev/null +++ b/HyperKitty-1.3.8.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8fffccadba2cfe0d4119e9c746639ee46bc0cdae67bbf99c84081d2d0bbd87b8 +size 2556166 diff --git a/fix-elasticsearch8.patch b/fix-elasticsearch8.patch deleted file mode 100644 index 3b896da..0000000 --- a/fix-elasticsearch8.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 0e86f9cc40bf05cb819087f1fb0ee56f43968e1b Mon Sep 17 00:00:00 2001 -From: Daniel Garcia Moreno -Date: Thu, 6 Oct 2022 14:01:54 +0200 -Subject: [PATCH] Make it compatible with elasticsearch 8.0.0 - ---- - hyperkitty/tests/views/test_search.py | 10 +++++++++- - tox.ini | 2 +- - 2 files changed, 10 insertions(+), 2 deletions(-) - -diff --git a/hyperkitty/tests/views/test_search.py b/hyperkitty/tests/views/test_search.py -index ad0e9632..cad76fe6 100644 ---- a/hyperkitty/tests/views/test_search.py -+++ b/hyperkitty/tests/views/test_search.py -@@ -211,10 +211,18 @@ class SearchViewsTestCase(SearchEnabledTestCase): - - # For elasticsearch backend - from elasticsearch import RequestError -+ from elasticsearch import VERSION -+ mayor, _minor, _p = VERSION -+ -+ search_error = "dummy parsing failure" -+ if mayor > 7: -+ class ElasticError: -+ status = search_error -+ search_error = ElasticError - - class CrashingIterator(list): - def __len__(self): -- raise RequestError(400, "dummy parsing failure", {}) -+ raise RequestError(400, search_error, {}) - query = Mock() - - with self.settings(HAYSTACK_CONNECTIONS={ diff --git a/mistune3.patch b/mistune3.patch index 61b64e8..5f741b0 100644 --- a/mistune3.patch +++ b/mistune3.patch @@ -10,17 +10,17 @@ changes so we can work with newer version. This also strictly works on mistune>=3.0 since the older API won't work for us anymore. --- - doc/news.rst | 1 + hyperkitty/lib/haystack.py | 57 ++++++++++++++++++++++++++++++++++++++ hyperkitty/lib/renderer.py | 44 +++++++++++++++-------------- setup.py | 2 +- 4 files changed, 82 insertions(+), 22 deletions(-) create mode 100644 hyperkitty/lib/haystack.py -Index: HyperKitty-1.3.7/hyperkitty/lib/haystack.py -=================================================================== +diff --git a/hyperkitty/lib/haystack.py b/hyperkitty/lib/haystack.py +new file mode 100644 +index 00000000..8dbe64a7 --- /dev/null -+++ HyperKitty-1.3.7/hyperkitty/lib/haystack.py ++++ b/hyperkitty/lib/haystack.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# @@ -80,67 +80,50 @@ Index: HyperKitty-1.3.7/hyperkitty/lib/haystack.py + backend = SqliteSearchBackend + query = SqliteSearchQuery \ No newline at end of file -Index: HyperKitty-1.3.7/hyperkitty/lib/renderer.py -=================================================================== ---- HyperKitty-1.3.7.orig/hyperkitty/lib/renderer.py -+++ HyperKitty-1.3.7/hyperkitty/lib/renderer.py -@@ -3,8 +3,8 @@ import re +diff --git a/hyperkitty/lib/renderer.py b/hyperkitty/lib/renderer.py +index cbb83b9a..2db2aee6 100644 +--- a/hyperkitty/lib/renderer.py ++++ b/hyperkitty/lib/renderer.py +@@ -3,8 +3,9 @@ import re from django.conf import settings import mistune -from mistune.plugins.extra import plugin_url -from mistune.util import escape_html, escape_url +from mistune.plugins.url import url -+from mistune.util import safe_entity ++from mistune.util import escape as escape_html ++from mistune.util import escape_url class MyRenderer(mistune.HTMLRenderer): -@@ -28,11 +28,11 @@ class MyRenderer(mistune.HTMLRenderer): - f'' - f'
{text}
') - -- def emphasis(self, marker, text): -+ def emphasis(self, text, marker): - """Emphasis with marker included.""" - return super().emphasis(marker + text + marker) - -- def strong(self, marker, text): -+ def strong(self, text, marker): - """Strong with marker included.""" - return super().strong(marker + text + marker) - -@@ -42,7 +42,7 @@ class MyRenderer(mistune.HTMLRenderer): +@@ -42,7 +43,7 @@ class MyRenderer(mistune.HTMLRenderer): return '![{alt}]({src} {title})'.format( src=src, title=title, alt=alt) - def image(self, src, alt_text, title): -+ def image(self, alt, url, title=None): ++ def image(self, alt, src, title): """Render image if configured to do so. HYPERKITTY_RENDER_INLINE_IMAGE configuration allows for -@@ -50,25 +50,28 @@ class MyRenderer(mistune.HTMLRenderer): +@@ -50,10 +51,10 @@ class MyRenderer(mistune.HTMLRenderer): default since embeded images can cause problems. """ if getattr(settings, 'HYPERKITTY_RENDER_INLINE_IMAGE', False): - return super().image(src, alt_text, title, ) - return self._md_style_img(src, title, alt_text) -+ return super().image(alt, url, title) -+ return self._md_style_img(url, title, alt) ++ return super().image(src, alt, title, ) ++ return self._md_style_img(src, title, alt) - def link(self, link, text=None, title=None): -+ def link(self, text, url, title=None): ++ def link(self, text=None, url=None, title=None): """URL link renderer that truncates the length of the URL. This only does it for the URLs that are not hyperlinks by just literal - URLs (text=None) so text is same as URL. +@@ -61,14 +62,14 @@ class MyRenderer(mistune.HTMLRenderer): It also adds target=“_blank” so that the URLs open in a new tab. """ -- if text is None: + if text is None: - text = link -+ # text can be none of same as url in case of autolink parsing. This -+ # will truncate the length of the URL in both cases but preserve -+ # the actual URL destination in the hyperlink. -+ if text is None or text == url: + text = url if len(text) > 76: - text = link[:76] + '...' @@ -149,60 +132,22 @@ Index: HyperKitty-1.3.7/hyperkitty/lib/renderer.py - s = '' + (text or link) + '' -+ s += ' title="' + safe_entity(title) + '"' + return s + '>' + (text or url) + '' class InlineParser(mistune.inline_parser.InlineParser): -@@ -79,27 +82,13 @@ class InlineParser(mistune.inline_parser - ‘emphasis’ or ‘strong’ node. - """ - -- def tokenize_emphasis(self, m, state): -- marker = m.group(1) -- text = m.group(2) -- if len(marker) == 1: -- return 'emphasis', marker, self.render(text, state) -- return 'strong', marker, self.render(text, state) -- -- # This is an override for a fix that should be in mistune. -- # https://github.com/lepture/mistune/pull/276 -- def parse_auto_link(self, m, state): -- if state.get('_in_link'): -- return 'text', m.group(0) -- -- text = m.group(1) -- if ('@' in text and -- not text.lower().startswith('mailto:') and -- not text.lower().startswith('http')): -- link = 'mailto:' + text -- else: -- link = text -- return 'link', escape_url(link), text -+ def parse_emphasis(self, m, state): -+ end_pos = super().parse_emphasis(m, state) -+ last_token = state.tokens[-1].copy() -+ marker = m.group(0) -+ last_token['attrs'] = {'marker': marker} -+ state.tokens[-1] = last_token -+ return end_pos - - - def remove_header_rules(rules): -@@ -112,8 +101,8 @@ def remove_header_rules(rules): - +@@ -113,7 +114,7 @@ def remove_header_rules(rules): class BlockParser(mistune.block_parser.BlockParser): """A copy of Mistune's block parser with header parsing rules removed.""" -- RULE_NAMES = remove_header_rules( + RULE_NAMES = remove_header_rules( - mistune.block_parser.BlockParser.RULE_NAMES) -+ DEFAULT_RULES = remove_header_rules( + mistune.block_parser.BlockParser.DEFAULT_RULES) - # Signature Plugin looks for signature pattern in email content and converts it -@@ -141,10 +130,10 @@ def plugin_signature(md): + OUTLOOK_REPLY_PATTERN = re.compile( +@@ -163,10 +164,10 @@ def plugin_signature(md): It only provides an HTML renderer because that is the only one needed. """ @@ -216,7 +161,7 @@ Index: HyperKitty-1.3.7/hyperkitty/lib/renderer.py md.renderer.register('signature', render_html_signature) -@@ -189,18 +178,18 @@ def plugin_pgp_signature(md): +@@ -211,22 +212,23 @@ def plugin_pgp_signature(md): It parses BEGIN PGP SIGNATURE and END PGP SIGNATURE and collapses content in between them. """ @@ -235,12 +180,17 @@ Index: HyperKitty-1.3.7/hyperkitty/lib/renderer.py - inline=InlineParser(renderer, hard_wrap=False), + inline=InlineParser(hard_wrap=False), block=BlockParser(), -- plugins=[plugin_pgp_signature, plugin_signature, plugin_url]) -+ plugins=[plugin_pgp_signature, plugin_signature, url]) ++ + plugins=[ + plugin_pgp_signature, + plugin_signature, + plugin_outlook_reply, +- plugin_url ++ url + ]) - # The only difference between the markdown and this renderer is -@@ -208,10 +197,10 @@ markdown_renderer = mistune.Markdown( +@@ -235,10 +237,10 @@ markdown_renderer = mistune.Markdown( # rules that results in a regularly formatted email. text_renderer = mistune.Markdown( renderer=renderer, @@ -253,10 +203,10 @@ Index: HyperKitty-1.3.7/hyperkitty/lib/renderer.py - plugin_url, + url, ]) -Index: HyperKitty-1.3.7/setup.py -=================================================================== ---- HyperKitty-1.3.7.orig/setup.py -+++ HyperKitty-1.3.7/setup.py +diff --git a/setup.py b/setup.py +index 2d8da168..d8c2d2fb 100755 +--- a/setup.py ++++ b/setup.py @@ -45,7 +45,7 @@ REQUIRES = [ "pytz>=2012", "django-compressor>=1.3", @@ -266,11 +216,293 @@ Index: HyperKitty-1.3.7/setup.py "python-dateutil >= 2.0", "networkx>=2.0", "django-haystack>=2.8.0", -Index: HyperKitty-1.3.7/hyperkitty/tests/test_templatetags.py -=================================================================== ---- HyperKitty-1.3.7.orig/hyperkitty/tests/test_templatetags.py -+++ HyperKitty-1.3.7/hyperkitty/tests/test_templatetags.py -@@ -147,15 +147,13 @@ class TestGravatar(TestCase): +-- +GitLab + + +From 2312689ea67f631c2aae54013a3e6a57be7ef36d Mon Sep 17 00:00:00 2001 +From: Abhilash Raj +Date: Wed, 5 Jul 2023 10:20:04 +0530 +Subject: [PATCH 2/6] Remove the hack for urls with @ since it is fixed + upstream + +--- + hyperkitty/lib/renderer.py | 15 --------------- + 1 file changed, 15 deletions(-) + +diff --git a/hyperkitty/lib/renderer.py b/hyperkitty/lib/renderer.py +index 2db2aee6..6a86cc4c 100644 +--- a/hyperkitty/lib/renderer.py ++++ b/hyperkitty/lib/renderer.py +@@ -87,21 +87,6 @@ class InlineParser(mistune.inline_parser.InlineParser): + return 'emphasis', marker, self.render(text, state) + return 'strong', marker, self.render(text, state) + +- # This is an override for a fix that should be in mistune. +- # https://github.com/lepture/mistune/pull/276 +- def parse_auto_link(self, m, state): +- if state.get('_in_link'): +- return 'text', m.group(0) +- +- text = m.group(1) +- if ('@' in text and +- not text.lower().startswith('mailto:') and +- not text.lower().startswith('http')): +- link = 'mailto:' + text +- else: +- link = text +- return 'link', escape_url(link), text +- + + def remove_header_rules(rules): + rules = list(rules) +-- +GitLab + + +From 373dadee496c70ee0c6384ef2ad467919e5315cb Mon Sep 17 00:00:00 2001 +From: Abhilash Raj +Date: Wed, 5 Jul 2023 10:39:31 +0530 +Subject: [PATCH 3/6] QA checks + +--- + hyperkitty/lib/renderer.py | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/hyperkitty/lib/renderer.py b/hyperkitty/lib/renderer.py +index 6a86cc4c..b233dcad 100644 +--- a/hyperkitty/lib/renderer.py ++++ b/hyperkitty/lib/renderer.py +@@ -5,7 +5,6 @@ from django.conf import settings + import mistune + from mistune.plugins.url import url + from mistune.util import escape as escape_html +-from mistune.util import escape_url + + + class MyRenderer(mistune.HTMLRenderer): +-- +GitLab + + +From 481e81d32c2e5ff1c9516fe41512bcfd3cf2c208 Mon Sep 17 00:00:00 2001 +From: Abhilash Raj +Date: Wed, 5 Jul 2023 13:10:49 +0530 +Subject: [PATCH 4/6] Fixes for more mistune 3.x compat + +--- + hyperkitty/lib/renderer.py | 32 ++++++++++++++------------- + hyperkitty/tests/test_templatetags.py | 3 +++ + 2 files changed, 20 insertions(+), 15 deletions(-) + +diff --git a/hyperkitty/lib/renderer.py b/hyperkitty/lib/renderer.py +index b233dcad..346472d2 100644 +--- a/hyperkitty/lib/renderer.py ++++ b/hyperkitty/lib/renderer.py +@@ -5,6 +5,7 @@ from django.conf import settings + import mistune + from mistune.plugins.url import url + from mistune.util import escape as escape_html ++from mistune.util import safe_entity + + + class MyRenderer(mistune.HTMLRenderer): +@@ -24,15 +25,16 @@ class MyRenderer(mistune.HTMLRenderer): + quote-switched classed hyperlink that can collapse the next quote-text + using JS. + """ ++ print(text) + return ( + f'' + f'
{text}
') + +- def emphasis(self, marker, text): ++ def emphasis(self, text, marker): + """Emphasis with marker included.""" + return super().emphasis(marker + text + marker) + +- def strong(self, marker, text): ++ def strong(self, text, marker): + """Strong with marker included.""" + return super().strong(marker + text + marker) + +@@ -42,7 +44,7 @@ class MyRenderer(mistune.HTMLRenderer): + return '![{alt}]({src} {title})'.format( + src=src, title=title, alt=alt) + +- def image(self, alt, src, title): ++ def image(self, alt, url, title=None): + """Render image if configured to do so. + + HYPERKITTY_RENDER_INLINE_IMAGE configuration allows for +@@ -50,10 +52,10 @@ class MyRenderer(mistune.HTMLRenderer): + default since embeded images can cause problems. + """ + if getattr(settings, 'HYPERKITTY_RENDER_INLINE_IMAGE', False): +- return super().image(src, alt, title, ) +- return self._md_style_img(src, title, alt) ++ return super().image(alt, url, title) ++ return self._md_style_img(url, title, alt) + +- def link(self, text=None, url=None, title=None): ++ def link(self, text, url, title=None): + """URL link renderer that truncates the length of the URL. + + This only does it for the URLs that are not hyperlinks by just literal +@@ -67,7 +69,7 @@ class MyRenderer(mistune.HTMLRenderer): + + s = '' + (text or url) + '' + + +@@ -79,13 +81,13 @@ class InlineParser(mistune.inline_parser.InlineParser): + ‘emphasis’ or ‘strong’ node. + """ + +- def tokenize_emphasis(self, m, state): +- marker = m.group(1) +- text = m.group(2) +- if len(marker) == 1: +- return 'emphasis', marker, self.render(text, state) +- return 'strong', marker, self.render(text, state) +- ++ def parse_emphasis(self, m, state): ++ end_pos = super().parse_emphasis(m, state) ++ last_token = state.tokens[-1].copy() ++ marker = m.group(0) ++ last_token['attrs'] = {'marker': marker} ++ state.tokens[-1] = last_token ++ return end_pos + + def remove_header_rules(rules): + rules = list(rules) +@@ -97,7 +99,7 @@ def remove_header_rules(rules): + + class BlockParser(mistune.block_parser.BlockParser): + """A copy of Mistune's block parser with header parsing rules removed.""" +- RULE_NAMES = remove_header_rules( ++ DEFAULT_RULES = remove_header_rules( + mistune.block_parser.BlockParser.DEFAULT_RULES) + + +diff --git a/hyperkitty/tests/test_templatetags.py b/hyperkitty/tests/test_templatetags.py +index 79372d84..b1d83177 100644 +--- a/hyperkitty/tests/test_templatetags.py ++++ b/hyperkitty/tests/test_templatetags.py +@@ -156,6 +156,7 @@ On Fri, 09.11.12 11:27, Someone wrote: + > This is the first quoted line + > On Fri 07.25.12, Aperson wrote: + >> This is the second quoted line. ++ + This is the response. + """ + expected = ( +@@ -167,6 +168,8 @@ This is the response. + '' + '

This is the response.

\n') + result = markdown_renderer(contents) ++ print('----------'*10) ++ print(result) + self.assertEqual(result.strip(), expected.strip()) + + def test_parse_heading_normal(self): +-- +GitLab + + +From b2d809b446402296b5e1b830a7f408a6e464210d Mon Sep 17 00:00:00 2001 +From: Abhilash Raj +Date: Wed, 12 Jul 2023 12:23:23 +0530 +Subject: [PATCH 5/6] Fix the outlook_reply_plugin for mixtune 3.x + +--- + hyperkitty/lib/renderer.py | 29 ++++++++++++++------------- + hyperkitty/tests/test_templatetags.py | 12 +++-------- + 2 files changed, 18 insertions(+), 23 deletions(-) + +diff --git a/hyperkitty/lib/renderer.py b/hyperkitty/lib/renderer.py +index 346472d2..ddb2a77d 100644 +--- a/hyperkitty/lib/renderer.py ++++ b/hyperkitty/lib/renderer.py +@@ -25,7 +25,6 @@ class MyRenderer(mistune.HTMLRenderer): + quote-switched classed hyperlink that can collapse the next quote-text + using JS. + """ +- print(text) + return ( + f'' + f'
{text}
') +@@ -62,7 +61,10 @@ class MyRenderer(mistune.HTMLRenderer): + URLs (text=None) so text is same as URL. + It also adds target=“_blank” so that the URLs open in a new tab. + """ +- if text is None: ++ # text can be none of same as url in case of autolink parsing. This ++ # will truncate the length of the URL in both cases but preserve ++ # the actual URL destination in the hyperlink. ++ if text is None or text == url: + text = url + if len(text) > 76: + text = url[:76] + '...' +@@ -103,26 +105,26 @@ class BlockParser(mistune.block_parser.BlockParser): + mistune.block_parser.BlockParser.DEFAULT_RULES) + + +-OUTLOOK_REPLY_PATTERN = re.compile( ++OUTLOOK_REPLY_PATTERN = ( + r'^-------- Original message --------\n' +- r'([\s\S]+)', # everything after newline. +- re.M ++ r'(?P[\s\S]+)' # everything after newline + ) + + + def parse_outlook_reply(block, m, state): + """Parser for outlook style replies.""" +- text = m.group(0) +- return { ++ text = m.group('reply_text') ++ reply_token = '-------- Original message --------\n' ++ state.append_token({ + 'type': 'block_quote', +- 'children': [{'type': 'paragraph', 'text': text}] +- } ++ 'children': [{'type': 'paragraph', 'text': reply_token + text}], ++ }) ++ return m.end() + 1 + + + def plugin_outlook_reply(md): +- md.block.register_rule( ++ md.block.register( + 'outlook_reply', OUTLOOK_REPLY_PATTERN, parse_outlook_reply) +- md.block.rules.insert(-1, 'outlook_reply') + + + # Signature Plugin looks for signature pattern in email content and converts it +@@ -209,12 +211,11 @@ markdown_renderer = mistune.Markdown( + renderer=renderer, + inline=InlineParser(hard_wrap=False), + block=BlockParser(), +- + plugins=[ ++ plugin_outlook_reply, + plugin_pgp_signature, + plugin_signature, +- plugin_outlook_reply, +- url ++ url, + ]) + + +diff --git a/hyperkitty/tests/test_templatetags.py b/hyperkitty/tests/test_templatetags.py +index b1d83177..f567388d 100644 +--- a/hyperkitty/tests/test_templatetags.py ++++ b/hyperkitty/tests/test_templatetags.py +@@ -147,9 +147,6 @@ class TestGravatar(TestCase): class TestDecorate(TestCase): @@ -280,14 +512,16 @@ Index: HyperKitty-1.3.7/hyperkitty/tests/test_templatetags.py def test_parse_quote(self): contents = """ On Fri, 09.11.12 11:27, Someone wrote: - > This is the first quoted line - > On Fri 07.25.12, Aperson wrote: - >> This is the second quoted line. -+ - This is the response. - """ - expected = ( -@@ -184,7 +182,7 @@ https://some.url/llasdfjaksdgfjsdfgkjasd +@@ -168,8 +165,6 @@ This is the response. + '' + '

This is the response.

\n') + result = markdown_renderer(contents) +- print('----------'*10) +- print(result) + self.assertEqual(result.strip(), expected.strip()) + + def test_parse_heading_normal(self): +@@ -187,7 +182,7 @@ https://some.url/llasdfjaksdgfjsdfgkjasdfbgksdfjgbsdfkgjbsdflkgjbsdflgksjdhfbgks result = markdown_renderer(contents) self.assertEqual( result.strip(), @@ -296,11 +530,67 @@ Index: HyperKitty-1.3.7/hyperkitty/tests/test_templatetags.py def test_autolink_small_url(self): # Test that autolink doesn't add ... to URLs that aren't truncated. -@@ -219,6 +217,7 @@ https://some.url/example - # This is another sample text. +@@ -241,6 +236,7 @@ Subject: Testing if the quoted reply works with Outlook style. + This is the original text *with* some __markup__. """ result = markdown_renderer(contents) + print(result) self.assertEqual( result.strip(), - '

# This is another sample text.

') + """

This is the replied text.

+@@ -250,9 +246,7 @@ From: A person <person(a)example.com> + Date: 6/26/23 16:23 (GMT-05:00) + To: mytestlist@example.com + Subject: Testing if the quoted reply works with Outlook style. +- +-This is the original text *with* some __markup__. +-

++This is the original text *with* some __markup__.

+ """) # noqa: E501 + + +-- +GitLab + + +From af17c334a2a35d672c9c732ed9a37bc780fdb64d Mon Sep 17 00:00:00 2001 +From: Abhilash Raj +Date: Wed, 12 Jul 2023 14:14:00 +0530 +Subject: [PATCH 6/6] qa fixes + +--- + hyperkitty/lib/renderer.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/hyperkitty/lib/renderer.py b/hyperkitty/lib/renderer.py +index ddb2a77d..7f1a3230 100644 +--- a/hyperkitty/lib/renderer.py ++++ b/hyperkitty/lib/renderer.py +@@ -4,7 +4,6 @@ from django.conf import settings + + import mistune + from mistune.plugins.url import url +-from mistune.util import escape as escape_html + from mistune.util import safe_entity + + +@@ -91,6 +90,7 @@ class InlineParser(mistune.inline_parser.InlineParser): + state.tokens[-1] = last_token + return end_pos + ++ + def remove_header_rules(rules): + rules = list(rules) + for rule in ('setex_header', 'axt_heading'): +@@ -107,7 +107,7 @@ class BlockParser(mistune.block_parser.BlockParser): + + OUTLOOK_REPLY_PATTERN = ( + r'^-------- Original message --------\n' +- r'(?P[\s\S]+)' # everything after newline ++ r'(?P[\s\S]+)' # everything after newline + ) + + +-- +GitLab + diff --git a/python-HyperKitty.changes b/python-HyperKitty.changes index 35e752c..3d96ece 100644 --- a/python-HyperKitty.changes +++ b/python-HyperKitty.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Thu Nov 2 09:27:37 UTC 2023 - Andreas Schneider + +- Update to version 1.3.8 + * See https://gitlab.com/mailman/hyperkitty/-/blob/v1.3.8/doc/news.rst + or the file news.ret included in this package +- Removed fix-elasticsearch8.patch +- Updated mistune3.patch + ------------------------------------------------------------------- Thu Oct 5 08:21:08 UTC 2023 - Markéta Machová diff --git a/python-HyperKitty.spec b/python-HyperKitty.spec index 01f3555..f1cd895 100644 --- a/python-HyperKitty.spec +++ b/python-HyperKitty.spec @@ -47,7 +47,7 @@ %endif Name: python-HyperKitty -Version: 1.3.7 +Version: 1.3.8 Release: 0 Summary: A web interface to access GNU Mailman v3 archives License: GPL-3.0-only @@ -68,8 +68,6 @@ Source30: README.SUSE.md # PATCH-FIX-OPENSUSE hyperkitty-settings.patch mcepl@suse.com # hard-code locations of configuration files Patch0: hyperkitty-settings.patch -# PATCH-FIX-UPSTREAM fix-elasticsearch8.patch gl#mailman/hyperkitty#468 -Patch1: fix-elasticsearch8.patch # PATCH-FIX-UPSTREAM mistune3.patch gl#mailman/hyperkitty#541 Patch2: mistune3.patch #