| # 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" "f73f25bb045d099841b3ac929b6d3218060216df" "9dbbe059a64bdb3260dc088895573df5ea421399" "faa5b8036561b66b5b9d79ea1af8a95927a0ae0f" "989acbd33fd18024396e010b1be43d25cbdf942d" "bfb0825fba5f58eda85c87558bd2074511c461d3" "0d9d2046eb78dc8620f7594f245298f9fd964832" "9dbbe059a64bdb3260dc088895573df5ea421399" "f91b6afd5f2ae04ee9a2c19109a3a4a36f7659e6") |
| 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="cr50_onboard fuzzer profiling ti50_onboard" |
| |
| COMMON_DEPEND=" |
| chromeos-base/attestation:= |
| chromeos-base/attestation-client:= |
| chromeos-base/cbor:= |
| chromeos-base/chromeos-ec-headers:= |
| chromeos-base/cryptohome-client:= |
| chromeos-base/libhwsec:=[test?] |
| chromeos-base/libhwsec-foundation:= |
| >=chromeos-base/metrics-0.0.1-r3152:= |
| chromeos-base/power_manager-client:= |
| chromeos-base/session_manager-client:= |
| chromeos-base/u2fd-client:= |
| dev-libs/openssl:0= |
| " |
| |
| RDEPEND="${COMMON_DEPEND}" |
| |
| DEPEND="${COMMON_DEPEND} |
| chromeos-base/attestation-client:= |
| >=chromeos-base/protofiles-0.0.43:= |
| chromeos-base/system_api:=[fuzzer?] |
| " |
| |
| BDEPEND=" |
| dev-libs/protobuf |
| " |
| |
| 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() { |
| platform_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="1281105" |
| 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" |
| } |