Commit 22cb51e1 authored by Maxim Mikityanskiy's avatar Maxim Mikityanskiy Committed by Thomas Petazzoni
Browse files

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: default avatarMaxim Mikityanskiy <maxtram95@gmail.com>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent d3230923
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
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) {
+8 −0
Original line number Diff line number Diff line
@@ -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))
+9 −0
Original line number Diff line number Diff line
[Unit]
Description=Hardware RNG Entropy Gatherer Daemon

[Service]
ExecStart=/usr/sbin/rngd -f
SuccessExitStatus=66

[Install]
WantedBy=multi-user.target