Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package dkimpy [ Reason ] This is a very targetted bug fix release which will reduce cases where tracebacks ocurr due to a programming error as well as addressing a minor exception classification error. This will both improve things for bookworm users at (and slightly before) release and save the overhead of a stable update. [ Impact ] Tracebacks when there are DNS errors which may negative affect mail delivery for mail servers which use dkimpy as part of their MTA. [ Tests ] The package has an extensive automated test suite, which is run by the package's autopkgtest, but it does not test DNS resolver integration (because it overrides the DNS related code to avoid needing internet acces to run tests). I did, however, manually test these changes with a temporarily customized version of the test suite that used real DNS. Some of the changes were also tested by the (non-Debian) original bug reporter. [ Risks ] Risks are nil. This is well tested and in the event I screwed it up somehow, it's stunningly unlikely that anything which worked before would break. Code is pretty trivial too. [ Checklist ] [X] all changes are documented in the d/changelog [X] I reviewed all changes and I approve them [X] attach debdiff against the package in testing [ Other info ] The package is currently 4 of 20 days old. It won't get to 20 by the Full Freeze date. Either an unblock or adjusting age days will address the issue since it's not a key package and has a passing non-trivial autopkgtest. unblock dkimpy/1.1.4-1 Scott K
diff -Nru dkimpy-1.1.3/ChangeLog dkimpy-1.1.4/ChangeLog --- dkimpy-1.1.3/ChangeLog 2023-04-30 10:11:53.000000000 -0400 +++ dkimpy-1.1.4/ChangeLog 2023-05-12 01:17:52.000000000 -0400 @@ -1,3 +1,9 @@ +2023-05-12 Version 1.1.4 + - Treat dns.resolver.NoNameservers like NXDOMAIN (not an error) (Thanks to + David for the patch and the report) + - Confine errors from dnspython to dnsplug and use dkim errors, since + dkim.__init__.py doesn't import dns and needs dkim errors (LP: #2018646) + 2023-04-30 Version 1.1.3 - Catch nacl.exceptions.ValueError and raise KeyFormatError, similar to how RSA key errors are treated (LP: #2018021) diff -Nru dkimpy-1.1.3/debian/changelog dkimpy-1.1.4/debian/changelog --- dkimpy-1.1.3/debian/changelog 2023-04-30 10:27:20.000000000 -0400 +++ dkimpy-1.1.4/debian/changelog 2023-05-12 08:41:24.000000000 -0400 @@ -1,3 +1,9 @@ +dkimpy (1.1.4-1) unstable; urgency=medium + + * New upstream release + + -- Scott Kitterman <sc...@kitterman.com> Fri, 12 May 2023 08:41:24 -0400 + dkimpy (1.1.3-1) unstable; urgency=medium * New upstream release diff -Nru dkimpy-1.1.3/dkim/dnsplug.py dkimpy-1.1.4/dkim/dnsplug.py --- dkimpy-1.1.3/dkim/dnsplug.py 2020-08-08 16:55:43.000000000 -0400 +++ dkimpy-1.1.4/dkim/dnsplug.py 2023-05-12 01:07:38.000000000 -0400 @@ -27,12 +27,18 @@ def get_txt_dnspython(name, timeout=5): """Return a TXT record associated with a DNS name.""" + import dkim try: a = dns.resolver.query(name, dns.rdatatype.TXT,raise_on_no_answer=False, lifetime=timeout) for r in a.response.answer: if r.rdtype == dns.rdatatype.TXT: return b"".join(list(r.items)[0].strings) except dns.resolver.NXDOMAIN: pass + except dns.resolver.NoNameservers: pass + except dns.resolver.NoResolverConfiguration as e: + raise dkim.DnsTimeoutError('dns.resolver.NoResolverConfiguration: {0}'.format(e)) + except dns.exception.Timeout as e: + raise dkim.DnsTimeoutError('dns.exception.Timeout: {0}'.format(e)) return None diff -Nru dkimpy-1.1.3/dkim/__init__.py dkimpy-1.1.4/dkim/__init__.py --- dkimpy-1.1.3/dkim/__init__.py 2023-04-30 10:11:53.000000000 -0400 +++ dkimpy-1.1.4/dkim/__init__.py 2023-05-12 01:08:45.000000000 -0400 @@ -802,7 +802,7 @@ except binascii.Error as e: self.logger.error('KeyFormatError: {0}'.format(e)) return False - except dns.exception.Timeout as e: + except DnsTimeoutError as e: self.logger.error('DnsTimeoutError: Domain: {0} Selector: {1} Error message: {2}'.format( sig[b'd'], sig[b's'], e)) return False diff -Nru dkimpy-1.1.3/dkimpy.egg-info/PKG-INFO dkimpy-1.1.4/dkimpy.egg-info/PKG-INFO --- dkimpy-1.1.3/dkimpy.egg-info/PKG-INFO 2023-04-30 10:12:18.000000000 -0400 +++ dkimpy-1.1.4/dkimpy.egg-info/PKG-INFO 2023-05-12 01:18:26.000000000 -0400 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: dkimpy -Version: 1.1.3 +Version: 1.1.4 Summary: DKIM (DomainKeys Identified Mail), ARC (Authenticated Receive Chain), and TLSRPT (TLS Report) email signing and verification Home-page: https://launchpad.net/dkimpy Author: Scott Kitterman @@ -21,7 +21,7 @@ # VERSION - This is dkimpy 1.1.3. + This is dkimpy 1.1.4. # REQUIREMENTS diff -Nru dkimpy-1.1.3/PKG-INFO dkimpy-1.1.4/PKG-INFO --- dkimpy-1.1.3/PKG-INFO 2023-04-30 10:12:18.992257400 -0400 +++ dkimpy-1.1.4/PKG-INFO 2023-05-12 01:18:26.983443300 -0400 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: dkimpy -Version: 1.1.3 +Version: 1.1.4 Summary: DKIM (DomainKeys Identified Mail), ARC (Authenticated Receive Chain), and TLSRPT (TLS Report) email signing and verification Home-page: https://launchpad.net/dkimpy Author: Scott Kitterman @@ -21,7 +21,7 @@ # VERSION - This is dkimpy 1.1.3. + This is dkimpy 1.1.4. # REQUIREMENTS diff -Nru dkimpy-1.1.3/README.md dkimpy-1.1.4/README.md --- dkimpy-1.1.3/README.md 2023-04-30 10:11:53.000000000 -0400 +++ dkimpy-1.1.4/README.md 2023-05-07 14:37:17.000000000 -0400 @@ -13,7 +13,7 @@ # VERSION -This is dkimpy 1.1.3. +This is dkimpy 1.1.4. # REQUIREMENTS diff -Nru dkimpy-1.1.3/setup.py dkimpy-1.1.4/setup.py --- dkimpy-1.1.3/setup.py 2023-04-30 10:11:53.000000000 -0400 +++ dkimpy-1.1.4/setup.py 2023-05-07 14:35:32.000000000 -0400 @@ -25,7 +25,7 @@ import os import sys -version = "1.1.3" +version = "1.1.4" kw = {} # Work-around for lack of 'or' requires in setuptools. try: