commit c14dab286f3fb9c6cc6fcc7f3600ff1dae326aead01a2f6df8bfe227c49e6868 Author: Markéta Machová Date: Tue Sep 24 09:00:26 2024 +0000 - Update to version 1.3.12 * https://gitlab.com/mailman/hyperkitty/-/blob/1.3.12/doc/news.rst or packaged news.rst - Removed gl-mr635-empty_attachment.patch OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:mailman/python-HyperKitty?expand=0&rev=90 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/README.SUSE.md b/README.SUSE.md new file mode 100644 index 0000000..c548bce --- /dev/null +++ b/README.SUSE.md @@ -0,0 +1,114 @@ +HyperKitty +========== + +## Configuration + +The web application is configured in `/etc/hyperkitty/settings_local.py` which +is included by the default configuration in +/srv/www/webapps/mailman/hyperkitty/settings.py. + +1. Optional: Change the default secret for the application: + We already created one, but feel free to replace with a stronger + alternative. + + `/etc/hyperkitty/settings_local.py`: + + SECRET_KEY = 'something-very-secret' + +2. Make sure to disable debugging when running in production: + + `/etc/hyperkitty/settings_local.py`: + + DEBUG = False + +3. The valid hosts or domain names for the application need to be defined: + + `/etc/hyperkitty/settings_local.py`: + + ALLOWED_HOSTS = [ + 'localhost', + 'lists.example.com' + ] + +4. Add a valid email configuration + + `/etc/hyperkitty/settings_local.py`: + + EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' + EMAIL_HOST = 'localhost' + EMAIL_PORT = 25 + EMAIL_HOST_USER = + EMAIL_HOST_PASSWORD = + +5. To connect with a running mailman instance's REST API, configuration options + have to be added to hyperkitty's configuration. + + `/etc/hyperkitty/settings_local.py`: + + MAILMAN_REST_API_URL = 'http://localhost:8001' + MAILMAN_REST_API_USER = 'rest_admin' + MAILMAN_REST_API_PASS = 'rest_admin_password' + +6. To configure the archive integration with a mailman instance first setup the + integration with hyperkitty on mailman's side and then configure hyperkitty + to accept those connections: + + `/etc/hyperkitty/settings_local.py`: + + MAILMAN_ARCHIVER_KEY = 'SecretArchiverAPIKey' + MAILMAN_ARCHIVER_FROM = ('127.0.0.1', '::1') + +7. Optional: Configure postgres or another database (default: sqlite3) + +8. Create and setup the database + + hyperkitty-manage migrate + +9. Populate the database with default data (when setting up for the first time): + + hyperkitty-manage loaddata first_start + +10. Create admin user + + hyperkitty-manage createsuperuser + +11. Enable HyperKitty async tasks runner + + systemctl enable --now hyperkitty-qcluster.service + +12. Enable HyperKitty runjob timers + + systemctl enable hyperkitty-runjob-minutely.timer + systemctl enable hyperkitty-runjob-quarter-hourly.timer + systemctl enable hyperkitty-runjob-hourly.timer + systemctl enable hyperkitty-runjob-daily.timer + systemctl enable hyperkitty-runjob-weekly.timer + systemctl enable hyperkitty-runjob-monthly.timer + systemctl enable hyperkitty-runjob-yearly.timer + +## Apache2 + +To configure hyperkitty with Apache and uwsgi, just add the follwing lines to a vhost: + + ProxyPassMatch ^/static ! + ProxyPass / unix:/run/uwsgi/uwsgi-hyperkitty.sock|uwsgi://localhost/ + + Require all granted + + +## Xapian search backend + +Hyperkitty can make use of a Xapian based search backend. + +`/etc/hyperkitty/settings_local.py`: + + HAYSTACK_CONNECTIONS = { + 'default': { + 'ENGINE': 'xapian_backend.XapianEngine', + 'PATH': "/var/lib/hyperkitty/data/xapian_index", + }, + } + +Make sure to create the search index for all lists afterwards. + + hyperkitty-manage update_index diff --git a/gl-mr300-add-opengraph-metadata.patch b/gl-mr300-add-opengraph-metadata.patch new file mode 100644 index 0000000..661fcec --- /dev/null +++ b/gl-mr300-add-opengraph-metadata.patch @@ -0,0 +1,302 @@ +# Rewritten from upstream .patch to avoid fuzzing +Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/base.html +=================================================================== +--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/base.html ++++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/base.html +@@ -24,6 +24,11 @@ + {% block additional_stylesheets %} {% endblock %} + {% block head_feed %}{% endblock %} + {% include 'hyperkitty/headers.html' %} ++ ++ {% block additional_og %}{% endblock %} ++ ++ ++ + + + +Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/errors/notimplemented.html +=================================================================== +--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/errors/notimplemented.html ++++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/errors/notimplemented.html +@@ -7,6 +7,11 @@ + {% trans "Not implemented yet" %} - {{ block.super }} + {% endblock %} + ++{% block additional_og %} ++ ++ ++{% endblock %} ++ + {% block content %} + +

