Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH v2 1/3] rng-tools: recipe cleanup
@ 2019-06-06 15:18 Nicola Lunghi
  2019-06-06 15:18 ` [PATCH v2 2/3] rng-tools: 6.6->6.7 Nicola Lunghi
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Nicola Lunghi @ 2019-06-06 15:18 UTC (permalink / raw)
  To: openembedded-core

- add missing DESCRIPTION, AUTHOR, HOMEPAGE
- cleanup DEPENDS
- fix variable ordering as per https://www.openembedded.org/wiki/Styleguide
- remove unneeded checks for systemd, sysvinit in do_install

Signed-off-by: Nicola Lunghi <nick83ola@gmail.com>
---
 .../rng-tools/rng-tools_6.6.bb                | 63 ++++++++++---------
 1 file changed, 33 insertions(+), 30 deletions(-)

diff --git a/meta/recipes-support/rng-tools/rng-tools_6.6.bb b/meta/recipes-support/rng-tools/rng-tools_6.6.bb
index 6796c9be9e..41959a2695 100644
--- a/meta/recipes-support/rng-tools/rng-tools_6.6.bb
+++ b/meta/recipes-support/rng-tools/rng-tools_6.6.bb
@@ -1,58 +1,61 @@
 SUMMARY = "Random number generator daemon"
+DESCRIPTION = "Check and feed random data from hardware device to kernel"
+AUTHOR = "Philipp Rumpf, Jeff Garzik <jgarzik@pobox.com>, \
+          Henrique de Moraes Holschuh <hmh@debian.org>"
+HOMEPAGE = "https://github.com/nhorman/rng-tools"
+BUGTRACKER = "https://github.com/nhorman/rng-tools/issues"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "git://github.com/nhorman/rng-tools.git \
-           file://0001-If-the-libc-is-lacking-argp-use-libargp.patch \
-           file://0002-Add-argument-to-control-the-libargp-dependency.patch \
-           file://underquote.patch \
-           file://rng-tools-5-fix-textrels-on-PIC-x86.patch \
-           file://0001-configure.ac-fix-typo.patch \
-           file://init \
-           file://default \
-           file://rngd.service \
+DEPENDS = "sysfsutils"
+
+SRC_URI = "\
+    git://github.com/nhorman/rng-tools.git \
+    file://0001-If-the-libc-is-lacking-argp-use-libargp.patch \
+    file://0002-Add-argument-to-control-the-libargp-dependency.patch \
+    file://underquote.patch \
+    file://rng-tools-5-fix-textrels-on-PIC-x86.patch \
+    file://0001-configure.ac-fix-typo.patch \
+    file://init \
+    file://default \
+    file://rngd.service \
 "
 SRCREV = "4ebc21d6f387bb7b4b3f6badc429e27b21c0a6ee"
+
 S = "${WORKDIR}/git"
 
 inherit autotools update-rc.d systemd pkgconfig
 
-DEPENDS = " \
-           sysfsutils \
-          "
-
 PACKAGECONFIG ??= "libgcrypt libjitterentropy"
 PACKAGECONFIG_libc-musl = "libargp libjitterentropy"
+
 PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone,"
 PACKAGECONFIG[libgcrypt] = "--with-libgcrypt,--without-libgcrypt,libgcrypt,"
 PACKAGECONFIG[libjitterentropy] = "--enable-jitterentropy,--disable-jitterentropy,libjitterentropy"
 PACKAGECONFIG[nistbeacon] = "--with-nistbeacon,--without-nistbeacon,curl libxml2 openssl"
 
+INITSCRIPT_NAME = "rng-tools"
+INITSCRIPT_PARAMS = "start 03 2 3 4 5 . stop 30 0 6 1 ."
+
+SYSTEMD_SERVICE_${PN} = "rngd.service"
+
 # Refer autogen.sh in rng-tools
 do_configure_prepend() {
     cp ${S}/README.md ${S}/README
 }
 
 do_install_append() {
-    # Only install the init script when 'sysvinit' is in DISTRO_FEATURES.
-    if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
-        install -d "${D}${sysconfdir}/init.d"
-        install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools
-        sed -i -e 's,/etc/,${sysconfdir}/,' -e 's,/usr/sbin/,${sbindir}/,' \
-            ${D}${sysconfdir}/init.d/rng-tools
+    install -d "${D}${sysconfdir}/init.d"
+    install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools
+    sed -i -e 's,/etc/,${sysconfdir}/,' -e 's,/usr/sbin/,${sbindir}/,' \
+        ${D}${sysconfdir}/init.d/rng-tools
 
+    # Only install the default script when 'sysvinit' is in DISTRO_FEATURES.
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
         install -d "${D}${sysconfdir}/default"
         install -m 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools
     fi
 
-    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
-        install -d ${D}${systemd_unitdir}/system
-        install -m 644 ${WORKDIR}/rngd.service ${D}${systemd_unitdir}/system
-        sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/rngd.service
-    fi
+    install -d ${D}${systemd_unitdir}/system
+    install -m 644 ${WORKDIR}/rngd.service ${D}${systemd_unitdir}/system
+    sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/rngd.service
 }
-
-INITSCRIPT_NAME = "rng-tools"
-INITSCRIPT_PARAMS = "start 03 2 3 4 5 . stop 30 0 6 1 ."
-
-SYSTEMD_SERVICE_${PN} = "rngd.service"
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 2/3] rng-tools: 6.6->6.7
  2019-06-06 15:18 [PATCH v2 1/3] rng-tools: recipe cleanup Nicola Lunghi
@ 2019-06-06 15:18 ` Nicola Lunghi
  2019-06-06 16:20   ` Burton, Ross
  2019-06-06 15:18 ` [PATCH v2 3/3] rng-tools: armonize systemd and sysvinit files Nicola Lunghi
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Nicola Lunghi @ 2019-06-06 15:18 UTC (permalink / raw)
  To: openembedded-core; +Cc: Christopher Larson

update rng-tools to release 6.7

- add new option to compile with pkcs11/libp11 (added in 6.7)

- submitted the following yocto patches upstream (and added as backports):
    0001-If-the-libc-is-lacking-argp-use-libargp.patch \
    0002-Add-argument-to-control-the-libargp-dependency.patch \
    -> squashed in 0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch
    underquote.patch
    -> 0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch
    rng-tools-5-fix-textrels-on-PIC-x86.patch
    -> 0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch

- the following patch has been merged upstream: remove
    0001-configure.ac-fix-typo.patch

- backport the following patches from master
    0001-Remove-superfluous-variables.patch
    0002-Fix-a-few-typos-in-log-messages.patch
    0003-Fix-up-some-compile-warnings.patch
    0004-Fix-a-race-condition-on-shutdown.patch
    0005-rngd-prioritize-faster-sources-of-entropy.patch
    0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch
    0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch

Signed-off-by: Nicola Lunghi <nick83ola@gmail.com>
---
 ...the-libc-is-lacking-argp-use-libargp.patch |  60 ------
 .../0001-Remove-superfluous-variables.patch   |  28 +++
 .../0001-configure.ac-fix-typo.patch          |  27 ---
 ...nt-to-control-the-libargp-dependency.patch |  95 ----------
 ...0002-Fix-a-few-typos-in-log-messages.patch |  48 +++++
 .../0003-Fix-up-some-compile-warnings.patch   | 172 ++++++++++++++++++
 ...004-Fix-a-race-condition-on-shutdown.patch |  55 ++++++
 ...prioritize-faster-sources-of-entropy.patch |  72 ++++++++
 ...ace-non-standard-pthread_yield-with-.patch |  27 +++
 ....c-explicitly-link-against-libcrypto.patch |  73 ++++++++
 ...the-libc-is-lacking-argp-use-libargp.patch | 103 +++++++++++
 ...textrels-on-rdrand_asm.S-on-PIC-x86.patch} |   8 +-
 ...4-entry.-This-causes-a-failure-if-g.patch} |  16 +-
 .../{rng-tools_6.6.bb => rng-tools_6.7.bb}    |  18 +-
 14 files changed, 602 insertions(+), 200 deletions(-)
 delete mode 100644 meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch
 create mode 100644 meta/recipes-support/rng-tools/rng-tools/0001-Remove-superfluous-variables.patch
 delete mode 100644 meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch
 delete mode 100644 meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch
 create mode 100644 meta/recipes-support/rng-tools/rng-tools/0002-Fix-a-few-typos-in-log-messages.patch
 create mode 100644 meta/recipes-support/rng-tools/rng-tools/0003-Fix-up-some-compile-warnings.patch
 create mode 100644 meta/recipes-support/rng-tools/rng-tools/0004-Fix-a-race-condition-on-shutdown.patch
 create mode 100644 meta/recipes-support/rng-tools/rng-tools/0005-rngd-prioritize-faster-sources-of-entropy.patch
 create mode 100644 meta/recipes-support/rng-tools/rng-tools/0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch
 create mode 100644 meta/recipes-support/rng-tools/rng-tools/0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch
 create mode 100644 meta/recipes-support/rng-tools/rng-tools/0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch
 rename meta/recipes-support/rng-tools/rng-tools/{rng-tools-5-fix-textrels-on-PIC-x86.patch => 0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch} (94%)
 rename meta/recipes-support/rng-tools/rng-tools/{underquote.patch => 0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch} (77%)
 rename meta/recipes-support/rng-tools/{rng-tools_6.6.bb => rng-tools_6.7.bb} (72%)

diff --git a/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch b/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch
deleted file mode 100644
index 06d1d94369..0000000000
--- a/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 06ba71887f667d45dd231a782a2751f36e8fe025 Mon Sep 17 00:00:00 2001
-From: Christopher Larson <chris_larson@mentor.com>
-Date: Mon, 15 Feb 2016 15:59:58 -0700
-Subject: [PATCH 1/4] If the libc is lacking argp, use libargp
-
-Patch pulled from Gentoo:
-
-    On glibc systems, argp is provided by libc.  However, on
-    uclibc and other systems which lack argp in their C library,
-    argp might be provided by a stand alone library, libargp.
-    This patch adds tests to the build system to find who provides
-    argp.
-
-    X-Gentoo-Bug: 292191
-    X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=292191
-    Reported-by: Ed Wildgoose <gentoo@wildgooses.com>
-    Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
-
-Upstream-Status: Pending
-Signed-off-by: Christopher Larson <chris_larson@mentor.com>
----
- configure.ac | 22 ++++++++++++++++++++++
- 1 file changed, 22 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 4e799dc..c4a5dd8 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -135,6 +135,28 @@ AS_IF(
- 	]
- )
- 
-+dnl First check if we have argp available from libc
-+AC_LINK_IFELSE(
-+	[AC_LANG_PROGRAM(
-+		[#include <argp.h>],
-+		[int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]
-+		)],
-+	[libc_has_argp="true"],
-+	[libc_has_argp="false"]
-+)
-+
-+dnl If libc doesn't provide argp, then test for libargp
-+if test "$libc_has_argp" = "false" ; then
-+	AC_MSG_WARN("libc does not have argp")
-+	AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"])
-+
-+	if test "$have_argp" = "false"; then
-+		AC_MSG_ERROR("no libargp found")
-+	else
-+		LIBS+=" -largp"
-+	fi
-+fi
-+
- dnl -----------------
- dnl Configure options
- dnl -----------------
--- 
-2.7.4
-
diff --git a/meta/recipes-support/rng-tools/rng-tools/0001-Remove-superfluous-variables.patch b/meta/recipes-support/rng-tools/rng-tools/0001-Remove-superfluous-variables.patch
new file mode 100644
index 0000000000..32c2858999
--- /dev/null
+++ b/meta/recipes-support/rng-tools/rng-tools/0001-Remove-superfluous-variables.patch
@@ -0,0 +1,28 @@
+From e3971caa78f16c83bfb6d7537427b935ec603f63 Mon Sep 17 00:00:00 2001
+From: ideal <idealities@gmail.com>
+Date: Thu, 21 Mar 2019 15:23:11 +0800
+Subject: [PATCH 01/10] Remove superfluous variables
+
+Upstream-Status: Backport
+---
+ rngd_linux.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/rngd_linux.c b/rngd_linux.c
+index b473419..9eca968 100644
+--- a/rngd_linux.c
++++ b/rngd_linux.c
+@@ -58,10 +58,7 @@ extern int kent_pool_size;
+  */
+ int default_watermark(void)
+ {
+-	char psbuf[64], *p;
+-	unsigned long ps;
+ 	FILE *f;
+-	size_t l;
+ 	unsigned int wm = 4096;	/* Default guess */
+ 
+ 	f = fopen("/proc/sys/kernel/random/poolsize", "r");
+-- 
+2.20.1
+
diff --git a/meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch b/meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch
deleted file mode 100644
index d4d28a01c4..0000000000
--- a/meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 99b0efebd765803203686d89bc4f995bcb103e78 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Sat, 10 Nov 2018 09:53:19 +0800
-Subject: [PATCH] configure.ac: fix typo
-
-Upstream-Status: Submitted [https://github.com/nhorman/rng-tools.git]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 4e799dc..0251928 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -62,7 +62,7 @@ AS_IF([test $target_cpu = powerpc64le], [AC_DEFINE([HAVE_DARN],1,[Enable DARN])]
- AM_CONDITIONAL([JITTER], [false])
- 
- AC_ARG_ENABLE(jitterentropy,
--	AS_HELP_STRING([--disable-jitterntropy | --enable-jitterentropy=<path>],
-+	AS_HELP_STRING([--disable-jitterentropy | --enable-jitterentropy=<path>],
- 	[Disable jitterentropy source, or specify its location]),
- 	[if [ test -d $enable_jitterentropy ]; then
- 		export LDFLAGS+=-L$enable_jitterentropy;
--- 
-2.7.4
-
diff --git a/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch b/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch
deleted file mode 100644
index be60fe97f6..0000000000
--- a/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From 711e2f76890e3c5b08f64859d9fd913ddbec7d50 Mon Sep 17 00:00:00 2001
-From: Christopher Larson <chris_larson@mentor.com>
-Date: Mon, 22 Oct 2018 15:26:47 +0800
-Subject: [PATCH 2/4] Add argument to control the libargp dependency
-
-This ensures that the builds are always deterministic. If the argument isn't
-passed, the default behavior is to use libargp if the libc doesn't have argp.
-
-Upstream-Status: Pending
-Signed-off-by: Christopher Larson <chris_larson@mentor.com>
-
-Rebase to 6.6
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 55 ++++++++++++++++++++++++++++++++++++-------------------
- 1 file changed, 36 insertions(+), 19 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index c4a5dd8..dd1c30f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -40,6 +40,13 @@ AC_ARG_WITH([nistbeacon],
- 	[with_nistbeacon=check]
- )
- 
-+AC_ARG_WITH([libargp],
-+	AS_HELP_STRING([--without-libargp],
-+		[Disable libargp support. Systems whose libc lacks argp can use libargp instead. (Default: check if libc lacks argp)]),
-+	[with_libargp=$withval],
-+	[with_libargp=check]
-+)
-+
- dnl Make sure anyone changing configure.ac/Makefile.am has a clue
- AM_MAINTAINER_MODE
- AM_PROG_AS
-@@ -135,27 +142,37 @@ AS_IF(
- 	]
- )
- 
--dnl First check if we have argp available from libc
--AC_LINK_IFELSE(
--	[AC_LANG_PROGRAM(
--		[#include <argp.h>],
--		[int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]
--		)],
--	[libc_has_argp="true"],
--	[libc_has_argp="false"]
-+dnl Determine if we need libargp: either user requested, or libc has no argp
-+AS_IF(
-+	[test "x$with_libargp" != "xyes"],
-+	[
-+		AC_LINK_IFELSE(
-+			[AC_LANG_PROGRAM(
-+				[#include <argp.h>],
-+				[int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]
-+				)],
-+			[need_libargp=no],
-+			[need_libargp=yes
-+			 if test "x$with_libargp" = "xno"; then
-+				AC_MSG_FAILURE([libargp disabled and libc does not have argp])
-+			 fi]
-+		)
-+	],
-+	[need_libargp=yes],
- )
- 
--dnl If libc doesn't provide argp, then test for libargp
--if test "$libc_has_argp" = "false" ; then
--	AC_MSG_WARN("libc does not have argp")
--	AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"])
--
--	if test "$have_argp" = "false"; then
--		AC_MSG_ERROR("no libargp found")
--	else
--		LIBS+=" -largp"
--	fi
--fi
-+dnl Check for libargp
-+AS_IF(
-+	[test "x$need_libargp" = "xyes"],
-+	[
-+		AC_CHECK_LIB(
-+			[argp],
-+			[argp_parse],
-+			[LIBS="$LIBS -largp"],
-+			[AC_MSG_FAILURE([libargp not found])]
-+		)
-+	]
-+)
- 
- dnl -----------------
- dnl Configure options
--- 
-2.7.4
-
diff --git a/meta/recipes-support/rng-tools/rng-tools/0002-Fix-a-few-typos-in-log-messages.patch b/meta/recipes-support/rng-tools/rng-tools/0002-Fix-a-few-typos-in-log-messages.patch
new file mode 100644
index 0000000000..32163a5162
--- /dev/null
+++ b/meta/recipes-support/rng-tools/rng-tools/0002-Fix-a-few-typos-in-log-messages.patch
@@ -0,0 +1,48 @@
+From 93a1d001e51c6558e86161060b33c3785d509ac5 Mon Sep 17 00:00:00 2001
+From: Ruben Kerkhof <ruben@rubenkerkhof.com>
+Date: Wed, 17 Apr 2019 18:39:09 +0200
+Subject: [PATCH 02/10] Fix a few typos in log messages
+
+---
+ rngd.c        | 4 ++--
+ rngd_jitter.c | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/rngd.c b/rngd.c
+index 0d4582a..b854eab 100644
+--- a/rngd.c
++++ b/rngd.c
+@@ -743,7 +743,7 @@ int main(int argc, char **argv)
+ 			message(LOG_CONS|LOG_INFO, "None");
+ 		msg_squash = true;
+ 	} else
+-		message(LOG_DAEMON|LOG_INFO, "\nInitalizing available sources\n");
++		message(LOG_DAEMON|LOG_INFO, "\nInitializing available sources\n");
+ 
+ 	/* Init entropy sources */
+ 	
+@@ -753,7 +753,7 @@ int main(int argc, char **argv)
+ 				ent_sources++;
+ 				entropy_sources[i].fipsctx = malloc(sizeof(fips_ctx_t));
+ 				fips_init(entropy_sources[i].fipsctx, discard_initial_data(&entropy_sources[i]));
+-				message(LOG_INFO | LOG_DAEMON, "Initalizing entropy source %s\n",
++				message(LOG_INFO | LOG_DAEMON, "Initializing entropy source %s\n",
+ 					entropy_sources[i].rng_sname);
+ 			} else {
+ 				message(LOG_ERR | LOG_DAEMON, "Failed to init entropy source %s\n",
+diff --git a/rngd_jitter.c b/rngd_jitter.c
+index f68e2ca..23d96b3 100644
+--- a/rngd_jitter.c
++++ b/rngd_jitter.c
+@@ -440,7 +440,7 @@ int init_jitter_entropy_source(struct rng *ent_src)
+ 		 * Temporarily disable aes so we don't try to use it during init
+ 		 */
+ 
+-		message(LOG_CONS|LOG_INFO, "Initalizing AES buffer\n");
++		message(LOG_CONS|LOG_INFO, "Initializing AES buffer\n");
+ 		aes_buf = malloc(tdata[0].buf_sz);
+ 		ent_src->rng_options[JITTER_OPT_USE_AES].int_val = 0;
+ 		if (xread_jitter(key, AES_BLOCK, ent_src)) {
+-- 
+2.20.1
+
diff --git a/meta/recipes-support/rng-tools/rng-tools/0003-Fix-up-some-compile-warnings.patch b/meta/recipes-support/rng-tools/rng-tools/0003-Fix-up-some-compile-warnings.patch
new file mode 100644
index 0000000000..63ffe281bc
--- /dev/null
+++ b/meta/recipes-support/rng-tools/rng-tools/0003-Fix-up-some-compile-warnings.patch
@@ -0,0 +1,172 @@
+From 13beeeeed455306daf899f9e8a97b8b84f2e6c42 Mon Sep 17 00:00:00 2001
+From: Neil Horman <nhorman@tuxdriver.com>
+Date: Mon, 29 Apr 2019 15:26:42 -0400
+Subject: [PATCH 03/10] Fix up some compile warnings
+
+fixes issue https://github.com/nhorman/rng-tools/issues/57
+
+Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
+
+Upstream-Status: Backport
+---
+ rngd.c            | 10 +++++-----
+ rngd_jitter.c     | 14 +++++---------
+ rngd_linux.c      |  8 ++++++--
+ rngd_nistbeacon.c |  2 +-
+ 4 files changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/rngd.c b/rngd.c
+index b854eab..1b3d73d 100644
+--- a/rngd.c
++++ b/rngd.c
+@@ -153,7 +153,7 @@ static enum {
+ 	ENT_JITTER,
+ 	ENT_PKCS11,
+ 	ENT_MAX
+-} entropy_indexes;
++} entropy_indexes __attribute__((used));
+ 
+ 
+ static struct rng_option drng_options[] = {
+@@ -358,7 +358,7 @@ static int find_ent_src_idx(const char *name_idx)
+ 	} else {
+ 		idx = strtoul(name_idx, NULL, 10);
+ 		if ((idx == LONG_MAX) || (idx >= ENT_MAX)) {
+-			message(LOG_CONS|LOG_INFO, "option index out of range: %lu\n", idx);
++			message(LOG_CONS|LOG_INFO, "option index out of range: %u\n", idx);
+ 			return -ERANGE;
+ 		}
+ 		message(LOG_CONS|LOG_INFO, "Note, reference of entropy sources by index "
+@@ -449,7 +449,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
+ 			}
+ 			options++;
+ 		}
+-		message(LOG_CONS|LOG_INFO, "Option %s not found for source idx %d\n", optkey, idx);
++		message(LOG_CONS|LOG_INFO, "Option %s not found for source idx %lu\n", optkey, idx);
+ 		return -ERANGE;
+ 		break;
+ 
+@@ -828,10 +828,10 @@ int main(int argc, char **argv)
+ 		test_time = ((test_time * NSECS_IN_SECOND) + (end_test.tv_nsec - start_test.tv_nsec)) / NSECS_IN_SECOND;
+ 
+ 		if ((sum_entropy/test_time) >= MEGABITS) {
+-			message(LOG_CONS|LOG_INFO, "\nEntropy rate: %6.4g Mbits/sec averaged over %d iterations for %6.4g seconds\n",
++			message(LOG_CONS|LOG_INFO, "\nEntropy rate: %6.4g Mbits/sec averaged over %lu iterations for %6.4g seconds\n",
+ 				(sum_entropy/test_time/MEGABITS), test_iterations, test_time);
+ 		} else {
+-			message(LOG_CONS|LOG_INFO, "\nEntropy rate: %6.4g Kbits/sec averaged over %d iterations for %6.4g seconds\n",
++			message(LOG_CONS|LOG_INFO, "\nEntropy rate: %6.4g Kbits/sec averaged over %lu iterations for %6.4g seconds\n",
+ 				(sum_entropy/test_time/KILOBITS), test_iterations, test_time);
+ 		}
+ 	}
+diff --git a/rngd_jitter.c b/rngd_jitter.c
+index 23d96b3..c08c0d2 100644
+--- a/rngd_jitter.c
++++ b/rngd_jitter.c
+@@ -38,8 +38,6 @@
+ #include "exits.h"
+ #include "rngd_entsource.h"
+ 
+-static struct rand_data *ec = NULL;
+-
+ static int num_threads = 0;
+ struct thread_data {
+ 	int core_id;
+@@ -56,7 +54,7 @@ static struct thread_data *tdata;
+ static pthread_t *threads;
+ int pipefds[2];
+ 
+-char *aes_buf;
++unsigned char *aes_buf;
+ 
+ #ifdef HAVE_LIBGCRYPT
+ 
+@@ -147,13 +145,12 @@ int xread_jitter(void *buf, size_t size, struct rng *ent_src)
+ 	ssize_t request;
+ 	int rc = 1;
+ 	int retry_count = 0;
+-	struct timespec sleep;
+ 	ssize_t need=size;
+ 	char *bptr = buf;
+ 	size_t total;
+ try_again:
+ 	while (need) {
+-		message(LOG_DAEMON|LOG_DEBUG, "xread_jitter requests %d bytes from pipe\n", need);
++		message(LOG_DAEMON|LOG_DEBUG, "xread_jitter requests %lu bytes from pipe\n", need);
+ 		request = read(pipefds[0], &bptr[size-need], need);
+ 		if ((request < need) && ent_src->rng_options[JITTER_OPT_USE_AES].int_val) {
+ 			message(LOG_DAEMON|LOG_DEBUG, "xread_jitter falls back to AES\n");
+@@ -173,7 +170,7 @@ try_again:
+ 				message(LOG_DAEMON|LOG_DEBUG, "failed read: %s\n", strerror(errno));
+ 				pthread_yield();
+ 			} else
+-				message(LOG_DAEMON|LOG_DEBUG, "request of random data returns %d less than need %d\n",
++				message(LOG_DAEMON|LOG_DEBUG, "request of random data returns %ld less than need %ld\n",
+ 					request, need);
+ 			if (retry_count < ent_src->rng_options[JITTER_OPT_RETRY_COUNT].int_val) {
+ 				retry_count++;
+@@ -185,7 +182,7 @@ try_again:
+ 			goto out;
+ 		}
+ 
+-		message(LOG_DAEMON|LOG_DEBUG, "xread_jitter gets %d bytes\n", request);
++		message(LOG_DAEMON|LOG_DEBUG, "xread_jitter gets %ld bytes\n", request);
+ 		need -= request;
+ 	}
+ 
+@@ -236,7 +233,6 @@ static void *thread_entropy_task(void *data)
+ 	cpu_set_t cpuset;
+ 
+ 	ssize_t ret;
+-	size_t need;
+ 	struct thread_data *me = data;
+ 	char *tmpbuf;
+ 	struct timespec start, end;
+@@ -287,7 +283,7 @@ static void *thread_entropy_task(void *data)
+ 		while(written != me->buf_sz) {
+ 			message(LOG_DAEMON|LOG_DEBUG, "Writing to pipe\n");
+ 			ret = write(me->pipe_fd, &tmpbuf[written], me->buf_sz - written);
+-			message(LOG_DAEMON|LOG_DEBUG, "DONE Writing to pipe with return %d\n", ret);
++			message(LOG_DAEMON|LOG_DEBUG, "DONE Writing to pipe with return %ld\n", ret);
+ 			if (first)
+ 				me->active = 1;
+ 			if (ret < 0)
+diff --git a/rngd_linux.c b/rngd_linux.c
+index 9eca968..51c38ac 100644
+--- a/rngd_linux.c
++++ b/rngd_linux.c
+@@ -59,12 +59,16 @@ extern int kent_pool_size;
+ int default_watermark(void)
+ {
+ 	FILE *f;
+-	unsigned int wm = 4096;	/* Default guess */
++	unsigned int wm;	/* Default guess */
+ 
+ 	f = fopen("/proc/sys/kernel/random/poolsize", "r");
+ 	if (!f)
+ 		goto err;
+-	fscanf(f,"%d", &wm);
++	/*
++	 * Default to 4096 if fscanf fails
++	 */
++	if(fscanf(f,"%d", &wm) < 1)
++		wm = 4096;
+ 	kent_pool_size = wm;
+ 	wm = wm*3/4;
+ err:
+diff --git a/rngd_nistbeacon.c b/rngd_nistbeacon.c
+index 10fc4a4..aafb300 100644
+--- a/rngd_nistbeacon.c
++++ b/rngd_nistbeacon.c
+@@ -414,7 +414,7 @@ static int get_nist_record()
+ 			goto out;
+ 		}
+ 
+-		message(LOG_DAEMON|LOG_DEBUG, "NIST: timestamp is %d, frequency is %d, tv_sec is %d\n",
++		message(LOG_DAEMON|LOG_DEBUG, "NIST: timestamp is %lu, frequency is %u, tv_sec is %lu\n",
+ 			block.timestamp, block.frequency, ct.tv_sec);
+ 		if (block.timestamp + block.frequency >= ct.tv_sec) {
+ 			message(LOG_DAEMON|LOG_ERR, "Multiple nist reads in same frequency period of %d sec\n",
+-- 
+2.20.1
+
diff --git a/meta/recipes-support/rng-tools/rng-tools/0004-Fix-a-race-condition-on-shutdown.patch b/meta/recipes-support/rng-tools/rng-tools/0004-Fix-a-race-condition-on-shutdown.patch
new file mode 100644
index 0000000000..c4e982551a
--- /dev/null
+++ b/meta/recipes-support/rng-tools/rng-tools/0004-Fix-a-race-condition-on-shutdown.patch
@@ -0,0 +1,55 @@
+From 8203e08efd8ae6de110bc9bcc36f02e2302c8f6a Mon Sep 17 00:00:00 2001
+From: Neil Horman <nhorman@tuxdriver.com>
+Date: Thu, 23 May 2019 12:36:03 -0400
+Subject: [PATCH 04/10] Fix a race condition on shutdown
+
+It was possible that, during shutdown, a thread may exit prior to us
+checking for it being exited, leading us to block on a read of a pipe
+that was never going to be written to, causing a shutdown hang.  Fix it
+by using pthread_kill to kill each thread instead
+
+Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
+
+Upstream-Status: Backport
+---
+ rngd_jitter.c | 12 ++++--------
+ 1 file changed, 4 insertions(+), 8 deletions(-)
+
+diff --git a/rngd_jitter.c b/rngd_jitter.c
+index c08c0d2..979e613 100644
+--- a/rngd_jitter.c
++++ b/rngd_jitter.c
+@@ -469,26 +469,22 @@ void close_jitter_entropy_source(struct rng *ent_src)
+ 	for (i=0; i < num_threads; i++)
+ 		tdata[i].active = 0;
+ 
+-	flags = fcntl(pipefds[1], F_GETFL, 0);
+-	flags |= O_NONBLOCK;
+-	fcntl(pipefds[1], F_SETFL, &flags);
++	close(pipefds[1]);
+ 
+ 	/* And wait for completion of each thread */
+ 	for (i=0; i < num_threads; i++) {
+ 		message(LOG_DAEMON|LOG_DEBUG, "Checking on done for thread %d\n", i);
+ 		while (!tdata[i].done)
++			pthread_kill(threads[i], SIGINT);
+ 			if(tdata[i].done) {
+ 				message(LOG_DAEMON|LOG_INFO, "Closing thread %d\n", tdata[i].core_id);
+ 				pthread_join(threads[i], NULL);
+ 				jent_entropy_collector_free(tdata[i].ec);
+-			} else {
+-				read(pipefds[0], tmpbuf, 1024);
++			} else 
+ 				sched_yield();
+-			}
+ 	}
+ 
+-	close(pipefds[2]);
+-	close(pipefds[1]);
++	close(pipefds[0]);
+ 	free(tdata);
+ 	free(threads);
+ 	return;
+-- 
+2.20.1
+
diff --git a/meta/recipes-support/rng-tools/rng-tools/0005-rngd-prioritize-faster-sources-of-entropy.patch b/meta/recipes-support/rng-tools/rng-tools/0005-rngd-prioritize-faster-sources-of-entropy.patch
new file mode 100644
index 0000000000..2f553fc606
--- /dev/null
+++ b/meta/recipes-support/rng-tools/rng-tools/0005-rngd-prioritize-faster-sources-of-entropy.patch
@@ -0,0 +1,72 @@
+From ba8adb4c6e275e85f906922b6fcf18b4ac16534e Mon Sep 17 00:00:00 2001
+From: Neil Horman <nhorman@tuxdriver.com>
+Date: Tue, 4 Jun 2019 10:51:53 -0400
+Subject: [PATCH 05/10] rngd: prioritize faster sources of entropy
+
+We have two broad categories of entropy sources in rngd.  Fast sources
+and slow sources.  Slow sources (like jitterentropy) provided entropy to
+systems that have no other entropy source, but can actually hinder
+performance when large amounts of entropy are requested (consider a case
+where the entropy pool is empty, and the rdrand source can provide
+twice the entropy in half the time that jitterentropy can).  Its still
+valuable to have jitterentropy enabled, but we shouldn't be extracting
+entropy from it, if a faster source can provide it.  So lets prioritize
+our fast sources over the slow ones.  in the do_loop, lets by default
+not collect entropy from sources marked as slow.  If we pass
+through an interation of the do_loop with no entropy collected, then
+lets include the slow sources on the next pass to give us a better
+chance at collection.  Then, when entropy is gathered, we can go back to
+only using the fast sources.
+
+Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
+
+Upstream-Status: Backport
+---
+ rngd.c | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+diff --git a/rngd.c b/rngd.c
+index 1b3d73d..a086949 100644
+--- a/rngd.c
++++ b/rngd.c
+@@ -577,6 +577,7 @@ static void do_loop(int random_step)
+ 	int i;
+ 	int retval;
+ 	struct rng *iter;
++	bool try_slow_sources = false;
+ 
+ 	int (*random_add_fn)(struct rng *rng, int random_step,
+ 		unsigned char *buf, fips_ctx_t *fipsctx_in);
+@@ -587,11 +588,29 @@ continue_trying:
+ 	for (no_work = 0; no_work < 100; no_work = (work_done ? 0 : no_work+1)) {
+ 
+ 		work_done = false;
++
++		/*
++		 * Exclude slow sources when faster sources are working well
++		 * sources like jitterentropy can provide some entropy when needed
++		 * but can actually hinder performance when large amounts of entropy are needed
++		 * owing to the fact that they may block while generating said entropy
++		 * So, lets prioritize the faster sources.  Start by only trying to collect
++		 * entropy from the fast sources, then iff that fails, start including the slower
++		 * sources as well.  Once we get some entropy, return to only using fast sources
++		 */
++		if (no_work)
++			try_slow_sources = true;
++		else
++			try_slow_sources = false;
++
+ 		for (i = 0; i < ENT_MAX; ++i)
+ 		{
+ 			int rc;
+ 			/*message(LOG_CONS|LOG_INFO, "I is %d\n", i);*/
+ 			iter = &entropy_sources[i];
++			if (!try_slow_sources && iter->flags.slow_source)
++				continue;
++
+ 		retry_same:
+ 			if (!server_running)
+ 				return;
+-- 
+2.20.1
+
diff --git a/meta/recipes-support/rng-tools/rng-tools/0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch b/meta/recipes-support/rng-tools/rng-tools/0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch
new file mode 100644
index 0000000000..5bd6a4a01c
--- /dev/null
+++ b/meta/recipes-support/rng-tools/rng-tools/0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch
@@ -0,0 +1,27 @@
+From 93abcd77d9b5bae9c2018cf8fedb27c87d0ca5e6 Mon Sep 17 00:00:00 2001
+From: Nicola Lunghi <25422924+nicola-lunghi@users.noreply.github.com>
+Date: Wed, 5 Jun 2019 16:38:21 +0100
+Subject: [PATCH 06/10] rngd_jitter: replace non standard pthread_yield with
+ sched_yield
+
+Upstream-Status: Backport
+---
+ rngd_jitter.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/rngd_jitter.c b/rngd_jitter.c
+index 979e613..54070ae 100644
+--- a/rngd_jitter.c
++++ b/rngd_jitter.c
+@@ -168,7 +168,7 @@ try_again:
+ 		} else if (request < need) {
+ 			if (request == -1) {
+ 				message(LOG_DAEMON|LOG_DEBUG, "failed read: %s\n", strerror(errno));
+-				pthread_yield();
++				sched_yield();
+ 			} else
+ 				message(LOG_DAEMON|LOG_DEBUG, "request of random data returns %ld less than need %ld\n",
+ 					request, need);
+-- 
+2.20.1
+
diff --git a/meta/recipes-support/rng-tools/rng-tools/0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch b/meta/recipes-support/rng-tools/rng-tools/0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch
new file mode 100644
index 0000000000..003049fb7e
--- /dev/null
+++ b/meta/recipes-support/rng-tools/rng-tools/0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch
@@ -0,0 +1,73 @@
+From ee078086ee8209f593f16ac5f6393fb1a95452c4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=B6kt=C3=BCrk=20Y=C3=BCksek?= <gokturk@gentoo.org>
+Date: Wed, 5 Jun 2019 13:54:14 -0400
+Subject: [PATCH 07/10] Make rngd_pkcs11.c explicitly link against libcrypto
+
+In function init_pkcs11_entropy_source(), there is a call to
+ERR_reason_error_string(), which is defined in libcrypto. This causes
+linking problems for rng-tools under certain configurations:
+
+$ ./configure --disable-jitterentropy --without-nistbeacon --with-pkcs11
+...
+$ make
+...
+gcc     -pthread -g -O2 -pthread   -o rngd rngd-rngd.o rngd-rngd_entsource.o rngd-rngd_linux.o rngd-util.o  rngd-rngd_rdrand.o rdrand_asm.o   rngd-rngd_pkcs11.o librngd.a -lsysfs -lgcrypt -lsysfs  -lp11     -lgcrypt -lsysfs
+/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: rngd-rngd_pkcs11.o: undefined reference to symbol 'ERR_reason_error_string@@OPENSSL_1_1_0'
+/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib64/libcrypto.so.1.1: error adding symbols: DSO missing from command line
+collect2: error: ld returned 1 exit status
+make[2]: *** [Makefile:609: rngd] Error 1
+make[2]: Leaving directory '/tmp/rng-tools'
+make[1]: *** [Makefile:888: all-recursive] Error 1
+make[1]: Leaving directory '/tmp/rng-tools'
+make: *** [Makefile:458: all] Error 2
+
+This symbol is defined in libcrypto:
+
+$ readelf --dyn-syms /usr/lib64/libcrypto.so | grep ERR_reason_error_string
+   314: 000000000012cf60   155 FUNC    GLOBAL DEFAULT   12 ERR_reason_error_string@@OPENSSL_1_1_0
+
+Linking rngd against libcrypto when pkcs11 is enabled fixes the issue.
+
+Bug: https://bugs.gentoo.org/684228
+
+Upstream-Status: Backport
+---
+ Makefile.am  | 4 ++--
+ configure.ac | 1 +
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index ff56efe..db4fcfc 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -27,13 +27,13 @@ if JITTER
+ rngd_SOURCES	+= rngd_jitter.c
+ endif
+ 
+-rngd_LDADD	= librngd.a -lsysfs $(LIBS) ${libp11_LIBS} ${libcurl_LIBS} ${libxml2_LIBS} ${openssl_LIBS} $(PTHREAD_LIBS)
++rngd_LDADD	= librngd.a -lsysfs $(LIBS) ${libp11_LIBS} ${libcrypto_LIBS} ${libcurl_LIBS} ${libxml2_LIBS} ${openssl_LIBS} $(PTHREAD_LIBS)
+ 
+ if PKCS11 
+ rngd_SOURCES	+= rngd_pkcs11.c
+ endif
+ 
+-rngd_CFLAGS	= ${pkcs11_CFLAGS} ${libp11_CFLAGS} ${libxml2_CFLAGS} ${openssl_CFLAGS} $(PTHREAD_CFLAGS)
++rngd_CFLAGS	= ${pkcs11_CFLAGS} ${libp11_CFLAGS} ${libcrypto_CFLAGS} ${libxml2_CFLAGS} ${openssl_CFLAGS} $(PTHREAD_CFLAGS)
+ rngd_LDFLAGS	= $(PTHREAD_CFLAGS) 
+ 
+ rngtest_SOURCES	= exits.h stats.h stats.c rngtest.c
+diff --git a/configure.ac b/configure.ac
+index d00a6f1..29a46fa 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -102,6 +102,7 @@ AS_IF(
+ 	[ test "x$with_pkcs11" != "xno"],
+ 	[
+ 		PKG_CHECK_MODULES([libp11], [libp11], [], [AC_MSG_ERROR([libp11 is required])])
++		PKG_CHECK_MODULES([libcrypto], [libcrypto], [], [AC_MSG_ERROR([libcrypto is required])])
+ 		AC_DEFINE([HAVE_PKCS11],1,[Enable PKCS11])
+ 	]
+ )
+-- 
+2.20.1
+
diff --git a/meta/recipes-support/rng-tools/rng-tools/0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch b/meta/recipes-support/rng-tools/rng-tools/0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch
new file mode 100644
index 0000000000..e50bbbc8b8
--- /dev/null
+++ b/meta/recipes-support/rng-tools/rng-tools/0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch
@@ -0,0 +1,103 @@
+From 53a6f99e0bf9f70fce659268ab0354760d8f7586 Mon Sep 17 00:00:00 2001
+From: Christopher Larson <chris_larson@mentor.com>
+Date: Mon, 15 Feb 2016 15:59:58 -0700
+Subject: [PATCH 08/10] configure:If the libc is lacking argp, use libargp
+
+This is the squash of two patches from yocto recipe
+that are needed in case the libc used lacks argp
+to specify to use the libargp library.
+
+Needed in particular for musl
+
+0001: Patch pulled from Gentoo:
+
+    On glibc systems, argp is provided by libc.  However, on
+    uclibc and other systems which lack argp in their C library,
+    argp might be provided by a stand alone library, libargp.
+    This patch adds tests to the build system to find who provides
+    argp.
+
+    X-Gentoo-Bug: 292191
+    X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=292191
+    Reported-by: Ed Wildgoose <gentoo@wildgooses.com>
+    Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
+
+    Upstream-Status: Pending
+    Signed-off-by: Christopher Larson <chris_larson@mentor.com>
+
+0002: Add argument to control the libargp dependency
+
+    This ensures that the builds are always deterministic. If the argument isn't
+    passed, the default behavior is to use libargp if the libc doesn't have argp.
+
+    Upstream-Status: Pending
+    Signed-off-by: Christopher Larson <chris_larson@mentor.com>
+
+    Rebase to 6.6
+    Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Signed-off-by: Nicola Lunghi <25422924+nicola-lunghi@users.noreply.github.com>
+---
+ configure.ac | 39 +++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 39 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 29a46fa..671c174 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -47,6 +47,13 @@ AC_ARG_WITH([pkcs11],
+ 	[with_pkcs11=check]
+ )
+ 
++AC_ARG_WITH([libargp],
++	AS_HELP_STRING([--without-libargp],
++		[Disable libargp support. Systems whose libc lacks argp can use libargp instead. (Default: check if libc lacks argp)]),
++	[with_libargp=$withval],
++	[with_libargp=check]
++)
++
+ dnl Make sure anyone changing configure.ac/Makefile.am has a clue
+ AM_MAINTAINER_MODE
+ AM_PROG_AS
+@@ -153,6 +160,38 @@ AS_IF(
+ 	]
+ )
+ 
++dnl Determine if we need libargp: either user requested, or libc has no argp
++AS_IF(
++	[test "x$with_libargp" != "xyes"],
++	[
++		AC_LINK_IFELSE(
++			[AC_LANG_PROGRAM(
++				[#include <argp.h>],
++				[int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]
++				)],
++			[need_libargp=no],
++			[need_libargp=yes
++			 if test "x$with_libargp" = "xno"; then
++				AC_MSG_FAILURE([libargp disabled and libc does not have argp])
++			 fi]
++		)
++	],
++	[need_libargp=yes],
++)
++
++dnl Check for libargp
++AS_IF(
++	[test "x$need_libargp" = "xyes"],
++	[
++		AC_CHECK_LIB(
++			[argp],
++			[argp_parse],
++			[LIBS="$LIBS -largp"],
++			[AC_MSG_FAILURE([libargp not found])]
++		)
++	]
++)
++
+ dnl -----------------
+ dnl Configure options
+ dnl -----------------
+-- 
+2.20.1
+
diff --git a/meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch b/meta/recipes-support/rng-tools/rng-tools/0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch
similarity index 94%
rename from meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch
rename to meta/recipes-support/rng-tools/rng-tools/0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch
index 614adab27f..132736d75a 100644
--- a/meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch
+++ b/meta/recipes-support/rng-tools/rng-tools/0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch
@@ -1,7 +1,7 @@
-From d8b1bb8edd99b2898720b4f10d292a67d532db48 Mon Sep 17 00:00:00 2001
+From ea266db777f52bfd3611bacb0dedca81437adb2b Mon Sep 17 00:00:00 2001
 From: "Francisco Blas Izquierdo Riera (klondike)" <klondike@gentoo.org>
 Date: Mon, 22 Oct 2018 15:29:36 +0800
-Subject: [PATCH 4/4] Fix assemby textrels on rdrand_asm.S on PIC x86
+Subject: [PATCH 09/10] Fix assemby textrels on rdrand_asm.S on PIC x86
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -23,7 +23,7 @@ Reported-by: cilly <cilly@cilly.mine.nu>
 Reported-by: Manuel Rüger <mrueg@gentoo.org>
 Tested-by: Anthony Basile <blueness@gentoo.org>
 
-Upstream-Status: Pending
+Upstream-Status: Submitted
 ---
  rdrand_asm.S | 27 +++++++++++++++++++++++++++
  1 file changed, 27 insertions(+)
@@ -110,5 +110,5 @@ index b5d260a..7811cf2 100644
  	.balign 64
  aes_round_keys:
 -- 
-2.7.4
+2.20.1
 
diff --git a/meta/recipes-support/rng-tools/rng-tools/underquote.patch b/meta/recipes-support/rng-tools/rng-tools/0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch
similarity index 77%
rename from meta/recipes-support/rng-tools/rng-tools/underquote.patch
rename to meta/recipes-support/rng-tools/rng-tools/0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch
index aa4bbcb346..fc4de8b6e2 100644
--- a/meta/recipes-support/rng-tools/rng-tools/underquote.patch
+++ b/meta/recipes-support/rng-tools/rng-tools/0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch
@@ -1,8 +1,8 @@
-From 03fe7efa1bc04a83fb9b6787998e7baa7ee90646 Mon Sep 17 00:00:00 2001
+From f7c2422be181d5f858712da9e63b14b602d82fac Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Mon, 22 Oct 2018 15:27:41 +0800
-Subject: [PATCH 3/4] Fix underquoted m4 entry. This causes a failure if gcrypt
- isn't present:
+Subject: [PATCH 10/10] Fix underquoted m4 entry. This causes a failure if
+ gcrypt isn't present:
 
 | configure: libgcrypt support disabled
 | ../rng-tools-5/configure: line 4345: ac_fn_c_try_link: command not found
@@ -11,7 +11,7 @@ Subject: [PATCH 3/4] Fix underquoted m4 entry. This causes a failure if gcrypt
 RP
 2016/2/16
 
-Upstream-Status: Pending
+Upstream-Status: Submitted
 
 Rebase to 6.6
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
@@ -20,10 +20,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index dd1c30f..88d2be3 100644
+index 671c174..81959f3 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -124,7 +124,7 @@ AS_IF(
+@@ -142,7 +142,7 @@ AS_IF(
  	[test "x$with_libgcrypt" != "xno"],
  	[
  		AC_CHECK_HEADER([gcrypt.h],
@@ -32,7 +32,7 @@ index dd1c30f..88d2be3 100644
  				[gcrypt],
  				[gcry_check_version], ,
  				[
-@@ -133,7 +133,7 @@ AS_IF(
+@@ -151,7 +151,7 @@ AS_IF(
  						AC_MSG_NOTICE([libgcrypt support disabled])
  					fi
  				]
@@ -42,5 +42,5 @@ index dd1c30f..88d2be3 100644
  				AC_MSG_FAILURE([libgcrypt headers not found]); else
  				AC_MSG_NOTICE([libgcrypt support disabled])
 -- 
-2.7.4
+2.20.1
 
diff --git a/meta/recipes-support/rng-tools/rng-tools_6.6.bb b/meta/recipes-support/rng-tools/rng-tools_6.7.bb
similarity index 72%
rename from meta/recipes-support/rng-tools/rng-tools_6.6.bb
rename to meta/recipes-support/rng-tools/rng-tools_6.7.bb
index 41959a2695..9cc5951345 100644
--- a/meta/recipes-support/rng-tools/rng-tools_6.6.bb
+++ b/meta/recipes-support/rng-tools/rng-tools_6.7.bb
@@ -10,16 +10,21 @@ DEPENDS = "sysfsutils"
 
 SRC_URI = "\
     git://github.com/nhorman/rng-tools.git \
-    file://0001-If-the-libc-is-lacking-argp-use-libargp.patch \
-    file://0002-Add-argument-to-control-the-libargp-dependency.patch \
-    file://underquote.patch \
-    file://rng-tools-5-fix-textrels-on-PIC-x86.patch \
-    file://0001-configure.ac-fix-typo.patch \
+    file://0001-Remove-superfluous-variables.patch \
+    file://0002-Fix-a-few-typos-in-log-messages.patch \
+    file://0003-Fix-up-some-compile-warnings.patch \
+    file://0004-Fix-a-race-condition-on-shutdown.patch \
+    file://0005-rngd-prioritize-faster-sources-of-entropy.patch \
+    file://0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch \
+    file://0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch \
+    file://0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch \
+    file://0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch \
+    file://0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch \
     file://init \
     file://default \
     file://rngd.service \
 "
-SRCREV = "4ebc21d6f387bb7b4b3f6badc429e27b21c0a6ee"
+SRCREV = "7435d1243d73525206ab476c02abf2dcea0a3fa1"
 
 S = "${WORKDIR}/git"
 
@@ -31,6 +36,7 @@ PACKAGECONFIG_libc-musl = "libargp libjitterentropy"
 PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone,"
 PACKAGECONFIG[libgcrypt] = "--with-libgcrypt,--without-libgcrypt,libgcrypt,"
 PACKAGECONFIG[libjitterentropy] = "--enable-jitterentropy,--disable-jitterentropy,libjitterentropy"
+PACKAGECONFIG[libpkcs11] = "--with-pkcs11,--without-pkcs11,libp11"
 PACKAGECONFIG[nistbeacon] = "--with-nistbeacon,--without-nistbeacon,curl libxml2 openssl"
 
 INITSCRIPT_NAME = "rng-tools"
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 3/3] rng-tools: armonize systemd and sysvinit files
  2019-06-06 15:18 [PATCH v2 1/3] rng-tools: recipe cleanup Nicola Lunghi
  2019-06-06 15:18 ` [PATCH v2 2/3] rng-tools: 6.6->6.7 Nicola Lunghi
@ 2019-06-06 15:18 ` Nicola Lunghi
  2019-06-06 16:21   ` Burton, Ross
  2019-06-06 15:20 ` [PATCH v2 1/3] rng-tools: recipe cleanup nick83ola
  2019-06-08  4:09 ` ✗ patchtest: failure for "[v2] rng-tools: recipe cleanup..." and 2 more Patchwork
  3 siblings, 1 reply; 8+ messages in thread
From: Nicola Lunghi @ 2019-06-06 15:18 UTC (permalink / raw)
  To: openembedded-core

this commit will permit to have a default file
both in the systemd and in the sysvinit file

Also reorganize the install_append function

Signed-off-by: Nicola Lunghi <nick83ola@gmail.com>
---
 .../rng-tools/rng-tools/default               |  3 +--
 meta/recipes-support/rng-tools/rng-tools/init | 21 ++++++-----------
 .../rng-tools/rng-tools/rngd.service          |  4 ++--
 .../rng-tools/rng-tools_6.7.bb                | 23 ++++++++-----------
 4 files changed, 19 insertions(+), 32 deletions(-)

diff --git a/meta/recipes-support/rng-tools/rng-tools/default b/meta/recipes-support/rng-tools/rng-tools/default
index ab7cd9327f..b9f8e03635 100644
--- a/meta/recipes-support/rng-tools/rng-tools/default
+++ b/meta/recipes-support/rng-tools/rng-tools/default
@@ -1,2 +1 @@
-# Specify rng device
-RNG_DEVICE=/dev/hwrng
+EXTRA_ARGS="-r /dev/hwrng"
diff --git a/meta/recipes-support/rng-tools/rng-tools/init b/meta/recipes-support/rng-tools/rng-tools/init
index 7cf78393a4..13f0ecd37c 100644
--- a/meta/recipes-support/rng-tools/rng-tools/init
+++ b/meta/recipes-support/rng-tools/rng-tools/init
@@ -1,26 +1,19 @@
-#! /bin/sh 
+#!/bin/sh
 #
 # This is an init script for openembedded
-# Copy it to /etc/init.d/rng-tools and type
+# Copy it to @SYSCONFDIR@/init.d/rng-tools and type
 # > update-rc.d rng-tools defaults 60
 #
 
-rngd=/usr/sbin/rngd
+rngd=@SBINDIR@/rngd
 test -x "$rngd" || exit 1
 
-if [ -e /etc/default/rng-tools ]; then
-    . /etc/default/rng-tools
-fi
-
-if [ -n "$RNG_DEVICE" ]; then
-    EXTRA_ARGS="-- -r $RNG_DEVICE"
-fi
-
+[ -r @SYSCONFDIR@/default/rng-tools ] && . "@SYSCONFDIR@/default/rng-tools"
 
 case "$1" in
   start)
     echo -n "Starting random number generator daemon"
-    start-stop-daemon -S -q -x $rngd $EXTRA_ARGS
+    start-stop-daemon -S -q -x $rngd -- $EXTRA_ARGS
     echo "."
     ;;
   stop)
@@ -38,11 +31,11 @@ case "$1" in
     start-stop-daemon -K -q -n rngd
     echo "."
     echo -n "Starting random number generator daemon"
-    start-stop-daemon -S -q -x $rngd $EXTRA_ARGS
+    start-stop-daemon -S -q -x $rngd -- $EXTRA_ARGS
     echo "."
     ;;
   *)
-    echo "Usage: /etc/init.d/rng-tools {start|stop|reload|restart|force-reload}"
+    echo "Usage: @SYSCONFDIR@/init.d/rng-tools {start|stop|reload|restart|force-reload}"
     exit 1
 esac
 
diff --git a/meta/recipes-support/rng-tools/rng-tools/rngd.service b/meta/recipes-support/rng-tools/rng-tools/rngd.service
index f0355db14f..b1a78527be 100644
--- a/meta/recipes-support/rng-tools/rng-tools/rngd.service
+++ b/meta/recipes-support/rng-tools/rng-tools/rngd.service
@@ -5,8 +5,8 @@ After=systemd-udev-settle.service
 Before=sysinit.target
 
 [Service]
-ExecStart=@SBINDIR@/rngd -f -r /dev/hwrng
-SuccessExitStatus=66
+EnvironmentFile=-@SYSCONFDIR@/default/rng-tools
+ExecStart=@SBINDIR@/rngd -f $EXTRA_ARGS
 
 [Install]
 WantedBy=multi-user.target
diff --git a/meta/recipes-support/rng-tools/rng-tools_6.7.bb b/meta/recipes-support/rng-tools/rng-tools_6.7.bb
index 9cc5951345..12cda9ae1e 100644
--- a/meta/recipes-support/rng-tools/rng-tools_6.7.bb
+++ b/meta/recipes-support/rng-tools/rng-tools_6.7.bb
@@ -50,18 +50,13 @@ do_configure_prepend() {
 }
 
 do_install_append() {
-    install -d "${D}${sysconfdir}/init.d"
-    install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools
-    sed -i -e 's,/etc/,${sysconfdir}/,' -e 's,/usr/sbin/,${sbindir}/,' \
-        ${D}${sysconfdir}/init.d/rng-tools
-
-    # Only install the default script when 'sysvinit' is in DISTRO_FEATURES.
-    if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
-        install -d "${D}${sysconfdir}/default"
-        install -m 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools
-    fi
-
-    install -d ${D}${systemd_unitdir}/system
-    install -m 644 ${WORKDIR}/rngd.service ${D}${systemd_unitdir}/system
-    sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/rngd.service
+    install -Dm 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools
+    install -Dm 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools
+    install -Dm 0644 ${WORKDIR}/rngd.service \
+                     ${D}${systemd_system_unitdir}/rngd.service
+    sed -i \
+        -e 's,@SYSCONFDIR@,${sysconfdir},' \
+        -e 's,@SBINDIR@,${sbindir},' \
+        ${D}${sysconfdir}/init.d/rng-tools \
+        ${D}${systemd_system_unitdir}/rngd.service
 }
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 1/3] rng-tools: recipe cleanup
  2019-06-06 15:18 [PATCH v2 1/3] rng-tools: recipe cleanup Nicola Lunghi
  2019-06-06 15:18 ` [PATCH v2 2/3] rng-tools: 6.6->6.7 Nicola Lunghi
  2019-06-06 15:18 ` [PATCH v2 3/3] rng-tools: armonize systemd and sysvinit files Nicola Lunghi
@ 2019-06-06 15:20 ` nick83ola
  2019-06-08  4:09 ` ✗ patchtest: failure for "[v2] rng-tools: recipe cleanup..." and 2 more Patchwork
  3 siblings, 0 replies; 8+ messages in thread
From: nick83ola @ 2019-06-06 15:20 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

posted v2 of this with an extra patch please ignore

On Thu, 6 Jun 2019 at 16:18, Nicola Lunghi <nick83ola@gmail.com> wrote:
>
> - add missing DESCRIPTION, AUTHOR, HOMEPAGE
> - cleanup DEPENDS
> - fix variable ordering as per https://www.openembedded.org/wiki/Styleguide
> - remove unneeded checks for systemd, sysvinit in do_install
>
> Signed-off-by: Nicola Lunghi <nick83ola@gmail.com>
> ---
>  .../rng-tools/rng-tools_6.6.bb                | 63 ++++++++++---------
>  1 file changed, 33 insertions(+), 30 deletions(-)
>
> diff --git a/meta/recipes-support/rng-tools/rng-tools_6.6.bb b/meta/recipes-support/rng-tools/rng-tools_6.6.bb
> index 6796c9be9e..41959a2695 100644
> --- a/meta/recipes-support/rng-tools/rng-tools_6.6.bb
> +++ b/meta/recipes-support/rng-tools/rng-tools_6.6.bb
> @@ -1,58 +1,61 @@
>  SUMMARY = "Random number generator daemon"
> +DESCRIPTION = "Check and feed random data from hardware device to kernel"
> +AUTHOR = "Philipp Rumpf, Jeff Garzik <jgarzik@pobox.com>, \
> +          Henrique de Moraes Holschuh <hmh@debian.org>"
> +HOMEPAGE = "https://github.com/nhorman/rng-tools"
> +BUGTRACKER = "https://github.com/nhorman/rng-tools/issues"
>  LICENSE = "GPLv2"
>  LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
> -
> -SRC_URI = "git://github.com/nhorman/rng-tools.git \
> -           file://0001-If-the-libc-is-lacking-argp-use-libargp.patch \
> -           file://0002-Add-argument-to-control-the-libargp-dependency.patch \
> -           file://underquote.patch \
> -           file://rng-tools-5-fix-textrels-on-PIC-x86.patch \
> -           file://0001-configure.ac-fix-typo.patch \
> -           file://init \
> -           file://default \
> -           file://rngd.service \
> +DEPENDS = "sysfsutils"
> +
> +SRC_URI = "\
> +    git://github.com/nhorman/rng-tools.git \
> +    file://0001-If-the-libc-is-lacking-argp-use-libargp.patch \
> +    file://0002-Add-argument-to-control-the-libargp-dependency.patch \
> +    file://underquote.patch \
> +    file://rng-tools-5-fix-textrels-on-PIC-x86.patch \
> +    file://0001-configure.ac-fix-typo.patch \
> +    file://init \
> +    file://default \
> +    file://rngd.service \
>  "
>  SRCREV = "4ebc21d6f387bb7b4b3f6badc429e27b21c0a6ee"
> +
>  S = "${WORKDIR}/git"
>
>  inherit autotools update-rc.d systemd pkgconfig
>
> -DEPENDS = " \
> -           sysfsutils \
> -          "
> -
>  PACKAGECONFIG ??= "libgcrypt libjitterentropy"
>  PACKAGECONFIG_libc-musl = "libargp libjitterentropy"
> +
>  PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone,"
>  PACKAGECONFIG[libgcrypt] = "--with-libgcrypt,--without-libgcrypt,libgcrypt,"
>  PACKAGECONFIG[libjitterentropy] = "--enable-jitterentropy,--disable-jitterentropy,libjitterentropy"
>  PACKAGECONFIG[nistbeacon] = "--with-nistbeacon,--without-nistbeacon,curl libxml2 openssl"
>
> +INITSCRIPT_NAME = "rng-tools"
> +INITSCRIPT_PARAMS = "start 03 2 3 4 5 . stop 30 0 6 1 ."
> +
> +SYSTEMD_SERVICE_${PN} = "rngd.service"
> +
>  # Refer autogen.sh in rng-tools
>  do_configure_prepend() {
>      cp ${S}/README.md ${S}/README
>  }
>
>  do_install_append() {
> -    # Only install the init script when 'sysvinit' is in DISTRO_FEATURES.
> -    if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
> -        install -d "${D}${sysconfdir}/init.d"
> -        install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools
> -        sed -i -e 's,/etc/,${sysconfdir}/,' -e 's,/usr/sbin/,${sbindir}/,' \
> -            ${D}${sysconfdir}/init.d/rng-tools
> +    install -d "${D}${sysconfdir}/init.d"
> +    install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools
> +    sed -i -e 's,/etc/,${sysconfdir}/,' -e 's,/usr/sbin/,${sbindir}/,' \
> +        ${D}${sysconfdir}/init.d/rng-tools
>
> +    # Only install the default script when 'sysvinit' is in DISTRO_FEATURES.
> +    if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
>          install -d "${D}${sysconfdir}/default"
>          install -m 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools
>      fi
>
> -    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
> -        install -d ${D}${systemd_unitdir}/system
> -        install -m 644 ${WORKDIR}/rngd.service ${D}${systemd_unitdir}/system
> -        sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/rngd.service
> -    fi
> +    install -d ${D}${systemd_unitdir}/system
> +    install -m 644 ${WORKDIR}/rngd.service ${D}${systemd_unitdir}/system
> +    sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/rngd.service
>  }
> -
> -INITSCRIPT_NAME = "rng-tools"
> -INITSCRIPT_PARAMS = "start 03 2 3 4 5 . stop 30 0 6 1 ."
> -
> -SYSTEMD_SERVICE_${PN} = "rngd.service"
> --
> 2.20.1
>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/3] rng-tools: 6.6->6.7
  2019-06-06 15:18 ` [PATCH v2 2/3] rng-tools: 6.6->6.7 Nicola Lunghi
@ 2019-06-06 16:20   ` Burton, Ross
  2019-06-12 12:41     ` nick83ola
  0 siblings, 1 reply; 8+ messages in thread
From: Burton, Ross @ 2019-06-06 16:20 UTC (permalink / raw)
  To: Nicola Lunghi; +Cc: Christopher Larson, OE-core

The patches you're adding all need your Signed-off-by alongside the
Upstream-Status, specifically
0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch doesn't
have a Sob or U-S.

For the patches that are submitted, please add the pull request:

Upstream-Status: Submitted [https://github.com/nhorman/rng-tools/pull/66]

This lets us find the patches in the future.

Ross

On Thu, 6 Jun 2019 at 16:18, Nicola Lunghi <nick83ola@gmail.com> wrote:
>
> update rng-tools to release 6.7
>
> - add new option to compile with pkcs11/libp11 (added in 6.7)
>
> - submitted the following yocto patches upstream (and added as backports):
>     0001-If-the-libc-is-lacking-argp-use-libargp.patch \
>     0002-Add-argument-to-control-the-libargp-dependency.patch \
>     -> squashed in 0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch
>     underquote.patch
>     -> 0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch
>     rng-tools-5-fix-textrels-on-PIC-x86.patch
>     -> 0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch
>
> - the following patch has been merged upstream: remove
>     0001-configure.ac-fix-typo.patch
>
> - backport the following patches from master
>     0001-Remove-superfluous-variables.patch
>     0002-Fix-a-few-typos-in-log-messages.patch
>     0003-Fix-up-some-compile-warnings.patch
>     0004-Fix-a-race-condition-on-shutdown.patch
>     0005-rngd-prioritize-faster-sources-of-entropy.patch
>     0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch
>     0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch
>
> Signed-off-by: Nicola Lunghi <nick83ola@gmail.com>
> ---
>  ...the-libc-is-lacking-argp-use-libargp.patch |  60 ------
>  .../0001-Remove-superfluous-variables.patch   |  28 +++
>  .../0001-configure.ac-fix-typo.patch          |  27 ---
>  ...nt-to-control-the-libargp-dependency.patch |  95 ----------
>  ...0002-Fix-a-few-typos-in-log-messages.patch |  48 +++++
>  .../0003-Fix-up-some-compile-warnings.patch   | 172 ++++++++++++++++++
>  ...004-Fix-a-race-condition-on-shutdown.patch |  55 ++++++
>  ...prioritize-faster-sources-of-entropy.patch |  72 ++++++++
>  ...ace-non-standard-pthread_yield-with-.patch |  27 +++
>  ....c-explicitly-link-against-libcrypto.patch |  73 ++++++++
>  ...the-libc-is-lacking-argp-use-libargp.patch | 103 +++++++++++
>  ...textrels-on-rdrand_asm.S-on-PIC-x86.patch} |   8 +-
>  ...4-entry.-This-causes-a-failure-if-g.patch} |  16 +-
>  .../{rng-tools_6.6.bb => rng-tools_6.7.bb}    |  18 +-
>  14 files changed, 602 insertions(+), 200 deletions(-)
>  delete mode 100644 meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch
>  create mode 100644 meta/recipes-support/rng-tools/rng-tools/0001-Remove-superfluous-variables.patch
>  delete mode 100644 meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch
>  delete mode 100644 meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch
>  create mode 100644 meta/recipes-support/rng-tools/rng-tools/0002-Fix-a-few-typos-in-log-messages.patch
>  create mode 100644 meta/recipes-support/rng-tools/rng-tools/0003-Fix-up-some-compile-warnings.patch
>  create mode 100644 meta/recipes-support/rng-tools/rng-tools/0004-Fix-a-race-condition-on-shutdown.patch
>  create mode 100644 meta/recipes-support/rng-tools/rng-tools/0005-rngd-prioritize-faster-sources-of-entropy.patch
>  create mode 100644 meta/recipes-support/rng-tools/rng-tools/0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch
>  create mode 100644 meta/recipes-support/rng-tools/rng-tools/0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch
>  create mode 100644 meta/recipes-support/rng-tools/rng-tools/0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch
>  rename meta/recipes-support/rng-tools/rng-tools/{rng-tools-5-fix-textrels-on-PIC-x86.patch => 0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch} (94%)
>  rename meta/recipes-support/rng-tools/rng-tools/{underquote.patch => 0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch} (77%)
>  rename meta/recipes-support/rng-tools/{rng-tools_6.6.bb => rng-tools_6.7.bb} (72%)
>
> diff --git a/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch b/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch
> deleted file mode 100644
> index 06d1d94369..0000000000
> --- a/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch
> +++ /dev/null
> @@ -1,60 +0,0 @@
> -From 06ba71887f667d45dd231a782a2751f36e8fe025 Mon Sep 17 00:00:00 2001
> -From: Christopher Larson <chris_larson@mentor.com>
> -Date: Mon, 15 Feb 2016 15:59:58 -0700
> -Subject: [PATCH 1/4] If the libc is lacking argp, use libargp
> -
> -Patch pulled from Gentoo:
> -
> -    On glibc systems, argp is provided by libc.  However, on
> -    uclibc and other systems which lack argp in their C library,
> -    argp might be provided by a stand alone library, libargp.
> -    This patch adds tests to the build system to find who provides
> -    argp.
> -
> -    X-Gentoo-Bug: 292191
> -    X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=292191
> -    Reported-by: Ed Wildgoose <gentoo@wildgooses.com>
> -    Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
> -
> -Upstream-Status: Pending
> -Signed-off-by: Christopher Larson <chris_larson@mentor.com>
> ----
> - configure.ac | 22 ++++++++++++++++++++++
> - 1 file changed, 22 insertions(+)
> -
> -diff --git a/configure.ac b/configure.ac
> -index 4e799dc..c4a5dd8 100644
> ---- a/configure.ac
> -+++ b/configure.ac
> -@@ -135,6 +135,28 @@ AS_IF(
> -       ]
> - )
> -
> -+dnl First check if we have argp available from libc
> -+AC_LINK_IFELSE(
> -+      [AC_LANG_PROGRAM(
> -+              [#include <argp.h>],
> -+              [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]
> -+              )],
> -+      [libc_has_argp="true"],
> -+      [libc_has_argp="false"]
> -+)
> -+
> -+dnl If libc doesn't provide argp, then test for libargp
> -+if test "$libc_has_argp" = "false" ; then
> -+      AC_MSG_WARN("libc does not have argp")
> -+      AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"])
> -+
> -+      if test "$have_argp" = "false"; then
> -+              AC_MSG_ERROR("no libargp found")
> -+      else
> -+              LIBS+=" -largp"
> -+      fi
> -+fi
> -+
> - dnl -----------------
> - dnl Configure options
> - dnl -----------------
> ---
> -2.7.4
> -
> diff --git a/meta/recipes-support/rng-tools/rng-tools/0001-Remove-superfluous-variables.patch b/meta/recipes-support/rng-tools/rng-tools/0001-Remove-superfluous-variables.patch
> new file mode 100644
> index 0000000000..32c2858999
> --- /dev/null
> +++ b/meta/recipes-support/rng-tools/rng-tools/0001-Remove-superfluous-variables.patch
> @@ -0,0 +1,28 @@
> +From e3971caa78f16c83bfb6d7537427b935ec603f63 Mon Sep 17 00:00:00 2001
> +From: ideal <idealities@gmail.com>
> +Date: Thu, 21 Mar 2019 15:23:11 +0800
> +Subject: [PATCH 01/10] Remove superfluous variables
> +
> +Upstream-Status: Backport
> +---
> + rngd_linux.c | 3 ---
> + 1 file changed, 3 deletions(-)
> +
> +diff --git a/rngd_linux.c b/rngd_linux.c
> +index b473419..9eca968 100644
> +--- a/rngd_linux.c
> ++++ b/rngd_linux.c
> +@@ -58,10 +58,7 @@ extern int kent_pool_size;
> +  */
> + int default_watermark(void)
> + {
> +-      char psbuf[64], *p;
> +-      unsigned long ps;
> +       FILE *f;
> +-      size_t l;
> +       unsigned int wm = 4096; /* Default guess */
> +
> +       f = fopen("/proc/sys/kernel/random/poolsize", "r");
> +--
> +2.20.1
> +
> diff --git a/meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch b/meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch
> deleted file mode 100644
> index d4d28a01c4..0000000000
> --- a/meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -From 99b0efebd765803203686d89bc4f995bcb103e78 Mon Sep 17 00:00:00 2001
> -From: Hongxu Jia <hongxu.jia@windriver.com>
> -Date: Sat, 10 Nov 2018 09:53:19 +0800
> -Subject: [PATCH] configure.ac: fix typo
> -
> -Upstream-Status: Submitted [https://github.com/nhorman/rng-tools.git]
> -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> ----
> - configure.ac | 2 +-
> - 1 file changed, 1 insertion(+), 1 deletion(-)
> -
> -diff --git a/configure.ac b/configure.ac
> -index 4e799dc..0251928 100644
> ---- a/configure.ac
> -+++ b/configure.ac
> -@@ -62,7 +62,7 @@ AS_IF([test $target_cpu = powerpc64le], [AC_DEFINE([HAVE_DARN],1,[Enable DARN])]
> - AM_CONDITIONAL([JITTER], [false])
> -
> - AC_ARG_ENABLE(jitterentropy,
> --      AS_HELP_STRING([--disable-jitterntropy | --enable-jitterentropy=<path>],
> -+      AS_HELP_STRING([--disable-jitterentropy | --enable-jitterentropy=<path>],
> -       [Disable jitterentropy source, or specify its location]),
> -       [if [ test -d $enable_jitterentropy ]; then
> -               export LDFLAGS+=-L$enable_jitterentropy;
> ---
> -2.7.4
> -
> diff --git a/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch b/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch
> deleted file mode 100644
> index be60fe97f6..0000000000
> --- a/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch
> +++ /dev/null
> @@ -1,95 +0,0 @@
> -From 711e2f76890e3c5b08f64859d9fd913ddbec7d50 Mon Sep 17 00:00:00 2001
> -From: Christopher Larson <chris_larson@mentor.com>
> -Date: Mon, 22 Oct 2018 15:26:47 +0800
> -Subject: [PATCH 2/4] Add argument to control the libargp dependency
> -
> -This ensures that the builds are always deterministic. If the argument isn't
> -passed, the default behavior is to use libargp if the libc doesn't have argp.
> -
> -Upstream-Status: Pending
> -Signed-off-by: Christopher Larson <chris_larson@mentor.com>
> -
> -Rebase to 6.6
> -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> ----
> - configure.ac | 55 ++++++++++++++++++++++++++++++++++++-------------------
> - 1 file changed, 36 insertions(+), 19 deletions(-)
> -
> -diff --git a/configure.ac b/configure.ac
> -index c4a5dd8..dd1c30f 100644
> ---- a/configure.ac
> -+++ b/configure.ac
> -@@ -40,6 +40,13 @@ AC_ARG_WITH([nistbeacon],
> -       [with_nistbeacon=check]
> - )
> -
> -+AC_ARG_WITH([libargp],
> -+      AS_HELP_STRING([--without-libargp],
> -+              [Disable libargp support. Systems whose libc lacks argp can use libargp instead. (Default: check if libc lacks argp)]),
> -+      [with_libargp=$withval],
> -+      [with_libargp=check]
> -+)
> -+
> - dnl Make sure anyone changing configure.ac/Makefile.am has a clue
> - AM_MAINTAINER_MODE
> - AM_PROG_AS
> -@@ -135,27 +142,37 @@ AS_IF(
> -       ]
> - )
> -
> --dnl First check if we have argp available from libc
> --AC_LINK_IFELSE(
> --      [AC_LANG_PROGRAM(
> --              [#include <argp.h>],
> --              [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]
> --              )],
> --      [libc_has_argp="true"],
> --      [libc_has_argp="false"]
> -+dnl Determine if we need libargp: either user requested, or libc has no argp
> -+AS_IF(
> -+      [test "x$with_libargp" != "xyes"],
> -+      [
> -+              AC_LINK_IFELSE(
> -+                      [AC_LANG_PROGRAM(
> -+                              [#include <argp.h>],
> -+                              [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]
> -+                              )],
> -+                      [need_libargp=no],
> -+                      [need_libargp=yes
> -+                       if test "x$with_libargp" = "xno"; then
> -+                              AC_MSG_FAILURE([libargp disabled and libc does not have argp])
> -+                       fi]
> -+              )
> -+      ],
> -+      [need_libargp=yes],
> - )
> -
> --dnl If libc doesn't provide argp, then test for libargp
> --if test "$libc_has_argp" = "false" ; then
> --      AC_MSG_WARN("libc does not have argp")
> --      AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"])
> --
> --      if test "$have_argp" = "false"; then
> --              AC_MSG_ERROR("no libargp found")
> --      else
> --              LIBS+=" -largp"
> --      fi
> --fi
> -+dnl Check for libargp
> -+AS_IF(
> -+      [test "x$need_libargp" = "xyes"],
> -+      [
> -+              AC_CHECK_LIB(
> -+                      [argp],
> -+                      [argp_parse],
> -+                      [LIBS="$LIBS -largp"],
> -+                      [AC_MSG_FAILURE([libargp not found])]
> -+              )
> -+      ]
> -+)
> -
> - dnl -----------------
> - dnl Configure options
> ---
> -2.7.4
> -
> diff --git a/meta/recipes-support/rng-tools/rng-tools/0002-Fix-a-few-typos-in-log-messages.patch b/meta/recipes-support/rng-tools/rng-tools/0002-Fix-a-few-typos-in-log-messages.patch
> new file mode 100644
> index 0000000000..32163a5162
> --- /dev/null
> +++ b/meta/recipes-support/rng-tools/rng-tools/0002-Fix-a-few-typos-in-log-messages.patch
> @@ -0,0 +1,48 @@
> +From 93a1d001e51c6558e86161060b33c3785d509ac5 Mon Sep 17 00:00:00 2001
> +From: Ruben Kerkhof <ruben@rubenkerkhof.com>
> +Date: Wed, 17 Apr 2019 18:39:09 +0200
> +Subject: [PATCH 02/10] Fix a few typos in log messages
> +
> +---
> + rngd.c        | 4 ++--
> + rngd_jitter.c | 2 +-
> + 2 files changed, 3 insertions(+), 3 deletions(-)
> +
> +diff --git a/rngd.c b/rngd.c
> +index 0d4582a..b854eab 100644
> +--- a/rngd.c
> ++++ b/rngd.c
> +@@ -743,7 +743,7 @@ int main(int argc, char **argv)
> +                       message(LOG_CONS|LOG_INFO, "None");
> +               msg_squash = true;
> +       } else
> +-              message(LOG_DAEMON|LOG_INFO, "\nInitalizing available sources\n");
> ++              message(LOG_DAEMON|LOG_INFO, "\nInitializing available sources\n");
> +
> +       /* Init entropy sources */
> +
> +@@ -753,7 +753,7 @@ int main(int argc, char **argv)
> +                               ent_sources++;
> +                               entropy_sources[i].fipsctx = malloc(sizeof(fips_ctx_t));
> +                               fips_init(entropy_sources[i].fipsctx, discard_initial_data(&entropy_sources[i]));
> +-                              message(LOG_INFO | LOG_DAEMON, "Initalizing entropy source %s\n",
> ++                              message(LOG_INFO | LOG_DAEMON, "Initializing entropy source %s\n",
> +                                       entropy_sources[i].rng_sname);
> +                       } else {
> +                               message(LOG_ERR | LOG_DAEMON, "Failed to init entropy source %s\n",
> +diff --git a/rngd_jitter.c b/rngd_jitter.c
> +index f68e2ca..23d96b3 100644
> +--- a/rngd_jitter.c
> ++++ b/rngd_jitter.c
> +@@ -440,7 +440,7 @@ int init_jitter_entropy_source(struct rng *ent_src)
> +                * Temporarily disable aes so we don't try to use it during init
> +                */
> +
> +-              message(LOG_CONS|LOG_INFO, "Initalizing AES buffer\n");
> ++              message(LOG_CONS|LOG_INFO, "Initializing AES buffer\n");
> +               aes_buf = malloc(tdata[0].buf_sz);
> +               ent_src->rng_options[JITTER_OPT_USE_AES].int_val = 0;
> +               if (xread_jitter(key, AES_BLOCK, ent_src)) {
> +--
> +2.20.1
> +
> diff --git a/meta/recipes-support/rng-tools/rng-tools/0003-Fix-up-some-compile-warnings.patch b/meta/recipes-support/rng-tools/rng-tools/0003-Fix-up-some-compile-warnings.patch
> new file mode 100644
> index 0000000000..63ffe281bc
> --- /dev/null
> +++ b/meta/recipes-support/rng-tools/rng-tools/0003-Fix-up-some-compile-warnings.patch
> @@ -0,0 +1,172 @@
> +From 13beeeeed455306daf899f9e8a97b8b84f2e6c42 Mon Sep 17 00:00:00 2001
> +From: Neil Horman <nhorman@tuxdriver.com>
> +Date: Mon, 29 Apr 2019 15:26:42 -0400
> +Subject: [PATCH 03/10] Fix up some compile warnings
> +
> +fixes issue https://github.com/nhorman/rng-tools/issues/57
> +
> +Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> +
> +Upstream-Status: Backport
> +---
> + rngd.c            | 10 +++++-----
> + rngd_jitter.c     | 14 +++++---------
> + rngd_linux.c      |  8 ++++++--
> + rngd_nistbeacon.c |  2 +-
> + 4 files changed, 17 insertions(+), 17 deletions(-)
> +
> +diff --git a/rngd.c b/rngd.c
> +index b854eab..1b3d73d 100644
> +--- a/rngd.c
> ++++ b/rngd.c
> +@@ -153,7 +153,7 @@ static enum {
> +       ENT_JITTER,
> +       ENT_PKCS11,
> +       ENT_MAX
> +-} entropy_indexes;
> ++} entropy_indexes __attribute__((used));
> +
> +
> + static struct rng_option drng_options[] = {
> +@@ -358,7 +358,7 @@ static int find_ent_src_idx(const char *name_idx)
> +       } else {
> +               idx = strtoul(name_idx, NULL, 10);
> +               if ((idx == LONG_MAX) || (idx >= ENT_MAX)) {
> +-                      message(LOG_CONS|LOG_INFO, "option index out of range: %lu\n", idx);
> ++                      message(LOG_CONS|LOG_INFO, "option index out of range: %u\n", idx);
> +                       return -ERANGE;
> +               }
> +               message(LOG_CONS|LOG_INFO, "Note, reference of entropy sources by index "
> +@@ -449,7 +449,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
> +                       }
> +                       options++;
> +               }
> +-              message(LOG_CONS|LOG_INFO, "Option %s not found for source idx %d\n", optkey, idx);
> ++              message(LOG_CONS|LOG_INFO, "Option %s not found for source idx %lu\n", optkey, idx);
> +               return -ERANGE;
> +               break;
> +
> +@@ -828,10 +828,10 @@ int main(int argc, char **argv)
> +               test_time = ((test_time * NSECS_IN_SECOND) + (end_test.tv_nsec - start_test.tv_nsec)) / NSECS_IN_SECOND;
> +
> +               if ((sum_entropy/test_time) >= MEGABITS) {
> +-                      message(LOG_CONS|LOG_INFO, "\nEntropy rate: %6.4g Mbits/sec averaged over %d iterations for %6.4g seconds\n",
> ++                      message(LOG_CONS|LOG_INFO, "\nEntropy rate: %6.4g Mbits/sec averaged over %lu iterations for %6.4g seconds\n",
> +                               (sum_entropy/test_time/MEGABITS), test_iterations, test_time);
> +               } else {
> +-                      message(LOG_CONS|LOG_INFO, "\nEntropy rate: %6.4g Kbits/sec averaged over %d iterations for %6.4g seconds\n",
> ++                      message(LOG_CONS|LOG_INFO, "\nEntropy rate: %6.4g Kbits/sec averaged over %lu iterations for %6.4g seconds\n",
> +                               (sum_entropy/test_time/KILOBITS), test_iterations, test_time);
> +               }
> +       }
> +diff --git a/rngd_jitter.c b/rngd_jitter.c
> +index 23d96b3..c08c0d2 100644
> +--- a/rngd_jitter.c
> ++++ b/rngd_jitter.c
> +@@ -38,8 +38,6 @@
> + #include "exits.h"
> + #include "rngd_entsource.h"
> +
> +-static struct rand_data *ec = NULL;
> +-
> + static int num_threads = 0;
> + struct thread_data {
> +       int core_id;
> +@@ -56,7 +54,7 @@ static struct thread_data *tdata;
> + static pthread_t *threads;
> + int pipefds[2];
> +
> +-char *aes_buf;
> ++unsigned char *aes_buf;
> +
> + #ifdef HAVE_LIBGCRYPT
> +
> +@@ -147,13 +145,12 @@ int xread_jitter(void *buf, size_t size, struct rng *ent_src)
> +       ssize_t request;
> +       int rc = 1;
> +       int retry_count = 0;
> +-      struct timespec sleep;
> +       ssize_t need=size;
> +       char *bptr = buf;
> +       size_t total;
> + try_again:
> +       while (need) {
> +-              message(LOG_DAEMON|LOG_DEBUG, "xread_jitter requests %d bytes from pipe\n", need);
> ++              message(LOG_DAEMON|LOG_DEBUG, "xread_jitter requests %lu bytes from pipe\n", need);
> +               request = read(pipefds[0], &bptr[size-need], need);
> +               if ((request < need) && ent_src->rng_options[JITTER_OPT_USE_AES].int_val) {
> +                       message(LOG_DAEMON|LOG_DEBUG, "xread_jitter falls back to AES\n");
> +@@ -173,7 +170,7 @@ try_again:
> +                               message(LOG_DAEMON|LOG_DEBUG, "failed read: %s\n", strerror(errno));
> +                               pthread_yield();
> +                       } else
> +-                              message(LOG_DAEMON|LOG_DEBUG, "request of random data returns %d less than need %d\n",
> ++                              message(LOG_DAEMON|LOG_DEBUG, "request of random data returns %ld less than need %ld\n",
> +                                       request, need);
> +                       if (retry_count < ent_src->rng_options[JITTER_OPT_RETRY_COUNT].int_val) {
> +                               retry_count++;
> +@@ -185,7 +182,7 @@ try_again:
> +                       goto out;
> +               }
> +
> +-              message(LOG_DAEMON|LOG_DEBUG, "xread_jitter gets %d bytes\n", request);
> ++              message(LOG_DAEMON|LOG_DEBUG, "xread_jitter gets %ld bytes\n", request);
> +               need -= request;
> +       }
> +
> +@@ -236,7 +233,6 @@ static void *thread_entropy_task(void *data)
> +       cpu_set_t cpuset;
> +
> +       ssize_t ret;
> +-      size_t need;
> +       struct thread_data *me = data;
> +       char *tmpbuf;
> +       struct timespec start, end;
> +@@ -287,7 +283,7 @@ static void *thread_entropy_task(void *data)
> +               while(written != me->buf_sz) {
> +                       message(LOG_DAEMON|LOG_DEBUG, "Writing to pipe\n");
> +                       ret = write(me->pipe_fd, &tmpbuf[written], me->buf_sz - written);
> +-                      message(LOG_DAEMON|LOG_DEBUG, "DONE Writing to pipe with return %d\n", ret);
> ++                      message(LOG_DAEMON|LOG_DEBUG, "DONE Writing to pipe with return %ld\n", ret);
> +                       if (first)
> +                               me->active = 1;
> +                       if (ret < 0)
> +diff --git a/rngd_linux.c b/rngd_linux.c
> +index 9eca968..51c38ac 100644
> +--- a/rngd_linux.c
> ++++ b/rngd_linux.c
> +@@ -59,12 +59,16 @@ extern int kent_pool_size;
> + int default_watermark(void)
> + {
> +       FILE *f;
> +-      unsigned int wm = 4096; /* Default guess */
> ++      unsigned int wm;        /* Default guess */
> +
> +       f = fopen("/proc/sys/kernel/random/poolsize", "r");
> +       if (!f)
> +               goto err;
> +-      fscanf(f,"%d", &wm);
> ++      /*
> ++       * Default to 4096 if fscanf fails
> ++       */
> ++      if(fscanf(f,"%d", &wm) < 1)
> ++              wm = 4096;
> +       kent_pool_size = wm;
> +       wm = wm*3/4;
> + err:
> +diff --git a/rngd_nistbeacon.c b/rngd_nistbeacon.c
> +index 10fc4a4..aafb300 100644
> +--- a/rngd_nistbeacon.c
> ++++ b/rngd_nistbeacon.c
> +@@ -414,7 +414,7 @@ static int get_nist_record()
> +                       goto out;
> +               }
> +
> +-              message(LOG_DAEMON|LOG_DEBUG, "NIST: timestamp is %d, frequency is %d, tv_sec is %d\n",
> ++              message(LOG_DAEMON|LOG_DEBUG, "NIST: timestamp is %lu, frequency is %u, tv_sec is %lu\n",
> +                       block.timestamp, block.frequency, ct.tv_sec);
> +               if (block.timestamp + block.frequency >= ct.tv_sec) {
> +                       message(LOG_DAEMON|LOG_ERR, "Multiple nist reads in same frequency period of %d sec\n",
> +--
> +2.20.1
> +
> diff --git a/meta/recipes-support/rng-tools/rng-tools/0004-Fix-a-race-condition-on-shutdown.patch b/meta/recipes-support/rng-tools/rng-tools/0004-Fix-a-race-condition-on-shutdown.patch
> new file mode 100644
> index 0000000000..c4e982551a
> --- /dev/null
> +++ b/meta/recipes-support/rng-tools/rng-tools/0004-Fix-a-race-condition-on-shutdown.patch
> @@ -0,0 +1,55 @@
> +From 8203e08efd8ae6de110bc9bcc36f02e2302c8f6a Mon Sep 17 00:00:00 2001
> +From: Neil Horman <nhorman@tuxdriver.com>
> +Date: Thu, 23 May 2019 12:36:03 -0400
> +Subject: [PATCH 04/10] Fix a race condition on shutdown
> +
> +It was possible that, during shutdown, a thread may exit prior to us
> +checking for it being exited, leading us to block on a read of a pipe
> +that was never going to be written to, causing a shutdown hang.  Fix it
> +by using pthread_kill to kill each thread instead
> +
> +Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> +
> +Upstream-Status: Backport
> +---
> + rngd_jitter.c | 12 ++++--------
> + 1 file changed, 4 insertions(+), 8 deletions(-)
> +
> +diff --git a/rngd_jitter.c b/rngd_jitter.c
> +index c08c0d2..979e613 100644
> +--- a/rngd_jitter.c
> ++++ b/rngd_jitter.c
> +@@ -469,26 +469,22 @@ void close_jitter_entropy_source(struct rng *ent_src)
> +       for (i=0; i < num_threads; i++)
> +               tdata[i].active = 0;
> +
> +-      flags = fcntl(pipefds[1], F_GETFL, 0);
> +-      flags |= O_NONBLOCK;
> +-      fcntl(pipefds[1], F_SETFL, &flags);
> ++      close(pipefds[1]);
> +
> +       /* And wait for completion of each thread */
> +       for (i=0; i < num_threads; i++) {
> +               message(LOG_DAEMON|LOG_DEBUG, "Checking on done for thread %d\n", i);
> +               while (!tdata[i].done)
> ++                      pthread_kill(threads[i], SIGINT);
> +                       if(tdata[i].done) {
> +                               message(LOG_DAEMON|LOG_INFO, "Closing thread %d\n", tdata[i].core_id);
> +                               pthread_join(threads[i], NULL);
> +                               jent_entropy_collector_free(tdata[i].ec);
> +-                      } else {
> +-                              read(pipefds[0], tmpbuf, 1024);
> ++                      } else
> +                               sched_yield();
> +-                      }
> +       }
> +
> +-      close(pipefds[2]);
> +-      close(pipefds[1]);
> ++      close(pipefds[0]);
> +       free(tdata);
> +       free(threads);
> +       return;
> +--
> +2.20.1
> +
> diff --git a/meta/recipes-support/rng-tools/rng-tools/0005-rngd-prioritize-faster-sources-of-entropy.patch b/meta/recipes-support/rng-tools/rng-tools/0005-rngd-prioritize-faster-sources-of-entropy.patch
> new file mode 100644
> index 0000000000..2f553fc606
> --- /dev/null
> +++ b/meta/recipes-support/rng-tools/rng-tools/0005-rngd-prioritize-faster-sources-of-entropy.patch
> @@ -0,0 +1,72 @@
> +From ba8adb4c6e275e85f906922b6fcf18b4ac16534e Mon Sep 17 00:00:00 2001
> +From: Neil Horman <nhorman@tuxdriver.com>
> +Date: Tue, 4 Jun 2019 10:51:53 -0400
> +Subject: [PATCH 05/10] rngd: prioritize faster sources of entropy
> +
> +We have two broad categories of entropy sources in rngd.  Fast sources
> +and slow sources.  Slow sources (like jitterentropy) provided entropy to
> +systems that have no other entropy source, but can actually hinder
> +performance when large amounts of entropy are requested (consider a case
> +where the entropy pool is empty, and the rdrand source can provide
> +twice the entropy in half the time that jitterentropy can).  Its still
> +valuable to have jitterentropy enabled, but we shouldn't be extracting
> +entropy from it, if a faster source can provide it.  So lets prioritize
> +our fast sources over the slow ones.  in the do_loop, lets by default
> +not collect entropy from sources marked as slow.  If we pass
> +through an interation of the do_loop with no entropy collected, then
> +lets include the slow sources on the next pass to give us a better
> +chance at collection.  Then, when entropy is gathered, we can go back to
> +only using the fast sources.
> +
> +Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> +
> +Upstream-Status: Backport
> +---
> + rngd.c | 19 +++++++++++++++++++
> + 1 file changed, 19 insertions(+)
> +
> +diff --git a/rngd.c b/rngd.c
> +index 1b3d73d..a086949 100644
> +--- a/rngd.c
> ++++ b/rngd.c
> +@@ -577,6 +577,7 @@ static void do_loop(int random_step)
> +       int i;
> +       int retval;
> +       struct rng *iter;
> ++      bool try_slow_sources = false;
> +
> +       int (*random_add_fn)(struct rng *rng, int random_step,
> +               unsigned char *buf, fips_ctx_t *fipsctx_in);
> +@@ -587,11 +588,29 @@ continue_trying:
> +       for (no_work = 0; no_work < 100; no_work = (work_done ? 0 : no_work+1)) {
> +
> +               work_done = false;
> ++
> ++              /*
> ++               * Exclude slow sources when faster sources are working well
> ++               * sources like jitterentropy can provide some entropy when needed
> ++               * but can actually hinder performance when large amounts of entropy are needed
> ++               * owing to the fact that they may block while generating said entropy
> ++               * So, lets prioritize the faster sources.  Start by only trying to collect
> ++               * entropy from the fast sources, then iff that fails, start including the slower
> ++               * sources as well.  Once we get some entropy, return to only using fast sources
> ++               */
> ++              if (no_work)
> ++                      try_slow_sources = true;
> ++              else
> ++                      try_slow_sources = false;
> ++
> +               for (i = 0; i < ENT_MAX; ++i)
> +               {
> +                       int rc;
> +                       /*message(LOG_CONS|LOG_INFO, "I is %d\n", i);*/
> +                       iter = &entropy_sources[i];
> ++                      if (!try_slow_sources && iter->flags.slow_source)
> ++                              continue;
> ++
> +               retry_same:
> +                       if (!server_running)
> +                               return;
> +--
> +2.20.1
> +
> diff --git a/meta/recipes-support/rng-tools/rng-tools/0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch b/meta/recipes-support/rng-tools/rng-tools/0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch
> new file mode 100644
> index 0000000000..5bd6a4a01c
> --- /dev/null
> +++ b/meta/recipes-support/rng-tools/rng-tools/0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch
> @@ -0,0 +1,27 @@
> +From 93abcd77d9b5bae9c2018cf8fedb27c87d0ca5e6 Mon Sep 17 00:00:00 2001
> +From: Nicola Lunghi <25422924+nicola-lunghi@users.noreply.github.com>
> +Date: Wed, 5 Jun 2019 16:38:21 +0100
> +Subject: [PATCH 06/10] rngd_jitter: replace non standard pthread_yield with
> + sched_yield
> +
> +Upstream-Status: Backport
> +---
> + rngd_jitter.c | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/rngd_jitter.c b/rngd_jitter.c
> +index 979e613..54070ae 100644
> +--- a/rngd_jitter.c
> ++++ b/rngd_jitter.c
> +@@ -168,7 +168,7 @@ try_again:
> +               } else if (request < need) {
> +                       if (request == -1) {
> +                               message(LOG_DAEMON|LOG_DEBUG, "failed read: %s\n", strerror(errno));
> +-                              pthread_yield();
> ++                              sched_yield();
> +                       } else
> +                               message(LOG_DAEMON|LOG_DEBUG, "request of random data returns %ld less than need %ld\n",
> +                                       request, need);
> +--
> +2.20.1
> +
> diff --git a/meta/recipes-support/rng-tools/rng-tools/0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch b/meta/recipes-support/rng-tools/rng-tools/0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch
> new file mode 100644
> index 0000000000..003049fb7e
> --- /dev/null
> +++ b/meta/recipes-support/rng-tools/rng-tools/0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch
> @@ -0,0 +1,73 @@
> +From ee078086ee8209f593f16ac5f6393fb1a95452c4 Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?G=C3=B6kt=C3=BCrk=20Y=C3=BCksek?= <gokturk@gentoo.org>
> +Date: Wed, 5 Jun 2019 13:54:14 -0400
> +Subject: [PATCH 07/10] Make rngd_pkcs11.c explicitly link against libcrypto
> +
> +In function init_pkcs11_entropy_source(), there is a call to
> +ERR_reason_error_string(), which is defined in libcrypto. This causes
> +linking problems for rng-tools under certain configurations:
> +
> +$ ./configure --disable-jitterentropy --without-nistbeacon --with-pkcs11
> +...
> +$ make
> +...
> +gcc     -pthread -g -O2 -pthread   -o rngd rngd-rngd.o rngd-rngd_entsource.o rngd-rngd_linux.o rngd-util.o  rngd-rngd_rdrand.o rdrand_asm.o   rngd-rngd_pkcs11.o librngd.a -lsysfs -lgcrypt -lsysfs  -lp11     -lgcrypt -lsysfs
> +/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: rngd-rngd_pkcs11.o: undefined reference to symbol 'ERR_reason_error_string@@OPENSSL_1_1_0'
> +/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib64/libcrypto.so.1.1: error adding symbols: DSO missing from command line
> +collect2: error: ld returned 1 exit status
> +make[2]: *** [Makefile:609: rngd] Error 1
> +make[2]: Leaving directory '/tmp/rng-tools'
> +make[1]: *** [Makefile:888: all-recursive] Error 1
> +make[1]: Leaving directory '/tmp/rng-tools'
> +make: *** [Makefile:458: all] Error 2
> +
> +This symbol is defined in libcrypto:
> +
> +$ readelf --dyn-syms /usr/lib64/libcrypto.so | grep ERR_reason_error_string
> +   314: 000000000012cf60   155 FUNC    GLOBAL DEFAULT   12 ERR_reason_error_string@@OPENSSL_1_1_0
> +
> +Linking rngd against libcrypto when pkcs11 is enabled fixes the issue.
> +
> +Bug: https://bugs.gentoo.org/684228
> +
> +Upstream-Status: Backport
> +---
> + Makefile.am  | 4 ++--
> + configure.ac | 1 +
> + 2 files changed, 3 insertions(+), 2 deletions(-)
> +
> +diff --git a/Makefile.am b/Makefile.am
> +index ff56efe..db4fcfc 100644
> +--- a/Makefile.am
> ++++ b/Makefile.am
> +@@ -27,13 +27,13 @@ if JITTER
> + rngd_SOURCES  += rngd_jitter.c
> + endif
> +
> +-rngd_LDADD    = librngd.a -lsysfs $(LIBS) ${libp11_LIBS} ${libcurl_LIBS} ${libxml2_LIBS} ${openssl_LIBS} $(PTHREAD_LIBS)
> ++rngd_LDADD    = librngd.a -lsysfs $(LIBS) ${libp11_LIBS} ${libcrypto_LIBS} ${libcurl_LIBS} ${libxml2_LIBS} ${openssl_LIBS} $(PTHREAD_LIBS)
> +
> + if PKCS11
> + rngd_SOURCES  += rngd_pkcs11.c
> + endif
> +
> +-rngd_CFLAGS   = ${pkcs11_CFLAGS} ${libp11_CFLAGS} ${libxml2_CFLAGS} ${openssl_CFLAGS} $(PTHREAD_CFLAGS)
> ++rngd_CFLAGS   = ${pkcs11_CFLAGS} ${libp11_CFLAGS} ${libcrypto_CFLAGS} ${libxml2_CFLAGS} ${openssl_CFLAGS} $(PTHREAD_CFLAGS)
> + rngd_LDFLAGS  = $(PTHREAD_CFLAGS)
> +
> + rngtest_SOURCES       = exits.h stats.h stats.c rngtest.c
> +diff --git a/configure.ac b/configure.ac
> +index d00a6f1..29a46fa 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -102,6 +102,7 @@ AS_IF(
> +       [ test "x$with_pkcs11" != "xno"],
> +       [
> +               PKG_CHECK_MODULES([libp11], [libp11], [], [AC_MSG_ERROR([libp11 is required])])
> ++              PKG_CHECK_MODULES([libcrypto], [libcrypto], [], [AC_MSG_ERROR([libcrypto is required])])
> +               AC_DEFINE([HAVE_PKCS11],1,[Enable PKCS11])
> +       ]
> + )
> +--
> +2.20.1
> +
> diff --git a/meta/recipes-support/rng-tools/rng-tools/0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch b/meta/recipes-support/rng-tools/rng-tools/0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch
> new file mode 100644
> index 0000000000..e50bbbc8b8
> --- /dev/null
> +++ b/meta/recipes-support/rng-tools/rng-tools/0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch
> @@ -0,0 +1,103 @@
> +From 53a6f99e0bf9f70fce659268ab0354760d8f7586 Mon Sep 17 00:00:00 2001
> +From: Christopher Larson <chris_larson@mentor.com>
> +Date: Mon, 15 Feb 2016 15:59:58 -0700
> +Subject: [PATCH 08/10] configure:If the libc is lacking argp, use libargp
> +
> +This is the squash of two patches from yocto recipe
> +that are needed in case the libc used lacks argp
> +to specify to use the libargp library.
> +
> +Needed in particular for musl
> +
> +0001: Patch pulled from Gentoo:
> +
> +    On glibc systems, argp is provided by libc.  However, on
> +    uclibc and other systems which lack argp in their C library,
> +    argp might be provided by a stand alone library, libargp.
> +    This patch adds tests to the build system to find who provides
> +    argp.
> +
> +    X-Gentoo-Bug: 292191
> +    X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=292191
> +    Reported-by: Ed Wildgoose <gentoo@wildgooses.com>
> +    Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
> +
> +    Upstream-Status: Pending
> +    Signed-off-by: Christopher Larson <chris_larson@mentor.com>
> +
> +0002: Add argument to control the libargp dependency
> +
> +    This ensures that the builds are always deterministic. If the argument isn't
> +    passed, the default behavior is to use libargp if the libc doesn't have argp.
> +
> +    Upstream-Status: Pending
> +    Signed-off-by: Christopher Larson <chris_larson@mentor.com>
> +
> +    Rebase to 6.6
> +    Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> +
> +Signed-off-by: Nicola Lunghi <25422924+nicola-lunghi@users.noreply.github.com>
> +---
> + configure.ac | 39 +++++++++++++++++++++++++++++++++++++++
> + 1 file changed, 39 insertions(+)
> +
> +diff --git a/configure.ac b/configure.ac
> +index 29a46fa..671c174 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -47,6 +47,13 @@ AC_ARG_WITH([pkcs11],
> +       [with_pkcs11=check]
> + )
> +
> ++AC_ARG_WITH([libargp],
> ++      AS_HELP_STRING([--without-libargp],
> ++              [Disable libargp support. Systems whose libc lacks argp can use libargp instead. (Default: check if libc lacks argp)]),
> ++      [with_libargp=$withval],
> ++      [with_libargp=check]
> ++)
> ++
> + dnl Make sure anyone changing configure.ac/Makefile.am has a clue
> + AM_MAINTAINER_MODE
> + AM_PROG_AS
> +@@ -153,6 +160,38 @@ AS_IF(
> +       ]
> + )
> +
> ++dnl Determine if we need libargp: either user requested, or libc has no argp
> ++AS_IF(
> ++      [test "x$with_libargp" != "xyes"],
> ++      [
> ++              AC_LINK_IFELSE(
> ++                      [AC_LANG_PROGRAM(
> ++                              [#include <argp.h>],
> ++                              [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]
> ++                              )],
> ++                      [need_libargp=no],
> ++                      [need_libargp=yes
> ++                       if test "x$with_libargp" = "xno"; then
> ++                              AC_MSG_FAILURE([libargp disabled and libc does not have argp])
> ++                       fi]
> ++              )
> ++      ],
> ++      [need_libargp=yes],
> ++)
> ++
> ++dnl Check for libargp
> ++AS_IF(
> ++      [test "x$need_libargp" = "xyes"],
> ++      [
> ++              AC_CHECK_LIB(
> ++                      [argp],
> ++                      [argp_parse],
> ++                      [LIBS="$LIBS -largp"],
> ++                      [AC_MSG_FAILURE([libargp not found])]
> ++              )
> ++      ]
> ++)
> ++
> + dnl -----------------
> + dnl Configure options
> + dnl -----------------
> +--
> +2.20.1
> +
> diff --git a/meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch b/meta/recipes-support/rng-tools/rng-tools/0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch
> similarity index 94%
> rename from meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch
> rename to meta/recipes-support/rng-tools/rng-tools/0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch
> index 614adab27f..132736d75a 100644
> --- a/meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch
> +++ b/meta/recipes-support/rng-tools/rng-tools/0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch
> @@ -1,7 +1,7 @@
> -From d8b1bb8edd99b2898720b4f10d292a67d532db48 Mon Sep 17 00:00:00 2001
> +From ea266db777f52bfd3611bacb0dedca81437adb2b Mon Sep 17 00:00:00 2001
>  From: "Francisco Blas Izquierdo Riera (klondike)" <klondike@gentoo.org>
>  Date: Mon, 22 Oct 2018 15:29:36 +0800
> -Subject: [PATCH 4/4] Fix assemby textrels on rdrand_asm.S on PIC x86
> +Subject: [PATCH 09/10] Fix assemby textrels on rdrand_asm.S on PIC x86
>  MIME-Version: 1.0
>  Content-Type: text/plain; charset=UTF-8
>  Content-Transfer-Encoding: 8bit
> @@ -23,7 +23,7 @@ Reported-by: cilly <cilly@cilly.mine.nu>
>  Reported-by: Manuel Rüger <mrueg@gentoo.org>
>  Tested-by: Anthony Basile <blueness@gentoo.org>
>
> -Upstream-Status: Pending
> +Upstream-Status: Submitted
>  ---
>   rdrand_asm.S | 27 +++++++++++++++++++++++++++
>   1 file changed, 27 insertions(+)
> @@ -110,5 +110,5 @@ index b5d260a..7811cf2 100644
>         .balign 64
>   aes_round_keys:
>  --
> -2.7.4
> +2.20.1
>
> diff --git a/meta/recipes-support/rng-tools/rng-tools/underquote.patch b/meta/recipes-support/rng-tools/rng-tools/0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch
> similarity index 77%
> rename from meta/recipes-support/rng-tools/rng-tools/underquote.patch
> rename to meta/recipes-support/rng-tools/rng-tools/0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch
> index aa4bbcb346..fc4de8b6e2 100644
> --- a/meta/recipes-support/rng-tools/rng-tools/underquote.patch
> +++ b/meta/recipes-support/rng-tools/rng-tools/0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch
> @@ -1,8 +1,8 @@
> -From 03fe7efa1bc04a83fb9b6787998e7baa7ee90646 Mon Sep 17 00:00:00 2001
> +From f7c2422be181d5f858712da9e63b14b602d82fac Mon Sep 17 00:00:00 2001
>  From: Richard Purdie <richard.purdie@linuxfoundation.org>
>  Date: Mon, 22 Oct 2018 15:27:41 +0800
> -Subject: [PATCH 3/4] Fix underquoted m4 entry. This causes a failure if gcrypt
> - isn't present:
> +Subject: [PATCH 10/10] Fix underquoted m4 entry. This causes a failure if
> + gcrypt isn't present:
>
>  | configure: libgcrypt support disabled
>  | ../rng-tools-5/configure: line 4345: ac_fn_c_try_link: command not found
> @@ -11,7 +11,7 @@ Subject: [PATCH 3/4] Fix underquoted m4 entry. This causes a failure if gcrypt
>  RP
>  2016/2/16
>
> -Upstream-Status: Pending
> +Upstream-Status: Submitted
>
>  Rebase to 6.6
>  Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> @@ -20,10 +20,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
>  diff --git a/configure.ac b/configure.ac
> -index dd1c30f..88d2be3 100644
> +index 671c174..81959f3 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -124,7 +124,7 @@ AS_IF(
> +@@ -142,7 +142,7 @@ AS_IF(
>         [test "x$with_libgcrypt" != "xno"],
>         [
>                 AC_CHECK_HEADER([gcrypt.h],
> @@ -32,7 +32,7 @@ index dd1c30f..88d2be3 100644
>                                 [gcrypt],
>                                 [gcry_check_version], ,
>                                 [
> -@@ -133,7 +133,7 @@ AS_IF(
> +@@ -151,7 +151,7 @@ AS_IF(
>                                                 AC_MSG_NOTICE([libgcrypt support disabled])
>                                         fi
>                                 ]
> @@ -42,5 +42,5 @@ index dd1c30f..88d2be3 100644
>                                 AC_MSG_FAILURE([libgcrypt headers not found]); else
>                                 AC_MSG_NOTICE([libgcrypt support disabled])
>  --
> -2.7.4
> +2.20.1
>
> diff --git a/meta/recipes-support/rng-tools/rng-tools_6.6.bb b/meta/recipes-support/rng-tools/rng-tools_6.7.bb
> similarity index 72%
> rename from meta/recipes-support/rng-tools/rng-tools_6.6.bb
> rename to meta/recipes-support/rng-tools/rng-tools_6.7.bb
> index 41959a2695..9cc5951345 100644
> --- a/meta/recipes-support/rng-tools/rng-tools_6.6.bb
> +++ b/meta/recipes-support/rng-tools/rng-tools_6.7.bb
> @@ -10,16 +10,21 @@ DEPENDS = "sysfsutils"
>
>  SRC_URI = "\
>      git://github.com/nhorman/rng-tools.git \
> -    file://0001-If-the-libc-is-lacking-argp-use-libargp.patch \
> -    file://0002-Add-argument-to-control-the-libargp-dependency.patch \
> -    file://underquote.patch \
> -    file://rng-tools-5-fix-textrels-on-PIC-x86.patch \
> -    file://0001-configure.ac-fix-typo.patch \
> +    file://0001-Remove-superfluous-variables.patch \
> +    file://0002-Fix-a-few-typos-in-log-messages.patch \
> +    file://0003-Fix-up-some-compile-warnings.patch \
> +    file://0004-Fix-a-race-condition-on-shutdown.patch \
> +    file://0005-rngd-prioritize-faster-sources-of-entropy.patch \
> +    file://0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch \
> +    file://0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch \
> +    file://0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch \
> +    file://0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch \
> +    file://0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch \
>      file://init \
>      file://default \
>      file://rngd.service \
>  "
> -SRCREV = "4ebc21d6f387bb7b4b3f6badc429e27b21c0a6ee"
> +SRCREV = "7435d1243d73525206ab476c02abf2dcea0a3fa1"
>
>  S = "${WORKDIR}/git"
>
> @@ -31,6 +36,7 @@ PACKAGECONFIG_libc-musl = "libargp libjitterentropy"
>  PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone,"
>  PACKAGECONFIG[libgcrypt] = "--with-libgcrypt,--without-libgcrypt,libgcrypt,"
>  PACKAGECONFIG[libjitterentropy] = "--enable-jitterentropy,--disable-jitterentropy,libjitterentropy"
> +PACKAGECONFIG[libpkcs11] = "--with-pkcs11,--without-pkcs11,libp11"
>  PACKAGECONFIG[nistbeacon] = "--with-nistbeacon,--without-nistbeacon,curl libxml2 openssl"
>
>  INITSCRIPT_NAME = "rng-tools"
> --
> 2.20.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 3/3] rng-tools: armonize systemd and sysvinit files
  2019-06-06 15:18 ` [PATCH v2 3/3] rng-tools: armonize systemd and sysvinit files Nicola Lunghi
@ 2019-06-06 16:21   ` Burton, Ross
  0 siblings, 0 replies; 8+ messages in thread
From: Burton, Ross @ 2019-06-06 16:21 UTC (permalink / raw)
  To: Nicola Lunghi; +Cc: OE-core

Do you mean "harmonise?"

Ross

On Thu, 6 Jun 2019 at 16:18, Nicola Lunghi <nick83ola@gmail.com> wrote:
>
> this commit will permit to have a default file
> both in the systemd and in the sysvinit file
>
> Also reorganize the install_append function
>
> Signed-off-by: Nicola Lunghi <nick83ola@gmail.com>
> ---
>  .../rng-tools/rng-tools/default               |  3 +--
>  meta/recipes-support/rng-tools/rng-tools/init | 21 ++++++-----------
>  .../rng-tools/rng-tools/rngd.service          |  4 ++--
>  .../rng-tools/rng-tools_6.7.bb                | 23 ++++++++-----------
>  4 files changed, 19 insertions(+), 32 deletions(-)
>
> diff --git a/meta/recipes-support/rng-tools/rng-tools/default b/meta/recipes-support/rng-tools/rng-tools/default
> index ab7cd9327f..b9f8e03635 100644
> --- a/meta/recipes-support/rng-tools/rng-tools/default
> +++ b/meta/recipes-support/rng-tools/rng-tools/default
> @@ -1,2 +1 @@
> -# Specify rng device
> -RNG_DEVICE=/dev/hwrng
> +EXTRA_ARGS="-r /dev/hwrng"
> diff --git a/meta/recipes-support/rng-tools/rng-tools/init b/meta/recipes-support/rng-tools/rng-tools/init
> index 7cf78393a4..13f0ecd37c 100644
> --- a/meta/recipes-support/rng-tools/rng-tools/init
> +++ b/meta/recipes-support/rng-tools/rng-tools/init
> @@ -1,26 +1,19 @@
> -#! /bin/sh
> +#!/bin/sh
>  #
>  # This is an init script for openembedded
> -# Copy it to /etc/init.d/rng-tools and type
> +# Copy it to @SYSCONFDIR@/init.d/rng-tools and type
>  # > update-rc.d rng-tools defaults 60
>  #
>
> -rngd=/usr/sbin/rngd
> +rngd=@SBINDIR@/rngd
>  test -x "$rngd" || exit 1
>
> -if [ -e /etc/default/rng-tools ]; then
> -    . /etc/default/rng-tools
> -fi
> -
> -if [ -n "$RNG_DEVICE" ]; then
> -    EXTRA_ARGS="-- -r $RNG_DEVICE"
> -fi
> -
> +[ -r @SYSCONFDIR@/default/rng-tools ] && . "@SYSCONFDIR@/default/rng-tools"
>
>  case "$1" in
>    start)
>      echo -n "Starting random number generator daemon"
> -    start-stop-daemon -S -q -x $rngd $EXTRA_ARGS
> +    start-stop-daemon -S -q -x $rngd -- $EXTRA_ARGS
>      echo "."
>      ;;
>    stop)
> @@ -38,11 +31,11 @@ case "$1" in
>      start-stop-daemon -K -q -n rngd
>      echo "."
>      echo -n "Starting random number generator daemon"
> -    start-stop-daemon -S -q -x $rngd $EXTRA_ARGS
> +    start-stop-daemon -S -q -x $rngd -- $EXTRA_ARGS
>      echo "."
>      ;;
>    *)
> -    echo "Usage: /etc/init.d/rng-tools {start|stop|reload|restart|force-reload}"
> +    echo "Usage: @SYSCONFDIR@/init.d/rng-tools {start|stop|reload|restart|force-reload}"
>      exit 1
>  esac
>
> diff --git a/meta/recipes-support/rng-tools/rng-tools/rngd.service b/meta/recipes-support/rng-tools/rng-tools/rngd.service
> index f0355db14f..b1a78527be 100644
> --- a/meta/recipes-support/rng-tools/rng-tools/rngd.service
> +++ b/meta/recipes-support/rng-tools/rng-tools/rngd.service
> @@ -5,8 +5,8 @@ After=systemd-udev-settle.service
>  Before=sysinit.target
>
>  [Service]
> -ExecStart=@SBINDIR@/rngd -f -r /dev/hwrng
> -SuccessExitStatus=66
> +EnvironmentFile=-@SYSCONFDIR@/default/rng-tools
> +ExecStart=@SBINDIR@/rngd -f $EXTRA_ARGS
>
>  [Install]
>  WantedBy=multi-user.target
> diff --git a/meta/recipes-support/rng-tools/rng-tools_6.7.bb b/meta/recipes-support/rng-tools/rng-tools_6.7.bb
> index 9cc5951345..12cda9ae1e 100644
> --- a/meta/recipes-support/rng-tools/rng-tools_6.7.bb
> +++ b/meta/recipes-support/rng-tools/rng-tools_6.7.bb
> @@ -50,18 +50,13 @@ do_configure_prepend() {
>  }
>
>  do_install_append() {
> -    install -d "${D}${sysconfdir}/init.d"
> -    install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools
> -    sed -i -e 's,/etc/,${sysconfdir}/,' -e 's,/usr/sbin/,${sbindir}/,' \
> -        ${D}${sysconfdir}/init.d/rng-tools
> -
> -    # Only install the default script when 'sysvinit' is in DISTRO_FEATURES.
> -    if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
> -        install -d "${D}${sysconfdir}/default"
> -        install -m 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools
> -    fi
> -
> -    install -d ${D}${systemd_unitdir}/system
> -    install -m 644 ${WORKDIR}/rngd.service ${D}${systemd_unitdir}/system
> -    sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/rngd.service
> +    install -Dm 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools
> +    install -Dm 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools
> +    install -Dm 0644 ${WORKDIR}/rngd.service \
> +                     ${D}${systemd_system_unitdir}/rngd.service
> +    sed -i \
> +        -e 's,@SYSCONFDIR@,${sysconfdir},' \
> +        -e 's,@SBINDIR@,${sbindir},' \
> +        ${D}${sysconfdir}/init.d/rng-tools \
> +        ${D}${systemd_system_unitdir}/rngd.service
>  }
> --
> 2.20.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


^ permalink raw reply	[flat|nested] 8+ messages in thread

* ✗ patchtest: failure for "[v2] rng-tools: recipe cleanup..." and 2 more
  2019-06-06 15:18 [PATCH v2 1/3] rng-tools: recipe cleanup Nicola Lunghi
                   ` (2 preceding siblings ...)
  2019-06-06 15:20 ` [PATCH v2 1/3] rng-tools: recipe cleanup nick83ola
@ 2019-06-08  4:09 ` Patchwork
  3 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2019-06-08  4:09 UTC (permalink / raw)
  To: nick83ola; +Cc: openembedded-core

== Series Details ==

Series: "[v2] rng-tools: recipe cleanup..." and 2 more
Revision: 1
URL   : https://patchwork.openembedded.org/series/18025/
State : failure

== Summary ==


Thank you for submitting this patch series to OpenEmbedded Core. This is
an automated response. Several tests have been executed on the proposed
series by patchtest resulting in the following failures:



* Issue             A patch file has been added, but does not have a Signed-off-by tag [test_signed_off_by_presence] 
  Suggested fix    Sign off the added patch file (meta/recipes-support/rng-tools/rng-tools/0001-Remove-superfluous-variables.patch)

* Issue             Added patch file is missing Upstream-Status in the header [test_upstream_status_presence_format] 
  Suggested fix    Add Upstream-Status: <Valid status> to the header of meta/recipes-support/rng-tools/rng-tools/0002-Fix-a-few-typos-in-log-messages.patch
  Standard format  Upstream-Status: <Valid status>
  Valid status     Pending, Accepted, Backport, Denied, Inappropriate [reason], Submitted [where]



If you believe any of these test results are incorrect, please reply to the
mailing list (openembedded-core@lists.openembedded.org) raising your concerns.
Otherwise we would appreciate you correcting the issues and submitting a new
version of the patchset if applicable. Please ensure you add/increment the
version number when sending the new version (i.e. [PATCH] -> [PATCH v2] ->
[PATCH v3] -> ...).

---
Guidelines:     https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
Test suite:     http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/3] rng-tools: 6.6->6.7
  2019-06-06 16:20   ` Burton, Ross
@ 2019-06-12 12:41     ` nick83ola
  0 siblings, 0 replies; 8+ messages in thread
From: nick83ola @ 2019-06-12 12:41 UTC (permalink / raw)
  To: Burton, Ross; +Cc: Christopher Larson, OE-core

Hi,
Ok I will clean it up and re-submit it (also because it will need
another patch that I'm testing now)

Thanks
Nicola Lunghi

On Thu, 6 Jun 2019 at 17:20, Burton, Ross <ross.burton@intel.com> wrote:
>
> The patches you're adding all need your Signed-off-by alongside the
> Upstream-Status, specifically
> 0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch doesn't
> have a Sob or U-S.
>
> For the patches that are submitted, please add the pull request:
>
> Upstream-Status: Submitted [https://github.com/nhorman/rng-tools/pull/66]
>
> This lets us find the patches in the future.
>
> Ross
>
> On Thu, 6 Jun 2019 at 16:18, Nicola Lunghi <nick83ola@gmail.com> wrote:
> >
> > update rng-tools to release 6.7
> >
> > - add new option to compile with pkcs11/libp11 (added in 6.7)
> >
> > - submitted the following yocto patches upstream (and added as backports):
> >     0001-If-the-libc-is-lacking-argp-use-libargp.patch \
> >     0002-Add-argument-to-control-the-libargp-dependency.patch \
> >     -> squashed in 0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch
> >     underquote.patch
> >     -> 0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch
> >     rng-tools-5-fix-textrels-on-PIC-x86.patch
> >     -> 0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch
> >
> > - the following patch has been merged upstream: remove
> >     0001-configure.ac-fix-typo.patch
> >
> > - backport the following patches from master
> >     0001-Remove-superfluous-variables.patch
> >     0002-Fix-a-few-typos-in-log-messages.patch
> >     0003-Fix-up-some-compile-warnings.patch
> >     0004-Fix-a-race-condition-on-shutdown.patch
> >     0005-rngd-prioritize-faster-sources-of-entropy.patch
> >     0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch
> >     0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch
> >
> > Signed-off-by: Nicola Lunghi <nick83ola@gmail.com>
> > ---
> >  ...the-libc-is-lacking-argp-use-libargp.patch |  60 ------
> >  .../0001-Remove-superfluous-variables.patch   |  28 +++
> >  .../0001-configure.ac-fix-typo.patch          |  27 ---
> >  ...nt-to-control-the-libargp-dependency.patch |  95 ----------
> >  ...0002-Fix-a-few-typos-in-log-messages.patch |  48 +++++
> >  .../0003-Fix-up-some-compile-warnings.patch   | 172 ++++++++++++++++++
> >  ...004-Fix-a-race-condition-on-shutdown.patch |  55 ++++++
> >  ...prioritize-faster-sources-of-entropy.patch |  72 ++++++++
> >  ...ace-non-standard-pthread_yield-with-.patch |  27 +++
> >  ....c-explicitly-link-against-libcrypto.patch |  73 ++++++++
> >  ...the-libc-is-lacking-argp-use-libargp.patch | 103 +++++++++++
> >  ...textrels-on-rdrand_asm.S-on-PIC-x86.patch} |   8 +-
> >  ...4-entry.-This-causes-a-failure-if-g.patch} |  16 +-
> >  .../{rng-tools_6.6.bb => rng-tools_6.7.bb}    |  18 +-
> >  14 files changed, 602 insertions(+), 200 deletions(-)
> >  delete mode 100644 meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch
> >  create mode 100644 meta/recipes-support/rng-tools/rng-tools/0001-Remove-superfluous-variables.patch
> >  delete mode 100644 meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch
> >  delete mode 100644 meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch
> >  create mode 100644 meta/recipes-support/rng-tools/rng-tools/0002-Fix-a-few-typos-in-log-messages.patch
> >  create mode 100644 meta/recipes-support/rng-tools/rng-tools/0003-Fix-up-some-compile-warnings.patch
> >  create mode 100644 meta/recipes-support/rng-tools/rng-tools/0004-Fix-a-race-condition-on-shutdown.patch
> >  create mode 100644 meta/recipes-support/rng-tools/rng-tools/0005-rngd-prioritize-faster-sources-of-entropy.patch
> >  create mode 100644 meta/recipes-support/rng-tools/rng-tools/0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch
> >  create mode 100644 meta/recipes-support/rng-tools/rng-tools/0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch
> >  create mode 100644 meta/recipes-support/rng-tools/rng-tools/0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch
> >  rename meta/recipes-support/rng-tools/rng-tools/{rng-tools-5-fix-textrels-on-PIC-x86.patch => 0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch} (94%)
> >  rename meta/recipes-support/rng-tools/rng-tools/{underquote.patch => 0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch} (77%)
> >  rename meta/recipes-support/rng-tools/{rng-tools_6.6.bb => rng-tools_6.7.bb} (72%)
> >
> > diff --git a/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch b/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch
> > deleted file mode 100644
> > index 06d1d94369..0000000000
> > --- a/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch
> > +++ /dev/null
> > @@ -1,60 +0,0 @@
> > -From 06ba71887f667d45dd231a782a2751f36e8fe025 Mon Sep 17 00:00:00 2001
> > -From: Christopher Larson <chris_larson@mentor.com>
> > -Date: Mon, 15 Feb 2016 15:59:58 -0700
> > -Subject: [PATCH 1/4] If the libc is lacking argp, use libargp
> > -
> > -Patch pulled from Gentoo:
> > -
> > -    On glibc systems, argp is provided by libc.  However, on
> > -    uclibc and other systems which lack argp in their C library,
> > -    argp might be provided by a stand alone library, libargp.
> > -    This patch adds tests to the build system to find who provides
> > -    argp.
> > -
> > -    X-Gentoo-Bug: 292191
> > -    X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=292191
> > -    Reported-by: Ed Wildgoose <gentoo@wildgooses.com>
> > -    Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
> > -
> > -Upstream-Status: Pending
> > -Signed-off-by: Christopher Larson <chris_larson@mentor.com>
> > ----
> > - configure.ac | 22 ++++++++++++++++++++++
> > - 1 file changed, 22 insertions(+)
> > -
> > -diff --git a/configure.ac b/configure.ac
> > -index 4e799dc..c4a5dd8 100644
> > ---- a/configure.ac
> > -+++ b/configure.ac
> > -@@ -135,6 +135,28 @@ AS_IF(
> > -       ]
> > - )
> > -
> > -+dnl First check if we have argp available from libc
> > -+AC_LINK_IFELSE(
> > -+      [AC_LANG_PROGRAM(
> > -+              [#include <argp.h>],
> > -+              [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]
> > -+              )],
> > -+      [libc_has_argp="true"],
> > -+      [libc_has_argp="false"]
> > -+)
> > -+
> > -+dnl If libc doesn't provide argp, then test for libargp
> > -+if test "$libc_has_argp" = "false" ; then
> > -+      AC_MSG_WARN("libc does not have argp")
> > -+      AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"])
> > -+
> > -+      if test "$have_argp" = "false"; then
> > -+              AC_MSG_ERROR("no libargp found")
> > -+      else
> > -+              LIBS+=" -largp"
> > -+      fi
> > -+fi
> > -+
> > - dnl -----------------
> > - dnl Configure options
> > - dnl -----------------
> > ---
> > -2.7.4
> > -
> > diff --git a/meta/recipes-support/rng-tools/rng-tools/0001-Remove-superfluous-variables.patch b/meta/recipes-support/rng-tools/rng-tools/0001-Remove-superfluous-variables.patch
> > new file mode 100644
> > index 0000000000..32c2858999
> > --- /dev/null
> > +++ b/meta/recipes-support/rng-tools/rng-tools/0001-Remove-superfluous-variables.patch
> > @@ -0,0 +1,28 @@
> > +From e3971caa78f16c83bfb6d7537427b935ec603f63 Mon Sep 17 00:00:00 2001
> > +From: ideal <idealities@gmail.com>
> > +Date: Thu, 21 Mar 2019 15:23:11 +0800
> > +Subject: [PATCH 01/10] Remove superfluous variables
> > +
> > +Upstream-Status: Backport
> > +---
> > + rngd_linux.c | 3 ---
> > + 1 file changed, 3 deletions(-)
> > +
> > +diff --git a/rngd_linux.c b/rngd_linux.c
> > +index b473419..9eca968 100644
> > +--- a/rngd_linux.c
> > ++++ b/rngd_linux.c
> > +@@ -58,10 +58,7 @@ extern int kent_pool_size;
> > +  */
> > + int default_watermark(void)
> > + {
> > +-      char psbuf[64], *p;
> > +-      unsigned long ps;
> > +       FILE *f;
> > +-      size_t l;
> > +       unsigned int wm = 4096; /* Default guess */
> > +
> > +       f = fopen("/proc/sys/kernel/random/poolsize", "r");
> > +--
> > +2.20.1
> > +
> > diff --git a/meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch b/meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch
> > deleted file mode 100644
> > index d4d28a01c4..0000000000
> > --- a/meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch
> > +++ /dev/null
> > @@ -1,27 +0,0 @@
> > -From 99b0efebd765803203686d89bc4f995bcb103e78 Mon Sep 17 00:00:00 2001
> > -From: Hongxu Jia <hongxu.jia@windriver.com>
> > -Date: Sat, 10 Nov 2018 09:53:19 +0800
> > -Subject: [PATCH] configure.ac: fix typo
> > -
> > -Upstream-Status: Submitted [https://github.com/nhorman/rng-tools.git]
> > -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> > ----
> > - configure.ac | 2 +-
> > - 1 file changed, 1 insertion(+), 1 deletion(-)
> > -
> > -diff --git a/configure.ac b/configure.ac
> > -index 4e799dc..0251928 100644
> > ---- a/configure.ac
> > -+++ b/configure.ac
> > -@@ -62,7 +62,7 @@ AS_IF([test $target_cpu = powerpc64le], [AC_DEFINE([HAVE_DARN],1,[Enable DARN])]
> > - AM_CONDITIONAL([JITTER], [false])
> > -
> > - AC_ARG_ENABLE(jitterentropy,
> > --      AS_HELP_STRING([--disable-jitterntropy | --enable-jitterentropy=<path>],
> > -+      AS_HELP_STRING([--disable-jitterentropy | --enable-jitterentropy=<path>],
> > -       [Disable jitterentropy source, or specify its location]),
> > -       [if [ test -d $enable_jitterentropy ]; then
> > -               export LDFLAGS+=-L$enable_jitterentropy;
> > ---
> > -2.7.4
> > -
> > diff --git a/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch b/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch
> > deleted file mode 100644
> > index be60fe97f6..0000000000
> > --- a/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch
> > +++ /dev/null
> > @@ -1,95 +0,0 @@
> > -From 711e2f76890e3c5b08f64859d9fd913ddbec7d50 Mon Sep 17 00:00:00 2001
> > -From: Christopher Larson <chris_larson@mentor.com>
> > -Date: Mon, 22 Oct 2018 15:26:47 +0800
> > -Subject: [PATCH 2/4] Add argument to control the libargp dependency
> > -
> > -This ensures that the builds are always deterministic. If the argument isn't
> > -passed, the default behavior is to use libargp if the libc doesn't have argp.
> > -
> > -Upstream-Status: Pending
> > -Signed-off-by: Christopher Larson <chris_larson@mentor.com>
> > -
> > -Rebase to 6.6
> > -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> > ----
> > - configure.ac | 55 ++++++++++++++++++++++++++++++++++++-------------------
> > - 1 file changed, 36 insertions(+), 19 deletions(-)
> > -
> > -diff --git a/configure.ac b/configure.ac
> > -index c4a5dd8..dd1c30f 100644
> > ---- a/configure.ac
> > -+++ b/configure.ac
> > -@@ -40,6 +40,13 @@ AC_ARG_WITH([nistbeacon],
> > -       [with_nistbeacon=check]
> > - )
> > -
> > -+AC_ARG_WITH([libargp],
> > -+      AS_HELP_STRING([--without-libargp],
> > -+              [Disable libargp support. Systems whose libc lacks argp can use libargp instead. (Default: check if libc lacks argp)]),
> > -+      [with_libargp=$withval],
> > -+      [with_libargp=check]
> > -+)
> > -+
> > - dnl Make sure anyone changing configure.ac/Makefile.am has a clue
> > - AM_MAINTAINER_MODE
> > - AM_PROG_AS
> > -@@ -135,27 +142,37 @@ AS_IF(
> > -       ]
> > - )
> > -
> > --dnl First check if we have argp available from libc
> > --AC_LINK_IFELSE(
> > --      [AC_LANG_PROGRAM(
> > --              [#include <argp.h>],
> > --              [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]
> > --              )],
> > --      [libc_has_argp="true"],
> > --      [libc_has_argp="false"]
> > -+dnl Determine if we need libargp: either user requested, or libc has no argp
> > -+AS_IF(
> > -+      [test "x$with_libargp" != "xyes"],
> > -+      [
> > -+              AC_LINK_IFELSE(
> > -+                      [AC_LANG_PROGRAM(
> > -+                              [#include <argp.h>],
> > -+                              [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]
> > -+                              )],
> > -+                      [need_libargp=no],
> > -+                      [need_libargp=yes
> > -+                       if test "x$with_libargp" = "xno"; then
> > -+                              AC_MSG_FAILURE([libargp disabled and libc does not have argp])
> > -+                       fi]
> > -+              )
> > -+      ],
> > -+      [need_libargp=yes],
> > - )
> > -
> > --dnl If libc doesn't provide argp, then test for libargp
> > --if test "$libc_has_argp" = "false" ; then
> > --      AC_MSG_WARN("libc does not have argp")
> > --      AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"])
> > --
> > --      if test "$have_argp" = "false"; then
> > --              AC_MSG_ERROR("no libargp found")
> > --      else
> > --              LIBS+=" -largp"
> > --      fi
> > --fi
> > -+dnl Check for libargp
> > -+AS_IF(
> > -+      [test "x$need_libargp" = "xyes"],
> > -+      [
> > -+              AC_CHECK_LIB(
> > -+                      [argp],
> > -+                      [argp_parse],
> > -+                      [LIBS="$LIBS -largp"],
> > -+                      [AC_MSG_FAILURE([libargp not found])]
> > -+              )
> > -+      ]
> > -+)
> > -
> > - dnl -----------------
> > - dnl Configure options
> > ---
> > -2.7.4
> > -
> > diff --git a/meta/recipes-support/rng-tools/rng-tools/0002-Fix-a-few-typos-in-log-messages.patch b/meta/recipes-support/rng-tools/rng-tools/0002-Fix-a-few-typos-in-log-messages.patch
> > new file mode 100644
> > index 0000000000..32163a5162
> > --- /dev/null
> > +++ b/meta/recipes-support/rng-tools/rng-tools/0002-Fix-a-few-typos-in-log-messages.patch
> > @@ -0,0 +1,48 @@
> > +From 93a1d001e51c6558e86161060b33c3785d509ac5 Mon Sep 17 00:00:00 2001
> > +From: Ruben Kerkhof <ruben@rubenkerkhof.com>
> > +Date: Wed, 17 Apr 2019 18:39:09 +0200
> > +Subject: [PATCH 02/10] Fix a few typos in log messages
> > +
> > +---
> > + rngd.c        | 4 ++--
> > + rngd_jitter.c | 2 +-
> > + 2 files changed, 3 insertions(+), 3 deletions(-)
> > +
> > +diff --git a/rngd.c b/rngd.c
> > +index 0d4582a..b854eab 100644
> > +--- a/rngd.c
> > ++++ b/rngd.c
> > +@@ -743,7 +743,7 @@ int main(int argc, char **argv)
> > +                       message(LOG_CONS|LOG_INFO, "None");
> > +               msg_squash = true;
> > +       } else
> > +-              message(LOG_DAEMON|LOG_INFO, "\nInitalizing available sources\n");
> > ++              message(LOG_DAEMON|LOG_INFO, "\nInitializing available sources\n");
> > +
> > +       /* Init entropy sources */
> > +
> > +@@ -753,7 +753,7 @@ int main(int argc, char **argv)
> > +                               ent_sources++;
> > +                               entropy_sources[i].fipsctx = malloc(sizeof(fips_ctx_t));
> > +                               fips_init(entropy_sources[i].fipsctx, discard_initial_data(&entropy_sources[i]));
> > +-                              message(LOG_INFO | LOG_DAEMON, "Initalizing entropy source %s\n",
> > ++                              message(LOG_INFO | LOG_DAEMON, "Initializing entropy source %s\n",
> > +                                       entropy_sources[i].rng_sname);
> > +                       } else {
> > +                               message(LOG_ERR | LOG_DAEMON, "Failed to init entropy source %s\n",
> > +diff --git a/rngd_jitter.c b/rngd_jitter.c
> > +index f68e2ca..23d96b3 100644
> > +--- a/rngd_jitter.c
> > ++++ b/rngd_jitter.c
> > +@@ -440,7 +440,7 @@ int init_jitter_entropy_source(struct rng *ent_src)
> > +                * Temporarily disable aes so we don't try to use it during init
> > +                */
> > +
> > +-              message(LOG_CONS|LOG_INFO, "Initalizing AES buffer\n");
> > ++              message(LOG_CONS|LOG_INFO, "Initializing AES buffer\n");
> > +               aes_buf = malloc(tdata[0].buf_sz);
> > +               ent_src->rng_options[JITTER_OPT_USE_AES].int_val = 0;
> > +               if (xread_jitter(key, AES_BLOCK, ent_src)) {
> > +--
> > +2.20.1
> > +
> > diff --git a/meta/recipes-support/rng-tools/rng-tools/0003-Fix-up-some-compile-warnings.patch b/meta/recipes-support/rng-tools/rng-tools/0003-Fix-up-some-compile-warnings.patch
> > new file mode 100644
> > index 0000000000..63ffe281bc
> > --- /dev/null
> > +++ b/meta/recipes-support/rng-tools/rng-tools/0003-Fix-up-some-compile-warnings.patch
> > @@ -0,0 +1,172 @@
> > +From 13beeeeed455306daf899f9e8a97b8b84f2e6c42 Mon Sep 17 00:00:00 2001
> > +From: Neil Horman <nhorman@tuxdriver.com>
> > +Date: Mon, 29 Apr 2019 15:26:42 -0400
> > +Subject: [PATCH 03/10] Fix up some compile warnings
> > +
> > +fixes issue https://github.com/nhorman/rng-tools/issues/57
> > +
> > +Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> > +
> > +Upstream-Status: Backport
> > +---
> > + rngd.c            | 10 +++++-----
> > + rngd_jitter.c     | 14 +++++---------
> > + rngd_linux.c      |  8 ++++++--
> > + rngd_nistbeacon.c |  2 +-
> > + 4 files changed, 17 insertions(+), 17 deletions(-)
> > +
> > +diff --git a/rngd.c b/rngd.c
> > +index b854eab..1b3d73d 100644
> > +--- a/rngd.c
> > ++++ b/rngd.c
> > +@@ -153,7 +153,7 @@ static enum {
> > +       ENT_JITTER,
> > +       ENT_PKCS11,
> > +       ENT_MAX
> > +-} entropy_indexes;
> > ++} entropy_indexes __attribute__((used));
> > +
> > +
> > + static struct rng_option drng_options[] = {
> > +@@ -358,7 +358,7 @@ static int find_ent_src_idx(const char *name_idx)
> > +       } else {
> > +               idx = strtoul(name_idx, NULL, 10);
> > +               if ((idx == LONG_MAX) || (idx >= ENT_MAX)) {
> > +-                      message(LOG_CONS|LOG_INFO, "option index out of range: %lu\n", idx);
> > ++                      message(LOG_CONS|LOG_INFO, "option index out of range: %u\n", idx);
> > +                       return -ERANGE;
> > +               }
> > +               message(LOG_CONS|LOG_INFO, "Note, reference of entropy sources by index "
> > +@@ -449,7 +449,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
> > +                       }
> > +                       options++;
> > +               }
> > +-              message(LOG_CONS|LOG_INFO, "Option %s not found for source idx %d\n", optkey, idx);
> > ++              message(LOG_CONS|LOG_INFO, "Option %s not found for source idx %lu\n", optkey, idx);
> > +               return -ERANGE;
> > +               break;
> > +
> > +@@ -828,10 +828,10 @@ int main(int argc, char **argv)
> > +               test_time = ((test_time * NSECS_IN_SECOND) + (end_test.tv_nsec - start_test.tv_nsec)) / NSECS_IN_SECOND;
> > +
> > +               if ((sum_entropy/test_time) >= MEGABITS) {
> > +-                      message(LOG_CONS|LOG_INFO, "\nEntropy rate: %6.4g Mbits/sec averaged over %d iterations for %6.4g seconds\n",
> > ++                      message(LOG_CONS|LOG_INFO, "\nEntropy rate: %6.4g Mbits/sec averaged over %lu iterations for %6.4g seconds\n",
> > +                               (sum_entropy/test_time/MEGABITS), test_iterations, test_time);
> > +               } else {
> > +-                      message(LOG_CONS|LOG_INFO, "\nEntropy rate: %6.4g Kbits/sec averaged over %d iterations for %6.4g seconds\n",
> > ++                      message(LOG_CONS|LOG_INFO, "\nEntropy rate: %6.4g Kbits/sec averaged over %lu iterations for %6.4g seconds\n",
> > +                               (sum_entropy/test_time/KILOBITS), test_iterations, test_time);
> > +               }
> > +       }
> > +diff --git a/rngd_jitter.c b/rngd_jitter.c
> > +index 23d96b3..c08c0d2 100644
> > +--- a/rngd_jitter.c
> > ++++ b/rngd_jitter.c
> > +@@ -38,8 +38,6 @@
> > + #include "exits.h"
> > + #include "rngd_entsource.h"
> > +
> > +-static struct rand_data *ec = NULL;
> > +-
> > + static int num_threads = 0;
> > + struct thread_data {
> > +       int core_id;
> > +@@ -56,7 +54,7 @@ static struct thread_data *tdata;
> > + static pthread_t *threads;
> > + int pipefds[2];
> > +
> > +-char *aes_buf;
> > ++unsigned char *aes_buf;
> > +
> > + #ifdef HAVE_LIBGCRYPT
> > +
> > +@@ -147,13 +145,12 @@ int xread_jitter(void *buf, size_t size, struct rng *ent_src)
> > +       ssize_t request;
> > +       int rc = 1;
> > +       int retry_count = 0;
> > +-      struct timespec sleep;
> > +       ssize_t need=size;
> > +       char *bptr = buf;
> > +       size_t total;
> > + try_again:
> > +       while (need) {
> > +-              message(LOG_DAEMON|LOG_DEBUG, "xread_jitter requests %d bytes from pipe\n", need);
> > ++              message(LOG_DAEMON|LOG_DEBUG, "xread_jitter requests %lu bytes from pipe\n", need);
> > +               request = read(pipefds[0], &bptr[size-need], need);
> > +               if ((request < need) && ent_src->rng_options[JITTER_OPT_USE_AES].int_val) {
> > +                       message(LOG_DAEMON|LOG_DEBUG, "xread_jitter falls back to AES\n");
> > +@@ -173,7 +170,7 @@ try_again:
> > +                               message(LOG_DAEMON|LOG_DEBUG, "failed read: %s\n", strerror(errno));
> > +                               pthread_yield();
> > +                       } else
> > +-                              message(LOG_DAEMON|LOG_DEBUG, "request of random data returns %d less than need %d\n",
> > ++                              message(LOG_DAEMON|LOG_DEBUG, "request of random data returns %ld less than need %ld\n",
> > +                                       request, need);
> > +                       if (retry_count < ent_src->rng_options[JITTER_OPT_RETRY_COUNT].int_val) {
> > +                               retry_count++;
> > +@@ -185,7 +182,7 @@ try_again:
> > +                       goto out;
> > +               }
> > +
> > +-              message(LOG_DAEMON|LOG_DEBUG, "xread_jitter gets %d bytes\n", request);
> > ++              message(LOG_DAEMON|LOG_DEBUG, "xread_jitter gets %ld bytes\n", request);
> > +               need -= request;
> > +       }
> > +
> > +@@ -236,7 +233,6 @@ static void *thread_entropy_task(void *data)
> > +       cpu_set_t cpuset;
> > +
> > +       ssize_t ret;
> > +-      size_t need;
> > +       struct thread_data *me = data;
> > +       char *tmpbuf;
> > +       struct timespec start, end;
> > +@@ -287,7 +283,7 @@ static void *thread_entropy_task(void *data)
> > +               while(written != me->buf_sz) {
> > +                       message(LOG_DAEMON|LOG_DEBUG, "Writing to pipe\n");
> > +                       ret = write(me->pipe_fd, &tmpbuf[written], me->buf_sz - written);
> > +-                      message(LOG_DAEMON|LOG_DEBUG, "DONE Writing to pipe with return %d\n", ret);
> > ++                      message(LOG_DAEMON|LOG_DEBUG, "DONE Writing to pipe with return %ld\n", ret);
> > +                       if (first)
> > +                               me->active = 1;
> > +                       if (ret < 0)
> > +diff --git a/rngd_linux.c b/rngd_linux.c
> > +index 9eca968..51c38ac 100644
> > +--- a/rngd_linux.c
> > ++++ b/rngd_linux.c
> > +@@ -59,12 +59,16 @@ extern int kent_pool_size;
> > + int default_watermark(void)
> > + {
> > +       FILE *f;
> > +-      unsigned int wm = 4096; /* Default guess */
> > ++      unsigned int wm;        /* Default guess */
> > +
> > +       f = fopen("/proc/sys/kernel/random/poolsize", "r");
> > +       if (!f)
> > +               goto err;
> > +-      fscanf(f,"%d", &wm);
> > ++      /*
> > ++       * Default to 4096 if fscanf fails
> > ++       */
> > ++      if(fscanf(f,"%d", &wm) < 1)
> > ++              wm = 4096;
> > +       kent_pool_size = wm;
> > +       wm = wm*3/4;
> > + err:
> > +diff --git a/rngd_nistbeacon.c b/rngd_nistbeacon.c
> > +index 10fc4a4..aafb300 100644
> > +--- a/rngd_nistbeacon.c
> > ++++ b/rngd_nistbeacon.c
> > +@@ -414,7 +414,7 @@ static int get_nist_record()
> > +                       goto out;
> > +               }
> > +
> > +-              message(LOG_DAEMON|LOG_DEBUG, "NIST: timestamp is %d, frequency is %d, tv_sec is %d\n",
> > ++              message(LOG_DAEMON|LOG_DEBUG, "NIST: timestamp is %lu, frequency is %u, tv_sec is %lu\n",
> > +                       block.timestamp, block.frequency, ct.tv_sec);
> > +               if (block.timestamp + block.frequency >= ct.tv_sec) {
> > +                       message(LOG_DAEMON|LOG_ERR, "Multiple nist reads in same frequency period of %d sec\n",
> > +--
> > +2.20.1
> > +
> > diff --git a/meta/recipes-support/rng-tools/rng-tools/0004-Fix-a-race-condition-on-shutdown.patch b/meta/recipes-support/rng-tools/rng-tools/0004-Fix-a-race-condition-on-shutdown.patch
> > new file mode 100644
> > index 0000000000..c4e982551a
> > --- /dev/null
> > +++ b/meta/recipes-support/rng-tools/rng-tools/0004-Fix-a-race-condition-on-shutdown.patch
> > @@ -0,0 +1,55 @@
> > +From 8203e08efd8ae6de110bc9bcc36f02e2302c8f6a Mon Sep 17 00:00:00 2001
> > +From: Neil Horman <nhorman@tuxdriver.com>
> > +Date: Thu, 23 May 2019 12:36:03 -0400
> > +Subject: [PATCH 04/10] Fix a race condition on shutdown
> > +
> > +It was possible that, during shutdown, a thread may exit prior to us
> > +checking for it being exited, leading us to block on a read of a pipe
> > +that was never going to be written to, causing a shutdown hang.  Fix it
> > +by using pthread_kill to kill each thread instead
> > +
> > +Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> > +
> > +Upstream-Status: Backport
> > +---
> > + rngd_jitter.c | 12 ++++--------
> > + 1 file changed, 4 insertions(+), 8 deletions(-)
> > +
> > +diff --git a/rngd_jitter.c b/rngd_jitter.c
> > +index c08c0d2..979e613 100644
> > +--- a/rngd_jitter.c
> > ++++ b/rngd_jitter.c
> > +@@ -469,26 +469,22 @@ void close_jitter_entropy_source(struct rng *ent_src)
> > +       for (i=0; i < num_threads; i++)
> > +               tdata[i].active = 0;
> > +
> > +-      flags = fcntl(pipefds[1], F_GETFL, 0);
> > +-      flags |= O_NONBLOCK;
> > +-      fcntl(pipefds[1], F_SETFL, &flags);
> > ++      close(pipefds[1]);
> > +
> > +       /* And wait for completion of each thread */
> > +       for (i=0; i < num_threads; i++) {
> > +               message(LOG_DAEMON|LOG_DEBUG, "Checking on done for thread %d\n", i);
> > +               while (!tdata[i].done)
> > ++                      pthread_kill(threads[i], SIGINT);
> > +                       if(tdata[i].done) {
> > +                               message(LOG_DAEMON|LOG_INFO, "Closing thread %d\n", tdata[i].core_id);
> > +                               pthread_join(threads[i], NULL);
> > +                               jent_entropy_collector_free(tdata[i].ec);
> > +-                      } else {
> > +-                              read(pipefds[0], tmpbuf, 1024);
> > ++                      } else
> > +                               sched_yield();
> > +-                      }
> > +       }
> > +
> > +-      close(pipefds[2]);
> > +-      close(pipefds[1]);
> > ++      close(pipefds[0]);
> > +       free(tdata);
> > +       free(threads);
> > +       return;
> > +--
> > +2.20.1
> > +
> > diff --git a/meta/recipes-support/rng-tools/rng-tools/0005-rngd-prioritize-faster-sources-of-entropy.patch b/meta/recipes-support/rng-tools/rng-tools/0005-rngd-prioritize-faster-sources-of-entropy.patch
> > new file mode 100644
> > index 0000000000..2f553fc606
> > --- /dev/null
> > +++ b/meta/recipes-support/rng-tools/rng-tools/0005-rngd-prioritize-faster-sources-of-entropy.patch
> > @@ -0,0 +1,72 @@
> > +From ba8adb4c6e275e85f906922b6fcf18b4ac16534e Mon Sep 17 00:00:00 2001
> > +From: Neil Horman <nhorman@tuxdriver.com>
> > +Date: Tue, 4 Jun 2019 10:51:53 -0400
> > +Subject: [PATCH 05/10] rngd: prioritize faster sources of entropy
> > +
> > +We have two broad categories of entropy sources in rngd.  Fast sources
> > +and slow sources.  Slow sources (like jitterentropy) provided entropy to
> > +systems that have no other entropy source, but can actually hinder
> > +performance when large amounts of entropy are requested (consider a case
> > +where the entropy pool is empty, and the rdrand source can provide
> > +twice the entropy in half the time that jitterentropy can).  Its still
> > +valuable to have jitterentropy enabled, but we shouldn't be extracting
> > +entropy from it, if a faster source can provide it.  So lets prioritize
> > +our fast sources over the slow ones.  in the do_loop, lets by default
> > +not collect entropy from sources marked as slow.  If we pass
> > +through an interation of the do_loop with no entropy collected, then
> > +lets include the slow sources on the next pass to give us a better
> > +chance at collection.  Then, when entropy is gathered, we can go back to
> > +only using the fast sources.
> > +
> > +Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> > +
> > +Upstream-Status: Backport
> > +---
> > + rngd.c | 19 +++++++++++++++++++
> > + 1 file changed, 19 insertions(+)
> > +
> > +diff --git a/rngd.c b/rngd.c
> > +index 1b3d73d..a086949 100644
> > +--- a/rngd.c
> > ++++ b/rngd.c
> > +@@ -577,6 +577,7 @@ static void do_loop(int random_step)
> > +       int i;
> > +       int retval;
> > +       struct rng *iter;
> > ++      bool try_slow_sources = false;
> > +
> > +       int (*random_add_fn)(struct rng *rng, int random_step,
> > +               unsigned char *buf, fips_ctx_t *fipsctx_in);
> > +@@ -587,11 +588,29 @@ continue_trying:
> > +       for (no_work = 0; no_work < 100; no_work = (work_done ? 0 : no_work+1)) {
> > +
> > +               work_done = false;
> > ++
> > ++              /*
> > ++               * Exclude slow sources when faster sources are working well
> > ++               * sources like jitterentropy can provide some entropy when needed
> > ++               * but can actually hinder performance when large amounts of entropy are needed
> > ++               * owing to the fact that they may block while generating said entropy
> > ++               * So, lets prioritize the faster sources.  Start by only trying to collect
> > ++               * entropy from the fast sources, then iff that fails, start including the slower
> > ++               * sources as well.  Once we get some entropy, return to only using fast sources
> > ++               */
> > ++              if (no_work)
> > ++                      try_slow_sources = true;
> > ++              else
> > ++                      try_slow_sources = false;
> > ++
> > +               for (i = 0; i < ENT_MAX; ++i)
> > +               {
> > +                       int rc;
> > +                       /*message(LOG_CONS|LOG_INFO, "I is %d\n", i);*/
> > +                       iter = &entropy_sources[i];
> > ++                      if (!try_slow_sources && iter->flags.slow_source)
> > ++                              continue;
> > ++
> > +               retry_same:
> > +                       if (!server_running)
> > +                               return;
> > +--
> > +2.20.1
> > +
> > diff --git a/meta/recipes-support/rng-tools/rng-tools/0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch b/meta/recipes-support/rng-tools/rng-tools/0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch
> > new file mode 100644
> > index 0000000000..5bd6a4a01c
> > --- /dev/null
> > +++ b/meta/recipes-support/rng-tools/rng-tools/0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch
> > @@ -0,0 +1,27 @@
> > +From 93abcd77d9b5bae9c2018cf8fedb27c87d0ca5e6 Mon Sep 17 00:00:00 2001
> > +From: Nicola Lunghi <25422924+nicola-lunghi@users.noreply.github.com>
> > +Date: Wed, 5 Jun 2019 16:38:21 +0100
> > +Subject: [PATCH 06/10] rngd_jitter: replace non standard pthread_yield with
> > + sched_yield
> > +
> > +Upstream-Status: Backport
> > +---
> > + rngd_jitter.c | 2 +-
> > + 1 file changed, 1 insertion(+), 1 deletion(-)
> > +
> > +diff --git a/rngd_jitter.c b/rngd_jitter.c
> > +index 979e613..54070ae 100644
> > +--- a/rngd_jitter.c
> > ++++ b/rngd_jitter.c
> > +@@ -168,7 +168,7 @@ try_again:
> > +               } else if (request < need) {
> > +                       if (request == -1) {
> > +                               message(LOG_DAEMON|LOG_DEBUG, "failed read: %s\n", strerror(errno));
> > +-                              pthread_yield();
> > ++                              sched_yield();
> > +                       } else
> > +                               message(LOG_DAEMON|LOG_DEBUG, "request of random data returns %ld less than need %ld\n",
> > +                                       request, need);
> > +--
> > +2.20.1
> > +
> > diff --git a/meta/recipes-support/rng-tools/rng-tools/0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch b/meta/recipes-support/rng-tools/rng-tools/0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch
> > new file mode 100644
> > index 0000000000..003049fb7e
> > --- /dev/null
> > +++ b/meta/recipes-support/rng-tools/rng-tools/0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch
> > @@ -0,0 +1,73 @@
> > +From ee078086ee8209f593f16ac5f6393fb1a95452c4 Mon Sep 17 00:00:00 2001
> > +From: =?UTF-8?q?G=C3=B6kt=C3=BCrk=20Y=C3=BCksek?= <gokturk@gentoo.org>
> > +Date: Wed, 5 Jun 2019 13:54:14 -0400
> > +Subject: [PATCH 07/10] Make rngd_pkcs11.c explicitly link against libcrypto
> > +
> > +In function init_pkcs11_entropy_source(), there is a call to
> > +ERR_reason_error_string(), which is defined in libcrypto. This causes
> > +linking problems for rng-tools under certain configurations:
> > +
> > +$ ./configure --disable-jitterentropy --without-nistbeacon --with-pkcs11
> > +...
> > +$ make
> > +...
> > +gcc     -pthread -g -O2 -pthread   -o rngd rngd-rngd.o rngd-rngd_entsource.o rngd-rngd_linux.o rngd-util.o  rngd-rngd_rdrand.o rdrand_asm.o   rngd-rngd_pkcs11.o librngd.a -lsysfs -lgcrypt -lsysfs  -lp11     -lgcrypt -lsysfs
> > +/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: rngd-rngd_pkcs11.o: undefined reference to symbol 'ERR_reason_error_string@@OPENSSL_1_1_0'
> > +/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib64/libcrypto.so.1.1: error adding symbols: DSO missing from command line
> > +collect2: error: ld returned 1 exit status
> > +make[2]: *** [Makefile:609: rngd] Error 1
> > +make[2]: Leaving directory '/tmp/rng-tools'
> > +make[1]: *** [Makefile:888: all-recursive] Error 1
> > +make[1]: Leaving directory '/tmp/rng-tools'
> > +make: *** [Makefile:458: all] Error 2
> > +
> > +This symbol is defined in libcrypto:
> > +
> > +$ readelf --dyn-syms /usr/lib64/libcrypto.so | grep ERR_reason_error_string
> > +   314: 000000000012cf60   155 FUNC    GLOBAL DEFAULT   12 ERR_reason_error_string@@OPENSSL_1_1_0
> > +
> > +Linking rngd against libcrypto when pkcs11 is enabled fixes the issue.
> > +
> > +Bug: https://bugs.gentoo.org/684228
> > +
> > +Upstream-Status: Backport
> > +---
> > + Makefile.am  | 4 ++--
> > + configure.ac | 1 +
> > + 2 files changed, 3 insertions(+), 2 deletions(-)
> > +
> > +diff --git a/Makefile.am b/Makefile.am
> > +index ff56efe..db4fcfc 100644
> > +--- a/Makefile.am
> > ++++ b/Makefile.am
> > +@@ -27,13 +27,13 @@ if JITTER
> > + rngd_SOURCES  += rngd_jitter.c
> > + endif
> > +
> > +-rngd_LDADD    = librngd.a -lsysfs $(LIBS) ${libp11_LIBS} ${libcurl_LIBS} ${libxml2_LIBS} ${openssl_LIBS} $(PTHREAD_LIBS)
> > ++rngd_LDADD    = librngd.a -lsysfs $(LIBS) ${libp11_LIBS} ${libcrypto_LIBS} ${libcurl_LIBS} ${libxml2_LIBS} ${openssl_LIBS} $(PTHREAD_LIBS)
> > +
> > + if PKCS11
> > + rngd_SOURCES  += rngd_pkcs11.c
> > + endif
> > +
> > +-rngd_CFLAGS   = ${pkcs11_CFLAGS} ${libp11_CFLAGS} ${libxml2_CFLAGS} ${openssl_CFLAGS} $(PTHREAD_CFLAGS)
> > ++rngd_CFLAGS   = ${pkcs11_CFLAGS} ${libp11_CFLAGS} ${libcrypto_CFLAGS} ${libxml2_CFLAGS} ${openssl_CFLAGS} $(PTHREAD_CFLAGS)
> > + rngd_LDFLAGS  = $(PTHREAD_CFLAGS)
> > +
> > + rngtest_SOURCES       = exits.h stats.h stats.c rngtest.c
> > +diff --git a/configure.ac b/configure.ac
> > +index d00a6f1..29a46fa 100644
> > +--- a/configure.ac
> > ++++ b/configure.ac
> > +@@ -102,6 +102,7 @@ AS_IF(
> > +       [ test "x$with_pkcs11" != "xno"],
> > +       [
> > +               PKG_CHECK_MODULES([libp11], [libp11], [], [AC_MSG_ERROR([libp11 is required])])
> > ++              PKG_CHECK_MODULES([libcrypto], [libcrypto], [], [AC_MSG_ERROR([libcrypto is required])])
> > +               AC_DEFINE([HAVE_PKCS11],1,[Enable PKCS11])
> > +       ]
> > + )
> > +--
> > +2.20.1
> > +
> > diff --git a/meta/recipes-support/rng-tools/rng-tools/0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch b/meta/recipes-support/rng-tools/rng-tools/0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch
> > new file mode 100644
> > index 0000000000..e50bbbc8b8
> > --- /dev/null
> > +++ b/meta/recipes-support/rng-tools/rng-tools/0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch
> > @@ -0,0 +1,103 @@
> > +From 53a6f99e0bf9f70fce659268ab0354760d8f7586 Mon Sep 17 00:00:00 2001
> > +From: Christopher Larson <chris_larson@mentor.com>
> > +Date: Mon, 15 Feb 2016 15:59:58 -0700
> > +Subject: [PATCH 08/10] configure:If the libc is lacking argp, use libargp
> > +
> > +This is the squash of two patches from yocto recipe
> > +that are needed in case the libc used lacks argp
> > +to specify to use the libargp library.
> > +
> > +Needed in particular for musl
> > +
> > +0001: Patch pulled from Gentoo:
> > +
> > +    On glibc systems, argp is provided by libc.  However, on
> > +    uclibc and other systems which lack argp in their C library,
> > +    argp might be provided by a stand alone library, libargp.
> > +    This patch adds tests to the build system to find who provides
> > +    argp.
> > +
> > +    X-Gentoo-Bug: 292191
> > +    X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=292191
> > +    Reported-by: Ed Wildgoose <gentoo@wildgooses.com>
> > +    Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
> > +
> > +    Upstream-Status: Pending
> > +    Signed-off-by: Christopher Larson <chris_larson@mentor.com>
> > +
> > +0002: Add argument to control the libargp dependency
> > +
> > +    This ensures that the builds are always deterministic. If the argument isn't
> > +    passed, the default behavior is to use libargp if the libc doesn't have argp.
> > +
> > +    Upstream-Status: Pending
> > +    Signed-off-by: Christopher Larson <chris_larson@mentor.com>
> > +
> > +    Rebase to 6.6
> > +    Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> > +
> > +Signed-off-by: Nicola Lunghi <25422924+nicola-lunghi@users.noreply.github.com>
> > +---
> > + configure.ac | 39 +++++++++++++++++++++++++++++++++++++++
> > + 1 file changed, 39 insertions(+)
> > +
> > +diff --git a/configure.ac b/configure.ac
> > +index 29a46fa..671c174 100644
> > +--- a/configure.ac
> > ++++ b/configure.ac
> > +@@ -47,6 +47,13 @@ AC_ARG_WITH([pkcs11],
> > +       [with_pkcs11=check]
> > + )
> > +
> > ++AC_ARG_WITH([libargp],
> > ++      AS_HELP_STRING([--without-libargp],
> > ++              [Disable libargp support. Systems whose libc lacks argp can use libargp instead. (Default: check if libc lacks argp)]),
> > ++      [with_libargp=$withval],
> > ++      [with_libargp=check]
> > ++)
> > ++
> > + dnl Make sure anyone changing configure.ac/Makefile.am has a clue
> > + AM_MAINTAINER_MODE
> > + AM_PROG_AS
> > +@@ -153,6 +160,38 @@ AS_IF(
> > +       ]
> > + )
> > +
> > ++dnl Determine if we need libargp: either user requested, or libc has no argp
> > ++AS_IF(
> > ++      [test "x$with_libargp" != "xyes"],
> > ++      [
> > ++              AC_LINK_IFELSE(
> > ++                      [AC_LANG_PROGRAM(
> > ++                              [#include <argp.h>],
> > ++                              [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]
> > ++                              )],
> > ++                      [need_libargp=no],
> > ++                      [need_libargp=yes
> > ++                       if test "x$with_libargp" = "xno"; then
> > ++                              AC_MSG_FAILURE([libargp disabled and libc does not have argp])
> > ++                       fi]
> > ++              )
> > ++      ],
> > ++      [need_libargp=yes],
> > ++)
> > ++
> > ++dnl Check for libargp
> > ++AS_IF(
> > ++      [test "x$need_libargp" = "xyes"],
> > ++      [
> > ++              AC_CHECK_LIB(
> > ++                      [argp],
> > ++                      [argp_parse],
> > ++                      [LIBS="$LIBS -largp"],
> > ++                      [AC_MSG_FAILURE([libargp not found])]
> > ++              )
> > ++      ]
> > ++)
> > ++
> > + dnl -----------------
> > + dnl Configure options
> > + dnl -----------------
> > +--
> > +2.20.1
> > +
> > diff --git a/meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch b/meta/recipes-support/rng-tools/rng-tools/0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch
> > similarity index 94%
> > rename from meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch
> > rename to meta/recipes-support/rng-tools/rng-tools/0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch
> > index 614adab27f..132736d75a 100644
> > --- a/meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch
> > +++ b/meta/recipes-support/rng-tools/rng-tools/0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch
> > @@ -1,7 +1,7 @@
> > -From d8b1bb8edd99b2898720b4f10d292a67d532db48 Mon Sep 17 00:00:00 2001
> > +From ea266db777f52bfd3611bacb0dedca81437adb2b Mon Sep 17 00:00:00 2001
> >  From: "Francisco Blas Izquierdo Riera (klondike)" <klondike@gentoo.org>
> >  Date: Mon, 22 Oct 2018 15:29:36 +0800
> > -Subject: [PATCH 4/4] Fix assemby textrels on rdrand_asm.S on PIC x86
> > +Subject: [PATCH 09/10] Fix assemby textrels on rdrand_asm.S on PIC x86
> >  MIME-Version: 1.0
> >  Content-Type: text/plain; charset=UTF-8
> >  Content-Transfer-Encoding: 8bit
> > @@ -23,7 +23,7 @@ Reported-by: cilly <cilly@cilly.mine.nu>
> >  Reported-by: Manuel Rüger <mrueg@gentoo.org>
> >  Tested-by: Anthony Basile <blueness@gentoo.org>
> >
> > -Upstream-Status: Pending
> > +Upstream-Status: Submitted
> >  ---
> >   rdrand_asm.S | 27 +++++++++++++++++++++++++++
> >   1 file changed, 27 insertions(+)
> > @@ -110,5 +110,5 @@ index b5d260a..7811cf2 100644
> >         .balign 64
> >   aes_round_keys:
> >  --
> > -2.7.4
> > +2.20.1
> >
> > diff --git a/meta/recipes-support/rng-tools/rng-tools/underquote.patch b/meta/recipes-support/rng-tools/rng-tools/0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch
> > similarity index 77%
> > rename from meta/recipes-support/rng-tools/rng-tools/underquote.patch
> > rename to meta/recipes-support/rng-tools/rng-tools/0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch
> > index aa4bbcb346..fc4de8b6e2 100644
> > --- a/meta/recipes-support/rng-tools/rng-tools/underquote.patch
> > +++ b/meta/recipes-support/rng-tools/rng-tools/0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch
> > @@ -1,8 +1,8 @@
> > -From 03fe7efa1bc04a83fb9b6787998e7baa7ee90646 Mon Sep 17 00:00:00 2001
> > +From f7c2422be181d5f858712da9e63b14b602d82fac Mon Sep 17 00:00:00 2001
> >  From: Richard Purdie <richard.purdie@linuxfoundation.org>
> >  Date: Mon, 22 Oct 2018 15:27:41 +0800
> > -Subject: [PATCH 3/4] Fix underquoted m4 entry. This causes a failure if gcrypt
> > - isn't present:
> > +Subject: [PATCH 10/10] Fix underquoted m4 entry. This causes a failure if
> > + gcrypt isn't present:
> >
> >  | configure: libgcrypt support disabled
> >  | ../rng-tools-5/configure: line 4345: ac_fn_c_try_link: command not found
> > @@ -11,7 +11,7 @@ Subject: [PATCH 3/4] Fix underquoted m4 entry. This causes a failure if gcrypt
> >  RP
> >  2016/2/16
> >
> > -Upstream-Status: Pending
> > +Upstream-Status: Submitted
> >
> >  Rebase to 6.6
> >  Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> > @@ -20,10 +20,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> >   1 file changed, 2 insertions(+), 2 deletions(-)
> >
> >  diff --git a/configure.ac b/configure.ac
> > -index dd1c30f..88d2be3 100644
> > +index 671c174..81959f3 100644
> >  --- a/configure.ac
> >  +++ b/configure.ac
> > -@@ -124,7 +124,7 @@ AS_IF(
> > +@@ -142,7 +142,7 @@ AS_IF(
> >         [test "x$with_libgcrypt" != "xno"],
> >         [
> >                 AC_CHECK_HEADER([gcrypt.h],
> > @@ -32,7 +32,7 @@ index dd1c30f..88d2be3 100644
> >                                 [gcrypt],
> >                                 [gcry_check_version], ,
> >                                 [
> > -@@ -133,7 +133,7 @@ AS_IF(
> > +@@ -151,7 +151,7 @@ AS_IF(
> >                                                 AC_MSG_NOTICE([libgcrypt support disabled])
> >                                         fi
> >                                 ]
> > @@ -42,5 +42,5 @@ index dd1c30f..88d2be3 100644
> >                                 AC_MSG_FAILURE([libgcrypt headers not found]); else
> >                                 AC_MSG_NOTICE([libgcrypt support disabled])
> >  --
> > -2.7.4
> > +2.20.1
> >
> > diff --git a/meta/recipes-support/rng-tools/rng-tools_6.6.bb b/meta/recipes-support/rng-tools/rng-tools_6.7.bb
> > similarity index 72%
> > rename from meta/recipes-support/rng-tools/rng-tools_6.6.bb
> > rename to meta/recipes-support/rng-tools/rng-tools_6.7.bb
> > index 41959a2695..9cc5951345 100644
> > --- a/meta/recipes-support/rng-tools/rng-tools_6.6.bb
> > +++ b/meta/recipes-support/rng-tools/rng-tools_6.7.bb
> > @@ -10,16 +10,21 @@ DEPENDS = "sysfsutils"
> >
> >  SRC_URI = "\
> >      git://github.com/nhorman/rng-tools.git \
> > -    file://0001-If-the-libc-is-lacking-argp-use-libargp.patch \
> > -    file://0002-Add-argument-to-control-the-libargp-dependency.patch \
> > -    file://underquote.patch \
> > -    file://rng-tools-5-fix-textrels-on-PIC-x86.patch \
> > -    file://0001-configure.ac-fix-typo.patch \
> > +    file://0001-Remove-superfluous-variables.patch \
> > +    file://0002-Fix-a-few-typos-in-log-messages.patch \
> > +    file://0003-Fix-up-some-compile-warnings.patch \
> > +    file://0004-Fix-a-race-condition-on-shutdown.patch \
> > +    file://0005-rngd-prioritize-faster-sources-of-entropy.patch \
> > +    file://0006-rngd_jitter-replace-non-standard-pthread_yield-with-.patch \
> > +    file://0007-Make-rngd_pkcs11.c-explicitly-link-against-libcrypto.patch \
> > +    file://0008-configure-If-the-libc-is-lacking-argp-use-libargp.patch \
> > +    file://0009-Fix-assemby-textrels-on-rdrand_asm.S-on-PIC-x86.patch \
> > +    file://0010-Fix-underquoted-m4-entry.-This-causes-a-failure-if-g.patch \
> >      file://init \
> >      file://default \
> >      file://rngd.service \
> >  "
> > -SRCREV = "4ebc21d6f387bb7b4b3f6badc429e27b21c0a6ee"
> > +SRCREV = "7435d1243d73525206ab476c02abf2dcea0a3fa1"
> >
> >  S = "${WORKDIR}/git"
> >
> > @@ -31,6 +36,7 @@ PACKAGECONFIG_libc-musl = "libargp libjitterentropy"
> >  PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone,"
> >  PACKAGECONFIG[libgcrypt] = "--with-libgcrypt,--without-libgcrypt,libgcrypt,"
> >  PACKAGECONFIG[libjitterentropy] = "--enable-jitterentropy,--disable-jitterentropy,libjitterentropy"
> > +PACKAGECONFIG[libpkcs11] = "--with-pkcs11,--without-pkcs11,libp11"
> >  PACKAGECONFIG[nistbeacon] = "--with-nistbeacon,--without-nistbeacon,curl libxml2 openssl"
> >
> >  INITSCRIPT_NAME = "rng-tools"
> > --
> > 2.20.1
> >
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-06-12 12:41 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-06 15:18 [PATCH v2 1/3] rng-tools: recipe cleanup Nicola Lunghi
2019-06-06 15:18 ` [PATCH v2 2/3] rng-tools: 6.6->6.7 Nicola Lunghi
2019-06-06 16:20   ` Burton, Ross
2019-06-12 12:41     ` nick83ola
2019-06-06 15:18 ` [PATCH v2 3/3] rng-tools: armonize systemd and sysvinit files Nicola Lunghi
2019-06-06 16:21   ` Burton, Ross
2019-06-06 15:20 ` [PATCH v2 1/3] rng-tools: recipe cleanup nick83ola
2019-06-08  4:09 ` ✗ patchtest: failure for "[v2] rng-tools: recipe cleanup..." and 2 more Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox