Hei hei, tested this without systemd on top of a recent ptxdist 2017.06.0 based BSP with the sysv init script from buildroot. The usual 'random: crng init done' message on the serial konsole comes a lot earlier now, so I guess it works. ;-) Besides: is there any way to have this random generator stuff certainly ready before generating dropbear keys (rc-once)? Greets Alex Tested-by: Alexander Dahl On Thu, Jun 29, 2017 at 11:49:26PM +0200, Robert Schwebel wrote: > Add the haveged package. > > Signed-off-by: Robert Schwebel > --- > ....ac-fix-handling-for-enable-clock_gettime.patch | 26 ++++++++ > .../0002-init-fix-path-for-systemd-unit-dir.patch | 24 +++++++ > ...nstallation-of-systemd-unit-file-DESTDIR-.patch | 28 ++++++++ > ...akefile.am-create-nonexisting-directories.patch | 31 +++++++++ > ...file.am-do-not-call-systemd-during-compil.patch | 29 +++++++++ > patches/haveged-1.9.1/autogen.sh | 1 + > patches/haveged-1.9.1/series | 8 +++ > rules/haveged.in | 7 ++ > rules/haveged.make | 76 ++++++++++++++++++++++ > 9 files changed, 230 insertions(+) > create mode 100644 patches/haveged-1.9.1/0001-configure.ac-fix-handling-for-enable-clock_gettime.patch > create mode 100644 patches/haveged-1.9.1/0002-init-fix-path-for-systemd-unit-dir.patch > create mode 100644 patches/haveged-1.9.1/0003-init-make-installation-of-systemd-unit-file-DESTDIR-.patch > create mode 100644 patches/haveged-1.9.1/0004-init.d-Makefile.am-create-nonexisting-directories.patch > create mode 100644 patches/haveged-1.9.1/0005-init.d-Makefile.am-do-not-call-systemd-during-compil.patch > create mode 120000 patches/haveged-1.9.1/autogen.sh > create mode 100644 patches/haveged-1.9.1/series > create mode 100644 rules/haveged.in > create mode 100644 rules/haveged.make > > diff --git a/patches/haveged-1.9.1/0001-configure.ac-fix-handling-for-enable-clock_gettime.patch b/patches/haveged-1.9.1/0001-configure.ac-fix-handling-for-enable-clock_gettime.patch > new file mode 100644 > index 000000000..20a34b466 > --- /dev/null > +++ b/patches/haveged-1.9.1/0001-configure.ac-fix-handling-for-enable-clock_gettime.patch > @@ -0,0 +1,26 @@ > +From: Robert Schwebel > +Date: Thu, 29 Jun 2017 22:30:34 +0200 > +Subject: [PATCH] configure.ac: fix handling for --enable-clock_gettime > + > +The logic for this configure option is broken; on ARM, we fall into the > +*) path and the logic decides that this option is not set, no matter if > +we set it or not. > + > +Signed-off-by: Robert Schwebel > +--- > + configure.ac | 2 ++ > + 1 file changed, 2 insertions(+) > + > +diff --git a/configure.ac b/configure.ac > +index f8d76c106014..e4f17a80d876 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -175,6 +175,8 @@ case "$host" in > + *) > + if test "x$enable_clock_gettime" = "xx"; then > + enable_clock_gettime="yes" > ++ elif test "x$enable_clock_gettime" = "xyes"; then > ++ enable_clock_gettime="yes" > + else > + AC_MSG_ERROR([no timer source for host :"$host".]) > + fi > diff --git a/patches/haveged-1.9.1/0002-init-fix-path-for-systemd-unit-dir.patch b/patches/haveged-1.9.1/0002-init-fix-path-for-systemd-unit-dir.patch > new file mode 100644 > index 000000000..6ae95fbb5 > --- /dev/null > +++ b/patches/haveged-1.9.1/0002-init-fix-path-for-systemd-unit-dir.patch > @@ -0,0 +1,24 @@ > +From: Robert Schwebel > +Date: Thu, 29 Jun 2017 22:53:16 +0200 > +Subject: [PATCH] init: fix path for systemd unit dir > + > +This branch was obviously not tested. > + > +Signed-off-by: Robert Schwebel > +--- > + init.d/Makefile.am | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/init.d/Makefile.am b/init.d/Makefile.am > +index ca3ad1c1e854..bf86773176a6 100644 > +--- a/init.d/Makefile.am > ++++ b/init.d/Makefile.am > +@@ -37,7 +37,7 @@ install-data-hook: > + if ENABLE_SYSTEMD_LOOKUP > + install -p -m644 haveged.service `pkg-config --variable=systemdsystemunitdir systemd`/haveged.service; > + else > +- install -p -m644 haveged.service ($unit_dir)/haveged.service; > ++ install -p -m644 haveged.service $(unit_dir)/haveged.service; > + endif > + systemctl enable haveged.service; > + > diff --git a/patches/haveged-1.9.1/0003-init-make-installation-of-systemd-unit-file-DESTDIR-.patch b/patches/haveged-1.9.1/0003-init-make-installation-of-systemd-unit-file-DESTDIR-.patch > new file mode 100644 > index 000000000..5a536871a > --- /dev/null > +++ b/patches/haveged-1.9.1/0003-init-make-installation-of-systemd-unit-file-DESTDIR-.patch > @@ -0,0 +1,28 @@ > +From: Robert Schwebel > +Date: Thu, 29 Jun 2017 22:54:11 +0200 > +Subject: [PATCH] init: make installation of systemd unit file DESTDIR aware > + > +The installation currently does not care about a DESTDIR, which is > +imporant when cross compiling. > + > +Signed-off-by: Robert Schwebel > +--- > + init.d/Makefile.am | 4 ++-- > + 1 file changed, 2 insertions(+), 2 deletions(-) > + > +diff --git a/init.d/Makefile.am b/init.d/Makefile.am > +index bf86773176a6..2f92cb7fdde4 100644 > +--- a/init.d/Makefile.am > ++++ b/init.d/Makefile.am > +@@ -35,9 +35,9 @@ install-exec-hook: > + > + install-data-hook: > + if ENABLE_SYSTEMD_LOOKUP > +- install -p -m644 haveged.service `pkg-config --variable=systemdsystemunitdir systemd`/haveged.service; > ++ install -p -m644 haveged.service $(DESTDIR)`pkg-config --variable=systemdsystemunitdir systemd`/haveged.service; > + else > +- install -p -m644 haveged.service $(unit_dir)/haveged.service; > ++ install -p -m644 haveged.service $(DESTDIR)$(unit_dir)/haveged.service; > + endif > + systemctl enable haveged.service; > + > diff --git a/patches/haveged-1.9.1/0004-init.d-Makefile.am-create-nonexisting-directories.patch b/patches/haveged-1.9.1/0004-init.d-Makefile.am-create-nonexisting-directories.patch > new file mode 100644 > index 000000000..6f693b000 > --- /dev/null > +++ b/patches/haveged-1.9.1/0004-init.d-Makefile.am-create-nonexisting-directories.patch > @@ -0,0 +1,31 @@ > +From: Robert Schwebel > +Date: Thu, 29 Jun 2017 22:59:46 +0200 > +Subject: [PATCH] init.d/Makefile.am: create nonexisting directories > + > +install can't assume that all leading directories do already exist. > +While this will in most cases be true on normal desktop/server > +distributions, cross build systems or systems that build single packages > +will build into a fresh hierarchy. Add -D to install, in order to create > +the leading directories. > + > +Signed-off-by: Robert Schwebel > +--- > + init.d/Makefile.am | 4 ++-- > + 1 file changed, 2 insertions(+), 2 deletions(-) > + > +diff --git a/init.d/Makefile.am b/init.d/Makefile.am > +index 2f92cb7fdde4..4a6e551f0b51 100644 > +--- a/init.d/Makefile.am > ++++ b/init.d/Makefile.am > +@@ -35,9 +35,9 @@ install-exec-hook: > + > + install-data-hook: > + if ENABLE_SYSTEMD_LOOKUP > +- install -p -m644 haveged.service $(DESTDIR)`pkg-config --variable=systemdsystemunitdir systemd`/haveged.service; > ++ install -p -D -m644 haveged.service $(DESTDIR)`pkg-config --variable=systemdsystemunitdir systemd`/haveged.service; > + else > +- install -p -m644 haveged.service $(DESTDIR)$(unit_dir)/haveged.service; > ++ install -p -D -m644 haveged.service $(DESTDIR)$(unit_dir)/haveged.service; > + endif > + systemctl enable haveged.service; > + > diff --git a/patches/haveged-1.9.1/0005-init.d-Makefile.am-do-not-call-systemd-during-compil.patch b/patches/haveged-1.9.1/0005-init.d-Makefile.am-do-not-call-systemd-during-compil.patch > new file mode 100644 > index 000000000..359708a18 > --- /dev/null > +++ b/patches/haveged-1.9.1/0005-init.d-Makefile.am-do-not-call-systemd-during-compil.patch > @@ -0,0 +1,29 @@ > +From: Robert Schwebel > +Date: Thu, 29 Jun 2017 23:03:06 +0200 > +Subject: [PATCH] init.d/Makefile.am: do not call systemd during compilation > + > +Remove systemd call: we can not assume that the user is allowed to do > +so: he might not if he compiles the software as non-root. > + > +When cross-compiling, the intended systemd might not even run on the > +same hardware. > + > +We better leave the decision whether or not to call systemd to the > +administrator. > + > +Signed-off-by: Robert Schwebel > +--- > + init.d/Makefile.am | 2 -- > + 1 file changed, 2 deletions(-) > + > +diff --git a/init.d/Makefile.am b/init.d/Makefile.am > +index 4a6e551f0b51..efb01e3c8aab 100644 > +--- a/init.d/Makefile.am > ++++ b/init.d/Makefile.am > +@@ -39,6 +39,4 @@ if ENABLE_SYSTEMD_LOOKUP > + else > + install -p -D -m644 haveged.service $(DESTDIR)$(unit_dir)/haveged.service; > + endif > +- systemctl enable haveged.service; > +- > + endif > diff --git a/patches/haveged-1.9.1/autogen.sh b/patches/haveged-1.9.1/autogen.sh > new file mode 120000 > index 000000000..9f8a4cb7d > --- /dev/null > +++ b/patches/haveged-1.9.1/autogen.sh > @@ -0,0 +1 @@ > +../autogen.sh > \ No newline at end of file > diff --git a/patches/haveged-1.9.1/series b/patches/haveged-1.9.1/series > new file mode 100644 > index 000000000..0e24f4d6b > --- /dev/null > +++ b/patches/haveged-1.9.1/series > @@ -0,0 +1,8 @@ > +# generated by git-ptx-patches > +#tag:base --start-number 1 > +0001-configure.ac-fix-handling-for-enable-clock_gettime.patch > +0002-init-fix-path-for-systemd-unit-dir.patch > +0003-init-make-installation-of-systemd-unit-file-DESTDIR-.patch > +0004-init.d-Makefile.am-create-nonexisting-directories.patch > +0005-init.d-Makefile.am-do-not-call-systemd-during-compil.patch > +# d6dc334689ded00c3e697eb3fe83b57a - git-ptx-patches magic > diff --git a/rules/haveged.in b/rules/haveged.in > new file mode 100644 > index 000000000..9a8a59702 > --- /dev/null > +++ b/rules/haveged.in > @@ -0,0 +1,7 @@ > +## SECTION=networking > + > +config HAVEGED > + tristate > + prompt "haveged" > + help > + haveged is a simple entropy daemon > diff --git a/rules/haveged.make b/rules/haveged.make > new file mode 100644 > index 000000000..0ef3559e6 > --- /dev/null > +++ b/rules/haveged.make > @@ -0,0 +1,76 @@ > +# -*-makefile-*- > +# > +# Copyright (C) 2017 by Robert Schwebel > +# > +# See CREDITS for details about who has contributed to this project. > +# > +# For further information about the PTXdist project and license conditions > +# see the README file. > +# > + > +# > +# We provide this package > +# > +PACKAGES-$(PTXCONF_HAVEGED) += haveged > + > +# > +# Paths and names > +# > +HAVEGED_VERSION := 1.9.1 > +HAVEGED_MD5 := 015ff58cd10607db0e0de60aeca2f5f8 > +HAVEGED := haveged-$(HAVEGED_VERSION) > +HAVEGED_SUFFIX := tar.gz > +HAVEGED_URL := http://www.issihosts.com/haveged/$(HAVEGED).$(HAVEGED_SUFFIX) > +HAVEGED_SOURCE := $(SRCDIR)/$(HAVEGED).$(HAVEGED_SUFFIX) > +HAVEGED_DIR := $(BUILDDIR)/$(HAVEGED) > +HAVEGED_LICENSE := GPL-3.0 > + > +# ---------------------------------------------------------------------------- > +# Prepare > +# ---------------------------------------------------------------------------- > + > +# > +# autoconf > +# > +HAVEGED_CONF_TOOL := autoconf > +HAVEGED_CONF_OPT := \ > + $(CROSS_AUTOCONF_USR) \ > + --enable-clock_gettime \ > + --enable-daemon=yes \ > + --enable-diagnostic=no \ > + --enable-init=service.fedora \ > + --enable-initdir=? \ > + --enable-nistest=no \ > + --enable-olt=no \ > + --enable-threads=no \ > + --enable-tune=yes > + > +# ---------------------------------------------------------------------------- > +# Target-Install > +# ---------------------------------------------------------------------------- > + > +$(STATEDIR)/haveged.targetinstall: > + @$(call targetinfo) > + > + @$(call install_init, haveged) > + @$(call install_fixup, haveged,PRIORITY,optional) > + @$(call install_fixup, haveged,SECTION,base) > + @$(call install_fixup, haveged,AUTHOR,"Robert Schwebel ") > + @$(call install_fixup, haveged,DESCRIPTION,missing) > + > + @$(call install_lib, haveged, 0, 0, 0644, libhavege) > + @$(call install_copy, haveged, 0, 0, 0755, -, /usr/sbin/haveged) > + > +ifdef PTXCONF_INITMETHOD_SYSTEMD > + @$(call install_copy, haveged, 0, 0, 0644, -, /usr/lib/systemd/system/haveged.service) > + @$(call install_link, haveged, \ > + ../haveged.service, \ > + /usr/lib/systemd/system/multi-user.target.wants/haveged.service \ > + ) > +endif > + > + @$(call install_finish, haveged) > + > + @$(call touch) > + > +# vim: syntax=make > -- > 2.13.2 > > > _______________________________________________ > ptxdist mailing list > ptxdist@pengutronix.de -- »With the first link, the chain is forged. The first speech censured, the first thought forbidden, the first freedom denied, chains us all irrevocably.« (Jean-Luc Picard, quoting Judge Aaron Satie) *** GnuPG-FP: C28E E6B9 0263 95CF 8FAF 08FA 34AD CD00 7221 5CC6 ***