[arch-commits] Commit in postorius/trunk (PKGBUILD postorius-1.3.6-django4.0.patch)
David Runge
dvzrv at gemini.archlinux.org
Sun Feb 20 15:14:06 UTC 2022
Date: Sunday, February 20, 2022 @ 15:14:06
Author: dvzrv
Revision: 1135286
upgpkg: postorius 1.3.6-3: Rebuild for django 4.0 compatibility.
Add upstreamed (not yet merged) patch for django 4.0 compatibility:
https://gitlab.com/mailman/postorius/-/merge_requests/694
Remove unneeded quotes and curly braces.
Added:
postorius/trunk/postorius-1.3.6-django4.0.patch
Modified:
postorius/trunk/PKGBUILD
---------------------------------+
PKGBUILD | 93 ++++++++++-----------
postorius-1.3.6-django4.0.patch | 163 ++++++++++++++++++++++++++++++++++++++
2 files changed, 207 insertions(+), 49 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2022-02-20 15:06:06 UTC (rev 1135285)
+++ PKGBUILD 2022-02-20 15:14:06 UTC (rev 1135286)
@@ -2,19 +2,19 @@
pkgname=postorius
pkgver=1.3.6
-pkgrel=2
+pkgrel=3
pkgdesc="The New Mailman Web UI"
-arch=('any')
+arch=(any)
url="https://gitlab.com/mailman/postorius"
-license=('GPL3')
-depends=('python-cmarkgfm' 'python-django' 'python-django-mailman3'
-'python-mailmanclient' 'python-readme-renderer')
-makedepends=('git' 'python-setuptools')
-checkdepends=('mailman3' 'python-beautifulsoup4' 'python-isort' 'python-mock'
-'python-pytest' 'python-pytest-django' 'python-vcrpy')
+license=(GPL3)
+depends=(python-cmarkgfm python-django python-django-mailman3
+python-mailmanclient python-readme-renderer)
+makedepends=(git python-setuptools)
+checkdepends=(mailman3 python-beautifulsoup4 python-isort python-mock
+python-pytest python-pytest-django python-vcrpy)
optdepends=('mailman3: for configuring a local mailman instance'
'uwsgi-plugin-python: for running inside uwsgi')
-replaces=('python-django-postorius')
+replaces=(python-django-postorius)
backup=("etc/uwsgi/${pkgname}.ini"
"etc/webapps/${pkgname}/settings_local.py"
"etc/webapps/${pkgname}/urls.py"
@@ -23,76 +23,71 @@
# the signature for the pypi sdist tarball for 1.3.6 is missing the chain of trust:
# https://gitlab.com/mailman/postorius/-/issues/537
# source=("https://files.pythonhosted.org/packages/source/${pkgname::1}/${pkgname}/${pkgname}-${pkgver}.tar.gz"{,.asc}
-source=("git+https://gitlab.com/mailman/${pkgname}#tag=${pkgver}?signed"
- "${pkgname}-1.3.2-settings.patch"
- "${pkgname}.sysusers"
- "${pkgname}.tmpfiles"
- "${pkgname}.uwsgi"
+source=(
+ git+https://gitlab.com/mailman/$pkgname#tag=$pkgver?signed
+ $pkgname-1.3.2-settings.patch
+ $pkgname.sysusers
+ $pkgname.tmpfiles
+ $pkgname.uwsgi
+ $pkgname-1.3.6-django4.0.patch
)
sha512sums=('SKIP'
'53713874043e368c71543966e878ff7a49f03088b7ebcff9487935bef2c20a57a561a122dd6b4cbde126c25b935871288dadd7693b831a94b8f27da52afeaa0c'
'3884b818da2deb148279e50316f720c95f0aaa529777b1b3662d8ab253cda823a90682a9eb47e941ca5ba80eefcb9a2d4afacd29f0340d7f9828b36ebcee23b3'
'44925c7ce6d1c13bd5bdd2cb449fa978b8eaadaac7ecff74075c23a13478decc4acd1f2cd0399bf55c312d6a08985a3e80f6e7a6e85be9e3dcb93ffb526ca9fb'
- 'c042f00d0d8dc72dadd19023152e55246c4d7a4b9d53bca3a05e7b8cb38cac5116417440d4ae82350820c7cb0cd414dcce45fa6af9be19296c4ebd0862dba896')
+ 'c042f00d0d8dc72dadd19023152e55246c4d7a4b9d53bca3a05e7b8cb38cac5116417440d4ae82350820c7cb0cd414dcce45fa6af9be19296c4ebd0862dba896'
+ '3ebb4f0f02d1ef793504b6e2fb7f2cecf5ed3acc8c1fdda6fa2fc2808644aa55f979203d070aa1ca1f1f8430a6e9c30ee653ede99523600f499db872a0640fce')
b2sums=('SKIP'
'c4017fe87b8743ae516e360be97efd767d726b043733a6dd880503e796e28f65c9ad5924b0fef53281e4fa73a1a329e818baedbe5dbbc0dc07db2af0cf25f1b7'
'1ef6dc98c6751e6d65e49812d08d813879b791a7f13622ea31ecadae6dd1859a918761d7723732ed2e4872b9cae61b84c8dbfec2dd2522de9f0929a1ee1cec24'
'502d59cb0009b7cdf108a1611d17470d1a73c2d06bf6d9509799b63d4bbb4bb0a2cb71a39eddb0dc5990ee6489625174de6ce2d7e04e77a601c90a6da6d69c84'
- '4b80d60c88d46edd0e6e61ad2ff37ba3568c6c56a2abd449f903f7302aeec4a3bc91bbd3ee846731513fa1906df2e3d7d1c52b75a55214051fb96b048f9b4999')
+ '4b80d60c88d46edd0e6e61ad2ff37ba3568c6c56a2abd449f903f7302aeec4a3bc91bbd3ee846731513fa1906df2e3d7d1c52b75a55214051fb96b048f9b4999'
+ 'a74dc3e0c818e753320f15fa063bdfa531b6c3405475f2da45a7203c1c188819d90adc164f917577ac09a5216255a896c1fa0d11ea1aa2f680bd73fddd246422')
validpgpkeys=('541EA0448453394FF77A0ECC9D9B2BA061D0A67C') # Abhilash Raj <raj.abhilash1 at gmail.com>
prepare() {
-# cd "$pkgname-$pkgver"
- cd "$pkgname"
# patch global paths into settings.py
- patch -Np1 -i "../${pkgname}-1.3.2-settings.patch"
+ patch -d $pkgname -p1 -i ../$pkgname-1.3.2-settings.patch
+ # make compatible with django 4.0: https://gitlab.com/mailman/postorius/-/merge_requests/694
+ patch -d $pkgname -p1 -i ../$pkgname-1.3.6-django4.0.patch
+
touch settings_local.py
}
build() {
-# cd "$pkgname-$pkgver"
- cd "$pkgname"
+ cd $pkgname
python setup.py build
}
check() {
-# cd "$pkgname-$pkgver/example_project"
- cd "$pkgname/example_project"
- export PYTHONPATH="../build/lib:${PYTHONPATH}"
- PYTHONDONTWRITEBYTECODE=1 \
- pytest -vv ../build/lib/${pkgname}
+ cd $pkgname/example_project
+
+ export PYTHONPATH="../build/lib:$PYTHONPATH"
+ PYTHONDONTWRITEBYTECODE=1
+ pytest -vv ../build/lib/$pkgname
}
package() {
-# cd "$pkgname-$pkgver"
- cd "$pkgname"
- python setup.py install --optimize=1 --root="${pkgdir}"
+ cd $pkgname
+ python setup.py install --optimize=1 --root="$pkgdir"
# django project
- install -vDm 644 example_project/{__init__,manage,settings,wsgi}.py \
- -t "${pkgdir}/usr/share/webapps/${pkgname}"
+ install -vDm 644 example_project/{__init__,manage,settings,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}"
+ 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}
+ 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}"
+ install -vdm 750 "$pkgdir/var/log/$pkgname"
# config
- install -vDm 640 settings_local.py example_project/urls.py \
- -t "${pkgdir}/etc/webapps/${pkgname}"
- ln -svf "/etc/webapps/${pkgname}/settings_local.py" \
- "${pkgdir}/usr/share/webapps/${pkgname}/settings_local.py"
- ln -svf "/etc/webapps/${pkgname}/urls.py" \
- "${pkgdir}/usr/share/webapps/${pkgname}/urls.py"
+ install -vDm 640 ../settings_local.py example_project/urls.py -t "$pkgdir/etc/webapps/$pkgname"
+ ln -svf /etc/webapps/$pkgname/settings_local.py "$pkgdir/usr/share/webapps/$pkgname/settings_local.py"
+ ln -svf /etc/webapps/$pkgname/urls.py "$pkgdir/usr/share/webapps/$pkgname/urls.py"
# uwsgi
- install -vDm 644 "../${pkgname}.uwsgi" "${pkgdir}/etc/uwsgi/${pkgname}.ini"
+ install -vDm 644 ../$pkgname.uwsgi "$pkgdir/etc/uwsgi/$pkgname.ini"
# tmpfiles.d
- install -vDm 644 "../${pkgname}.tmpfiles" \
- "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
+ 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"
+ install -vDm 644 ../$pkgname.sysusers "$pkgdir/usr/lib/sysusers.d/$pkgname.conf"
}
Added: postorius-1.3.6-django4.0.patch
===================================================================
--- postorius-1.3.6-django4.0.patch (rev 0)
+++ postorius-1.3.6-django4.0.patch 2022-02-20 15:14:06 UTC (rev 1135286)
@@ -0,0 +1,163 @@
+From 7c9c080333d5340c2c031ad4258489fe3f91b64a Mon Sep 17 00:00:00 2001
+From: David Runge <dave at sleepmap.de>
+Date: Sun, 20 Feb 2022 15:42:27 +0100
+Subject: [PATCH 1/4] forms/fields compatibility with django >= 4.0
+
+src/postorius/forms/fields.py:
+Use `django.utils.encoding.smart_str` (introduced with django 4.0) by
+default and fall back to `django.utils.encoding.smart_text` (django <
+4.0) otherwise.
+---
+ src/postorius/forms/fields.py | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/src/postorius/forms/fields.py b/src/postorius/forms/fields.py
+index f1578615..6235260b 100644
+--- a/src/postorius/forms/fields.py
++++ b/src/postorius/forms/fields.py
+@@ -19,7 +19,14 @@
+
+
+ from django import forms
+-from django.utils.encoding import smart_text
++
++
++try:
++ from django.utils.encoding import smart_str
++except ImportError:
++ # django < 4.0
++ from django.utils.encoding import smart_text as smart_str
++
+ from django.utils.translation import gettext_lazy as _
+
+ from postorius.utils import with_empty_choice
+@@ -62,7 +69,7 @@ class ListOfStringsField(forms.Field):
+ line = line.strip()
+ if not line:
+ continue
+- result.append(smart_text(line))
++ result.append(smart_str(line))
+ return result
+
+
+--
+GitLab
+
+
+From 1b711c0adb063f165e00ed604a398c769f34b9e3 Mon Sep 17 00:00:00 2001
+From: David Runge <dave at sleepmap.de>
+Date: Sun, 20 Feb 2022 15:45:19 +0100
+Subject: [PATCH 2/4] Move the upper boundary for django to < 4.1
+
+setup.py:
+As postorius is compatible with django 4.0, set the upper boundary to <
+4.1.
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 9a900eee..18374c10 100644
+--- a/setup.py
++++ b/setup.py
+@@ -54,7 +54,7 @@ setup(
+ include_package_data=True,
+ install_requires=[
+ 'django-mailman3>=1.3.7',
+- 'django>=2.2,<3.3',
++ 'django>=2.2,<4.1',
+ 'mailmanclient>=3.3.3',
+ 'readme_renderer[md]',
+ ],
+--
+GitLab
+
+
+From 3dfa2cca5ea7d764e69e6a4c37feb3808755b69d Mon Sep 17 00:00:00 2001
+From: David Runge <dave at sleepmap.de>
+Date: Sun, 20 Feb 2022 15:46:30 +0100
+Subject: [PATCH 3/4] Add python 3.10 and django 4.0 support to tox
+
+tox.ini:
+Add environments for python 3.10 and django 4.0
+---
+ tox.ini | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/tox.ini b/tox.ini
+index 744dbbc8..bce92d5a 100644
+--- a/tox.ini
++++ b/tox.ini
+@@ -1,5 +1,5 @@
+ [tox]
+-envlist = py{36,37,38,39}-django{22,31,32,-latest},qa
++envlist = py{36,37,38,39,310}-django{22,31,32,-latest},qa
+
+ [testenv]
+ usedevelop = True
+@@ -20,6 +20,7 @@ deps =
+ django30: Django>=3.0,<3.1
+ django31: Django>=3.1,<3.2
+ django32: Django>=3.2,<3.3
++ django40: Django>=4.0,<4.1
+ django-latest: https://github.com/django/django/archive/main.tar.gz
+ commands =
+ pytest {posargs:../src}
+@@ -31,7 +32,7 @@ setenv =
+ basepython = python3
+ deps =
+ {[testenv]deps}
+- Django>=3.2,<3.3
++ Django>=3.2,<4.1
+ coverage
+ commands =
+ coverage run -m pytest {posargs:../src/postorius}
+--
+GitLab
+
+
+From b5e9c49cf710295f53b340f22c7d2ec5cbb7a9da Mon Sep 17 00:00:00 2001
+From: David Runge <dave at sleepmap.de>
+Date: Sun, 20 Feb 2022 15:47:44 +0100
+Subject: [PATCH 4/4] Add python 3.10 and django 4.0 targets to gitlab CI
+
+.gitlab-ci.yml:
+Run tests against latest django using python 3.10.
+Add test targets against django 3.2 and 4.0 on python 3.10.
+---
+ .gitlab-ci.yml | 14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
+index ba6cea8c..9e9da7f4 100644
+--- a/.gitlab-ci.yml
++++ b/.gitlab-ci.yml
+@@ -66,13 +66,23 @@ py39-django32:
+ script:
+ - tox -e py39-django32
+
+-py39-django-latest:
++py310-django32:
++ stage: test
++ script:
++ - tox -e py310-django32
++
++py310-django40:
++ stage: test
++ script:
++ - tox -e py310-django40
++
++py310-django-latest:
+ stage: test
+ allow_failure: true
+ script:
+ - printf "Remove all django version restriction from setup.py.\n"
+ - sed -E 's/django[<=>,.[:digit:]]+/django/' -i setup.py
+- - tox -e py39-django-latest
++ - tox -e py310-django-latest
+
+ coverage:
+ stage: test
+--
+GitLab
+
More information about the arch-commits
mailing list