diff options
author | V3n3RiX <venerix@koprulu.sector> | 2023-01-30 08:57:14 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2023-01-30 08:57:14 +0000 |
commit | 552fc3ba95eab5c2c1a8b2b55ab432a1019739a0 (patch) | |
tree | adad36adc624e114d5b985e392ac40a7b94d8ac6 /app-admin | |
parent | 61966498b463d88a09132a9a22c68c0c37159e41 (diff) |
gentoo auto-resync : 30:01:2023 - 08:57:13
Diffstat (limited to 'app-admin')
-rw-r--r-- | app-admin/Manifest.gz | bin | 32349 -> 32351 bytes | |||
-rw-r--r-- | app-admin/salt/Manifest | 3 | ||||
-rw-r--r-- | app-admin/salt/files/salt-3005.1-importlib-metadata-5-r1.patch | 29 | ||||
-rw-r--r-- | app-admin/salt/files/salt-3005.1-modules-file-python-3.11-host.patch | 123 | ||||
-rw-r--r-- | app-admin/salt/salt-3005.1-r1.ebuild | 220 |
5 files changed, 375 insertions, 0 deletions
diff --git a/app-admin/Manifest.gz b/app-admin/Manifest.gz Binary files differindex 92f1a901b300..e91bd44c5fd3 100644 --- a/app-admin/Manifest.gz +++ b/app-admin/Manifest.gz 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}" + ) +} |