Compare commits
60 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
398bc5a3a1 | ||
|
|
66df8eba2b | ||
|
|
9de8403851 | ||
|
|
82f71c1257 | ||
|
|
fb10e373de | ||
|
|
29a0225dc0 | ||
|
|
1a62987559 | ||
|
|
74a28a6262 | ||
|
|
23bd76152a | ||
|
|
0b0ac66461 | ||
|
|
bf63b51a3c | ||
|
|
8f77d4b3d5 | ||
|
|
5bd84d818f | ||
|
|
7ff4c68fbe | ||
|
|
d5eb57c3de | ||
|
|
11f7c31776 | ||
|
|
f6d9375c48 | ||
|
|
c3dde8dbb4 | ||
|
|
76ecac728b | ||
|
|
c072a10b22 | ||
|
|
c327bd5bee | ||
|
|
9079654b2f | ||
|
|
ad3c57536b | ||
|
|
b539d27ed0 | ||
|
|
7dc3ff8bbb | ||
|
|
4baebb6953 | ||
|
|
17fa249bdd | ||
|
|
a795a1cd8c | ||
|
|
67248f13f2 | ||
|
|
918a73fca4 | ||
|
|
b41a8291a5 | ||
|
|
9c9f30f893 | ||
|
|
c069f85024 | ||
|
|
b559a51e41 | ||
|
|
9dad35013c | ||
|
|
ce9260f368 | ||
|
|
70566cc5f6 | ||
|
|
0c57b8ff24 | ||
|
|
199cba562a | ||
|
|
8866a64eb5 | ||
|
|
f5b5f9d7cf | ||
|
|
119e8954a9 | ||
|
|
3c3d472106 | ||
|
|
63982ab459 | ||
|
|
c94d9f0000 | ||
|
|
494e59f6c5 | ||
|
|
db25f69ed5 | ||
|
|
82203bad43 | ||
|
|
b654a336aa | ||
|
|
7637ab31c1 | ||
|
|
76f19ee3fd | ||
|
|
5e9310e208 | ||
|
|
962c321830 | ||
|
|
992b2ace34 | ||
|
|
81286e00c6 | ||
|
|
f0aef2dde0 | ||
|
|
304146277d | ||
|
|
2459b2015d | ||
|
|
6bb36982c5 | ||
|
|
6e7d48dae2 |
8 changed files with 428 additions and 344 deletions
21
.gitignore
vendored
21
.gitignore
vendored
|
|
@ -1,18 +1,3 @@
|
|||
/dns-lexicon-2.1.19.tar.gz
|
||||
/dns-lexicon-2.2.1.tar.gz
|
||||
/dns-lexicon-2.2.2.tar.gz
|
||||
/dns-lexicon-2.2.3.tar.gz
|
||||
/dns-lexicon-2.3.0.tar.gz
|
||||
/dns-lexicon-2.4.0.tar.gz
|
||||
/dns-lexicon-2.4.3.tar.gz
|
||||
/dns-lexicon-2.4.4.tar.gz
|
||||
/dns-lexicon-2.4.5.tar.gz
|
||||
/dns-lexicon-2.7.0.tar.gz
|
||||
/dns-lexicon-2.7.9.tar.gz
|
||||
/dns-lexicon-3.0.2.tar.gz
|
||||
/dns-lexicon-3.0.6.tar.gz
|
||||
/dns-lexicon-3.1.5.tar.gz
|
||||
/dns-lexicon-3.2.6.tar.gz
|
||||
/dns-lexicon-3.2.8.tar.gz
|
||||
/dns-lexicon-3.3.4.tar.gz
|
||||
/dns-lexicon-3.3.17.tar.gz
|
||||
/dns-lexicon-*.tar.gz
|
||||
/lexicon-*.tar.gz
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +0,0 @@
|
|||
diff --git a/lexicon/cli.py b/lexicon/cli.py
|
||||
index dbef1ae..32a0f6f 100644
|
||||
--- a/lexicon/cli.py
|
||||
+++ b/lexicon/cli.py
|
||||
@@ -1,4 +1,3 @@
|
||||
-#!/usr/bin/env python
|
||||
"""Module for Lexicon command-line interface"""
|
||||
from __future__ import absolute_import, print_function
|
||||
import json
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
diff --git a/setup.py b/setup.py
|
||||
index 7d68954..0c211c4 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -113,14 +113,14 @@ setup(
|
||||
# requirements files see:
|
||||
# https://packaging.python.org/en/latest/requirements.html
|
||||
install_requires=[
|
||||
- 'requests[security]',
|
||||
+ 'requests',
|
||||
'tldextract',
|
||||
'future',
|
||||
'cryptography',
|
||||
'pyyaml',
|
||||
],
|
||||
|
||||
- extras_require=extras_require,
|
||||
+ #extras_require=extras_require,
|
||||
|
||||
# To provide executable scripts, use entry points in preference to the
|
||||
# "scripts" keyword. Entry points provide cross-platform support and allow
|
||||
38
create-local-tld-cache.py
Normal file
38
create-local-tld-cache.py
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
from pathlib import Path
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
sys.stderr.write('usage: %s <buildroot-sitelib>\n' % sys.argv[0])
|
||||
|
||||
buildroot_sitelib_dir = sys.argv[1]
|
||||
sys.path.insert(0, buildroot_sitelib_dir)
|
||||
|
||||
from tldextract.cache import get_cache_dir, DiskCache
|
||||
|
||||
if 'TLDEXTRACT_CACHE' not in os.environ:
|
||||
raise ValueError('must set "TLDEXTRACT_CACHE" environment variable')
|
||||
|
||||
local_cache = Path('/usr/share/publicsuffix/public_suffix_list.dat')
|
||||
if not local_cache.exists():
|
||||
raise FileNotFoundError(local_cache)
|
||||
|
||||
url_local_cache = f'file://{local_cache}'
|
||||
subprocess.run(['/usr/bin/tldextract', '--update', f'--suffix_list_url={url_local_cache}'], check=True)
|
||||
|
||||
cache = DiskCache(cache_dir=get_cache_dir())
|
||||
namespace = 'publicsuffix.org-tlds'
|
||||
cache_with_local_data = cache._key_to_cachefile_path(namespace, {'urls': (url_local_cache,), 'fallback_to_snapshot': True})
|
||||
func = lambda **kwargs: json.loads(Path(cache_with_local_data).read_text())
|
||||
|
||||
kwargs = {
|
||||
'cache': cache,
|
||||
'urls': ('https://publicsuffix.org/list/public_suffix_list.dat', 'https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat'),
|
||||
'fallback_to_snapshot': True,
|
||||
}
|
||||
cache.run_and_cache(func, namespace=namespace, kwargs=kwargs, hashed_argnames=('urls', 'fallback_to_snapshot'))
|
||||
|
||||
85
disable-poetry-light.patch
Normal file
85
disable-poetry-light.patch
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
diff -uNr lexicon-3.17.0/pyproject.toml lexicon-3.17.0.mod/pyproject.toml
|
||||
--- lexicon-3.17.0/pyproject.toml 2023-11-06 16:21:46.000000000 -0600
|
||||
+++ lexicon-3.17.0.mod/pyproject.toml 2024-02-01 04:28:53.861285119 -0600
|
||||
@@ -61,32 +61,6 @@
|
||||
# Extra "full" list must contain all other extras
|
||||
full = ["boto3", "localzone", "softlayer", "zeep", "oci"]
|
||||
|
||||
-[tool.poetry.group.dev.dependencies]
|
||||
-esbonio = "*"
|
||||
-packaging = "*"
|
||||
-pytest = "*"
|
||||
-pytest-cov = "*"
|
||||
-pytest-xdist = "*"
|
||||
-vcrpy = "*"
|
||||
-# We add flake8 conditionally to recent Python version to get modern versions
|
||||
-# of flake8 cleaned of several issues. It just means that linting cannot be done
|
||||
-# on the initial release of Python 3.8 (version 3.8.0). This is a decent constraint.
|
||||
-flake8 = { version = "*", python = ">=3.8.1" }
|
||||
-isort = "*"
|
||||
-tox = ">=4"
|
||||
-black = "*"
|
||||
-mypy = "*"
|
||||
-toml = "*"
|
||||
-types-PyYAML = "*"
|
||||
-types-pytz = "*"
|
||||
-types-requests = "*"
|
||||
-types-toml = "*"
|
||||
-
|
||||
-[tool.poetry.group.docs.dependencies]
|
||||
-sphinx = "*"
|
||||
-sphinx_rtd_theme = "*"
|
||||
-toml = "*"
|
||||
-
|
||||
[tool.poetry.scripts]
|
||||
lexicon = "lexicon._private.cli:main"
|
||||
|
||||
diff -uNr lexicon-3.17.0/setup.cfg lexicon-3.17.0.mod/setup.cfg
|
||||
--- lexicon-3.17.0/setup.cfg 2023-11-06 16:21:46.000000000 -0600
|
||||
+++ lexicon-3.17.0.mod/setup.cfg 2024-02-01 04:05:39.191101574 -0600
|
||||
@@ -5,45 +5,3 @@
|
||||
[tox:tox]
|
||||
envlist = cover,lint,mypy
|
||||
isolated_build = true
|
||||
-
|
||||
-# Standard env will run all test available for all providers.
|
||||
-[testenv]
|
||||
-allowlist_externals = poetry
|
||||
-extras =
|
||||
- full
|
||||
-setenv =
|
||||
- PYTEST_ADDOPTS = {env:PYTEST_ADDOPTS:--numprocesses auto}
|
||||
- PYTHONHASHSEED = 0
|
||||
-commands_pre =
|
||||
- poetry install --extras full --no-root --sync
|
||||
-commands =
|
||||
- poetry run pytest tests/ \
|
||||
- --junitxml=junit/test-results.xml --dist=loadfile
|
||||
-
|
||||
-# Cover env will run all test available for all providers with coverage enabled.
|
||||
-[testenv:cover]
|
||||
-commands =
|
||||
- poetry run pytest tests/ \
|
||||
- --junitxml=junit/test-results.xml --dist=loadfile \
|
||||
- --cov=lexicon --cov-report=term-missing --cov-report=xml
|
||||
-
|
||||
-# Light env will run all tests except for providers with optional dependencies.
|
||||
-[testenv:light]
|
||||
-extras =
|
||||
-commands_pre =
|
||||
- poetry install --no-root --sync
|
||||
-commands =
|
||||
- poetry run pytest tests/ \
|
||||
- --junitxml=junit/test-results.xml --dist=loadfile \
|
||||
- --xfail-providers-with-missing-deps
|
||||
-
|
||||
-# Lint env will check for code quality and errors, and fails if it does not match the minimal requirements.
|
||||
-[testenv:lint]
|
||||
-commands =
|
||||
- poetry run flake8 src tests
|
||||
-
|
||||
-
|
||||
-# Mypy env will check for types in the Lexicon codebase.
|
||||
-[testenv:mypy]
|
||||
-commands =
|
||||
- poetry run mypy src tests
|
||||
14
python-dns-lexicon-tox-config.patch
Normal file
14
python-dns-lexicon-tox-config.patch
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
diff --git a/pyproject.toml b/pyproject.toml
|
||||
index 4122ff9..936bbdc 100644
|
||||
--- a/pyproject.toml
|
||||
+++ b/pyproject.toml
|
||||
@@ -126,8 +126,7 @@ extend-ignore = [ "E203", "E501" ]
|
||||
envlist = [ "cover", "lint" , "mypy" ]
|
||||
|
||||
[tool.tox.env_run_base]
|
||||
-runner = "uv-venv-lock-runner"
|
||||
-with_dev = true
|
||||
+with_dev = false
|
||||
extras = [ "full" ]
|
||||
setenv.PYTEST_ADDOPTS = "--numprocesses auto"
|
||||
setenv.PYTHONHASHSEED = "0"
|
||||
|
|
@ -1,402 +1,394 @@
|
|||
|
||||
%global forgeurl https://github.com/dns-lexicon/dns-lexicon
|
||||
%global forgeversion 3.21.1
|
||||
Version: %{forgeversion}
|
||||
%forgemeta
|
||||
|
||||
%global pypi_name dns-lexicon
|
||||
|
||||
%if 0%{?rhel} && 0%{?rhel} == 7
|
||||
%global rhel7 1
|
||||
%endif
|
||||
|
||||
%if 0%{?rhel7}
|
||||
%bcond_with python3
|
||||
%bcond_without python2
|
||||
%else
|
||||
# RHEL 8/Fedora: Python 3 only
|
||||
%bcond_without python3
|
||||
%bcond_with python2
|
||||
%endif
|
||||
|
||||
%if 0%{?rhel} >= 8
|
||||
# EPEL8 is currently missing dependencies used by the extras metapackages
|
||||
# EPEL is currently missing dependencies used by the extras metapackages
|
||||
# EPEL is currently missing dependencies used by the tests
|
||||
%bcond_with tests
|
||||
%bcond_with extras
|
||||
%else
|
||||
%bcond_without tests
|
||||
%bcond_without extras
|
||||
%endif
|
||||
|
||||
# disable tests for now
|
||||
%bcond_without tests
|
||||
|
||||
Name: python-%{pypi_name}
|
||||
Version: 3.3.17
|
||||
Release: 5%{?dist}
|
||||
Summary: Manipulate DNS records on various DNS providers in a standardized/agnostic way
|
||||
|
||||
License: MIT
|
||||
URL: https://github.com/AnalogJ/lexicon
|
||||
Source0: %{pypi_source}
|
||||
URL: %{forgeurl}
|
||||
# pypi releases don't contain necessary data to run the tests
|
||||
Source0: %{forgesource}
|
||||
Source1: create-local-tld-cache.py
|
||||
Patch: python-dns-lexicon-tox-config.patch
|
||||
BuildArch: noarch
|
||||
|
||||
Patch0: 0000-remove-shebang.patch
|
||||
Patch1: 0001-fix-requirements.patch
|
||||
|
||||
%if %{with python2}
|
||||
BuildRequires: python2-devel
|
||||
BuildRequires: python2-setuptools
|
||||
BuildRequires: python2-cryptography
|
||||
BuildRequires: python2-future
|
||||
BuildRequires: python2-pyyaml
|
||||
BuildRequires: python2-tldextract
|
||||
# EL7 has an unversioned name for this package
|
||||
BuildRequires: pyOpenSSL
|
||||
|
||||
# Extras requirements
|
||||
# {{{
|
||||
%if %{with extras}
|
||||
# EL7 has unversioned names for these packages
|
||||
BuildRequires: python-beautifulsoup4
|
||||
BuildRequires: python-boto3
|
||||
BuildRequires: python-xmltodict
|
||||
# EL7 doesn't have a current enough version of python2-dns
|
||||
%endif
|
||||
# }}}
|
||||
%endif
|
||||
|
||||
%if %{with python3}
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-setuptools
|
||||
BuildRequires: python3-cryptography
|
||||
BuildRequires: python3-future
|
||||
BuildRequires: python3-pyOpenSSL
|
||||
|
||||
# epel is missing full poetry and light packages needed for tests
|
||||
%if 0%{?rhel >= 8}
|
||||
#Patch: disable-poetry-light.patch
|
||||
%endif
|
||||
|
||||
# required to run the test suite
|
||||
%if %{with tests}
|
||||
BuildRequires: python3-pytest
|
||||
BuildRequires: python3-pytest-vcr
|
||||
BuildRequires: python3-pytest-xdist
|
||||
BuildRequires: publicsuffix-list
|
||||
BuildRequires: python3-tldextract
|
||||
BuildRequires: python3-pyyaml
|
||||
|
||||
# Extras requirements
|
||||
# {{{
|
||||
%if %{with extras}
|
||||
BuildRequires: python3-beautifulsoup4
|
||||
BuildRequires: python3-boto3
|
||||
BuildRequires: python3-dns >= 1.15.0
|
||||
BuildRequires: python3-xmltodict
|
||||
%endif
|
||||
# }}}
|
||||
|
||||
%endif
|
||||
|
||||
%description
|
||||
Lexicon provides a way to manipulate DNS records on multiple DNS providers in a
|
||||
standardized way. Lexicon has a CLI but it can also be used as a python
|
||||
library.
|
||||
|
||||
%if %{with python2}
|
||||
%package -n python2-%{pypi_name}
|
||||
Summary: %{summary}
|
||||
%{?python_provide:%python_provide python2-%{pypi_name}}
|
||||
|
||||
Requires: python2-cryptography
|
||||
Requires: python2-future
|
||||
Requires: python2-requests
|
||||
Requires: python2-setuptools
|
||||
Requires: python2-pyyaml
|
||||
Requires: python2-tldextract
|
||||
# EL7 has an unversioned name for this package
|
||||
Requires: pyOpenSSL
|
||||
|
||||
# Both packages install a Python module named lexicon
|
||||
# TODO: Remove this once resolved upstream (see upstream #222)
|
||||
Conflicts: python-lexicon
|
||||
|
||||
%description -n python2-%{pypi_name}
|
||||
Lexicon provides a way to manipulate DNS records on multiple DNS providers in a
|
||||
standardized way. Lexicon has a CLI but it can also be used as a python
|
||||
library.
|
||||
|
||||
This is the Python 2 version of the package.
|
||||
%endif
|
||||
|
||||
%if %{with python3}
|
||||
%package -n python3-%{pypi_name}
|
||||
Summary: %{summary}
|
||||
%{?python_provide:%python_provide python3-%{pypi_name}}
|
||||
|
||||
Requires: python3-cryptography
|
||||
Requires: python3-future
|
||||
Requires: python3-requests
|
||||
Requires: python3-setuptools
|
||||
Requires: python3-pyOpenSSL
|
||||
Requires: python3-tldextract
|
||||
Requires: python3-pyyaml
|
||||
|
||||
# Both packages install a Python module named lexicon
|
||||
# TODO: Remove this once resolved upstream (see upstream #222)
|
||||
Conflicts: python3-lexicon
|
||||
|
||||
# These "extras" were previously present in upstream lexicon but are not there
|
||||
# anymore.
|
||||
# {{{
|
||||
%if %{with extras}
|
||||
Obsoletes: python3-%{pypi_name}+easyname < 3.4
|
||||
Provides: python3dist(%{pypi_name}[easyname]) = %{version}
|
||||
Provides: python%{python3_version}dist(%{pypi_name}[easyname]) = %{version}
|
||||
|
||||
Obsoletes: python3-%{pypi_name}+gratisdns < 3.4
|
||||
Provides: python3dist(%{pypi_name}[gratisdns]) = %{version}
|
||||
Provides: python%{python3_version}dist(%{pypi_name}[gratisdns]) = %{version}
|
||||
|
||||
Obsoletes: python3-%{pypi_name}+henet < 3.4
|
||||
Provides: python3dist(%{pypi_name}[henet]) = %{version}
|
||||
Provides: python%{python3_version}dist(%{pypi_name}[henet]) = %{version}
|
||||
|
||||
Obsoletes: python3-%{pypi_name}+hetzner < 3.4
|
||||
Provides: python3dist(%{pypi_name}[hetzner]) = %{version}
|
||||
Provides: python%{python3_version}dist(%{pypi_name}[hetzner]) = %{version}
|
||||
|
||||
# lexicon 3.6.0 removed the xmltodict dependency (and the "plesk" extra)
|
||||
Obsoletes: python3-%{pypi_name}+plesk < 3.6
|
||||
Provides: python3dist(%{pypi_name}[plesk]) = %{version}
|
||||
Provides: python%{python3_version}dist(%{pypi_name}[plesk]) = %{version}
|
||||
%endif
|
||||
# }}}
|
||||
|
||||
%description -n python3-%{pypi_name}
|
||||
Lexicon provides a way to manipulate DNS records on multiple DNS providers in a
|
||||
standardized way. Lexicon has a CLI but it can also be used as a python
|
||||
library.
|
||||
|
||||
This is the Python 3 version of the package.
|
||||
%endif
|
||||
|
||||
# Extras meta-packages
|
||||
# {{{
|
||||
%if %{with extras}
|
||||
|
||||
%if %{with python2}
|
||||
%package -n python2-%{pypi_name}+easyname
|
||||
Summary: Meta-package for python2-%{pypi_name} and easyname provider
|
||||
%{?python_provide:%python_provide python2-%{pypi_name}+easyname}
|
||||
|
||||
Requires: python2-%{pypi_name} = %{version}-%{release}
|
||||
# EL7 has an unversioned name for this package
|
||||
Requires: python-beautifulsoup4
|
||||
|
||||
%description -n python2-%{pypi_name}+easyname
|
||||
This package installs no files. It requires python2-%{pypi_name} and all
|
||||
dependencies necessary to use the easyname provider.
|
||||
%endif
|
||||
|
||||
%if %{with python3}
|
||||
%package -n python3-%{pypi_name}+easyname
|
||||
Summary: Meta-package for python3-%{pypi_name} and easyname provider
|
||||
%{?python_provide:%python_provide python3-%{pypi_name}+easyname}
|
||||
|
||||
%package -n python3-%{pypi_name}+gransy
|
||||
Summary: Meta-package for python3-%{pypi_name} and gransy provider
|
||||
%{?python_provide:%python_provide python3-%{pypi_name}+gransy}
|
||||
Requires: python3-%{pypi_name} = %{version}-%{release}
|
||||
Requires: python3-beautifulsoup4
|
||||
|
||||
%description -n python3-%{pypi_name}+easyname
|
||||
%description -n python3-%{pypi_name}+gransy
|
||||
This package installs no files. It requires python3-%{pypi_name} and all
|
||||
dependencies necessary to use the easyname provider.
|
||||
%endif
|
||||
dependencies necessary to use the gransy provider.
|
||||
|
||||
%if %{with python2}
|
||||
%package -n python2-%{pypi_name}+gratisdns
|
||||
Summary: Meta-package for python2-%{pypi_name} and gratisdns provider
|
||||
%{?python_provide:%python_provide python2-%{pypi_name}+gratisdns}
|
||||
|
||||
Requires: python2-%{pypi_name} = %{version}-%{release}
|
||||
# EL7 has an unversioned name for this package
|
||||
Requires: python-beautifulsoup4
|
||||
|
||||
%description -n python2-%{pypi_name}+gratisdns
|
||||
This package installs no files. It requires python2-%{pypi_name} and all
|
||||
dependencies necessary to use the gratisdns provider.
|
||||
%endif
|
||||
|
||||
%if %{with python3}
|
||||
%package -n python3-%{pypi_name}+gratisdns
|
||||
Summary: Meta-package for python3-%{pypi_name} and gratisdns provider
|
||||
%{?python_provide:%python_provide python3-%{pypi_name}+gratisdns}
|
||||
|
||||
%package -n python3-%{pypi_name}+localzone
|
||||
Summary: Meta-package for python3-%{pypi_name} and localzone provider
|
||||
%{?python_provide:%python_provide python3-%{pypi_name}+localzone}
|
||||
Requires: python3-%{pypi_name} = %{version}-%{release}
|
||||
Requires: python3-beautifulsoup4
|
||||
|
||||
%description -n python3-%{pypi_name}+gratisdns
|
||||
%description -n python3-%{pypi_name}+localzone
|
||||
This package installs no files. It requires python3-%{pypi_name} and all
|
||||
dependencies necessary to use the gratisdns provider.
|
||||
%endif
|
||||
dependencies necessary to use the localzone provider.
|
||||
|
||||
%if %{with python2}
|
||||
%package -n python2-%{pypi_name}+henet
|
||||
Summary: Meta-package for python2-%{pypi_name} and Hurricane Electric provider
|
||||
%{?python_provide:%python_provide python2-%{pypi_name}+henet}
|
||||
|
||||
Requires: python2-%{pypi_name} = %{version}-%{release}
|
||||
# EL7 has an unversioned name for this package
|
||||
Requires: python-beautifulsoup4
|
||||
|
||||
%description -n python2-%{pypi_name}+henet
|
||||
This package installs no files. It requires python2-%{pypi_name} and all
|
||||
dependencies necessary to use the Hurricane Electric provider.
|
||||
%endif
|
||||
|
||||
%if %{with python3}
|
||||
%package -n python3-%{pypi_name}+henet
|
||||
Summary: Meta-package for python3-%{pypi_name} and Hurricane Electric provider
|
||||
%{?python_provide:%python_provide python3-%{pypi_name}+henet}
|
||||
|
||||
%package -n python3-%{pypi_name}+oci
|
||||
Summary: Meta-package for python3-%{pypi_name} and oci provider
|
||||
%{?python_provide:%python_provide python3-%{pypi_name}+oci}
|
||||
Requires: python3-%{pypi_name} = %{version}-%{release}
|
||||
Requires: python3-beautifulsoup4
|
||||
|
||||
%description -n python3-%{pypi_name}+henet
|
||||
%description -n python3-%{pypi_name}+oci
|
||||
This package installs no files. It requires python3-%{pypi_name} and all
|
||||
dependencies necessary to use the Hurricane Electric provider.
|
||||
%endif
|
||||
dependencies necessary to use the oci provider.
|
||||
|
||||
%if %{with python2}
|
||||
%package -n python2-%{pypi_name}+plesk
|
||||
Summary: Meta-package for python2-%{pypi_name} and Plesk provider
|
||||
%{?python_provide:%python_provide python2-%{pypi_name}+plesk}
|
||||
|
||||
Requires: python2-%{pypi_name} = %{version}-%{release}
|
||||
# EL7 has an unversioned name for this package
|
||||
Requires: python-xmltodict
|
||||
|
||||
%description -n python2-%{pypi_name}+plesk
|
||||
This package installs no files. It requires python2-%{pypi_name} and all
|
||||
dependencies necessary to use the Plesk provider.
|
||||
%endif
|
||||
|
||||
%if %{with python3}
|
||||
%package -n python3-%{pypi_name}+plesk
|
||||
Summary: Meta-package for python3-%{pypi_name} and Plesk provider
|
||||
%{?python_provide:%python_provide python3-%{pypi_name}+plesk}
|
||||
|
||||
Requires: python3-%{pypi_name} = %{version}-%{release}
|
||||
Requires: python3-xmltodict
|
||||
|
||||
%description -n python3-%{pypi_name}+plesk
|
||||
This package installs no files. It requires python3-%{pypi_name} and all
|
||||
dependencies necessary to use the Plesk provider.
|
||||
%endif
|
||||
|
||||
%if %{with python2}
|
||||
%package -n python2-%{pypi_name}+route53
|
||||
Summary: Meta-package for python2-%{pypi_name} and Route 53 provider
|
||||
%{?python_provide:%python_provide python2-%{pypi_name}+route53}
|
||||
|
||||
Requires: python2-%{pypi_name} = %{version}-%{release}
|
||||
# EL7 has an unversioned name for this package
|
||||
Requires: python-boto3
|
||||
|
||||
%description -n python2-%{pypi_name}+route53
|
||||
This package installs no files. It requires python2-%{pypi_name} and all
|
||||
dependencies necessary to use the Route 53 provider.
|
||||
%endif
|
||||
|
||||
%if %{with python3}
|
||||
%package -n python3-%{pypi_name}+route53
|
||||
Summary: Meta-package for python3-%{pypi_name} and Route 53 provider
|
||||
%{?python_provide:%python_provide python3-%{pypi_name}+route53}
|
||||
|
||||
Requires: python3-%{pypi_name} = %{version}-%{release}
|
||||
Requires: python3-boto3
|
||||
|
||||
%description -n python3-%{pypi_name}+route53
|
||||
This package installs no files. It requires python3-%{pypi_name} and all
|
||||
dependencies necessary to use the Route 53 provider.
|
||||
%endif
|
||||
|
||||
%if ! 0%{?rhel7}
|
||||
# EL7 does not have the dependencies necessary for this meta-package
|
||||
# {{{
|
||||
|
||||
%if %{with python2}
|
||||
%package -n python2-%{pypi_name}+hetzner
|
||||
Summary: Meta-package for python2-%{pypi_name} and Hetzner provider
|
||||
%{?python_provide:%python_provide python2-%{pypi_name}+hetzner}
|
||||
|
||||
Requires: python2-%{pypi_name} = %{version}-%{release}
|
||||
Requires: python2-beautifulsoup4
|
||||
Requires: python2-dns >= 1.15.0
|
||||
|
||||
%description -n python2-%{pypi_name}+hetzner
|
||||
This package installs no files. It requires python2-%{pypi_name} and all
|
||||
dependencies necessary to use the Hetzner provider.
|
||||
%endif
|
||||
|
||||
%if %{with python3}
|
||||
%package -n python3-%{pypi_name}+hetzner
|
||||
Summary: Meta-package for python3-%{pypi_name} and Hetzner provider
|
||||
%{?python_provide:%python_provide python3-%{pypi_name}+hetzner}
|
||||
|
||||
Requires: python3-%{pypi_name} = %{version}-%{release}
|
||||
Requires: python3-beautifulsoup4
|
||||
Requires: python3-dns >= 1.15.0
|
||||
|
||||
%description -n python3-%{pypi_name}+hetzner
|
||||
This package installs no files. It requires python3-%{pypi_name} and all
|
||||
dependencies necessary to use the Hetzner provider.
|
||||
%endif
|
||||
# }}}
|
||||
%endif
|
||||
|
||||
%endif
|
||||
# }}}
|
||||
|
||||
%prep
|
||||
%setup -n %{pypi_name}-%{version}
|
||||
%patch0 -p1
|
||||
%if 0%{?rhel7}
|
||||
%patch1 -p1
|
||||
%endif
|
||||
%autosetup -n %{pypi_name}-%{version} -p1
|
||||
# Remove bundled egg-info
|
||||
rm -rf %{pypi_name}.egg-info
|
||||
rm -f uv.lock
|
||||
|
||||
%build
|
||||
%if %{with python2}
|
||||
%py2_build
|
||||
%generate_buildrequires
|
||||
%if %{with extras}
|
||||
%pyproject_buildrequires -r -t -e light -x gransy,localzone,oci,route53
|
||||
%else
|
||||
%pyproject_buildrequires -r
|
||||
%endif
|
||||
|
||||
%if %{with python3}
|
||||
%py3_build
|
||||
|
||||
%build
|
||||
# remove shebang
|
||||
sed -i '1d' src/lexicon/_private/cli.py
|
||||
%pyproject_wheel
|
||||
|
||||
%if %{with tests}
|
||||
%check
|
||||
export TLDEXTRACT_CACHE=%{_builddir}/tldextract-cache
|
||||
|
||||
# tldextract tries to fetch "public_suffix_list.dat" from the internet on first
|
||||
# invocation.
|
||||
# (see https://github.com/john-kurkowski/tldextract/tree/master#note-about-caching)
|
||||
# The "publicsuffix-list" package provides that data however we need to use
|
||||
# that to populate a local cache directory.Most of the work is done via:
|
||||
# $ tldextract --update --suffix_list_url "file:///usr/share/publicsuffix/public_suffix_list.dat"
|
||||
#
|
||||
# However tldextract uses the "file://" url as cache key while the tests use
|
||||
# "https://publicsuffix.org/list/public_suffix_list.dat". I did not find a way
|
||||
# get tldextract to use the https url so a small Python script will handle that.
|
||||
/usr/bin/python3 %{SOURCE1} %{buildroot}%{python3_sitelib}
|
||||
|
||||
# lexicon providers which do not work in Fedora due to missing dependencies:
|
||||
# - SoftLayerProviderTests
|
||||
TEST_SELECTOR="not SoftLayerProviderTests"
|
||||
|
||||
%if %{without extras}
|
||||
TEST_SELECTOR+=" and not GransyProviderTests and not LocalzoneProviderTests and not OciProviderTests and not OciInstancePrincipalProviderTests and not Route53ProviderTests"
|
||||
%endif
|
||||
|
||||
# We do not use "--xfail-providers-with-missing-deps" because we want to detect
|
||||
# missing dependencies unless we already know that a certain provider will not
|
||||
# work.
|
||||
%pytest -v -k "${TEST_SELECTOR}" -n auto --dist=loadfile tests/
|
||||
%endif
|
||||
|
||||
%install
|
||||
%if %{with python2}
|
||||
%py2_install
|
||||
install -pm 0755 %{buildroot}/%{_bindir}/lexicon %{buildroot}/%{_bindir}/lexicon-%{python2_version}
|
||||
ln -s %{_bindir}/lexicon-%{python2_version} %{buildroot}/%{_bindir}/lexicon-2
|
||||
%endif
|
||||
|
||||
%if %{with python3}
|
||||
%py3_install
|
||||
%pyproject_install
|
||||
install -pm 0755 %{buildroot}/%{_bindir}/lexicon %{buildroot}/%{_bindir}/lexicon-%{python3_version}
|
||||
ln -s %{_bindir}/lexicon-%{python3_version} %{buildroot}/%{_bindir}/lexicon-3
|
||||
%endif
|
||||
cd %{buildroot}/%{_bindir}
|
||||
ln -s lexicon-%{python3_version} lexicon-3
|
||||
|
||||
%if %{with python2}
|
||||
%files -n python2-%{pypi_name}
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
%if ! %{with python3}
|
||||
%{_bindir}/lexicon
|
||||
%endif
|
||||
%{_bindir}/lexicon-2
|
||||
%{_bindir}/lexicon-%{python2_version}
|
||||
%{python2_sitelib}/lexicon
|
||||
%{python2_sitelib}/dns_lexicon-%{version}-py?.?.egg-info
|
||||
|
||||
# Extras meta-packages
|
||||
# {{{
|
||||
%files -n python2-%{pypi_name}+easyname
|
||||
%files -n python2-%{pypi_name}+gratisdns
|
||||
%files -n python2-%{pypi_name}+henet
|
||||
%files -n python2-%{pypi_name}+plesk
|
||||
%files -n python2-%{pypi_name}+route53
|
||||
# }}}
|
||||
%endif
|
||||
|
||||
%if %{with python3}
|
||||
%files -n python3-%{pypi_name}
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
%doc README.rst
|
||||
%{_bindir}/lexicon
|
||||
%{_bindir}/lexicon-3
|
||||
%{_bindir}/lexicon-%{python3_version}
|
||||
%{python3_sitelib}/lexicon
|
||||
%{python3_sitelib}/dns_lexicon-%{version}-py%{python3_version}.egg-info
|
||||
%{python3_sitelib}/dns_lexicon-%{version}.dist-info
|
||||
|
||||
# Extras meta-packages
|
||||
# {{{
|
||||
%if %{with extras}
|
||||
%files -n python3-%{pypi_name}+easyname
|
||||
%{?python_extras_subpkg:%ghost %{python3_sitelib}/dns_lexicon-%{version}-py%{python3_version}.egg-info}
|
||||
|
||||
%files -n python3-%{pypi_name}+gratisdns
|
||||
%{?python_extras_subpkg:%ghost %{python3_sitelib}/dns_lexicon-%{version}-py%{python3_version}.egg-info}
|
||||
%files -n python3-%{pypi_name}+gransy
|
||||
%{?python_extras_subpkg:%ghost %{python3_sitelib}/dns_lexicon-%{version}.dist-info}
|
||||
|
||||
%files -n python3-%{pypi_name}+henet
|
||||
%{?python_extras_subpkg:%ghost %{python3_sitelib}/dns_lexicon-%{version}-py%{python3_version}.egg-info}
|
||||
%files -n python3-%{pypi_name}+localzone
|
||||
%{?python_extras_subpkg:%ghost %{python3_sitelib}/dns_lexicon-%{version}.dist-info}
|
||||
|
||||
%files -n python3-%{pypi_name}+hetzner
|
||||
%{?python_extras_subpkg:%ghost %{python3_sitelib}/dns_lexicon-%{version}-py%{python3_version}.egg-info}
|
||||
|
||||
%files -n python3-%{pypi_name}+plesk
|
||||
%{?python_extras_subpkg:%ghost %{python3_sitelib}/dns_lexicon-%{version}-py%{python3_version}.egg-info}
|
||||
%files -n python3-%{pypi_name}+oci
|
||||
%{?python_extras_subpkg:%ghost %{python3_sitelib}/dns_lexicon-%{version}.dist-info}
|
||||
|
||||
%files -n python3-%{pypi_name}+route53
|
||||
%{?python_extras_subpkg:%ghost %{python3_sitelib}/dns_lexicon-%{version}-py%{python3_version}.egg-info}
|
||||
%{?python_extras_subpkg:%ghost %{python3_sitelib}/dns_lexicon-%{version}.dist-info}
|
||||
|
||||
%endif
|
||||
# }}}
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Fri Sep 19 2025 Python Maint <python-maint@redhat.com> - 3.21.1-5
|
||||
- Rebuilt for Python 3.14.0rc3 bytecode
|
||||
|
||||
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 3.21.1-4
|
||||
- Rebuilt for Python 3.14.0rc2 bytecode
|
||||
|
||||
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.21.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Fri Jun 06 2025 Python Maint <python-maint@redhat.com> - 3.21.1-2
|
||||
- Rebuilt for Python 3.14
|
||||
|
||||
* Mon Apr 28 2025 Felix Schwarz <fschwarz@fedoraproject.org> - 3.21.1-1
|
||||
- update to 3.21.1
|
||||
|
||||
* Sat Apr 19 2025 Felix Schwarz <fschwarz@fedoraproject.org> - 3.21.0-1
|
||||
- update to 3.21.0
|
||||
|
||||
* Thu Jan 23 2025 Felix Schwarz <fschwarz@fedoraproject.org> - 3.20.1-1
|
||||
- update to 3.20.1
|
||||
|
||||
* Sat Jan 18 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.18.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Sat Nov 23 2024 Ben Maconi <turboben@fedoraproject.org> - 3.18.0-1
|
||||
- Updated to 3.18.0
|
||||
|
||||
* Fri Jul 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.17.0-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Thu Jun 27 2024 Python Maint <python-maint@redhat.com> - 3.17.0-5
|
||||
- Rebuilt for Python 3.13
|
||||
|
||||
* Thu Feb 29 2024 Jonathan Wright <jonathan@almalinux.org> - 3.17.0-4
|
||||
- Update spec for building on epel9
|
||||
|
||||
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.17.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.17.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Thu Nov 16 2023 Nick Bebout <nb@fedoraproject.org> - 3.17.0-1
|
||||
- Update to 3.17.0
|
||||
|
||||
* Fri Oct 13 2023 Jonathan Wright <jonathan@almalinux.org> - 3.15.1-1
|
||||
- Update to 3.15.1 rhbz#2232054
|
||||
|
||||
* Tue Aug 8 2023 Christian Schuermann <spike@fedoraproject.org> 3.13.0-1
|
||||
- Update to 3.13.0
|
||||
|
||||
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.12.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Tue Jul 04 2023 Python Maint <python-maint@redhat.com> - 3.12.0-2
|
||||
- Rebuilt for Python 3.12
|
||||
|
||||
* Sun Jun 11 2023 Christian Schuermann <spike@fedoraproject.org> 3.12.0-1
|
||||
- Update to 3.12.0
|
||||
- Add new duckdns extra package
|
||||
- Add localzone and oci extra packages since dependancies are now available on Fedora
|
||||
|
||||
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.11.7-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Thu Oct 27 2022 Christian Schuermann <spike@fedoraproject.org> 3.11.7-1
|
||||
- Update to 3.11.7
|
||||
|
||||
* Wed Oct 12 2022 Christian Schuermann <spike@fedoraproject.org> 3.11.6-1
|
||||
- Update to 3.11.6
|
||||
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.11.4-1
|
||||
- Update to 3.11.4
|
||||
- rhbz#2117798
|
||||
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.11.3-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Thu Jun 23 2022 Christian Schuermann <spike@fedoraproject.org> 3.11.3-1
|
||||
- Update to 3.11.3
|
||||
|
||||
* Wed Jun 15 2022 Python Maint <python-maint@redhat.com> - 3.11.2-2
|
||||
- Rebuilt for Python 3.11
|
||||
|
||||
* Wed May 18 2022 Christian Schuermann <spike@fedoraproject.org> 3.11.2-1
|
||||
- Update to 3.11.2
|
||||
- Disable OciInstancePrincipalProviderTests
|
||||
|
||||
* Mon May 9 2022 Christian Schuermann <spike@fedoraproject.org> 3.11.0-2
|
||||
- Disable tests that use tldextract until "suffix_list_url" cli flag is available
|
||||
|
||||
* Mon May 9 2022 Christian Schuermann <spike@fedoraproject.org> 3.11.0-1
|
||||
- Update to 3.11.0
|
||||
|
||||
* Sun May 1 2022 Christian Schuermann <spike@fedoraproject.org> 3.10.0-1
|
||||
- Update to 3.10.0
|
||||
|
||||
* Thu Apr 28 2022 Christian Schuermann <spike@fedoraproject.org> 3.9.5-3
|
||||
- Add "tests" conditional to make tests optional on EPEL
|
||||
- Ensure that BuildRequires resolve correctly and only relevant tests run when building without extras
|
||||
|
||||
* Tue Apr 26 2022 Christian Schuermann <spike@fedoraproject.org> 3.9.5-2
|
||||
- Reenable tests for GoDady, Transip, Namecheap and NamecheapManaged providers
|
||||
- Add gransy and ddns extra packages
|
||||
- Remove explicit BuildRequires (handled by the pyproject_buildrequires macro)
|
||||
- Remove explicit extra package Requires (handled by automatic dependency generator)
|
||||
- Remove unused rhel7 macro
|
||||
|
||||
* Tue Apr 19 2022 Christian Schuermann <spike@fedoraproject.org> 3.9.5-1
|
||||
- update to 3.9.5
|
||||
|
||||
* Tue Feb 15 2022 Christian Schuermann <spike@fedoraproject.org> 3.9.4-1
|
||||
- update to 3.9.4
|
||||
|
||||
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.9.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Mon Jan 17 2022 Christian Schuermann <spike@fedoraproject.org> 3.9.2-1
|
||||
- update to 3.9.2
|
||||
|
||||
* Mon Jan 17 2022 Christian Schuermann <spike@fedoraproject.org> 3.9.1-1
|
||||
- update to 3.9.1
|
||||
|
||||
* Thu Jan 6 2022 Christian Schuermann <spike@fedoraproject.org> 3.9.0-1
|
||||
- update to 3.9.0
|
||||
|
||||
* Wed Dec 29 2021 Christian Schuermann <spike@fedoraproject.org> 3.8.5-1
|
||||
- update to 3.8.5
|
||||
|
||||
* Tue Dec 28 2021 Christian Schuermann <spike@fedoraproject.org> 3.8.4-1
|
||||
- update to 3.8.4
|
||||
|
||||
* Sat Nov 13 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 3.8.3-1
|
||||
- update to 3.8.3 (#2020433)
|
||||
|
||||
* Sat Oct 16 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 3.8.1-1
|
||||
- update to 3.8.1 (#2014726)
|
||||
|
||||
* Mon Oct 04 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 3.8.0-1
|
||||
- update to 3.8.0
|
||||
|
||||
* Thu Aug 19 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 3.7.0-1
|
||||
- update to 3.7.0
|
||||
|
||||
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.5.3-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 3.5.3-3
|
||||
- Rebuilt for Python 3.10
|
||||
|
||||
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.5.3-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Tue Jan 5 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 3.5.3-1
|
||||
- update to 3.5.3
|
||||
|
||||
* Tue Nov 24 2020 Felix Schwarz <fschwarz@fedoraproject.org> - 3.5.2-1
|
||||
- update to 3.5.2
|
||||
|
||||
* Mon Nov 16 2020 Felix Schwarz <fschwarz@fedoraproject.org> - 3.5.1-1
|
||||
- update to 3.5.1
|
||||
|
||||
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.17-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (dns-lexicon-3.3.17.tar.gz) = cfaff78df6c98809fd9c6ac9941bb62c3b8f4849b66bf26fddfffb4802a4ef00a9261ae03685131e428450fea399d911ff80e2dbd7feb9256be3b2ff2e4189f4
|
||||
SHA512 (dns-lexicon-3.21.1.tar.gz) = 0f53001edf2425afe7b7c4315e974ee47c956b659964998b942943788711c57634eea2d7974e21005be7f0edf16800e6577c49c8789e34f2133c4f5be8ac7ac1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue