* [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
* 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 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
* [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 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
* 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
* ✗ 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
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