0f130adf63
One of the file path macros that we use in the rpm file list isn't being defined on Fedora 29 in Jenkins which is causing it to fail to build there. Change the potential problems so that we can tell which file entry is causing the failures on its next rebuild
138 lines
3.8 KiB
RPMSpec
138 lines
3.8 KiB
RPMSpec
%define name ansible
|
|
%define release_date %(date "+%a %b %e %Y")
|
|
|
|
%if 0%{?rhel} == 5
|
|
%define __python2 /usr/bin/python26
|
|
%endif
|
|
|
|
Name: %{name}
|
|
Version: %{rpmversion}
|
|
Release: %{rpmrelease}%{?dist}%{?repotag}
|
|
Url: https://www.ansible.com
|
|
Summary: SSH-based application deployment, configuration management, and IT orchestration platform
|
|
License: GPLv3+
|
|
Group: Development/Libraries
|
|
Source: https://releases.ansible.com/ansible/%{name}-%{upstream_version}.tar.gz
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
|
|
%{!?__python2: %global __python2 /usr/bin/python2.7}
|
|
%{!?python_sitelib: %global python_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
|
|
|
|
BuildArch: noarch
|
|
|
|
# RHEL <=5
|
|
%if 0%{?rhel} && 0%{?rhel} <= 5
|
|
BuildRequires: python26-devel
|
|
BuildRequires: python26-setuptools
|
|
Requires: python26-PyYAML
|
|
Requires: python26-paramiko
|
|
Requires: python26-jinja2
|
|
Requires: python26-httplib2
|
|
Requires: python26-setuptools
|
|
Requires: python26-six
|
|
%endif
|
|
|
|
# RHEL == 6
|
|
%if 0%{?rhel} == 6
|
|
Requires: python-crypto
|
|
%endif
|
|
|
|
# RHEL >=7
|
|
%if 0%{?rhel} >= 7
|
|
Requires: python2-cryptography
|
|
%endif
|
|
|
|
# RHEL > 5
|
|
%if 0%{?rhel} && 0%{?rhel} > 5
|
|
BuildRequires: python2-devel
|
|
BuildRequires: python-setuptools
|
|
Requires: PyYAML
|
|
Requires: python-paramiko
|
|
Requires: python-jinja2
|
|
Requires: python-setuptools
|
|
Requires: python-six
|
|
%endif
|
|
|
|
# FEDORA > 17
|
|
%if 0%{?fedora} >= 18
|
|
BuildRequires: python-devel
|
|
BuildRequires: python-setuptools
|
|
Requires: PyYAML
|
|
Requires: python-paramiko
|
|
Requires: python-jinja2
|
|
Requires: python-httplib2
|
|
Requires: python-setuptools
|
|
Requires: python-six
|
|
%endif
|
|
|
|
# SuSE/openSuSE
|
|
%if 0%{?suse_version}
|
|
BuildRequires: python-devel
|
|
BuildRequires: python-setuptools
|
|
Requires: python-paramiko
|
|
Requires: python-jinja2
|
|
Requires: python-yaml
|
|
Requires: python-httplib2
|
|
Requires: python-setuptools
|
|
Requires: python-six
|
|
%endif
|
|
|
|
Requires: sshpass
|
|
|
|
%description
|
|
|
|
Ansible is a radically simple model-driven configuration management,
|
|
multi-node deployment, and orchestration engine. 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.
|
|
|
|
%prep
|
|
%setup -q -n %{name}-%{upstream_version}
|
|
|
|
%build
|
|
%{__python2} setup.py build
|
|
|
|
%install
|
|
%{__python2} setup.py install --root=%{buildroot}
|
|
|
|
for i in %{buildroot}/%{_bindir}/{ansible,ansible-console,ansible-doc,ansible-galaxy,ansible-playbook,ansible-pull,ansible-vault}; do
|
|
mv $i $i-%{python2_version}
|
|
ln -s %{_bindir}/$(basename $i)-%{python2_version} $i
|
|
ln -s %{_bindir}/$(basename $i)-%{python2_version} $i-2
|
|
done
|
|
|
|
# Amazon Linux doesn't install to dist-packages but python_sitelib expands to
|
|
# that location and the python interpreter expects things to be there.
|
|
if expr x'%{python_sitelib}' : 'x.*dist-packages/\?' ; then
|
|
DEST_DIR='%{buildroot}%{python_sitelib}'
|
|
SOURCE_DIR=$(echo "$DEST_DIR" | sed 's/dist-packages/site-packages/g')
|
|
if test -d "$SOURCE_DIR" -a ! -d "$DEST_DIR" ; then
|
|
mv $SOURCE_DIR $DEST_DIR
|
|
fi
|
|
fi
|
|
|
|
mkdir -p %{buildroot}/etc/ansible/
|
|
mkdir -p %{buildroot}/etc/ansible/roles/
|
|
cp examples/hosts %{buildroot}/etc/ansible/
|
|
cp examples/ansible.cfg %{buildroot}/etc/ansible/
|
|
mkdir -p %{buildroot}/%{_mandir}/man1/
|
|
cp -v docs/man/man1/*.1 %{buildroot}/%{_mandir}/man1/
|
|
mkdir -p %{buildroot}/%{_datadir}/ansible
|
|
|
|
%clean
|
|
rm -rf %{buildroot}
|
|
|
|
%files
|
|
%defattr(-,root,root)
|
|
%{python_sitelib}/ansible/
|
|
%{python_sitelib}/ansible-*.egg-info
|
|
%{_bindir}/ansible*
|
|
%dir %{_datadir}/ansible
|
|
%config(noreplace) %{_sysconfdir}/ansible
|
|
%doc README.rst PKG-INFO COPYING changelogs/CHANGELOG*.rst
|
|
%doc %{_mandir}/man1/ansible*
|
|
|
|
%changelog
|
|
|
|
* %{release_date} Ansible, Inc. <info@ansible.com> - %{rpmversion}-%{rpmrelease}
|
|
- Release %{rpmversion}-%{rpmrelease}
|