[arch-commits] Commit in hyperkitty/trunk (3 files)
David Runge
dvzrv at archlinux.org
Sat Nov 7 10:44:24 UTC 2020
Date: Saturday, November 7, 2020 @ 10:44:24
Author: dvzrv
Revision: 745644
upgpkg: hyperkitty 1.3.3-2: Rebuild to fix migrations.
The migrations have been made compatible with django >= 3.1.
The settings patch has been altered to remove debug apps.
Added:
hyperkitty/trunk/hyperkitty-1.3.3-migration.patch
Modified:
hyperkitty/trunk/PKGBUILD
hyperkitty/trunk/hyperkitty-1.3.2-settings.patch
----------------------------------+
PKGBUILD | 16 +++--
hyperkitty-1.3.2-settings.patch | 34 +++++++-----
hyperkitty-1.3.3-migration.patch | 102 +++++++++++++++++++++++++++++++++++++
3 files changed, 133 insertions(+), 19 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2020-11-07 10:43:43 UTC (rev 745643)
+++ PKGBUILD 2020-11-07 10:44:24 UTC (rev 745644)
@@ -3,7 +3,7 @@
_name=HyperKitty
pkgname=hyperkitty
pkgver=1.3.3
-pkgrel=1
+pkgrel=2
pkgdesc="A web interface to access GNU Mailman v3 archives"
arch=('any')
url="https://gitlab.com/mailman/hyperkitty"
@@ -26,6 +26,7 @@
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"
@@ -32,7 +33,8 @@
"${pkgname}.uwsgi")
sha512sums=('4be4630bc0344c3e1633772978880fea996fbf2bb49b728c1d05ae13ab1df8c63b6b7b9b735df32eb2ae31798e76be537748e42c830a63aa01eeff0680f1dc76'
'SKIP'
- 'ec08a05402729bc23f9bff11be85630343f257d2bdb0531941d9f1475a3bb6b80d7083e2a0291517264247076b7639ecc427bdc5d5d37d9b8f094f6f484f6f96'
+ 'de2f0ddd4006b3647ab2b482f853070576817c8729d7473cc71c22566053a43e3eb4888ac7e0e014811d1498d81e2349695ab334be3548f5ab121b507c82cfc6'
+ 'e8a90eaef5f98c0025af2dd98589e5059fd0073416c10fe17f810e8c7965a2fc724994dd2e56b034d948de032a98d41a4a3520721516dc2e573e324f4a74dff3'
'a41c938082ceee555143ddb21c3a95835f9832b9aff423142d78d3e52f12500561f80e0ce43c67a4f190065c9d045945741ac71ab3307db1419c4dc0686db09a'
'3267427109b08b8c9336b187381ed14357a07370bdcdfc24da94555020ad0424c5bbebc09e131e981e0540c51db443ffe558209e1bca7c2a1b7b1f602ed0805b'
'e734e28fbaa5d7143a5c31161b2de0beed5435cb4fa48521ec0e82ed81b045f07bd4ca61f9da81c87dfe2cc5a5ecf79eb9ed4c255a31f97c69fe97bf6df37073'
@@ -42,8 +44,11 @@
prepare() {
mv -v "${_name}-${pkgver}" "$pkgname-$pkgver"
cd "$pkgname-$pkgver"
- # setting FHS compliant default paths
+ # 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
}
@@ -62,9 +67,8 @@
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}"
+ --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"
Modified: hyperkitty-1.3.2-settings.patch
===================================================================
--- hyperkitty-1.3.2-settings.patch 2020-11-07 10:43:43 UTC (rev 745643)
+++ hyperkitty-1.3.2-settings.patch 2020-11-07 10:44:24 UTC (rev 745644)
@@ -1,8 +1,7 @@
-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 = (
+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',
@@ -10,8 +9,14 @@
+ # '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',
)
-@@ -129,7 +129,7 @@ DATABASES = {
+
+
+@@ -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.
@@ -20,7 +25,7 @@
# The following settings are not used with sqlite3:
'USER': 'hyperkitty',
'PASSWORD': 'hkpass',
-@@ -195,7 +195,7 @@ USE_TZ = True
+@@ -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/"
@@ -29,7 +34,7 @@
# URL prefix for static files.
# Example: "http://example.com/static/", "http://static.example.com/"
-@@ -321,7 +321,8 @@ COMPRESS_PRECOMPILERS = (
+@@ -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
@@ -38,8 +43,8 @@
+COMPRESS_ENABLED = True
# Needed for debug mode
- # INTERNAL_IPS = ('127.0.0.1',)
-@@ -333,7 +334,7 @@ COMPRESS_PRECOMPILERS = (
+ INTERNAL_IPS = ('127.0.0.1',)
+@@ -340,7 +341,7 @@
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
@@ -48,7 +53,7 @@
# 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 = {
+@@ -395,7 +396,7 @@
'level': 'INFO',
#'class': 'logging.handlers.RotatingFileHandler',
'class': 'logging.handlers.WatchedFileHandler',
@@ -57,9 +62,12 @@
'formatter': 'verbose',
},
},
-@@ -439,7 +440,7 @@ LOGGING = {
+@@ -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 == 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'
Added: 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:24 UTC (rev 745644)
@@ -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
+
More information about the arch-commits
mailing list