From f4e7945622e5d61c42172cbd4524a7b47680a4bef896fa3b38264b39ca704f82 Mon Sep 17 00:00:00 2001 From: Sebastian Wagner Date: Tue, 18 Jan 2022 20:12:31 +0000 Subject: [PATCH 1/3] =?UTF-8?q?-=20update=20to=20version=202.2.0:=20=20-?= =?UTF-8?q?=20SVCB=20and=20HTTPS=20records=20have=20been=20updated=20to=20?= =?UTF-8?q?track=20the=20evolving=20draft=20standard.=20=20-=20The=20ZONEM?= =?UTF-8?q?D=20type=20has=20been=20added.=20=20-=20The=20resolver=20now=20?= =?UTF-8?q?returns=20a=20LifetimeTimeout=20exception=20which=20includes=20?= =?UTF-8?q?an=20error=20trace=20like=20the=20NoNameservers=20exception.=20?= =?UTF-8?q?This=20class=20is=20a=20subclass=20of=20dns.exception.Timeout?= =?UTF-8?q?=20for=20backwards=20compatibility.=20=20-=20DNS-over-HTTPS=20w?= =?UTF-8?q?ill=20try=20to=20use=20HTTP/2=20if=20the=20httpx=20and=20h2=20p?= =?UTF-8?q?ackages=20are=20installed.=20=20-=20DNS-over-HTTPS=20is=20now?= =?UTF-8?q?=20supported=20for=20asynchronous=20queries=20and=20resolutions?= =?UTF-8?q?.=20=20-=20dns.zonefile.read=5Frrsets()=20has=20been=20added,?= =?UTF-8?q?=20which=20allows=20rrsets=20in=20zonefile=20format,=20or=20a?= =?UTF-8?q?=20restrition=20of=20it,=20to=20be=20read.=20This=20function=20?= =?UTF-8?q?is=20useful=20for=20applications=20that=20want=20to=20read=20DN?= =?UTF-8?q?S=20data=20in=20text=20format,=20but=20do=20not=20want=20to=20u?= =?UTF-8?q?se=20a=20Zone.=20=20-=20On=20Windows=20systems,=20if=20the=20WM?= =?UTF-8?q?I=20module=20is=20available,=20the=20resolver=20will=20retrieve?= =?UTF-8?q?=20the=20nameserver=20from=20WMI=20instead=20of=20trying=20to?= =?UTF-8?q?=20figure=20it=20out=20by=20reading=20the=20registry.=20This=20?= =?UTF-8?q?may=20lead=20to=20more=20accurate=20results=20in=20some=20cases?= =?UTF-8?q?.=20=20-=20The=20CERT=20rdatatype=20now=20supports=20certificat?= =?UTF-8?q?e=20types=20IPKIX,=20ISPKI,=20IPGP,=20ACPKIX,=20and=20IACPKIX.?= =?UTF-8?q?=20=20-=20The=20CDS=20rdatatype=20now=20allows=20digest=20type?= =?UTF-8?q?=200.=20=20-=20Dnspython=20zones=20now=20enforces=20that=20a=20?= =?UTF-8?q?node=20is=20either=20a=20CNAME=20node=20or=20an=20=E2=80=9Cothe?= =?UTF-8?q?r=20data=E2=80=9D=20node.=20A=20CNAME=20node=20contains=20only?= =?UTF-8?q?=20CNAME,=20RRSIG(CNAME),=20NSEC,=20RRSIG(NSEC),=20NSEC3,=20or?= =?UTF-8?q?=20RRSIG(NSEC3)=20rdatasets.=20An=20=E2=80=9Cother=20data?= =?UTF-8?q?=E2=80=9D=20node=20contains=20any=20rdataset=20other=20than=20a?= =?UTF-8?q?=20CNAME=20or=20RRSIG(CNAME)=20rdataset.=20The=20enforcement=20?= =?UTF-8?q?is=20=E2=80=9Clast=20update=20wins=E2=80=9D.=20For=20example,?= =?UTF-8?q?=20if=20you=20have=20a=20node=20which=20contains=20a=20CNAME=20?= =?UTF-8?q?rdataset,=20and=20then=20add=20an=20MX=20rdataset=20to=20it,=20?= =?UTF-8?q?then=20the=20CNAME=20rdataset=20will=20be=20deleted.=20Likewise?= =?UTF-8?q?=20if=20you=20have=20a=20node=20containing=20an=20MX=20rdataset?= =?UTF-8?q?=20and=20add=20a=20CNAME=20rdataset,=20the=20MX=20rdataset=20wi?= =?UTF-8?q?ll=20be=20deleted.=20=20-=20Extended=20DNS=20Errors,=20as=20spe?= =?UTF-8?q?cified=20in=20RFC=208914,=20are=20now=20supported.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-dnspython?expand=0&rev=57 --- dnspython-2.1.0.zip | 3 --- dnspython-2.2.0.tar.gz | 3 +++ python-dnspython.changes | 16 ++++++++++++++++ python-dnspython.spec | 26 ++++++++++++++------------ 4 files changed, 33 insertions(+), 15 deletions(-) delete mode 100644 dnspython-2.1.0.zip create mode 100644 dnspython-2.2.0.tar.gz diff --git a/dnspython-2.1.0.zip b/dnspython-2.1.0.zip deleted file mode 100644 index f560aff..0000000 --- a/dnspython-2.1.0.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e4a87f0b573201a0f3727fa18a516b055fd1107e0e5477cded4a2de497df1dd4 -size 389021 diff --git a/dnspython-2.2.0.tar.gz b/dnspython-2.2.0.tar.gz new file mode 100644 index 0000000..a35f890 --- /dev/null +++ b/dnspython-2.2.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e79351e032d0b606b98d38a4b0e6e2275b31a5b85c873e587cc11b73aca026d6 +size 278858 diff --git a/python-dnspython.changes b/python-dnspython.changes index 6eed626..7a0353f 100644 --- a/python-dnspython.changes +++ b/python-dnspython.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Tue Jan 18 14:29:53 UTC 2022 - Sebastian Wagner + +- 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. + ------------------------------------------------------------------- Fri Jan 8 20:01:12 UTC 2021 - Sebastian Wagner diff --git a/python-dnspython.spec b/python-dnspython.spec index a763b22..29afeab 100644 --- a/python-dnspython.spec +++ b/python-dnspython.spec @@ -1,7 +1,7 @@ # # spec file for package python-dnspython # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,15 +19,16 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-dnspython -Version: 2.1.0 +Version: 2.2.0 Release: 0 Summary: A DNS toolkit for Python License: ISC Group: Development/Languages/Python URL: https://github.com/rthalley/dnspython -Source: https://files.pythonhosted.org/packages/source/d/dnspython/dnspython-%{version}.zip +Source: https://files.pythonhosted.org/packages/source/d/dnspython/dnspython-%{version}.tar.gz BuildRequires: %{python_module base >= 3.6} -BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module poetry} # SECTION tests BuildRequires: %{python_module cryptography} BuildRequires: %{python_module ecdsa} @@ -53,8 +54,10 @@ Requires: python-contextvars BuildArch: noarch Recommends: python-cryptography Recommends: python-idna >= 2.1 -Recommends: python-trio >= 0.14.0 Recommends: python-sniffio >= 1.1 +Recommends: python-trio >= 0.14.0 + +%python_subpackages %description dnspython is a DNS toolkit for Python. It supports almost all @@ -66,27 +69,26 @@ 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. -%python_subpackages - %prep %setup -q -n dnspython-%{version} chmod -x examples/* +# https://github.com/rthalley/dnspython/pull/755 +chmod -x dns/win32util.py %build -%python_build +%pyproject_wheel %install -%python_install +%pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitelib}/ %check -# exclude the testcase which requires an unpackaged pickle file in the tests. see https://github.com/rthalley/dnspython/issues/622 -%pytest -k 'not test_unpickle' +%pytest %files %{python_files} %license LICENSE %doc README.md examples/ %{python_sitelib}/dns/ -%{python_sitelib}/dnspython-%{version}-py%{python_version}.egg-info +%{python_sitelib}/dnspython-%{version}.dist-info/ %changelog From f7a5df984f41f37068485e5c44e3cd439c072cf44f98845dd2e80c6790b2fd43 Mon Sep 17 00:00:00 2001 From: Sebastian Wagner Date: Wed, 19 Jan 2022 12:29:26 +0000 Subject: [PATCH 2/3] - Update dependencies to cover all optional features and dependencies in a more structured way and describe it in the package description. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-dnspython?expand=0&rev=58 --- python-dnspython.changes | 5 ++++ python-dnspython.spec | 55 ++++++++++++++++++++++++++++++---------- 2 files changed, 47 insertions(+), 13 deletions(-) diff --git a/python-dnspython.changes b/python-dnspython.changes index 7a0353f..fe1897f 100644 --- a/python-dnspython.changes +++ b/python-dnspython.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Jan 19 12:28:45 UTC 2022 - Sebastian Wagner + +- Update dependencies to cover all optional features and dependencies in a more structured way and describe it in the package description. + ------------------------------------------------------------------- Tue Jan 18 14:29:53 UTC 2022 - Sebastian Wagner diff --git a/python-dnspython.spec b/python-dnspython.spec index 29afeab..34a2735 100644 --- a/python-dnspython.spec +++ b/python-dnspython.spec @@ -30,13 +30,23 @@ BuildRequires: %{python_module base >= 3.6} BuildRequires: %{python_module pip} BuildRequires: %{python_module poetry} # SECTION tests -BuildRequires: %{python_module cryptography} -BuildRequires: %{python_module ecdsa} -BuildRequires: %{python_module idna} -BuildRequires: %{python_module pycryptodome} -BuildRequires: %{python_module requests-toolbelt} -BuildRequires: %{python_module trio >= 0.14.0} +#BuildRequires: %%{python_module ecdsa} +#BuildRequires: %%{python_module pycryptodome} BuildRequires: %{python_module typing} +# doh: +BuildRequires: %{python_module httpx} +BuildRequires: %{python_module h2} +BuildRequires: %{python_module requests-toolbelt} +BuildRequires: %{python_module requests} +# idna +BuildRequires: %{python_module idna} +# dnssec +BuildRequires: %{python_module cryptography} +# trio +BuildRequires: %{python_module trio >= 0.14.0} +# curio +BuildRequires: %{python_module sniffio >= 1.1} +BuildRequires: %{python_module curio >= 1.2} BuildRequires: fdupes BuildRequires: python-rpm-macros # /SECTION tests @@ -45,17 +55,26 @@ BuildRequires: netcfg BuildRequires: unzip BuildRequires: (python3-contextvars if python3-base < 3.7) BuildRequires: (python36-contextvars if python36-base) -Requires: python-ecdsa -Requires: python-pycryptodome -Requires: python-requests-toolbelt +#Requires: python-ecdsa +#Requires: python-pycryptodome %if %{python_version_nodots} < 37 Requires: python-contextvars %endif +# doh +Requires: python-requests +Requires: python-h2 +Requires: python-httpx +Requires: python-requests-toolbelt +# idna +Requires: python-idna >= 2.1 +# dnssec +Requires: python-cryptography +# trio +Suggests: python-trio >= 0.14.0 +# curio +Suggests: python-sniffio >= 1.1 +Suggests: python-curio >= 1.2 BuildArch: noarch -Recommends: python-cryptography -Recommends: python-idna >= 2.1 -Recommends: python-sniffio >= 1.1 -Recommends: python-trio >= 0.14.0 %python_subpackages @@ -69,6 +88,16 @@ 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 +- curio +This optional feature is not available due to missing dependencies: +- wmi + %prep %setup -q -n dnspython-%{version} chmod -x examples/* From ad04294206df88e76e500ce4af2ec65c10f0d02dac88696ff791623bc11f6ca1 Mon Sep 17 00:00:00 2001 From: Sebastian Wagner Date: Wed, 2 Feb 2022 19:46:33 +0000 Subject: [PATCH 3/3] Accepting request 950806 from home:bnavigator:branches:devel:languages:python - Break build dependency cycle through :test multibuild - PEP517 style: poetry-core is enough to build the package - Clean up old python36 requirements: no longer in Tumbleweed OBS-URL: https://build.opensuse.org/request/show/950806 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-dnspython?expand=0&rev=59 --- _multibuild | 3 +++ python-dnspython.changes | 7 +++++++ python-dnspython.spec | 40 +++++++++++++++++++++++++--------------- 3 files changed, 35 insertions(+), 15 deletions(-) create mode 100644 _multibuild diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..49fb912 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + diff --git a/python-dnspython.changes b/python-dnspython.changes index fe1897f..eff4685 100644 --- a/python-dnspython.changes +++ b/python-dnspython.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Feb 2 18:24:23 UTC 2022 - Ben Greiner + +- Break build dependency cycle through :test multibuild +- PEP517 style: poetry-core is enough to build the package +- Clean up old python36 requirements: no longer in Tumbleweed + ------------------------------------------------------------------- Wed Jan 19 12:28:45 UTC 2022 - Sebastian Wagner diff --git a/python-dnspython.spec b/python-dnspython.spec index 34a2735..6ca5329 100644 --- a/python-dnspython.spec +++ b/python-dnspython.spec @@ -1,5 +1,5 @@ # -# spec file for package python-dnspython +# spec file # # Copyright (c) 2022 SUSE LLC # @@ -16,9 +16,18 @@ # -%{?!python_module:%define python_module() python-%{**} python3-%{**}} +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%bcond_without test +%else +%define psuffix %{nil} +%bcond_with test +%endif + +%{?!python_module:%define python_module() python3-%{**}} %define skip_python2 1 -Name: python-dnspython +Name: python-dnspython%{psuffix} Version: 2.2.0 Release: 0 Summary: A DNS toolkit for Python @@ -28,10 +37,10 @@ URL: https://github.com/rthalley/dnspython Source: https://files.pythonhosted.org/packages/source/d/dnspython/dnspython-%{version}.tar.gz BuildRequires: %{python_module base >= 3.6} BuildRequires: %{python_module pip} -BuildRequires: %{python_module poetry} -# SECTION tests -#BuildRequires: %%{python_module ecdsa} -#BuildRequires: %%{python_module pycryptodome} +BuildRequires: %{python_module poetry-core} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +%if %{with test} BuildRequires: %{python_module typing} # doh: BuildRequires: %{python_module httpx} @@ -47,19 +56,14 @@ BuildRequires: %{python_module trio >= 0.14.0} # curio BuildRequires: %{python_module sniffio >= 1.1} BuildRequires: %{python_module curio >= 1.2} -BuildRequires: fdupes -BuildRequires: python-rpm-macros -# /SECTION tests BuildRequires: %{python_module pytest} BuildRequires: netcfg -BuildRequires: unzip BuildRequires: (python3-contextvars if python3-base < 3.7) -BuildRequires: (python36-contextvars if python36-base) -#Requires: python-ecdsa -#Requires: python-pycryptodome -%if %{python_version_nodots} < 37 +%endif +%if 0%{?python_version_nodots} < 37 Requires: python-contextvars %endif +# Requires despite optional: see description # doh Requires: python-requests Requires: python-h2 @@ -107,17 +111,23 @@ chmod -x dns/win32util.py %build %pyproject_wheel +%if !%{with test} %install %pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitelib}/ +%endif +%if %{with test} %check %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