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

Samuel Martin s.martin49 at gmail.com
Mon Feb 2 17:12:00 UTC 2015


Hi Maxim,

On Mon, Jan 19, 2015 at 5:14 PM, Maxim Mikityanskiy <maxtram95 at 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 at 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,


-- 
Samuel


More information about the buildroot mailing list