From 4938d2d232496b58c1093664fe9a86b6ea62bc72 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Mon, 8 May 2023 23:40:48 +0200 Subject: [PATCH] Revert "package: busybox: backport fix for missing getrandom()" This casues build failures: ..../build/busybox-1.36.0/Makefile.flags:165: *** unterminated call to function 'shell': missing ')'. Stop. This reverts commit 441c44626f3c8b6181b7b4be0757d4eb2659dcee. Signed-off-by: Yann E. MORIN --- ...r-glibc-2.24-not-providing-getrandom.patch | 39 ------- ...glibc-2.24-not-providing-random-head.patch | 60 ---------- ...trandom-detection-for-non-glibc-libc.patch | 106 ------------------ 3 files changed, 205 deletions(-) delete mode 100644 package/busybox/0005-seedrng-fix-for-glibc-2.24-not-providing-getrandom.patch delete mode 100644 package/busybox/0006-seedrng-fix-for-glibc-2.24-not-providing-random-head.patch delete mode 100644 package/busybox/0007-seedrng-fix-getrandom-detection-for-non-glibc-libc.patch diff --git a/package/busybox/0005-seedrng-fix-for-glibc-2.24-not-providing-getrandom.patch b/package/busybox/0005-seedrng-fix-for-glibc-2.24-not-providing-getrandom.patch deleted file mode 100644 index 4a194612b4..0000000000 --- a/package/busybox/0005-seedrng-fix-for-glibc-2.24-not-providing-getrandom.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 200a9669fbf6f06894e4243cccc9fc11a1a6073a Mon Sep 17 00:00:00 2001 -From: Denys Vlasenko -Date: Mon, 10 Apr 2023 17:26:04 +0200 -Subject: [PATCH] seedrng: fix for glibc <= 2.24 not providing getrandom() - -Signed-off-by: Denys Vlasenko -Upstream: https://git.busybox.net/busybox/commit/?id=200a9669fbf6f06894e4243cccc9fc11a1a6073a ---- - miscutils/seedrng.c | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/miscutils/seedrng.c b/miscutils/seedrng.c -index 967741dc7..7cc855141 100644 ---- a/miscutils/seedrng.c -+++ b/miscutils/seedrng.c -@@ -45,6 +45,20 @@ - #include - #include - -+/* Fix up glibc <= 2.24 not having getrandom() */ -+#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ <= 24 -+#include -+# define getrandom(...) bb_getrandom(__VA_ARGS__) -+static ssize_t getrandom(void *buffer, size_t length, unsigned flags) -+{ -+# if defined(__NR_getrandom) -+ return syscall(__NR_getrandom, buffer, length, flags); -+# else -+ return ENOSYS; -+# endif -+} -+#endif -+ - #ifndef GRND_INSECURE - #define GRND_INSECURE 0x0004 /* Apparently some headers don't ship with this yet. */ - #endif --- -2.39.1 - diff --git a/package/busybox/0006-seedrng-fix-for-glibc-2.24-not-providing-random-head.patch b/package/busybox/0006-seedrng-fix-for-glibc-2.24-not-providing-random-head.patch deleted file mode 100644 index d729884805..0000000000 --- a/package/busybox/0006-seedrng-fix-for-glibc-2.24-not-providing-random-head.patch +++ /dev/null @@ -1,60 +0,0 @@ -From cb57abb46f06f4ede8d9ccbdaac67377fdf416cf Mon Sep 17 00:00:00 2001 -From: Thomas Devoogdt -Date: Mon, 10 Apr 2023 19:58:15 +0200 -Subject: [PATCH] seedrng: fix for glibc <= 2.24 not providing random header - - - dropped the wrong define (not sure why it was there) - - not available if glibc <= 2.24 - - GRND_NONBLOCK not defined if not included - - ret < 0 && errno == ENOSYS has to be true to get creditable set - -Signed-off-by: Thomas Devoogdt -Signed-off-by: Denys Vlasenko -Upstream: https://git.busybox.net/busybox/commit/?id=cb57abb46f06f4ede8d9ccbdaac67377fdf416cf ---- - miscutils/seedrng.c | 14 ++++++++++---- - 1 file changed, 10 insertions(+), 4 deletions(-) - -diff --git a/miscutils/seedrng.c b/miscutils/seedrng.c -index 7cc855141..3bf6e2ea7 100644 ---- a/miscutils/seedrng.c -+++ b/miscutils/seedrng.c -@@ -42,25 +42,31 @@ - #include "libbb.h" - - #include --#include - #include - - /* Fix up glibc <= 2.24 not having getrandom() */ - #if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ <= 24 - #include --# define getrandom(...) bb_getrandom(__VA_ARGS__) - static ssize_t getrandom(void *buffer, size_t length, unsigned flags) - { - # if defined(__NR_getrandom) - return syscall(__NR_getrandom, buffer, length, flags); - # else -- return ENOSYS; -+ errno = ENOSYS; -+ return -1; - # endif - } -+#else -+#include -+#endif -+ -+/* Apparently some headers don't ship with this yet. */ -+#ifndef GRND_NONBLOCK -+#define GRND_NONBLOCK 0x0001 - #endif - - #ifndef GRND_INSECURE --#define GRND_INSECURE 0x0004 /* Apparently some headers don't ship with this yet. */ -+#define GRND_INSECURE 0x0004 - #endif - - #define DEFAULT_SEED_DIR "/var/lib/seedrng" --- -2.39.1 - diff --git a/package/busybox/0007-seedrng-fix-getrandom-detection-for-non-glibc-libc.patch b/package/busybox/0007-seedrng-fix-getrandom-detection-for-non-glibc-libc.patch deleted file mode 100644 index 90cace7968..0000000000 --- a/package/busybox/0007-seedrng-fix-getrandom-detection-for-non-glibc-libc.patch +++ /dev/null @@ -1,106 +0,0 @@ -From b8d32dba741daea2ed01a0da32083b1bc994aa04 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Rapha=C3=ABl=20M=C3=A9lotte?= -Date: Tue, 18 Apr 2023 15:54:43 +0200 -Subject: [PATCH] seedrng: fix getrandom() detection for non-glibc libc -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -glibc <= 2.24 does not provide getrandom(). A check for it has been -added in 200a9669fbf6f06894e4243cccc9fc11a1a6073a and fixed in -cb57abb46f06f4ede8d9ccbdaac67377fdf416cf. - -However, building with a libc other than glibc can lead to the same -problem as not every other libc has getrandom() either: - -- uClibc provides it from v1.0.2 onwards, but requires to define -_GNU_SOURCE (all versions - we already define it by default), and -stddef to be included first (when using uClibc < 1.0.35 - we already -include it through libbb.h). - -- musl libc has getrandom(), but only from version 1.1.20 onwards. As -musl does not provide __MUSL__ or version information, it's not -possible to check for it like we did for glibc. - -All of this makes it difficult (or impossible in case of musl) to -check what we need to do to have getrandom() based on each libc -versions. - -On top of that, getrandom() is also not available on older kernels. As -an example, when using a 3.10 kernel with uClibc 1.0.26, getrandom() -is declared so compiling works, but it fails at link time because -getrandom() is not defined. - -To make it easier, take a similar approach to what was done for the -crypt library: try to build a sample program to see if we have -getrandom(). - -Based on the new Makefile variable, we now either use the -libc-provided getrandom() when it's available, or use our own -implementation when it's not (like it was the case already for glibc < -2.25). - -This should fix compiling with many libc/kernel combinations. - -Signed-off-by: Raphaël Mélotte -Upstream: http://lists.busybox.net/pipermail/busybox/2023-April/090285.html ---- -Note that I was not able to test every single combination, but I could -confirm it builds successfully for: -uClibc 10.0.24, linux headers 3.10 (libc getrandom NOT used) -uClibc 1.0.36, linux headers 4.9 (libc getrandom used) -musl 1.1.16, linux headers 4.12 (libc getrandom NOT used) -musl 1.2.1, linux headers (libc getrandom used) -glibc 2.25, linux headers 4.10 (libc getrandom used) - - Makefile.flags | 7 +++++++ - miscutils/seedrng.c | 8 ++++---- - 2 files changed, 11 insertions(+), 4 deletions(-) - -diff --git a/Makefile.flags b/Makefile.flags -index 1cec5ba20..88c11862f 100644 ---- a/Makefile.flags -+++ b/Makefile.flags -@@ -161,6 +161,13 @@ ifeq ($(RT_AVAILABLE),y) - LDLIBS += rt - endif - -+# Not all libc versions have getrandom, so check for it. -+HAVE_GETRANDOM := $(shell printf '#include \n#include \nint main(void){char buf[256];\ngetrandom(buf,sizeof(buf),GRND_NONBLOCK);}' >bb_libtest.c; $(CC) $(CFLAGS) $(CFLAGS_busybox) -D_GNU_SOURCE -o /dev/null bb_libtest.c >/dev/null 2>&1 && echo "y"; rm bb_libtest.c) -+ -+ifeq ($(HAVE_GETRANDOM),y) -+CFLAGS += -DHAVE_GETRANDOM -+endif -+ - # libpam may use libpthread, libdl and/or libaudit. - # On some platforms that requires an explicit -lpthread, -ldl, -laudit. - # However, on *other platforms* it fails when some of those flags -diff --git a/miscutils/seedrng.c b/miscutils/seedrng.c -index 3bf6e2ea7..2f1e18c32 100644 ---- a/miscutils/seedrng.c -+++ b/miscutils/seedrng.c -@@ -44,8 +44,10 @@ - #include - #include - --/* Fix up glibc <= 2.24 not having getrandom() */ --#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ <= 24 -+/* Fix up some libc (e.g. glibc <= 2.24) not having getrandom() */ -+#if defined HAVE_GETRANDOM -+#include -+#else /* No getrandom */ - #include - static ssize_t getrandom(void *buffer, size_t length, unsigned flags) - { -@@ -56,8 +58,6 @@ static ssize_t getrandom(void *buffer, size_t length, unsigned flags) - return -1; - # endif - } --#else --#include - #endif - - /* Apparently some headers don't ship with this yet. */ --- -2.39.1 -