summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-07-06 03:07:48 +0100
committerSam James <sam@gentoo.org>2023-07-06 03:10:40 +0100
commit3eb7e3258d4fd7584fae543d779d9fdea666e721 (patch)
tree2604917ec1cbe74a74f0e7d4a99cd548ad5506b5
parentdev-util/global: add 6.6.10 (diff)
downloadgentoo-3eb7e3258d4fd7584fae543d779d9fdea666e721.tar.gz
gentoo-3eb7e3258d4fd7584fae543d779d9fdea666e721.tar.bz2
gentoo-3eb7e3258d4fd7584fae543d779d9fdea666e721.zip
dev-libs/botan: fix musl build
Couldn't reproduce it but seems straightforward wrt the issue. Closes: https://bugs.gentoo.org/909422 Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--dev-libs/botan/botan-3.0.0-r2.ebuild3
-rw-r--r--dev-libs/botan/files/botan-3.0.0-getentropy-includes.patch68
2 files changed, 71 insertions, 0 deletions
diff --git a/dev-libs/botan/botan-3.0.0-r2.ebuild b/dev-libs/botan/botan-3.0.0-r2.ebuild
index 866ca3ab1f23..fb1e9384a2cc 100644
--- a/dev-libs/botan/botan-3.0.0-r2.ebuild
+++ b/dev-libs/botan/botan-3.0.0-r2.ebuild
@@ -55,6 +55,9 @@ BDEPEND="
# NOTE: Considering patching Botan?
# Please see upstream's guidance:
# https://botan.randombit.net/handbook/packaging.html#minimize-distribution-patches
+PATCHES=(
+ "${FILESDIR}"/${P}-getentropy-includes.patch
+)
python_check_deps() {
use doc || return 0
diff --git a/dev-libs/botan/files/botan-3.0.0-getentropy-includes.patch b/dev-libs/botan/files/botan-3.0.0-getentropy-includes.patch
new file mode 100644
index 000000000000..d8b99ba0f4c5
--- /dev/null
+++ b/dev-libs/botan/files/botan-3.0.0-getentropy-includes.patch
@@ -0,0 +1,68 @@
+https://bugs.gentoo.org/909422
+https://github.com/randombit/botan/commit/3f87e1eef7dbfe231d833ffbf06f7a85b070b600 (cherry-picked getentropy.cpp bit)
+https://github.com/randombit/botan/commit/562ea8da8ab34985b4b3dfefc1bea57829213ace
+
+--- a/src/lib/entropy/getentropy/getentropy.cpp
++++ b/src/lib/entropy/getentropy/getentropy.cpp
+@@ -10,8 +10,8 @@
+ #if defined(BOTAN_TARGET_OS_IS_OPENBSD) || defined(BOTAN_TARGET_OS_IS_FREEBSD) || defined(BOTAN_TARGET_OS_IS_SOLARIS)
+ #include <unistd.h>
+ #else
+- #include <sys/types.h> // older macOS needs this before sys/random.h
+ #include <sys/random.h>
++ #include <sys/types.h> // older macOS needs this before sys/random.h
+ #endif
+
+ namespace Botan {
+@@ -21,16 +21,14 @@ namespace Botan {
+ * buffer size is limited to 256 bytes. On OpenBSD this does neither
+ * block nor fail.
+ */
+-size_t Getentropy::poll(RandomNumberGenerator& rng)
+- {
++size_t Getentropy::poll(RandomNumberGenerator& rng) {
+ secure_vector<uint8_t> buf(256);
+
+- if(::getentropy(buf.data(), buf.size()) == 0)
+- {
++ if(::getentropy(buf.data(), buf.size()) == 0) {
+ rng.add_entropy(buf.data(), buf.size());
+ return buf.size() * 8;
+- }
++ }
+
+ return 0;
+- }
+ }
++} // namespace Botan
+
+From 562ea8da8ab34985b4b3dfefc1bea57829213ace Mon Sep 17 00:00:00 2001
+From: Jack Lloyd <jack@randombit.net>
+Date: Mon, 29 May 2023 10:10:54 -0400
+Subject: [PATCH] Clean up getentropy includes
+
+--- a/src/lib/entropy/getentropy/getentropy.cpp
++++ b/src/lib/entropy/getentropy/getentropy.cpp
+@@ -6,12 +6,11 @@
+ */
+
+ #include <botan/internal/getentropy.h>
++#include <unistd.h>
+
+-#if defined(BOTAN_TARGET_OS_IS_OPENBSD) || defined(BOTAN_TARGET_OS_IS_FREEBSD) || defined(BOTAN_TARGET_OS_IS_SOLARIS)
+- #include <unistd.h>
+-#else
++// macOS and Android include it in sys/random.h instead
++#if __has_include(<sys/random.h>)
+ #include <sys/random.h>
+- #include <sys/types.h> // older macOS needs this before sys/random.h
+ #endif
+
+ namespace Botan {
+@@ -31,4 +30,5 @@ size_t Getentropy::poll(RandomNumberGenerator& rng) {
+
+ return 0;
+ }
++
+ } // namespace Botan
+