diff --git a/python-dns-lexicon-findall.patch b/python-dns-lexicon-findall.patch new file mode 100644 index 0000000..39f6497 --- /dev/null +++ b/python-dns-lexicon-findall.patch @@ -0,0 +1,44 @@ +diff --git a/src/lexicon/_private/providers/easyname.py b/src/lexicon/_private/providers/easyname.py +index 827b9cf..3e6dbb4 100644 +--- a/src/lexicon/_private/providers/easyname.py ++++ b/src/lexicon/_private/providers/easyname.py +@@ -273,7 +273,7 @@ class Provider(BaseProvider): + rec["priority"] = (columns[3].contents[1].string or "").strip() + rec["ttl"] = (columns[4].contents[1].string or "").strip() + rec["id"] = "" +- for a in columns[5].findAll( ++ for a in columns[5].find_all( + "a", class_="button button--transparent" + ): + rec["id"] = int(a["href"].rsplit("/", 1)[-1]) +@@ -367,7 +367,7 @@ class Provider(BaseProvider): + def _is_zone_tr(elm): + return elm.name.lower() == "tr" and (elm.has_attr("class")) + +- rows = dns_table.findAll(_is_zone_tr) ++ rows = dns_table.find_all(_is_zone_tr) + assert rows is not None and rows, "Could not find any DNS entries" + return rows + +diff --git a/src/lexicon/_private/providers/henet.py b/src/lexicon/_private/providers/henet.py +index aed38ec..28e5afa 100644 +--- a/src/lexicon/_private/providers/henet.py ++++ b/src/lexicon/_private/providers/henet.py +@@ -144,7 +144,7 @@ class Provider(BaseProvider): + def is_dns_tr_type(klass): + return klass and re.compile("dns_tr").search(klass) + +- records = html.findAll("tr", class_=is_dns_tr_type) ++ records = html.find_all("tr", class_=is_dns_tr_type) + + # If the tag couldn't be found, error, otherwise, return the value of the tag + if records is None or not records: +@@ -153,7 +153,7 @@ class Provider(BaseProvider): + + new_records = [] + for dns_tr in records: +- tds = dns_tr.findAll("td") ++ tds = dns_tr.find_all("td") + # Process HTML in the TR children to derive each object + rec = {} + rec["zone_id"] = tds[0].string diff --git a/python-dns-lexicon-tox-config.patch b/python-dns-lexicon-tox-config.patch index dd22740..039c798 100644 --- a/python-dns-lexicon-tox-config.patch +++ b/python-dns-lexicon-tox-config.patch @@ -1,5 +1,5 @@ diff --git a/pyproject.toml b/pyproject.toml -index d17fecc..be0c6e6 100644 +index 4122ff9..936bbdc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -126,8 +126,7 @@ extend-ignore = [ "E203", "E501" ] @@ -9,6 +9,6 @@ index d17fecc..be0c6e6 100644 -runner = "uv-venv-lock-runner" -with_dev = true +with_dev = false - uv_sync_flags = [ "--python={env_python}" ] # Fix until https://github.com/tox-dev/tox-uv/issues/110 is fixed extras = [ "full" ] setenv.PYTEST_ADDOPTS = "--numprocesses auto" + setenv.PYTHONHASHSEED = "0" diff --git a/python-dns-lexicon.spec b/python-dns-lexicon.spec index 6fc6779..3767c2a 100644 --- a/python-dns-lexicon.spec +++ b/python-dns-lexicon.spec @@ -1,7 +1,7 @@ %global forgeurl https://github.com/dns-lexicon/dns-lexicon -%global forgeversion 3.20.1 -Version: 3.20.1 +%global forgeversion 3.21.0 +Version: %{forgeversion} %forgemeta %global pypi_name dns-lexicon @@ -20,7 +20,7 @@ Version: 3.20.1 %bcond_without tests Name: python-%{pypi_name} -Release: 2%{?dist} +Release: 1%{?dist} Summary: Manipulate DNS records on various DNS providers in a standardized/agnostic way License: MIT @@ -29,6 +29,8 @@ URL: %{forgeurl} Source0: %{forgesource} Source1: create-local-tld-cache.py Patch: python-dns-lexicon-tox-config.patch +# submitted upstream as https://github.com/dns-lexicon/dns-lexicon/pull/29 +Patch2: python-dns-lexicon-findall.patch BuildArch: noarch BuildRequires: python3-devel @@ -227,6 +229,9 @@ ln -s lexicon-%{python3_version} lexicon-3 # }}} %changelog +* Sat Apr 19 2025 Felix Schwarz - 3.21.0-1 +- update to 3.21.0 + * Thu Jan 23 2025 Felix Schwarz - 3.20.1-1 - update to 3.20.1 diff --git a/sources b/sources index 305f6a1..cec2b9c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (dns-lexicon-3.20.1.tar.gz) = 98a29bc67596e58ada43373fd1dfa2a5c35512dd33924969df0d16c10cf2e53cf2bc564488c9f7a1b682b63a7959cd2073207a8d77435aa62a04f408024d85fd +SHA512 (dns-lexicon-3.21.0.tar.gz) = 1b132fae2741d8cf505c0779724b5e0d518683226099c796f1b77b4ceb07e1fbecccb4d82869be090f2c379b3d17f19766857e49f83760d793a0934f520bc8ed