File certbot.spec of Package certbot

#
# spec file for package certbot
#
# Copyright (c) 2021 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/
#


%define skip_python2 1
%{?sle15_python_module_pythons}
Name:           certbot
Version:        4.2.0
Release:        0
Summary:        Let's Encrypt client
License:        Apache-2.0
Group:          Productivity/Security
URL:            https://certbot.eff.org/
Source0:        https://github.com/certbot/certbot/archive/v%{version}/%{name}-%{version}.tar.gz
Source1:        %{name}.cron
Source90:       README.SUSE
Source99:       %{name}.rpmlintrc
Patch0:         %{name}-cli.ini.patch
Patch1:         %{name}-fix_constants.patch
# OPENSUSE: Fix error for docu and man build. Think error in repoze.sphinx.autointerface package.
Patch2:         %{name}-repoze.sphinx.autointerface.patch

BuildRequires:  cron
BuildRequires:  dos2unix
BuildRequires:  %{python_module setuptools >= 67.4.0}
BuildRequires:  %{python_module setuptools-rust >= 1.5.2}
BuildRequires:  %{python_module base >= 3.9.2}

# SECTION certbot install_requires
BuildRequires:  %{python_module acme >= %{version}}
BuildRequires:  %{python_module configargparse >= 1.5.3}
BuildRequires:  %{python_module configobj >= 5.0.6}
BuildRequires:  %{python_module cryptography >= 43.0.0}
BuildRequires:  %{python_module distro >= 1.0.1}
BuildRequires:  %{python_module josepy >= 2.0.0}
BuildRequires:  %{python_module parsedatetime >= 2.4}
BuildRequires:  %{python_module pyRFC3339}
BuildRequires:  %{python_module pytz >= 2019.3}
# /SECTION

# SECTION certbot dev_extras
#BuildRequires:  %%{python_module azure-devops}
#BuildRequires:  %%{python_module ipdb}
BuildRequires:  %{python_module poetry >= 1.2.0}
BuildRequires:  %{python_module poetry-plugin-export >= 1.9.0}
BuildRequires:  %{python_module twine}
# /SECTION

# SECTION certbot docs_extras
BuildRequires:  %{python_module Sphinx >= 1.2}
BuildRequires:  %{python_module sphinx_rtd_theme >= 0.5.2}
# /SECTION

# SECTION certbot test_extras
BuildRequires:  %{python_module coverage}
BuildRequires:  %{python_module mypy}
BuildRequires:  %{python_module pip}
BuildRequires:  %{python_module pylint}
BuildRequires:  %{python_module pytest}
BuildRequires:  %{python_module pytest-cov}
BuildRequires:  %{python_module pytest-xdist}
BuildRequires:  %{python_module tox}
#BuildRequires:  %%{python_module types-httplib2}
#BuildRequires:  %%{python_module types-pyOpenSSL}
#BuildRequires:  %%{python_module types-pyRFC3339}
#BuildRequires:  %%{python_module types-pytz}
#BuildRequires:  %%{python_module types-pywin32}
#BuildRequires:  %%{python_module types-requests}
#BuildRequires:  %%{python_module types-setuptools}
#BuildRequires:  %%{python_module types-six}
BuildRequires:  %{python_module typing-extensions}
BuildRequires:  %{python_module wheel}
# /SECTION

