blob: 0671824d1c8a6a023cfc42a1186507363d370b03 [file]
#
# Copyright OpenEmbedded Contributors
#
# SPDX-License-Identifier: MIT
#
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
DEPENDS += "json-c"
PV = "1.0"
SRC_URI = "\
file://cpp-example.cpp \
file://cpp-example-lib.hpp \
file://cpp-example-lib.cpp \
file://test-cpp-example.cpp \
file://cpp-example.conf \
file://config.h.in \
file://cpp-example.service \
file://cpp-example.init \
file://run-ptest \
"
S = "${UNPACKDIR}"
inherit ptest useradd systemd update-rc.d
# Systemd and SysV init support
SYSTEMD_SERVICE:${PN} = "${BPN}.service"
INITSCRIPT_NAME = "${BPN}"
INITSCRIPT_PARAMS = "defaults 99"
# Create cpp-example user and group
USERADD_PACKAGES = "${PN}"
GROUPADD_PARAM:${PN} = "--system ${BPN}"
USERADD_PARAM:${PN} = "--system --home /var/lib/${BPN} --no-create-home --shell /bin/false --gid ${BPN} ${BPN}"
EX_BINARY_NAME ?= "${BPN}"
do_install:append() {
# Install configuration file owned by the recipe's unprivileged user.
# Note: this requires static UIDs/GIDs (USERADDEXTENSION = "useradd-staticids")
# so that the UID embedded by pseudo during do_install matches the UID assigned
# in the final image. devtool deploy-target is a raw file copy and does not run
# pkg_postinst, so the UID in ${D} must already be correct.
install -d ${D}${sysconfdir}
install -m 0644 -g ${BPN} -o ${BPN} ${S}/cpp-example.conf ${D}${sysconfdir}/${BPN}.conf
sed -i -e 's|@BINARY_NAME@|${BPN}|g' ${D}${sysconfdir}/${BPN}.conf
# Install service files or init scripts and substitute placeholders in service files
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${systemd_system_unitdir}
install -m 0644 ${S}/cpp-example.service ${D}${systemd_system_unitdir}/${BPN}.service
sed -i \
-e 's|@BINDIR@|${bindir}|g' \
-e 's|@BINARY_NAME@|${EX_BINARY_NAME}|g' \
-e 's|@USER@|${BPN}|g' \
-e 's|@GROUP@|${BPN}|g' \
${D}${systemd_system_unitdir}/${BPN}.service
else
install -d ${D}${sysconfdir}/init.d
install -m 0755 ${S}/cpp-example.init ${D}${sysconfdir}/init.d/${BPN}
sed -i \
-e 's|@BINDIR@|${bindir}|g' \
-e 's|@BINARY_NAME@|${EX_BINARY_NAME}|g' \
-e 's|@USER@|${BPN}|g' \
-e 's|@GROUP@|${BPN}|g' \
${D}${sysconfdir}/init.d/${BPN}
fi
}
FILES:${PN} += " \
${systemd_system_unitdir}/${BPN}.service \
${sysconfdir}/${BPN}.conf \
"