A sr.ht/py3-aiosmtpd/0001-Make-LHLO-behave-like-EHLO.patch => sr.ht/py3-aiosmtpd/0001-Make-LHLO-behave-like-EHLO.patch +58 -0
@@ 0,0 1,58 @@
+From 0efc8e3404050331c033cc4388a9855f5508dc7b Mon Sep 17 00:00:00 2001
+From: Simon Ser <contact@emersion.fr>
+Date: Mon, 16 Nov 2020 14:19:31 +0100
+Subject: [PATCH] Make LHLO behave like EHLO
+
+The current logic makes LHLO behave like the legacy HELO. However the
+RFC says:
+
+> The LHLO command has identical semantics to the EHLO command of ESMTP.
+
+Clients connecting to the LMTP server expect extensions such as 8BITMIME
+to be advertised. However aiosmtpd won't send any extension string.
+
+Fix this by making LHLO an alias for EHLO instead of HELO.
+
+[1]: https://tools.ietf.org/html/rfc2033#section-4.1
+---
+ aiosmtpd/lmtp.py | 2 +-
+ aiosmtpd/tests/test_lmtp.py | 10 +++++++++-
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/aiosmtpd/lmtp.py b/aiosmtpd/lmtp.py
+index 53ed087364d2..61e7768f4474 100644
+--- a/aiosmtpd/lmtp.py
++++ b/aiosmtpd/lmtp.py
+@@ -7,7 +7,7 @@ class LMTP(SMTP):
+ @syntax('LHLO hostname')
+ async def smtp_LHLO(self, arg):
+ """The LMTP greeting, used instead of HELO/EHLO."""
+- await super().smtp_HELO(arg)
++ await super().smtp_EHLO(arg)
+ self.show_smtp_greeting = False
+
+ async def smtp_HELO(self, arg):
+diff --git a/aiosmtpd/tests/test_lmtp.py b/aiosmtpd/tests/test_lmtp.py
+index a3855e45b2b0..d32a394e756b 100644
+--- a/aiosmtpd/tests/test_lmtp.py
++++ b/aiosmtpd/tests/test_lmtp.py
+@@ -25,7 +25,15 @@ class TestLMTP(unittest.TestCase):
+ with SMTP(*self.address) as client:
+ code, response = client.docmd('LHLO', 'example.com')
+ self.assertEqual(code, 250)
+- self.assertEqual(response, bytes(socket.getfqdn(), 'utf-8'))
++ lines = response.splitlines()
++ expecteds = (
++ bytes(socket.getfqdn(), 'utf-8'),
++ b'SIZE 33554432',
++ b'8BITMIME',
++ b'HELP',
++ )
++ for actual, expected in zip(lines, expecteds):
++ self.assertEqual(actual, expected)
+
+ def test_helo(self):
+ # HELO and EHLO are not valid LMTP commands.
+--
+2.29.2
+
M sr.ht/py3-aiosmtpd/APKBUILD => sr.ht/py3-aiosmtpd/APKBUILD +5 -4
@@ 2,8 2,8 @@
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py3-aiosmtpd
_pyname=aiosmtpd
-pkgver=1.2
-pkgrel=2
+pkgver=1.2.2
+pkgrel=0
pkgdesc="A reimplementation of the Python stdlib smtpd.py based on asyncio"
url="https://github.com/aio-libs/aiosmtpd"
arch="noarch"
@@ 11,10 11,9 @@ license="Apache-2.0"
depends="py3-atpublic"
makedepends="python3-dev py3-setuptools py3-pytest"
_pypiprefix="${_pyname%${_pyname#?}}"
-# Remove test-ssl-certs.patch for next version
source="
https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz
- test-ssl-certs.patch
+ 0001-Make-LHLO-behave-like-EHLO.patch
"
replaces="py-aiosmtpd"
builddir="$srcdir"/$_pyname-$pkgver
@@ 31,3 30,5 @@ package() {
python3 setup.py install --prefix=/usr --root="$pkgdir"
}
+sha512sums="7ffc279a73685601496dbfffef30a78cc254a76f8c8fccd0c7b7efe41da66672f0d8662f302eb928e90eb8977b859cb7e713415d0aa5e93f369ef23bdff405fc aiosmtpd-1.2.2.tar.gz
+fac4ce50a992d3d77a57b8da2cf9656f0c3945a446b31121269d7f04290d1e656ee21d9bd044830e1447cc11ddc160baf59ef034e279e12deed1bc25f916a832 0001-Make-LHLO-behave-like-EHLO.patch"
D sr.ht/py3-aiosmtpd/test-ssl-certs.patch => sr.ht/py3-aiosmtpd/test-ssl-certs.patch +0 -121
@@ 1,121 0,0 @@
-From f414dcdc0312c4cf3f3d39deb3ea7d15e89a5334 Mon Sep 17 00:00:00 2001
-From: Wayne Werner <wayne@waynewerner.com>
-Date: Sat, 1 Jun 2019 14:00:30 +0000
-Subject: [PATCH] Create new ssl certs
-
-These ones will be valid for 100 years, so that should be plenty of
-time for running tests before they have to be recreated.
----
- aiosmtpd/tests/certs/server.crt | 43 +++++++++++++--------------
- aiosmtpd/tests/certs/server.key | 52 ++++++++++++++++-----------------
- 2 files changed, 47 insertions(+), 48 deletions(-)
-
-diff --git a/aiosmtpd/tests/certs/server.crt b/aiosmtpd/tests/certs/server.crt
-index e4f8f09..04f19cf 100644
---- a/aiosmtpd/tests/certs/server.crt
-+++ b/aiosmtpd/tests/certs/server.crt
-@@ -1,24 +1,23 @@
- -----BEGIN CERTIFICATE-----
--MIIEEzCCAvugAwIBAgIJANUfzx76nsWrMA0GCSqGSIb3DQEBCwUAMIGfMQswCQYD
--VQQGEwJSVTEZMBcGA1UECAwQU2FpbnQtUGV0ZXJzYnVyZzEZMBcGA1UEBwwQU2Fp
--bnQtUGV0ZXJzYnVyZzETMBEGA1UECgwKSW50ZXJtZWRpYTEQMA4GA1UECwwHRGV2
--VGVhbTEMMAoGA1UEAwwDYWVzMSUwIwYJKoZIhvcNAQkBFhZrdm9sa292QGludGVy
--bWVkaWEubmV0MB4XDTE2MDgyMzEzMDE1NFoXDTE5MDUyMDEzMDE1NFowgZ8xCzAJ
--BgNVBAYTAlJVMRkwFwYDVQQIDBBTYWludC1QZXRlcnNidXJnMRkwFwYDVQQHDBBT
--YWludC1QZXRlcnNidXJnMRMwEQYDVQQKDApJbnRlcm1lZGlhMRAwDgYDVQQLDAdE
--ZXZUZWFtMQwwCgYDVQQDDANhZXMxJTAjBgkqhkiG9w0BCQEWFmt2b2xrb3ZAaW50
--ZXJtZWRpYS5uZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0c3sW
--h3wlBuM21PhiF2AKlYniu697xCv3cvOyqg4ybq+Vd44ldQc+3twIyxtO+p1zgxTW
--bkxwV+s6qBU5i09m8RHX2sBW0e61Vx4dR8dEkGjmqy3hebJy33GZOWh5bp1yZoZp
--9AsbGQ2dNPCBSc75hc/5+CMcyzoK3pXuC09kwXPNmnWgy/dJWk6FVRP3/3u2KkDo
--ZGKDY7+vnJ8hYLk+stGZGfu0C6qU7cguRnsuuH6nC6KIhbn3hJNVYMlXRBXF1tE4
--UBjvdSYlFfyiwc1zJ77TVq8lSnn/9yiBfG+xUqGq7+KEHkg3SezmBFTFaXRc+RT3
--e3wf/e5WJRHl4joxAgMBAAGjUDBOMB0GA1UdDgQWBBSR+2YlBnyuYLHm9xNL/dJw
--fn6RtjAfBgNVHSMEGDAWgBSR+2YlBnyuYLHm9xNL/dJwfn6RtjAMBgNVHRMEBTAD
--AQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCJExJ/YpMJeWq/VsEBiQ9MevNUbhy4bDn1
--8JkDazIAwcSALkqG+VKFp5JBJxS8BIMJ//31L26r0pjT8eOCivyEAf5jtBt594Jn
--v+IANbVXfGds3H0QtFgpMKDlvpwfYDXwNDRsClLhwgIzhkrtl0y1vIn6gNx2Np0p
--Xn4nRewPXpNfUXuE4mot0njMOp2Iyf0AuhaM9rqqK9TEwZCvpwpptjnBg0Z+vd+h
--U4rQNt6WaRMkYc1xZpOy6pESB98JkmTFJ6se33JLc7GXJbdLcQ+Zy6TWCGhUqZ/U
--kaKttZGpHTZfuMkwRwhPG6ou3SlvlARYN3wGTMy+Um9tk+J+k0Tw
-+MIID6DCCAtCgAwIBAgIJAOT/DNOqIMqmMA0GCSqGSIb3DQEBCwUAMIGHMQswCQYD
-+VQQGEwJVUzELMAkGA1UECAwCQVIxEjAQBgNVBAcMCUdyZWVud29vZDERMA8GA1UE
-+CgwIQWlvc210cGQxEDAOBgNVBAsMB0RldlRlYW0xDDAKBgNVBAMMA2FlczEkMCIG
-+CSqGSIb3DQEJARYVd2F5bmVAd2F5bmV3ZXJuZXIuY29tMCAXDTE5MDYwMTEzNTUy
-+NloYDzIxMTkwNTA4MTM1NTI2WjCBhzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkFS
-+MRIwEAYDVQQHDAlHcmVlbndvb2QxETAPBgNVBAoMCEFpb3NtdHBkMRAwDgYDVQQL
-+DAdEZXZUZWFtMQwwCgYDVQQDDANhZXMxJDAiBgkqhkiG9w0BCQEWFXdheW5lQHdh
-+eW5ld2VybmVyLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMXp
-+glx/G19+jt/m/AQAy4+85ng3L1/PsXri91SpvPz1YD7Z3/0Yz3SFyuP1mkRCTplO
-+H3Ok1BVbnycHxBDLBkbEjoJOfzMWxsV1Xp1vE4XEVQaq111pjgxQoFD1qU9vOs4c
-+0g54PSTtGio0WCOcJq1fWXz9T1QqM5n4MAL2KzFNkqfyyhCesoja4qnPn9n8MCjk
-+TFslwX/2xJVXrsZyGH0IwiGmJDzkW3/FgXj0brcRZe4BYx/BM7ka1LDNnrdUQ7Wj
-+GuYbC7mQLWzOUJBF+UQUWHbPadCEPYpAgd4J4seME2XUW/ygi95oY6mJcZGOyz0c
-+c8D/Dja8Elt5DeTYypsCAwEAAaNTMFEwHQYDVR0OBBYEFDofuwFE+DEx8uQisFlQ
-+Dfn4LIqdMB8GA1UdIwQYMBaAFDofuwFE+DEx8uQisFlQDfn4LIqdMA8GA1UdEwEB
-+/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAKdtV5GiiE66bZyqh7aKAOJb6dAe
-+qAD8LH9u2hqili7fHNzRQLppSiNGGxy/yZoqh7+I3Z64km5jEiSiw2bY7vqbhReC
-+qU57Dlf5Q4PQVSe36d+2T/g0oGq1pzJkfY27Pse+e9c/m4FkKeEltdqS8Tl2WJFI
-+Qfux88wBnfrZWCgCvZFQGD6RaqEx9Z2//cUOmU+FcM+JHfbfnQy2QEY13CKQfniP
-+YBprCg866+ecVC+J+Aeu9ubZgv557SJwJ/0b4rsQ/ETUw95g6AxqdHntDTrWamxQ
-+iKiGHt3N9iEdnnjXsKYNMsOFXSHHG10PtBQUpNOSUrp5HMb1Kd0oTdNz/kU=
- -----END CERTIFICATE-----
-diff --git a/aiosmtpd/tests/certs/server.key b/aiosmtpd/tests/certs/server.key
-index f9e279b..f22e0f5 100644
---- a/aiosmtpd/tests/certs/server.key
-+++ b/aiosmtpd/tests/certs/server.key
-@@ -1,28 +1,28 @@
- -----BEGIN PRIVATE KEY-----
--MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC0c3sWh3wlBuM2
--1PhiF2AKlYniu697xCv3cvOyqg4ybq+Vd44ldQc+3twIyxtO+p1zgxTWbkxwV+s6
--qBU5i09m8RHX2sBW0e61Vx4dR8dEkGjmqy3hebJy33GZOWh5bp1yZoZp9AsbGQ2d
--NPCBSc75hc/5+CMcyzoK3pXuC09kwXPNmnWgy/dJWk6FVRP3/3u2KkDoZGKDY7+v
--nJ8hYLk+stGZGfu0C6qU7cguRnsuuH6nC6KIhbn3hJNVYMlXRBXF1tE4UBjvdSYl
--Ffyiwc1zJ77TVq8lSnn/9yiBfG+xUqGq7+KEHkg3SezmBFTFaXRc+RT3e3wf/e5W
--JRHl4joxAgMBAAECggEAFLHZv++x0R1FGZi7E6TSouQbeCFGMs+Aq1RHloniLu56
--vI2Fg840EoXEfk2syBX90K2LyjvEEG5Ez+lO5daQOKIVBchUnqBc2/ctwPXmaHqX
--TTz8egtW582wXX4z+RkyfVg8uhH+5BCvewQDQRCR6BPskiJfBIJaGb0FPNOXO1qy
--vI0MupbfHU1J80M6PEzfszswdC+5Lgx0kFRphr8mSLn42dlFsqFVmFCVuaxg6bfn
--zowXppUcUM4lkBrsXpLKYTr2+u64wZkclL/GjMCYuyQ52xiBsw3JPDeDDFI3kFkw
--gOCqDedqyim60qM9Dtq1bf4EW4/AEZp5LM7bSOXTsQKBgQDtuUynfJyKsqdXCrAa
--Z+uVhSlAN7a4/n4s0wFomgXmQnYNaNAq5PF8Nplq95JiGkD6BX/FPKPUxHwpeT3F
--F98h03BafU/06RR/m3A8ACclTVM5vmqv3I+L2eqAPVP+mE5pPrQwMxhxwhcHrbtg
--LmUVegkahRZgR8WhrhRyQ6fL0wKBgQDCUvubeKtY09u6j1AuTgfGCNmjqFyNHsuZ
--PQhqmiIcsmKWja2ybiFk8hQf09scjQOGC9GunD1aB8KTnBYOr/WcNLRjLuKWL3WO
--xKDfIrOJ6StooU6+/hYz+RBcYn87d4sSVzZIgTPdN1OyQKls9QhP4Ds9j4wWNmnM
--EWEjzCczawKBgQCcNP6hr8hNe0dqcqN1NoQfI/kPMYzn0pKmcaCjU1I9E77u4Mio
--5venX1lAaJ3PyOCZabOjr00YKmRL/FcSg7UjTQSu8Vjw3ZeSolkFlDQk1sKxVuZT
--2OKaSv9EdQgUa5Bap9FPOsP9PERVz1sowFO74QzKWFlzurWqn/DfhIVl8QKBgEmN
--a1rvk7uthQ/aSvkb4+lbVDWT9mQb8ehwp4ziBmNiSdq+ia5t7QnubxuU7uyhm2HT
--e2xiCv7WzRleDSNGCuszL8wS5QT/tblyR4nt8pMSxLF3zPyR5AmMDltJlOsHVoZ8
--qDlNXjovROjFfNuW66yALSwh9144/laVhXUtQvE9AoGBANvLJfJ7b3QxvQduFfRB
--667/l4/2zkVvPkKABgf+v+/GH+oQq4K3ZX+LZDQb1PcliaUNtE1l3maQNUTa1iar
--WMYYYhs05mnIWCYu9H8Dd1LzpNmZVqTK6cJSTrbOAkStopf95l0QGUxG+hIbewmh
--HJa7IfPvASHjtu/R/HZr/n5W
-+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDF6YJcfxtffo7f
-+5vwEAMuPvOZ4Ny9fz7F64vdUqbz89WA+2d/9GM90hcrj9ZpEQk6ZTh9zpNQVW58n
-+B8QQywZGxI6CTn8zFsbFdV6dbxOFxFUGqtddaY4MUKBQ9alPbzrOHNIOeD0k7Roq
-+NFgjnCatX1l8/U9UKjOZ+DAC9isxTZKn8soQnrKI2uKpz5/Z/DAo5ExbJcF/9sSV
-+V67Gchh9CMIhpiQ85Ft/xYF49G63EWXuAWMfwTO5GtSwzZ63VEO1oxrmGwu5kC1s
-+zlCQRflEFFh2z2nQhD2KQIHeCeLHjBNl1Fv8oIveaGOpiXGRjss9HHPA/w42vBJb
-+eQ3k2MqbAgMBAAECggEBAMLwy8giJys7tK2Ujn2+7sMpNPYKnW5JXK8HasmI269q
-+Xp/p6XgafRVwR7WckJRVn6ffzJkTLRfQhIZkXtqPsCH6r8hoW2BOOgH7JvP5mggz
-+p/CGTNYlB5bXv+Ge6GNm00x8FOfNxaReq1wQ7RQ+VdaFydaUiBQF8YficCAqq8bF
-+v2q/5XBydcJ4N2fyI4Mm3g03NIiXjeCNbxU5MBTwx2W6xN+PitN/KPGrC/KQoQEt
-+PibnBkojBFfty8FTjISX/7ZKaQBp3UEktccru0k1V2LpOJ+aQMfPLGSgMdyx8hei
-+oQbwv97dQfTjMaC3z53ae2sbfOyFmurWcV8Yhlo1uQECgYEA528s2Gsybcg1NQYo
-+63Z7UYNd4PWOIHVuaf6XX06e0zUncaY0yf5sb0W1VTrXJ6VdgRT1Et9kkgYKZ2I7
-+zsLnJQQiB0Xk7K+kha9WRgmtsxqsks9E61S/K+Ao0hNBeegwn8G6tu8KQlFDKVF0
-+LN/SU/Q9J2/CVeaMDK8fugs3yoECgYEA2utto2CJ3TALc451yhqYiVHMq2WLW3M0
-++ctrRqTQJ/vgTgCXNDNZPPY+xY83Hbcaw4XxBUI9idNyorqUP3Z05kKEyZUSe4YK
-+SnRi5+m/YLghNCX/MDAQasmCvV8I3ZXvzqP0TuAQW3XETqs3Cwy5wJfGXYxkVf41
-+4fe0ypvo7xsCgYA+C744HzUb3Yr2NjqONeuFxPRMNUjvRsxdOlYWxRsrgJqci3Sn
-+msAzbLraqLW5+UmCK74wWxe5Vkk/wkRKgFI7yEnfLUvccJJpDMLScBHTbJlLmqnd
-+dZDzEFuhRmxNZIR0sBmApcFYWjTpRN8ikLbwrxAeHIY7RV3SoLiexhclAQKBgAD4
-+2KTIEfSkePiLYmSCV7kMXu9H5SWDznFpgNFwe+ghiy5tfD5kF/pYUZEJAMKmBH1n
-+w9k1IRbSlIi6cVwSx5QaKYLHoaxgvPz1pVbIR+xDBQq5PHfXTstal7UFjgGF3+m3
-++qa7AfeV/0gmJHltFgoP4naZ3/wtw8l8ExZvOMqPAoGBAMG9pMCCY653KfRQ237I
-+m/ds9b3VmaLZ5wAwoAEeU/kfwVa27GlP6uDwz6xJmn3XLQ29YwWx8hgqIBm5TfBU
-+EYQE2RNEcTOY5fnT7QK+xrKyvr3o8fTxCV15EzX/Nwc723QCO8mXN/8ekAhBRHQ7
-+6QRoqSt0NeWpSSVRTNwYwFrL
- -----END PRIVATE KEY-----