summaryrefslogtreecommitdiff
path: root/app-admin/salt
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-01-30 08:57:14 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-01-30 08:57:14 +0000
commit552fc3ba95eab5c2c1a8b2b55ab432a1019739a0 (patch)
treeadad36adc624e114d5b985e392ac40a7b94d8ac6 /app-admin/salt
parent61966498b463d88a09132a9a22c68c0c37159e41 (diff)
gentoo auto-resync : 30:01:2023 - 08:57:13
Diffstat (limited to 'app-admin/salt')
-rw-r--r--app-admin/salt/Manifest3
-rw-r--r--app-admin/salt/files/salt-3005.1-importlib-metadata-5-r1.patch29
-rw-r--r--app-admin/salt/files/salt-3005.1-modules-file-python-3.11-host.patch123
-rw-r--r--app-admin/salt/salt-3005.1-r1.ebuild220
4 files changed, 375 insertions, 0 deletions
diff --git a/app-admin/salt/Manifest b/app-admin/salt/Manifest
index ed771b52534d..5f86565aa17b 100644
--- a/app-admin/salt/Manifest
+++ b/app-admin/salt/Manifest
@@ -16,7 +16,9 @@ AUX salt-3004.2-jinja-3.patch 589 BLAKE2B 249e81ea2760cbe75ff66bfd86cbfaab58ea67
AUX salt-3004.2-pyzmq-23.patch 1605 BLAKE2B b0c3e9722f0ff88b586f7e9f863d246a35bc10789568e1f4c3f9728022032dc8686ba0988a35225d2d01d00198c8a00253ec33331e24d6c3a7100d4a10c576ab SHA512 57a5c5a23ec1fd450e1f24740d6cd1d4b29947de5b5d984b7a55c89791e7b7f0eef44390cd9f959210b6c27fdb325650edeb2a53b3302f925ad182ee4ac8ac1c
AUX salt-3005-relax-pyzmq-dep.patch 332 BLAKE2B d22d94b7680fb81e642b83cb7d823137e7e208b43a1720b131401fb957bcb3deb6a0fe5ca87da528cdf60ac219820d259d0b03a905e17142c9cd4d939b4bacf1 SHA512 7c5b963436c3066bf8e8f528acf04ea8ddfa2a5a19adb9486f9888346d55e56fdfcd97a4a04db18d85476cb8ecc8a350343855d765387744706e43e868464f5e
AUX salt-3005-tests.patch 4101 BLAKE2B 6a7d7dee4e631a7619bf1b7fa6bd08b93c0bf31342ce72f734bb645206604ffed9ae2ddae9cebe01401cbe100c224e97f18a69ede5f40a041158d1cd8878dc0f SHA512 cbc3b3d625ab8e20aa7b166dd6ddca1728c4bf562cc14d28fa684573c6ee1d42a270b0f029e5d978803a30103e7ad281d516afff66d18bf31308528fae79c00c
+AUX salt-3005.1-importlib-metadata-5-r1.patch 1162 BLAKE2B cbc8df0043881725eb00a6e45ccc03e25f95a6260b4a4b42343c69a6bd8edcf0bb45312644a8e6a66b50a0c4ce0aad7be454b1b8d54a786851b33c7d4b143e10 SHA512 7d2f8c86f22b238dabda0727c338e2e8d33e06a36fcccf5b3b508ac610899f2d6416d7c9e285e992f0d76fc9d04c126640b2b84a227f9a82f4973cb472a4a14a
AUX salt-3005.1-importlib-metadata-5.patch 1498 BLAKE2B 20ec469e0cd53ffaffaa0f95e868f90d90030a0343705147f90738aea50aecfe0ee6610c53d6d44152ea03d4472daa286a1d1f6fb44b063038cc06f540d372b6 SHA512 22cad969c876a272316677af7436d66d7ae380b4ab2f86192f1e38d32bcb4c2c6efe7639c1f8bfff9bbb7aacdf60fef7c68a2de860e06cd3d80e73feeeb77599
+AUX salt-3005.1-modules-file-python-3.11-host.patch 4206 BLAKE2B 9cd3cb68b5c1a95475834ae917a2f6fbdbe3424c9f1e837a0e797b84e291e3530f86a2f7d2286e0070f433817ec06b2fd4d0a069b47acb1b0646653862337ece SHA512 4bc03979e1a4202d5ccb2b3159e178bc72c2a4be4297d7b9306479a5c7fe8cc81fc7d25474d80c2627e638db25e73cd4e8f7e1b25c8e15317e22986d63307823
AUX salt-3005.1-no-entry-points.patch 428 BLAKE2B 1bcf3b070afd01c56985290051a3cb031d5ca83b42631eba5f05d7648eabf13bca44573811b767d739dc9bc6d0a5da6f99de87b57c678df79cc172fa6dd5495f SHA512 ed5712689a6d39da9c6a67f28a48d35bbd271a6a3b898cbb0e0493e1813cc99e64388fb60707e6fee95691e339336c2656278780115b39d285c380ded92fe3cb
AUX salt-3005.1-tests.patch 2367 BLAKE2B 467af423de22b4ddeb80fef3d4682976283116698b7c2551c4710e049d8ad7749a4eb07c541a427ed540fdea6a0e4f4e63d96988bafd92974cc3b1026e27fd03 SHA512 4ba3c36be9de377848880819fc4bacf72978a12e483bea90a4e5e7524d7212b5d554302000f6c628156ec5aafbf48d662dec2764d96253be74fa202c73e7fc67
AUX salt-api.service 166 BLAKE2B 32d28ef4ef3c60942bed3fa3a01d70a9af387705844326cdf9339d7c887238a1e6817d78ffd1cb205a6397a2138c2389ea00bf53be84a17b23bea140279bf42c SHA512 bab6b8380c965bf16e23078ebe6f38d942300829d4c89ddf23b630bd57b4d371f80687d85dd9e0cc1b669f2ca882aecde1bc8d7d82382a02ed20e493d3f04702
@@ -30,5 +32,6 @@ DIST salt-3005.1.tar.gz 17914349 BLAKE2B 697c2068bf119e4a19f92a86ce880fec9375c10
DIST salt-3005.tar.gz 17894520 BLAKE2B 67e755bdbe772991f620d09f61836f8ccfa2039722c3281ec4cfaa8ef76e34c57e4db861cc652545e37eb965ab765f6b6ba0250407d7d7448aa5d4685ad9492a SHA512 c2019a97a5a98b4810cdace826d5e0a6d2890a984da4b95109c1b9328a2fd11cafd2fb0ef9752adeea1d36f8b2a69b3a4a6a5a092b6a7f050c60ec52da314a18
EBUILD salt-3004.2-r2.ebuild 6528 BLAKE2B ac76c30eef745bf6c794029c1bffe356fe6cd1b541ed3d1285502abf1422c627ea52a1ef52b9aa2433e121cd5090edc170143fb161516a765d203eb0dfb72f6f SHA512 bad1d8ac9bbb80f49db7b76b2622ebfa924b1424912e9c2137732319d82a9bfd6b7a84daed4b02a648b4d8d04d0d9ab38ada5dc4abf3de8b967ae669e8f6f318
EBUILD salt-3005-r1.ebuild 6976 BLAKE2B c19b56458e4082af1f71640b4e87d4a0d4a09bb64d453c6fbe1ce204ad2cfda315c0875727defb7aec7038e62da2b8f19a0d18ae89a1c55ca6aebdec368f5363 SHA512 3db49d931481105faada8242254516d2aadf25d984e47cfe92f61985998727240fe8ed3bb4447b4bfb9cec92f8500745752f09d20743c304092cb14184867d1f
+EBUILD salt-3005.1-r1.ebuild 7276 BLAKE2B 2cf38f3316ba42c52d8d03bac1ae3e6cebd2d1abe649e33a505f799156455522d104708238f272e7be958f9b60c6b4f3df35b33be938f1541cb027a755107284 SHA512 79a6ba5ea7d6157c6831e5913fb92606b08be5667e09ec60e175fe6ac9f6d0ac247e63a07ff3eff18af5d40e1c74bd4a7864345cb15019ca2ab2465478fab260
EBUILD salt-3005.1.ebuild 7210 BLAKE2B d9e23571fd1fd2334e708ac9262101d63f7f48be1bf630ff880357797b287c1881ed0d6dc8f50eb9ea8262d21af1cf0eb0ddd96638eed4d12cfa581bcb814c9c SHA512 0eefaf18ef343a5eace392049460b4853d08a4e421b34e2d2893c93864ea4b573701f7ec8a8032da6be50856dde229a6c5cdee35c5fd00696825f21d9cfb496b
MISC metadata.xml 2384 BLAKE2B 8ccb0cbfc8d0944e684f979731884c354655d28fd9029f8d9abae1a313734102952fb817617d54032dd5cafa64925d73ee2a3e8a38ae16d2ff9c1af8c53d514c SHA512 6a4e1b8f2e041ad1a83bf2c85c35ac30ae7db3a20aa868204661c1dde9abdfab1dff1392e2dab8a844472434b325355fea71702229de99f7751e841d063fc0da
diff --git a/app-admin/salt/files/salt-3005.1-importlib-metadata-5-r1.patch b/app-admin/salt/files/salt-3005.1-importlib-metadata-5-r1.patch
new file mode 100644
index 000000000000..c4c8056c1a6a
--- /dev/null
+++ b/app-admin/salt/files/salt-3005.1-importlib-metadata-5-r1.patch
@@ -0,0 +1,29 @@
+diff --git a/salt/utils/entrypoints.py b/salt/utils/entrypoints.py
+index 3effa0b494..9452878ade 100644
+--- a/salt/utils/entrypoints.py
++++ b/salt/utils/entrypoints.py
+@@ -38,13 +38,20 @@ def iter_entry_points(group, name=None):
+ entry_points_listing = []
+ entry_points = importlib_metadata.entry_points()
+
+- for entry_point_group, entry_points_list in entry_points.items():
+- if entry_point_group != group:
+- continue
+- for entry_point in entry_points_list:
++ try:
++ for entry_point in entry_points.select(group=group):
+ if name is not None and entry_point.name != name:
+ continue
+ entry_points_listing.append(entry_point)
++ except AttributeError:
++ # importlib-metadata<5.0.0
++ for entry_point_group, entry_points_list in entry_points.items():
++ if entry_point_group != group:
++ continue
++ for entry_point in entry_points_list:
++ if name is not None and entry_point.name != name:
++ continue
++ entry_points_listing.append(entry_point)
+
+ return entry_points_listing
+
diff --git a/app-admin/salt/files/salt-3005.1-modules-file-python-3.11-host.patch b/app-admin/salt/files/salt-3005.1-modules-file-python-3.11-host.patch
new file mode 100644
index 000000000000..2e9be8db18c0
--- /dev/null
+++ b/app-admin/salt/files/salt-3005.1-modules-file-python-3.11-host.patch
@@ -0,0 +1,123 @@
+diff --git a/salt/modules/file.py b/salt/modules/file.py
+index f39d618203..93eeaf312e 100644
+--- a/salt/modules/file.py
++++ b/salt/modules/file.py
+@@ -16,7 +16,6 @@ import hashlib
+ import itertools
+ import logging
+ import mmap
+-import operator
+ import os
+ import re
+ import shutil
+@@ -28,7 +27,6 @@ import time
+ import urllib.parse
+ from collections import namedtuple
+ from collections.abc import Iterable, Mapping
+-from functools import reduce
+
+ import salt.utils.args
+ import salt.utils.atomicfile
+@@ -1622,38 +1620,38 @@ def comment_line(path, regex, char="#", cmnt=True, backup=".bak"):
+
+ def _get_flags(flags):
+ """
+- Return an integer appropriate for use as a flag for the re module from a
+- list of human-readable strings
++ Return the names of the Regex flags that correspond to flags
+
+ .. code-block:: python
+
+- >>> _get_flags(['MULTILINE', 'IGNORECASE'])
+- 10
++ >>> _get_flags(['IGNORECASE', 'MULTILINE'])
++ re.IGNORECASE|re.MULTILINE
+ >>> _get_flags('MULTILINE')
+- 8
+- >>> _get_flags(2)
+- 2
++ re.MULTILINE
++ >>> _get_flags(8)
++ re.MULTILINE
++ >>> _get_flags(re.IGNORECASE)
++ re.IGNORECASE
+ """
+- if isinstance(flags, str):
++ if isinstance(flags, re.RegexFlag):
++ return flags
++ elif isinstance(flags, int):
++ return re.RegexFlag(flags)
++ elif isinstance(flags, str):
+ flags = [flags]
+
+ if isinstance(flags, Iterable) and not isinstance(flags, Mapping):
+- _flags_acc = [0] # An initial 0 avoids resucing on empty list, an error
++ _flags = re.RegexFlag(0)
+ for flag in flags:
+- _flag = getattr(re, str(flag).upper())
+-
+- if not isinstance(_flag, int):
+- raise SaltInvocationError("Invalid re flag given: {}".format(flag))
+-
+- _flags_acc.append(_flag)
+-
+- return reduce(operator.__or__, _flags_acc)
+- elif isinstance(flags, int):
+- return flags
++ _flag = getattr(re.RegexFlag, str(flag).upper(), None)
++ if not _flag:
++ raise CommandExecutionError(f"Invalid re flag given: {flag}")
++ _flags |= _flag
++ return _flags
+ else:
+- raise SaltInvocationError(
+- 'Invalid re flags: "{}", must be given either as a single flag '
+- "string, a list of strings, or as an integer".format(flags)
++ raise CommandExecutionError(
++ f'Invalid re flags: "{flags}", must be given either as a single flag '
++ "string, a list of strings, as an integer, or as an re flag"
+ )
+
+
+@@ -2513,8 +2511,8 @@ def replace(
+ "Only one of append and prepend_if_not_found is permitted"
+ )
+
+- flags_num = _get_flags(flags)
+- cpattern = re.compile(salt.utils.stringutils.to_bytes(pattern), flags_num)
++ re_flags = _get_flags(flags)
++ cpattern = re.compile(salt.utils.stringutils.to_bytes(pattern), re_flags)
+ filesize = os.path.getsize(path)
+ if bufsize == "file":
+ bufsize = filesize
+@@ -2582,7 +2580,7 @@ def replace(
+ "^{}($|(?=\r\n))".format(re.escape(content))
+ ),
+ r_data,
+- flags=flags_num,
++ flags=re_flags,
+ ):
+ # Content was found, so set found.
+ found = True
+@@ -3132,7 +3130,11 @@ def search(path, pattern, flags=8, bufsize=1, ignore_if_missing=False, multiline
+ salt '*' file.search /etc/crontab 'mymaintenance.sh'
+ """
+ if multiline:
+- flags = _add_flags(flags, "MULTILINE")
++ re_flags = _add_flags(flags, "MULTILINE")
++ else:
++ re_flags = _get_flags(flags)
++
++ if re.RegexFlag.MULTILINE in re_flags:
+ bufsize = "file"
+
+ # This function wraps file.replace on purpose in order to enforce
+@@ -3142,7 +3144,7 @@ def search(path, pattern, flags=8, bufsize=1, ignore_if_missing=False, multiline
+ path,
+ pattern,
+ "",
+- flags=flags,
++ flags=re_flags,
+ bufsize=bufsize,
+ dry_run=True,
+ search_only=True,
diff --git a/app-admin/salt/salt-3005.1-r1.ebuild b/app-admin/salt/salt-3005.1-r1.ebuild
new file mode 100644
index 000000000000..d0056bab8f71
--- /dev/null
+++ b/app-admin/salt/salt-3005.1-r1.ebuild
@@ -0,0 +1,220 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_10 )
+
+DISTUTILS_USE_PEP517=setuptools
+inherit systemd distutils-r1
+
+DESCRIPTION="Salt is a remote execution and configuration manager"
+HOMEPAGE="https://www.saltstack.com/resources/community/
+ https://github.com/saltstack"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/${PN}stack/${PN}.git"
+ EGIT_BRANCH="develop"
+ SRC_URI=""
+else
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="
+ cheetah cherrypy ldap libcloud libvirt genshi gnupg keyring mako
+ mongodb neutron nova openssl portage profile redis selinux test raet
+ +zeromq vim-syntax
+"
+
+RDEPEND="
+ sys-apps/pciutils
+ >=dev-python/distro-1.5[${PYTHON_USEDEP}]
+ >=dev-python/jinja-3.0.3[${PYTHON_USEDEP}]
+ dev-python/jmespath[${PYTHON_USEDEP}]
+ dev-python/libnacl[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/psutil-5.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pycryptodome-3.9.8[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/markupsafe-2.0.1[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.0.0[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/tomli[${PYTHON_USEDEP}]
+ dev-python/watchdog[${PYTHON_USEDEP}]
+ libcloud? (
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/aiosignal[${PYTHON_USEDEP}]
+ dev-python/async-timeout[${PYTHON_USEDEP}]
+ >=dev-python/libcloud-2.5.0[${PYTHON_USEDEP}]
+ )
+ mako? ( dev-python/mako[${PYTHON_USEDEP}] )
+ ldap? ( dev-python/python-ldap[${PYTHON_USEDEP}] )
+ libvirt? (
+ dev-python/libvirt-python[${PYTHON_USEDEP}]
+ )
+ openssl? (
+ dev-libs/openssl:0=[-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}]
+ )
+ cherrypy? ( >=dev-python/cherrypy-3.2.2[${PYTHON_USEDEP}] )
+ cheetah? ( >=dev-python/cheetah3-3.2.2[${PYTHON_USEDEP}] )
+ genshi? ( dev-python/genshi[${PYTHON_USEDEP}] )
+ mongodb? ( dev-python/pymongo[${PYTHON_USEDEP}] )
+ portage? ( sys-apps/portage[${PYTHON_USEDEP}] )
+ keyring? ( dev-python/keyring[${PYTHON_USEDEP}] )
+ redis? ( dev-python/redis-py[${PYTHON_USEDEP}] )
+ selinux? ( sec-policy/selinux-salt )
+ 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 )
+ zeromq? ( >=dev-python/pyzmq-19.0.0[${PYTHON_USEDEP}] )
+"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ >=dev-python/boto-2.32.1[${PYTHON_USEDEP}]
+ dev-python/certifi[${PYTHON_USEDEP}]
+ dev-python/cherrypy[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ >=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/moto-2.0.0[${PYTHON_USEDEP}]
+ dev-python/passlib
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ >=dev-python/pytest-7.0.1[${PYTHON_USEDEP}]
+ >=dev-python/pytest-salt-factories-1.0.0_rc17[${PYTHON_USEDEP}]
+ dev-python/pytest-tempdir[${PYTHON_USEDEP}]
+ dev-python/pytest-helpers-namespace[${PYTHON_USEDEP}]
+ dev-python/pytest-subtests[${PYTHON_USEDEP}]
+ dev-python/pytest-shell-utilities[${PYTHON_USEDEP}]
+ dev-python/pytest-skip-markers[${PYTHON_USEDEP}]
+ dev-python/pytest-system-statistics[${PYTHON_USEDEP}]
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/libcloud[${PYTHON_USEDEP}]
+ net-dns/bind-tools
+ >=dev-python/virtualenv-20.3.0[${PYTHON_USEDEP}]
+ dev-util/yamllint[${PYTHON_USEDEP}]
+ !x86? ( >=dev-python/boto3-1.17.67[${PYTHON_USEDEP}] )
+ )
+"
+
+DOCS=( README.rst AUTHORS )
+
+REQUIRED_USE="|| ( raet zeromq )
+ test? ( cheetah genshi )"
+RESTRICT="!test? ( test ) x86? ( test )"
+
+PATCHES=(
+ "${FILESDIR}/salt-3003-skip-tests-that-oom-machine.patch"
+ "${FILESDIR}/salt-3003-gentoolkit-revdep.patch"
+ "${FILESDIR}/salt-3002-tests.patch"
+ "${FILESDIR}/salt-3003.1-tests.patch"
+ "${FILESDIR}/salt-3005-relax-pyzmq-dep.patch"
+ "${FILESDIR}/salt-3005-tests.patch"
+ "${FILESDIR}/salt-3005.1-no-entry-points.patch"
+ "${FILESDIR}/salt-3005.1-importlib-metadata-5-r1.patch"
+ "${FILESDIR}/salt-3005.1-tests.patch"
+ "${FILESDIR}/salt-3005.1-modules-file-python-3.11-host.patch"
+)
+
+python_prepare_all() {
+ # remove tests with external dependencies that may not be available, and
+ # tests that don't work in sandbox
+ rm tests/unit/{test_{zypp_plugins,module_names},utils/test_extend}.py || die
+ rm tests/unit/modules/test_boto_{vpc,secgroup,elb}.py || die
+ rm tests/unit/states/test_boto_vpc.py || die
+ rm tests/support/gitfs.py tests/unit/runners/test_git_pillar.py || die
+ rm tests/pytests/functional/transport/server/test_req_channel.py || die
+ rm tests/pytests/functional/utils/test_async_event_publisher.py || die
+ rm tests/pytests/functional/runners/test_winrepo.py || die
+
+ # tests that require network access
+ rm tests/unit/{states,modules}/test_zcbuildout.py || die
+ rm -r tests/integration/cloud || die
+ rm -r tests/kitchen/tests/wordpress/tests || die
+ rm tests/kitchen/test_kitchen.py || die
+ rm tests/unit/modules/test_network.py || die
+ rm tests/pytests/functional/modules/test_pip.py || die
+ rm tests/pytests/unit/client/ssh/test_ssh.py || die
+ rm -r tests/pytests/{integration,functional}/netapi tests/integration/netapi || die
+
+ # tests require root access
+ rm tests/integration/pillar/test_git_pillar.py || die
+ rm tests/integration/states/test_supervisord.py || die
+
+ # removes contextvars, see bug: https://bugs.gentoo.org/799431
+ sed -i '/^contextvars/d' requirements/base.txt || die
+
+ # make sure pkg_resources doesn't bomb because pycrypto isn't installed
+ find "${S}" -name '*.txt' -print0 | xargs -0 sed -e '/pycrypto>/ d ; /pycryptodomex/ d' -i || die
+ # pycryptodome rather than pycryptodomex
+ find "${S}" -name '*.py' -print0 | xargs -0 -- sed -i -e 's:Cryptodome:Crypto:g' -- || die
+
+ distutils-r1_python_prepare_all
+}
+
+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-5 salt-${svc}
+ newconfd "${FILESDIR}"/${svc}-confd-1 salt-${svc}
+ systemd_dounit "${FILESDIR}"/salt-${svc}.service
+ done
+
+ insinto /etc/${PN}
+ doins -r conf/*
+}
+
+python_test() {
+ # testsuite likes lots of files
+ ulimit -n 4096 || die
+
+ local -a disable_tests=(
+ # doesn't like the distutils warning
+ batch_retcode
+ multiple_modules_in_batch
+ # hangs indefinitely
+ master_type_disable
+ # needs root
+ runas_env_sudo_group
+ # don't like sandbox
+ split_multibyte_characters_{shiftjis,unicode}
+ # doesn't like sandbox env
+ log_sanitize
+ )
+ local textexpr
+ testexpr=$(printf 'not %s and ' "${disable_tests[@]}")
+
+ # ${T} is too long a path for the tests to work
+ local TMPDIR
+ TMPDIR="$(mktemp --directory --tmpdir=/tmp ${PN}-XXXX)" || die
+ (
+ export TMPDIR
+ cleanup() { rm -rf "${TMPDIR}" || die; }
+
+ trap cleanup EXIT
+
+ addwrite "${TMPDIR}"
+
+ USE_SETUPTOOLS=1 NO_INTERNET=1 SHELL="/bin/bash" \
+ "${EPYTHON}" -m pytest -vv -k "${testexpr%and }" \
+ || die "testing failed with ${EPYTHON}"
+ )
+}