dev-lua/lua-resty-string: new package, add 0.16

lua-resty-string[1] is a Lua module for ngx-lua-module NGINX module
providing "string utilities and common hash functions for ngx_lua and
LuaJIT".

[1]: https://github.com/openresty/lua-resty-string

Signed-off-by: Zurab Kvachadze <zurabid2016@gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/37590
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Zurab Kvachadze
2025-02-18 16:14:52 +01:00
committed by Sam James
parent c9fec840b1
commit 68c9c7920a
4 changed files with 130 additions and 0 deletions

View File

@@ -0,0 +1 @@
DIST lua-resty-string-0.16.tar.gz 13078 BLAKE2B 9c0903da36f6309fed47c9f184510c53877d35c86a8b6ba91e008c5010a8b65adec70b7e6911e51cae1121c5c2c64638b3c41117ae4b7949613766d5403fda31 SHA512 dff61ebfe42ea055c2d20ab8d54a53a88d67b40dfb87bb97aa91e857a8f95884c2444d50942a6b7e580f503cc98467799b421dc659dc5d1d41c64fb30d303746

View File

@@ -0,0 +1,73 @@
From 73c6a2fbb376ee6550b15e2c6487c86c27ed3a71 Mon Sep 17 00:00:00 2001
From: Zurab Kvachadze <zurabid2016@gmail.com>
Date: Fri, 14 Mar 2025 16:49:04 +0100
Subject: [PATCH] lib/resty: Explicitly load libcrypto in all crypto-exporting
FFI modules
Lua modules in lib/resty provide FFI wrappers for cryptographic OpenSSL
functions without explicitly loading libcrypto itself. This commit makes
the modules load the library.
Signed-off-by: Zurab Kvachadze <zurabid2016@gmail.com>
---
lib/resty/aes.lua | 2 ++
lib/resty/md5.lua | 2 ++
lib/resty/random.lua | 2 ++
lib/resty/sha.lua | 2 ++
4 files changed, 8 insertions(+)
diff --git a/lib/resty/aes.lua b/lib/resty/aes.lua
index 377476f..8a9f9a1 100644
--- a/lib/resty/aes.lua
+++ b/lib/resty/aes.lua
@@ -11,6 +11,8 @@ local C = ffi.C
local setmetatable = setmetatable
--local error = error
local type = type
+-- Load libcrypto into global namespace.
+_ = ffi.load("crypto", true)
local _M = { _VERSION = '0.16' }
diff --git a/lib/resty/md5.lua b/lib/resty/md5.lua
index 66b3b3e..09ce8c8 100644
--- a/lib/resty/md5.lua
+++ b/lib/resty/md5.lua
@@ -7,6 +7,8 @@ local ffi_str = ffi.string
local C = ffi.C
local setmetatable = setmetatable
--local error = error
+-- Load libcrypto into global namespace.
+_ = ffi.load("crypto", true)
local _M = { _VERSION = '0.16' }
diff --git a/lib/resty/random.lua b/lib/resty/random.lua
index 153b1f3..673bf40 100644
--- a/lib/resty/random.lua
+++ b/lib/resty/random.lua
@@ -7,6 +7,8 @@ local ffi_str = ffi.string
local C = ffi.C
--local setmetatable = setmetatable
--local error = error
+-- Load libcrypto into global namespace.
+_ = ffi.load("crypto", true)
local _M = { _VERSION = '0.16' }
diff --git a/lib/resty/sha.lua b/lib/resty/sha.lua
index ce4e50a..b631b1f 100644
--- a/lib/resty/sha.lua
+++ b/lib/resty/sha.lua
@@ -2,6 +2,8 @@
local ffi = require "ffi"
+-- Load libcrypto into global namespace.
+_ = ffi.load("crypto", true)
local _M = { _VERSION = '0.16' }
--
2.45.3

View File

@@ -0,0 +1,40 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Openresty only ever supports luajit.
LUA_COMPAT=( luajit )
inherit lua-single
DESCRIPTION="String utilities and common hash functions for the ngx-lua-module NGINX module"
HOMEPAGE="https://github.com/openresty/lua-resty-string"
SRC_URI="
https://github.com/openresty/lua-resty-string/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
"
LICENSE="BSD-2"
SLOT="0"
# Tests require replicating much of nginx-module_src_test() in each
# dev-lua/lua-resty-* ebuild.
RESTRICT="test"
REQUIRED_USE="${LUA_REQUIRED_USE}"
BDEPEND="virtual/pkgconfig"
DEPEND="
${LUA_DEPS}
dev-libs/openssl:=
"
RDEPEND="${DEPEND}"
PATCHES=(
"${FILESDIR}/${PN}-0.16-explicitly-load-libcrypto.patch"
)
src_configure() {
# The directory where to Lua files are to be installed, used by the build
# system.
export LUA_LIB_DIR="$(lua_get_lmod_dir)"
default
}

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person" proxied="yes">
<email>zurabid2016@gmail.com</email>
<name>Zurab Kvachadze</name>
</maintainer>
<maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
<upstream>
<bugs-to>https://github.com/openresty/lua-resty-string/issues</bugs-to>
<remote-id type="github">openresty/lua-resty-string</remote-id>
</upstream>
</pkgmetadata>