| # 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="dbb1136242ba822d539eaf11493f3b68815adb7f" |
| CROS_WORKON_TREE=("60fa47aebd6ebfb702012849bd560717fceddcd4" "0c8e3de65339e7e6a1ffe16a54c7ae719bacc57c" "2e036f417afe5d55dcbd138f7bfe2c98ab14403f" "509fcdecd3a70e50e5aa4e48d65de2dbd6decdb9" "944879c9353c2df8adb7022407a8d319671325c1" "b5881b78580dbead29183a70fdc260387f29d82a" "8ca9c97a07408fdff5abf480fb1b2a15405b6bc0" "2e036f417afe5d55dcbd138f7bfe2c98ab14403f" "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/+/HEAD/u2fd/" |
| |
| LICENSE="BSD-Google" |
| KEYWORDS="*" |
| IUSE="fuzzer tpm cr50_onboard ti50_onboard" |
| |
| COMMON_DEPEND=" |
| tpm? ( |
| app-crypt/trousers:= |
| ) |
| fuzzer? ( |
| chromeos-base/trunks:= |
| ) |
| cr50_onboard? ( |
| chromeos-base/trunks:= |
| ) |
| ti50_onboard? ( |
| chromeos-base/trunks:= |
| ) |
| chromeos-base/attestation:= |
| chromeos-base/attestation-client:= |
| chromeos-base/cbor:= |
| chromeos-base/chromeos-ec-headers:= |
| chromeos-base/cryptohome-client:= |
| chromeos-base/libhwsec:= |
| >=chromeos-base/metrics-0.0.1-r3152:= |
| chromeos-base/power_manager-client:= |
| chromeos-base/tpm_manager:= |
| chromeos-base/u2fd-client:= |
| 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}" |
| |
| local fuzzer_component_id="1188704" |
| 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}" |
| } |
| |
| platform_pkg_test() { |
| platform_test "run" "${OUT}/u2fd_test_runner" |
| } |