summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mail-filter/rspamd')
-rw-r--r--mail-filter/rspamd/Manifest3
-rw-r--r--mail-filter/rspamd/files/rspamd-2.5-unbundle-snowball.patch23
-rw-r--r--mail-filter/rspamd/files/rspamd-2.6-cmake-lua-version.patch44
-rw-r--r--mail-filter/rspamd/files/rspamd-2.6-unbundle-lua.patch53
-rw-r--r--mail-filter/rspamd/files/rspamd-2.6-unbundle-zstd.patch128
-rw-r--r--mail-filter/rspamd/files/rspamd-2.7-cmake-lua-version.patch49
-rw-r--r--mail-filter/rspamd/files/rspamd-2.7-unbundle-zstd.patch125
-rw-r--r--mail-filter/rspamd/files/rspamd-3.6-cmake-lua-version.patch64
-rw-r--r--mail-filter/rspamd/files/rspamd-3.6-unbundle-lua.patch61
-rw-r--r--mail-filter/rspamd/files/rspamd-3.6-unbundle-snowball.patch20
-rw-r--r--mail-filter/rspamd/metadata.xml19
-rw-r--r--mail-filter/rspamd/rspamd-2.6-r100.ebuild117
-rw-r--r--mail-filter/rspamd/rspamd-2.7-r100.ebuild117
-rw-r--r--mail-filter/rspamd/rspamd-3.8.4.ebuild163
-rw-r--r--mail-filter/rspamd/rspamd-9999.ebuild91
15 files changed, 378 insertions, 699 deletions
diff --git a/mail-filter/rspamd/Manifest b/mail-filter/rspamd/Manifest
index df4f86e665d9..dd2b12eb7b18 100644
--- a/mail-filter/rspamd/Manifest
+++ b/mail-filter/rspamd/Manifest
@@ -1,2 +1 @@
-DIST rspamd-2.6.tar.gz 5079444 BLAKE2B acb9d9471d0bb457da33b4d23e3c75ef87ea26a47e6c731bfd5fbbfe28567244e2bc72fd25ca3408db0928dab4e4ab66596e38cf3eff7cb9690eec59d3b62372 SHA512 79e4c1aa763aef753c8d7b2a941ed92b384e96c25e6d1b3bd1321c5acc0ecb934d033a3bf19cb94c89809fd92edec25192cffe97de9e5251681e1a71216b734a
-DIST rspamd-2.7.tar.gz 5126227 BLAKE2B 70f57dba6ac9abe93d735d42e84bd17a1797035322029577a8e4376409bcee5345d4624925d3dd071bddce038858ebfdce8ee4f87f81b1fc8b1f71ad14e85930 SHA512 8779771baf85ef6ca1d7d2180429072ab1547ab834b073ee9222dcc6494efdd0a23f5e7ac52a777c23fd89296769f5b6f182593e714097c6f11ca7c9165e4ba7
+DIST rspamd-3.8.4.tar.gz 5915680 BLAKE2B a6674c5175a10dffa440b9f4227fc4f2e7c497bf8a5a6c87c9f042ca870380a61be63405f4d2714103f49679edd5a28c4eb30807b8acb22998c7dbba72f19cb3 SHA512 dda099dd9a17699d143fc8018b89fbecfa9659eccc26b5fb88bc3f40c47e935993dfc81f1f93bb69880d17af40870e6ea20edbeed7e3f4c12c278f5c12b56a51
diff --git a/mail-filter/rspamd/files/rspamd-2.5-unbundle-snowball.patch b/mail-filter/rspamd/files/rspamd-2.5-unbundle-snowball.patch
deleted file mode 100644
index 10b56fa977ad..000000000000
--- a/mail-filter/rspamd/files/rspamd-2.5-unbundle-snowball.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index ad989f7f2..d08496998 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -108,7 +108,6 @@ INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/"
- "${CMAKE_SOURCE_DIR}/contrib/libottery"
- "${CMAKE_SOURCE_DIR}/contrib/xxhash"
- "${CMAKE_SOURCE_DIR}/contrib/cdb"
-- "${CMAKE_SOURCE_DIR}/contrib/snowball/include"
- "${CMAKE_SOURCE_DIR}/contrib/librdns"
- "${CMAKE_SOURCE_DIR}/contrib/aho-corasick"
- "${CMAKE_SOURCE_DIR}/contrib/lc-btrie"
-@@ -586,7 +585,6 @@ ADD_SUBDIRECTORY(contrib/fpconv)
- ADD_SUBDIRECTORY(contrib/lc-btrie)
- ADD_SUBDIRECTORY(contrib/libottery)
- IF(ENABLE_SNOWBALL MATCHES "ON")
-- ADD_SUBDIRECTORY(contrib/snowball)
- SET(WITH_SNOWBALL 1)
- ENDIF()
- ADD_SUBDIRECTORY(contrib/libucl)
---
-2.24.1
-
diff --git a/mail-filter/rspamd/files/rspamd-2.6-cmake-lua-version.patch b/mail-filter/rspamd/files/rspamd-2.6-cmake-lua-version.patch
deleted file mode 100644
index 141b13dfa8af..000000000000
--- a/mail-filter/rspamd/files/rspamd-2.6-cmake-lua-version.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -139,40 +139,8 @@
- ELSE(ENABLE_LUAJIT MATCHES "ON")
-
- ProcessPackage(LIBLUA LIBRARY "lua"
-- "lua-5.3"
-- INCLUDE lua.h INCLUDE_SUFFIXES
-- "include/lua-5.3"
-- "include/lua5.3"
-- "include/lua53"
-- "include/lua"
- ROOT ${LUA_ROOT}
-- MODULES lua53
-- OPTIONAL)
--
-- IF (NOT WITH_LIBLUA)
-- ProcessPackage(LIBLUA LIBRARY "lua"
-- "lua-5.2"
-- INCLUDE lua.h INCLUDE_SUFFIXES
-- "include/lua-5.2"
-- "include/lua5.2"
-- "include/lua52"
-- "include/lua"
-- ROOT ${LUA_ROOT}
-- MODULES lua52
-- OPTIONAL)
--
-- IF (NOT WITH_LIBLUA)
-- ProcessPackage(LIBLUA LIBRARY "lua"
-- "lua-5.1"
-- INCLUDE lua.h INCLUDE_SUFFIXES
-- "include/lua-5.1"
-- "include/lua5.1"
-- "include/lua51"
-- "include/lua"
-- ROOT ${LUA_ROOT}
-- MODULES lua51)
-- ENDIF()
-- ENDIF()
-+ MODULES lua)
- ENDIF(ENABLE_LUAJIT MATCHES "ON")
-
- IF(ENABLE_JEMALLOC MATCHES "ON" AND NOT SANITIZE)
diff --git a/mail-filter/rspamd/files/rspamd-2.6-unbundle-lua.patch b/mail-filter/rspamd/files/rspamd-2.6-unbundle-lua.patch
deleted file mode 100644
index 9278fa8608d7..000000000000
--- a/mail-filter/rspamd/files/rspamd-2.6-unbundle-lua.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b794b9dbd..1ba5c085e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -632,10 +632,6 @@ ADD_SUBDIRECTORY(contrib/fastutf8)
- ADD_SUBDIRECTORY(contrib/google-ced)
-
-
--IF (NOT WITH_LUAJIT)
-- ADD_SUBDIRECTORY(contrib/lua-bit)
--ENDIF()
--
- IF (ENABLE_LUA_REPL MATCHES "ON")
- ADD_SUBDIRECTORY(contrib/replxx)
- SET(WITH_LUA_REPL 1)
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 9a34d2ac4..59bab5c15 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -189,10 +189,6 @@ IF (ENABLE_CLANG_PLUGIN MATCHES "ON")
- ADD_DEPENDENCIES(rspamd-server rspamd-clang)
- ENDIF()
-
--IF (NOT WITH_LUAJIT)
-- TARGET_LINK_LIBRARIES(rspamd-server rspamd-bit)
--ENDIF()
--
- IF (ENABLE_SNOWBALL MATCHES "ON")
- TARGET_LINK_LIBRARIES(rspamd-server stemmer)
- ENDIF()
-diff --git a/src/lua/lua_common.c b/src/lua/lua_common.c
-index b7fcc2034..1d86464da 100644
---- a/src/lua/lua_common.c
-+++ b/src/lua/lua_common.c
-@@ -922,10 +922,6 @@ rspamd_lua_wipe_realloc (void *ud,
- return NULL;
- }
-
--#ifndef WITH_LUAJIT
--extern int luaopen_bit(lua_State *L);
--#endif
--
- lua_State *
- rspamd_lua_init (bool wipe_mem)
- {
-@@ -981,7 +977,6 @@ rspamd_lua_init (bool wipe_mem)
- luaopen_spf (L);
- luaopen_tensor (L);
- #ifndef WITH_LUAJIT
-- rspamd_lua_add_preload (L, "bit", luaopen_bit);
- lua_settop (L, 0);
- #endif
-
diff --git a/mail-filter/rspamd/files/rspamd-2.6-unbundle-zstd.patch b/mail-filter/rspamd/files/rspamd-2.6-unbundle-zstd.patch
deleted file mode 100644
index 1a7f4453c86f..000000000000
--- a/mail-filter/rspamd/files/rspamd-2.6-unbundle-zstd.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 90caf4048..e2e5d182c 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -198,6 +198,8 @@ ELSE()
- ROOT ${PCRE_ROOT_DIR} MODULES pcre libpcre pcre3 libpcre3)
- ENDIF()
-
-+ProcessPackage(ZSTD LIBRARY zstd INCLUDE zstd.h
-+ ROOT ${ZSTD_ROOT_DIR} MODULES libzstd)
- ProcessPackage(SQLITE3 LIBRARY sqlite3 INCLUDE sqlite3.h INCLUDE_SUFFIXES include/sqlite3 include/sqlite
- ROOT ${SQLITE3_ROOT_DIR} MODULES sqlite3 sqlite)
- ProcessPackage(ICUDATA LIBRARY icudata INCLUDE unicode/ucnv.h
-@@ -615,7 +617,6 @@ ADD_SUBDIRECTORY(contrib/http-parser)
- ADD_SUBDIRECTORY(contrib/fpconv)
- ADD_SUBDIRECTORY(contrib/lc-btrie)
- ADD_SUBDIRECTORY(contrib/libottery)
--ADD_SUBDIRECTORY(contrib/zstd)
- IF(ENABLE_SNOWBALL MATCHES "ON")
- ADD_SUBDIRECTORY(contrib/snowball)
- SET(WITH_SNOWBALL 1)
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 54b2e4083..e0e2edd58 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -181,7 +181,6 @@ TARGET_LINK_LIBRARIES(rspamd-server rspamd-http-parser)
- TARGET_LINK_LIBRARIES(rspamd-server rspamd-fpconv)
- TARGET_LINK_LIBRARIES(rspamd-server rspamd-cdb)
- TARGET_LINK_LIBRARIES(rspamd-server lcbtrie)
--TARGET_LINK_LIBRARIES(rspamd-server rspamd-zstd)
- TARGET_LINK_LIBRARIES(rspamd-server rspamd-fastutf8)
-
- IF (ENABLE_CLANG_PLUGIN MATCHES "ON")
-diff --git a/src/client/rspamdclient.c b/src/client/rspamdclient.c
-index bcb25672e..48ca58e94 100644
---- a/src/client/rspamdclient.c
-+++ b/src/client/rspamdclient.c
-@@ -19,7 +19,7 @@
- #include "libserver/http/http_private.h"
- #include "libserver/protocol_internal.h"
- #include "unix-std.h"
--#include "contrib/zstd/zstd.h"
-+#include <zstd.h>
-
- #ifdef HAVE_FETCH_H
- #include <fetch.h>
-diff --git a/src/libserver/cfg_utils.c b/src/libserver/cfg_utils.c
-index 78e3fc79f..40110c693 100644
---- a/src/libserver/cfg_utils.c
-+++ b/src/libserver/cfg_utils.c
-@@ -36,8 +36,7 @@
- #include "contrib/libottery/ottery.h"
- #include "contrib/fastutf8/fastutf8.h"
-
--#define ZSTD_STATIC_LINKING_ONLY
--#include "contrib/zstd/zstd.h"
-+#include <zstd.h>
-
- #ifdef HAVE_OPENSSL
- #include <openssl/rand.h>
-diff --git a/src/libserver/maps/map.c b/src/libserver/maps/map.c
-index 8b9f522b2..8cf03ffd6 100644
---- a/src/libserver/maps/map.c
-+++ b/src/libserver/maps/map.c
-@@ -23,7 +23,7 @@
- #include "libserver/http/http_connection.h"
- #include "libserver/http/http_private.h"
- #include "rspamd.h"
--#include "contrib/zstd/zstd.h"
-+#include <zstd.h>
- #include "contrib/libev/ev.h"
- #include "contrib/uthash/utlist.h"
-
-diff --git a/src/libserver/protocol.c b/src/libserver/protocol.c
-index 9d1276064..6f0a66fb8 100644
---- a/src/libserver/protocol.c
-+++ b/src/libserver/protocol.c
-@@ -21,7 +21,7 @@
- #include "worker_private.h"
- #include "libserver/cfg_file_private.h"
- #include "libmime/scan_result_private.h"
--#include "contrib/zstd/zstd.h"
-+#include <zstd.h>
- #include "lua/lua_common.h"
- #include "unix-std.h"
- #include "protocol_internal.h"
-diff --git a/src/libserver/task.c b/src/libserver/task.c
-index 53da0dae6..6538abdbf 100644
---- a/src/libserver/task.c
-+++ b/src/libserver/task.c
-@@ -25,7 +25,7 @@
- #include "stat_api.h"
- #include "unix-std.h"
- #include "utlist.h"
--#include "contrib/zstd/zstd.h"
-+#include <zstd.h>
- #include "libserver/mempool_vars_internal.h"
- #include "libserver/cfg_file_private.h"
- #include "libmime/lang_detection.h"
-diff --git a/src/lua/lua_util.c b/src/lua/lua_util.c
-index 0787736d5..21474317a 100644
---- a/src/lua/lua_util.c
-+++ b/src/lua/lua_util.c
-@@ -17,7 +17,7 @@
- #include "html.h"
- #include "tokenizers/tokenizers.h"
- #include "unix-std.h"
--#include "contrib/zstd/zstd.h"
-+#include <zstd.h>
- #include "contrib/uthash/utlist.h"
- #include "libmime/email_addr.h"
- #include "libmime/content_type.h"
-diff --git a/src/rspamd_proxy.c b/src/rspamd_proxy.c
-index 4ed8cfab7..5f8808e40 100644
---- a/src/rspamd_proxy.c
-+++ b/src/rspamd_proxy.c
-@@ -36,7 +36,7 @@
- #include "libserver/milter.h"
- #include "libserver/milter_internal.h"
- #include "libmime/lang_detection.h"
--#include "contrib/zstd/zstd.h"
-+#include <zstd.h>
-
- #include <math.h>
-
---
-2.26.2
-
diff --git a/mail-filter/rspamd/files/rspamd-2.7-cmake-lua-version.patch b/mail-filter/rspamd/files/rspamd-2.7-cmake-lua-version.patch
deleted file mode 100644
index c8254f1ce95e..000000000000
--- a/mail-filter/rspamd/files/rspamd-2.7-cmake-lua-version.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 72382acb6..2335ae4bc 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -141,42 +141,8 @@ IF(ENABLE_LUAJIT MATCHES "ON")
- ELSE(ENABLE_LUAJIT MATCHES "ON")
-
- ProcessPackage(LIBLUA LIBRARY "lua"
-- "lua-5.3"
-- LIB_SUFFIXES "lua5.3"
-- INCLUDE lua.h INCLUDE_SUFFIXES
-- "include/lua-5.3"
-- "include/lua5.3"
-- "include/lua53"
-- "include/lua"
- ROOT ${LUA_ROOT}
-- MODULES lua53
-- OPTIONAL)
--
-- IF (NOT WITH_LIBLUA)
-- ProcessPackage(LIBLUA LIBRARY "lua"
-- "lua-5.2"
-- LIB_SUFFIXES "lua5.2"
-- INCLUDE lua.h INCLUDE_SUFFIXES
-- "include/lua-5.2"
-- "include/lua5.2"
-- "include/lua52"
-- "include/lua"
-- ROOT ${LUA_ROOT}
-- MODULES lua52
-- OPTIONAL)
--
-- IF (NOT WITH_LIBLUA)
-- ProcessPackage(LIBLUA LIBRARY "lua"
-- "lua-5.1"
-- INCLUDE lua.h INCLUDE_SUFFIXES
-- "include/lua-5.1"
-- "include/lua5.1"
-- "include/lua51"
-- "include/lua"
-- ROOT ${LUA_ROOT}
-- MODULES lua51)
-- ENDIF()
-- ENDIF()
-+ MODULES lua)
- ENDIF(ENABLE_LUAJIT MATCHES "ON")
-
- IF(ENABLE_JEMALLOC MATCHES "ON" AND NOT SANITIZE)
---
diff --git a/mail-filter/rspamd/files/rspamd-2.7-unbundle-zstd.patch b/mail-filter/rspamd/files/rspamd-2.7-unbundle-zstd.patch
deleted file mode 100644
index f0fc9f8352bd..000000000000
--- a/mail-filter/rspamd/files/rspamd-2.7-unbundle-zstd.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 77ad86785..56246807e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -202,6 +202,8 @@ ELSE()
- ROOT ${PCRE_ROOT_DIR} MODULES pcre libpcre pcre3 libpcre3)
- ENDIF()
-
-+ProcessPackage(ZSTD LIBRARY zstd INCLUDE zstd.h
-+ ROOT ${ZSTD_ROOT_DIR} MODULES libzstd)
- ProcessPackage(SQLITE3 LIBRARY sqlite3 INCLUDE sqlite3.h INCLUDE_SUFFIXES include/sqlite3 include/sqlite
- ROOT ${SQLITE3_ROOT_DIR} MODULES sqlite3 sqlite)
- ProcessPackage(ICUDATA LIBRARY icudata INCLUDE unicode/ucnv.h
-@@ -619,7 +621,6 @@ ADD_SUBDIRECTORY(contrib/http-parser)
- ADD_SUBDIRECTORY(contrib/fpconv)
- ADD_SUBDIRECTORY(contrib/lc-btrie)
- ADD_SUBDIRECTORY(contrib/libottery)
--ADD_SUBDIRECTORY(contrib/zstd)
- IF(ENABLE_SNOWBALL MATCHES "ON")
- ADD_SUBDIRECTORY(contrib/snowball)
- SET(WITH_SNOWBALL 1)
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 54b2e4083..e0e2edd58 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -181,7 +181,6 @@ TARGET_LINK_LIBRARIES(rspamd-server rspamd-http-parser)
- TARGET_LINK_LIBRARIES(rspamd-server rspamd-fpconv)
- TARGET_LINK_LIBRARIES(rspamd-server rspamd-cdb)
- TARGET_LINK_LIBRARIES(rspamd-server lcbtrie)
--TARGET_LINK_LIBRARIES(rspamd-server rspamd-zstd)
- TARGET_LINK_LIBRARIES(rspamd-server rspamd-fastutf8)
-
- IF (ENABLE_CLANG_PLUGIN MATCHES "ON")
-diff --git a/src/client/rspamdclient.c b/src/client/rspamdclient.c
-index bcb25672e..48ca58e94 100644
---- a/src/client/rspamdclient.c
-+++ b/src/client/rspamdclient.c
-@@ -19,7 +19,7 @@
- #include "libserver/http/http_private.h"
- #include "libserver/protocol_internal.h"
- #include "unix-std.h"
--#include "contrib/zstd/zstd.h"
-+#include <zstd.h>
-
- #ifdef HAVE_FETCH_H
- #include <fetch.h>
-diff --git a/src/libserver/cfg_utils.c b/src/libserver/cfg_utils.c
-index 987123cbb..51c2e1468 100644
---- a/src/libserver/cfg_utils.c
-+++ b/src/libserver/cfg_utils.c
-@@ -36,8 +36,7 @@
- #include "contrib/libottery/ottery.h"
- #include "contrib/fastutf8/fastutf8.h"
-
--#define ZSTD_STATIC_LINKING_ONLY
--#include "contrib/zstd/zstd.h"
-+#include <zstd.h>
-
- #ifdef HAVE_OPENSSL
- #include <openssl/rand.h>
-diff --git a/src/libserver/maps/map.c b/src/libserver/maps/map.c
-index 14792753a..20ca8416e 100644
---- a/src/libserver/maps/map.c
-+++ b/src/libserver/maps/map.c
-@@ -23,7 +23,7 @@
- #include "libserver/http/http_connection.h"
- #include "libserver/http/http_private.h"
- #include "rspamd.h"
--#include "contrib/zstd/zstd.h"
-+#include <zstd.h>
- #include "contrib/libev/ev.h"
- #include "contrib/uthash/utlist.h"
-
-diff --git a/src/libserver/protocol.c b/src/libserver/protocol.c
-index 31b0308cb..62ba3d833 100644
---- a/src/libserver/protocol.c
-+++ b/src/libserver/protocol.c
-@@ -21,7 +21,7 @@
- #include "worker_private.h"
- #include "libserver/cfg_file_private.h"
- #include "libmime/scan_result_private.h"
--#include "contrib/zstd/zstd.h"
-+#include <zstd.h>
- #include "lua/lua_common.h"
- #include "unix-std.h"
- #include "protocol_internal.h"
-diff --git a/src/libserver/task.c b/src/libserver/task.c
-index 096933803..f78754ab4 100644
---- a/src/libserver/task.c
-+++ b/src/libserver/task.c
-@@ -25,7 +25,7 @@
- #include "stat_api.h"
- #include "unix-std.h"
- #include "utlist.h"
--#include "contrib/zstd/zstd.h"
-+#include <zstd.h>
- #include "libserver/mempool_vars_internal.h"
- #include "libserver/cfg_file_private.h"
- #include "libmime/lang_detection.h"
-diff --git a/src/lua/lua_util.c b/src/lua/lua_util.c
-index e879d37af..88451e222 100644
---- a/src/lua/lua_util.c
-+++ b/src/lua/lua_util.c
-@@ -15,7 +15,7 @@
- */
- #include "lua_common.h"
- #include "unix-std.h"
--#include "contrib/zstd/zstd.h"
-+#include <zstd.h>
- #include "libmime/email_addr.h"
- #include "libmime/content_type.h"
- #include "libmime/mime_headers.h"
-diff --git a/src/rspamd_proxy.c b/src/rspamd_proxy.c
-index 3fa5da390..c641fb263 100644
---- a/src/rspamd_proxy.c
-+++ b/src/rspamd_proxy.c
-@@ -36,7 +36,7 @@
- #include "libserver/milter.h"
- #include "libserver/milter_internal.h"
- #include "libmime/lang_detection.h"
--#include "contrib/zstd/zstd.h"
-+#include <zstd.h>
-
- #include <math.h>
-
diff --git a/mail-filter/rspamd/files/rspamd-3.6-cmake-lua-version.patch b/mail-filter/rspamd/files/rspamd-3.6-cmake-lua-version.patch
new file mode 100644
index 000000000000..9a08eaac28b0
--- /dev/null
+++ b/mail-filter/rspamd/files/rspamd-3.6-cmake-lua-version.patch
@@ -0,0 +1,64 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index bea0af828..f72304f05 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -149,55 +149,8 @@ IF (ENABLE_LUAJIT MATCHES "ON")
+ ELSE (ENABLE_LUAJIT MATCHES "ON")
+
+ ProcessPackage(LIBLUA LIBRARY "lua"
+- "lua-5.3"
+- LIB_SUFFIXES "lua5.3"
+- INCLUDE lua.h INCLUDE_SUFFIXES
+- "include/lua-5.3"
+- "include/lua5.3"
+- "include/lua53"
+- "include/lua"
+ ROOT ${LUA_ROOT}
+- MODULES lua53
+- OPTIONAL)
+-
+- IF (NOT WITH_LIBLUA)
+- ProcessPackage(LIBLUA LIBRARY "lua"
+- "lua-5.4"
+- LIB_SUFFIXES "lua5.4"
+- INCLUDE lua.h INCLUDE_SUFFIXES
+- "include/lua-5.4"
+- "include/lua5.4"
+- "include/lua54"
+- "include/lua"
+- ROOT ${LUA_ROOT}
+- MODULES lua54
+- OPTIONAL)
+- IF (NOT WITH_LIBLUA)
+- ProcessPackage(LIBLUA LIBRARY "lua"
+- "lua-5.2"
+- LIB_SUFFIXES "lua5.2"
+- INCLUDE lua.h INCLUDE_SUFFIXES
+- "include/lua-5.2"
+- "include/lua5.2"
+- "include/lua52"
+- "include/lua"
+- ROOT ${LUA_ROOT}
+- MODULES lua52
+- OPTIONAL)
+-
+- IF (NOT WITH_LIBLUA)
+- ProcessPackage(LIBLUA LIBRARY "lua"
+- "lua-5.1"
+- INCLUDE lua.h INCLUDE_SUFFIXES
+- "include/lua-5.1"
+- "include/lua5.1"
+- "include/lua51"
+- "include/lua"
+- ROOT ${LUA_ROOT}
+- MODULES lua51)
+- ENDIF ()
+- ENDIF ()
+- ENDIF ()
++ MODULES lua)
+ ENDIF (ENABLE_LUAJIT MATCHES "ON")
+
+ IF (ENABLE_JEMALLOC MATCHES "ON" AND NOT SANITIZE)
+--
+2.41.0
+
diff --git a/mail-filter/rspamd/files/rspamd-3.6-unbundle-lua.patch b/mail-filter/rspamd/files/rspamd-3.6-unbundle-lua.patch
new file mode 100644
index 000000000000..78a2a49d796f
--- /dev/null
+++ b/mail-filter/rspamd/files/rspamd-3.6-unbundle-lua.patch
@@ -0,0 +1,61 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index bea0af828..d7a4eed14 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -641,10 +641,6 @@ ELSE ()
+ find_package(doctest)
+ ENDIF ()
+
+-IF (NOT WITH_LUAJIT)
+- ADD_SUBDIRECTORY(contrib/lua-bit)
+-ENDIF ()
+-
+ IF (ENABLE_LUA_REPL MATCHES "ON")
+ ADD_SUBDIRECTORY(contrib/replxx)
+ SET(WITH_LUA_REPL 1)
+@@ -742,7 +738,6 @@ ENDFOREACH (LUA_LIB)
+
+ # Install lua fun library
+ INSTALL(FILES "contrib/lua-fun/fun.lua" DESTINATION ${LUALIBDIR})
+-INSTALL(FILES "contrib/lua-argparse/argparse.lua" DESTINATION ${LUALIBDIR})
+ INSTALL(FILES "contrib/lua-tableshape/tableshape.lua" DESTINATION ${LUALIBDIR})
+ INSTALL(FILES "contrib/lua-lupa/lupa.lua" DESTINATION ${LUALIBDIR})
+ INSTALL(FILES "contrib/lua-lpeg/lpegre.lua" DESTINATION ${LUALIBDIR})
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 5dee8e610..a90f8d52d 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -205,10 +205,6 @@ IF (ENABLE_CLANG_PLUGIN MATCHES "ON")
+ ADD_DEPENDENCIES(rspamd-server rspamd-clang)
+ ENDIF()
+
+-IF (NOT WITH_LUAJIT)
+- TARGET_LINK_LIBRARIES(rspamd-server rspamd-bit)
+-ENDIF()
+-
+ IF (ENABLE_SNOWBALL MATCHES "ON")
+ TARGET_LINK_LIBRARIES(rspamd-server stemmer)
+ ENDIF()
+diff --git a/src/lua/lua_common.c b/src/lua/lua_common.c
+index b543ae5db..7a93934fd 100644
+--- a/src/lua/lua_common.c
++++ b/src/lua/lua_common.c
+@@ -904,10 +904,6 @@ rspamd_lua_wipe_realloc(void *ud,
+ return NULL;
+ }
+
+-#ifndef WITH_LUAJIT
+-extern int luaopen_bit(lua_State *L);
+-#endif
+-
+ static unsigned int lua_initialized = 0;
+
+ lua_State *
+@@ -975,7 +971,6 @@ rspamd_lua_init(bool wipe_mem)
+ luaopen_parsers(L);
+ luaopen_compress(L);
+ #ifndef WITH_LUAJIT
+- rspamd_lua_add_preload(L, "bit", luaopen_bit);
+ lua_settop(L, 0);
+ #endif
+
diff --git a/mail-filter/rspamd/files/rspamd-3.6-unbundle-snowball.patch b/mail-filter/rspamd/files/rspamd-3.6-unbundle-snowball.patch
new file mode 100644
index 000000000000..5779142b7b10
--- /dev/null
+++ b/mail-filter/rspamd/files/rspamd-3.6-unbundle-snowball.patch
@@ -0,0 +1,20 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index bea0af828..00778100c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -115,7 +115,6 @@ INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/"
+ "${CMAKE_SOURCE_DIR}/contrib/fpconv"
+ "${CMAKE_SOURCE_DIR}/contrib/libottery"
+ "${CMAKE_SOURCE_DIR}/contrib/cdb"
+- "${CMAKE_SOURCE_DIR}/contrib/snowball/include"
+ "${CMAKE_SOURCE_DIR}/contrib/librdns"
+ "${CMAKE_SOURCE_DIR}/contrib/aho-corasick"
+ "${CMAKE_SOURCE_DIR}/contrib/lc-btrie"
+@@ -617,7 +616,6 @@ ELSE ()
+ ADD_DEFINITIONS(-DSYS_ZSTD)
+ ENDIF ()
+ IF (ENABLE_SNOWBALL MATCHES "ON")
+- ADD_SUBDIRECTORY(contrib/snowball)
+ SET(WITH_SNOWBALL 1)
+ ENDIF ()
+ ADD_SUBDIRECTORY(contrib/libucl)
diff --git a/mail-filter/rspamd/metadata.xml b/mail-filter/rspamd/metadata.xml
index a8969fdf4ef9..6044b0bb7bec 100644
--- a/mail-filter/rspamd/metadata.xml
+++ b/mail-filter/rspamd/metadata.xml
@@ -1,22 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person" proxied="yes">
- <email>c@roessner.co</email>
- <name>Christian Roessner</name>
- </maintainer>
- <maintainer type="person" proxied="yes">
- <email>arkamar@atlas.cz</email>
+ <maintainer type="person">
+ <email>arkamar@gentoo.org</email>
<name>Petr Vaněk</name>
</maintainer>
- <maintainer type="project" proxied="proxy">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</name>
- </maintainer>
<upstream>
- <remote-id type="github">vstakhov/rspamd</remote-id>
+ <remote-id type="github">rspamd/rspamd</remote-id>
</upstream>
<use>
- <flag name="pcre2">Use dev-libs/libpcre2</flag>
+ <flag name="hyperscan">Enable hyperscan for fast regexp processing</flag>
+ <flag name="jit">Enable PCRE JIT support</flag>
</use>
</pkgmetadata>
diff --git a/mail-filter/rspamd/rspamd-2.6-r100.ebuild b/mail-filter/rspamd/rspamd-2.6-r100.ebuild
deleted file mode 100644
index d6a966d66b76..000000000000
--- a/mail-filter/rspamd/rspamd-2.6-r100.ebuild
+++ /dev/null
@@ -1,117 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-LUA_COMPAT=( lua5-{1..3} luajit )
-
-inherit cmake lua-single pax-utils systemd tmpfiles
-
-if [[ ${PV} == *9999 ]] ; then
- EGIT_REPO_URI="https://github.com/rspamd/rspamd.git"
- inherit git-r3
-else
- SRC_URI="https://github.com/rspamd/rspamd/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 x86"
-fi
-
-DESCRIPTION="Rapid spam filtering system"
-HOMEPAGE="https://rspamd.com https://github.com/rspamd/rspamd"
-LICENSE="Apache-2.0 Boost-1.0 BSD BSD-1 BSD-2 CC0-1.0 LGPL-3 MIT public-domain unicode ZLIB"
-SLOT="0"
-IUSE="blas cpu_flags_x86_ssse3 jemalloc +jit libressl pcre2"
-
-REQUIRED_USE="${LUA_REQUIRED_USE}
- jit? ( lua_single_target_luajit )"
-
-RDEPEND="${LUA_DEPS}
- $(lua_gen_cond_dep '
- dev-lua/LuaBitOp[${LUA_USEDEP}]
- ' lua5-{1,2})
- acct-group/rspamd
- acct-user/rspamd
- app-arch/zstd
- dev-db/sqlite:3
- dev-libs/glib:2
- dev-libs/icu:=
- dev-libs/libev
- dev-libs/libsodium
- dev-libs/snowball-stemmer
- net-libs/libnsl
- sys-apps/file
- blas? (
- virtual/blas
- virtual/lapack
- )
- cpu_flags_x86_ssse3? ( dev-libs/hyperscan )
- jemalloc? ( dev-libs/jemalloc )
- !libressl? ( dev-libs/openssl:0=[-bindist] )
- libressl? ( dev-libs/libressl:0= )
- pcre2? ( dev-libs/libpcre2[jit=] )
- !pcre2? ( dev-libs/libpcre[jit=] )"
-DEPEND="${RDEPEND}"
-BDEPEND="
- dev-util/ragel
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}/rspamd-2.6-cmake-lua-version.patch"
- "${FILESDIR}/rspamd-2.6-unbundle-lua.patch"
- "${FILESDIR}/rspamd-2.6-unbundle-zstd.patch"
- "${FILESDIR}/rspamd-2.5-unbundle-snowball.patch"
-)
-
-src_prepare() {
- cmake_src_prepare
-
- rm -vrf contrib/{lua-bit,snowball,zstd} || die
-
- sed -i -e 's/User=_rspamd/User=rspamd/g' \
- rspamd.service \
- || die
-}
-
-src_configure() {
- local mycmakeargs=(
- -DCONFDIR=/etc/rspamd
- -DRUNDIR=/var/run/rspamd
- -DDBDIR=/var/lib/rspamd
- -DLOGDIR=/var/log/rspamd
- -DENABLE_BLAS=$(usex blas ON OFF)
- -DENABLE_HYPERSCAN=$(usex cpu_flags_x86_ssse3 ON OFF)
- -DENABLE_JEMALLOC=$(usex jemalloc ON OFF)
- -DENABLE_LUAJIT=$(usex lua_single_target_luajit ON OFF)
- -DENABLE_PCRE2=$(usex pcre2 ON OFF)
- )
- cmake_src_configure
-}
-
-src_test() {
- cmake_src_test
-}
-
-src_install() {
- cmake_src_install
-
- newconfd "${FILESDIR}"/rspamd.conf rspamd
- newinitd "${FILESDIR}/rspamd-r7.init" rspamd
- systemd_newunit rspamd.service rspamd.service
-
- newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf
-
- # Remove mprotect for JIT support
- if use lua_single_target_luajit; then
- pax-mark m "${ED}"/usr/bin/rspamd-* "${ED}"/usr/bin/rspamadm-*
- fi
-
- insinto /etc/logrotate.d
- newins "${FILESDIR}"/rspamd-r1.logrotate rspamd
-
- diropts -o rspamd -g rspamd
- keepdir /var/{lib,log}/rspamd
-}
-
-pkg_postinst() {
- tmpfiles_process "${PN}.conf"
-}
diff --git a/mail-filter/rspamd/rspamd-2.7-r100.ebuild b/mail-filter/rspamd/rspamd-2.7-r100.ebuild
deleted file mode 100644
index f6efcf40a61a..000000000000
--- a/mail-filter/rspamd/rspamd-2.7-r100.ebuild
+++ /dev/null
@@ -1,117 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-LUA_COMPAT=( lua5-{1..3} luajit )
-
-inherit cmake lua-single pax-utils systemd tmpfiles
-
-if [[ ${PV} == *9999 ]] ; then
- EGIT_REPO_URI="https://github.com/rspamd/rspamd.git"
- inherit git-r3
-else
- SRC_URI="https://github.com/rspamd/rspamd/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 x86"
-fi
-
-DESCRIPTION="Rapid spam filtering system"
-HOMEPAGE="https://rspamd.com https://github.com/rspamd/rspamd"
-LICENSE="Apache-2.0 Boost-1.0 BSD BSD-1 BSD-2 CC0-1.0 LGPL-3 MIT public-domain unicode ZLIB"
-SLOT="0"
-IUSE="blas cpu_flags_x86_ssse3 jemalloc +jit libressl pcre2"
-
-REQUIRED_USE="${LUA_REQUIRED_USE}
- jit? ( lua_single_target_luajit )"
-
-RDEPEND="${LUA_DEPS}
- $(lua_gen_cond_dep '
- dev-lua/LuaBitOp[${LUA_USEDEP}]
- ' lua5-{1,2})
- acct-group/rspamd
- acct-user/rspamd
- app-arch/zstd
- dev-db/sqlite:3
- dev-libs/glib:2
- dev-libs/icu:=
- dev-libs/libev
- dev-libs/libsodium
- dev-libs/snowball-stemmer
- net-libs/libnsl
- sys-apps/file
- blas? (
- virtual/blas
- virtual/lapack
- )
- cpu_flags_x86_ssse3? ( dev-libs/hyperscan )
- jemalloc? ( dev-libs/jemalloc )
- !libressl? ( dev-libs/openssl:0=[-bindist] )
- libressl? ( dev-libs/libressl:0= )
- pcre2? ( dev-libs/libpcre2[jit=] )
- !pcre2? ( dev-libs/libpcre[jit=] )"
-DEPEND="${RDEPEND}"
-BDEPEND="
- dev-util/ragel
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}/rspamd-2.7-cmake-lua-version.patch"
- "${FILESDIR}/rspamd-2.6-unbundle-lua.patch"
- "${FILESDIR}/rspamd-2.7-unbundle-zstd.patch"
- "${FILESDIR}/rspamd-2.5-unbundle-snowball.patch"
-)
-
-src_prepare() {
- cmake_src_prepare
-
- rm -vrf contrib/{lua-bit,snowball,zstd} || die
-
- sed -i -e 's/User=_rspamd/User=rspamd/g' \
- rspamd.service \
- || die
-}
-
-src_configure() {
- local mycmakeargs=(
- -DCONFDIR=/etc/rspamd
- -DRUNDIR=/var/run/rspamd
- -DDBDIR=/var/lib/rspamd
- -DLOGDIR=/var/log/rspamd
- -DENABLE_BLAS=$(usex blas ON OFF)
- -DENABLE_HYPERSCAN=$(usex cpu_flags_x86_ssse3 ON OFF)
- -DENABLE_JEMALLOC=$(usex jemalloc ON OFF)
- -DENABLE_LUAJIT=$(usex lua_single_target_luajit ON OFF)
- -DENABLE_PCRE2=$(usex pcre2 ON OFF)
- )
- cmake_src_configure
-}
-
-src_test() {
- cmake_src_test
-}
-
-src_install() {
- cmake_src_install
-
- newconfd "${FILESDIR}"/rspamd.conf rspamd
- newinitd "${FILESDIR}/rspamd-r7.init" rspamd
- systemd_newunit rspamd.service rspamd.service
-
- newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf
-
- # Remove mprotect for JIT support
- if use lua_single_target_luajit; then
- pax-mark m "${ED}"/usr/bin/rspamd-* "${ED}"/usr/bin/rspamadm-*
- fi
-
- insinto /etc/logrotate.d
- newins "${FILESDIR}"/rspamd-r1.logrotate rspamd
-
- diropts -o rspamd -g rspamd
- keepdir /var/{lib,log}/rspamd
-}
-
-pkg_postinst() {
- tmpfiles_process "${PN}.conf"
-}
diff --git a/mail-filter/rspamd/rspamd-3.8.4.ebuild b/mail-filter/rspamd/rspamd-3.8.4.ebuild
new file mode 100644
index 000000000000..1ba2cca28359
--- /dev/null
+++ b/mail-filter/rspamd/rspamd-3.8.4.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1..4} luajit )
+
+inherit cmake lua-single pax-utils systemd tmpfiles
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/rspamd/rspamd.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/rspamd/rspamd/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 x86"
+fi
+
+DESCRIPTION="Rapid spam filtering system"
+HOMEPAGE="
+ https://rspamd.com
+ https://github.com/rspamd/rspamd
+"
+
+LICENSE="Apache-2.0 Boost-1.0 BSD BSD-1 BSD-2 CC0-1.0 LGPL-3 MIT public-domain unicode ZLIB"
+SLOT="0"
+IUSE="blas +hyperscan jemalloc +jit selinux test"
+RESTRICT="!test? ( test )"
+
+# A part of tests use ffi luajit extension
+REQUIRED_USE="${LUA_REQUIRED_USE}
+ test? ( lua_single_target_luajit )"
+
+RDEPEND="
+ ${LUA_DEPS}
+ $(lua_gen_cond_dep '
+ dev-lua/LuaBitOp[${LUA_USEDEP}]
+ dev-lua/lua-argparse[${LUA_USEDEP}]
+ ')
+ acct-group/rspamd
+ acct-user/rspamd
+ app-arch/zstd:=
+ dev-db/sqlite:3
+ dev-libs/glib:2
+ dev-libs/icu:=
+ dev-libs/libpcre2:=[jit=]
+ dev-libs/libsodium:=
+ dev-libs/openssl:0=[-bindist(-)]
+ dev-libs/snowball-stemmer:=
+ sys-libs/zlib
+ blas? (
+ virtual/blas
+ virtual/lapack
+ )
+ hyperscan? ( dev-libs/vectorscan:= )
+ jemalloc? ( dev-libs/jemalloc:= )
+ selinux? ( sec-policy/selinux-spamassassin )
+"
+DEPEND="
+ ${RDEPEND}
+ dev-cpp/doctest
+ dev-libs/libfmt:=
+ >=dev-libs/xxhash-0.8.0
+"
+BDEPEND="
+ dev-lang/perl
+ dev-util/ragel
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}/rspamd-3.6-cmake-lua-version.patch"
+ "${FILESDIR}/rspamd-3.6-unbundle-lua.patch"
+ "${FILESDIR}/rspamd-3.6-unbundle-snowball.patch"
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ rm -vrf contrib/{doctest,fmt,lua-{argparse,bit},snowball,xxhash,zstd} || die
+
+ > cmake/Toolset.cmake || die #827550
+
+ sed -i -e 's/User=_rspamd/User=rspamd/g' \
+ rspamd.service \
+ || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCONFDIR=/etc/rspamd
+ -DRUNDIR=/var/run/rspamd
+ -DDBDIR=/var/lib/rspamd
+ -DLOGDIR=/var/log/rspamd
+ -DLIBDIR="/usr/$(get_libdir)/rspamd"
+
+ -DSYSTEM_DOCTEST=ON
+ -DSYSTEM_FMT=ON
+ -DSYSTEM_XXHASH=ON
+ -DSYSTEM_ZSTD=ON
+
+ # For bundled https://github.com/bombela/backward-cpp
+ # Bundled backward library uses execinfo.h in current setting, which is
+ # available in glibc, but not in musl. Let's enable it for glibc only.
+ -DENABLE_BACKWARD=$(usex elibc_glibc ON OFF) # bug 917643
+ -DSTACK_DETAILS_AUTO_DETECT=OFF
+
+ -DENABLE_BLAS=$(usex blas ON OFF)
+ -DENABLE_HYPERSCAN=$(usex hyperscan ON OFF)
+ -DENABLE_JEMALLOC=$(usex jemalloc ON OFF)
+ -DENABLE_LUAJIT=$(usex lua_single_target_luajit ON OFF)
+ -DENABLE_PCRE2=ON
+
+ -DBUILD_TESTING=$(usex test ON OFF)
+ )
+ cmake_src_configure
+}
+
+src_test() {
+ # These variables ensure tests use Lua scripts from this package rather
+ # than the installed version. However, rspamd always first attempts to load
+ # from /etc/rspamd/lua, with no method to override this behavior.
+ LUA_PATH="${S}/contrib/lua-?/?.lua" \
+ LUALIBDIR="${S}/lualib" \
+ RULESDIR="${S}/lualib" \
+ cmake_src_test
+}
+
+src_install() {
+ cmake_src_install
+
+ newconfd "${FILESDIR}"/rspamd.conf rspamd
+ newinitd "${FILESDIR}/rspamd-r7.init" rspamd
+ systemd_newunit rspamd.service rspamd.service
+
+ newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf
+
+ # Remove mprotect for JIT support
+ if use lua_single_target_luajit; then
+ pax-mark m "${ED}"/usr/bin/rspamd-* "${ED}"/usr/bin/rspamadm-*
+ fi
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}"/rspamd-r1.logrotate rspamd
+
+ diropts -o rspamd -g rspamd
+ keepdir /var/{lib,log}/rspamd
+}
+
+pkg_postinst() {
+ tmpfiles_process "${PN}.conf"
+
+ for ver in ${REPLACING_VERSIONS}; do
+ if ver_test "${ver}" -eq "3.4"; then
+ elog "rspamd-3.4 is known to segfault when it is updated from older version due"
+ elog "to a page-alignment of hyperscan .unser files. The issue was patched in"
+ elog "rspamd-3.4-r1 ebuild revision. All possibly broken .unser files will be"
+ elog "automaticaly removed. See https://github.com/rspamd/rspamd/issues/4329 for"
+ elog "more information."
+
+ find "${EROOT}/var/lib/rspamd" -type f -name '*.unser' -delete
+ fi
+ done
+}
diff --git a/mail-filter/rspamd/rspamd-9999.ebuild b/mail-filter/rspamd/rspamd-9999.ebuild
index 0ba250193310..16b59dbaef8d 100644
--- a/mail-filter/rspamd/rspamd-9999.ebuild
+++ b/mail-filter/rspamd/rspamd-9999.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-LUA_COMPAT=( lua5-{1..3} luajit )
+LUA_COMPAT=( lua5-{1..4} luajit )
inherit cmake lua-single pax-utils systemd tmpfiles
@@ -16,56 +16,70 @@ else
fi
DESCRIPTION="Rapid spam filtering system"
-HOMEPAGE="https://rspamd.com https://github.com/rspamd/rspamd"
+HOMEPAGE="
+ https://rspamd.com
+ https://github.com/rspamd/rspamd
+"
+
LICENSE="Apache-2.0 Boost-1.0 BSD BSD-1 BSD-2 CC0-1.0 LGPL-3 MIT public-domain unicode ZLIB"
SLOT="0"
-IUSE="blas cpu_flags_x86_ssse3 jemalloc +jit libressl pcre2"
+IUSE="blas +hyperscan jemalloc +jit selinux test"
+RESTRICT="!test? ( test )"
+# A part of tests use ffi luajit extension
REQUIRED_USE="${LUA_REQUIRED_USE}
- jit? ( lua_single_target_luajit )"
+ test? ( lua_single_target_luajit )"
-RDEPEND="${LUA_DEPS}
+RDEPEND="
+ ${LUA_DEPS}
$(lua_gen_cond_dep '
dev-lua/LuaBitOp[${LUA_USEDEP}]
- ' lua5-{1,2})
+ dev-lua/lua-argparse[${LUA_USEDEP}]
+ ')
acct-group/rspamd
acct-user/rspamd
- app-arch/zstd
+ app-arch/libarchive:=
+ app-arch/zstd:=
dev-db/sqlite:3
dev-libs/glib:2
dev-libs/icu:=
- dev-libs/libev
- dev-libs/libsodium
- dev-libs/snowball-stemmer
- net-libs/libnsl
- sys-apps/file
+ dev-libs/libpcre2:=[jit=]
+ dev-libs/libsodium:=
+ dev-libs/openssl:0=[-bindist(-)]
+ dev-libs/snowball-stemmer:=
+ sys-libs/zlib
blas? (
virtual/blas
virtual/lapack
)
- cpu_flags_x86_ssse3? ( dev-libs/hyperscan )
- jemalloc? ( dev-libs/jemalloc )
- !libressl? ( dev-libs/openssl:0=[-bindist] )
- libressl? ( dev-libs/libressl:0= )
- pcre2? ( dev-libs/libpcre2[jit=] )
- !pcre2? ( dev-libs/libpcre[jit=] )"
-DEPEND="${RDEPEND}"
+ hyperscan? ( dev-libs/vectorscan:= )
+ jemalloc? ( dev-libs/jemalloc:= )
+ selinux? ( sec-policy/selinux-spamassassin )
+"
+DEPEND="
+ ${RDEPEND}
+ dev-cpp/doctest
+ dev-libs/libfmt:=
+ >=dev-libs/xxhash-0.8.0
+"
BDEPEND="
+ dev-lang/perl
dev-util/ragel
virtual/pkgconfig
"
PATCHES=(
- "${FILESDIR}/rspamd-2.7-cmake-lua-version.patch"
- "${FILESDIR}/rspamd-2.6-unbundle-lua.patch"
- "${FILESDIR}/rspamd-2.7-unbundle-zstd.patch"
- "${FILESDIR}/rspamd-2.5-unbundle-snowball.patch"
+ "${FILESDIR}/rspamd-3.6-cmake-lua-version.patch"
+ "${FILESDIR}/rspamd-3.6-unbundle-lua.patch"
+ "${FILESDIR}/rspamd-3.6-unbundle-snowball.patch"
)
src_prepare() {
cmake_src_prepare
- rm -vrf contrib/{lua-bit,snowball,zstd} || die
+ rm -vrf contrib/{doctest,fmt,lua-{argparse,bit},snowball,xxhash,zstd} || die
+
+ > cmake/Toolset.cmake || die #827550
sed -i -e 's/User=_rspamd/User=rspamd/g' \
rspamd.service \
@@ -78,16 +92,37 @@ src_configure() {
-DRUNDIR=/var/run/rspamd
-DDBDIR=/var/lib/rspamd
-DLOGDIR=/var/log/rspamd
+ -DLIBDIR="/usr/$(get_libdir)/rspamd"
+
+ -DSYSTEM_DOCTEST=ON
+ -DSYSTEM_FMT=ON
+ -DSYSTEM_XXHASH=ON
+ -DSYSTEM_ZSTD=ON
+
+ # For bundled https://github.com/bombela/backward-cpp
+ # Bundled backward library uses execinfo.h in current setting, which is
+ # available in glibc, but not in musl. Let's enable it for glibc only.
+ -DENABLE_BACKWARD=$(usex elibc_glibc ON OFF) # bug 917643
+ -DSTACK_DETAILS_AUTO_DETECT=OFF
+
-DENABLE_BLAS=$(usex blas ON OFF)
- -DENABLE_HYPERSCAN=$(usex cpu_flags_x86_ssse3 ON OFF)
+ -DENABLE_HYPERSCAN=$(usex hyperscan ON OFF)
-DENABLE_JEMALLOC=$(usex jemalloc ON OFF)
-DENABLE_LUAJIT=$(usex lua_single_target_luajit ON OFF)
- -DENABLE_PCRE2=$(usex pcre2 ON OFF)
+ -DENABLE_PCRE2=ON
+
+ -DBUILD_TESTING=$(usex test ON OFF)
)
cmake_src_configure
}
src_test() {
+ # These variables ensure tests use Lua scripts from this package rather
+ # than the installed version. However, rspamd always first attempts to load
+ # from /etc/rspamd/lua, with no method to override this behavior.
+ LUA_PATH="${S}/contrib/lua-?/?.lua" \
+ LUALIBDIR="${S}/lualib" \
+ RULESDIR="${S}/lualib" \
cmake_src_test
}