commit: 8e39e1bb8a3ed0f7e4bb40512298020acc4e37ef Author: Zurab Kvachadze <zurabid2016 <AT> gmail <DOT> com> AuthorDate: Sat Jul 13 11:03:18 2024 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sat Jul 5 07:26:57 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8e39e1bb
www-nginx/ngx-set-misc: new package, add 0.33 The build system of this package automagically enables HMAC support based on SSL functionality being enabled in the installed NGINX. In order to enable this support independently, via a USE flag, a "hack" is applied: only if GENTOO_USE_HMAC environmental variable and preprocessor definition are defined, HMAC support is enabled. Signed-off-by: Zurab Kvachadze <zurabid2016 <AT> gmail.com> Part-of: https://github.com/gentoo/gentoo/pull/37590 Signed-off-by: Sam James <sam <AT> gentoo.org> www-nginx/ngx-set-misc/Manifest | 1 + .../ngx-set-misc-0.33-hmac-configurable.patch | 71 ++++++++++++++++++++++ www-nginx/ngx-set-misc/metadata.xml | 25 ++++++++ www-nginx/ngx-set-misc/ngx-set-misc-0.33.ebuild | 43 +++++++++++++ 4 files changed, 140 insertions(+) diff --git a/www-nginx/ngx-set-misc/Manifest b/www-nginx/ngx-set-misc/Manifest new file mode 100644 index 000000000000..34be9e483747 --- /dev/null +++ b/www-nginx/ngx-set-misc/Manifest @@ -0,0 +1 @@ +DIST ngx-set-misc-0.33.tar.gz 30084 BLAKE2B 1aabf47e86946054d128a10290c36829152d427cf415378f5042e00e428baaf94a91e1d8ee1037b8a40197637c721492b01a82c800064decb9471149ad47bcff SHA512 1ff4c947538a5bd5f9d6adcd87b37f2702f5cc90e3342bc08359cbe8f290b705a3a2daa3dedfb1df3ce4bc19478c8fcac07081c4a53a804fc2862d50078278dc diff --git a/www-nginx/ngx-set-misc/files/ngx-set-misc-0.33-hmac-configurable.patch b/www-nginx/ngx-set-misc/files/ngx-set-misc-0.33-hmac-configurable.patch new file mode 100644 index 000000000000..49302624efa3 --- /dev/null +++ b/www-nginx/ngx-set-misc/files/ngx-set-misc-0.33-hmac-configurable.patch @@ -0,0 +1,71 @@ +From 01292430b8eb0972670a3221c4809fc6a9bd98f2 Mon Sep 17 00:00:00 2001 +From: Zurab Kvachadze <zurabid2...@gmail.com> +Date: Mon, 23 Dec 2024 00:32:18 +0100 +Subject: [PATCH] Make HMAC support easily toggleable + +set-misc-nginx-module tries to automagically detect the presence of the +crypto library by checking USE_OPENSSL and MAIL_SSL shell variables. +These variables are set by NGINX build system (see 'auto/modules') if +OpenSSL and mail_ssl modules are being used respectively. Since set-misc +does not actually depend on any of the NGINX's SSL modules, but rather +on OpenSSL itself, we change the guard variable to GENTOO_USE_HMAC and +set from within ebuild based on a USE flag. + +This also makes a similar change to ngx_http_set_misc_module.c file. + +Signed-off-by: Zurab Kvachadze <zurabid2...@gmail.com> +--- + config | 3 ++- + src/ngx_http_set_misc_module.c | 6 +++--- + 2 files changed, 5 insertions(+), 4 deletions(-) + +diff --git a/config b/config +index 7bb00af..58bffd4 100755 +--- a/config ++++ b/config +@@ -54,9 +54,10 @@ SET_MISC_DEPS=" \ + $ngx_addon_dir/src/ngx_http_set_misc_module.h \ + " + +-if [ $USE_OPENSSL = YES -o $MAIL_SSL = YES ]; then ++if [ $GENTOO_USE_HMAC = YES ]; then + SET_MISC_DEPS="$SET_MISC_DEPS $ngx_addon_dir/src/ngx_http_set_hmac.h" + SET_MISC_SRCS="$SET_MISC_SRCS $ngx_addon_dir/src/ngx_http_set_hmac.c" ++ CFLAGS="$CFLAGS -DGENTOO_USE_HMAC=1" + fi + + CFLAGS="$CFLAGS -DNDK_SET_VAR -DNDK_UPSTREAM_LIST" +diff --git a/src/ngx_http_set_misc_module.c b/src/ngx_http_set_misc_module.c +index 3b12b0e..6d4df68 100644 +--- a/src/ngx_http_set_misc_module.c ++++ b/src/ngx_http_set_misc_module.c +@@ -18,7 +18,7 @@ + #include "ngx_http_set_hex.h" + #include "ngx_http_set_base64.h" + #include "ngx_http_set_base64url.h" +-#if NGX_OPENSSL ++#if GENTOO_USE_HMAC + #include "ngx_http_set_hmac.h" + #endif + #include "ngx_http_set_random.h" +@@ -90,7 +90,7 @@ static ndk_set_var_t ngx_http_set_misc_set_encode_hex_filter = { + }; + + +-#if NGX_OPENSSL ++#if GENTOO_USE_HMAC + static ndk_set_var_t ngx_http_set_misc_set_hmac_sha1_filter = { + NDK_SET_VAR_MULTI_VALUE, + (void *) ngx_http_set_misc_set_hmac_sha1, +@@ -281,7 +281,7 @@ static ngx_command_t ngx_http_set_misc_commands[] = { + 0, + &ngx_http_set_misc_set_encode_hex_filter + }, +-#if NGX_OPENSSL ++#if GENTOO_USE_HMAC + { ngx_string ("set_hmac_sha1"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_SIF_CONF + |NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF|NGX_CONF_TAKE3, +-- +2.45.3 + diff --git a/www-nginx/ngx-set-misc/metadata.xml b/www-nginx/ngx-set-misc/metadata.xml new file mode 100644 index 000000000000..327c79a8fbb6 --- /dev/null +++ b/www-nginx/ngx-set-misc/metadata.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>zurabid2...@gmail.com</email> + <name>Zurab Kvachadze</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-ma...@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <longdescription> + The ngx-set-mist module extends the standard NGINX HttpRewriteModule's directive set to + provide more functionalities like URI escaping and unescaping, JSON quoting, + Hexadecimal/MD5/SHA1/Base32/Base64 digest encoding and decoding, random number generator, + and more. + </longdescription> + <use> + <flag name="hmac">Enable support for generating HMAC digests using <pkg>dev-libs/openssl</pkg></flag> + </use> + <upstream> + <bugs-to>https://github.com/openresty/set-misc-nginx-module/issues</bugs-to> + <remote-id type="github">openresty/set-misc-nginx-module</remote-id> + </upstream> +</pkgmetadata> diff --git a/www-nginx/ngx-set-misc/ngx-set-misc-0.33.ebuild b/www-nginx/ngx-set-misc/ngx-set-misc-0.33.ebuild new file mode 100644 index 000000000000..c71366126ffe --- /dev/null +++ b/www-nginx/ngx-set-misc/ngx-set-misc-0.33.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PN="set-misc-nginx-module" +NGINX_MOD_S="${WORKDIR}/${MY_PN}-${PV}" + +NGINX_MOD_LINK_MODULES=( www-nginx/ngx_devel_kit ) + +inherit toolchain-funcs nginx-module + +DESCRIPTION="An NGINX module that adds various set_xxx directives to NGINX's rewrite module" +HOMEPAGE="https://github.com/openresty/set-misc-nginx-module" +SRC_URI=" + https://github.com/openresty/set-misc-nginx-module/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz +" + +LICENSE="BSD-2" +SLOT="0" + +IUSE="+hmac" + +RESTRICT="test" + +BDEPEND="virtual/pkgconfig" +DEPEND="hmac? ( dev-libs/openssl:= )" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}/${PN}-0.33-hmac-configurable.patch" +) + +src_configure() { + # These are variables patched into the build system to be able to control + # HMAC support. For more details, see the "hmac-configurable" patch above. + local -x GENTOO_USE_HMAC=NO + if use hmac; then + GENTOO_USE_HMAC=YES + ngx_mod_append_libs "$("$(tc-getPKG_CONFIG)" --libs libcrypto)" + fi + nginx-module_src_configure +}