6e7d48d
6e7d48d
%global forgeurl    https://github.com/AnalogJ/lexicon
70566cc
Version:            3.11.0
6e7d48d
%forgemeta
6e7d48d
Nick Bebout 657ddbd
%global pypi_name dns-lexicon
Nick Bebout 657ddbd
c41af87
%if 0%{?rhel} >= 8
199cba5
# EPEL is currently missing dependencies used by the extras metapackages
199cba5
# EPEL is currently missing dependancies used by the tests
199cba5
%bcond_with tests
c41af87
%bcond_with extras
c41af87
%else
199cba5
%bcond_without tests
c41af87
%bcond_without extras
c41af87
%endif
c41af87
Nick Bebout 657ddbd
Name:           python-%{pypi_name}
ce9260f
Release:        2%{?dist}
Nick Bebout 657ddbd
Summary:        Manipulate DNS records on various DNS providers in a standardized/agnostic way
Nick Bebout 657ddbd
Nick Bebout 657ddbd
License:        MIT
6e7d48d
URL:            %{forgeurl}
6e7d48d
# pypi releases don't contain necessary data to run the tests
6e7d48d
Source0:        %{forgesource}
Nick Bebout 657ddbd
BuildArch:      noarch
2366c6d
929d07f
Patch0:         0000-remove-shebang.patch
2459b20
8866a64
BuildRequires:  python3-devel
2459b20
6e7d48d
# required to run the test suite
199cba5
%if %{with tests}
2459b20
BuildRequires:  python3-pytest
6e7d48d
BuildRequires:  python3-pytest-vcr
199cba5
%endif
2740ab1
2459b20
Nick Bebout 657ddbd
%description
4d33d4c
Lexicon provides a way to manipulate DNS records on multiple DNS providers in a
4d33d4c
standardized way. Lexicon has a CLI but it can also be used as a python
4d33d4c
library.
Nick Bebout 657ddbd
Nick Bebout 657ddbd
%package -n     python3-%{pypi_name}
Nick Bebout 657ddbd
Summary:        %{summary}
Nick Bebout 657ddbd
%{?python_provide:%python_provide python3-%{pypi_name}}
2366c6d
2740ab1
407a789
# Both packages install a Python module named lexicon
407a789
# TODO: Remove this once resolved upstream (see upstream #222)
407a789
Conflicts:      python3-lexicon
407a789
2459b20
# These "extras" were previously present in upstream lexicon but are not there
2459b20
# anymore.
a5e4545
# {{{
c41af87
%if %{with extras}
2459b20
Obsoletes: python3-%{pypi_name}+easyname < 3.4
2459b20
Provides: python3dist(%{pypi_name}[easyname]) = %{version}
2459b20
Provides: python%{python3_version}dist(%{pypi_name}[easyname]) = %{version}
a5e4545
2459b20
Obsoletes: python3-%{pypi_name}+gratisdns < 3.4
2459b20
Provides: python3dist(%{pypi_name}[gratisdns]) = %{version}
2459b20
Provides: python%{python3_version}dist(%{pypi_name}[gratisdns]) = %{version}
a5e4545
2459b20
Obsoletes: python3-%{pypi_name}+henet < 3.4
2459b20
Provides: python3dist(%{pypi_name}[henet]) = %{version}
2459b20
Provides: python%{python3_version}dist(%{pypi_name}[henet]) = %{version}
a5e4545
2459b20
Obsoletes: python3-%{pypi_name}+hetzner < 3.4
2459b20
Provides: python3dist(%{pypi_name}[hetzner]) = %{version}
2459b20
Provides: python%{python3_version}dist(%{pypi_name}[hetzner]) = %{version}
5e9310e
5e9310e
# lexicon 3.6.0 removed the xmltodict dependency (and the "plesk" extra)
5e9310e
Obsoletes: python3-%{pypi_name}+plesk < 3.6
5e9310e
Provides: python3dist(%{pypi_name}[plesk]) = %{version}
5e9310e
Provides: python%{python3_version}dist(%{pypi_name}[plesk]) = %{version}
2459b20
%endif
2459b20
# }}}
a5e4545
2459b20
%description -n python3-%{pypi_name}
2459b20
Lexicon provides a way to manipulate DNS records on multiple DNS providers in a
2459b20
standardized way. Lexicon has a CLI but it can also be used as a python
2459b20
library.
a5e4545
2459b20
This is the Python 3 version of the package.
a5e4545
a5e4545
8866a64
8866a64
%package -n     python3-%{pypi_name}+ddns
8866a64
Summary:        Meta-package for python3-%{pypi_name} and ddns provider
8866a64
%{?python_provide:%python_provide python3-%{pypi_name}+ddns}
8866a64
Requires:       python3-%{pypi_name} = %{version}-%{release}
8866a64
8866a64
%description -n python3-%{pypi_name}+ddns
8866a64
This package installs no files. It requires python3-%{pypi_name} and all
8866a64
dependencies necessary to use the ddns provider.
8866a64
8866a64
8866a64
8866a64
%package -n     python3-%{pypi_name}+gransy
8866a64
Summary:        Meta-package for python3-%{pypi_name} and gransy provider
8866a64
%{?python_provide:%python_provide python3-%{pypi_name}+gransy}
8866a64
Requires:       python3-%{pypi_name} = %{version}-%{release}
8866a64
8866a64
%description -n python3-%{pypi_name}+gransy
8866a64
This package installs no files. It requires python3-%{pypi_name} and all
8866a64
dependencies necessary to use the gransy provider.
8866a64
8866a64
8866a64
a5e4545
%package -n     python3-%{pypi_name}+route53
a5e4545
Summary:        Meta-package for python3-%{pypi_name} and Route 53 provider
a5e4545
%{?python_provide:%python_provide python3-%{pypi_name}+route53}
a5e4545
Requires:       python3-%{pypi_name} = %{version}-%{release}
a5e4545
a5e4545
%description -n python3-%{pypi_name}+route53
a5e4545
This package installs no files. It requires python3-%{pypi_name} and all
a5e4545
dependencies necessary to use the Route 53 provider.
a5e4545
8866a64
8866a64
Nick Bebout 657ddbd
%prep
2459b20
%autosetup -n lexicon-%{version} -p1
Nick Bebout 657ddbd
# Remove bundled egg-info
Nick Bebout 657ddbd
rm -rf %{pypi_name}.egg-info
2459b20
rm setup.py
2459b20
2459b20
%generate_buildrequires
199cba5
%if %{with extras}
8866a64
%pyproject_buildrequires -r -t -e light -x ddns,gransy,route53
199cba5
%else
199cba5
%pyproject_buildrequires -r -t -e light
199cba5
%endif
2459b20
Nick Bebout 657ddbd
Nick Bebout 657ddbd
%build
2459b20
%pyproject_wheel
Nick Bebout 657ddbd
199cba5
%if %{with tests}
6e7d48d
%check
ce9260f
# The following tests use tldextract which tries to fetch
ce9260f
#   https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat
ce9260f
# on first invocation
ce9260f
# (see https://github.com/john-kurkowski/tldextract/tree/master#note-about-caching)
ce9260f
# - AutoProviderTests
ce9260f
# - NamecheapProviderTests
ce9260f
# - NamecheapManagedProviderTests
ce9260f
# Disabling those until tldextract 3.3.0+ is available on Fedora.
ce9260f
# With tldextract 3.3.0+ we can use Fedora's public suffix list by running
ce9260f
#   tldextract --update --suffix_list_url "file:///usr/share/publicsuffix/public_suffix_list.dat"
ce9260f
# prior to running the tests
ce9260f
TEST_SELECTOR="not AutoProviderTests and not NamecheapProviderTests and not NamecheapManagedProviderTests"
ce9260f
6e7d48d
# lexicon providers which do not work in Fedora due to missing dependencies:
6e7d48d
# - SoftLayerProviderTests
6e7d48d
# - LocalzoneProviderTests
5e9310e
# - OciProviderTests
ce9260f
TEST_SELECTOR+=" and not SoftLayerProviderTests and not LocalzoneProviderTests and not OciProviderTests"
199cba5
%if %{without extras}
199cba5
TEST_SELECTOR+=" and not DDNSProviderTests and not GransyProviderTests and not Route53ProviderTests"
199cba5
%endif
2459b20
# The %%tox macro lacks features so we need to use pytest directly:
2459b20
# Miro Hrončok, 2020-09-11:
2459b20
# > I am afraid the %%tox macro can only work with "static" deps declaration,
2459b20
# > not with arbitrary installers invoked as commands, sorry about that.
6e7d48d
py.test-3 -v -k "${TEST_SELECTOR}" lexicon
6e7d48d
%endif
6e7d48d
Nick Bebout 657ddbd
%install
2459b20
%pyproject_install
4d33d4c
install -pm 0755 %{buildroot}/%{_bindir}/lexicon %{buildroot}/%{_bindir}/lexicon-%{python3_version}
2459b20
cd %{buildroot}/%{_bindir}
2459b20
ln -s lexicon-%{python3_version} lexicon-3
2459b20
rm -rf %{buildroot}%{python3_sitelib}/lexicon/tests
2459b20
Nick Bebout 657ddbd
Nick Bebout 657ddbd
%files -n python3-%{pypi_name}
Nick Bebout 657ddbd
%license LICENSE
2459b20
%doc README.rst
25f330b
%{_bindir}/lexicon
Nick Bebout 657ddbd
%{_bindir}/lexicon-3
Nick Bebout 657ddbd
%{_bindir}/lexicon-%{python3_version}
Nick Bebout 657ddbd
%{python3_sitelib}/lexicon
2459b20
%{python3_sitelib}/dns_lexicon-%{version}.dist-info
a5e4545
a5e4545
# Extras meta-packages
a5e4545
# {{{
c41af87
%if %{with extras}
2c1eb2c
8866a64
%files -n python3-%{pypi_name}+ddns
8866a64
%{?python_extras_subpkg:%ghost %{python3_sitelib}/dns_lexicon-%{version}.dist-info}
8866a64
8866a64
%files -n python3-%{pypi_name}+gransy
8866a64
%{?python_extras_subpkg:%ghost %{python3_sitelib}/dns_lexicon-%{version}.dist-info}
8866a64
a5e4545
%files -n python3-%{pypi_name}+route53
2459b20
%{?python_extras_subpkg:%ghost %{python3_sitelib}/dns_lexicon-%{version}.dist-info}
2c1eb2c
c41af87
%endif
a5e4545
# }}}
Nick Bebout 657ddbd
Nick Bebout 657ddbd
%changelog
ce9260f
* Mon May 9 2022 Christian Schuermann <spike@fedoraproject.org> 3.11.0-2
ce9260f
- Disable tests that use tldextract until "suffix_list_url" cli flag is available
ce9260f
70566cc
* Mon May 9 2022 Christian Schuermann <spike@fedoraproject.org> 3.11.0-1
70566cc
- Update to 3.11.0
70566cc
0c57b8f
* Sun May 1 2022 Christian Schuermann <spike@fedoraproject.org> 3.10.0-1
0c57b8f
- Update to 3.10.0
0c57b8f
199cba5
* Thu Apr 28 2022 Christian Schuermann <spike@fedoraproject.org> 3.9.5-3
199cba5
- Add "tests" conditional to make tests optional on EPEL
199cba5
- Ensure that BuildRequires resolve correctly and only relevant tests run when building without extras
199cba5
8866a64
* Tue Apr 26 2022 Christian Schuermann <spike@fedoraproject.org> 3.9.5-2
8866a64
- Reenable tests for GoDady, Transip, Namecheap and NamecheapManaged providers
8866a64
- Add gransy and ddns extra packages
8866a64
- Remove explicit BuildRequires (handled by the pyproject_buildrequires macro)
8866a64
- Remove explicit extra package Requires (handled by automatic dependency generator)
8866a64
- Remove unused rhel7 macro
8866a64
f5b5f9d
* Tue Apr 19 2022 Christian Schuermann <spike@fedoraproject.org> 3.9.5-1
f5b5f9d
- update to 3.9.5
f5b5f9d
119e895
* Tue Feb 15 2022 Christian Schuermann <spike@fedoraproject.org> 3.9.4-1
119e895
- update to 3.9.4
119e895
3c3d472
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.9.2-2
3c3d472
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
3c3d472
63982ab
* Mon Jan 17 2022 Christian Schuermann <spike@fedoraproject.org> 3.9.2-1
63982ab
- update to 3.9.2
63982ab
c94d9f0
* Mon Jan 17 2022 Christian Schuermann <spike@fedoraproject.org> 3.9.1-1
c94d9f0
- update to 3.9.1
c94d9f0
c94d9f0
* Thu Jan 6 2022 Christian Schuermann <spike@fedoraproject.org> 3.9.0-1
494e59f
- update to 3.9.0
494e59f
db25f69
* Wed Dec 29 2021 Christian Schuermann <spike@fedoraproject.org> 3.8.5-1
db25f69
- update to 3.8.5
db25f69
82203ba
* Tue Dec 28 2021 Christian Schuermann <spike@fedoraproject.org> 3.8.4-1
82203ba
- update to 3.8.4
82203ba
b654a33
* Sat Nov 13 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 3.8.3-1
b654a33
- update to 3.8.3 (#2020433)
b654a33
7637ab3
* Sat Oct 16 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 3.8.1-1
7637ab3
- update to 3.8.1 (#2014726)
7637ab3
76f19ee
* Mon Oct 04 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 3.8.0-1
76f19ee
- update to 3.8.0
76f19ee
5e9310e
* Thu Aug 19 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 3.7.0-1
5e9310e
- update to 3.7.0
5e9310e
962c321
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.5.3-4
962c321
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
962c321
992b2ac
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 3.5.3-3
992b2ac
- Rebuilt for Python 3.10
992b2ac
81286e0
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.5.3-2
81286e0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
81286e0
f0aef2d
* Tue Jan  5 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 3.5.3-1
f0aef2d
- update to 3.5.3
f0aef2d
3041462
* Tue Nov 24 2020 Felix Schwarz <fschwarz@fedoraproject.org> - 3.5.2-1
3041462
- update to 3.5.2
3041462
2459b20
* Mon Nov 16 2020 Felix Schwarz <fschwarz@fedoraproject.org> - 3.5.1-1
2459b20
- update to 3.5.1
2459b20
b444fb7
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.17-5
b444fb7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
b444fb7
2c1eb2c
* Fri Jul 10 2020 Miro Hrončok <mhroncok@redhat.com> - 3.3.17-4
2c1eb2c
- Add metadata for Python extras subpackages
2c1eb2c
99a200b
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 3.3.17-3
99a200b
- Rebuilt for Python 3.9
99a200b
2f7b79a
* Wed Mar 04 2020 Felix Schwarz <fschwarz@fedoraproject.org> - 3.3.17-2
2f7b79a
- add missing sources
2f7b79a
721e6c7
* Tue Mar 03 2020 Felix Schwarz <fschwarz@fedoraproject.org> - 3.3.17-1
721e6c7
- Update to 3.3.17 (#1764339)
721e6c7
4084220
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.4-3
4084220
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
4084220
bdbe509
* Tue Oct 08 2019 Eli Young <elyscape@gmail.com> - 3.3.4-2
bdbe509
- Rebuild due to Koji issues
bdbe509
c388df9
* Mon Oct 07 2019 Eli Young <elyscape@gmail.com> - 3.3.4-1
c388df9
- Update to 3.3.4 (#1725208)
c41af87
- Support EPEL8 builds
c388df9
7121828
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 3.2.8-4
7121828
- Rebuilt for Python 3.8.0rc1 (#1748018)
7121828
a08bace
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 3.2.8-3
a08bace
- Rebuilt for Python 3.8
a08bace
1493905
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.2.8-2
1493905
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
1493905
7ce3bb9
* Thu Jun 27 2019 Eli Young <elyscape@gmail.com> - 3.2.8-1
7ce3bb9
- Update to 3.2.8 (#1722190)
7ce3bb9
d3c2798
* Tue May 28 2019 Eli Young <elyscape@gmail.com> - 3.2.6-1
d3c2798
- Update to 3.2.6 (#1685778)
d3c2798
f15bc48
* Fri Feb 15 2019 Eli Young <elyscape@gmail.com> - 3.1.5-1
f15bc48
- Update to 3.1.5 (#1671162)
a5e4545
- Add meta-subpackages for specific providers
f15bc48
3089b76
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.6-2
3089b76
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
3089b76
2ac3612
* Fri Dec 14 2018 Eli Young <elyscape@gmail.com> - 3.0.6-1
2ac3612
- Update to 3.0.6
407a789
- Declare conflict with python-lexicon
125b3d7
- Remove Python 2 package in Fedora 30+
2ac3612
2740ab1
* Wed Nov 14 2018 Eli Young <elyscape@gmail.com> - 3.0.2-2
2740ab1
- Fix dependencies on Fedora 28
2740ab1
929d07f
* Wed Nov 14 2018 Eli Young <elyscape@gmail.com> - 3.0.2-1
929d07f
- Update to 3.0.2
929d07f
1ce3f1b
* Mon Oct 08 2018 Eli Young <elyscape@gmail.com> - 2.7.9-1
1ce3f1b
- Update to 2.7.9 (#1637142)
1ce3f1b
b535777
* Mon Aug 27 2018 Eli Young <elyscape@gmail.com> - 2.7.0-2
b535777
- Add dependency on python-cryptography (#1622418)
b535777
Nick Bebout 4c1fcbd
* Mon Jul 23 2018 Nick Bebout <nb@fedoraproject.org> - 2.7.0-1
Nick Bebout 4c1fcbd
- Update to 2.7.0
Nick Bebout 4c1fcbd
0a5ff54
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.5-2
0a5ff54
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
0a5ff54
6a8dd08
* Tue Jul 10 2018 Eli Young <elyscape@gmail.com> - 2.4.5-1
6a8dd08
- Update to 2.4.5 (#1599479)
6a8dd08
a4669ac
* Mon Jul 02 2018 Miro Hrončok <mhroncok@redhat.com> - 2.4.4-3
a4669ac
- Rebuilt for Python 3.7
a4669ac
2366c6d
* Tue Jun 26 2018 Eli Young <elyscape@gmail.com> - 2.4.4-2
2366c6d
- Remove unnecessary shebang
2366c6d
c265004
* Tue Jun 26 2018 Eli Young <elyscape@gmail.com> - 2.4.4-1
c265004
- Update to 2.4.4 (#1594777)
c265004
341f422
* Tue Jun 19 2018 Eli Young <elyscape@gmail.com> - 2.4.3-1
341f422
- Update to 2.4.3 (#1592158)
341f422
b7cefb2
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 2.4.0-2
b7cefb2
- Rebuilt for Python 3.7
b7cefb2
890d6e9
* Mon Jun 11 2018 Eli Young <elyscape@gmail.com> - 2.4.0-1
890d6e9
- Update to 2.4.0 (#1589596)
890d6e9
40411b5
* Tue May 29 2018 Eli Young <elyscape@gmail.com> - 2.3.0-1
40411b5
- Update to 2.3.0 (#1582799)
40411b5
59999db
* Mon May 07 2018 Eli Young <elyscape@gmail.com> - 2.2.3-1
59999db
- Update to 2.2.3 (#1575598)
59999db
816cfbd
* Thu May 03 2018 Eli Young <elyscape@gmail.com> - 2.2.2-1
816cfbd
- Update to 2.2.2 (#1574265)
816cfbd
97227dd
* Sat Mar 24 2018 Eli Young <elyscape@gmail.com> - 2.2.1-1
97227dd
- Update to 2.2.1
25f330b
- Use Python 3 by default when available
97227dd
Nick Bebout 657ddbd
* Mon Feb 19 2018 Nick Bebout <nb@fedoraproject.org> - 2.1.19-1
Nick Bebout 657ddbd
- Initial package.