diff mbox

[16/16] package/rng-tools: add systemd support for rngd

Message ID 1421684056-5266-17-git-send-email-maxtram95@gmail.com
State Accepted
Headers show

Commit Message

Maxim Mikityanskiy Jan. 19, 2015, 4:14 p.m. UTC
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

Signed-off-by: Maxim Mikityanskiy <maxtram95@gmail.com>
---
 package/rng-tools/rng-tools.mk         |  8 ++++++++
 package/rng-tools/rngd-exit-code.patch | 11 +++++++++++
 package/rng-tools/rngd.service         |  9 +++++++++
 3 files changed, 28 insertions(+)
 create mode 100644 package/rng-tools/rngd-exit-code.patch
 create mode 100644 package/rng-tools/rngd.service

Comments

Samuel Martin Feb. 2, 2015, 5:12 p.m. UTC | #1
Hi Maxim,

On Mon, Jan 19, 2015 at 5:14 PM, Maxim Mikityanskiy <maxtram95@gmail.com> wrote:
> 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
>
> Signed-off-by: Maxim Mikityanskiy <maxtram95@gmail.com>
> ---
>  package/rng-tools/rng-tools.mk         |  8 ++++++++
>  package/rng-tools/rngd-exit-code.patch | 11 +++++++++++
>  package/rng-tools/rngd.service         |  9 +++++++++
>  3 files changed, 28 insertions(+)
>  create mode 100644 package/rng-tools/rngd-exit-code.patch
>  create mode 100644 package/rng-tools/rngd.service
>
> diff --git a/package/rng-tools/rng-tools.mk b/package/rng-tools/rng-tools.mk
> index 5b89656..13352cc 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)/lib/systemd/system/rngd.service
> +       mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
> +       ln -fs /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-exit-code.patch b/package/rng-tools/rngd-exit-code.patch
> new file mode 100644
> index 0000000..5f87161
> --- /dev/null
> +++ b/package/rng-tools/rngd-exit-code.patch

Few comments about the patch:
- patch filename should follow what `git format-patch` generates, so
something 0001-<some description>.patch;
- patch should have a non-empty description and sob-line.

Check [1] for detailed package's patch requirements.

> @@ -0,0 +1,11 @@
> +--- 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/rngd.service b/package/rng-tools/rngd.service
> new file mode 100644
> index 0000000..3bdc4c1
> --- /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
> --
> 2.2.1
>

[1] http://nightly.buildroot.org/manual.html#patch-policy

Regards,
Thomas Petazzoni April 22, 2015, 8:10 p.m. UTC | #2
Dear Maxim Mikityanskiy,

On Mon, 19 Jan 2015 18:14:16 +0200, Maxim Mikityanskiy wrote:
> 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
> 
> Signed-off-by: Maxim Mikityanskiy <maxtram95@gmail.com>
> ---
>  package/rng-tools/rng-tools.mk         |  8 ++++++++
>  package/rng-tools/rngd-exit-code.patch | 11 +++++++++++
>  package/rng-tools/rngd.service         |  9 +++++++++
>  3 files changed, 28 insertions(+)
>  create mode 100644 package/rng-tools/rngd-exit-code.patch
>  create mode 100644 package/rng-tools/rngd.service

Applied, after doing a number of changes:

    [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]

Thanks,

Thomas
diff mbox

Patch

diff --git a/package/rng-tools/rng-tools.mk b/package/rng-tools/rng-tools.mk
index 5b89656..13352cc 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)/lib/systemd/system/rngd.service
+	mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
+	ln -fs /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-exit-code.patch b/package/rng-tools/rngd-exit-code.patch
new file mode 100644
index 0000000..5f87161
--- /dev/null
+++ b/package/rng-tools/rngd-exit-code.patch
@@ -0,0 +1,11 @@ 
+--- 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/rngd.service b/package/rng-tools/rngd.service
new file mode 100644
index 0000000..3bdc4c1
--- /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