Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: pu
Python3-dns 3.0.2 contained a change that resulted in an inadvertent type change for the rdata of AAAA queries. This is incompatible with python-dns and breaks IPv6 related queries for at least one package in the archive, python3-spf: python3 /usr/lib/python3/dist-packages/spf.py 2001:7b8:206:1::5 t...@unbound.net unbound.net Traceback (most recent call last): File "/usr/lib/python3/dist-packages/spf.py", line 1971, in <module> print(q.check(),q.mechanism) File "/usr/lib/python3/dist-packages/spf.py", line 543, in check rc = self.check1(spf, self.d, 0) File "/usr/lib/python3/dist-packages/spf.py", line 582, in check1 return self.check0(spf, recursion) File "/usr/lib/python3/dist-packages/spf.py", line 876, in check0 if self.cidrmatch(self.dns_mx(arg), cidrlength): File "/usr/lib/python3/dist-packages/spf.py", line 1289, in cidrmatch for ip in [bin(ip) for ip in ipaddrs]: File "/usr/lib/python3/dist-packages/spf.py", line 1289, in <listcomp> for ip in [bin(ip) for ip in ipaddrs]: File "/usr/lib/python3/dist-packages/spf.py", line 1733, in bin2long6 h, l = struct.unpack("!QQ", str) TypeError: 'str' does not support the buffer interface This is fixed upstream in version 3.0.3 that is in sid and should migrate to testing shortly. Debdiff is attached.
diff -u py3dns-3.0.2/debian/changelog py3dns-3.0.2/debian/changelog --- py3dns-3.0.2/debian/changelog +++ py3dns-3.0.2/debian/changelog @@ -1,3 +1,10 @@ +py3dns (3.0.2-1+wheezy1) wheezy; urgency=low + + * Revert AAAA query result type change and return raw bytes instead of + string (LP: #1184367) + + -- Scott Kitterman <sc...@kitterman.com> Thu, 30 May 2013 09:29:05 -0400 + py3dns (3.0.2-1) unstable; urgency=low * New upstream release only in patch2: unchanged: --- py3dns-3.0.2.orig/DNS/Lib.py +++ py3dns-3.0.2/DNS/Lib.py @@ -494,12 +494,6 @@ else: enc = DNS.LABEL_ENCODING return self.getaddr().decode(enc) - def getAAAAdata(self): - if DNS.LABEL_UTF8: - enc = 'utf8' - else: - enc = DNS.LABEL_ENCODING - return self.getaddr6().decode(enc) def getWKSdata(self): address = self.getaddr() protocol = ord(self.getbyte())