Files
rpms/fedora/SPECS/certbot.spec

226 lines
6.3 KiB
RPMSpec

%global oldpkg letsencrypt
# On fedora use python3 for certbot
%if 0%{?fedora}
%bcond_without python3
%else
%bcond_with python3
%endif
Name: certbot
Version: 0.21.0
Release: 1%{?dist}
Summary: A free, automated certificate authority client
License: ASL 2.0
URL: https://pypi.python.org/pypi/certbot
Source0: https://files.pythonhosted.org/packages/source/c/%{name}/%{name}-%{version}.tar.gz
Source10: certbot-renew-systemd.service
Source11: certbot-renew-systemd.timer
Source12: certbot-sysconfig-certbot
Source13: certbot-README.fedora
%if 0%{?rhel}
Patch0: allow-old-setuptools.patch
%endif
BuildArch: noarch
%if %{with python3}
BuildRequires: python3-devel
BuildRequires: python3-future
%endif
BuildRequires: python2-devel
BuildRequires: python2-future
# For the systemd macros
%{?systemd_requires}
BuildRequires: systemd
# Need to label the httpd rw stuff correctly until base selinux policy updated
Requires(post): %{_sbindir}/semanage
Requires(postun): %{_sbindir}/semanage
# On F26+ use python3
%if 0%{?fedora} >= 26
Requires: python3-certbot = %{version}-%{release}
%else
Requires: python2-certbot = %{version}-%{release}
%endif
Obsoletes: %{oldpkg} < 0.6.0
Provides: %{oldpkg} = %{version}-%{release}
# Required for documentation
BuildRequires: python2-sphinx
BuildRequires: python2-sphinx_rtd_theme
BuildRequires: python2-repoze-sphinx-autointerface
#Require for testing
BuildRequires: python-nose-xcover
BuildRequires: python-pep8
BuildRequires: python2-tox
BuildRequires: python2-mock
BuildRequires: python2-configargparse >= 0.10.0
BuildRequires: python2-zope-interface
BuildRequires: python2-zope-component
BuildRequires: python2-requests
BuildRequires: python2-dialog >= 3.3.0
BuildRequires: python2-psutil >= 2.1.0
BuildRequires: python-parsedatetime
BuildRequires: python2-configobj
BuildRequires: python2-configargparse >= 0.10.0
BuildRequires: python2-acme >= 0.20.0
%if %{with python3}
#Require for testing
BuildRequires: python3-nose-xcover
BuildRequires: python3-pep8
BuildRequires: python3-tox
BuildRequires: python3-mock
BuildRequires: python3-configargparse >= 0.10.0
BuildRequires: python3-zope-interface
BuildRequires: python3-zope-component
BuildRequires: python3-requests
BuildRequires: python3-dialog >= 3.3.0
BuildRequires: python3-psutil >= 2.1.0
BuildRequires: python3-parsedatetime
BuildRequires: python3-configobj
BuildRequires: python3-configargparse >= 0.10.0
BuildRequires: python3-acme >= 0.20.0
%endif
%description
certbot is a free, automated certificate authority that aims
to lower the barriers to entry for encrypting all HTTP traffic on the internet.
%package -n python2-certbot
Requires: python2-configargparse >= 0.10.0
Requires: python2-dialog >= 3.3.0
Requires: python-parsedatetime
Requires: python2-mock
Requires: python2-zope-interface
Requires: python2-zope-component
Requires: python2-psutil >= 2.1.0
Requires: python2-configobj
Requires: python2-future
Requires: python2-acme >= 0.20.0
Obsoletes: python2-%{oldpkg} < 0.6.0
Provides: python2-%{oldpkg} = %{version}-%{release}
Obsoletes: python-%{oldpkg} < 0.6.0
Provides: python-%{oldpkg} = %{version}-%{release}
#Recommends: certbot-doc
Summary: Python 2 libraries used by certbot
%{?python_provide:%python_provide python2-certbot}
%description -n python2-certbot
The python2 libraries to interface with certbot
%if %{with python3}
%package -n python3-certbot
Requires: python3-configargparse >= 0.10.0
Requires: python3-dialog >= 3.3.0
Requires: python3-parsedatetime
Requires: python3-mock
Requires: python3-zope-interface
Requires: python3-zope-component
Requires: python3-psutil >= 2.1.0
Requires: python3-future
Requires: python3-configobj
Requires: python3-acme >= 0.20.0
Summary: Python 3 libraries used by certbot
%{?python_provide:%python_provide python3-certbot}
%description -n python3-certbot
The python3 libraries to interface with certbot
%endif
%prep
%autosetup -n %{name}-%{version} -p1
%build
%py2_build
%if %{with python3}
%py3_build
%endif
# build documentation
# %{__python2} setup.py install --user
# make -C docs man PATH=${HOME}/.local/bin:$PATH
%install
%py2_install
mv %{buildroot}%{_bindir}/certbot{,-2}
%if %{with python3}
%py3_install
mv %{buildroot}%{_bindir}/certbot{,-3}
%endif
# Add compatibility symlink as requested by upstream conference call
ln -sf /usr/bin/certbot %{buildroot}/usr/bin/%{oldpkg}
# Put the man pages in place
# install -pD -t %{buildroot}%{_mandir}/man1 docs/_build/man/*1*
# On F26+ use python3
%if 0%{?fedora} >= 26
ln -s %{_bindir}/certbot-3 %{buildroot}%{_bindir}/certbot
%else
ln -s %{_bindir}/certbot-2 %{buildroot}%{_bindir}/certbot
%endif
install -Dm 0644 %{SOURCE10} %{buildroot}%{_unitdir}/certbot-renew.service
install -Dm 0644 %{SOURCE11} %{buildroot}%{_unitdir}/certbot-renew.timer
install -Dm 0644 %{SOURCE12} %{buildroot}%{_sysconfdir}/sysconfig/certbot
cp %{SOURCE13} README.fedora
%check
%{__python2} setup.py test
%if %{with python3}
%{__python3} setup.py test
%endif
# Make sure the scripts use the expected python versions
grep -q %{__python2} %{buildroot}%{_bindir}/certbot-2
%if %{with python3}
grep -q %{__python3} %{buildroot}%{_bindir}/certbot-3
%endif
# The base selinux policies don't handle the certbot directories yet so set them up manually
%post
semanage fcontext -a -t cert_t '%{_sysconfdir}/(letsencrypt|certbot)/(live|archive)(/.*)?'
restorecon -R %{_sysconfdir}/letsencrypt || :
%files
%license LICENSE.txt
%doc README.rst CHANGES.rst CONTRIBUTING.md README.fedora
%{_bindir}/certbot
%{_bindir}/%{oldpkg}
# %doc %attr(0644,root,root) %{_mandir}/man1/%{name}*
# project uses old letsencrypt dir for compatibility
%ghost %dir %{_sysconfdir}/%{oldpkg}
%ghost %dir %{_sharedstatedir}/%{oldpkg}
%config %{_sysconfdir}/sysconfig/certbot
%{_unitdir}/certbot-renew.service
%{_unitdir}/certbot-renew.timer
%files -n python2-certbot
%license LICENSE.txt
%{python2_sitelib}/%{name}
%{python2_sitelib}/%{name}-%{version}*.egg-info
%{_bindir}/certbot-2
%if %{with python3}
%files -n python3-certbot
%license LICENSE.txt
%{python3_sitelib}/%{name}
%{python3_sitelib}/%{name}-%{version}*.egg-info
%{_bindir}/certbot-3
%endif
%changelog
* Sun Jan 21 2018 Daniel Steiner <daniel.steiner@greenmail.ch> - 0.21.0-1
- Initial build for Fedora 27