[arch-commits] Commit in hyperkitty/repos/community-any (15 files)

David Runge dvzrv at archlinux.org
Sat Nov 7 10:44:35 UTC 2020


    Date: Saturday, November 7, 2020 @ 10:44:35
  Author: dvzrv
Revision: 745645

archrelease: copy trunk to community-any

Added:
  hyperkitty/repos/community-any/PKGBUILD
    (from rev 745644, hyperkitty/trunk/PKGBUILD)
  hyperkitty/repos/community-any/hyperkitty-1.3.2-settings.patch
    (from rev 745644, hyperkitty/trunk/hyperkitty-1.3.2-settings.patch)
  hyperkitty/repos/community-any/hyperkitty-1.3.3-migration.patch
    (from rev 745644, hyperkitty/trunk/hyperkitty-1.3.3-migration.patch)
  hyperkitty/repos/community-any/hyperkitty-qcluster.service
    (from rev 745644, hyperkitty/trunk/hyperkitty-qcluster.service)
  hyperkitty/repos/community-any/hyperkitty.install
    (from rev 745644, hyperkitty/trunk/hyperkitty.install)
  hyperkitty/repos/community-any/hyperkitty.sysusers
    (from rev 745644, hyperkitty/trunk/hyperkitty.sysusers)
  hyperkitty/repos/community-any/hyperkitty.tmpfiles
    (from rev 745644, hyperkitty/trunk/hyperkitty.tmpfiles)
  hyperkitty/repos/community-any/hyperkitty.uwsgi
    (from rev 745644, hyperkitty/trunk/hyperkitty.uwsgi)
Deleted:
  hyperkitty/repos/community-any/PKGBUILD
  hyperkitty/repos/community-any/hyperkitty-1.3.2-settings.patch
  hyperkitty/repos/community-any/hyperkitty-qcluster.service
  hyperkitty/repos/community-any/hyperkitty.install
  hyperkitty/repos/community-any/hyperkitty.sysusers
  hyperkitty/repos/community-any/hyperkitty.tmpfiles
  hyperkitty/repos/community-any/hyperkitty.uwsgi

