%define _prefix /opt/awx %define _mandir %{_prefix}/share/man %global __os_install_post %{nil} %define ansible_version 2.4.2.0 %define service_user awx %define service_group awx %define service_homedir /var/lib/awx %define service_logdir /var/log/awx %define service_configdir /etc/awx Summary: Ansible AWX Name: awx Version: 1.0.2.303 Release: 1%{dist} Source0: awx-1.0.2.303.tar.gz Source1: settings.py.dist Source2: awx-cbreceiver.service Source3: awx-celery-beat.service Source4: awx-celery-worker.service Source5: awx-channels-worker.service Source6: awx-daphne.service Source7: awx-web.service Source8: nginx.conf.example License: GPLv3 Group: AWX BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}.buildroot Vendor: AWX Prefix: %{_prefix} BuildRequires: gcc gcc-c++ git BuildRequires: libffi-devel libxslt-devel xmlsec1-devel xmlsec1-openssl-devel libyaml-devel openldap-devel libtool-ltdl-devel libcurl-devel %{?amzn:BuildRequires: python27 python27-virtualenv python27-devel postgresql95-devel} %{?el7:BuildRequires: systemd python python-virtualenv python-devel postgresql-devel} %{?fedora:BuildRequires: systemd python python-virtualenv python-devel postgresql-devel} Requires: git subversion curl Requires(pre): /usr/sbin/useradd, /usr/bin/getent %{?systemd_requires} %description %{summary} %prep %setup -q %build # Setup build environment virtualenv _buildenv/ _buildenv/bin/pip install -U wheel _buildenv/bin/pip install -U pip _buildenv/bin/pip install -U setuptools export PYTHONPATH="`pwd`/embedded/lib/python2.7/site-packages:`pwd`/embedded/lib64/python2.7/site-packages" # Install dependencies cat requirements/requirements_ansible.txt requirements/requirements_ansible_git.txt | \ _buildenv/bin/pip install --no-binary cffi,pycparser,psycopg2,twilio --prefix=`pwd`/embedded/ -r /dev/stdin cat requirements/requirements.txt requirements/requirements_git.txt | \ _buildenv/bin/pip install --no-binary cffi,pycparser,psycopg2,twilio --prefix=`pwd`/embedded/ -r /dev/stdin _buildenv/bin/pip install --no-binary cffi,pycparser,psycopg2,twilio --prefix=`pwd`/embedded/ ansible==%{ansible_version} _buildenv/bin/pip install --no-binary cffi,pycparser,psycopg2,twilio --prefix=`pwd`/embedded/ . # Fix nested packages touch embedded/lib64/python2.7/site-packages/zope/__init__.py touch embedded/lib/python2.7/site-packages/jaraco/__init__.py touch embedded/lib64/python2.7/site-packages/dm/__init__.py touch embedded/lib64/python2.7/site-packages/dm/xmlsec/__init__.py # Collect django static cat > _awx_rpmbuild_collectstatic_settings.py < %{buildroot}%{service_homedir}/.tower_version cp %{_sourcedir}/settings.py.dist %{buildroot}%{service_configdir}/settings.py mv embedded/lib %{buildroot}%{_prefix}/embedded/lib mv embedded/lib64 %{buildroot}%{_prefix}/embedded/lib64 mv static %{buildroot}%{_prefix}/static # Install systemd configuration mkdir -p %{buildroot}%{_unitdir} for service in awx-cbreceiver awx-celery-beat awx-celery-worker awx-channels-worker awx-daphne awx-web; do cp %{_sourcedir}/${service}.service %{buildroot}%{_unitdir}/ done # Create fake python executable cat > %{buildroot}%{_prefix}/bin/python <<"EOF" #!/bin/sh export PYTHONPATH="%{_prefix}/embedded/lib/python2.7/site-packages:%{_prefix}/embedded/lib64/python2.7/site-packages" export AWX_SETTINGS_FILE=/etc/awx/settings.py exec %{?amzn:python27}%{?el7:python2} "$@" EOF # Export usefull scripts mv embedded/bin/uwsgi %{buildroot}%{_prefix}/bin/uwsgi for script_name in awx-manage ansible ansible-playbook daphne celery;do mv embedded/bin/$script_name %{buildroot}%{_prefix}/bin/$script_name sed -i '1c#!%{_prefix}/bin/python' %{buildroot}%{_prefix}/bin/$script_name done # Install docs cp %{_sourcedir}/nginx.conf.example ./ %pre /usr/bin/getent group %{service_group} >/dev/null || /usr/sbin/groupadd --system %{service_group} /usr/bin/getent passwd %{service_user} >/dev/null || /usr/sbin/useradd --no-create-home --system -g %{service_group} --home-dir %{service_homedir} -s /sbin/nologin %{service_user} %post %systemd_post awx-cbreceiver %systemd_post awx-celery-beat %systemd_post awx-celery-worker %systemd_post awx-channels-worker %systemd_post awx-daphne %systemd_post awx-web %preun %systemd_preun awx-cbreceiver %systemd_preun awx-celery-beat %systemd_preun awx-celery-worker %systemd_preun awx-channels-worker %systemd_preun awx-daphne %systemd_preun awx-web %postun %systemd_postun awx-cbreceiver %systemd_postun awx-celery-beat %systemd_postun awx-celery-worker %systemd_postun awx-channels-worker %systemd_postun awx-daphne %systemd_postun awx-web %clean rm -rf $RPM_BUILD_ROOT %files %defattr(0644, root, root, 0755) %doc nginx.conf.example %attr(0755, root, root) %{_prefix}/bin/uwsgi %attr(0755, root, root) %{_prefix}/bin/python %attr(0755, root, root) %{_prefix}/bin/celery %attr(0755, root, root) %{_prefix}/bin/awx-manage %attr(0755, root, root) %{_prefix}/bin/daphne %attr(0755, root, root) %{_prefix}/bin/ansible %attr(0755, root, root) %{_prefix}/bin/ansible-playbook %{_prefix}/static %{_prefix}/embedded/lib %{_prefix}/embedded/lib64 %dir %attr(0750, %{service_user}, %{service_group}) %{service_homedir} %{service_homedir}/.tower_version %dir %attr(0750, root, %{service_group}) %{service_logdir} %config(noreplace) %{service_configdir}/settings.py %attr(0644, root, root) %{_unitdir}/awx-cbreceiver.service %attr(0644, root, root) %{_unitdir}/awx-celery-beat.service %attr(0644, root, root) %{_unitdir}/awx-celery-worker.service %attr(0644, root, root) %{_unitdir}/awx-channels-worker.service %attr(0644, root, root) %{_unitdir}/awx-daphne.service %attr(0644, root, root) %{_unitdir}/awx-web.service %changelog * Thu Dec 14 2017 16:11:04 +0000 Martin Juhl 1.0.2.289 - New Git version build * Thu Dec 14 2017 04:10:59 +0000 Martin Juhl 1.0.2.285 - New Git version build * Thu Dec 14 2017 01:10:58 +0000 Martin Juhl 1.0.2.283 - New Git version build * Thu Dec 14 2017 00:10:57 +0000 Martin Juhl 1.0.2.281 - New Git version build * Wed Dec 13 2017 22:10:51 +0000 Martin Juhl 1.0.2.279 - New Git version build * Wed Dec 13 2017 21:12:05 +0000 Martin Juhl 1.0.2.278 - New Git version build * Wed Dec 13 2017 20:12:07 +0000 Martin Juhl 1.0.2.274 - New Git version build * Wed Dec 13 2017 19:10:59 +0000 Martin Juhl 1.0.2.272 - New Git version build * Wed Dec 13 2017 18:10:57 +0000 Martin Juhl 1.0.2.268 - New Git version build * Wed Dec 13 2017 17:11:08 +0000 Martin Juhl 1.0.2.0 - New Git version build * Wed Dec 13 2017 15:10:57 +0000 Martin Juhl 1.0.1.325 - New Git version build * Wed Dec 13 2017 00:11:01 +0000 Martin Juhl 1.0.1.323 - New Git version build * Tue Dec 12 2017 20:11:05 +0000 Martin Juhl 1.0.1.321 - New Git version build * Tue Dec 12 2017 16:10:58 +0000 Martin Juhl 1.0.1.319 - New Git version build * Tue Dec 12 2017 02:10:56 +0000 Martin Juhl 1.0.1.316 - New Git version build * Mon Dec 11 2017 22:11:01 +0000 Martin Juhl 1.0.1.314 - New Git version build * Mon Dec 11 2017 20:01:02 +0000 Martin Juhl 1.0.1.314 - New Git version build * Mon Dec 11 2017 18:36:07 +0000 Martin Juhl 1.0.1.312 - New Git version build * Mon Dec 11 2017 15:01:48 +0000 Martin Juhl 1.0.1.310 - New Git version build * Thu Nov 21 2017 18:14:55 +0300 Matvey Kruglov 1.0.1.225-1 - Update upstream version - Improve centos 7 support * Wed Sep 21 2017 14:44:23 +0300 Matvey Kruglov 1.0.0.505-1 - Initial RPM release