ansible/ansible.spec
2021-01-26 19:42:36 +08:00

128 lines
4.7 KiB
RPMSpec

%global with_docs 0
%global with_python3 1
Name: ansible
Summary: SSH-based configuration management, deployment, and task execution system
Version: 2.5.5
Release: 1
License: Python-2.0 and MIT and GPL+
Url: http://ansible.com
Source0: https://releases.ansible.com/ansible/%{name}-%{version}.tar.gz
Patch0: 0001-Changes-to-support-building-docs-with-old-jinja2.patch
Patch100: ansible-newer-jinja.patch
BuildArch: noarch
Provides: ansible-fireball = %{version}-%{release}
Obsoletes: ansible-fireball < 1.2.4
BuildRequires: python3-jinja2 python3-devel python3-packaging python3-pyyaml
Requires: python3-PyYAML python3-crypto python3-paramiko python3-keyczar
Requires: python3-setuptools python3-six sshpass python3-httplib2
Requires: python3-jmespath python3-jinja2
Recommends: %{name}-help = %{version}-%{release}
%description
Ansible is a radically simple model-driven configuration management,
multi-node deployment, and remote task execution system. Ansible works
over SSH and does not require any software or daemons to be installed
on remote nodes. Extension modules can be written in any language and
are transferred to managed machines automatically.
%if 0%{?with_python3}
Provides: ansible-python3 = %{version}-%{release}
Obsoletes: ansible-python3 < %{version}-%{release}
BuildRequires: python3-devel python3-setuptools
BuildRequires: python3-PyYAML python3-paramiko python3-crypto python3-packaging
BuildRequires: python3-pexpect python3-winrm
BuildRequires: git-core
%if %with_docs
BuildRequires: python3-sphinx python3-sphinx-theme-alabaster asciidoc
%endif
BuildRequires: python3-six python3-nose python3-pytest python3-pytest-xdist
BuildRequires: python3-pytest-mock python3-requests python3-coverage python3-mock
BuildRequires: python3-boto3 python3-botocore python3-passlib python3-jinja2
Requires: python3-PyYAML python3-paramiko python3-crypto python3-setuptools python3-six
Requires: python3-jinja2 sshpass python3-jmespath
%description
Ansible is a radically simple model-driven configuration management,
multi-node deployment, and remote task execution system. Ansible works
over SSH and does not require any software or daemons to be installed
on remote nodes. Extension modules can be written in any language and
are transferred to managed machines automatically.
This package installs versions of ansible that execute on Python3.
%endif
%package -n ansible-help
Summary: Documentation for Ansible
Provides: %{name}-doc = %{name}-%{release}
Obsoletes: %{name}-doc < %{name}-%{release}
%description -n ansible-help
Ansible is a radically simple model-driven configuration management,
multi-node deployment, and remote task execution system. Ansible works
over SSH and does not require any software or daemons to be installed
on remote nodes. Extension modules can be written in any language and
are transferred to managed machines automatically.
This package installs extensive documentation for ansible
%prep
%setup -q
%patch0 -p1
%patch100 -p1
%if 0%{?with_python3}
rm -rf %{py3dir}
cp -a . %{py3dir}
%endif
%build
%if 0%{?with_python3}
pushd %{py3dir}
%py3_build
%if %with_docs
pathfix.py -i %{__python3} -p docs/bin test/runner
make PYTHON=/usr/bin/python3 SPHINXBUILD=sphinx-build-3 webdocs
%endif
popd
%endif
%install
%if 0%{?with_python3}
pushd %{py3dir}
%{__python3} setup.py install --root=$RPM_BUILD_ROOT
popd
for i in $RPM_BUILD_ROOT/%{_bindir}/ansible* ; do
if [ $(basename $i) = "ansible-connection" -o $(basename $i) = "ansible" ] ; then
ln -s $(basename $i) $i-%{python3_version}
ln -s %{_bindir}/$(basename $i)-%{python3_version} $i-3
fi
done
%endif
mkdir -p $RPM_BUILD_ROOT/etc/ansible/
mkdir -p $RPM_BUILD_ROOT/etc/ansible/roles/
cp examples/hosts $RPM_BUILD_ROOT/etc/ansible/
cp examples/ansible.cfg $RPM_BUILD_ROOT/etc/ansible/
mkdir -p $RPM_BUILD_ROOT/%{_mandir}/man1
cp -v docs/man/man1/*.1 $RPM_BUILD_ROOT/%{_mandir}/man1/
cp -pr docs/docsite/rst .
%if %with_docs
pushd %{py3dir}
cp -pr docs/docsite/_build/html %{_builddir}/%{name}-%{version}/html
popd
%endif
%check
%files
%defattr(-,root,root)
%{_bindir}/ansible*
%config(noreplace) %{_sysconfdir}/ansible/
%doc README.rst PKG-INFO COPYING changelogs/CHANGELOG-v2.5.rst
%doc %{_mandir}/man1/ansible*
%if 0%{?with_python3}
%{python3_sitelib}/ansible*
%endif
%files -n ansible-help
%doc rst
%if %with_docs
%doc html
%endif
%changelog
* Tue Jan 12 2021 yanan li <liyanan32@huawei.com> - 2.5.5-1
- Package init