commit:     3f1aad3dcf145d7d7b6a877c157db123f4de26b3
Author:     Glenn Strauss <gstrauss <AT> gluelogic <DOT> com>
AuthorDate: Wed May  8 11:07:22 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jun 30 08:27:48 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3f1aad3d

www-servers/lighttpd: USE_CRYPTO_* flags

Signed-off-by: Glenn Strauss <gstrauss <AT> gluelogic.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 www-servers/lighttpd/lighttpd-9999.ebuild | 36 +++++++++++++++++++++++++++++--
 www-servers/lighttpd/metadata.xml         |  6 +++++-
 2 files changed, 39 insertions(+), 3 deletions(-)

diff --git a/www-servers/lighttpd/lighttpd-9999.ebuild 
b/www-servers/lighttpd/lighttpd-9999.ebuild
index ea8a10005ca7..c50a54419e5a 100644
--- a/www-servers/lighttpd/lighttpd-9999.ebuild
+++ b/www-servers/lighttpd/lighttpd-9999.ebuild
@@ -22,7 +22,7 @@ fi
 
 LICENSE="BSD GPL-2"
 SLOT="0"
-IUSE="+brotli dbi gnutls kerberos ldap libdeflate +lua maxminddb mbedtls 
+nettle nss +pcre php sasl selinux ssl test unwind webdav xattr +zlib zstd"
+IUSE="+brotli crypto-gnutls crypto-mbedtls crypto-nettle crypto-openssl dbi 
gnutls kerberos ldap libdeflate +lua maxminddb mbedtls +nettle nss +pcre php 
sasl selinux ssl test unwind webdav xattr +zlib zstd"
 RESTRICT="!test? ( test )"
 
 REQUIRED_USE="
@@ -36,6 +36,10 @@ COMMON_DEPEND="
        >=dev-libs/xxhash-0.8.2
        virtual/libcrypt:=
        brotli? ( app-arch/brotli:= )
+       crypto-gnutls? ( net-libs/gnutls )
+       crypto-mbedtls? ( net-libs/mbedtls )
+       crypto-nettle? ( dev-libs/nettle:= )
+       crypto-openssl? ( >=dev-libs/openssl-0.9.7:= )
        dbi? (
                dev-db/libdbi
        )
@@ -107,9 +111,37 @@ pkg_setup() {
 }
 
 src_configure() {
+
+       local c_defs
+       local with_nettle
+
+       # choose crypto library
+       # (one specific library might be preferred on embedded systems via
+       #  MYMESONARGS with e.g. -DFORCE_blah_CRYPTO)
+       if use crypto-nettle ; then
+               with_nettle=$(meson_use crypto-nettle with_nettle)
+       elif use nettle ; then
+               with_nettle=$(meson_use nettle with_nettle)
+       else
+               if use crypto-mbedtls ; then
+                       c_defs+=-DFORCE_MBEDTLS_CRYPTO
+               elif use crypto-openssl ; then
+                       c_defs+=-DFORCE_OPENSSL_CRYPTO
+               elif use crypto-gnutls ; then
+                       c_defs+=-DFORCE_GNUTLS_CRYPTO
+               fi
+       fi
+
+       local c_args
+       if c_defs ; then
+               c_args=-Dc_args=\"${c_defs[0]}\"
+       fi
+
        local emesonargs=(
                -Dmoduledir="$(get_libdir)"/${PN}
 
+               ${c_args}
+
                $(meson_feature brotli with_brotli)
 
                # TODO: revisit (was off in autotools ebuild)
@@ -134,7 +166,7 @@ src_configure() {
                $(meson_feature maxminddb with_maxminddb)
                $(meson_use mbedtls with_mbedtls)
 
-               $(meson_use nettle with_nettle)
+               ${with_nettle}
                $(meson_use nss with_nss)
 
                # Obsolete

diff --git a/www-servers/lighttpd/metadata.xml 
b/www-servers/lighttpd/metadata.xml
index e4c15c0ffdca..02655cc07024 100644
--- a/www-servers/lighttpd/metadata.xml
+++ b/www-servers/lighttpd/metadata.xml
@@ -15,11 +15,15 @@
        </longdescription>
        <use>
                <flag name="brotli">Enable output compression via 
<pkg>app-arch/brotli</pkg> (recommended)</flag>
+               <flag name="crypto-gnutls">Use <pkg>net-libs/gnutls</pkg> as 
crypto library</flag>
+               <flag name="crypto-mbedtls">Use <pkg>net-libs/mbedtls</pkg> as 
crypto library</flag>
+               <flag name="crypto-nettle">Use <pkg>dev-libs/nettle</pkg> as 
crypto library</flag>
+               <flag name="crypto-openssl">Use <pkg>dev-libs/openssl</pkg> as 
crypto library</flag>
                <flag name="gnutls">Build module for TLS via 
<pkg>net-libs/gnutls</pkg></flag>
                <flag name="libdeflate">Enable output compression via 
<pkg>app-arch/libdeflate</pkg></flag>
                <flag name="maxminddb">Add support for geolocation using 
<pkg>dev-libs/libmaxminddb</pkg></flag>
                <flag name="mbedtls">Build module for TLS via 
<pkg>net-libs/mbedtls</pkg></flag>
-               <flag name="nettle">Use <pkg>dev-libs/nettle</pkg> as crypto 
backend</flag>
+               <flag name="nettle">Use <pkg>dev-libs/nettle</pkg> as crypto 
library</flag>
                <flag name="nss">Build module for TLS via Mozilla's Network 
Security Services</flag>
                <flag name="webdav">Enable webdav properties</flag>
                <flag name="zlib">Enable output compression via gzip or deflate 
algorithms from <pkg>sys-libs/zlib</pkg></flag>

Reply via email to