From 3db9ea4be20ff9c6a9caba7e4a0af72c30507122 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Fri, 13 Jan 2012 19:41:03 -0600 Subject: [PATCH 1/9] - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild --- python-dns.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-dns.spec b/python-dns.spec index cca99fd..8847968 100644 --- a/python-dns.spec +++ b/python-dns.spec @@ -2,7 +2,7 @@ Name: python-dns Version: 1.9.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: DNS toolkit for Python Group: Development/Languages @@ -65,6 +65,9 @@ rm -rf %{buildroot} %{python_sitelib}/dns %changelog +* Sat Jan 14 2012 Fedora Release Engineering - 1.9.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + * Mon Mar 28 2011 Jeffrey C. Ollie - 1.9.4-1 - - dnspython 1.9.4 has been released and is available at From 515f4143375103ddba69968443a664ea458bbb36 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sat, 21 Jul 2012 01:01:13 -0500 Subject: [PATCH 2/9] - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild --- python-dns.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-dns.spec b/python-dns.spec index 8847968..4e48710 100644 --- a/python-dns.spec +++ b/python-dns.spec @@ -2,7 +2,7 @@ Name: python-dns Version: 1.9.4 -Release: 2%{?dist} +Release: 3%{?dist} Summary: DNS toolkit for Python Group: Development/Languages @@ -65,6 +65,9 @@ rm -rf %{buildroot} %{python_sitelib}/dns %changelog +* Sat Jul 21 2012 Fedora Release Engineering - 1.9.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + * Sat Jan 14 2012 Fedora Release Engineering - 1.9.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild From 0b73da222f41d772359953931f952dc420874346 Mon Sep 17 00:00:00 2001 From: Paul Wouters Date: Mon, 17 Sep 2012 19:08:51 -0400 Subject: [PATCH 3/9] * Updated to 1.10.1 and added TLSA support --- .gitignore | 2 + dnspython-1.10.1-tlsa.patch | 175 ++++++++++++++++++++++++++++++++++++ python-dns.spec | 12 ++- sources | 2 + 4 files changed, 188 insertions(+), 3 deletions(-) create mode 100644 dnspython-1.10.1-tlsa.patch diff --git a/.gitignore b/.gitignore index a0a7207..9764ece 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ dnspython-1.8.0.tar.gz.asc /dnspython-1.9.3.tar.gz.asc /dnspython-1.9.4.tar.gz /dnspython-1.9.4.tar.gz.asc +/dnspython-1.10.0.tar.gz +/dnspython-1.10.0.tar.gz.asc diff --git a/dnspython-1.10.1-tlsa.patch b/dnspython-1.10.1-tlsa.patch new file mode 100644 index 0000000..31aca18 --- /dev/null +++ b/dnspython-1.10.1-tlsa.patch @@ -0,0 +1,175 @@ +commit 38d5ea59581275eafcf55f2d677056875483fa2f +Author: Pieter Lexis +Date: Mon Sep 17 23:58:20 2012 +0200 + + Add TLSA (RFC 6698) record type + +diff --git a/dns/rdatatype.py b/dns/rdatatype.py +index 380cfcd..f64307a 100644 +--- a/dns/rdatatype.py ++++ b/dns/rdatatype.py +@@ -78,6 +78,7 @@ DNSKEY = 48 + DHCID = 49 + NSEC3 = 50 + NSEC3PARAM = 51 ++TLSA = 52 + HIP = 55 + SPF = 99 + UNSPEC = 103 +@@ -140,6 +141,7 @@ _by_text = { + 'DHCID' : DHCID, + 'NSEC3' : NSEC3, + 'NSEC3PARAM' : NSEC3PARAM, ++ 'TLSA' : TLSA, + 'HIP' : HIP, + 'SPF' : SPF, + 'UNSPEC' : UNSPEC, +diff --git a/dns/rdtypes/ANY/TLSA.py b/dns/rdtypes/ANY/TLSA.py +new file mode 100644 +index 0000000..6ca8c0a +--- /dev/null ++++ b/dns/rdtypes/ANY/TLSA.py +@@ -0,0 +1,89 @@ ++# Copyright (C) 2005-2007, 2009-2011 Nominum, Inc. ++# ++# Permission to use, copy, modify, and distribute this software and its ++# documentation for any purpose with or without fee is hereby granted, ++# provided that the above copyright notice and this permission notice ++# appear in all copies. ++# ++# THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES ++# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ++# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR ++# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ++# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT ++# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ ++import struct ++ ++import dns.rdata ++import dns.rdatatype ++ ++class TLSA(dns.rdata.Rdata): ++ """TLSA record ++ ++ @ivar usage: The certificate usage ++ @type usage: int ++ @ivar selector: The selector field ++ @type selector: int ++ @ivar mtype: The 'matching type' field ++ @type mtype: int ++ @ivar cert: The 'Certificate Association Data' field ++ @type cert: string ++ @see: RFC 6698""" ++ ++ __slots__ = ['usage', 'selector', 'mtype', 'cert'] ++ ++ def __init__(self, rdclass, rdtype, usage, selector, ++ mtype, cert): ++ super(TLSA, self).__init__(rdclass, rdtype) ++ self.usage = usage ++ self.selector = selector ++ self.mtype = mtype ++ self.cert = cert ++ ++ def to_text(self, origin=None, relativize=True, **kw): ++ return '%d %d %d %s' % (self.usage, ++ self.selector, ++ self.mtype, ++ dns.rdata._hexify(self.cert, ++ chunksize=128)) ++ ++ def from_text(cls, rdclass, rdtype, tok, origin = None, relativize = True): ++ usage = tok.get_uint8() ++ selector = tok.get_uint8() ++ mtype = tok.get_uint8() ++ cert_chunks = [] ++ while 1: ++ t = tok.get().unescape() ++ if t.is_eol_or_eof(): ++ break ++ if not t.is_identifier(): ++ raise dns.exception.SyntaxError ++ cert_chunks.append(t.value) ++ cert = ''.join(cert_chunks) ++ cert = cert.decode('hex_codec') ++ return cls(rdclass, rdtype, usage, selector, mtype, cert) ++ ++ from_text = classmethod(from_text) ++ ++ def to_wire(self, file, compress = None, origin = None): ++ header = struct.pack("!BBB", self.usage, self.selector, self.mtype) ++ file.write(header) ++ file.write(self.cert) ++ ++ def from_wire(cls, rdclass, rdtype, wire, current, rdlen, origin = None): ++ header = struct.unpack("!BBB", wire[current : current + 3]) ++ current += 3 ++ rdlen -= 3 ++ cert = wire[current : current + rdlen].unwrap() ++ return cls(rdclass, rdtype, header[0], header[1], header[2], cert) ++ ++ from_wire = classmethod(from_wire) ++ ++ def _cmp(self, other): ++ hs = struct.pack("!BBB", self.usage, self.selector, self.mtype) ++ ho = struct.pack("!BBB", other.usage, other.selector, other.mtype) ++ v = cmp(hs, ho) ++ if v == 0: ++ v = cmp(self.cert, other.cert) ++ return v +diff --git a/dns/rdtypes/ANY/__init__.py b/dns/rdtypes/ANY/__init__.py +index 721e9dd..cfb0be6 100644 +--- a/dns/rdtypes/ANY/__init__.py ++++ b/dns/rdtypes/ANY/__init__.py +@@ -33,6 +33,7 @@ __all__ = [ + 'NSEC', + 'NSEC3', + 'NSEC3PARAM', ++ 'TLSA', + 'PTR', + 'RP', + 'RRSIG', +diff --git a/tests/example b/tests/example +index 2f753a2..71fb8e6 100644 +--- a/tests/example ++++ b/tests/example +@@ -165,6 +165,9 @@ srv02 SRV 65535 65535 65535 old-slow-box.example.com. + $TTL 301 ; 5 minutes 1 second + t A 73.80.65.49 + $TTL 3600 ; 1 hour ++tlsa1 TLSA 3 1 1 01a9cdf989b504fe5dca90c0d2167b6550570734f7c763e09fdf88904e06157065 ++tlsa2 TLSA 1 0 1 efddf0d915c7bdc5782c0881e1b2a95ad099fbdd06d7b1f77982d9364338d955 ++tlsa3 TLSA 1 0 2 81ee7f6c0ecc6b09b7785a9418f54432de630dd54dc6ee9e3c49de547708d236d4c413c3e97e44f969e635958aa410495844127c04883503e5b024cf7a8f6a94 + txt01 TXT "foo" + txt02 TXT "foo" "bar" + txt03 TXT "foo" +diff --git a/tests/example1.good b/tests/example1.good +index 0834d17..4c2d01a 100644 +--- a/tests/example1.good ++++ b/tests/example1.good +@@ -90,6 +90,9 @@ srv01 3600 IN SRV 0 0 0 . + srv02 3600 IN SRV 65535 65535 65535 old-slow-box.example.com. + sshfp1 3600 IN SSHFP 1 1 aa549bfe898489c02d1715d97d79c57ba2fa76ab + t 301 IN A 73.80.65.49 ++tlsa1 3600 IN TLSA 3 1 1 01a9cdf989b504fe5dca90c0d2167b6550570734f7c763e09fdf88904e06157065 ++tlsa2 3600 IN TLSA 1 0 1 efddf0d915c7bdc5782c0881e1b2a95ad099fbdd06d7b1f77982d9364338d955 ++tlsa3 3600 IN TLSA 1 0 2 81ee7f6c0ecc6b09b7785a9418f54432de630dd54dc6ee9e3c49de547708d236d4c413c3e97e44f969e635958aa410495844127c04883503e5b024cf7a8f6a94 + txt01 3600 IN TXT "foo" + txt02 3600 IN TXT "foo" "bar" + txt03 3600 IN TXT "foo" +diff --git a/tests/example2.good b/tests/example2.good +index de4bcd5..1bf6b59 100644 +--- a/tests/example2.good ++++ b/tests/example2.good +@@ -90,6 +90,9 @@ srv01.example. 3600 IN SRV 0 0 0 . + srv02.example. 3600 IN SRV 65535 65535 65535 old-slow-box.example.com. + sshfp1.example. 3600 IN SSHFP 1 1 aa549bfe898489c02d1715d97d79c57ba2fa76ab + t.example. 301 IN A 73.80.65.49 ++tlsa1.example. 3600 IN TLSA 3 1 1 01a9cdf989b504fe5dca90c0d2167b6550570734f7c763e09fdf88904e06157065 ++tlsa2.example. 3600 IN TLSA 1 0 1 efddf0d915c7bdc5782c0881e1b2a95ad099fbdd06d7b1f77982d9364338d955 ++tlsa3.example. 3600 IN TLSA 1 0 2 81ee7f6c0ecc6b09b7785a9418f54432de630dd54dc6ee9e3c49de547708d236d4c413c3e97e44f969e635958aa410495844127c04883503e5b024cf7a8f6a94 + txt01.example. 3600 IN TXT "foo" + txt02.example. 3600 IN TXT "foo" "bar" + txt03.example. 3600 IN TXT "foo" diff --git a/python-dns.spec b/python-dns.spec index 4e48710..4dfb8d1 100644 --- a/python-dns.spec +++ b/python-dns.spec @@ -1,8 +1,8 @@ %{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} Name: python-dns -Version: 1.9.4 -Release: 3%{?dist} +Version: 1.10.0 +Release: 1%{?dist} Summary: DNS toolkit for Python Group: Development/Languages @@ -10,6 +10,7 @@ License: MIT URL: http://www.dnspython.org/ Source0: http://www.dnspython.org/kits/%{version}/dnspython-%{version}.tar.gz Source1: http://www.dnspython.org/kits/%{version}/dnspython-%{version}.tar.gz.asc +Patch1: dnspython-1.10.1-tlsa.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch @@ -31,6 +32,7 @@ manipulation of DNS zones, messages, names, and records. %prep %setup0 -q -n dnspython-%{version} +%patch1 -p1 -b .tlsa # strip executable permissions so that we don't pick up dependencies # from documentation @@ -59,12 +61,16 @@ rm -rf %{buildroot} %files %defattr(-,root,root,-) -%doc ChangeLog LICENSE README TODO examples +%doc ChangeLog LICENSE README examples %{python_sitelib}/*egg-info %{python_sitelib}/dns %changelog +* Mon Sep 17 2012 Paul Wouters - 1.10.0-1 +- Updated to 1.10.0 +- Patch to support TLSA RRtype + * Sat Jul 21 2012 Fedora Release Engineering - 1.9.4-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild diff --git a/sources b/sources index 9834fae..7e5c15d 100644 --- a/sources +++ b/sources @@ -1,2 +1,4 @@ 8a89b7865251c4e9d8ec2f8cc9f8cd78 dnspython-1.9.4.tar.gz 413d7fc295c6bf03f872938731919c95 dnspython-1.9.4.tar.gz.asc +b4f60852fd7ba64fc7c3a1fa239eba33 dnspython-1.10.0.tar.gz +81d7579e66ca37d0b03dce051b60324d dnspython-1.10.0.tar.gz.asc From 057fb5816e9d26042bf81bb93716b4633762e332 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Thu, 14 Feb 2013 13:24:40 -0600 Subject: [PATCH 4/9] - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild --- python-dns.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-dns.spec b/python-dns.spec index 4dfb8d1..ed4a744 100644 --- a/python-dns.spec +++ b/python-dns.spec @@ -2,7 +2,7 @@ Name: python-dns Version: 1.10.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: DNS toolkit for Python Group: Development/Languages @@ -67,6 +67,9 @@ rm -rf %{buildroot} %{python_sitelib}/dns %changelog +* Thu Feb 14 2013 Fedora Release Engineering - 1.10.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + * Mon Sep 17 2012 Paul Wouters - 1.10.0-1 - Updated to 1.10.0 - Patch to support TLSA RRtype From 2ab9b1809444b25daed334b1125d48b3c7b0c039 Mon Sep 17 00:00:00 2001 From: Paul Wouters Date: Tue, 26 Feb 2013 14:12:39 -0500 Subject: [PATCH 5/9] * Sat Feb 16 2013 Jamie Nguyen - 1.10.0-3 - add python3-dns subpackage (rhbz#911933) Signed-off-by: Paul Wouters --- .gitignore | 12 ++----- python-dns.spec | 93 ++++++++++++++++++++++++++++++++++++++++++++----- sources | 4 +-- 3 files changed, 89 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index 9764ece..9a6cb2e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,4 @@ -dnspython-1.8.0.tar.gz -dnspython-1.8.0.tar.gz.asc -/dnspython-1.9.1.tar.gz -/dnspython-1.9.1.tar.gz.asc -/dnspython-1.9.2.tar.gz -/dnspython-1.9.2.tar.gz.asc -/dnspython-1.9.3.tar.gz -/dnspython-1.9.3.tar.gz.asc -/dnspython-1.9.4.tar.gz -/dnspython-1.9.4.tar.gz.asc /dnspython-1.10.0.tar.gz /dnspython-1.10.0.tar.gz.asc +/dnspython3-1.10.0.tar.gz +/dnspython3-1.10.0.tar.gz.asc diff --git a/python-dns.spec b/python-dns.spec index ed4a744..acd7ec1 100644 --- a/python-dns.spec +++ b/python-dns.spec @@ -1,8 +1,12 @@ -%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} +%if 0%{?fedora} > 12 +%global with_python3 1 +%else +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())")} +%endif Name: python-dns Version: 1.10.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: DNS toolkit for Python Group: Development/Languages @@ -10,7 +14,9 @@ License: MIT URL: http://www.dnspython.org/ Source0: http://www.dnspython.org/kits/%{version}/dnspython-%{version}.tar.gz Source1: http://www.dnspython.org/kits/%{version}/dnspython-%{version}.tar.gz.asc -Patch1: dnspython-1.10.1-tlsa.patch +Source2: http://www.dnspython.org/kits3/%{version}/dnspython3-%{version}.tar.gz +Source3: http://www.dnspython.org/kits3/%{version}/dnspython3-%{version}.tar.gz.asc +Patch1: dnspython-1.10.1-tlsa.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch @@ -20,6 +26,11 @@ BuildRequires: python-setuptools-devel BuildRequires: python-setuptools %endif +%if 0%{?with_python3} +BuildRequires: python3-devel +BuildRequires: python3-setuptools +%endif + %description dnspython is a DNS toolkit for Python. It supports almost all record types. It can be used for queries, zone transfers, and dynamic @@ -30,32 +41,85 @@ level classes perform queries for data of a given name, type, and class, and return an answer set. The low level classes allow direct manipulation of DNS zones, messages, names, and records. + +%if 0%{?with_python3} +%package -n python3-dns +Summary: DNS toolkit for Python 3 +Group: Development/Languages + +%description -n python3-dns +dnspython3 is a DNS toolkit for Python 3. It supports almost all record +types. It can be used for queries, zone transfers, and dynamic +updates. It supports TSIG authenticated messages and EDNS0. + +dnspython3 provides both high and low level access to DNS. The high +level classes perform queries for data of a given name, type, and +class, and return an answer set. The low level classes allow direct +manipulation of DNS zones, messages, names, and records. +%endif + + %prep -%setup0 -q -n dnspython-%{version} +%setup -q -n dnspython-%{version} +%setup -T -D -a 2 -q -n dnspython-%{version} %patch1 -p1 -b .tlsa +%if 0%{?with_python3} +rm -rf %{py3dir} +cp -a dnspython3-%{version} %{py3dir} +%endif + # strip executable permissions so that we don't pick up dependencies # from documentation find examples -type f | xargs chmod a-x + %build CFLAGS="%{optflags}" %{__python} -c 'import setuptools; execfile("setup.py")' build +%if 0%{?with_python3} +pushd %{py3dir} +CFLAGS="%{optflags}" %{__python3} setup.py build +popd +%endif + + %install rm -rf %{buildroot} %{__python} -c 'import setuptools; execfile("setup.py")' install --skip-build --root %{buildroot} +%if 0%{?with_python3} +pushd %{py3dir} +%{__python3} -c 'import setuptools; exec(open("setup.py").read())' install \ + --skip-build --root %{buildroot} +popd +%endif + + %check pushd tests # skip one test because it queries the network for py in *.py do - if [ $py != resolver.py ] - then - PYTHONPATH=%{buildroot}%{python_sitelib} %{__python} $py - fi + if [ $py != resolver.py ] + then + PYTHONPATH=%{buildroot}%{python_sitelib} %{__python} $py + fi done +%if 0%{?with_python3} +pushd %{py3dir}/tests +for py in *.py +do + if [ $py != resolver.py ] + then + PYTHONPATH=%{buildroot}%{python3_sitelib} %{__python3} $py + fi +done +popd +%endif + + %clean rm -rf %{buildroot} @@ -66,7 +130,20 @@ rm -rf %{buildroot} %{python_sitelib}/*egg-info %{python_sitelib}/dns +%if 0%{?with_python3} +%files -n python3-dns +%defattr(-,root,root,-) +%doc dnspython3-%{version}/{ChangeLog,LICENSE,README,examples} + +%{python3_sitelib}/*egg-info +%{python3_sitelib}/dns +%endif + + %changelog +* Sat Feb 16 2013 Jamie Nguyen - 1.10.0-3 +- add python3-dns subpackage (rhbz#911933) + * Thu Feb 14 2013 Fedora Release Engineering - 1.10.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild diff --git a/sources b/sources index 7e5c15d..de8d0da 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -8a89b7865251c4e9d8ec2f8cc9f8cd78 dnspython-1.9.4.tar.gz -413d7fc295c6bf03f872938731919c95 dnspython-1.9.4.tar.gz.asc b4f60852fd7ba64fc7c3a1fa239eba33 dnspython-1.10.0.tar.gz 81d7579e66ca37d0b03dce051b60324d dnspython-1.10.0.tar.gz.asc +17d0ec54f83df3e95846fc4e20224a96 dnspython3-1.10.0.tar.gz +d5534b68ef5fc8c9b68fed019bc148d5 dnspython3-1.10.0.tar.gz.asc From 6df45c3662be5656ea7fcb68f535f87e9078d940 Mon Sep 17 00:00:00 2001 From: "Jeffrey C. Ollie" Date: Sun, 7 Jul 2013 11:57:12 -0500 Subject: [PATCH 6/9] 1.11.0 --- .gitignore | 4 ++ python-dns.spec | 102 ++++++++++++++++++++++++++++++------------------ sources | 8 ++-- 3 files changed, 71 insertions(+), 43 deletions(-) diff --git a/.gitignore b/.gitignore index 9a6cb2e..67311ad 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,7 @@ /dnspython-1.10.0.tar.gz.asc /dnspython3-1.10.0.tar.gz /dnspython3-1.10.0.tar.gz.asc +/dnspython-1.11.0.tar.gz +/dnspython-1.11.0.tar.gz.asc +/dnspython3-1.11.0.tar.gz +/dnspython3-1.11.0.tar.gz.asc diff --git a/python-dns.spec b/python-dns.spec index acd7ec1..d9d938a 100644 --- a/python-dns.spec +++ b/python-dns.spec @@ -5,8 +5,8 @@ %endif Name: python-dns -Version: 1.10.0 -Release: 3%{?dist} +Version: 1.11.0 +Release: 1%{?dist} Summary: DNS toolkit for Python Group: Development/Languages @@ -16,21 +16,23 @@ Source0: http://www.dnspython.org/kits/%{version}/dnspython-%{version}.ta Source1: http://www.dnspython.org/kits/%{version}/dnspython-%{version}.tar.gz.asc Source2: http://www.dnspython.org/kits3/%{version}/dnspython3-%{version}.tar.gz Source3: http://www.dnspython.org/kits3/%{version}/dnspython3-%{version}.tar.gz.asc -Patch1: dnspython-1.10.1-tlsa.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch -%if 0%{?fedora} >= 8 -BuildRequires: python-setuptools-devel -%else -BuildRequires: python-setuptools -%endif + +BuildRequires: python2-devel +# for tests +BuildRequires: python-crypto %if 0%{?with_python3} BuildRequires: python3-devel -BuildRequires: python3-setuptools +# for tests +BuildRequires: python3-crypto %endif +# for DNSSEC support +Requires: python-crypto + %description dnspython is a DNS toolkit for Python. It supports almost all record types. It can be used for queries, zone transfers, and dynamic @@ -47,6 +49,9 @@ manipulation of DNS zones, messages, names, and records. Summary: DNS toolkit for Python 3 Group: Development/Languages +# for DNSSEC support +Requires: python3-crypto + %description -n python3-dns dnspython3 is a DNS toolkit for Python 3. It supports almost all record types. It can be used for queries, zone transfers, and dynamic @@ -58,46 +63,40 @@ class, and return an answer set. The low level classes allow direct manipulation of DNS zones, messages, names, and records. %endif - %prep -%setup -q -n dnspython-%{version} -%setup -T -D -a 2 -q -n dnspython-%{version} -%patch1 -p1 -b .tlsa - -%if 0%{?with_python3} -rm -rf %{py3dir} -cp -a dnspython3-%{version} %{py3dir} -%endif +%setup -q -T -c -n dnspython-%{version} -a 0 -a 2 # strip executable permissions so that we don't pick up dependencies # from documentation -find examples -type f | xargs chmod a-x - +find dnspython-%{version}/examples -type f | xargs chmod a-x +find dnspython3-%{version}/examples -type f | xargs chmod a-x %build -CFLAGS="%{optflags}" %{__python} -c 'import setuptools; execfile("setup.py")' build +pushd dnspython-%{version} +%{__python} setup.py build +popd %if 0%{?with_python3} -pushd %{py3dir} -CFLAGS="%{optflags}" %{__python3} setup.py build +pushd dnspython3-%{version} +%{__python3} setup.py build popd %endif - %install rm -rf %{buildroot} -%{__python} -c 'import setuptools; execfile("setup.py")' install --skip-build --root %{buildroot} + +pushd dnspython-%{version} +%{__python} setup.py install --skip-build --root %{buildroot} +popd %if 0%{?with_python3} -pushd %{py3dir} -%{__python3} -c 'import setuptools; exec(open("setup.py").read())' install \ - --skip-build --root %{buildroot} +pushd dnspython3-%{version} +%{__python3} setup.py install --skip-build --root %{buildroot} popd %endif - %check -pushd tests +pushd dnspython-%{version}/tests # skip one test because it queries the network for py in *.py do @@ -106,26 +105,27 @@ do PYTHONPATH=%{buildroot}%{python_sitelib} %{__python} $py fi done +popd %if 0%{?with_python3} -pushd %{py3dir}/tests +pushd dnspython3-%{version}/tests +# skip one test because it queries the network for py in *.py do - if [ $py != resolver.py ] - then - PYTHONPATH=%{buildroot}%{python3_sitelib} %{__python3} $py - fi + if [ $py != resolver.py ] + then + PYTHONPATH=%{buildroot}%{python3_sitelib} %{__python3} $py + fi done popd %endif - %clean rm -rf %{buildroot} %files %defattr(-,root,root,-) -%doc ChangeLog LICENSE README examples +%doc dnspython-%{version}/{ChangeLog,LICENSE,README,examples} %{python_sitelib}/*egg-info %{python_sitelib}/dns @@ -139,8 +139,32 @@ rm -rf %{buildroot} %{python3_sitelib}/dns %endif - %changelog +* Sun Jul 7 2013 Jeffrey C. Ollie - 1.11.0-1 +- New since 1.10.0: +- +- $GENERATE support +- +- TLSA RR support +- +- Added set_flags() method to dns.resolver.Resolver +- +- Bugs fixed since 1.10.0: +- +- Names with offsets >= 2^14 are no longer added to the +- compression table. +- +- The "::" syntax is not used to shorten a single 16-bit section +- of the text form an IPv6 address. +- +- Caches are now locked. +- +- YXDOMAIN is raised if seen by the resolver. +- +- Empty rdatasets are not printed. +- +- DNSKEY key tags are no longer assumed to be unique. + * Sat Feb 16 2013 Jamie Nguyen - 1.10.0-3 - add python3-dns subpackage (rhbz#911933) @@ -359,7 +383,7 @@ rm -rf %{buildroot} * Fri Aug 29 2008 Tom "spot" Callaway - 1.6.0-2 - fix license tag -* Sat Dec 4 2007 Jeffrey C. Ollie - 1.6.0-1 +* Tue Dec 4 2007 Jeffrey C. Ollie - 1.6.0-1 - Update to 1.6.0 * Tue Oct 9 2007 Jeffrey C. Ollie - 1.5.0-2 diff --git a/sources b/sources index de8d0da..f142163 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -b4f60852fd7ba64fc7c3a1fa239eba33 dnspython-1.10.0.tar.gz -81d7579e66ca37d0b03dce051b60324d dnspython-1.10.0.tar.gz.asc -17d0ec54f83df3e95846fc4e20224a96 dnspython3-1.10.0.tar.gz -d5534b68ef5fc8c9b68fed019bc148d5 dnspython3-1.10.0.tar.gz.asc +7b582963b1af099e3e85977513300d11 dnspython-1.11.0.tar.gz +8883880dc5cc11e846da7f8076aaaaad dnspython-1.11.0.tar.gz.asc +8ed2ca258d20626ecc7bef090a7a5aee dnspython3-1.11.0.tar.gz +5a54ef8c20ee1663d6b5c0e51c29ea54 dnspython3-1.11.0.tar.gz.asc From 1e172ddb31d33ad6261fef5a03ede0fbc30c3d36 Mon Sep 17 00:00:00 2001 From: "Jeffrey C. Ollie" Date: Mon, 8 Jul 2013 01:19:02 -0500 Subject: [PATCH 7/9] Python 2.6, EPEL5, EPEL6 --- python-dns.spec | 146 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 131 insertions(+), 15 deletions(-) diff --git a/python-dns.spec b/python-dns.spec index d9d938a..6e811d3 100644 --- a/python-dns.spec +++ b/python-dns.spec @@ -1,12 +1,28 @@ +%if ! (0%{?fedora} > 12 || 0%{?rhel} > 5) +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%endif + +%undefine py2dir +%global py2dir %{_builddir}/dnspython/dnspython-%{version} + +%if 0%{?rhel} == 5 +%global with_python26 1 +%undefine py26dir +%global py26dir %{_builddir}/dnspython/dnspython26-%{version} +%{!?__python26: %global __python26 /usr/bin/python26} +%{!?python26_sitelib: %global python26_sitelib %(%{__python26} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} +%endif + %if 0%{?fedora} > 12 %global with_python3 1 -%else -%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())")} +%undefine py3dir +%global py3dir %{_builddir}/dnspython/dnspython3-%{version} +%global py3unpack -a 2 %endif Name: python-dns Version: 1.11.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: DNS toolkit for Python Group: Development/Languages @@ -14,9 +30,14 @@ License: MIT URL: http://www.dnspython.org/ Source0: http://www.dnspython.org/kits/%{version}/dnspython-%{version}.tar.gz Source1: http://www.dnspython.org/kits/%{version}/dnspython-%{version}.tar.gz.asc +%if 0%{?with_python3} Source2: http://www.dnspython.org/kits3/%{version}/dnspython3-%{version}.tar.gz Source3: http://www.dnspython.org/kits3/%{version}/dnspython3-%{version}.tar.gz.asc -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +%endif +%if 0%{?rhel} == 5 +Patch0: 0001-Don-t-fail-on-older-python-versions-because-of-hashe.patch +%endif +BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) BuildArch: noarch @@ -24,6 +45,16 @@ BuildRequires: python2-devel # for tests BuildRequires: python-crypto +%if 0%{?rhel} == 5 +BuildRequires: python-setuptools +%endif + +%if 0%{?with_python26} +BuildRequires: python26-devel +# for tests +BuildRequires: python26-crypto +%endif + %if 0%{?with_python3} BuildRequires: python3-devel # for tests @@ -43,6 +74,24 @@ level classes perform queries for data of a given name, type, and class, and return an answer set. The low level classes allow direct manipulation of DNS zones, messages, names, and records. +%if 0%{?with_python26} +%package -n python26-dns +Summary: DNS toolkit for Python 2.6 +Group: Development/Languages + +# for DNSSEC support +Requires: python26-crypto + +%description -n python26-dns +dnspython is a DNS toolkit for Python. It supports almost all record +types. It can be used for queries, zone transfers, and dynamic +updates. It supports TSIG authenticated messages and EDNS0. + +dnspython provides both high and low level access to DNS. The high +level classes perform queries for data of a given name, type, and +class, and return an answer set. The low level classes allow direct +manipulation of DNS zones, messages, names, and records. +%endif %if 0%{?with_python3} %package -n python3-dns @@ -53,8 +102,8 @@ Group: Development/Languages Requires: python3-crypto %description -n python3-dns -dnspython3 is a DNS toolkit for Python 3. It supports almost all record -types. It can be used for queries, zone transfers, and dynamic +dnspython3 is a DNS toolkit for Python 3. It supports almost all +record types. It can be used for queries, zone transfers, and dynamic updates. It supports TSIG authenticated messages and EDNS0. dnspython3 provides both high and low level access to DNS. The high @@ -64,20 +113,46 @@ manipulation of DNS zones, messages, names, and records. %endif %prep -%setup -q -T -c -n dnspython-%{version} -a 0 -a 2 +%setup -q -T -c -n dnspython -a 0 %{?py3unpack:%{py3unpack}} # strip executable permissions so that we don't pick up dependencies # from documentation -find dnspython-%{version}/examples -type f | xargs chmod a-x -find dnspython3-%{version}/examples -type f | xargs chmod a-x +find %{py2dir}/examples -type f | xargs chmod a-x +%if 0%{?with_python3} +find %{py3dir}/examples -type f | xargs chmod a-x +%endif + +%if 0%{?with_python26} +pushd %{py2dir} +rm -rf %{py26dir} +cp -a . %{py26dir} +find %{py26dir} -name '*.py' | xargs sed -i '1s|^#!.*python|#!%{__python26}|' +popd +%endif + +%if 0%{?rhel} == 5 +pushd %{py2dir} +%patch0 -p1 +popd +%endif %build -pushd dnspython-%{version} +pushd %{py2dir} +%if 0%{?rhel} == 5 +%{__python} -c 'import setuptools; execfile("setup.py")' build +%else %{__python} setup.py build +%endif popd +%if 0%{?with_python26} +pushd %{py26dir} +%{__python26} setup.py build +popd +%endif + %if 0%{?with_python3} -pushd dnspython3-%{version} +pushd %{py3dir} %{__python3} setup.py build popd %endif @@ -85,30 +160,59 @@ popd %install rm -rf %{buildroot} -pushd dnspython-%{version} +pushd %{py2dir} +%if 0%{?rhel} == 5 +%{__python} -c 'import setuptools; execfile("setup.py")' install --skip-build --root %{buildroot} +%else %{__python} setup.py install --skip-build --root %{buildroot} +%endif popd +%if 0%{?with_python26} +pushd %{py26dir} +%{__python26} setup.py install --skip-build --root %{buildroot} +popd +%endif + %if 0%{?with_python3} -pushd dnspython3-%{version} +pushd %{py3dir} %{__python3} setup.py install --skip-build --root %{buildroot} popd %endif %check -pushd dnspython-%{version}/tests +pushd %{py2dir}/tests # skip one test because it queries the network +# dnssec tests fail in RHEL5 Python 2.4 due to the +# lack of some hashes for py in *.py do +%if 0%{?rhel} == 5 + if [ $py != resolver.py -a $py != dnssec.py -a $py != grange.py ] +%else if [ $py != resolver.py ] +%endif then PYTHONPATH=%{buildroot}%{python_sitelib} %{__python} $py fi done popd +%if 0%{?with_python26} +pushd %{py26dir}/tests +# skip one test because it queries the network +for py in *.py +do + if [ $py != resolver.py ] + then + PYTHONPATH=%{buildroot}%{python26_sitelib} %{__python26} $py + fi +done +popd +%endif + %if 0%{?with_python3} -pushd dnspython3-%{version}/tests +pushd %{py3dir}/tests # skip one test because it queries the network for py in *.py do @@ -130,6 +234,15 @@ rm -rf %{buildroot} %{python_sitelib}/*egg-info %{python_sitelib}/dns +%if 0%{?with_python26} +%files -n python26-dns +%defattr(-,root,root,-) +%doc dnspython26-%{version}/{ChangeLog,LICENSE,README,examples} + +%{python26_sitelib}/*egg-info +%{python26_sitelib}/dns +%endif + %if 0%{?with_python3} %files -n python3-dns %defattr(-,root,root,-) @@ -140,6 +253,9 @@ rm -rf %{buildroot} %endif %changelog +* Sun Jul 7 2013 Jeffrey C. Ollie - 1.11.0-2 +- Integrate Python 2.6 packaging, EPEL5, EPEL6 support + * Sun Jul 7 2013 Jeffrey C. Ollie - 1.11.0-1 - New since 1.10.0: - From ca7a663d1bf71a7ea6672c6508b12f7abba7c63e Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sun, 4 Aug 2013 02:22:35 -0500 Subject: [PATCH 8/9] - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild --- python-dns.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-dns.spec b/python-dns.spec index 6e811d3..176fe4f 100644 --- a/python-dns.spec +++ b/python-dns.spec @@ -22,7 +22,7 @@ Name: python-dns Version: 1.11.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: DNS toolkit for Python Group: Development/Languages @@ -253,6 +253,9 @@ rm -rf %{buildroot} %endif %changelog +* Sun Aug 04 2013 Fedora Release Engineering - 1.11.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + * Sun Jul 7 2013 Jeffrey C. Ollie - 1.11.0-2 - Integrate Python 2.6 packaging, EPEL5, EPEL6 support From 91474142510d6252a6c240b572b96b92e20cc3e7 Mon Sep 17 00:00:00 2001 From: "Jeffrey C. Ollie" Date: Thu, 5 Sep 2013 10:12:56 -0500 Subject: [PATCH 9/9] 1.11.1 --- .gitignore | 4 +++ ...der-python-versions-because-of-hashe.patch | 26 +++++++++++++++++ python-dns.spec | 29 +++++++++++++++++-- sources | 8 ++--- 4 files changed, 61 insertions(+), 6 deletions(-) create mode 100644 0001-Don-t-fail-on-older-python-versions-because-of-hashe.patch diff --git a/.gitignore b/.gitignore index 67311ad..c93f436 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,7 @@ /dnspython-1.11.0.tar.gz.asc /dnspython3-1.11.0.tar.gz /dnspython3-1.11.0.tar.gz.asc +/dnspython-1.11.1.tar.gz +/dnspython-1.11.1.tar.gz.asc +/dnspython3-1.11.1.tar.gz +/dnspython3-1.11.1.tar.gz.asc diff --git a/0001-Don-t-fail-on-older-python-versions-because-of-hashe.patch b/0001-Don-t-fail-on-older-python-versions-because-of-hashe.patch new file mode 100644 index 0000000..d50bd54 --- /dev/null +++ b/0001-Don-t-fail-on-older-python-versions-because-of-hashe.patch @@ -0,0 +1,26 @@ +From f6f6666438af884da7b4b1d76a258639f949406f Mon Sep 17 00:00:00 2001 +From: Jeffrey C. Ollie +Date: Thu, 2 Dec 2010 13:05:50 -0600 +Subject: [PATCH] Don't fail on older python versions because of hashes. + +--- + dns/hash.py | 3 --- + 1 files changed, 0 insertions(+), 3 deletions(-) + +diff --git a/dns/hash.py b/dns/hash.py +index 7bd5ae5..8582a9c 100644 +--- a/dns/hash.py ++++ b/dns/hash.py +@@ -37,9 +37,6 @@ def _setup(): + if sys.hexversion >= 0x02050200: + _hashes['SHA384'] = hashlib.sha384 + _hashes['SHA512'] = hashlib.sha512 +- else: +- _hashes['SHA384'] = _need_later_python('SHA384') +- _hashes['SHA512'] = _need_later_python('SHA512') + + if sys.hexversion < 0x02050000: + # hashlib doesn't conform to PEP 247: API for +-- +1.7.3.2 + diff --git a/python-dns.spec b/python-dns.spec index 176fe4f..e0e38a4 100644 --- a/python-dns.spec +++ b/python-dns.spec @@ -21,8 +21,8 @@ %endif Name: python-dns -Version: 1.11.0 -Release: 3%{?dist} +Version: 1.11.1 +Release: 1%{?dist} Summary: DNS toolkit for Python Group: Development/Languages @@ -253,6 +253,31 @@ rm -rf %{buildroot} %endif %changelog +* Thu Sep 5 2013 Jeffrey C. Ollie - 1.11.1-1 +- New since 1.11.0: +- +- Nothing +- +- Bugs fixed since 1.11.1: +- +- dns.resolver.Resolver erroneously referred to 'retry_servfail' +- instead of 'self.retry_servfail'. +- +- dns.tsigkeyring.to_text() would fail trying to convert the +- keyname to text. +- +- Multi-message TSIGs were broken for algorithms other than +- HMAC-MD5 because we weren't passing the right digest module to +- the HMAC code. +- +- dns.dnssec._find_candidate_keys() tried to extract the key +- from the wrong variable name. +- +- $GENERATE tests were not backward compatible with python 2.4. +- +- APL RR trailing zero suppression didn't work due to insufficient +- python 3 porting. [dnspython3 only] + * Sun Aug 04 2013 Fedora Release Engineering - 1.11.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild diff --git a/sources b/sources index f142163..edca90b 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -7b582963b1af099e3e85977513300d11 dnspython-1.11.0.tar.gz -8883880dc5cc11e846da7f8076aaaaad dnspython-1.11.0.tar.gz.asc -8ed2ca258d20626ecc7bef090a7a5aee dnspython3-1.11.0.tar.gz -5a54ef8c20ee1663d6b5c0e51c29ea54 dnspython3-1.11.0.tar.gz.asc +6167344ca849bd2ba108a8aa6118cb2b dnspython-1.11.1.tar.gz +a4a62448f1ab7dec26ab9e03999339ca dnspython-1.11.1.tar.gz.asc +c0203410e1405c3ee1d70dafa4ad6612 dnspython3-1.11.1.tar.gz +ed10be2fa38a1bacc8a3cc987256a21e dnspython3-1.11.1.tar.gz.asc