diff --git a/.python-dns.metadata b/.python-dns.metadata new file mode 100644 index 0000000..55709a6 --- /dev/null +++ b/.python-dns.metadata @@ -0,0 +1,4 @@ +bcfc6ca1a2227ad42a70a0d8d172f4139bdd8d94 SOURCES/dnspython-1.10.0.tar.gz +4b68bb3c3b6919d318143e56bfbd7f1897e61733 SOURCES/dnspython3-1.10.0.tar.gz +27b6d65ecca747eacae681e8b39fe7868d11960f SOURCES/dnspython-1.10.0.tar.gz.asc +e72eded296377f0112f7507e8f982370fdced1e6 SOURCES/dnspython3-1.10.0.tar.gz.asc diff --git a/README.md b/README.md deleted file mode 100644 index 0e7897f..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 - -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/dnspython-1.10.1-tlsa.patch b/SOURCES/dnspython-1.10.1-tlsa.patch new file mode 100644 index 0000000..31aca18 --- /dev/null +++ b/SOURCES/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/SPECS/python-dns.spec b/SPECS/python-dns.spec new file mode 100644 index 0000000..acd7ec1 --- /dev/null +++ b/SPECS/python-dns.spec @@ -0,0 +1,384 @@ +%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: 3%{?dist} +Summary: DNS toolkit for Python + +Group: Development/Languages +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 +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 + +%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 +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. + + +%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 +%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 +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} + +%files +%defattr(-,root,root,-) +%doc ChangeLog LICENSE README examples + +%{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 + +* 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 + +* 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 +- http://www.dnspython.org/kits/1.9.4/ +- +- There is no new functionality in this release; just a few bug fixes +- in RRSIG and SIG code. +- +- I will be eliminating legacy code for earlier versions of DNSSEC in a +- future release of dnspython. + +* Fri Mar 25 2011 Jeffrey C. Ollie - 1.9.3-1 +- +- New since 1.9.2: +- +- A boolean parameter, 'raise_on_no_answer', has been added to +- the query() methods. In no-error, no-data situations, this +- parameter determines whether NoAnswer should be raised or not. +- If True, NoAnswer is raised. If False, then an Answer() +- object with a None rrset will be returned. +- +- Resolver Answer() objects now have a canonical_name field. +- +- Rdata now have a __hash__ method. +- +- Bugs fixed since 1.9.2: +- +- Dnspython was erroneously doing case-insensitive comparisons +- of the names in NSEC and RRSIG RRs. +- +- We now use "is" and not "==" when testing what section an RR +- is in. +- +- The resolver now disallows metaqueries. + +* Tue Feb 08 2011 Fedora Release Engineering - 1.9.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Nov 23 2010 Jeffrey C. Ollie - 1.9.2-1 +- It's brown paper bag time :) The fix for the import problems was +- actually bad, but didn't show up in testing because the test suite's +- conditional importing code hid the problem. +- +- Any, 1.9.2 is out. +- +- Sorry for the churn! + +* Mon Nov 22 2010 Jeffrey C. Ollie - 1.9.1-1 +- New since 1.9.0: +- +- Nothing. +- +- Bugs fixed since 1.9.0 +- +- The dns.dnssec module didn't work with DSA due to namespace +- contamination from a "from"-style import. +- +- New since 1.8.0: +- +- dnspython now uses poll() instead of select() when available. +- +- Basic DNSSEC validation can be done using dns.dnsec.validate() +- and dns.dnssec.validate_rrsig() if you have PyCrypto 2.3 or +- later installed. Complete secure resolution is not yet +- available. +- +- Added key_id() to the DNSSEC module, which computes the DNSSEC +- key id of a DNSKEY rdata. +- +- Added make_ds() to the DNSSEC module, which returns the DS RR +- for a given DNSKEY rdata. +- +- dnspython now raises an exception if HMAC-SHA284 or +- HMAC-SHA512 are used with a Python older than 2.5.2. (Older +- Pythons do not compute the correct value.) +- +- Symbolic constants are now available for TSIG algorithm names. +- +- Bugs fixed since 1.8.0 +- +- dns.resolver.zone_for_name() didn't handle a query response +- with a CNAME or DNAME correctly in some cases. +- +- When specifying rdata types and classes as text, Unicode +- strings may now be used. +- +- Hashlib compatibility issues have been fixed. +- +- dns.message now imports dns.edns. +- +- The TSIG algorithm value was passed incorrectly to use_tsig() +- in some cases. + +* Fri Aug 13 2010 Jeffrey C. Ollie - 1.8.0-3 +- Add a patch from upstream to fix a Python 2.7 issue. + +* Thu Jul 22 2010 David Malcolm - 1.8.0-2.1 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Wed Jan 27 2010 Jeffrey C. Ollie - 1.8.0-1.1 +- Fix error + +* Wed Jan 27 2010 Jeffrey C. Ollie - 1.8.0-1 +- New since 1.7.1: +- +- Support for hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384 and +- hmac-sha512 has been contributed by Kevin Chen. +- +- The tokenizer's tokens are now Token objects instead of (type, +- value) tuples. +- +- Bugs fixed since 1.7.1: +- +- Escapes in masterfiles now work correctly. Previously they were +- only working correctly when the text involved was part of a domain +- name. +- +- When constructing a DDNS update, if the present() method was used +- with a single rdata, a zero TTL was not added. +- +- The entropy pool needed locking to be thread safe. +- +- The entropy pool's reading of /dev/random could cause dnspython to +- block. +- +- The entropy pool did buffered reads, potentially consuming more +- randomness than we needed. +- +- The entropy pool did not seed with high quality randomness on +- Windows. +- +- SRV records were compared incorrectly. +- +- In the e164 query function, the resolver parameter was not used. + +* Sun Jul 26 2009 Fedora Release Engineering - 1.7.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Fri Jun 19 2009 Jeffrey C. Ollie - 1.7.1-1 +- New since 1.7.0: +- +- Nothing +- +- Bugs fixed since 1.7.0: +- +- The 1.7.0 kitting process inadventently omitted the code for the +- DLV RR. +- +- Negative DDNS prerequisites are now handled correctly. + +* Fri Jun 19 2009 Jeffrey C. Ollie - 1.7.0-1 +- New since 1.6.0: +- +- Rdatas now have a to_digestable() method, which returns the +- DNSSEC canonical form of the rdata, suitable for use in +- signature computations. +- +- The NSEC3, NSEC3PARAM, DLV, and HIP RR types are now supported. +- +- An entropy module has been added and is used to randomize query ids. +- +- EDNS0 options are now supported. +- +- UDP IXFR is now supported. +- +- The wire format parser now has a 'one_rr_per_rrset' mode, which +- suppresses the usual coalescing of all RRs of a given type into a +- single RRset. +- +- Various helpful DNSSEC-related constants are now defined. +- +- The resolver's query() method now has an optional 'source' parameter, +- allowing the source IP address to be specified. +- +- Bugs fixed since 1.6.0: +- +- On Windows, the resolver set the domain incorrectly. +- +- DS RR parsing only allowed one Base64 chunk. +- +- TSIG validation didn't always use absolute names. +- +- NSEC.to_text() only printed the last window. +- +- We did not canonicalize IPv6 addresses before comparing them; we +- would thus treat equivalent but different textual forms, e.g. +- "1:00::1" and "1::1" as being non-equivalent. +- +- If the peer set a TSIG error, we didn't raise an exception. +- +- Some EDNS bugs in the message code have been fixed (see the ChangeLog +- for details). + +* Thu Feb 26 2009 Fedora Release Engineering - 1.6.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Sat Nov 29 2008 Jeffrey C. Ollie - 1.6.0-3 +- Rebuild for Python 2.6 + +* 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 +- Update to 1.6.0 + +* Tue Oct 9 2007 Jeffrey C. Ollie - 1.5.0-2 +- Follow new Python egg packaging specs + +* Thu Jan 11 2007 Jeffrey C. Ollie - 1.5.0-1 +- Update to 1.5.0 + +* Fri Dec 8 2006 Jeffrey C. Ollie - 1.4.0-3 +- Bump release for rebuild with Python 2.5 + +* Mon Aug 14 2006 Jeffrey C. Ollie - 1.4.0-2 +- No longer ghost *.pyo files, thus further simplifying the files section. + +* Sat Aug 5 2006 Jeffrey C. Ollie - 1.4.0-1 +- Update to 1.4.0 +- Remove unneeded python-abi requires +- Remove unneeded python_sitearch macro + +* Fri May 26 2006 Jeffrey C. Ollie - 1.3.5-1 +- First version for Fedora Extras +