package/rng-tools: add systemd support for rngd

Add rngd.service for systemd. Also patch rngd with patch from Fedora to
ignore failure if no hwrng present:
https://bugzilla.redhat.com/show_bug.cgi?id=892178

[Thomas:
 - rename patch to the proper naming convention
 - add description and SoB to patch
 - install service file to /usr/lib/systemd and not /lib/systemd
 - use a relative symbolic link instead of an absolute one]

Signed-off-by: Maxim Mikityanskiy <maxtram95@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Maxim Mikityanskiy 2015-01-19 18:14:16 +02:00 committed by Thomas Petazzoni
parent d3230923e6
commit 22cb51e1a2
3 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,22 @@
Exit with a special value when RNG modules are not available
Instead of returning with an error, exit with a special value when the
RNG kernel modules are not present in the kernel. This is not really a
hard failure.
Patch borrowed from Fedora, at
http://pkgs.fedoraproject.org/cgit/rng-tools.git/tree/rngd-exit-code.patch.
Signed-off-by: Maxim Mikityanskiy <maxtram95@gmail.com>
--- a/rngd.c
+++ b/rngd.c
@@ -319,7 +319,7 @@ int main(int argc, char **argv)
message(LOG_DAEMON|LOG_ERR,
"Maybe RNG device modules are not loaded\n");
}
- return 1;
+ return 66;
}
if (arguments->verbose) {

View File

@ -21,4 +21,12 @@ else
RNG_TOOLS_CONF_OPTS += --without-libgcrypt
endif
define RNG_TOOLS_INSTALL_INIT_SYSTEMD
$(INSTALL) -D -m 644 package/rng-tools/rngd.service \
$(TARGET_DIR)/usr/lib/systemd/system/rngd.service
mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
ln -fs ../../../../usr/lib/systemd/system/rngd.service \
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/rngd.service
endef
$(eval $(autotools-package))

View File

@ -0,0 +1,9 @@
[Unit]
Description=Hardware RNG Entropy Gatherer Daemon
[Service]
ExecStart=/usr/sbin/rngd -f
SuccessExitStatus=66
[Install]
WantedBy=multi-user.target