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
+}

Reply via email to