commit:     8bacde9ab38c268737a14ffa2c5c239c406d23d8
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri Nov  4 15:55:40 2022 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Nov  8 17:04:39 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8bacde9a

dev-libs/libgcrypt: add kernel version check for getentropy

Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 dev-libs/libgcrypt/libgcrypt-1.10.1-r2.ebuild | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/dev-libs/libgcrypt/libgcrypt-1.10.1-r2.ebuild 
b/dev-libs/libgcrypt/libgcrypt-1.10.1-r2.ebuild
index 844c21219fb8..5614f817ecb3 100644
--- a/dev-libs/libgcrypt/libgcrypt-1.10.1-r2.ebuild
+++ b/dev-libs/libgcrypt/libgcrypt-1.10.1-r2.ebuild
@@ -4,7 +4,7 @@
 EAPI=7
 
 VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/gnupg.asc
-inherit autotools flag-o-matic multilib-minimal toolchain-funcs verify-sig
+inherit autotools flag-o-matic linux-info multilib-minimal toolchain-funcs 
verify-sig
 
 DESCRIPTION="General purpose crypto library based on the code used in GnuPG"
 HOMEPAGE="https://www.gnupg.org/";
@@ -52,6 +52,27 @@ MULTILIB_CHOST_TOOLS=(
        /usr/bin/libgcrypt-config
 )
 
+pkg_pretend() {
+       if [[ ${MERGE_TYPE} == buildonly ]]; then
+               return
+       fi
+       if use kernel_linux && use getentropy; then
+               unset KV_FULL
+               get_running_version
+               if [[ -n ${KV_FULL} ]] && kernel_is -lt 3 17; then
+                       eerror "The getentropy function requires the getrandom 
syscall."
+                       eerror "This was introduced in Linux 3.17."
+                       eerror "Your system is currently running Linux 
${KV_FULL}."
+                       eerror "Disable the 'getentropy' USE flag or upgrade 
your kernel."
+                       die "Kernel is too old for getentropy"
+               fi
+       fi
+}
+
+pkg_setup() {
+       :
+}
+
 src_prepare() {
        default
        eautoreconf

Reply via email to