%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 <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
