# No test by default. Do test: rpm -ba --define 'dotests 1' *.spec
%{!?dotests: %define dotests 0}


%define is_python %(test -e /opt/freeware/bin/python3_32 && echo 1 || echo 0)
%if %{is_python}
%define python3_sitelib %(python3_32 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")
%endif

%define _libdir64 %{_prefix}/lib64

%define is_python_64 %(test -e /opt/freeware/bin/python3 && echo 1 || echo 0)
%if %{is_python_64}
%define python3_sitelib64 %(python3_64 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")
%endif

Name: ansible
Summary: SSH-based configuration management, deployment, and task execution system
Version: 2.9.10
Release: 1
License: GPLv3+
Group: Development/Libraries
Source0: https://releases.ansible.com/ansible/%{name}-%{version}.tar.gz
Url: http://ansible.com
BuildArch: noarch

Prefix:/opt/freeware

BuildRequires: python3-devel
# python3-setuptools is part of python3 main rpm
#BuildRequires: python3-setuptools
BuildRequires: python3-six
BuildRequires: python3-nose
BuildRequires: python3-pytest
#BuildRequires: python3-pytest-xdist
#BuildRequires: python3-pytest-mock
BuildRequires: python3-requests
BuildRequires: python3-mock
BuildRequires: python3-jinja2
BuildRequires: python3-PyYAML
#BuildRequires: python3-cryptography

# python3-setuptools is part of python3 main rpm
#Requires: python3-setuptools
Requires: python3-six >= 1.13.0
Requires: python3-jinja2 >= 2.10.3
Requires: python3-pyyaml >= 5.3.1
Requires: sshpass >= 1.06
# needed for json_query filter
Requires: python3-jmespath >= 0.9.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
%autosetup -p1 -n %{name}-%{version}

%build
export OBJECT_MODE=64
/opt/freeware/bin/python3 setup.py build


%install
[ -d "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT

python3 setup.py install --skip-build --root ${RPM_BUILD_ROOT}


# Create system directories that Ansible defines as default locations in
# ansible/config/base.yml
DATADIR_LOCATIONS='%{_datadir}/ansible/collections
%{_datadir}/ansible/plugins/doc_fragments
%{_datadir}/ansible/plugins/action
%{_datadir}/ansible/plugins/become
%{_datadir}/ansible/plugins/cache
%{_datadir}/ansible/plugins/callback
%{_datadir}/ansible/plugins/cliconf
%{_datadir}/ansible/plugins/connection
%{_datadir}/ansible/plugins/filter
%{_datadir}/ansible/plugins/httpapi
%{_datadir}/ansible/plugins/inventory
%{_datadir}/ansible/plugins/lookup
%{_datadir}/ansible/plugins/modules
%{_datadir}/ansible/plugins/module_utils
%{_datadir}/ansible/plugins/netconf
%{_datadir}/ansible/roles
%{_datadir}/ansible/plugins/strategy
%{_datadir}/ansible/plugins/terminal
%{_datadir}/ansible/plugins/test
%{_datadir}/ansible/plugins/vars'

mkdir -p $RPM_BUILD_ROOT%{_datadir}/ansible/plugins/
for location in $DATADIR_LOCATIONS ; do
	mkdir $RPM_BUILD_ROOT"$location"
done
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 -v docs/man/man1/*.1 $RPM_BUILD_ROOT/%{_mandir}/man1/


# Create softlinks. 

( cd $RPM_BUILD_ROOT   # same as %{buildroot}

for dir in bin
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,-)
%license COPYING
%doc README.rst PKG-INFO changelogs/CHANGELOG-v2.9.rst
%doc %{_mandir}/man1/ansible*
%config(noreplace) %{_sysconfdir}/ansible/
/etc/ansible/*
%{_bindir}/ansible*
%{_datadir}/ansible/
%{python3_sitelib}/ansible
%{python3_sitelib}/ansible_test
%{python3_sitelib}/*egg-info

%changelog
* Fri Sep 11 2020 Rishita Saha <risaha16@in.ibm.com> - 2.9.10-1
- Update to 2.9.10 to fix CVE-2020-10744

* Fri May 08 2020 Rishita Saha <risaha16@in.ibm.com> - 2.9.7-1
- Update to 2.9.7 to fix CVE-2020-1737 

* Fri Feb 07 2020 Ayappan P <ayappap2@in.ibm.com> - 2.9.4-1
- Update to 2.9.4

* Sun Oct 28 2018 Ravi Hirekurabar <rhirekur@in.ibm.com> - 2.7.0-1
- Updated to 2.7.0
- Created softlink conf files in /etc/ansible

* Tue Sep 11 2018 Ravi Hirekurabar <rhirekur@in.ibm.com> - 2.6.2-1
- Updated to 2.6.2

* Fri Mar 02 2018 Ravi Hirekurabar <rhirekur@in.ibm.com> - 2.4.2.0-1
- Updated to 2.4.2.0-1

* Thu May 11 2017 Ravi Hirekurabar <rhirekur@in.ibm.com> - 2.2.2.0-1
- first version for AIX V6.1 and higher
