mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-10-12 17:51:11 -04:00
Fuse tests not yet hooked up with kernel config checking Cmake options only accept capital ON & OFF. Part-off: https://codeberg.org/gentoo/guru/pulls/17 Signed-off-by: zyxhere💭 <zyx@envs.net>
130 lines
3.0 KiB
Bash
130 lines
3.0 KiB
Bash
# Copyright 2026 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
inherit cmake linux-info
|
|
|
|
DESCRIPTION="Suite of tools conforming to the Remote Execution and Workers API"
|
|
HOMEPAGE="https://buildgrid.gitlab.io/buildbox/buildbox/index.html"
|
|
SRC_URI="https://gitlab.com/BuildGrid/buildbox/${PN}/-/archive/${PV}/${P}.tar.bz2"
|
|
|
|
LICENSE="Apache-2.0"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64"
|
|
IUSE="casd fuse oci recc test tools"
|
|
REQUIRED_USE="
|
|
fuse? ( casd )
|
|
oci? ( tools )
|
|
"
|
|
|
|
DEPEND="
|
|
dev-cpp/abseil-cpp:=
|
|
dev-libs/openssl:=
|
|
dev-libs/protobuf:=
|
|
net-libs/grpc:=
|
|
sys-apps/util-linux
|
|
fuse? ( sys-fs/fuse:3= )
|
|
oci? (
|
|
dev-cpp/nlohmann_json
|
|
net-misc/curl
|
|
)
|
|
"
|
|
|
|
# FIXME: cmake doesn't catch this dependency during configure
|
|
DEPEND+="dev-cpp/nlohmann_json"
|
|
|
|
RDEPEND="${DEPEND}
|
|
sys-apps/attr
|
|
sys-apps/bubblewrap
|
|
sys-apps/net-tools
|
|
oci? ( app-containers/runc )
|
|
"
|
|
|
|
BDEPEND="
|
|
dev-cpp/gtest
|
|
dev-cpp/tomlplusplus
|
|
sys-libs/libunwind
|
|
net-dns/c-ares
|
|
virtual/pkgconfig
|
|
recc? ( virtual/zlib:= )
|
|
"
|
|
|
|
RESTRICT="!test? ( test )"
|
|
|
|
pkg_setup() {
|
|
if use fuse && use test; then
|
|
CONFIG_CHECK="FUSE_FS"
|
|
linux-info_pkg_setup
|
|
elif use fuse; then
|
|
CONFIG_CHECK="~FUSE_FS"
|
|
linux-info_pkg_setup
|
|
fi
|
|
}
|
|
|
|
src_configure() {
|
|
local mycmakeargs=(
|
|
# only accepts capital ON/OFF
|
|
-DTOOLS=$(usex tools ON OFF)
|
|
-DCASD=$(usex casd ON OFF)
|
|
-DCASD_WRAP=$(usex casd ON OFF)
|
|
-DCASUPLOAD_OCI=$(usex oci ON OFF)
|
|
-DFUSE=$(usex fuse ON OFF)
|
|
-DLOGSTREAMRECEIVER=$(usex tools ON OFF)
|
|
-DLOGSTREAMTAIL=$(usex tools ON OFF)
|
|
-DOCI=$(usex oci ON OFF)
|
|
-DOUTPUTSTREAMER=$(usex tools ON OFF)
|
|
-DRECC=$(usex recc ON OFF)
|
|
-DREXPLORER=$(usex casd ON OFF)
|
|
-DRUMBAD=$(usex tools ON OFF)
|
|
-DRUN_BUBBLEWRAP=$(usex casd ON OFF)
|
|
-DRUN_HOSTTOOLS=$(usex tools ON OFF)
|
|
-DRUN_OCI=$(usex oci ON OFF)
|
|
# bwrap on linux
|
|
-DRUN_SYMLINK=$(usex casd bubblewrap OFF)
|
|
-DRUN_USERCHROOT=OFF
|
|
-DTREXE=$(usex tools ON OFF)
|
|
-DWORKER=$(usex tools ON OFF)
|
|
-DBUILD_MOSTLY_STATIC=OFF
|
|
# Passes "-O1 -D_FORTIFY_SOURCE=2", which we already do
|
|
-DHARDEN=OFF
|
|
-DBUILD_SHARED_LIBS=ON
|
|
)
|
|
|
|
if use casd; then
|
|
# manually specified variable with USE=-casd
|
|
# QA Notice: One or more CMake variables were not used by the project:
|
|
mycmakeargs+=( -DCASD_BUILD_BENCHMARK=OFF )
|
|
fi
|
|
|
|
cmake_src_configure
|
|
}
|
|
|
|
src_test() {
|
|
local CMAKE_SKIP_TESTS=(
|
|
)
|
|
|
|
if use fuse; then
|
|
# fuse: failed to open /dev/fuse: Permission denied
|
|
addwrite "/dev/fuse"
|
|
|
|
# fusermount3: mount failed: Operation not permitted
|
|
# NOTE: only tested inside container with /dev/fuse mounted
|
|
# FIXME: test on host
|
|
CMAKE_SKIP_TESTS+=(
|
|
casd_local_service_static_instance_tests
|
|
casd_local_service_dynamic_instance_tests
|
|
casd_local_service_remote_server_dynamic_instance_tests
|
|
casd_local_service_remote_server_static_instance_tests
|
|
casd_local_execution_service_tests
|
|
casd_hybrid_execution_service_tests
|
|
casd_hybrid_fallback_execution_service_tests_1
|
|
casd_hybrid_fallback_execution_service_tests_2
|
|
casd_hybrid_fallback_execution_service_tests_3
|
|
fuse_*
|
|
)
|
|
fi
|
|
|
|
cmake_src_test
|
|
}
|