[arch-commits] Commit in mailman3/trunk (5 files)
David Runge
dvzrv at gemini.archlinux.org
Wed Aug 3 22:09:26 UTC 2022
Date: Wednesday, August 3, 2022 @ 22:09:26
Author: dvzrv
Revision: 1260174
upgpkg: mailman3 3.3.5-6: Rebuild to add patch for accepting booleans in REST API.
Add patch to accept booleans in REST API: https://bugs.archlinux.org/task/75505
Switch to PEP517.
Added:
mailman3/trunk/keys/
mailman3/trunk/keys/pgp/
mailman3/trunk/keys/pgp/541EA0448453394FF77A0ECC9D9B2BA061D0A67C.asc
mailman3/trunk/mailman3-3.3.5-booleans_rest_api.patch
Modified:
mailman3/trunk/PKGBUILD
-------------------------------------------------------+
PKGBUILD | 37 ++++++----
keys/pgp/541EA0448453394FF77A0ECC9D9B2BA061D0A67C.asc | 1
mailman3-3.3.5-booleans_rest_api.patch | 58 ++++++++++++++++
3 files changed, 82 insertions(+), 14 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2022-08-03 21:54:01 UTC (rev 1260173)
+++ PKGBUILD 2022-08-03 22:09:26 UTC (rev 1260174)
@@ -3,7 +3,7 @@
_name=mailman
pkgname=mailman3
pkgver=3.3.5
-pkgrel=5
+pkgrel=6
pkgdesc="The GNU mailing list manager"
arch=(any)
url="https://www.list.org/"
@@ -16,17 +16,19 @@
python-passlib python-requests python-sqlalchemy1.3
python-zope-component python-zope-configuration python-zope-event
python-zope-interface)
-makedepends=(git python-setuptools)
+makedepends=(git python-build python-installer python-setuptools python-wheel)
checkdepends=(python-flufl.testing python-nose2 python-psycopg2
python-pymysql python-pytest)
-optdepends=('hyperkitty: for local archive and list interaction'
- 'lynx: for the default HTML to plaintext conversion'
- 'mailman3-hyperkitty: for archiving mails with an instance of hyperkitty'
- 'postorius: for local configuration interaction'
- 'python-mailmanclient: for programmatically interfacing the mailman REST API locally'
- 'python-psycopg2: for PostgreSQL support'
- 'python-pymysql: for MySQL support'
- 'smtp-server: for using a local mail server')
+optdepends=(
+ 'hyperkitty: for local archive and list interaction'
+ 'lynx: for the default HTML to plaintext conversion'
+ 'mailman3-hyperkitty: for archiving mails with an instance of hyperkitty'
+ 'postorius: for local configuration interaction'
+ 'python-mailmanclient: for programmatically interfacing the mailman REST API locally'
+ 'python-psycopg2: for PostgreSQL support'
+ 'python-pymysql: for MySQL support'
+ 'smtp-server: for using a local mail server'
+)
conflicts=(mailman)
replaces=(mailman-core)
backup=(etc/mailman.cfg)
@@ -46,6 +48,7 @@
$pkgname.tmpfiles
$pkgname-3.3.5-python-alembic1.7.patch
$pkgname-3.3.5-moderate_cross_posted.patch
+ $pkgname-3.3.5-booleans_rest_api.patch
)
sha512sums=('SKIP'
'5773eae02dee11b83eb73ba81bca98d9d0a22fa3175d53172d17bbc0e9821360a4d562b6f42a3bb55c2f0c0b5b50ab84ee82da4cf8b3ff38555a378687dcde3c'
@@ -58,7 +61,8 @@
'074cf58a93204d4b7631c4cc8af62d5720560301c6fefef6baa5d3aa33e72720870757fac7803f7b2835f8f02bb776f9d049df5c7528c743b56dda7da2085b07'
'6f4b51fd5eb34ac974b3312c34eb1437d9435cfd50f0cb89db02b94ce514bceca2c6dc7cb172b79b2d6a23d68e7ea391ec58dbd9899938c0fe88c03c67c521b9'
'3cba6577f70a212eca3590afbb03de0943c3509c7f93c29cd50da538e7a109626790becfa3f83098ee085ccf33c0612a9bedf3292089cfc9bdeabb83bda3f653'
- '55fa201bedc7926dfe1b8d7ca81c72e575f4c83a80ca3585c66f222efbc78c1a70af74be864d3e310aec7f10d2fc740e746c7d995b84aea716aceadd4c266d16')
+ '55fa201bedc7926dfe1b8d7ca81c72e575f4c83a80ca3585c66f222efbc78c1a70af74be864d3e310aec7f10d2fc740e746c7d995b84aea716aceadd4c266d16'
+ 'd4912abf8b13f205993f68d2f18fcad4e3b11a00da0ed54b4177417f129e074f066527e5984f237a8ae71d6c4277c12163ea53e695d376434a6cfe2c65ee3c2a')
b2sums=('SKIP'
'3efaa4559bcf54b322f4a21ee3000f5b2bea72dad2f9f436967f5c4d4ed8046bc08f8e31457991e63252237134f3f7d2f9e7e7862ebc211aeef11d506ded4440'
'fc6d6545dad6cecfd4c1197269a3ec025eb0b830e04151bb2dee778b9e357127667c5a65ea401b10e31e2ec6a8509719de29c30471fa50d09634c934bdf50b9b'
@@ -70,7 +74,8 @@
'594d6a6712f9e817f4d935225d3a1d87c96e23f1e449caab6bfb00ce2a0421af1401505c6d1d280a03f8c551136639f0dabf27d8b549ca4ea26bdb3febdda660'
'461dce577696405011ed89f7fc109caaf27f4183b4d315baa8ad03db0f12015ebc447cbe9c0b8c5bcba38b63fcaf45adcfcb3e5bf5afb7eb0bd87a2e1b0301e5'
'736b7bfb0d41cbf0703212139f326c1aeb04d7d800b0819c4f5fe101d5d105686dfe2fa0d8c2ae2c87d3e23314a8c126a83b5b4d467d7fb1b8073e176daa297b'
- '21e9213373b2432e0c7a90bd11b203e7e71dc110001dde40e9a258d6c26de9484a6b45c06444864bb65f727a587c5eec7b052358549025a9fab4e9cb9762a5fb')
+ '21e9213373b2432e0c7a90bd11b203e7e71dc110001dde40e9a258d6c26de9484a6b45c06444864bb65f727a587c5eec7b052358549025a9fab4e9cb9762a5fb'
+ '20bae136e041690fe000659ce400499cc7391176cd5852888863fb85669d514b6a6081674eac9d73ee6fe2b89416665aedc9bec5aa4570406842d652dbfcb765')
validpgpkeys=('541EA0448453394FF77A0ECC9D9B2BA061D0A67C') # Abhilash Raj <maxking at asynchronous.in>
prepare() {
@@ -80,6 +85,9 @@
# fix issue with moderating cross-posted messages: https://gitlab.com/mailman/mailman/-/issues/955
patch -d $pkgname -Np1 -i ../$pkgname-3.3.5-moderate_cross_posted.patch
+ # accept booleans in REST API: https://gitlab.com/mailman/mailman/-/issues/970
+ patch -d $pkgname -Np1 -i ../$pkgname-3.3.5-booleans_rest_api.patch
+
cd $pkgname
# make sure that mailman runs in a FHS compliant way
printf "[mailman]\nlayout: fhs\n" >> ../$_name.cfg
@@ -89,7 +97,7 @@
build() {
cd $pkgname
- python setup.py build
+ python -m build --wheel --no-isolation
}
check() {
@@ -96,11 +104,12 @@
cd $pkgname
# thanks to test design it is impossible to run tests:
# https://gitlab.com/mailman/mailman/-/issues/400
+ # nose2 -v
}
package() {
cd $pkgname
- python setup.py install --optimize=1 --root="$pkgdir"
+ python -m installer --destdir="$pkgdir" dist/*.whl
# config
install -vDm 640 ../$_name.cfg -t "$pkgdir/etc/"
Added: keys/pgp/541EA0448453394FF77A0ECC9D9B2BA061D0A67C.asc
===================================================================
(Binary files differ)
Index: mailman3/trunk/keys/pgp/541EA0448453394FF77A0ECC9D9B2BA061D0A67C.asc
===================================================================
--- keys/pgp/541EA0448453394FF77A0ECC9D9B2BA061D0A67C.asc 2022-08-03 21:54:01 UTC (rev 1260173)
+++ keys/pgp/541EA0448453394FF77A0ECC9D9B2BA061D0A67C.asc 2022-08-03 22:09:26 UTC (rev 1260174)
Property changes on: mailman3/trunk/keys/pgp/541EA0448453394FF77A0ECC9D9B2BA061D0A67C.asc
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pgp-keys
\ No newline at end of property
Added: mailman3-3.3.5-booleans_rest_api.patch
===================================================================
--- mailman3-3.3.5-booleans_rest_api.patch (rev 0)
+++ mailman3-3.3.5-booleans_rest_api.patch 2022-08-03 22:09:26 UTC (rev 1260174)
@@ -0,0 +1,58 @@
+diff --git a/src/mailman/rest/helpers.py b/src/mailman/rest/helpers.py
+index 6f5d02872551d68942bfcc09b89dfec2934dce27..3efd772411769b502a2d32fec19e83d87d44a47c 100644
+--- a/src/mailman/rest/helpers.py
++++ b/src/mailman/rest/helpers.py
+@@ -249,6 +249,8 @@ class GetterSetter:
+ """
+ if self.decoder is None:
+ return value
++ if self.decoder is as_boolean and isinstance(value, bool):
++ return value
+ return self.decoder(value)
+
+
+diff --git a/src/mailman/rest/tests/test_listconf.py b/src/mailman/rest/tests/test_listconf.py
+index e9f1844fb0d5393c66b91b1ff9a01597a7a48e9b..59885bd9ef57f9258cb224281244dd2983788ebe 100644
+--- a/src/mailman/rest/tests/test_listconf.py
++++ b/src/mailman/rest/tests/test_listconf.py
+@@ -292,6 +292,17 @@ class TestConfiguration(unittest.TestCase):
+ 'Invalid Parameter "archive_policy": Accepted Values are:'
+ ' never, private, public.')
+
++ def test_patch_with_json_boolean(self):
++ # Ensure we can patch with JSON boolean value.
++ with transaction():
++ self._mlist.gateway_to_mail = False
++ response = call_api(
++ 'http://localhost:9001/3.0/lists/ant.example.com/config',
++ method='PATCH', headers={'Content-Type': 'application/json'},
++ json={'gateway_to_mail': True})
++ self.assertEqual(response[1].status_code, 204)
++ self.assertTrue(self._mlist.gateway_to_mail)
++
+ def test_bad_pipeline_name(self):
+ with self.assertRaises(HTTPError) as cm:
+ call_api(
+diff --git a/src/mailman/rest/tests/test_validator.py b/src/mailman/rest/tests/test_validator.py
+index 32c4a60c8d8920592a83d8296934a404f89eadfe..664770d7261872f428ac4a7991df7015d1414679 100644
+--- a/src/mailman/rest/tests/test_validator.py
++++ b/src/mailman/rest/tests/test_validator.py
+@@ -19,6 +19,7 @@
+
+ import unittest
+
++from lazr.config import as_boolean
+ from mailman.app.lifecycle import create_list
+ from mailman.core.api import API30, API31
+ from mailman.database.transaction import transaction
+@@ -170,3 +171,10 @@ class TestGetterSetter(unittest.TestCase):
+ ['application/octet-stream'])
+ self.assertEqual(list(self._mlist.pass_extensions),
+ ['.pdf'])
++
++ def test_set_boolean_as_bool(self):
++ # Non-pythonic POST data can contain JSON booleans. Ensure we can
++ # handle that.
++ getset = helpers.GetterSetter(as_boolean)
++ self.assertTrue(getset(True))
++ self.assertFalse(getset(False))
More information about the arch-commits
mailing list