{% trans "Not implemented" %}

+Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/errors/private.html +=================================================================== +--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/errors/private.html ++++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/errors/private.html +@@ -7,6 +7,11 @@ + {% trans "Error: private list" %} - {{ mlist.display_name|default:mlist.name }} - {{ block.super }} + {% endblock %} + ++{% block additional_og %} ++ ++ ++{% endblock %} ++ + {% block content %} + +
+Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/index.html +=================================================================== +--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/index.html ++++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/index.html +@@ -9,6 +9,11 @@ + {% trans 'Available lists' %} - {{ block.super }} + {% endblock %} + ++{% block additional_og %} ++ ++ ++{% endblock %} ++ + {% block content %} + +
+Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/message.html +=================================================================== +--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/message.html ++++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/message.html +@@ -1,12 +1,29 @@ + {% extends "hyperkitty/base.html" %} + {% load i18n %} + {% load hk_generic %} ++{% load gravatar %} + + + {% block head_title %} + {{ message.subject }} - {{ mlist.display_name|default:mlist.name }} - {{ block.super }} + {% endblock %} + ++{% block additional_og %} ++ ++ ++ ++ ++ ++ ++ ++{% for tag in message.thread.tags.distinct %} ++ ++{% endfor %} ++ ++ ++ ++{% endblock %} ++ + {% block content %} + +
+Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/message_new.html +=================================================================== +--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/message_new.html ++++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/message_new.html +@@ -8,6 +8,11 @@ + {% trans "Create a new thread" %} - {{ mlist.display_name|default:mlist.name }} - {{ block.super }} + {% endblock %} + ++{% block additional_og %} ++ ++ ++{% endblock %} ++ + {% block content %} + +
+Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/overview.html +=================================================================== +--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/overview.html ++++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/overview.html +@@ -4,6 +4,13 @@ + {% load static %} + {% load cache %} + ++{% block additional_og %} ++ ++ ++ ++ ++{% endblock %} ++ + {% block head_title %} + {{ mlist.display_name|default:mlist.name }} - {{ block.super }} + {% endblock %} +Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/reattach.html +=================================================================== +--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/reattach.html ++++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/reattach.html +@@ -9,6 +9,11 @@ + {% trans "Reattach a thread" %} - {{ mlist.display_name|default:mlist.name }} - {{ block.super }} + {% endblock %} + ++{% block additional_og %} ++ ++ ++{% endblock %} ++ + {% block content %} + +
+Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/search_results.html +=================================================================== +--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/search_results.html ++++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/search_results.html +@@ -8,6 +8,11 @@ + {% trans "Search results for" %} "{{ query }}"{% if mlist %} - {{ mlist.display_name|default:mlist.name }} {% endif %} - {{ block.super }} + {% endblock %} + ++{% block additional_og %} ++ ++ ++{% endblock %} ++ + {% block content %} + +
+Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/thread.html +=================================================================== +--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/thread.html ++++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/thread.html +@@ -3,12 +3,29 @@ + {% load i18n %} + {% load hk_generic %} + {% load static %} ++{% load gravatar %} + + + {% block head_title %} + {{ subject }} - {{ mlist.display_name|default:mlist.name }} - {{ block.super }} + {% endblock %} + ++{% block additional_og %} ++ ++ ++ ++ ++ ++ ++ ++{% for tag in thread.tags.distinct %} ++ ++{% endfor %} ++ ++ ++ ++{% endblock %} ++ + {% block content %} + +
+Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/thread_list.html +=================================================================== +--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/thread_list.html ++++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/thread_list.html +@@ -13,6 +13,13 @@ + + {% endblock %} + ++{% block additional_og %} ++ ++ ++ ++ ++{% endblock %} ++ + {% block content %} + +
+Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/user_posts.html +=================================================================== +--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/user_posts.html ++++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/user_posts.html +@@ -8,6 +8,11 @@ + {% trans "Messages by" %} {{ fullname }}{% if mlist %} - {{ mlist.display_name|default:mlist.name }} {% endif %} - {{ block.super }} + {% endblock %} + ++{% block additional_og %} ++ ++ ++{% endblock %} ++ + {% block content %} + +
+Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/user_profile/base.html +=================================================================== +--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/user_profile/base.html ++++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/user_profile/base.html +@@ -5,6 +5,11 @@ + {% trans "User posting activity" %} - {{ block.super }} + {% endblock %} + ++{% block additional_og %} ++ ++ ++{% endblock %} ++ + {% block content %} + +