blob: cb5f9765c465431b514220c3aba3ab27bcb73ddc [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="7ad3c0d318ab6cd2ff9a75d1b99ef69d423e433d"
CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "f4925a46fc9b9ab39b7c7a11ad97e12a0d0bb39d" "aa0612733aca2d5ffa65470f07408228b473ebdb" "a9708ef639f0f7929195d0f3921ebd1a12ad96bd" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
CROS_WORKON_INCREMENTAL_BUILD="1"
CROS_WORKON_LOCALNAME="platform2"
CROS_WORKON_PROJECT="chromiumos/platform2"
CROS_WORKON_OUTOFTREE_BUILD=1
# TODO(crbug.com/809389): Avoid directly including headers from other packages.
CROS_WORKON_SUBTREE="common-mk arc/setup chromeos-config metrics .gn"
PLATFORM_NATIVE_TEST="yes"
PLATFORM_SUBDIR="arc/setup"
inherit cros-workon platform
DESCRIPTION="Set up environment to run ARC."
HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/setup"
LICENSE="BSD-Google"
KEYWORDS="*"
IUSE="
arcpp
arcvm
esdfs
fuzzer
generated_cros_config
houdini
houdini64
iioservice
ndk_translation
unibuild
test"
REQUIRED_USE="|| ( arcpp arcvm )"
COMMON_DEPEND="
arcpp? (
esdfs? ( chromeos-base/arc-sdcard )
)
chromeos-base/bootstat:=
chromeos-base/chromeos-config-tools:=
chromeos-base/cryptohome-client:=
>=chromeos-base/metrics-0.0.1-r3152:=
chromeos-base/patchpanel-client:=
dev-libs/libxml2:=
dev-libs/protobuf:=
sys-libs/libselinux:=
chromeos-base/minijail:=
"
RDEPEND="${COMMON_DEPEND}
!<chromeos-base/arc-common-scripts-0.0.1-r131
!<chromeos-base/arcvm-common-scripts-0.0.1-r77
chromeos-base/patchpanel
arcvm? ( chromeos-base/crosvm )
arcpp? (
chromeos-base/swap-init
esdfs? ( sys-apps/restorecon )
)
"
DEPEND="${COMMON_DEPEND}
unibuild? (
!generated_cros_config? ( chromeos-base/chromeos-config )
generated_cros_config? ( chromeos-base/chromeos-config-bsp:= )
)
chromeos-base/system_api:=[fuzzer?]
test? ( chromeos-base/arc-base )
"
enable_esdfs() {
[[ -f "$1" ]] || die
local data=$(jq ".USE_ESDFS=true" "$1")
echo "${data}" > "$1" || die
}
src_install() {
# Used for both ARCVM and ARC.
dosbin "${OUT}"/arc-prepare-host-generated-dir
dosbin "${OUT}"/arc-remove-data
dosbin "${OUT}"/arc-remove-stale-data
insinto /etc/init
doins init/arc-prepare-host-generated-dir.conf
doins init/arc-remove-data.conf
doins init/arc-stale-directory-remover.conf
# Some binaries are only for ARCVM
if use arcvm; then
dosbin "${OUT}"/arc-apply-per-board-config
dosbin "${OUT}"/arc-create-data
dosbin "${OUT}"/arc-handle-upgrade
insinto /etc/init
doins init/arcvm-per-board-features.conf
doins init/arc-create-data.conf
doins init/arc-handle-upgrade.conf
insinto /etc/dbus-1/system.d
doins init/dbus-1/ArcVmSetupUpstart.conf
fi
# Other files are only for ARC.
if use arcpp; then
dosbin "${OUT}"/arc-setup
insinto /etc/init
doins init/arc-boot-continue.conf
doins init/arc-lifetime.conf
doins init/arc-update-restorecon-last.conf
doins init/arcpp-post-login-services.conf
if use esdfs; then
doins init/arc-sdcard.conf
doins init/arc-sdcard-mount.conf
fi
doins init/arc-system-mount.conf
insinto /etc/dbus-1/system.d
doins init/dbus-1/ArcSetupUpstart.conf
insinto /usr/share/arc-setup
doins init/arc-setup/config.json
if use esdfs; then
enable_esdfs "${D}/usr/share/arc-setup/config.json"
fi
insinto /opt/google/containers/arc-art
doins "${OUT}/dev-rootfs.squashfs"
# container-root is where the root filesystem of the container in which
# patchoat and dex2oat runs is mounted. dev-rootfs is mount point
# for squashfs.
diropts --mode=0700 --owner=root --group=root
keepdir /opt/google/containers/arc-art/mountpoints/container-root
keepdir /opt/google/containers/arc-art/mountpoints/dev-rootfs
keepdir /opt/google/containers/arc-art/mountpoints/vendor
platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc_setup_util_find_all_properties_fuzzer
platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc_setup_util_find_fingerprint_and_sdk_version_fuzzer
platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc_property_util_expand_property_contents_fuzzer
fi
}
platform_pkg_test() {
platform_test "run" "${OUT}/arc-setup_testrunner"
}