rng-tools: harmonise systemd and sysvinit

this commit will permit to read the option from
/etc/default/rng-tools both from systemd and sysvinit unit file.

(From OE-Core rev: 16ced1a253c74c01ca414db2f1a010c083213b91)

Signed-off-by: Nicola Lunghi <nick83ola@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Nicola Lunghi
2019-06-12 14:00:05 +01:00
committed by Richard Purdie
parent e00d88475d
commit 6f7eaf80f7
4 changed files with 19 additions and 32 deletions

View File

@@ -1,2 +1 @@
# Specify rng device EXTRA_ARGS="-r /dev/hwrng"
RNG_DEVICE=/dev/hwrng

View File

@@ -1,26 +1,19 @@
#! /bin/sh #!/bin/sh
# #
# This is an init script for openembedded # This is an init script for openembedded
# Copy it to /etc/init.d/rng-tools and type # Copy it to @SYSCONFDIR@/init.d/rng-tools and type
# > update-rc.d rng-tools defaults 60 # > update-rc.d rng-tools defaults 60
# #
rngd=/usr/sbin/rngd rngd=@SBINDIR@/rngd
test -x "$rngd" || exit 1 test -x "$rngd" || exit 1
if [ -e /etc/default/rng-tools ]; then [ -r @SYSCONFDIR@/default/rng-tools ] && . "@SYSCONFDIR@/default/rng-tools"
. /etc/default/rng-tools
fi
if [ -n "$RNG_DEVICE" ]; then
EXTRA_ARGS="-- -r $RNG_DEVICE"
fi
case "$1" in case "$1" in
start) start)
echo -n "Starting random number generator daemon" echo -n "Starting random number generator daemon"
start-stop-daemon -S -q -x $rngd $EXTRA_ARGS start-stop-daemon -S -q -x $rngd -- $EXTRA_ARGS
echo "." echo "."
;; ;;
stop) stop)
@@ -38,11 +31,11 @@ case "$1" in
start-stop-daemon -K -q -n rngd start-stop-daemon -K -q -n rngd
echo "." echo "."
echo -n "Starting random number generator daemon" echo -n "Starting random number generator daemon"
start-stop-daemon -S -q -x $rngd $EXTRA_ARGS start-stop-daemon -S -q -x $rngd -- $EXTRA_ARGS
echo "." echo "."
;; ;;
*) *)
echo "Usage: /etc/init.d/rng-tools {start|stop|reload|restart|force-reload}" echo "Usage: @SYSCONFDIR@/init.d/rng-tools {start|stop|reload|restart|force-reload}"
exit 1 exit 1
esac esac

View File

@@ -5,8 +5,8 @@ After=systemd-udev-settle.service
Before=sysinit.target Before=sysinit.target
[Service] [Service]
ExecStart=@SBINDIR@/rngd -f -r /dev/hwrng EnvironmentFile=-@SYSCONFDIR@/default/rng-tools
SuccessExitStatus=66 ExecStart=@SBINDIR@/rngd -f $EXTRA_ARGS
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@@ -44,18 +44,13 @@ do_configure_prepend() {
} }
do_install_append() { do_install_append() {
install -d "${D}${sysconfdir}/init.d" install -Dm 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools
install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools install -Dm 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools
sed -i -e 's,/etc/,${sysconfdir}/,' -e 's,/usr/sbin/,${sbindir}/,' \ install -Dm 0644 ${WORKDIR}/rngd.service \
${D}${sysconfdir}/init.d/rng-tools ${D}${systemd_system_unitdir}/rngd.service
sed -i \
# Only install the default script when 'sysvinit' is in DISTRO_FEATURES. -e 's,@SYSCONFDIR@,${sysconfdir},' \
if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then -e 's,@SBINDIR@,${sbindir},' \
install -d "${D}${sysconfdir}/default" ${D}${sysconfdir}/init.d/rng-tools \
install -m 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools ${D}${systemd_system_unitdir}/rngd.service
fi
install -d ${D}${systemd_unitdir}/system
install -m 644 ${WORKDIR}/rngd.service ${D}${systemd_unitdir}/system
sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/rngd.service
} }