diff options
Diffstat (limited to 'dev-build/steve/steve-1.2.0.ebuild')
| -rw-r--r-- | dev-build/steve/steve-1.2.0.ebuild | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/dev-build/steve/steve-1.2.0.ebuild b/dev-build/steve/steve-1.2.0.ebuild new file mode 100644 index 000000000000..04be9d182345 --- /dev/null +++ b/dev-build/steve/steve-1.2.0.ebuild @@ -0,0 +1,106 @@ +# Copyright 2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) + +inherit linux-info meson python-any-r1 systemd udev + +DESCRIPTION="A load-balancing jobserver for Gentoo" +HOMEPAGE="https://gitweb.gentoo.org/proj/steve.git/" +SRC_URI="https://dev.gentoo.org/~mgorny/dist/${P}.tar.xz" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86" +IUSE="debug test" +RESTRICT="test" +PROPERTIES="test? ( test_privileged )" + +DEPEND=" + dev-libs/libevent:= + sys-fs/fuse:3= +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + virtual/pkgconfig + test? ( + $(python_gen_any_dep ' + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/pytest-timeout[${PYTHON_USEDEP}] + ') + ) +" + +python_check_deps() { + python_has_version "dev-python/pytest[${PYTHON_USEDEP}]" && + python_has_version "dev-python/pytest-timeout[${PYTHON_USEDEP}]" +} + +pkg_pretend() { + local CONFIG_CHECK="~CUSE" + check_extra_config +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +src_configure() { + local emesonargs=( + $(meson_use !debug b_ndebug) + $(meson_use test) + ) + + meson_src_configure +} + +src_test() { + addwrite /dev/cuse + addwrite /dev/steve.test + if [[ ! -w /dev/cuse ]]; then + die "Testing steve requires /dev/cuse" + fi + + local -x STEVE=${BUILD_DIR}/steve + local EPYTEST_PLUGINS=( pytest-timeout ) + epytest +} + +src_install() { + meson_src_install + + # TODO: move these to meson + systemd_dounit data/steve.service + newconfd data/steve.confd steve + newinitd data/steve.initd steve + insinto /etc/sandbox.d + newins data/sandbox.conf 90steve + udev_newrules data/steve.udev 90-steve.rules +} + +pkg_postinst() { + udev_reload + + if ! grep -q -s -R -- '--jobserver-auth=fifo:/dev/steve' "${EROOT}"/etc/portage/make.conf + then + elog "In order to use the system-wide steve instance, enable the service:" + elog + elog " systemctl enable --now steve" + elog + elog "Then add to your make.conf:" + elog + elog ' MAKEFLAGS="--jobserver-auth=fifo:/dev/steve"' + elog ' NINJAOPTS=""' + elog + elog "You can use -l in NINJAOPTS but *do not* use -j, as it disables" + elog "jobserver support." + fi +} + +pkg_postrm() { + udev_reload +} |
