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>
This commit is contained in:
Sam James
2023-07-06 03:07:48 +01:00
parent 89e944eed5
commit 3eb7e3258d
2 changed files with 71 additions and 0 deletions

View File

@@ -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

View File

@@ -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