----------------------------------+
 PKGBUILD                         |  208 ++++++++++++++++++-------------------
 hyperkitty-1.3.2-settings.patch  |  144 +++++++++++++------------
 hyperkitty-1.3.3-migration.patch |  102 ++++++++++++++++++
 hyperkitty-qcluster.service      |   76 ++++++-------
 hyperkitty.install               |   20 +--
 hyperkitty.sysusers              |    2 
 hyperkitty.tmpfiles              |   14 +-
 hyperkitty.uwsgi                 |   50 ++++----
 8 files changed, 365 insertions(+), 251 deletions(-)

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2020-11-07 10:44:24 UTC (rev 745644)
+++ PKGBUILD	2020-11-07 10:44:35 UTC (rev 745645)
@@ -1,102 +0,0 @@
-# Maintainer: David Runge <dvzrv at archlinux.org>
-
-_name=HyperKitty
-pkgname=hyperkitty
-pkgver=1.3.3
-pkgrel=1
-pkgdesc="A web interface to access GNU Mailman v3 archives"
-arch=('any')
-url="https://gitlab.com/mailman/hyperkitty"
-license=('GPL3')
-depends=('python-dateutil' 'python-django' 'python-django-compressor'
-'python-django-extensions' 'python-django-gravatar' 'python-django-haystack'
-'python-django-mailman3' 'python-django-q' 'python-django-rest-framework'
-'python-flufl-lock' 'python-mailmanclient' 'python-networkx' 'python-pytz'
-'python-robot-detection' 'sassc')
-makedepends=('python-isort' 'python-setuptools')
-checkdepends=('python-beautifulsoup4' 'python-elasticsearch' 'python-mock'
-'python-pytest' 'python-whoosh')
-optdepends=('python-elasticsearch: for using elasticsearch as search backend'
-            'python-whoosh: for using whoosh as search backend'
-            'python-xapian-haystack: for using xapian as search backend'
-            'uwsgi-plugin-python: for running inside uwsgi'
-            'ruby-sassc: alternative to sassc')
-backup=("etc/uwsgi/${pkgname}.ini"
-        "etc/webapps/${pkgname}/settings_local.py")
-install="${pkgname}.install"
-source=("https://files.pythonhosted.org/packages/source/${_name::1}/${_name}/${_name}-${pkgver}.tar.gz"{,.asc}
-        "${pkgname}-1.3.2-settings.patch"
-        "${pkgname}-qcluster.service"
-        "${pkgname}.sysusers"
-        "${pkgname}.tmpfiles"
-        "${pkgname}.uwsgi")
-sha512sums=('4be4630bc0344c3e1633772978880fea996fbf2bb49b728c1d05ae13ab1df8c63b6b7b9b735df32eb2ae31798e76be537748e42c830a63aa01eeff0680f1dc76'
-            'SKIP'
-            'ec08a05402729bc23f9bff11be85630343f257d2bdb0531941d9f1475a3bb6b80d7083e2a0291517264247076b7639ecc427bdc5d5d37d9b8f094f6f484f6f96'
-            'a41c938082ceee555143ddb21c3a95835f9832b9aff423142d78d3e52f12500561f80e0ce43c67a4f190065c9d045945741ac71ab3307db1419c4dc0686db09a'
-            '3267427109b08b8c9336b187381ed14357a07370bdcdfc24da94555020ad0424c5bbebc09e131e981e0540c51db443ffe558209e1bca7c2a1b7b1f602ed0805b'
-            'e734e28fbaa5d7143a5c31161b2de0beed5435cb4fa48521ec0e82ed81b045f07bd4ca61f9da81c87dfe2cc5a5ecf79eb9ed4c255a31f97c69fe97bf6df37073'
-            '351f40a6bc1fd1735c883408f9941808e081206927a7c02467e03228243dd156378cac21f851b498702bd4f96fde8e4c80536dbcc6f3c384bf708bed4e988971')
-validpgpkeys=('541EA0448453394FF77A0ECC9D9B2BA061D0A67C') # Abhilash Raj <raj.abhilash1 at gmail.com>
-
-prepare() {
-  mv -v "${_name}-${pkgver}" "$pkgname-$pkgver"
-  cd "$pkgname-$pkgver"
-  # setting FHS compliant default paths
-  patch -Np1 -i "../${pkgname}-1.3.2-settings.patch"
-  touch settings_local.py
-}
-
-build() {
-  cd "$pkgname-$pkgver"
-  python setup.py build
-}
-
-check() {
-  cd "$pkgname-$pkgver"
-  export PYTHONPATH="build:${PYTHONPATH}"
-  python example_project/manage.py test --settings=hyperkitty.tests.settings_test hyperkitty
-}
-
-package() {
-  cd "$pkgname-$pkgver"
-  local python_stdlib_basepath="$(python -c "from sysconfig import get_path; print(get_path('stdlib'))")"
-  python setup.py install --skip-build \
-    --optimize=1 \
-    --prefix=/usr \
-    --root="${pkgdir}"
-  # remove example_project from top level site-packages:
-  # https://gitlab.com/mailman/hyperkitty/issues/279
-  rm -rfv "${pkgdir}/${python_stdlib_basepath}/site-packages/example_project"
-  # doc
-  install -vDm 644 README.rst -t "${pkgdir}/usr/share/doc/${pkgname}"
-  # django project
-  install -vDm 644 example_project/{__init__,manage,settings,urls,wsgi}.py \
-    -t "${pkgdir}/usr/share/webapps/${pkgname}"
-  # symlink locale and static dirs to state dir
-  ln -svf "/var/lib/${pkgname}/locale/" \
-    "${pkgdir}/usr/share/webapps/${pkgname}"
-  ln -svf "/var/lib/${pkgname}/static/" \
-    "${pkgdir}/usr/share/webapps/${pkgname}"
-  # state dir
-  install -vdm 750 "${pkgdir}/var/lib/${pkgname}/data"
-  install -vdm 755 "${pkgdir}/var/lib/${pkgname}/"{locale,static}
-  # log dir
-  install -vdm 750 "${pkgdir}/var/log/${pkgname}"
-  # config
-  install -vDm 640 settings_local.py \
-    -t "${pkgdir}/etc/webapps/${pkgname}"
-  ln -svf "/etc/webapps/${pkgname}/settings_local.py" \
-    "${pkgdir}/usr/share/webapps/${pkgname}/settings_local.py"
-  # systemd service
-  install -vDm 644 "../${pkgname}-qcluster.service" \
-    -t "${pkgdir}/usr/lib/systemd/system"
-  # uwsgi
-  install -vDm 644 "../${pkgname}.uwsgi" "${pkgdir}/etc/uwsgi/${pkgname}.ini"
-  # tmpfiles.d
-  install -vDm 644 "../${pkgname}.tmpfiles" \
-    "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
-  # sysusers.d
-  install -vDm 644 "../${pkgname}.sysusers" \
-    "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf"
-}

