# # spec file for package python-dnspython # # Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-dnspython Version: 1.16.0 Release: 1.6 Summary: A DNS toolkit for Python License: ISC Group: Development/Languages/Python URL: https://github.com/rthalley/dnspython Source: http://dnspython.org/kits/%{version}/dnspython-%{version}.tar.gz Source2: http://dnspython.org/kits/%{version}/dnspython-%{version}.tar.gz.asc Source3: python-dnspython.keyring BuildRequires: %{python_module ecdsa} BuildRequires: %{python_module idna} BuildRequires: %{python_module pycryptodome} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module typing} BuildRequires: fdupes BuildRequires: netcfg libnss_usrfiles2 BuildRequires: python-rpm-macros Requires: python-ecdsa Requires: python-pycryptodome BuildArch: noarch Recommends: python-idna %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. dnspython originated at Nominum where it was developed to facilitate the testing of DNS software. Nominum has generously allowed it to be opened under a BSD-style licence. %python_subpackages %prep %setup -q -n dnspython-%{version} chmod -x examples/* %build %python_build %install %python_install %python_expand %fdupes %{buildroot}%{$python_sitelib}/ %check # Skip the resolver test suite as it requires Internet connection. #test -f tests/test_resolver.py && rm tests/test_resolver.py %python_exec setup.py test %files %{python_files} %license LICENSE %doc README.md examples/ %{python_sitelib}/dns/ %{python_sitelib}/dnspython-%{version}-py%{python_version}.egg-info %changelog * Fri Mar 8 2019 Tomáš Chvátal - Update to 1.16.0: * various fixes for wheel/cryptodome/etc - Remove all patches, merged upstream: * 210.patch * pycryptodome.patch * readme.patch * Tue Dec 4 2018 Matej Cepl - Remove superfluous devel dependency for noarch package * Tue May 15 2018 sebix+novell.com@sebix.at - require python-pycryptodome instead of recommending it * Wed May 9 2018 tchvatal@suse.com - Add patch pycryptodome.patch to work with pycryptodome: * pycryptodome.patch * Tue May 2 2017 sor.alexei@meowr.ru - Update for the multipython build. - Rename python-dnspython.asc to python-dnspython.keyring. - Spec cleanup. * Sun Oct 9 2016 sebix+novell.com@sebix.at - use and recommend python-ecdsa and python-pycrypto for dnssec support * Sat Oct 8 2016 sebix+novell.com@sebix.at - New upstream release 1.15.0 * IDNA 2008 support is now available if the "idna" module has been installed and IDNA 2008 is requested. The default IDNA behavior is still IDNA 2003. The new IDNA codec mechanism is currently only useful for direct calls to dns.name.from_text() or dns.name.from_unicode(), but in future releases it will be deployed throughout dnspython, e.g. so that you can read a masterfile with an IDNA 2008 codec in force. * By default, dns.name.to_unicode() is not strict about which version of IDNA the input complies with. Strictness can be requested by using one of the strict IDNA codecs. * Add AVC RR support. * Some problems with newlines in various output modes have been addressed. * dns.name.to_text() now returns text and not bytes on Python 3.x * More miscellaneous fixes for the Python 2/3 codeline merge. - Include readme with readme.patch as not included in upstream tarball - Fix a bug in the tests code with 210.patch with upstream pull request #210 * Tue Jun 14 2016 sebix+novell.com@sebix.at - New upstream release 1.14.0 * Mon May 16 2016 sebix+novell.com@sebix.at - New upstream release 1.13.0 * Tue Nov 25 2014 dmueller@suse.com - fix build on SLE11 * Fri Oct 17 2014 lars@linux-schulserver.de - update to 1.12.0: * The test system can now run the tests without requiring dnspython to be installed. * When reading from a masterfile, if the first content line started with leading whitespace, we raised an ugly exception instead of doing the right thing, namely using the zone origin as the name. [#73] Thanks to Tassatux for reporting the issue. * Added dns.zone.to_text() convenience method. Thanks to Brandon Whaley for the patch. * The /etc/resolv.conf setting "options rotate" is now understood by the resolver. If present, the resolver will shuffle the nameserver list each time dns.resolver.query() is called. Thanks to underrun for the patch. Note that you don't want to add "options rotate" to your /etc/resolv.conf if your system's resolver library does not understand it. In this case, just set resolver.rotate = True by hand. * Escaping of Unicode has been corrected. Previously we escaped and then converted to Unicode, but the right thing to do is convert to Unicode, then escape. Also, characters > 0x7f should NOT be escaped in Unicode mode. Thanks to Martin Basti for the patch. * dns.rdtypes.ANY.DNSKEY now has helpers functions to convert between the numeric form of the flags and a set of human-friendly strings. Thanks to Petr Spacek for the patch. * RRSIGs did not respect relativization settings in to_text(). Thanks to Brian Smith for reporting the bug and submitting a (slightly different) patch. * dns/rdtypes/IN/APL.py: The APL from_wire() method did not accept an rdata length of 0 as valid. Thanks to salzmdan for reporting the problem. * dns/ipv6.py: Add is_mapped() * dns/reversename.py: Lookup IPv6 mapped IPv4 addresses in the v4 reverse namespace. Thanks to Devin Bayer. Yes, I finally fixed this one :) * dns/zone.py: Do not put back an unescaped token. This was causing escape processing for domain names to break. Thanks to connormclaud for reporting the problem. * dns/message.py: Making a response didn't work correctly if the query was signed with TSIG and we knew the key. Thanks to Jeffrey Stiles for reporting the problem. * dns/query.py: Fix problems with the IXFR state machine which caused long diffs to fail. Thanks to James Raftery for the fix and the repeated prodding to get it applied :) - enable some tests - add python-dnspython-rpmlintrc file - add python-ecdsa and python-pycrypto to BuildRequires for the DNSSec tests - use /usr/bin/python instead of /usr/bin/env python for the example scripts to avoid additional dependencies * Wed Sep 11 2013 dmueller@suse.com - update to 1.11.1: * fix syntax error exception on dns server failure * various fixlets for DNSSEC support * Mon Jul 15 2013 speilicke@suse.com - Package LICENSE, use proper upstream URL - Run testsuite - Cleanup macro usage * Thu Jul 11 2013 dmueller@suse.com - update to 1.11.0: * TLSA RR support * Added set_flags() method to dns.resolver.Resolver * 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. * Empty rdatasets are not printed. * DNSKEY key tags are no longer assumed to be unique. * Thu May 31 2012 cfarrell@suse.com - license update: ISC See LICENSE (and compare http://www.spdx.org/licenses/MIT with http://www.spdx.org/licenses/ISC) * Thu May 31 2012 jengelh@inai.de - Update to new upstream release 1.10.0 * Added dns.resolver.LRUCache. * dns.resolver.query() will try TCP if a UDP response is truncated. * The python socket module's DNS methods can be now be overriden with implementations that use dnspython's resolver. - Remove redundant tags/sections from specfile - Correct license field * Mon Mar 28 2011 alexandre@exatati.com.br - Update to 1.9.4: - There is no new functionality in this release; just a few bug fixes in RRSIG and SIG code. - Legacy code will be eliminated for earlier versions of DNSSEC in a future release of dnspython. * Thu Mar 24 2011 alexandre@exatati.com.br - Fix SLE_10 build. * Thu Mar 24 2011 alexandre@exatati.com.br - Update to 1.9.3: 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. 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. - Regenerated spec file with py2pack; - Removed LICENSE PKG-INFO and TODO files from documentation. * Tue Nov 23 2010 alexandre@exatati.com.br - Update to 1.9.2: - 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. * Mon Nov 22 2010 alexandre@exatati.com.br - Update to 1.9.1: Bugs fixed since 1.9.0: - The dns.dnssec module didn't work with DSA due to namespace contamination from a "from"-style import. * Mon Nov 22 2010 alexandre@exatati.com.br - Update to 1.9.0: 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. * Wed Jan 27 2010 alexandre@exatati.com.br - Update to 1.8.0; - Building as noarch for openSUSE >= 11.2. * Fri Jan 19 2007 judas_iscariote@shorewall.net - update to version 1.5.0 * Tue Feb 28 2006 jmatejek@suse.cz - updated to reflect python changes due to #149809 * Wed Jan 25 2006 mls@suse.de - converted neededforbuild to BuildRequires * Tue May 31 2005 poeml@suse.de - package created (1.3.3)