# SECTION requirements
Requires:       ca-certificates
Requires:       certbot-common = %{version}
Requires:       cron
Requires:       python-acme = %{version}
Requires:       python-alabaster >= 0.7.13
Requires:       python-apacheconfig >= 0.3.2
Requires:       python-appnope >= 0.1.3
Requires:       python-astroid >= 2.13.5
Requires:       python-attrs >= 22.2.0
Requires:       python-azure-devops >= 6.0.0b4
Requires:       python-Babel >= 2.12.1
Requires:       python-backcall >= 0.2.0
#Requires:       python-backports-cached-property >= 1.0.2
Requires:       python-bcrypt >= 4.0.1
Requires:       python-beautifulsoup4 >= 4.12.2
Requires:       python-bleach >= 6.0.0
Requires:       python-boto3 >= 1.26.113
Requires:       python-botocore >= 1.29.113
Requires:       python-cachecontrol >= 0.12.11
Requires:       python-cachetools >= 5.3.0
Requires:       python-cachy >= 0.3.0
Requires:       python-certifi >= 2022.12.7
Requires:       python-cffi >= 1.15.1
Requires:       python-charset-normalizer >= 3.1.0
Requires:       python-cleo >= 1.0.0a5
Requires:       python-cloudflare >= 2.11.1
Requires:       python-configargparse >= 1.5.3
Requires:       python-configobj >= 5.0.8
Requires:       python-coverage >= 7.2.3
Requires:       python-crashtest >= 0.3.1
Requires:       python-cryptography >= 43.0.0
Requires:       python-cython >= 0.29.34
Requires:       python-decorator >= 5.1.1
Requires:       python-dill >= 0.3.6
Requires:       python-distlib >= 0.3.6
Requires:       python-distro >= 1.8.0
Requires:       python-dns-lexicon >= 3.11.7
Requires:       python-dnspython >= 2.3.0
Requires:       python-docutils >= 0.18.1
Requires:       python-dulwich >= 0.20.50
Requires:       python-exceptiongroup >= 1.1.1
Requires:       python-execnet >= 1.9.0
#Requires:       python-Fabric >= 3.0.0
Requires:       python-filelock >= 3.11.0
Requires:       python-google-api-core >= 2.11.0
Requires:       python-google-api-python-client >= 2.85.0
Requires:       python-google-auth-httplib2 >= 0.1.0
Requires:       python-google-auth >= 2.17.3
Requires:       python-googleapis-common-protos >= 1.59.0
Requires:       python-html5lib >= 1.1
Requires:       python-httplib2 >= 0.22.0
Requires:       python-idna >= 3.4
Requires:       python-imagesize >= 1.4.1
Requires:       python-importlib-metadata >= 4.13.0
Requires:       python-importlib-resources >= 5.12.0
Requires:       python-iniconfig >= 2.0.0
#Requires:       python-invoke >= 2.0.0
Requires:       python-ipdb >= 0.13.13
Requires:       python-ipython >= 7.34.0
Requires:       python-isodate >= 0.6.1
Requires:       python-isort >= 5.11.5
Requires:       python-jaraco.classes >= 3.2.3
Requires:       python-jedi >= 0.18.2
Requires:       python-jeepney >= 0.8.0
Requires:       python-jinja2 >= 3.1.2
Requires:       python-jmespath >= 1.0.1
Requires:       python-josepy >= 1.13.0
Requires:       python-jsonlines >= 3.1.0
Requires:       python-jsonpickle >= 3.0.1
Requires:       python-jsonschema >= 4.17.3
Requires:       python-keyring >= 23.13.1
Requires:       python-lazy-object-proxy >= 1.9.0
Requires:       python-lockfile >= 0.12.2
Requires:       python-markdown-it-py >= 2.2.0
Requires:       python-MarkupSafe >= 2.1.2
Requires:       python-matplotlib-inline >= 0.1.6
Requires:       python-mccabe >= 0.7.0
Requires:       python-mdurl >= 0.1.2
Requires:       python-more-itertools >= 9.1.0
Requires:       python-msgpack >= 1.0.5
Requires:       python-msrest >= 0.6.21
Requires:       python-mypy_extensions >= 1.0.0
Requires:       python-mypy >= 1.2.0
Requires:       python-oauthlib >= 3.2.2
Requires:       python-packaging >= 23.1
Requires:       python-paramiko >= 3.1.0
Requires:       python-parsedatetime >= 2.6
Requires:       python-parso >= 0.8.3
Requires:       python-pexpect >= 4.8.0
Requires:       python-pickleshare >= 0.7.5
Requires:       python-pip >= 23.0.1
Requires:       python-pkginfo >= 1.9.6
Requires:       python-pkgutil-resolve-name >= 1.3.10
Requires:       python-platformdirs >= 2.6.2
Requires:       python-pluggy >= 1.0.0
Requires:       python-ply >= 3.11
Requires:       python-poetry-core >= 1.3.2
Requires:       python-poetry-plugin-export >= 1.2.0
Requires:       python-poetry >= 1.2.2
Requires:       python-prompt_toolkit >= 3.0.38
# Upstream use: Requires:       python-protobuf >= 4.22.3
Requires:       python-protobuf >= 3.20.3
Requires:       python-ptyprocess >= 0.7.0
Requires:       python-py >= 1.11.0
Requires:       python-pyasn1-modules >= 0.2.8
Requires:       python-pyasn1 >= 0.4.8
Requires:       python-pycparser >= 2.21
Requires:       python-pygments >= 2.15.0
Requires:       python-pylev >= 1.4.0
Requires:       python-pylint >= 2.15.5
Requires:       python-PyNaCl >= 1.5.0
Requires:       python-pynsist >= 2.7
Requires:       python-pyOpenSSL >= 25.0.0
Requires:       python-pyparsing >= 3.0.9
Requires:       python-pyRFC3339 >= 1.1
Requires:       python-pyrsistent >= 0.19.3
Requires:       python-pytest-cov >= 4.0.0
Requires:       python-pytest-xdist >= 3.2.1
Requires:       python-pytest >= 7.3.0
Requires:       python-augeas >= 1.1.0
Requires:       python-python-dateutil >= 2.8.2
Requires:       python-digitalocean >= 1.17.0
Requires:       python-pytz >= 2023.3
Requires:       python-PyYAML >= 6.0
Requires:       python-readme_renderer >= 37.3
Requires:       python-requests-download >= 0.1.2
Requires:       python-requests-file >= 1.5.1
Requires:       python-requests-oauthlib >= 1.3.1
Requires:       python-requests-toolbelt >= 0.9.1
Requires:       python-requests >= 2.28.2
Requires:       python-rfc3986 >= 2.0.0
Requires:       python-rich >= 13.3.4
Requires:       python-rsa >= 4.9
Requires:       python-s3transfer >= 0.6.0
Requires:       python-SecretStorage >= 3.3.3
Requires:       python-semantic_version >= 2.10.0
Requires:       python-shellingham >= 1.5.0
Requires:       python-six >= 1.16.0
Requires:       python-snowballstemmer >= 2.2.0
Requires:       python-soupsieve >= 2.4
Requires:       python-sphinx_rtd_theme >= 1.2.0
Requires:       python-Sphinx >= 5.3.0
Requires:       python-sphinxcontrib-applehelp >= 1.0.2
Requires:       python-sphinxcontrib-devhelp >= 1.0.2
Requires:       python-sphinxcontrib-htmlhelp >= 2.0.0
Requires:       python-sphinxcontrib-jquery >= 4.1
Requires:       python-sphinxcontrib-jsmath >= 1.0.1
Requires:       python-sphinxcontrib-qthelp >= 1.0.3
Requires:       python-sphinxcontrib-serializinghtml >= 1.1.5
Requires:       python-tldextract >= 3.4.0
Requires:       python-tomli >= 2.0.1
Requires:       python-tomlkit >= 0.11.7
Requires:       python-tox >= 3.28.0
Requires:       python-traitlets >= 5.9.0
Requires:       python-twine >= 4.0.2
#Requires:       python-typed-ast >= 1.5.4
#Requires:       python-types-httplib2 >= 0.22.0.1
#Requires:       python-types-pyopenssl >= 23.1.0.2
#Requires:       python-types-pyrfc3339 >= 1.1.1.4
#Requires:       python-types-python-dateutil >= 2.8.19.12
#Requires:       python-types-pytz >= 2023.3.0.0
#Requires:       python-types-pywin32 >= 306.0.0.1
#Requires:       python-types-requests >= 2.28.11.17
#Requires:       python-types-setuptools >= 67.6.0.7
#Requires:       python-types-six >= 1.16.21.8
#Requires:       python-types-urllib3 >= 1.26.25.14
Requires:       python-typing-extensions >= 4.5.0
Requires:       python-uritemplate >= 4.1.1
Requires:       python-urllib3_1 >= 1.26.20
Requires:       python-virtualenv >= 20.21.0
Requires:       python-wcwidth >= 0.2.6
Requires:       python-webencodings >= 0.5.1
Requires:       python-wheel >= 0.40.0
Requires:       python-wrapt >= 1.15.0
Requires:       python-xattr >= 0.9.9
Requires:       python-yarg >= 0.1.9
Requires:       python-zipp >= 3.15.0
Requires(post): update-alternatives
Requires(postun): update-alternatives
Obsoletes:      letsencrypt < %{version}
Provides:       letsencrypt = %{version}
Provides:       certbot = %{version}
Obsoletes:      certbot < %{version}
Provides:       python-certbot = %{version}
Obsoletes:      python-certbot < %{version}
Obsoletes:      letsencrypt1 < %{version}
Provides:       letsencrypt1 = %{version}
Provides:       certbot1 = %{version}
Obsoletes:      certbot1 < %{version}
Provides:       python-certbot1 = %{version}
Obsoletes:      python-certbot1 < %{version}
BuildArch:      noarch
%python_subpackages

