package/optee-client: new package

OP-TEE client API library and supplicant daemon from the
OP-TEE project are packaged in package/optee-client. An init script
launches the tee-supplicant deamon. Package is added to the
Security menu of BR configuration.

This change references in Buildroot the today's latest OP-TEE
revision release tagged 3.4.0.

Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
[Thomas:
 - remove version selection
 - add dependency on !BR2_STATIC_LIBS, as it unconditionally builds a
   shared library]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Etienne Carriere 2019-01-30 11:47:24 +01:00 committed by Thomas Petazzoni
parent 05bbdb876d
commit 59cc325133
6 changed files with 90 additions and 0 deletions

View file

@ -689,6 +689,7 @@ F: package/szip/
N: Etienne Carriere <etienne.carriere@linaro.org>
F: boot/optee-os/
F: package/optee-client/
N: Eugene Tarassov <eugene@largest.net>
F: package/tcf-agent/

View file

@ -2079,6 +2079,7 @@ endmenu
menu "Security"
source "package/checkpolicy/Config.in"
source "package/optee-client/Config.in"
source "package/paxtest/Config.in"
source "package/policycoreutils/Config.in"
source "package/refpolicy/Config.in"

View file

@ -0,0 +1,17 @@
config BR2_PACKAGE_OPTEE_CLIENT
bool "optee-client"
depends on !BR2_STATIC_LIBS
help
Enable the OP-TEE client package that brings non-secure
client application resources for OP-TEE support. OP-TEE
client is a component delivered by the OP-TEE project.
The client API library allows application to invoke trusted
applications hosted in the OP-TEE OS secure world. The
supplicant provides services hosted by the non-secure world
and invoked by the secure world.
https://github.com/OP-TEE/optee_client
comment "optee-client needs a toolchain w/ dynamic library"
depends on BR2_STATIC_LIBS

View file

@ -0,0 +1,49 @@
#!/bin/sh
DAEMON="tee-supplicant"
PIDFILE="/var/run/$DAEMON.pid"
DAEMON_ARGS="-d /dev/teepriv0"
start() {
printf 'Starting %s: ' "$DAEMON"
start-stop-daemon -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \
-- $DAEMON_ARGS
status=$?
if [ "$status" -eq 0 ]; then
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
stop() {
printf 'Stopping %s: ' "$DAEMON"
start-stop-daemon -K -q -p "$PIDFILE"
status=$?
if [ "$status" -eq 0 ]; then
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
restart() {
stop
sleep 1
start
}
case "$1" in
start|stop|restart)
"$1";;
reload)
# Restart, since there is no true "reload" feature (does not
# reconfigure/restart on SIGHUP, just closes all open files).
restart;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac

View file

@ -0,0 +1,4 @@
# From https://github.com/OP-TEE/optee_client/archive/3.4.0.tar.gz
sha256 7c131a44f4d73acb8816fba88bcd7e6a18537f0a522ae426a20e2ca7dc46a6ec optee-client-3.4.0.tar.gz
# Locally computed
sha256 fda8385993f112d7ca61b88b54ba5b4cbeec7e43a0f9b317d5186703c1985e8f LICENSE

View file

@ -0,0 +1,18 @@
################################################################################
#
# optee-client
#
################################################################################
OPTEE_CLIENT_VERSION = 3.4.0
OPTEE_CLIENT_SITE = $(call github,OP-TEE,optee_client,$(OPTEE_CLIENT_VERSION))
OPTEE_CLIENT_LICENSE = BSD-2-Clause
OPTEE_CLIENT_LICENSE_FILES = LICENSE
OPTEE_CLIENT_INSTALL_STAGING = YES
define OPTEE_CLIENT_INSTALL_INIT_SYSV
$(INSTALL) -m 0755 -D $(OPTEE_CLIENT_PKGDIR)/S30optee \
$(TARGET_DIR)/etc/init.d/S30optee
endef
$(eval $(cmake-package))