Copied: hyperkitty/repos/community-any/PKGBUILD (from rev 745644, hyperkitty/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2020-11-07 10:44:35 UTC (rev 745645)
@@ -0,0 +1,106 @@
+# Maintainer: David Runge <dvzrv at archlinux.org>
+
+_name=HyperKitty
+pkgname=hyperkitty
+pkgver=1.3.3
+pkgrel=2
+pkgdesc="A web interface to access GNU Mailman v3 archives"
+arch=('any')
+url="https://gitlab.com/mailman/hyperkitty"
+license=('GPL3')
+depends=('python-dateutil' 'python-django' 'python-django-compressor'
+'python-django-extensions' 'python-django-gravatar' 'python-django-haystack'
+'python-django-mailman3' 'python-django-q' 'python-django-rest-framework'
+'python-flufl-lock' 'python-mailmanclient' 'python-networkx' 'python-pytz'
+'python-robot-detection' 'sassc')
+makedepends=('python-isort' 'python-setuptools')
+checkdepends=('python-beautifulsoup4' 'python-elasticsearch' 'python-mock'
+'python-pytest' 'python-whoosh')
+optdepends=('python-elasticsearch: for using elasticsearch as search backend'
+            'python-whoosh: for using whoosh as search backend'
+            'python-xapian-haystack: for using xapian as search backend'
+            'uwsgi-plugin-python: for running inside uwsgi'
+            'ruby-sassc: alternative to sassc')
+backup=("etc/uwsgi/${pkgname}.ini"
+        "etc/webapps/${pkgname}/settings_local.py")
+install="${pkgname}.install"
+source=("https://files.pythonhosted.org/packages/source/${_name::1}/${_name}/${_name}-${pkgver}.tar.gz"{,.asc}
+        "${pkgname}-1.3.2-settings.patch"
+        "${pkgname}-1.3.3-migration.patch"
+        "${pkgname}-qcluster.service"
+        "${pkgname}.sysusers"
+        "${pkgname}.tmpfiles"
+        "${pkgname}.uwsgi")
+sha512sums=('4be4630bc0344c3e1633772978880fea996fbf2bb49b728c1d05ae13ab1df8c63b6b7b9b735df32eb2ae31798e76be537748e42c830a63aa01eeff0680f1dc76'
+            'SKIP'
+            'de2f0ddd4006b3647ab2b482f853070576817c8729d7473cc71c22566053a43e3eb4888ac7e0e014811d1498d81e2349695ab334be3548f5ab121b507c82cfc6'
+            'e8a90eaef5f98c0025af2dd98589e5059fd0073416c10fe17f810e8c7965a2fc724994dd2e56b034d948de032a98d41a4a3520721516dc2e573e324f4a74dff3'
+            'a41c938082ceee555143ddb21c3a95835f9832b9aff423142d78d3e52f12500561f80e0ce43c67a4f190065c9d045945741ac71ab3307db1419c4dc0686db09a'
+            '3267427109b08b8c9336b187381ed14357a07370bdcdfc24da94555020ad0424c5bbebc09e131e981e0540c51db443ffe558209e1bca7c2a1b7b1f602ed0805b'
+            'e734e28fbaa5d7143a5c31161b2de0beed5435cb4fa48521ec0e82ed81b045f07bd4ca61f9da81c87dfe2cc5a5ecf79eb9ed4c255a31f97c69fe97bf6df37073'
+            '351f40a6bc1fd1735c883408f9941808e081206927a7c02467e03228243dd156378cac21f851b498702bd4f96fde8e4c80536dbcc6f3c384bf708bed4e988971')
+validpgpkeys=('541EA0448453394FF77A0ECC9D9B2BA061D0A67C') # Abhilash Raj <raj.abhilash1 at gmail.com>
+
+prepare() {
+  mv -v "${_name}-${pkgver}" "$pkgname-$pkgver"
+  cd "$pkgname-$pkgver"
+  # setting FHS compliant default paths, remove debug options
+  patch -Np1 -i "../${pkgname}-1.3.2-settings.patch"
+  # fix migrations for python-django >= 3.1:
+  # https://gitlab.com/mailman/hyperkitty/-/issues/329
+  patch -Np1 -i "../${pkgname}-1.3.3-migration.patch"
+  touch settings_local.py
+}
+
+build() {
+  cd "$pkgname-$pkgver"
+  python setup.py build
+}
+
+check() {
+  cd "$pkgname-$pkgver"
+  export PYTHONPATH="build:${PYTHONPATH}"
+  python example_project/manage.py test --settings=hyperkitty.tests.settings_test hyperkitty
+}
+
+package() {
+  cd "$pkgname-$pkgver"
+  local python_stdlib_basepath="$(python -c "from sysconfig import get_path; print(get_path('stdlib'))")"
+  python setup.py install --skip-build \
+                          --optimize=1 \
+                          --root="${pkgdir}"
+  # remove example_project from top level site-packages:
+  # https://gitlab.com/mailman/hyperkitty/issues/279
+  rm -rfv "${pkgdir}/${python_stdlib_basepath}/site-packages/example_project"
+  # doc
+  install -vDm 644 README.rst -t "${pkgdir}/usr/share/doc/${pkgname}"
+  # django project
+  install -vDm 644 example_project/{__init__,manage,settings,urls,wsgi}.py \
+    -t "${pkgdir}/usr/share/webapps/${pkgname}"
+  # symlink locale and static dirs to state dir
+  ln -svf "/var/lib/${pkgname}/locale/" \
+    "${pkgdir}/usr/share/webapps/${pkgname}"
+  ln -svf "/var/lib/${pkgname}/static/" \
+    "${pkgdir}/usr/share/webapps/${pkgname}"
+  # state dir
+  install -vdm 750 "${pkgdir}/var/lib/${pkgname}/data"
+  install -vdm 755 "${pkgdir}/var/lib/${pkgname}/"{locale,static}
+  # log dir
+  install -vdm 750 "${pkgdir}/var/log/${pkgname}"
+  # config
+  install -vDm 640 settings_local.py \
+    -t "${pkgdir}/etc/webapps/${pkgname}"
+  ln -svf "/etc/webapps/${pkgname}/settings_local.py" \
+    "${pkgdir}/usr/share/webapps/${pkgname}/settings_local.py"
+  # systemd service
+  install -vDm 644 "../${pkgname}-qcluster.service" \
+    -t "${pkgdir}/usr/lib/systemd/system"
+  # uwsgi
+  install -vDm 644 "../${pkgname}.uwsgi" "${pkgdir}/etc/uwsgi/${pkgname}.ini"
+  # tmpfiles.d
+  install -vDm 644 "../${pkgname}.tmpfiles" \
+    "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
+  # sysusers.d
+  install -vDm 644 "../${pkgname}.sysusers" \
+    "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf"
+}

Deleted: hyperkitty-1.3.2-settings.patch
===================================================================
--- hyperkitty-1.3.2-settings.patch	2020-11-07 10:44:24 UTC (rev 745644)
+++ hyperkitty-1.3.2-settings.patch	2020-11-07 10:44:35 UTC (rev 745645)
@@ -1,68 +0,0 @@
-diff --git c/example_project/settings.py w/example_project/settings.py
-index 1c965f5..70de5d4 100644
---- c/example_project/settings.py
-+++ w/example_project/settings.py
-@@ -75,7 +75,7 @@ INSTALLED_APPS = (
-     'allauth.socialaccount.providers.github',
-     'allauth.socialaccount.providers.gitlab',
-     'allauth.socialaccount.providers.google',
--    'allauth.socialaccount.providers.facebook',
-+    # 'allauth.socialaccount.providers.facebook',
-     'allauth.socialaccount.providers.twitter',
-     'allauth.socialaccount.providers.stackexchange',
- )
-@@ -129,7 +129,7 @@ DATABASES = {
-         # Use 'sqlite3', 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
-         'ENGINE': 'django.db.backends.sqlite3',
-         # DB name or path to database file if using sqlite3.
--        'NAME': os.path.join(BASE_DIR, 'hyperkitty.db'),
-+        'NAME': '/var/lib/hyperkitty/data/hyperkitty.db',
-         # The following settings are not used with sqlite3:
-         'USER': 'hyperkitty',
-         'PASSWORD': 'hkpass',
-@@ -195,7 +195,7 @@ USE_TZ = True
- # Don't put anything in this directory yourself; store your static files
- # in apps' "static/" subdirectories and in STATICFILES_DIRS.
- # Example: "/var/www/example.com/static/"
--STATIC_ROOT = os.path.join(BASE_DIR, 'static')
-+STATIC_ROOT = '/var/lib/hyperkitty/static'
- 
- # URL prefix for static files.
- # Example: "http://example.com/static/", "http://static.example.com/"
-@@ -321,7 +321,8 @@ COMPRESS_PRECOMPILERS = (
- # recompiled on each requests. It means running an additional "compress"
- # management command after each code upgrade.
- # http://django-compressor.readthedocs.io/en/latest/usage/#offline-compression
--# COMPRESS_OFFLINE = True
-+COMPRESS_OFFLINE = True
-+COMPRESS_ENABLED = True
- 
- # Needed for debug mode
- # INTERNAL_IPS = ('127.0.0.1',)
-@@ -333,7 +334,7 @@ COMPRESS_PRECOMPILERS = (
- HAYSTACK_CONNECTIONS = {
-     'default': {
-         'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
--        'PATH': os.path.join(BASE_DIR, "fulltext_index"),
-+        'PATH': "/var/lib/hyperkitty/fulltext_index",
-         # You can also use the Xapian engine, it's faster and more accurate,
-         # but requires another library.
-         # http://django-haystack.readthedocs.io/en/v2.4.1/installing_search_engines.html#xapian
-@@ -388,7 +389,7 @@ LOGGING = {
-             'level': 'INFO',
-             #'class': 'logging.handlers.RotatingFileHandler',
-             'class': 'logging.handlers.WatchedFileHandler',
--            'filename': os.path.join(BASE_DIR, 'hyperkitty.log'),
-+            'filename': '/var/log/hyperkitty/hyperkitty.log',
-             'formatter': 'verbose',
-         },
-     },
-@@ -439,7 +440,7 @@ LOGGING = {
- # while you're fiddling with the code.
- if DEBUG == True:
-     EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
--    EMAIL_FILE_PATH = os.path.join(BASE_DIR, 'emails')
-+    EMAIL_FILE_PATH = '/var/lib/hyperkitty/emails'
- 
- 
- #

Copied: hyperkitty/repos/community-any/hyperkitty-1.3.2-settings.patch (from rev 745644, hyperkitty/trunk/hyperkitty-1.3.2-settings.patch)
===================================================================
--- hyperkitty-1.3.2-settings.patch	                        (rev 0)
+++ hyperkitty-1.3.2-settings.patch	2020-11-07 10:44:35 UTC (rev 745645)
@@ -0,0 +1,76 @@
+diff -ruN a/example_project/settings.py b/example_project/settings.py
+--- a/example_project/settings.py	2020-06-01 18:21:21.000000000 +0200
++++ b/example_project/settings.py	2020-11-07 11:25:38.898195802 +0100
+@@ -75,12 +75,12 @@
+     'allauth.socialaccount.providers.github',
+     'allauth.socialaccount.providers.gitlab',
+     'allauth.socialaccount.providers.google',
+-    'allauth.socialaccount.providers.facebook',
++    # 'allauth.socialaccount.providers.facebook',
+     'allauth.socialaccount.providers.twitter',
+     'allauth.socialaccount.providers.stackexchange',
+ 
+     # Dev only dependencies. Do not include in any production site.
+-    'debug_toolbar',
++    # 'debug_toolbar',
+ )
+ 
+ 
+@@ -134,7 +134,7 @@
+         # Use 'sqlite3', 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
+         'ENGINE': 'django.db.backends.sqlite3',
+         # DB name or path to database file if using sqlite3.
+-        'NAME': os.path.join(BASE_DIR, 'hyperkitty.db'),
++        'NAME': '/var/lib/hyperkitty/data/hyperkitty.db',
+         # The following settings are not used with sqlite3:
+         'USER': 'hyperkitty',
+         'PASSWORD': 'hkpass',
+@@ -202,7 +202,7 @@
+ # Don't put anything in this directory yourself; store your static files
+ # in apps' "static/" subdirectories and in STATICFILES_DIRS.
+ # Example: "/var/www/example.com/static/"
+-STATIC_ROOT = os.path.join(BASE_DIR, 'static')
++STATIC_ROOT = '/var/lib/hyperkitty/static'
+ 
+ # URL prefix for static files.
+ # Example: "http://example.com/static/", "http://static.example.com/"
+@@ -328,7 +328,8 @@
+ # recompiled on each requests. It means running an additional "compress"
+ # management command after each code upgrade.
+ # http://django-compressor.readthedocs.io/en/latest/usage/#offline-compression
+-# COMPRESS_OFFLINE = True
++COMPRESS_OFFLINE = True
++COMPRESS_ENABLED = True
+ 
+ # Needed for debug mode
+ INTERNAL_IPS = ('127.0.0.1',)
+@@ -340,7 +341,7 @@
+ HAYSTACK_CONNECTIONS = {
+     'default': {
+         'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
+-        'PATH': os.path.join(BASE_DIR, "fulltext_index"),
++        'PATH': "/var/lib/hyperkitty/fulltext_index",
+         # You can also use the Xapian engine, it's faster and more accurate,
+         # but requires another library.
+         # http://django-haystack.readthedocs.io/en/v2.4.1/installing_search_engines.html#xapian
+@@ -395,7 +396,7 @@
+             'level': 'INFO',
+             #'class': 'logging.handlers.RotatingFileHandler',
+             'class': 'logging.handlers.WatchedFileHandler',
+-            'filename': os.path.join(BASE_DIR, 'hyperkitty.log'),
++            'filename': '/var/log/hyperkitty/hyperkitty.log',
+             'formatter': 'verbose',
+         },
+     },
+@@ -444,9 +445,9 @@
+ # When DEBUG is True, don't actually send emails to the SMTP server, just store
+ # them in a directory. This way you won't accidentally spam your mailing-lists
+ # while you're fiddling with the code.
+-if DEBUG == True:
++if DEBUG:
+     EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
+-    EMAIL_FILE_PATH = os.path.join(BASE_DIR, 'emails')
++    EMAIL_FILE_PATH = '/var/lib/hyperkitty/emails'
+ 
+ 
+ #

Copied: hyperkitty/repos/community-any/hyperkitty-1.3.3-migration.patch (from rev 745644, hyperkitty/trunk/hyperkitty-1.3.3-migration.patch)
===================================================================
--- hyperkitty-1.3.3-migration.patch	                        (rev 0)
+++ hyperkitty-1.3.3-migration.patch	2020-11-07 10:44:35 UTC (rev 745645)
@@ -0,0 +1,102 @@
+From 0e46371f0f2aab8618aa2852ea6f63c245e16927 Mon Sep 17 00:00:00 2001
+From: David Runge <dave at sleepmap.de>
+Date: Sat, 7 Nov 2020 01:14:04 +0000
+Subject: [PATCH] Make migration compatible with django >= 3.1
+
+hyperkitty/migrations/0013_mailinglist_id_1.py:
+With django >= 3.1 the state.models.fields are represented as dicts,
+while with django < 3.1 they are represented as lists.
+Accomodate both use-cases by checking the type of the fields before
+trying to add to them.
+
+Fixes #329
+---
+ .gitlab-ci.yml                                | 50 +++++++++++--------
+ .../migrations/0013_mailinglist_id_1.py       | 33 ++++++++++--
+ setup.py                                      |  2 +-
+ tox.ini                                       |  5 +-
+ 4 files changed, 62 insertions(+), 28 deletions(-)
+
+diff --git a/hyperkitty/migrations/0013_mailinglist_id_1.py b/hyperkitty/migrations/0013_mailinglist_id_1.py
+index f460daf9..d55afed5 100644
+--- a/hyperkitty/migrations/0013_mailinglist_id_1.py
++++ b/hyperkitty/migrations/0013_mailinglist_id_1.py
+@@ -16,10 +16,35 @@ class MailingListPrimaryKey(migrations.AlterField):
+             )
+ 
+     def state_forwards(self, app_label, state):
+-        state.models[app_label, self.model_name_lower].fields.insert(0, (
+-            "id", models.AutoField(
+-                name="id", auto_created=True, primary_key=True, serialize=False,
+-                verbose_name='ID')))
++        # django < 3.1
++        if type(state.models[app_label, self.model_name_lower].fields) is list:
++            state.models[app_label, self.model_name_lower].fields.insert(
++                0,
++                (
++                    "id",
++                    models.AutoField(
++                        name="id",
++                        auto_created=True,
++                        primary_key=True,
++                        serialize=False,
++                        verbose_name='ID'
++                    )
++                )
++            )
++        # django >= 3.1
++        else:
++            state.models[app_label, self.model_name_lower].fields.update(
++                {
++                    "id":
++                    models.AutoField(
++                        name="id",
++                        auto_created=True,
++                        primary_key=True,
++                        serialize=False,
++                        verbose_name='ID',
++                    )
++                }
++            )
+         super(MailingListPrimaryKey, self).state_forwards(app_label, state)
+ 
+     def database_forwards(self, app_label, schema_editor, from_state, to_state):
+diff --git a/setup.py b/setup.py
+index cb058659..0968c676 100755
+--- a/setup.py
++++ b/setup.py
+@@ -37,7 +37,7 @@ with open('hyperkitty/__init__.py') as fp:
+ 
+ # Requirements
+ REQUIRES = [
+-    "Django>=2.0,<3.1",
++    "Django>=2.2,<3.2",
+     "django_mailman3>=1.3.3",
+     "django-gravatar2>=1.0.6",
+     "djangorestframework>=3.0.0",
+diff --git a/tox.ini b/tox.ini
+index 7fdc43f8..3dd6487d 100644
+--- a/tox.ini
++++ b/tox.ini
+@@ -1,5 +1,5 @@
+ [tox]
+-envlist = py{36,37,38}-django{20,21,22,30},docs,lint
++envlist = py{36,37,38,39}-django{22,30,31},docs,lint
+ 
+ 
+ [testenv]
+@@ -16,10 +16,9 @@ deps =
+     head: git+https://gitlab.com/mailman/mailmanclient.git
+     dev: -e../mailmanclient
+     dev: -e../django-mailman3
+-    django20: Django>=2.0,<2.1
+-    django21: Django>=2.1,<2.2
+     django22: Django>=2.2,<2.3
+     django30: Django>=3.0,<3.1
++    django31: Django>=3.1,<3.2
+     django30,coverage: django-haystack>=3.0b2
+ commands =
+     coverage run example_project/manage.py test --settings=hyperkitty.tests.settings_test {posargs:hyperkitty}
+-- 
+GitLab
+

Deleted: hyperkitty-qcluster.service
===================================================================
--- hyperkitty-qcluster.service	2020-11-07 10:44:24 UTC (rev 745644)
+++ hyperkitty-qcluster.service	2020-11-07 10:44:35 UTC (rev 745645)
@@ -1,38 +0,0 @@
-[Unit]
-Description=HyperKitty async tasks runner
-Documentation=https://hyperkitty.readthedocs.io/en/latest/install.html#asynchronous-tasks
-After=network.target remote-fs.target
-
-[Service]
-User=hyperkitty
-ExecStart=/usr/bin/django-admin qcluster --pythonpath /usr/share/webapps/hyperkitty --settings settings
-Restart=always
-StandardError=syslog
-PrivateTmp=true
-ProtectSystem=strict
-ProtectHome=true
-PrivateDevices=true
-ProtectKernelTunables=true
-ProtectControlGroups=true
-NoNewPrivileges=true
-MemoryDenyWriteExecute=true
-LockPersonality=true
-CapabilityBoundingSet=CAP_NET_BIND_SERVICE
-ProtectHostname=true
-ProtectKernelLogs=true
-ProtectKernelModules=true
-RemoveIPC=true
-RestrictAddressFamilies=~AF_PACKET
-RestrictNamespaces=true
-RestrictRealtime=true
-RestrictSUIDSGID=true
-SystemCallArchitectures=native
-SystemCallFilter=@system-service
-SystemCallFilter=~@privileged @resources
-ReadOnlyPaths=/etc/webapps/hyperkitty
-LogsDirectory=hyperkitty
-RuntimeDirectory=hyperkitty
-StateDirectory=hyperkitty
-
-[Install]
-WantedBy=multi-user.target

Copied: hyperkitty/repos/community-any/hyperkitty-qcluster.service (from rev 745644, hyperkitty/trunk/hyperkitty-qcluster.service)
===================================================================
--- hyperkitty-qcluster.service	                        (rev 0)
+++ hyperkitty-qcluster.service	2020-11-07 10:44:35 UTC (rev 745645)
@@ -0,0 +1,38 @@
+[Unit]
+Description=HyperKitty async tasks runner
+Documentation=https://hyperkitty.readthedocs.io/en/latest/install.html#asynchronous-tasks
+After=network.target remote-fs.target
+
+[Service]
+User=hyperkitty
+ExecStart=/usr/bin/django-admin qcluster --pythonpath /usr/share/webapps/hyperkitty --settings settings
+Restart=always
+StandardError=syslog
+PrivateTmp=true
+ProtectSystem=strict
+ProtectHome=true
+PrivateDevices=true
+ProtectKernelTunables=true
+ProtectControlGroups=true
+NoNewPrivileges=true
+MemoryDenyWriteExecute=true
+LockPersonality=true
+CapabilityBoundingSet=CAP_NET_BIND_SERVICE
+ProtectHostname=true
+ProtectKernelLogs=true
+ProtectKernelModules=true
+RemoveIPC=true
+RestrictAddressFamilies=~AF_PACKET
+RestrictNamespaces=true
+RestrictRealtime=true
+RestrictSUIDSGID=true
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+SystemCallFilter=~@privileged @resources
+ReadOnlyPaths=/etc/webapps/hyperkitty
+LogsDirectory=hyperkitty
+RuntimeDirectory=hyperkitty
+StateDirectory=hyperkitty
+
+[Install]
+WantedBy=multi-user.target

Deleted: hyperkitty.install
===================================================================
--- hyperkitty.install	2020-11-07 10:44:24 UTC (rev 745644)
+++ hyperkitty.install	2020-11-07 10:44:35 UTC (rev 745645)
@@ -1,10 +0,0 @@
-post_install() {
-  echo "Run the following to create/migrate the database:"
-  echo "sudo -u hyperkitty django-admin migrate --pythonpath /usr/share/webapps/hyperkitty/ --settings settings"
-}
-
-post_upgrade() {
-  echo "Run the following to update static files and compress them:"
-  echo "sudo -u hyperkitty django-admin collectstatic --pythonpath /usr/share/webapps/hyperkitty --settings settings"
-  echo "sudo -u hyperkitty django-admin compress --pythonpath /usr/share/webapps/hyperkitty --settings settings"
-}

Copied: hyperkitty/repos/community-any/hyperkitty.install (from rev 745644, hyperkitty/trunk/hyperkitty.install)
===================================================================
--- hyperkitty.install	                        (rev 0)
+++ hyperkitty.install	2020-11-07 10:44:35 UTC (rev 745645)
@@ -0,0 +1,10 @@
+post_install() {
+  echo "Run the following to create/migrate the database:"
+  echo "sudo -u hyperkitty django-admin migrate --pythonpath /usr/share/webapps/hyperkitty/ --settings settings"
+}
+
+post_upgrade() {
+  echo "Run the following to update static files and compress them:"
+  echo "sudo -u hyperkitty django-admin collectstatic --pythonpath /usr/share/webapps/hyperkitty --settings settings"
+  echo "sudo -u hyperkitty django-admin compress --pythonpath /usr/share/webapps/hyperkitty --settings settings"
+}

Deleted: hyperkitty.sysusers
===================================================================
--- hyperkitty.sysusers	2020-11-07 10:44:24 UTC (rev 745644)
+++ hyperkitty.sysusers	2020-11-07 10:44:35 UTC (rev 745645)
@@ -1 +0,0 @@
-u hyperkitty - "GNU Mailman Archiver" -

Copied: hyperkitty/repos/community-any/hyperkitty.sysusers (from rev 745644, hyperkitty/trunk/hyperkitty.sysusers)
===================================================================
--- hyperkitty.sysusers	                        (rev 0)
+++ hyperkitty.sysusers	2020-11-07 10:44:35 UTC (rev 745645)
@@ -0,0 +1 @@
+u hyperkitty - "GNU Mailman Archiver" -

Deleted: hyperkitty.tmpfiles
===================================================================
--- hyperkitty.tmpfiles	2020-11-07 10:44:24 UTC (rev 745644)
+++ hyperkitty.tmpfiles	2020-11-07 10:44:35 UTC (rev 745645)
@@ -1,7 +0,0 @@
-z /etc/webapps/hyperkitty/settings_local.py 0640 root hyperkitty -
-d %L/hyperkitty 750 hyperkitty hyperkitty -
-d %S/hyperkitty - hyperkitty hyperkitty -
-d %S/hyperkitty/data 750 hyperkitty hyperkitty -
-d %S/hyperkitty/locale - hyperkitty hyperkitty -
-d %S/hyperkitty/static - hyperkitty hyperkitty -
-d %t/hyperkitty - hyperkitty hyperkitty -

Copied: hyperkitty/repos/community-any/hyperkitty.tmpfiles (from rev 745644, hyperkitty/trunk/hyperkitty.tmpfiles)
===================================================================
--- hyperkitty.tmpfiles	                        (rev 0)
+++ hyperkitty.tmpfiles	2020-11-07 10:44:35 UTC (rev 745645)
@@ -0,0 +1,7 @@
+z /etc/webapps/hyperkitty/settings_local.py 0640 root hyperkitty -
+d %L/hyperkitty 750 hyperkitty hyperkitty -
+d %S/hyperkitty - hyperkitty hyperkitty -
+d %S/hyperkitty/data 750 hyperkitty hyperkitty -
+d %S/hyperkitty/locale - hyperkitty hyperkitty -
+d %S/hyperkitty/static - hyperkitty hyperkitty -
+d %t/hyperkitty - hyperkitty hyperkitty -

Deleted: hyperkitty.uwsgi
===================================================================
--- hyperkitty.uwsgi	2020-11-07 10:44:24 UTC (rev 745644)
+++ hyperkitty.uwsgi	2020-11-07 10:44:35 UTC (rev 745645)
@@ -1,25 +0,0 @@
-[uwsgi]
-procname-master = hyperkitty
-master = true
-plugins = python
-socket = /run/hyperkitty/%n.sock
-stats = /run/hyperkitty/%n-stats.sock
-uid = hyperkitty
-gid = hyperkitty
-processes = 10
-cheaper = 2
-cheaper-step = 1
-idle = 120
-die-on-idle = true
-chdir = /usr/share/webapps/hyperkitty
-module = wsgi
-home = /
-touch-reload = %p
-vacuum = true
-cron2 = minute=0,hour=0,day=0,week=0,month=0,unique=1 /usr/bin/django-admin runjobs yearly  --pythonpath /usr/share/webapps/hyperkitty --settings settings
-cron2 = minute=0,hour=0,day=0,week=0,unique=1 /usr/bin/django-admin runjobs monthly --pythonpath /usr/share/webapps/hyperkitty --settings settings
-cron2 = minute=0,hour=0,day=0,unique=1 /usr/bin/django-admin runjobs weekly  --pythonpath /usr/share/webapps/hyperkitty --settings settings
-cron2 = minute=0,hour=0,unique=1 django-admin runjobs daily   --pythonpath /usr/share/webapps/hyperkitty --settings settings
-cron2 = minute=0,unique=1 /usr/bin/django-admin runjobs hourly  --pythonpath /usr/share/webapps/hyperkitty --settings settings
-cron2 = minute=-15,unique=1 /usr/bin/django-admin runjobs quarter_hourly --pythonpath /usr/share/webapps/hyperkitty --settings settings
-cron2 = unique=1 /usr/bin/django-admin runjobs minutely --pythonpath /usr/share/webapps/hyperkitty --settings settings

Copied: hyperkitty/repos/community-any/hyperkitty.uwsgi (from rev 745644, hyperkitty/trunk/hyperkitty.uwsgi)
===================================================================
--- hyperkitty.uwsgi	                        (rev 0)
+++ hyperkitty.uwsgi	2020-11-07 10:44:35 UTC (rev 745645)
@@ -0,0 +1,25 @@
+[uwsgi]
+procname-master = hyperkitty
+master = true
+plugins = python
+socket = /run/hyperkitty/%n.sock
+stats = /run/hyperkitty/%n-stats.sock
+uid = hyperkitty
+gid = hyperkitty
+processes = 10
+cheaper = 2
+cheaper-step = 1
+idle = 120
+die-on-idle = true
+chdir = /usr/share/webapps/hyperkitty
+module = wsgi
+home = /
+touch-reload = %p
+vacuum = true
+cron2 = minute=0,hour=0,day=0,week=0,month=0,unique=1 /usr/bin/django-admin runjobs yearly  --pythonpath /usr/share/webapps/hyperkitty --settings settings
+cron2 = minute=0,hour=0,day=0,week=0,unique=1 /usr/bin/django-admin runjobs monthly --pythonpath /usr/share/webapps/hyperkitty --settings settings
+cron2 = minute=0,hour=0,day=0,unique=1 /usr/bin/django-admin runjobs weekly  --pythonpath /usr/share/webapps/hyperkitty --settings settings
+cron2 = minute=0,hour=0,unique=1 django-admin runjobs daily   --pythonpath /usr/share/webapps/hyperkitty --settings settings
+cron2 = minute=0,unique=1 /usr/bin/django-admin runjobs hourly  --pythonpath /usr/share/webapps/hyperkitty --settings settings
+cron2 = minute=-15,unique=1 /usr/bin/django-admin runjobs quarter_hourly --pythonpath /usr/share/webapps/hyperkitty --settings settings
+cron2 = unique=1 /usr/bin/django-admin runjobs minutely --pythonpath /usr/share/webapps/hyperkitty --settings settings



More information about the arch-commits mailing list