dev-libs/openssl: check pre requirements for USE=sctp
authorThomas Deutschmann <whissi@gentoo.org>
Fri, 4 Oct 2019 14:14:43 +0000 (16:14 +0200)
committerThomas Deutschmann <whissi@gentoo.org>
Fri, 4 Oct 2019 15:48:16 +0000 (17:48 +0200)
FEATURES=test and USE=sctp requires net.sctp.auth_enable=1 or
test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel".

Package-Manager: Portage-2.3.76, Repoman-2.3.17
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
dev-libs/openssl/openssl-1.1.1d-r1.ebuild

index db1ec434fd7354fe64a7d7676c1ff905f4c672d9..1ddfa7ff16f1a4f1e75c65536bc28a1688fa5887 100644 (file)
@@ -55,6 +55,22 @@ MULTILIB_WRAPPED_HEADERS=(
        usr/include/openssl/opensslconf.h
 )
 
+pkg_setup() {
+       [[ ${MERGE_TYPE} == binary ]] && return
+
+       # must check in pkg_setup; sysctl don't work with userpriv!
+       if has test ${FEATURES}; then
+               if use sctp; then
+                       # test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel"
+                       # if sctp.auth_enable is not enabled.
+                       local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null)
+                       if [[ -z "${sctp_auth_status}" || ${sctp_auth_status} != 1 ]]; then
+                               die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!"
+                       fi
+               fi
+       fi
+}
+
 src_prepare() {
        if use bindist; then
                mv "${WORKDIR}"/bindist-patches/hobble-openssl "${WORKDIR}" || die