rng-tools: Revert "rng-tools: move to meta-oe"

This reverts commit d2b445384d.

Revert this commit since:

 - some systems using oe-core master may still be using kernels from
   before 5.6 pulled in the rng-tools algorithm, and

 - some hardware platforms may not have a hardware random number generator
   and could therefore need to run rngd to avoid long boot-time initialization
   due to a depleted entropy pool.

(From OE-Core rev: 828afafb3bff54079fcba9bdab2ec87ac13e4ce6)

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Randy MacLeod
2024-01-18 11:59:35 -05:00
committed by Richard Purdie
parent 2ebe7f60fd
commit 09b69a69f5
5 changed files with 145 additions and 0 deletions

View File

@@ -739,6 +739,7 @@ RECIPE_MAINTAINER:pn-repo = "Unassigned <unassigned@yoctoproject.org>"
RECIPE_MAINTAINER:pn-resolvconf = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER:pn-rgb = "Unassigned <unassigned@yoctoproject.org>"
RECIPE_MAINTAINER:pn-rpcbind = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER:pn-rng-tools = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER:pn-rpcsvc-proto = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER:pn-rpm = "Unassigned <unassigned@yoctoproject.org>"
RECIPE_MAINTAINER:pn-rsync = "Yi Zhao <yi.zhao@windriver.com>"

View File

@@ -0,0 +1 @@
EXTRA_ARGS="-r /dev/hwrng"

View File

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

View File

@@ -0,0 +1,32 @@
[Unit]
Description=Hardware RNG Entropy Gatherer Daemon
DefaultDependencies=no
Conflicts=shutdown.target
Before=sysinit.target shutdown.target
ConditionVirtualization=!container
[Service]
EnvironmentFile=-@SYSCONFDIR@/default/rng-tools
ExecStart=@SBINDIR@/rngd -f $EXTRA_ARGS
CapabilityBoundingSet=CAP_SYS_ADMIN
IPAddressDeny=any
LockPersonality=yes
MemoryDenyWriteExecute=yes
NoNewPrivileges=yes
PrivateTmp=yes
ProtectControlGroups=yes
ProtectHome=yes
ProtectHostname=yes
ProtectKernelModules=yes
ProtectKernelLogs=yes
ProtectSystem=strict
RestrictAddressFamilies=AF_UNIX
RestrictNamespaces=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
SystemCallArchitectures=native
SystemCallErrorNumber=EPERM
SystemCallFilter=@system-service
[Install]
WantedBy=sysinit.target

View File

@@ -0,0 +1,69 @@
SUMMARY = "Random number generator daemon"
DESCRIPTION = "Check and feed random data from hardware device to kernel"
HOMEPAGE = "https://github.com/nhorman/rng-tools"
BUGTRACKER = "https://github.com/nhorman/rng-tools/issues"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS = "openssl libcap"
SRC_URI = "git://github.com/nhorman/rng-tools.git;branch=master;protocol=https \
file://init \
file://default \
file://rng-tools.service \
"
SRCREV = "e061c313b95890eb5fa0ada0cd6eec619dafdfe2"
S = "${WORKDIR}/git"
inherit autotools update-rc.d systemd pkgconfig
EXTRA_OECONF = "--without-rtlsdr"
PACKAGECONFIG ??= "libjitterentropy"
PACKAGECONFIG:libc-musl = "libargp libjitterentropy"
PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone,"
PACKAGECONFIG[libjitterentropy] = "--enable-jitterentropy,--disable-jitterentropy,libjitterentropy"
PACKAGECONFIG[libp11] = "--with-pkcs11,--without-pkcs11,libp11 openssl"
PACKAGECONFIG[nistbeacon] = "--with-nistbeacon,--without-nistbeacon,curl libxml2"
PACKAGECONFIG[qrypt] = "--with-qrypt,--without-qrypt,curl"
INITSCRIPT_PACKAGES = "${PN}-service"
INITSCRIPT_NAME:${PN}-service = "rng-tools"
INITSCRIPT_PARAMS:${PN}-service = "start 03 2 3 4 5 . stop 30 0 6 1 ."
SYSTEMD_PACKAGES = "${PN}-service"
SYSTEMD_SERVICE:${PN}-service = "rng-tools.service"
CFLAGS += " -DJENT_CONF_ENABLE_INTERNAL_TIMER "
PACKAGES =+ "${PN}-service"
FILES:${PN}-service += " \
${sysconfdir}/init.d/rng-tools \
${sysconfdir}/default/rng-tools \
"
# Refer autogen.sh in rng-tools
do_configure:prepend() {
cp ${S}/README.md ${S}/README
}
do_install:append() {
install -Dm 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools
install -Dm 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools
install -Dm 0644 ${WORKDIR}/rng-tools.service \
${D}${systemd_system_unitdir}/rng-tools.service
sed -i \
-e 's,@SYSCONFDIR@,${sysconfdir},g' \
-e 's,@SBINDIR@,${sbindir},g' \
${D}${sysconfdir}/init.d/rng-tools \
${D}${systemd_system_unitdir}/rng-tools.service
if [ "${@bb.utils.contains('PACKAGECONFIG', 'nistbeacon', 'yes', 'no', d)}" = "yes" ]; then
sed -i \
-e '/^IPAddressDeny=any/d' \
-e '/^RestrictAddressFamilies=/ s/$/ AF_INET AF_INET6/' \
${D}${systemd_system_unitdir}/rng-tools.service
fi
}