Bug#710396: pu: package py3dns/3.0.2-1+wheezy1
Package: release.debian.org
Severity: normal
User: release.debian.org@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 test@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 <scott@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())
Reply to: