commit: a420be1dffb7d144cda2161519165a47d1c22d45 Author: Petr Vaněk <arkamar <AT> gentoo <DOT> org> AuthorDate: Wed Oct 2 17:36:00 2024 +0000 Commit: Petr Vaněk <arkamar <AT> gentoo <DOT> org> CommitDate: Wed Oct 2 17:43:51 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a420be1d
mail-filter/rspamd: fix build issue with lua5-{3,4} Backport patch, which fixes a build issue with Lua 5.3 and 5.4. Issue: https://github.com/rspamd/rspamd/issues/5163 Signed-off-by: Petr Vaněk <arkamar <AT> gentoo.org> .../rspamd/files/rspamd-3.10.0-libucl-type.patch | 36 ++++++++++++++++++++++ ...spamd-3.10.0.ebuild => rspamd-3.10.0-r1.ebuild} | 3 ++ 2 files changed, 39 insertions(+) diff --git a/mail-filter/rspamd/files/rspamd-3.10.0-libucl-type.patch b/mail-filter/rspamd/files/rspamd-3.10.0-libucl-type.patch new file mode 100644 index 000000000000..25d4c32d26ff --- /dev/null +++ b/mail-filter/rspamd/files/rspamd-3.10.0-libucl-type.patch @@ -0,0 +1,36 @@ +From 3041484f859f3d8cc2275c5189280c31ff3ffeda Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20Van=C4=9Bk?= <arka...@atlas.cz> +Date: Wed, 2 Oct 2024 15:01:07 +0200 +Subject: [PATCH] [Fix] Use correct type for keylen in lua_ucl_newindex + +The keylen variable used in lua_ucl_newindex function should use size_t +type instead of lua_Integer, because all functions that use keylen +expect it to be of size_t type. This mismatch leads to incompatible +pointer types, and modern versions of GCC fail to compile the code. + +Fixes: 9e87597ceb05 ("[Project] Allow manipulations with opaque UCL objects") +Issue: https://github.com/rspamd/rspamd/issues/5163 +PR: https://github.com/rspamd/rspamd/pull/5169 + +diff --git a/contrib/libucl/lua_ucl.c b/contrib/libucl/lua_ucl.c +index 19ac9cb127..473aefe0cf 100644 +--- a/contrib/libucl/lua_ucl.c ++++ b/contrib/libucl/lua_ucl.c +@@ -1426,7 +1426,7 @@ lua_ucl_newindex(lua_State *L) + + if (ucl_object_type(obj) == UCL_OBJECT) { + if (key_type == LUA_TSTRING) { +- lua_Integer keylen; ++ size_t keylen; + const char *key = lua_tolstring(L, 2, &keylen); + + ucl_object_t *value_obj = lua_ucl_object_get(L, 3); +@@ -1539,7 +1539,7 @@ lua_ucl_newindex(lua_State *L) + obj->value.av = NULL; + obj->type = UCL_OBJECT; + +- lua_Integer keylen; ++ size_t keylen; + const char *key = lua_tolstring(L, 2, &keylen); + + ucl_object_t *value_obj = lua_ucl_object_get(L, 3); diff --git a/mail-filter/rspamd/rspamd-3.10.0.ebuild b/mail-filter/rspamd/rspamd-3.10.0-r1.ebuild similarity index 97% rename from mail-filter/rspamd/rspamd-3.10.0.ebuild rename to mail-filter/rspamd/rspamd-3.10.0-r1.ebuild index 45df6738554b..8fb906ba42cb 100644 --- a/mail-filter/rspamd/rspamd-3.10.0.ebuild +++ b/mail-filter/rspamd/rspamd-3.10.0-r1.ebuild @@ -75,6 +75,9 @@ PATCHES=( # backward compatibility with <dev-libs/libfmt-11 "${FILESDIR}/${PN}-3.9.0-older-libfmt.patch" + + # see https://github.com/rspamd/rspamd/issues/5163 + "${FILESDIR}/${P}-libucl-type.patch" ) src_prepare() {