| # Copyright 2017 The ChromiumOS Authors |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| EAPI=7 |
| |
| CROS_WORKON_COMMIT="8b6e11a069e490c761cdab7ab3ff59434806cd9c" |
| CROS_WORKON_TREE=("41d899585b7a07ea908a0cca2944a7b8a4d13655" "f91b6afd5f2ae04ee9a2c19109a3a4a36f7659e6" "af42858f0c4f3fae729c03bccb4e1eb13c295957" "81406a32898f310de1ad0fb773c7c66c0d2d59a5" "cf96d802dc00e52f7f7fd26da97fce4b68560514" "f368627960e9d37dd0154fe8655e3370bd2bba38" "431e35862e2cd724e8727c4dae1f7e0aa3c8462a" "0c5a113933f1222bcbe43f22d86e947ce021ba47" "f06d46920c6ec15e6e0b551a53ab3ac686157e3d" "1d9ce187cc73a8cdb8f522eb5163315cac04a557" "cc392a419c736a744509c4ac2d6f9efee7b27abd" "e82758de7a4b5df7c04dff01174e2f8d77c8e408" "363f05d82723f00e35badca3f23b3b75ab52d543" "53d7146a8355184359434857b66bdadeb40b66a1" "550c26f7b039924bbefed8b2d17ad6a8d4c6cdd5" "0f8ac67491f7a52e0de6999644a3797b7fed364c" "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/+/HEAD/vm_tools" |
| |
| LICENSE="BSD-Google" |
| KEYWORDS="*" |
| IUSE="kvm_guest vm-containers fuzzer vm_borealis vm_sludge" |
| |
| # 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-cpp/abseil-cpp:= |
| dev-libs/protobuf:= |
| dev-go/protobuf-legacy-api:= |
| " |
| |
| RDEPEND=" |
| ${COMMON_DEPEND} |
| vm-containers? ( |
| chromeos-base/crash-reporter |
| chromeos-base/crostini-metric-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 |
| |
| # fuzzer_component_id is unknown/unlisted |
| 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 |
| |
| dobin "${OUT}"/maitred |
| dosym /usr/bin/maitred /sbin/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_init_test |
| 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 |
| } |