From d1255ee8fe064e8dc145c8bb2b794dc75c7f600f Mon Sep 17 00:00:00 2001 From: Joshua Watt Date: Thu, 21 May 2020 09:22:58 -0500 Subject: [PATCH] optee-client: Add sysVinit service Adds a sysVinit service to start tee-supplicant so that the optee-client package can be used on distros where systemd is not used. Also does some cleanup of the recipe including: 1) Using @path@ tokens for replacemane in the .service file instead of paths 2) Replacing tokens in the .service file after it is installed instead of editing the source file in ${WORKDIR} Signed-off-by: Joshua Watt Reviewed-by: Diego Sueiro Reviewed-by: Denys Dmytriyenko Signed-off-by: Jon Mason --- .../optee/optee-client/tee-supplicant.service | 4 +- .../optee/optee-client/tee-supplicant.sh | 46 +++++++++++++++++++ .../optee/optee-client_git.bb | 24 +++++++--- 3 files changed, 65 insertions(+), 9 deletions(-) create mode 100644 meta-arm/recipes-security/optee/optee-client/tee-supplicant.sh diff --git a/meta-arm/recipes-security/optee/optee-client/tee-supplicant.service b/meta-arm/recipes-security/optee/optee-client/tee-supplicant.service index ffb54d39..c273832d 100644 --- a/meta-arm/recipes-security/optee/optee-client/tee-supplicant.service +++ b/meta-arm/recipes-security/optee/optee-client/tee-supplicant.service @@ -3,8 +3,8 @@ Description=TEE Supplicant [Service] User=root -EnvironmentFile=-/etc/default/tee-supplicant -ExecStart=/usr/sbin/tee-supplicant $OPTARGS +EnvironmentFile=-@sysconfdir@/default/tee-supplicant +ExecStart=@sbindir@/tee-supplicant $OPTARGS [Install] WantedBy=basic.target diff --git a/meta-arm/recipes-security/optee/optee-client/tee-supplicant.sh b/meta-arm/recipes-security/optee/optee-client/tee-supplicant.sh new file mode 100644 index 00000000..b4d21950 --- /dev/null +++ b/meta-arm/recipes-security/optee/optee-client/tee-supplicant.sh @@ -0,0 +1,46 @@ +#!/bin/sh + +# Source function library +. /etc/init.d/functions + +NAME=tee-supplicant +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DESC="OP-TEE Supplicant" + +DAEMON=@sbindir@/$NAME + +test -f $DAEMON || exit 0 + +test -f @sysconfdir@/default/$NAME && . @sysconfdir@/default/$NAME +test -f @sysconfdir@/default/rcS && . @sysconfdir@/default/rcS + +SSD_OPTIONS="--oknodo --quiet --exec $DAEMON -- -d $OPTARGS" + +set -e + +case $1 in + start) + echo -n "Starting $DESC: " + start-stop-daemon --start $SSD_OPTIONS + echo "${DAEMON##*/}." + ;; + stop) + echo -n "Stopping $DESC: " + start-stop-daemon --stop $SSD_OPTIONS + echo "${DAEMON##*/}." + ;; + restart|force-reload) + $0 stop + sleep 1 + $0 start + ;; + status) + status ${DAEMON} || exit $? + ;; + *) + echo "Usage: $0 {start|stop|restart|force-reload|status}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/meta-arm/recipes-security/optee/optee-client_git.bb b/meta-arm/recipes-security/optee/optee-client_git.bb index 64d7d57a..5dbbfe92 100644 --- a/meta-arm/recipes-security/optee/optee-client_git.bb +++ b/meta-arm/recipes-security/optee/optee-client_git.bb @@ -9,19 +9,18 @@ PV = "3.8.0+git${SRCPV}" require optee.inc -inherit python3native systemd +inherit python3native systemd update-rc.d SRCREV = "be4fa2e36f717f03ca46e574aa66f697a897d090" SRC_URI = " \ git://github.com/OP-TEE/optee_client.git \ file://tee-supplicant.service \ + file://tee-supplicant.sh \ " S = "${WORKDIR}/git" B = "${WORKDIR}/build" -SYSTEMD_SERVICE_${PN} = "tee-supplicant.service" - EXTRA_OEMAKE = "O=${B}" do_compile() { @@ -43,9 +42,20 @@ do_install() { install -d ${D}${includedir} install -p -m0644 ${B}/export/usr/include/*.h ${D}${includedir} - sed -i -e s:/etc:${sysconfdir}:g \ - -e s:/usr/bin:${bindir}:g \ - ${WORKDIR}/tee-supplicant.service - install -D -p -m0644 ${WORKDIR}/tee-supplicant.service ${D}${systemd_system_unitdir}/tee-supplicant.service + + install -D -p -m0755 ${WORKDIR}/tee-supplicant.sh ${D}${sysconfdir}/init.d/tee-supplicant + + sed -i -e s:@sysconfdir@:${sysconfdir}:g \ + -e s:@sbindir@:${sbindir}:g \ + ${D}${systemd_system_unitdir}/tee-supplicant.service \ + ${D}${sysconfdir}/init.d/tee-supplicant } + +SYSTEMD_SERVICE_${PN} = "tee-supplicant.service" + +INITSCRIPT_PACKAGES = "${PN}" + +INITSCRIPT_NAME_${PN} = "tee-supplicant" +INITSCRIPT_PARAMS_${PN} = "start 10 1 2 3 4 5 . stop 90 0 6 ." +