linuxptp: Use templates for the systemd services

Use templates for the systemd services so that sbindir
and sysconfdir can be written into them, improving
portability.

Pass sbindir with EXTRA_OEMAKE and remove 'prefix' which
is redundant since we pass sbindir and mandir already.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Luca Fancellu 2023-10-18 12:20:59 +01:00 committed by Khem Raj
parent c8316b49ff
commit c66ec8776e
3 changed files with 12 additions and 7 deletions

View File

@ -7,7 +7,7 @@ Before=time-sync.target
[Service]
Type=simple
ExecStart=/usr/sbin/phc2sys -w -s %I
ExecStart=@SBINDIR@/phc2sys -w -s %I
[Install]
WantedBy=multi-user.target

View File

@ -5,7 +5,7 @@ After=sys-subsystem-net-devices-%i.device
[Service]
Type=simple
ExecStart=/usr/sbin/ptp4l -f /etc/linuxptp/ptp4l.conf -i %I
ExecStart=@SBINDIR@/ptp4l -f @SYSCONFDIR@/linuxptp/ptp4l.conf -i %I
[Install]
WantedBy=multi-user.target

View File

@ -10,8 +10,8 @@ LINUXPTP_SRC_URI = "http://sourceforge.net/projects/linuxptp"
SRC_URI = "${LINUXPTP_SRC_URI}/files/v4.1/linuxptp-${PV}.tgz \
file://0001-include-string.h-for-strncpy.patch \
file://0002-linuxptp-Use-CC-in-incdefs.sh.patch \
file://systemd/phc2sys@.service \
file://systemd/ptp4l@.service \
file://systemd/phc2sys@.service.in \
file://systemd/ptp4l@.service.in \
"
SRC_URI[md5sum] = "1db8699fc155965341759be5e5aad938"
@ -22,14 +22,15 @@ inherit systemd
UPSTREAM_CHECK_URI = "${LINUXPTP_SRC_URI}/files/"
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
EXTRA_OEMAKE = "CC='${CC}' EXTRA_CFLAGS='${CFLAGS}' mandir='${mandir}'"
EXTRA_OEMAKE = "CC='${CC}' EXTRA_CFLAGS='${CFLAGS}' mandir='${mandir}' \
sbindir='${sbindir}'"
export KBUILD_OUTPUT="${RECIPE_SYSROOT}"
LINUXPTP_SYSTEMD_SERVICES = "phc2sys@.service ptp4l@.service"
do_install() {
oe_runmake install DESTDIR=${D} prefix=${prefix}
oe_runmake install DESTDIR=${D}
# Install example configs from source tree
install -d ${D}${docdir}/${PN}
@ -44,7 +45,11 @@ do_install() {
# Install systemd services
install -d ${D}/${systemd_unitdir}/system/
for service in ${LINUXPTP_SYSTEMD_SERVICES}; do
install -m 644 ${WORKDIR}/systemd/$service \
sed -i -e 's,@SBINDIR@,${sbindir},g' \
${WORKDIR}/systemd/$service.in
sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \
${WORKDIR}/systemd/$service.in
install -m 644 ${WORKDIR}/systemd/$service.in \
${D}/${systemd_unitdir}/system/$service
done
}