blob: 65ae54839670dafbcd866d09880e4b3d81d92bb2 [file] [log] [blame]
# Copyright 2017 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
EAPI=7
CROS_WORKON_COMMIT="78ebb5c48ef5196346103ce448d63d171d0e97f2"
CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb" "7ef75a42aba67052842459f221271e681184cc89" "0865c9d3ea1e3df829430fe6bc25ecbc3bc865ca" "c1bde153626532428bf7409bc0597e79452c5eb8" "5159f439e8516f904859190cfd0375b7a4d05db2" "cfed45e1497a68bae4f74947be9922019fe331cf" "97190407ff6df6ae497a54e632369afdf09cd621" "af0b5afed375b2398606e02dfedd5a7d116cfde7" "40934111a9826b46aca5b0b3309b1cceea46f7a4" "73d11c9c68b8ad83037d9b5820a42f0e51c57d74" "dcc85a40b5c9518fac5d6d9b571131998bd62653" "bf33fa9b44cf05a4e8a416a1a3e8ad2d905daa8e" "889e63b35e958b34d6cf15f62b243d442f1bac83" "04812f95a99341b51d5b838c9470f7915b2a5f11" "d0bf87d1a53ee7e33eb547179efa5b2a5e535f84" "a01dc69a1e1fa54805fe9b48ce5c278a7e70de0c")
CROS_WORKON_LOCALNAME="platform2"
CROS_WORKON_PROJECT="chromiumos/platform2"
CROS_WORKON_OUTOFTREE_BUILD=1
CROS_WORKON_INCREMENTAL_BUILD=1
PLATFORM2_PATHS=(
common-mk
.gn
vm_tools/BUILD.gn
vm_tools/guest
vm_tools/common
vm_tools/demos
vm_tools/garcon
vm_tools/guest_service_failure_notifier
vm_tools/maitred
vm_tools/notificationd
vm_tools/sommelier
vm_tools/syslog
vm_tools/upgrade_container
vm_tools/virtwl_guest_proxy
vm_tools/vsh
# Required by the fuzzer
vm_tools/OWNERS
vm_tools/testdata
)
CROS_WORKON_SUBTREE="${PLATFORM2_PATHS[*]}"
PLATFORM_SUBDIR="vm_tools"
inherit cros-go cros-workon platform user
DESCRIPTION="VM guest tools for Chrome OS"
HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/vm_tools"
LICENSE="BSD-Google"
KEYWORDS="*"
IUSE="kvm_guest vm-containers fuzzer vm_borealis"
# This ebuild should only be used on VM guest boards.
REQUIRED_USE="kvm_guest"
COMMON_DEPEND="
!!chromeos-base/vm_tools
chromeos-base/minijail:=
net-libs/grpc:=
dev-libs/protobuf:=
"
RDEPEND="
${COMMON_DEPEND}
vm-containers? (
chromeos-base/crash-reporter
)
!fuzzer? (
chromeos-base/sommelier
)
"
DEPEND="
${COMMON_DEPEND}
dev-go/grpc:=
dev-go/protobuf:=
sys-kernel/linux-headers:=
chromeos-base/vm_protos:=
"
src_install() {
platform_src_install
dobin "${OUT}"/vm_syslog
dosbin "${OUT}"/vshd
if use vm-containers || use vm_borealis; then
dobin "${OUT}"/garcon
fi
if use vm-containers; then
dobin "${OUT}"/guest_service_failure_notifier
dobin "${OUT}"/notificationd
dobin "${OUT}"/upgrade_container
dobin "${OUT}"/virtwl_guest_proxy
dobin "${OUT}"/wayland_demo
dobin "${OUT}"/x11_demo
fi
platform_fuzzer_install "${S}"/OWNERS "${OUT}"/garcon_desktop_file_fuzzer \
--dict "${S}"/testdata/garcon_desktop_file_fuzzer.dict
platform_fuzzer_install "${S}"/OWNERS "${OUT}"/garcon_icon_index_file_fuzzer \
--dict "${S}"/testdata/garcon_icon_index_file_fuzzer.dict
platform_fuzzer_install "${S}"/OWNERS "${OUT}"/garcon_ini_parse_util_fuzzer
platform_fuzzer_install "${S}"/OWNERS "${OUT}"/garcon_mime_types_parser_fuzzer
into /
newsbin "${OUT}"/maitred init
# Create a folder for process configs to be launched at VM startup.
dodir /etc/maitred/
use fuzzer || dosym /run/resolv.conf /etc/resolv.conf
CROS_GO_WORKSPACE="${OUT}/gen/go"
cros-go_src_install
}
platform_pkg_test() {
local tests=(
maitred_service_test
maitred_syslog_test
)
local container_tests=(
garcon_desktop_file_test
garcon_icon_index_file_test
garcon_icon_finder_test
garcon_mime_types_parser_test
notificationd_test
)
if use vm-containers || use vm_borealis; then
tests+=( "${container_tests[@]}" )
fi
local test_bin
for test_bin in "${tests[@]}"; do
platform_test "run" "${OUT}/${test_bin}"
done
}
pkg_preinst() {
# We need the syslog user and group for both host and guest builds.
enewuser syslog
enewgroup syslog
}