| # 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="f35f2919309cf11b0ddd9deb24a6b145d40d9254" |
| CROS_WORKON_TREE=("a625767bb59509159091f2ab0b71f8b9b4b2e353" "97266a4772907835fdab5d56b3ca24ed9c1c7a0e" "fb2b8277318fb7e7eff84f5c7669a46bf60f19f5" "4a0dedab080195bdc122d2289118df4af3ddca2c" "2acba33c99f07fa000bb44a4df3a65a8fe313bb1" "31eed1e89a0f52385e3ced51c05a2551b866a0c4" "b1c7898d3f42051cbba6426c62b35476a8de5b72" "fb2b8277318fb7e7eff84f5c7669a46bf60f19f5" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb") |
| CROS_WORKON_USE_VCSID="1" |
| CROS_WORKON_LOCALNAME="platform2" |
| CROS_WORKON_PROJECT="chromiumos/platform2" |
| CROS_WORKON_OUTOFTREE_BUILD=1 |
| CROS_WORKON_INCREMENTAL_BUILD=1 |
| # TODO(crbug.com/809389): Avoid directly including headers from other packages. |
| CROS_WORKON_SUBTREE="common-mk trunks libhwsec metrics tpm_manager u2fd libhwsec-foundation libhwsec .gn" |
| |
| PLATFORM_SUBDIR="u2fd" |
| |
| inherit cros-workon platform user |
| |
| DESCRIPTION="U2FHID Emulation Daemon" |
| HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/u2fhid" |
| |
| LICENSE="BSD-Google" |
| KEYWORDS="*" |
| IUSE="fuzzer tpm cr50_onboard ti50_onboard" |
| |
| COMMON_DEPEND=" |
| tpm? ( |
| app-crypt/trousers:= |
| ) |
| cr50_onboard? ( |
| chromeos-base/trunks:= |
| ) |
| ti50_onboard? ( |
| chromeos-base/trunks:= |
| ) |
| chromeos-base/attestation:= |
| chromeos-base/attestation-client:= |
| chromeos-base/cbor:= |
| chromeos-base/cryptohome-client:= |
| chromeos-base/libhwsec:= |
| >=chromeos-base/metrics-0.0.1-r3152:= |
| chromeos-base/power_manager-client:= |
| chromeos-base/tpm_manager:= |
| dev-libs/hidapi:= |
| " |
| |
| RDEPEND="${COMMON_DEPEND}" |
| |
| DEPEND="${COMMON_DEPEND} |
| chromeos-base/attestation-client:= |
| >=chromeos-base/protofiles-0.0.43:= |
| chromeos-base/system_api:=[fuzzer?] |
| " |
| |
| pkg_setup() { |
| # Has to be done in pkg_setup() instead of pkg_preinst() since |
| # src_install() needs the u2f user and group. |
| enewuser "u2f" |
| enewgroup "u2f" |
| cros-workon_pkg_setup |
| } |
| |
| src_install() { |
| dobin "${OUT}"/u2fd |
| |
| insinto /etc/init |
| doins init/*.conf |
| |
| insinto /etc/dbus-1/system.d |
| doins org.chromium.U2F.conf |
| |
| local daemon_store="/etc/daemon-store/u2f" |
| dodir "${daemon_store}" |
| fperms 0700 "${daemon_store}" |
| fowners u2f:u2f "${daemon_store}" |
| |
| if use cr50_onboard || use ti50_onboard; then |
| local fuzzer_component_id="886041" |
| platform_fuzzer_install "${S}"/OWNERS "${OUT}"/u2f_apdu_fuzzer \ |
| --comp "${fuzzer_component_id}" |
| platform_fuzzer_install "${S}"/OWNERS "${OUT}"/u2fhid_fuzzer \ |
| --comp "${fuzzer_component_id}" |
| platform_fuzzer_install "${S}"/OWNERS "${OUT}"/u2f_msg_handler_fuzzer \ |
| --comp "${fuzzer_component_id}" |
| platform_fuzzer_install "${S}"/OWNERS "${OUT}"/u2f_webauthn_fuzzer \ |
| --comp "${fuzzer_component_id}" |
| fi |
| } |
| |
| platform_pkg_test() { |
| platform_test "run" "${OUT}/u2fd_test_runner" |
| } |