| # Copyright 1999-2016 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=5 |
| PYTHON_COMPAT=(python2_7) |
| |
| inherit eutils systemd distutils-r1 |
| |
| DESCRIPTION="Salt is a remote execution and configuration manager" |
| HOMEPAGE="http://saltstack.org/" |
| |
| if [[ ${PV} == 9999* ]]; then |
| inherit git-r3 |
| EGIT_REPO_URI="git://github.com/${PN}stack/${PN}.git" |
| EGIT_BRANCH="develop" |
| SRC_URI="" |
| KEYWORDS="" |
| else |
| SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" |
| KEYWORDS="~x86 ~amd64" |
| fi |
| |
| LICENSE="Apache-2.0" |
| SLOT="0" |
| IUSE="cherrypy ldap libcloud libvirt gnupg keyring mako mongodb mysql neutron nova" |
| IUSE+=" openssl profile redis selinux test timelib raet +zeromq vim-syntax" |
| |
| RDEPEND="sys-apps/pciutils |
| dev-python/jinja[${PYTHON_USEDEP}] |
| >=dev-python/msgpack-0.3[${PYTHON_USEDEP}] |
| dev-python/pyyaml[${PYTHON_USEDEP}] |
| dev-python/markupsafe[${PYTHON_USEDEP}] |
| >=dev-python/requests-1.0.0[${PYTHON_USEDEP}] |
| dev-python/setuptools[${PYTHON_USEDEP}] |
| >=www-servers/tornado-4.2.1[${PYTHON_USEDEP}] |
| virtual/python-futures[${PYTHON_USEDEP}] |
| libcloud? ( >=dev-python/libcloud-0.14.0[${PYTHON_USEDEP}] ) |
| mako? ( dev-python/mako[${PYTHON_USEDEP}] ) |
| ldap? ( dev-python/python-ldap[${PYTHON_USEDEP}] ) |
| openssl? ( dev-python/pyopenssl[${PYTHON_USEDEP}] ) |
| libvirt? ( dev-python/libvirt-python[${PYTHON_USEDEP}] ) |
| openssl? ( |
| dev-libs/openssl:*[-bindist] |
| dev-python/pyopenssl[${PYTHON_USEDEP}] |
| ) |
| raet? ( |
| >=dev-python/libnacl-1.0.0[${PYTHON_USEDEP}] |
| >=dev-python/ioflo-1.1.7[${PYTHON_USEDEP}] |
| >=dev-python/raet-0.6.0[${PYTHON_USEDEP}] |
| ) |
| zeromq? ( |
| >=dev-python/pyzmq-2.2.0[${PYTHON_USEDEP}] |
| >=dev-python/pycrypto-2.6.1[${PYTHON_USEDEP}] |
| ) |
| cherrypy? ( >=dev-python/cherrypy-3.2.2[${PYTHON_USEDEP}] ) |
| mongodb? ( dev-python/pymongo[${PYTHON_USEDEP}] ) |
| keyring? ( dev-python/keyring[${PYTHON_USEDEP}] ) |
| mysql? ( dev-python/mysql-python[${PYTHON_USEDEP}] ) |
| redis? ( dev-python/redis-py[${PYTHON_USEDEP}] ) |
| selinux? ( sec-policy/selinux-salt ) |
| timelib? ( dev-python/timelib[${PYTHON_USEDEP}] ) |
| nova? ( >=dev-python/python-novaclient-2.17.0[${PYTHON_USEDEP}] ) |
| neutron? ( >=dev-python/python-neutronclient-2.3.6[${PYTHON_USEDEP}] ) |
| gnupg? ( dev-python/python-gnupg[${PYTHON_USEDEP}] ) |
| profile? ( dev-python/yappi[${PYTHON_USEDEP}] ) |
| vim-syntax? ( app-vim/salt-vim )" |
| DEPEND="dev-python/setuptools[${PYTHON_USEDEP}] |
| test? ( |
| dev-python/pip[${PYTHON_USEDEP}] |
| dev-python/virtualenv[${PYTHON_USEDEP}] |
| dev-python/mock[${PYTHON_USEDEP}] |
| dev-python/timelib[${PYTHON_USEDEP}] |
| >=dev-python/boto-2.32.1[${PYTHON_USEDEP}] |
| >=dev-python/moto-0.3.6[${PYTHON_USEDEP}] |
| >=dev-python/SaltTesting-2015.2.16[${PYTHON_USEDEP}] |
| ${RDEPEND} |
| )" |
| |
| DOCS=(README.rst AUTHORS) |
| |
| REQUIRED_USE="|| ( raet zeromq )" |
| |
| PATCHES=( |
| "${FILESDIR}/${PN}-2015.8.0-remove-buggy-tests.patch" |
| "${FILESDIR}/${PN}-2015.5.5-auth-tests.patch" |
| "${FILESDIR}/${PN}-2015.5.5-cron-tests.patch" |
| "${FILESDIR}/${PN}-2015.5.5-remove-buggy-tests.patch" |
| "${FILESDIR}/${PN}-2015.8.2-tmpdir.patch" |
| "${FILESDIR}/${PN}-2015.8.4-boto-vpc-test.patch" |
| ) |
| |
| python_prepare() { |
| # this test fails because it trys to "pip install distribute" |
| rm tests/unit/{modules,states}/zcbuildout_test.py \ |
| tests/unit/modules/{rh_ip,win_network,random_org}_test.py |
| } |
| |
| python_install_all() { |
| local svc |
| USE_SETUPTOOLS=1 distutils-r1_python_install_all |
| |
| for svc in minion master syndic api; do |
| newinitd "${FILESDIR}"/${svc}-initd-4 salt-${svc} |
| newconfd "${FILESDIR}"/${svc}-confd-1 salt-${svc} |
| systemd_dounit "${FILESDIR}"/salt-${svc}.service |
| done |
| |
| insinto /etc/${PN} |
| doins -r conf/* |
| } |
| |
| python_test() { |
| local tempdir |
| # testsuite likes lots of files |
| ulimit -n 3072 |
| |
| # ${T} is too long a path for the tests to work |
| tempdir="$(mktemp -dup /tmp salt-XXX)" |
| mkdir "${T}/$(basename "${tempdir}")" |
| |
| ( |
| cleanup() { rm -f "${tempdir}"; } |
| trap cleanup EXIT |
| |
| addwrite "${tempdir}" |
| ln -s "$(realpath --relative-to=/tmp "${T}/$(basename "${tempdir}")")" "${tempdir}" |
| |
| USE_SETUPTOOLS=1 SHELL="/bin/bash" TMPDIR="${tempdir}" \ |
| ${EPYTHON} tests/runtests.py \ |
| --unit-tests --no-report --verbose |
| |
| ) || die "testing failed" |
| } |