blob: 06268e0df8498068a32c8fb2c744bf0942c4f774 [file] [log] [blame]
# Copyright 2014 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
EAPI="5"
CROS_WORKON_COMMIT="2f5eaea5eead3060774bf9823b69049e6f2d825c"
CROS_WORKON_TREE=("c9338e2c2e898e065dce6d62921e358a85709cd3" "1b33247310ca3ff9ccc3e5e7e64de3947229a47c" "94cdbc9ee583675106c5a70129b3b1d91b97d569" "38a36f76290e3e0f13d021ad8597ea5f250a05ba" "9b7688ace9a65fe9f1cc60636ad3e821d4f8b2cb" "19e0e061f4be49a0e6c4605bc2b49506d5ba6e77" "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 attestation chaps libhwsec tpm_manager trunks .gn"
PLATFORM_SUBDIR="attestation"
inherit cros-workon libchrome platform user
DESCRIPTION="Attestation service for Chromium OS"
HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/attestation/"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="*"
IUSE="distributed_cryptohome test tpm tpm2"
REQUIRED_USE="tpm2? ( !tpm )"
RDEPEND="
tpm? (
app-crypt/trousers
)
tpm2? (
chromeos-base/trunks
)
chromeos-base/chaps
chromeos-base/minijail
chromeos-base/libbrillo
chromeos-base/tpm_manager
"
DEPEND="
${RDEPEND}
test? ( chromeos-base/libhwsec )
chromeos-base/vboot_reference
tpm2? (
chromeos-base/trunks[test?]
chromeos-base/chromeos-ec-headers
)
"
pkg_preinst() {
# Create user and group for attestation.
enewuser "attestation"
enewgroup "attestation"
# Create group for /mnt/stateful_partition/unencrypted/preserve.
enewgroup "preserve"
}
src_install() {
if use tpm2 || use distributed_cryptohome; then
insinto /etc/dbus-1/system.d
doins server/org.chromium.Attestation.conf
insinto /etc/init
doins server/attestationd.conf
if use tpm2; then
sed -i 's/started tcsd/started tpm_managerd/' \
"${D}/etc/init/attestationd.conf" ||
die "Can't replace tcsd with tpm_managerd in attestationd.conf"
fi
dosbin "${OUT}"/attestationd
dobin "${OUT}"/attestation_client
insinto /usr/share/policy
newins server/attestationd-seccomp-${ARCH}.policy attestationd-seccomp.policy
fi
dolib.so "${OUT}"/lib/libattestation.so
insinto /usr/include/attestation/client
doins client/dbus_proxy.h
insinto /usr/include/attestation/common
doins common/attestation_interface.h
doins common/print_attestation_ca_proto.h
doins common/print_interface_proto.h
doins common/print_keystore_proto.h
}
platform_pkg_test() {
local tests=(
attestation_testrunner
)
local test_bin
for test_bin in "${tests[@]}"; do
platform_test "run" "${OUT}/${test_bin}"
done
}