%define name ansible %define srcname ansible %define version 2.7.0 %define release 1 # No test by default. Do test: rpm -ba --define 'dotests 1' *.spec %{!?dotests: %define dotests 0} %define is_python %(test -e /usr/bin/python && echo 1 || echo 0) %if %{is_python} %define python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)") %endif %define _libdir64 %{_prefix}/lib64 %define is_python_64 %(test -e /usr/bin/python_64 && echo 1 || echo 0) %if %{is_python_64} %define python_sitelib64 %(python_64 -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)") %endif Summary: SSH-based configuration management, deployment, and task execution system Name: %{name} Version: %{version} Release: %{release} Source0: %{srcname}-%{version}.tar.gz License: BSD Group: Development/Libraries Patch100: ansible-newer-jinja.patch #Source1: ansible-unittests-%{version}.tar.xz #Source100: get-unittests.sh BuildRequires: python, python-devel BuildRequires: python-PyYAML BuildRequires: python-paramiko BuildRequires: python-keyczar BuildRequires: python-httplib2 BuildRequires: python-setuptools BuildRequires: python-six BuildRequires: python-nose BuildRequires: python-coverage BuildRequires: python-mock BuildRequires: python-boto3 BuildRequires: python-botocore BuildRequires: python-passlib BuildRequires: python-jinja2 BuildRequires: python-pycrypto BuildRequires: python-markupsafe BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot Prefix:/opt/freeware Requires: python Requires: python-PyYAML Requires: python-paramiko Requires: python-jinja2 Requires: python-keyczar Requires: python-httplib2 Requires: python-setuptools Requires: python-six Requires: python-pycrypto Requires: python-markupsafe Requires: sshpass Provides: ansible-fireball = %{version}-%{release} Obsoletes: ansible-fireball < 1.2.4 %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. %prep %setup -n %{srcname}-%{version} %patch100 -p1 #tar -xJvf %{SOURCE1} mkdir ../32bit mv * ../32bit mv ../32bit . mkdir 64bit cp -r 32bit/* 64bit/ %build export OBJECT_MODE=64 cd 64bit python_64 setup.py build export OBJECT_MODE=32 cd ../32bit python setup.py build %install [ -d "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT #export OBJECT_MODE=64 #cd 64bit #python_64 setup.py install --skip-build --root ${RPM_BUILD_ROOT} #mv ${RPM_BUILD_ROOT}/%{_libdir} ${RPM_BUILD_ROOT}/%{_libdir64} #( # cd ${RPM_BUILD_ROOT}/%{prefix}/bin # for fic in $(ls -1| grep -v -e _32 -e _64) # do # mv $fic "$fic"_64 # done #) cd 32bit export OBJECT_MODE=32 python setup.py install --skip-build --root ${RPM_BUILD_ROOT} mkdir -p $RPM_BUILD_ROOT%{_prefix}/etc/ansible/ mkdir -p $RPM_BUILD_ROOT%{_prefix}/etc/ansible/roles/ cp examples/hosts $RPM_BUILD_ROOT%{_prefix}/etc/ansible/ cp examples/ansible.cfg $RPM_BUILD_ROOT%{_prefix}/etc/ansible/ mkdir -p $RPM_BUILD_ROOT/%{_mandir}/man1 cp docs/man/man1/*.1 $RPM_BUILD_ROOT/%{_mandir}/man1/ mkdir -p $RPM_BUILD_ROOT/%{_datadir}/ansible mkdir -p $RPM_BUILD_ROOT/%{_datadir}/ansible_plugins/{action,callback,connection,lookup,vars,filter}_plugins #( # cd ${RPM_BUILD_ROOT}/%{prefix}/bin # for fic in $(ls -1| grep -v -e _32 -e _64) # do # mv $fic "$fic"_32 # ln -sf "$fic"_32 $fic # done #) # Create softlinks. ( cd $RPM_BUILD_ROOT # same as %{buildroot} for dir in bin include do mkdir -p usr/$dir cd usr/$dir ln -sf ../..%{prefix}/$dir/* . cd - done ) #create softlinks for config files ( cd $RPM_BUILD_ROOT # same as %{buildroot} for dir in etc do mkdir -p $dir/ansible cd $dir/ansible ln -sf ../..%{_prefix}/$dir/ansible/* . cd - done ) %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,system,-) %{python_sitelib}/ansible* #%{python_sitelib64}/ansible* %{_bindir}/ansible* /usr/bin/ansible* /etc/* %config(noreplace) %{_sysconfdir}/ansible/ %doc 32bit/README.md 32bit/PKG-INFO 32bit/COPYING 32bit/CHANGELOG.md %doc %{_mandir}/man1/ansible* %changelog * Sun Oct 28 2018 Ravi Hirekurabar - 2.7.0-1 - Updated to 2.7.0 - Created softlink conf files in /etc/ansible * Tue Sep 11 2018 Ravi Hirekurabar - 2.6.2-1 - Updated to 2.6.2 * Fri Mar 02 2018 Ravi Hirekurabar - 2.4.2.0-1 - Updated to 2.4.2.0-1 * Thu May 11 2017 Ravi Hirekurabar - 2.2.2.0-1 - first version for AIX V6.1 and higher