summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxim Mikityanskiy <maxtram95@gmail.com>2015-01-19 18:14:16 +0200
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2015-04-22 22:07:26 +0200
commit22cb51e1a2cdff07f220d7519d05934f6ce1bf2c (patch)
treea90851e182682ec501d2b039a875825295a1abec
parentd3230923e62f57cdefa90b5ffb9760f39c94718e (diff)
downloadbuildroot-22cb51e1a2cdff07f220d7519d05934f6ce1bf2c.tar.gz
buildroot-22cb51e1a2cdff07f220d7519d05934f6ce1bf2c.zip
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>
-rw-r--r--package/rng-tools/0001-rngd-exit-code.patch22
-rw-r--r--package/rng-tools/rng-tools.mk8
-rw-r--r--package/rng-tools/rngd.service9
3 files changed, 39 insertions, 0 deletions
diff --git a/package/rng-tools/0001-rngd-exit-code.patch b/package/rng-tools/0001-rngd-exit-code.patch
new file mode 100644
index 0000000000..709e20c70d
--- /dev/null
+++ b/package/rng-tools/0001-rngd-exit-code.patch
@@ -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) {
diff --git a/package/rng-tools/rng-tools.mk b/package/rng-tools/rng-tools.mk
index 5b89656e02..8648c4f878 100644
--- a/package/rng-tools/rng-tools.mk
+++ b/package/rng-tools/rng-tools.mk
@@ -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))
diff --git a/package/rng-tools/rngd.service b/package/rng-tools/rngd.service
new file mode 100644
index 0000000000..3bdc4c11a7
--- /dev/null
+++ b/package/rng-tools/rngd.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Hardware RNG Entropy Gatherer Daemon
+
+[Service]
+ExecStart=/usr/sbin/rngd -f
+SuccessExitStatus=66
+
+[Install]
+WantedBy=multi-user.target
OpenPOWER on IntegriCloud