%description
Certbot (previously, the Let's Encrypt client) is a client that
fetches and deploys SSL/TLS certificates for webservers.
Certbot was developed by EFF and others as a client for Let's Encrypt
and was previously known as “the official Let's Encrypt client” or
“the Let's Encrypt Python client”. Certbot will also work with any
other CAs that support the ACME protocol.

Certbot can automatically configure a webserver to start serving
over HTTPS immediately. For Apache, it can also optionally automate
security tasks such as tuning ciphersuites and enabling important
security features such as HTTP-to-HTTPS redirects, OCSP stapling,
HSTS, and upgrade-insecure-requests.

%package -n %{name}-doc
Summary:        Documentation for Certbot
Group:          Documentation/Other

%description -n %{name}-doc
EPUB and HTML documentation for Certbot.

%package -n %{name}-common
Summary:        Common for Certbot
Group:          Productivity/Security

%description -n %{name}-common
Common files for Certbot.

%package apache
Summary:        Apache plugin for Certbot
Group:          Development/Libraries/Python
Requires:       %{name} = %{version}
Requires:       apache2 >= 2.4
Requires:       augeas-lenses
Requires:       python-augeas >= 0.5.0
Obsoletes:      python-letsencrypt-apache < %{version}
Provides:       python-letsencrypt-apache = %{version}

%description apache
The Apache plugin for Certbot.

%package nginx
Summary:        Nginx plugin for Certbot
Group:          Development/Libraries/Python
Requires:       %{name} = %{version}
Requires:       nginx
Requires:       python-pyparsing >= 2.4.7
Obsoletes:      python-letsencrypt-nginx < %{version}
Provides:       python-letsencrypt-nginx = %{version}

%description nginx
The Nginx plugin for Certbot.

%package dns-cloudflare
Summary:        Cloudflare Authenticator plugin for Certbot
Group:          Development/Libraries/Python
Requires:       %{name} = %{version}

%description dns-cloudflare
Cloudflare DNS Authenticator plugin for Certbot.

%package dns-digitalocean
Summary:        Digitalocean Authenticator plugin for Certbot
Group:          Development/Libraries/Python
Requires:       %{name} = %{version}

%description dns-digitalocean
Digitalocean DNS Authenticator plugin for Certbot.

%package dns-dnsimple
Summary:        Dnsimple Authenticator plugin for Certbot
Group:          Development/Libraries/Python
Requires:       %{name} = %{version}
Requires:       python-dns-lexicon >= 3.2.1

%description dns-dnsimple
Dnsimple DNS Authenticator plugin for Certbot.

%package dns-dnsmadeeasy
Summary:        Dnsmadeeasy Authenticator plugin for Certbot
Group:          Development/Libraries/Python
Requires:       %{name} = %{version}
Requires:       python-dns-lexicon >= 3.2.1

%description dns-dnsmadeeasy
Dnsmadeeasy DNS Authenticator plugin for Certbot.

%package dns-gehirn
Summary:        Gehirn Authenticator plugin for Certbot
Group:          Development/Libraries/Python
Requires:       %{name} = %{version}
Requires:       python-dns-lexicon >= 3.3.1

%description dns-gehirn
Gehirn DNS Authenticator plugin for Certbot.

%package dns-google
Summary:        Google Authenticator plugin for Certbot
Group:          Development/Libraries/Python
Requires:       %{name} = %{version}

%description dns-google
Google DNS Authenticator plugin for Certbot.

%package dns-linode
Summary:        Linode Authenticator plugin for Certbot
Group:          Development/Libraries/Python
Requires:       %{name} = %{version}
Requires:       python-dns-lexicon >= 3.2.1

%description dns-linode
linode DNS Authenticator plugin for Certbot.

%package dns-luadns
Summary:        Luadns Authenticator plugin for Certbot
Group:          Development/Libraries/Python
Requires:       %{name} = %{version}
Requires:       python-dns-lexicon >= 3.2.1

%description dns-luadns
Luadns DNS Authenticator plugin for Certbot.

%package dns-nsone
Summary:        Nsone Authenticator plugin for Certbot
Group:          Development/Libraries/Python
Requires:       %{name} = %{version}
Requires:       python-dns-lexicon >= 3.2.1

%description dns-nsone
Nsone DNS Authenticator plugin for Certbot.

%package dns-ovh
Summary:        Ovh Authenticator plugin for Certbot
Group:          Development/Libraries/Python
Requires:       %{name} = %{version}
Requires:       python-dns-lexicon >= 3.2.1

%description dns-ovh
Ovh DNS Authenticator plugin for Certbot.

%package dns-rfc2136
Summary:        RFC 2136 Authenticator plugin for Certbot
Group:          Development/Libraries/Python
Requires:       %{name} = %{version}

%description dns-rfc2136
RFC 2136 DNS Authenticator plugin for Certbot.

%package dns-route53
Summary:        Route53 Authenticator plugin for Certbot
Group:          Development/Libraries/Python
Requires:       %{name} = %{version}

%description dns-route53
Route53 DNS Authenticator plugin for Certbot.

%package dns-sakuracloud
Summary:        Sakuracloud Authenticator plugin for Certbot
Group:          Development/Libraries/Python
Requires:       %{name} = %{version}

%description dns-sakuracloud
Sakuracloud DNS Authenticator plugin for Certbot.

%prep
%setup -q
%patch -P 0 -p1
#%%patch -P 1 -p1
#%%patch -P 2 -p1
install -m644 %{SOURCE90} .
#sed -i 's|PyOpenSSL>=0.15|pyOpenSSL>=0.15|g' setup.py
find -type f -name "setup.py" -exec sed -i 's|PyOpenSSL|pyOpenSSL|g' {} +

#Is this still needed?
# certbot-auto not for packages
#sed -i 's/letsencrypt-auto/letsencrypt/g' letsencrypt/cli.py

# rpmlint
find -type f -name ".gitignore" -delete

%build
echo "Build packages..."
# build packages certbot, certbot-apache, certbot-nginx
for PACKAGE in certbot certbot-apache certbot-nginx certbot-dns-cloudflare certbot-dns-digitalocean certbot-dns-dnsimple certbot-dns-dnsmadeeasy certbot-dns-gehirn certbot-dns-google certbot-dns-linode certbot-dns-luadns certbot-dns-nsone certbot-dns-ovh certbot-dns-rfc2136 certbot-dns-route53 certbot-dns-sakuracloud ; do
pushd $PACKAGE > /dev/null
%python_build
popd > /dev/null
done
echo "Build docs an man..."

# docs certbot
for PACKAGE in certbot certbot-dns-cloudflare certbot-dns-digitalocean certbot-dns-dnsimple certbot-dns-dnsmadeeasy certbot-dns-gehirn certbot-dns-google certbot-dns-linode certbot-dns-luadns certbot-dns-nsone certbot-dns-ovh certbot-dns-rfc2136 certbot-dns-route53 certbot-dns-sakuracloud ; do
pushd $PACKAGE > /dev/null
%make_build -C docs html PATH=${HOME}/.local/bin:$PATH || true
%make_build -C docs epub PATH=${HOME}/.local/bin:$PATH || true
%make_build -C docs text PATH=${HOME}/.local/bin:$PATH || true
%make_build -C docs man PATH=${HOME}/.local/bin:$PATH || true
rm -rf docs/_build/html/{.buildinfo,_sources}
popd > /dev/null
done

# rpmlint
find -type f -name ".buildinfo" -delete
find -type f -name "jquery.js" -exec dos2unix {} +

%install
# install packages certbot, certbot-apache, certbot-nginx
for PACKAGE in certbot certbot-apache certbot-nginx certbot-dns-cloudflare certbot-dns-digitalocean certbot-dns-dnsimple certbot-dns-dnsmadeeasy certbot-dns-gehirn certbot-dns-google certbot-dns-linode certbot-dns-luadns certbot-dns-nsone certbot-dns-ovh certbot-dns-rfc2136 certbot-dns-route53 certbot-dns-sakuracloud ; do
pushd $PACKAGE > /dev/null
###old#python setup.py install -O1 --skip-build --prefix=%%{_prefix} --root=%%{buildroot}
%python_install
popd > /dev/null
done
# Fix python-bytecode-inconsistent-mtime
pushd %{buildroot}%{python_sitelib}
find . -name '*.pyc' -exec rm -f '{}' ';'
python%python_bin_suffix -m compileall *.py ';'
popd
%python_clone -a %{buildroot}%{_bindir}/certbot
##%%python_expand %%fdupes %%{buildroot}%%{$python_sitelib}
# config
install -d -m 0755 %{buildroot}%{_sysconfdir}
install -d -m 0755 %{buildroot}%{_sysconfdir}/certbot
install -d -m 0755 %{buildroot}%{_sysconfdir}/letsencrypt
install -d -m 0755 %{buildroot}%{_sysconfdir}/letsencrypt/archive
install -d -m 0755 %{buildroot}%{_sysconfdir}/letsencrypt/keys
install -d -m 0755 %{buildroot}%{_sysconfdir}/letsencrypt/live
# man
install -d -m 0775 %{buildroot}%{_mandir}
install -d -m 0775 %{buildroot}%{_mandir}/man1
install -d -m 0775 %{buildroot}%{_mandir}/man7
###cp -a docs/_build/man/*.1 %%{buildroot}%%{_mandir}/man1/
###cp -a docs/_build/man/*.7 %%{buildroot}%%{_mandir}/man7/
for PACKAGE in certbot certbot-dns-cloudflare certbot-dns-digitalocean certbot-dns-dnsimple certbot-dns-dnsmadeeasy certbot-dns-gehirn certbot-dns-google certbot-dns-linode certbot-dns-luadns certbot-dns-nsone certbot-dns-ovh certbot-dns-rfc2136 certbot-dns-route53 certbot-dns-sakuracloud ; do
pushd $PACKAGE > /dev/null
cp -a docs/_build/man/*.1 %{buildroot}%{_mandir}/man1/ || :
cp -a docs/_build/man/*.7 %{buildroot}%{_mandir}/man7/ || :
popd > /dev/null
done
# log
install -d -m 0775 %{buildroot}%{_localstatedir}/log/%{name}
# cli.ini
install -m 0644 certbot/examples/cli.ini %{buildroot}%{_sysconfdir}/%{name}/cli.ini
install -m 0644 certbot/examples/dev-cli.ini %{buildroot}%{_sysconfdir}/%{name}/dev-cli.ini
# cron
install -d -m 0755 %{buildroot}%{_sysconfdir}/cron.d
install -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/cron.d/%{name}

%pre
# create daemon group, if not existing
if
    getent group letsencrypt >/dev/null
then
    : OK group letsencrypt already present
else
    groupadd -r letsencrypt  2>/dev/null || :
fi

%post
%python_install_alternative certbot

%postun
%python_uninstall_alternative certbot

%check
###python setup.py test
###%%pytest
##%%python3_exec setup.py test
#python -m pytest

%files -n %{name}-common
%license LICENSE.txt
%doc CHANGELOG.md README.rst README.SUSE
%dir %{_sysconfdir}/%{name}
%dir %{_sysconfdir}/letsencrypt
%dir %attr(0700,root,root) %{_sysconfdir}/letsencrypt/keys
# Group letsencrypt is needed to allow access from other programs like apache or matrix-synapse.
# TODO: patch certbot to fix rights also for generated domains
%dir %attr(0750,root,letsencrypt) %{_sysconfdir}/letsencrypt/archive
%dir %attr(0750,root,letsencrypt) %{_sysconfdir}/letsencrypt/live
%config(noreplace) %{_sysconfdir}/%{name}/*cli.ini
%config(noreplace) %{_sysconfdir}/cron.d/%{name}
%{_mandir}/*/certbot*
%dir %{_localstatedir}/log/%{name}

%files -n %{name}-doc
###%%doc docs/_build/epub/Certbot.epub
###%%doc docs/html
###%%doc docs/text
#%%doc certbot/docs/_build/epub/Certbot.epub
%doc certbot-dns-*/docs/_build/epub/*.epub

%files %{python_files}
%{python_sitelib}/certbot
%{python_sitelib}/certbot-*
%python_alternative %{_bindir}/certbot
###%%exclude %%{python_sitelib}/certbot/tests

%files %{python_files apache}
%{python_sitelib}/certbot_apache*
###%%exclude %%{python_sitelib}/certbot_apache/tests

%files %{python_files nginx}
%{python_sitelib}/certbot_nginx*
###%%exclude %%{python_sitelib}/certbot_nginx/tests

%files %{python_files dns-cloudflare}
%{python_sitelib}/certbot_dns_cloudflare*

%files %{python_files dns-digitalocean}
%{python_sitelib}/certbot_dns_digitalocean*

%files %{python_files dns-dnsimple}
%{python_sitelib}/certbot_dns_dnsimple*

%files %{python_files dns-dnsmadeeasy}
%{python_sitelib}/certbot_dns_dnsmadeeasy*

%files %{python_files dns-gehirn}
%{python_sitelib}/certbot_dns_gehirn*

%files %{python_files dns-google}
%{python_sitelib}/certbot_dns_google*

%files %{python_files dns-linode}
%{python_sitelib}/certbot_dns_linode*

%files %{python_files dns-luadns}
%{python_sitelib}/certbot_dns_luadns*

%files %{python_files dns-nsone}
%{python_sitelib}/certbot_dns_nsone*

%files %{python_files dns-ovh}
%{python_sitelib}/certbot_dns_ovh*

%files %{python_files dns-rfc2136}
%{python_sitelib}/certbot_dns_rfc2136*

%files %{python_files dns-route53}
%{python_sitelib}/certbot_dns_route53*

%files %{python_files dns-sakuracloud}
%{python_sitelib}/certbot_dns_sakuracloud*

%changelog
openSUSE Build Service is sponsored by