python-dnspython/python-dnspython.spec

125 lines
3.5 KiB
RPMSpec
Raw Normal View History

#
# spec file
#
2023-02-04 23:32:26 +01:00
# Copyright (c) 2023 SUSE LLC
#
# 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/
#
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test"
%define psuffix -test
%bcond_without test
%else
%define psuffix %{nil}
%bcond_with test
%endif
- update to 2.0.0: - Python 3.6 or newer is required. - The license is now the ISC license. - Rdata is now immutable. Use dns.rdata.Rdata.replace() to make a new Rdata based on an existing one. - dns.resolver.resolve() has been added, allowing control of whether search lists are used. dns.resolver.query() is retained for backwards compatibility, but deprecated. The default for search list behavior can be set at in the resolver object with the use_search_by_default parameter. The default is False. - DNS-over-TLS is supported with dns.query.tls(). - DNS-over-HTTPS is supported with dns.query.https(), and the resolver will use DNS-over-HTTPS for a nameserver which is an HTTPS URL. - Basic query and resolver support for the Trio, Curio, and asyncio asynchronous I/O libraries has been added in dns.asyncquery and dns.asyncresolver. This API should be viewed as experimental as asynchronous I/O support in dnspython is still evolving. - TSIG now defaults to using SHA-256. - Basic type info has been added to some functions. Future releases will have comprehensive type info. - from_text() functions now have a relativize_to parameter. - python-cryptography is now used for DNSSEC. - Ed25519 and Ed448 signatures are now supported. - A helper for NSEC3 generating hashes has been added. - SHA384 DS records are supported. - Rdatasets and RRsets are much faster. - dns.resolver.resolve_address() has been added, allowing easy address-to-name lookups. - dns.reversename functions now allow an alternate origin to be specified. - The repr form of Rdatasets and RRsets now includes the rdata. - A number of standard resolv.conf options are now parsed. - The nameserver and port used to get a response are now part of the resolver’s Answer object. - The NINFO record is supported. - The dns.hash module has been removed; just use Python’s native hashlib module. - Rounding is done in the standard python 3 fashion; dnspython 1.x rounded in the python 2 style on both python 2 and 3. - The resolver will now do negative caching if a cache has been configured. - TSIG and OPT now have rdata types. - The class for query messages is now QueryMessage. Class Message is now a base class, and is also used for messages for which we don’t have a better class. Update messages are now class UpdateMessage, though class Update is retained for compatibility. - Support for Windows 95, 98, and ME has been removed. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-dnspython?expand=0&rev=49
2020-07-18 12:31:03 +02:00
%define skip_python2 1
%{?sle15_python_module_pythons}
Name: python-dnspython%{psuffix}
- update to version 2.4.2: * Async queries could wait forever instead of respecting the timeout if the timeout was 0 and a packet was lost. The timeout is now respected. * Restore HTTP/2 support which was accidentally broken during the https refactoring done as part of 2.4.0. * When an inception time and lifetime are specified, the signer now sets the expiration to the inception time plus lifetime, instead of the current time plus the lifetime. - update to version 2.4.1: * Importing dns.dnssecalgs without the cryptography module installed no longer causes an ImportError. * A number of timeout bugs with the asyncio backend have been fixed. * DNS-over-QUIC for the asyncio backend now works for IPv6. * Dnspython now enforces that the candidate DNSKEYs for DNSSEC signatures have protocol 3 and have the ZONE flag set. This is a standards compliance issue more than a security issue as the legitimate authority would have to have published the non-compliant keys as well as updated their DS record in order for the records to validate (the DS digest includes both flags and protocol). Dnspython will not make invalid keys by default, but does allow them to be created and used for testing purposes. * Dependency specifications for optional features in the package metadata have been improved. - update to version 2.4.0: * Python 3.8 or newer is required. * The stub resolver now uses instances of ``dns.nameserver.Nameserver`` to represent remote recursive resolvers, and can communicate using DNS over UDP/TCP, HTTPS, TLS, and QUIC. In additional to being able to specify an IPv4, IPv6, or HTTPS URL as a nameserver, instances of ``dns.nameserver.Nameserver`` are now permitted. * The DNS-over-HTTPS bootstrap address no longer causes URL rewriting. * DNS-over-HTTPS now only uses httpx; support for requests has been dropped. A source OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-dnspython?expand=0&rev=72
2023-08-22 10:36:47 +02:00
Version: 2.4.2
Release: 0
Summary: A DNS toolkit for Python
License: ISC
Group: Development/Languages/Python
URL: https://github.com/rthalley/dnspython
- update to version 2.2.0: - SVCB and HTTPS records have been updated to track the evolving draft standard. - The ZONEMD type has been added. - The resolver now returns a LifetimeTimeout exception which includes an error trace like the NoNameservers exception. This class is a subclass of dns.exception.Timeout for backwards compatibility. - DNS-over-HTTPS will try to use HTTP/2 if the httpx and h2 packages are installed. - DNS-over-HTTPS is now supported for asynchronous queries and resolutions. - dns.zonefile.read_rrsets() has been added, which allows rrsets in zonefile format, or a restrition of it, to be read. This function is useful for applications that want to read DNS data in text format, but do not want to use a Zone. - On Windows systems, if the WMI module is available, the resolver will retrieve the nameserver from WMI instead of trying to figure it out by reading the registry. This may lead to more accurate results in some cases. - The CERT rdatatype now supports certificate types IPKIX, ISPKI, IPGP, ACPKIX, and IACPKIX. - The CDS rdatatype now allows digest type 0. - Dnspython zones now enforces that a node is either a CNAME node or an “other data” node. A CNAME node contains only CNAME, RRSIG(CNAME), NSEC, RRSIG(NSEC), NSEC3, or RRSIG(NSEC3) rdatasets. An “other data” node contains any rdataset other than a CNAME or RRSIG(CNAME) rdataset. The enforcement is “last update wins”. For example, if you have a node which contains a CNAME rdataset, and then add an MX rdataset to it, then the CNAME rdataset will be deleted. Likewise if you have a node containing an MX rdataset and add a CNAME rdataset, the MX rdataset will be deleted. - Extended DNS Errors, as specified in RFC 8914, are now supported. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-dnspython?expand=0&rev=57
2022-01-18 21:12:31 +01:00
Source: https://files.pythonhosted.org/packages/source/d/dnspython/dnspython-%{version}.tar.gz
- update to version 2.4.2: * Async queries could wait forever instead of respecting the timeout if the timeout was 0 and a packet was lost. The timeout is now respected. * Restore HTTP/2 support which was accidentally broken during the https refactoring done as part of 2.4.0. * When an inception time and lifetime are specified, the signer now sets the expiration to the inception time plus lifetime, instead of the current time plus the lifetime. - update to version 2.4.1: * Importing dns.dnssecalgs without the cryptography module installed no longer causes an ImportError. * A number of timeout bugs with the asyncio backend have been fixed. * DNS-over-QUIC for the asyncio backend now works for IPv6. * Dnspython now enforces that the candidate DNSKEYs for DNSSEC signatures have protocol 3 and have the ZONE flag set. This is a standards compliance issue more than a security issue as the legitimate authority would have to have published the non-compliant keys as well as updated their DS record in order for the records to validate (the DS digest includes both flags and protocol). Dnspython will not make invalid keys by default, but does allow them to be created and used for testing purposes. * Dependency specifications for optional features in the package metadata have been improved. - update to version 2.4.0: * Python 3.8 or newer is required. * The stub resolver now uses instances of ``dns.nameserver.Nameserver`` to represent remote recursive resolvers, and can communicate using DNS over UDP/TCP, HTTPS, TLS, and QUIC. In additional to being able to specify an IPv4, IPv6, or HTTPS URL as a nameserver, instances of ``dns.nameserver.Nameserver`` are now permitted. * The DNS-over-HTTPS bootstrap address no longer causes URL rewriting. * DNS-over-HTTPS now only uses httpx; support for requests has been dropped. A source OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-dnspython?expand=0&rev=72
2023-08-22 10:36:47 +02:00
BuildRequires: %{python_module base >= 3.8}
- update to version 2.2.0: - SVCB and HTTPS records have been updated to track the evolving draft standard. - The ZONEMD type has been added. - The resolver now returns a LifetimeTimeout exception which includes an error trace like the NoNameservers exception. This class is a subclass of dns.exception.Timeout for backwards compatibility. - DNS-over-HTTPS will try to use HTTP/2 if the httpx and h2 packages are installed. - DNS-over-HTTPS is now supported for asynchronous queries and resolutions. - dns.zonefile.read_rrsets() has been added, which allows rrsets in zonefile format, or a restrition of it, to be read. This function is useful for applications that want to read DNS data in text format, but do not want to use a Zone. - On Windows systems, if the WMI module is available, the resolver will retrieve the nameserver from WMI instead of trying to figure it out by reading the registry. This may lead to more accurate results in some cases. - The CERT rdatatype now supports certificate types IPKIX, ISPKI, IPGP, ACPKIX, and IACPKIX. - The CDS rdatatype now allows digest type 0. - Dnspython zones now enforces that a node is either a CNAME node or an “other data” node. A CNAME node contains only CNAME, RRSIG(CNAME), NSEC, RRSIG(NSEC), NSEC3, or RRSIG(NSEC3) rdatasets. An “other data” node contains any rdataset other than a CNAME or RRSIG(CNAME) rdataset. The enforcement is “last update wins”. For example, if you have a node which contains a CNAME rdataset, and then add an MX rdataset to it, then the CNAME rdataset will be deleted. Likewise if you have a node containing an MX rdataset and add a CNAME rdataset, the MX rdataset will be deleted. - Extended DNS Errors, as specified in RFC 8914, are now supported. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-dnspython?expand=0&rev=57
2022-01-18 21:12:31 +01:00
BuildRequires: %{python_module pip}
BuildRequires: %{python_module poetry-core}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
# dnssec
Requires: python-cryptography
Requires: python-httpx
# idna
Requires: python-idna >= 2.1
# HTTP/2 support in httpx
Recommends: python-h2
# trio
Suggests: python-trio >= 0.14.0
BuildArch: noarch
%if %{with test}
# dnssec
BuildRequires: %{python_module cryptography}
# BuildRequires: %%{python_module curio >= 1.2}
BuildRequires: %{python_module h2}
# doh:
BuildRequires: %{python_module httpx}
# idna
BuildRequires: %{python_module idna}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module requests-toolbelt}
BuildRequires: %{python_module requests}
# # curio
# BuildRequires: %%{python_module sniffio >= 1.1}
# trio
BuildRequires: %{python_module trio >= 0.14.0}
BuildRequires: %{python_module typing}
BuildRequires: netcfg
BuildRequires: (python3-contextvars if python3-base < 3.7)
%endif
%if 0%{?python_version_nodots} < 37
Requires: python-contextvars
%endif
- update to version 2.2.0: - SVCB and HTTPS records have been updated to track the evolving draft standard. - The ZONEMD type has been added. - The resolver now returns a LifetimeTimeout exception which includes an error trace like the NoNameservers exception. This class is a subclass of dns.exception.Timeout for backwards compatibility. - DNS-over-HTTPS will try to use HTTP/2 if the httpx and h2 packages are installed. - DNS-over-HTTPS is now supported for asynchronous queries and resolutions. - dns.zonefile.read_rrsets() has been added, which allows rrsets in zonefile format, or a restrition of it, to be read. This function is useful for applications that want to read DNS data in text format, but do not want to use a Zone. - On Windows systems, if the WMI module is available, the resolver will retrieve the nameserver from WMI instead of trying to figure it out by reading the registry. This may lead to more accurate results in some cases. - The CERT rdatatype now supports certificate types IPKIX, ISPKI, IPGP, ACPKIX, and IACPKIX. - The CDS rdatatype now allows digest type 0. - Dnspython zones now enforces that a node is either a CNAME node or an “other data” node. A CNAME node contains only CNAME, RRSIG(CNAME), NSEC, RRSIG(NSEC), NSEC3, or RRSIG(NSEC3) rdatasets. An “other data” node contains any rdataset other than a CNAME or RRSIG(CNAME) rdataset. The enforcement is “last update wins”. For example, if you have a node which contains a CNAME rdataset, and then add an MX rdataset to it, then the CNAME rdataset will be deleted. Likewise if you have a node containing an MX rdataset and add a CNAME rdataset, the MX rdataset will be deleted. - Extended DNS Errors, as specified in RFC 8914, are now supported. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-dnspython?expand=0&rev=57
2022-01-18 21:12:31 +01:00
%python_subpackages
%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.
The package requires dependencies necessary for these optional features:
- DNS over HTTPS (doh)
- IDNA
- DNSSEC
and suggest dependencies necessary for these optional features:
- trio
This optional feature is not available due to missing dependencies:
- wmi
%prep
%setup -q -n dnspython-%{version}
chmod -x examples/*
- update to version 2.2.0: - SVCB and HTTPS records have been updated to track the evolving draft standard. - The ZONEMD type has been added. - The resolver now returns a LifetimeTimeout exception which includes an error trace like the NoNameservers exception. This class is a subclass of dns.exception.Timeout for backwards compatibility. - DNS-over-HTTPS will try to use HTTP/2 if the httpx and h2 packages are installed. - DNS-over-HTTPS is now supported for asynchronous queries and resolutions. - dns.zonefile.read_rrsets() has been added, which allows rrsets in zonefile format, or a restrition of it, to be read. This function is useful for applications that want to read DNS data in text format, but do not want to use a Zone. - On Windows systems, if the WMI module is available, the resolver will retrieve the nameserver from WMI instead of trying to figure it out by reading the registry. This may lead to more accurate results in some cases. - The CERT rdatatype now supports certificate types IPKIX, ISPKI, IPGP, ACPKIX, and IACPKIX. - The CDS rdatatype now allows digest type 0. - Dnspython zones now enforces that a node is either a CNAME node or an “other data” node. A CNAME node contains only CNAME, RRSIG(CNAME), NSEC, RRSIG(NSEC), NSEC3, or RRSIG(NSEC3) rdatasets. An “other data” node contains any rdataset other than a CNAME or RRSIG(CNAME) rdataset. The enforcement is “last update wins”. For example, if you have a node which contains a CNAME rdataset, and then add an MX rdataset to it, then the CNAME rdataset will be deleted. Likewise if you have a node containing an MX rdataset and add a CNAME rdataset, the MX rdataset will be deleted. - Extended DNS Errors, as specified in RFC 8914, are now supported. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-dnspython?expand=0&rev=57
2022-01-18 21:12:31 +01:00
# https://github.com/rthalley/dnspython/pull/755
chmod -x dns/win32util.py
%build
- update to version 2.2.0: - SVCB and HTTPS records have been updated to track the evolving draft standard. - The ZONEMD type has been added. - The resolver now returns a LifetimeTimeout exception which includes an error trace like the NoNameservers exception. This class is a subclass of dns.exception.Timeout for backwards compatibility. - DNS-over-HTTPS will try to use HTTP/2 if the httpx and h2 packages are installed. - DNS-over-HTTPS is now supported for asynchronous queries and resolutions. - dns.zonefile.read_rrsets() has been added, which allows rrsets in zonefile format, or a restrition of it, to be read. This function is useful for applications that want to read DNS data in text format, but do not want to use a Zone. - On Windows systems, if the WMI module is available, the resolver will retrieve the nameserver from WMI instead of trying to figure it out by reading the registry. This may lead to more accurate results in some cases. - The CERT rdatatype now supports certificate types IPKIX, ISPKI, IPGP, ACPKIX, and IACPKIX. - The CDS rdatatype now allows digest type 0. - Dnspython zones now enforces that a node is either a CNAME node or an “other data” node. A CNAME node contains only CNAME, RRSIG(CNAME), NSEC, RRSIG(NSEC), NSEC3, or RRSIG(NSEC3) rdatasets. An “other data” node contains any rdataset other than a CNAME or RRSIG(CNAME) rdataset. The enforcement is “last update wins”. For example, if you have a node which contains a CNAME rdataset, and then add an MX rdataset to it, then the CNAME rdataset will be deleted. Likewise if you have a node containing an MX rdataset and add a CNAME rdataset, the MX rdataset will be deleted. - Extended DNS Errors, as specified in RFC 8914, are now supported. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-dnspython?expand=0&rev=57
2022-01-18 21:12:31 +01:00
%pyproject_wheel
%if !%{with test}
%install
- update to version 2.2.0: - SVCB and HTTPS records have been updated to track the evolving draft standard. - The ZONEMD type has been added. - The resolver now returns a LifetimeTimeout exception which includes an error trace like the NoNameservers exception. This class is a subclass of dns.exception.Timeout for backwards compatibility. - DNS-over-HTTPS will try to use HTTP/2 if the httpx and h2 packages are installed. - DNS-over-HTTPS is now supported for asynchronous queries and resolutions. - dns.zonefile.read_rrsets() has been added, which allows rrsets in zonefile format, or a restrition of it, to be read. This function is useful for applications that want to read DNS data in text format, but do not want to use a Zone. - On Windows systems, if the WMI module is available, the resolver will retrieve the nameserver from WMI instead of trying to figure it out by reading the registry. This may lead to more accurate results in some cases. - The CERT rdatatype now supports certificate types IPKIX, ISPKI, IPGP, ACPKIX, and IACPKIX. - The CDS rdatatype now allows digest type 0. - Dnspython zones now enforces that a node is either a CNAME node or an “other data” node. A CNAME node contains only CNAME, RRSIG(CNAME), NSEC, RRSIG(NSEC), NSEC3, or RRSIG(NSEC3) rdatasets. An “other data” node contains any rdataset other than a CNAME or RRSIG(CNAME) rdataset. The enforcement is “last update wins”. For example, if you have a node which contains a CNAME rdataset, and then add an MX rdataset to it, then the CNAME rdataset will be deleted. Likewise if you have a node containing an MX rdataset and add a CNAME rdataset, the MX rdataset will be deleted. - Extended DNS Errors, as specified in RFC 8914, are now supported. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-dnspython?expand=0&rev=57
2022-01-18 21:12:31 +01:00
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}/
%endif
%if %{with test}
%check
- update to version 2.2.0: - SVCB and HTTPS records have been updated to track the evolving draft standard. - The ZONEMD type has been added. - The resolver now returns a LifetimeTimeout exception which includes an error trace like the NoNameservers exception. This class is a subclass of dns.exception.Timeout for backwards compatibility. - DNS-over-HTTPS will try to use HTTP/2 if the httpx and h2 packages are installed. - DNS-over-HTTPS is now supported for asynchronous queries and resolutions. - dns.zonefile.read_rrsets() has been added, which allows rrsets in zonefile format, or a restrition of it, to be read. This function is useful for applications that want to read DNS data in text format, but do not want to use a Zone. - On Windows systems, if the WMI module is available, the resolver will retrieve the nameserver from WMI instead of trying to figure it out by reading the registry. This may lead to more accurate results in some cases. - The CERT rdatatype now supports certificate types IPKIX, ISPKI, IPGP, ACPKIX, and IACPKIX. - The CDS rdatatype now allows digest type 0. - Dnspython zones now enforces that a node is either a CNAME node or an “other data” node. A CNAME node contains only CNAME, RRSIG(CNAME), NSEC, RRSIG(NSEC), NSEC3, or RRSIG(NSEC3) rdatasets. An “other data” node contains any rdataset other than a CNAME or RRSIG(CNAME) rdataset. The enforcement is “last update wins”. For example, if you have a node which contains a CNAME rdataset, and then add an MX rdataset to it, then the CNAME rdataset will be deleted. Likewise if you have a node containing an MX rdataset and add a CNAME rdataset, the MX rdataset will be deleted. - Extended DNS Errors, as specified in RFC 8914, are now supported. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-dnspython?expand=0&rev=57
2022-01-18 21:12:31 +01:00
%pytest
%endif
%if !%{with test}
%files %{python_files}
%license LICENSE
%doc README.md examples/
%{python_sitelib}/dns
%{python_sitelib}/dnspython-%{version}.dist-info
%endif
%changelog