pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/mail/rspamd



Module Name:    pkgsrc
Committed By:   wiz
Date:           Sun Nov  2 21:17:43 UTC 2025

Modified Files:
        pkgsrc/mail/rspamd: Makefile PLIST cfgfiles.mk distinfo
        pkgsrc/mail/rspamd/patches: patch-src_plugins_lua_dmarc.lua
Added Files:
        pkgsrc/mail/rspamd/patches: patch-src_lua_lua__util.c

Log Message:
rspamd: update to 3.13.2.

3.13.2

What's Changed

    [Feature] Add user/domain context support for LLM-based classification by @vstakhov in #5647
    Implement Metadefender hash lookup module by @vstakhov in #5656
    Add vault kv version 2 support by @vstakhov in #5654
    Fix duplicate symbol in once_received plugin by @vstakhov in #5658
    [Fix] Enforce server-controlled HTTP map refresh intervals by @vstakhov in #5660
    [Fix] Propagate unused Redis Sentinel options by @fatalbanana in #5597
    Fix rspamd dkim key loading for ed25519 by @vstakhov in #5664
    Fix dkim relaxed bodyhash calculation for spaces by @vstakhov in #5662
    Feat: Added rua address exclusion in dmarc.lua by @croessner in #5653
    [Feature] Add separate encryption keys for read/write operations in fuzzy_check by @vstakhov in #5665

3.13.1

Added

    Archive module: Full support for encrypted ZIP archives, including both ZipCrypto and AES encryption; both reading and writing of AES-encrypted ZIP archives is supported with updated Lua bindings 
using libarchive for flexible compatibility with all standard ZIP encryption schemes
    Encrypted maps: Support for encrypted maps to enable new map distribution scenarios
    Redis TLS: Configurable TLS connections in Redis backend for improved compatibility in secure environments

Improved

    MIME encoding refactoring: Major overhauls and multiple fixes for MIME encoding logic, including improved handling and decoding of UTF-8 in MIME headers, resulting in more robust email processing 
and better compatibility
    Learning system: Numerous fixes to learn checks and autolearn flag handling, prevention of duplicate message learning, and extended multiclass learning test coverage
    Map helpers alignment: Map helpers now enforced to be aligned to 64 bytes to prevent unaligned memory access errors on certain platforms
    CLI enhancements: Enhanced secretbox CLI and additional security test coverage
    Platform compatibility: Improved compatibility with Lua versions above 5.1 and better support for 32-bit platforms

Fixed

    Critical fixes: Fixed bug when converting zero-length strings to numbers
    XML parsing: Fixed XML prolog detection in lua_magic module
    Build issues: Fixed build issues on 32-bit platforms
    Empty input handling: Addressed issues with empty input handling in lua_magic
    Test stability: Improved stability of automated testing with multiple miscellaneous test fixes
    Compatibility: Minor compatibility improvements and bugfixes (buffer allocation, missing cmath include, etc.)

This release introduces archive module extensibility with full encrypted archive support including AES, new map distribution capabilities, secure integration options with Redis TLS, robust email and 
message processing improvements, and bugfixes for broader platform compatibility. This is recommended as a major stability and feature update.

3.13.0

Highlights & Major Features Since 3.12.1
1. Multiclass Bayes Classification ([#5547](#5547))

    Bayesian classifiers now support multi-class differentiation—labels like spam, ham, transactional, newsletters, phishing, and more (2-20 classes supported).
    Efficient: all classes for a message handled in a single Redis call.
    Backward compatible with old config (is_spam); new config enables named classes and labels.
    Autolearn and Lua API support multiclass workflows.
    Fully class-aware Redis caching.

Examples:

    rspamc learn_class:transactional receipt.eml or rspamc learn_class:newsletter newsletter.eml
    Lua API: task:get_multiclass_result() gives class probabilities and confidence.

2. Neural Module Overhaul ([#5579](#5579))

    Complete rework into a provider-based architecture: combines symbols, LLM embeddings (OpenAI, etc.), and planned providers (Bayes/FastText, in the future).
    Pluggable fusion—multiple feature types can be combined for richer, more accurate classification.
    Trained normalization (unit/zscore/none), used consistently at training/inference.
    Redis-backed caching for LLM embeddings to control cost/latency.
    Configurable via providers, versioned for safe upgrades, fully backwards compatible.

3. Multimap Selectors & Regex Enhancements ([#5615](#5615))

    Powerful, SA-style “selector” rules in multimap module for regex filtering on message fields.
    Dedicated selector field, integrated with Hyperscan and regex cache.
    Example: selector FROM_CORP from:domain =~ /corp\.example$/i

4. MIME & HTML Feature Extraction ([#5619](#5619), [#5608](#5608))

    MIME parser detects part types automatically.
    HTML parser project extracts more features for downstream modules.

5. HTTP, DNS, Upstream Improvements ([#5614](#5614), [#5603](#5603), [#5601](#5601))

    Flexible HTTP timeout config and handling.
    Upstream reliability: probe mode, less need for forced revive.
    DNS nameserver resolution moved to getaddrinfo.

6. Modernization & Maintenance ([#5592](#5592), [#5598](#5598), [#5580](#5580), others)

    Standardized on C++20; builds, test, and CI improvements (ARM support, modern fallback maps).
    Regular code cleaning, bugfixes, and RPM tweaks.

7. WebUI & UX ([#5606](#5606), [#5607](#5607))

    E2E scan test flows in WebUI.
    Bootstrap upgrade, Bayes class management from the web interface.

8. GPT & LLM Integrations ([#5612](#5612), [#5572](#5572))

    Improved handling of GPT model parameters and prompts.
    Initial support for OpenAI GPT-5 and other models.

Notable Bugfixes & Maintenance

    DCC plugin rewritten ([#5602](#5602)), optimized.
    DKIM relaxed body canonicalization ([#5593](#5593)), multimap, WebUI and configuration reliability increased.
    Numerous minor bugfixes, build and CI improvements.

Projects & Modules Affected

    Core: Multiclass Bayes, Neural/LLM fusion
    Filtering: Multimap selectors, regex & Hyperscan
    Protocols: HTTP, DNS
    Web: WebUI, Bootstrap
    Plugins: DCC, DKIM, GPT, Neural


To generate a diff of this commit:
cvs rdiff -u -r1.127 -r1.128 pkgsrc/mail/rspamd/Makefile
cvs rdiff -u -r1.36 -r1.37 pkgsrc/mail/rspamd/PLIST
cvs rdiff -u -r1.15 -r1.16 pkgsrc/mail/rspamd/cfgfiles.mk
cvs rdiff -u -r1.67 -r1.68 pkgsrc/mail/rspamd/distinfo
cvs rdiff -u -r0 -r1.4 pkgsrc/mail/rspamd/patches/patch-src_lua_lua__util.c
cvs rdiff -u -r1.1 -r1.2 \
    pkgsrc/mail/rspamd/patches/patch-src_plugins_lua_dmarc.lua

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/mail/rspamd/Makefile
diff -u pkgsrc/mail/rspamd/Makefile:1.127 pkgsrc/mail/rspamd/Makefile:1.128
--- pkgsrc/mail/rspamd/Makefile:1.127   Thu Oct 23 20:38:12 2025
+++ pkgsrc/mail/rspamd/Makefile Sun Nov  2 21:17:43 2025
@@ -1,9 +1,8 @@
-# $NetBSD: Makefile,v 1.127 2025/10/23 20:38:12 wiz Exp $
+# $NetBSD: Makefile,v 1.128 2025/11/02 21:17:43 wiz Exp $
 #
 # When updating this, run 'make cfgfiles'.
 
-DISTNAME=      rspamd-3.12.1
-PKGREVISION=   1
+DISTNAME=      rspamd-3.13.2
 CATEGORIES=    mail
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=rspamd/}
 

Index: pkgsrc/mail/rspamd/PLIST
diff -u pkgsrc/mail/rspamd/PLIST:1.36 pkgsrc/mail/rspamd/PLIST:1.37
--- pkgsrc/mail/rspamd/PLIST:1.36       Sun Jun 15 16:02:01 2025
+++ pkgsrc/mail/rspamd/PLIST    Sun Nov  2 21:17:43 2025
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.36 2025/06/15 16:02:01 taca Exp $
+@comment $NetBSD: PLIST,v 1.37 2025/11/02 21:17:43 wiz Exp $
 bin/rspamadm
 bin/rspamadm-${PKGVERSION}
 bin/rspamc
@@ -15,11 +15,11 @@ man/man1/rspamadm.1
 man/man1/rspamc.1
 man/man8/rspamd.8
 share/examples/rspamd/actions.conf
-share/examples/rspamd/cgp.inc
 share/examples/rspamd/common.conf
 share/examples/rspamd/composites.conf
 share/examples/rspamd/groups.conf
 share/examples/rspamd/lang_detection.inc
+share/examples/rspamd/local.d/antivirus.conf.example
 share/examples/rspamd/local.d/module.conf.example
 share/examples/rspamd/logging.inc
 share/examples/rspamd/lua.local.d/module.lua.example
@@ -160,6 +160,8 @@ share/rspamd/lualib/ansicolors.lua
 share/rspamd/lualib/argparse.lua
 share/rspamd/lualib/fun.lua
 share/rspamd/lualib/global_functions.lua
+share/rspamd/lualib/llm_common.lua
+share/rspamd/lualib/llm_context.lua
 share/rspamd/lualib/lpegre.lua
 share/rspamd/lualib/lua_auth_results.lua
 share/rspamd/lualib/lua_aws.lua
@@ -173,6 +175,7 @@ share/rspamd/lualib/lua_content/ical.lua
 share/rspamd/lualib/lua_content/init.lua
 share/rspamd/lualib/lua_content/pdf.lua
 share/rspamd/lualib/lua_content/vcard.lua
+share/rspamd/lualib/lua_cta.lua
 share/rspamd/lualib/lua_dkim_tools.lua
 share/rspamd/lualib/lua_ffi/common.lua
 share/rspamd/lualib/lua_ffi/dkim.lua
@@ -201,6 +204,7 @@ share/rspamd/lualib/lua_scanners/icap.lu
 share/rspamd/lualib/lua_scanners/init.lua
 share/rspamd/lualib/lua_scanners/kaspersky_av.lua
 share/rspamd/lualib/lua_scanners/kaspersky_se.lua
+share/rspamd/lualib/lua_scanners/metadefender.lua
 share/rspamd/lualib/lua_scanners/oletools.lua
 share/rspamd/lualib/lua_scanners/p0f.lua
 share/rspamd/lualib/lua_scanners/pyzor.lua
@@ -225,6 +229,8 @@ share/rspamd/lualib/lua_verdict.lua
 share/rspamd/lualib/lupa.lua
 share/rspamd/lualib/plugins/dmarc.lua
 share/rspamd/lualib/plugins/neural.lua
+share/rspamd/lualib/plugins/neural/providers/llm.lua
+share/rspamd/lualib/plugins/neural/providers/symbols.lua
 share/rspamd/lualib/plugins/ratelimit.lua
 share/rspamd/lualib/plugins/rbl.lua
 share/rspamd/lualib/plugins_stats.lua

Index: pkgsrc/mail/rspamd/cfgfiles.mk
diff -u pkgsrc/mail/rspamd/cfgfiles.mk:1.15 pkgsrc/mail/rspamd/cfgfiles.mk:1.16
--- pkgsrc/mail/rspamd/cfgfiles.mk:1.15 Tue Jul  1 14:54:25 2025
+++ pkgsrc/mail/rspamd/cfgfiles.mk      Sun Nov  2 21:17:43 2025
@@ -1,4 +1,3 @@
-# $NetBSD: cfgfiles.mk,v 1.15 2025/07/01 14:54:25 schmonz Exp $
+# $NetBSD: cfgfiles.mk,v 1.16 2025/11/02 21:17:43 wiz Exp $
 # Do not edit, regenerate using 'make cfgfiles'
-CFGFILES=      actions.conf cgp.inc common.conf composites.conf groups.conf lang_detection.inc local.d/module.conf.example logging.inc lua.local.d/module.lua.example maps.d/dmarc_whitelist.inc 
maps.d/exe_clickbait.inc maps.d/maillist.inc maps.d/mid.inc maps.d/mime_types.inc maps.d/redirectors.inc maps.d/spf_dkim_whitelist.inc maps.d/surbl-whitelist.inc metrics.conf modules.conf 
modules.d/antivirus.conf modules.d/arc.conf modules.d/asn.conf modules.d/aws_s3.conf modules.d/bayes_expiry.conf modules.d/bimi.conf modules.d/chartable.conf modules.d/clickhouse.conf 
modules.d/contextal.conf modules.d/dcc.conf modules.d/dkim_signing.conf modules.d/dkim.conf modules.d/dmarc.conf modules.d/elastic.conf modules.d/emails.conf modules.d/external_relay.conf 
modules.d/external_services.conf modules.d/force_actions.conf modules.d/forged_recipients.conf modules.d/fuzzy_check.conf modules.d/gpt.conf modules.d/greylist.conf modules.d/hfilter.conf 
modules.d/history_redis.conf modules.d/http_headers.conf modu
 les.d/known_senders.conf modules.d/maillist.conf modules.d/metadata_exporter.conf modules.d/metric_exporter.conf modules.d/mid.conf modules.d/milter_headers.conf modules.d/mime_types.conf 
modules.d/multimap.conf modules.d/mx_check.conf modules.d/neural.conf modules.d/once_received.conf modules.d/p0f.conf modules.d/phishing.conf modules.d/ratelimit.conf modules.d/rbl.conf 
modules.d/redis.conf modules.d/regexp.conf modules.d/replies.conf modules.d/reputation.conf modules.d/rspamd_update.conf modules.d/spamassassin.conf modules.d/spamtrap.conf modules.d/spf.conf 
modules.d/surbl.conf modules.d/trie.conf modules.d/url_redirector.conf modules.d/whitelist.conf modules.local.d/module.conf.example options.inc override.d/module.conf.example rspamd.conf 
scores.d/content_group.conf scores.d/fuzzy_group.conf scores.d/headers_group.conf scores.d/hfilter_group.conf scores.d/mime_types_group.conf scores.d/mua_group.conf scores.d/phishing_group.conf 
scores.d/policies_group.conf scores.d/rbl_group.co
 nf scores.d/statistics_group.conf scores.d/subject_group.conf scores.d/surbl_group.conf scores.d/whitelist_group.conf settings.conf statistic.conf worker-controller.inc worker-fuzzy.inc 
worker-normal.inc worker-proxy.inc
-
+CFGFILES=      actions.conf common.conf composites.conf groups.conf lang_detection.inc local.d/antivirus.conf.example local.d/module.conf.example logging.inc lua.local.d/module.lua.example 
maps.d/dmarc_whitelist.inc maps.d/exe_clickbait.inc maps.d/maillist.inc maps.d/mid.inc maps.d/mime_types.inc maps.d/redirectors.inc maps.d/spf_dkim_whitelist.inc maps.d/surbl-whitelist.inc 
metrics.conf modules.conf modules.d/antivirus.conf modules.d/arc.conf modules.d/asn.conf modules.d/aws_s3.conf modules.d/bayes_expiry.conf modules.d/bimi.conf modules.d/chartable.conf 
modules.d/clickhouse.conf modules.d/contextal.conf modules.d/dcc.conf modules.d/dkim.conf modules.d/dkim_signing.conf modules.d/dmarc.conf modules.d/elastic.conf modules.d/emails.conf 
modules.d/external_relay.conf modules.d/external_services.conf modules.d/force_actions.conf modules.d/forged_recipients.conf modules.d/fuzzy_check.conf modules.d/gpt.conf modules.d/greylist.conf 
modules.d/hfilter.conf modules.d/history_redis.conf modules.d
 /http_headers.conf modules.d/known_senders.conf modules.d/maillist.conf modules.d/metadata_exporter.conf modules.d/metric_exporter.conf modules.d/mid.conf modules.d/milter_headers.conf 
modules.d/mime_types.conf modules.d/multimap.conf modules.d/mx_check.conf modules.d/neural.conf modules.d/once_received.conf modules.d/p0f.conf modules.d/phishing.conf modules.d/ratelimit.conf 
modules.d/rbl.conf modules.d/redis.conf modules.d/regexp.conf modules.d/replies.conf modules.d/reputation.conf modules.d/rspamd_update.conf modules.d/spamassassin.conf modules.d/spamtrap.conf 
modules.d/spf.conf modules.d/surbl.conf modules.d/trie.conf modules.d/url_redirector.conf modules.d/whitelist.conf modules.local.d/module.conf.example options.inc override.d/module.conf.example 
rspamd.conf scores.d/content_group.conf scores.d/fuzzy_group.conf scores.d/headers_group.conf scores.d/hfilter_group.conf scores.d/mime_types_group.conf scores.d/mua_group.conf 
scores.d/phishing_group.conf scores.d/policies_group.con
 f scores.d/rbl_group.conf scores.d/statistics_group.conf scores.d/subject_group.conf scores.d/surbl_group.conf scores.d/whitelist_group.conf settings.conf statistic.conf worker-controller.inc 
worker-fuzzy.inc worker-normal.inc worker-proxy.inc

Index: pkgsrc/mail/rspamd/distinfo
diff -u pkgsrc/mail/rspamd/distinfo:1.67 pkgsrc/mail/rspamd/distinfo:1.68
--- pkgsrc/mail/rspamd/distinfo:1.67    Tue Jul  1 14:54:25 2025
+++ pkgsrc/mail/rspamd/distinfo Sun Nov  2 21:17:43 2025
@@ -1,13 +1,14 @@
-$NetBSD: distinfo,v 1.67 2025/07/01 14:54:25 schmonz Exp $
+$NetBSD: distinfo,v 1.68 2025/11/02 21:17:43 wiz Exp $
 
-BLAKE2s (rspamd-3.12.1.tar.gz) = b0d5c18c5e2b400088950e7828c849bebf1089fa29c15077cde48adfd1a6d43e
-SHA512 (rspamd-3.12.1.tar.gz) = 5e049f6aa872f9ded9ee7f580222edb83260a3a8dc14b74a0f95b88796d36690ac5e9b33b143560253111f79cc8cd5231fd2478661d8cfe92d75874cc472cf6c
-Size (rspamd-3.12.1.tar.gz) = 6482214 bytes
+BLAKE2s (rspamd-3.13.2.tar.gz) = e1ee82597db1781c24b0cc986f42586db7072f969511ad63144c0a33d7875cee
+SHA512 (rspamd-3.13.2.tar.gz) = ff8d9c59f6d0caabf563e2c07bff5adf8cb82dd0988d595900e0206a0315433c69ee425c50d4b5073c3d14f16615f11d7776986fe77b41daed7801e7522244ba
+Size (rspamd-3.13.2.tar.gz) = 6634719 bytes
 SHA1 (patch-CMakeLists.txt) = 25a1264b573d5a1f7ff9a1ac7b8453c5d9cb0a06
 SHA1 (patch-cmake_Toolset.cmake) = fbc4027fedb4261ce913701ebbb32d8395bc7783
 SHA1 (patch-contrib_fpconv_fpconv.c) = b1ec2b07570674458e69020ccbf25f0374d894f6
 SHA1 (patch-lualib_rspamadm_dmarc__report.lua) = 93ccb04512dd84ea83de44c394571ef2bebe6bd2
 SHA1 (patch-src_libserver_symcache_symcache__impl.cxx) = 8a5c69ab343409427619a9cbc0dc080d548b9c53
 SHA1 (patch-src_libstat_backends_redis__backend.cxx) = 4c60287a574066a841c76081cd88512a57f0b27f
-SHA1 (patch-src_plugins_lua_dmarc.lua) = 61b36989b16ad8fea25bafcfd96cd83f57a44bd3
+SHA1 (patch-src_lua_lua__util.c) = 97c68cd5e981afc290b3e1d624b086fb87cd7334
+SHA1 (patch-src_plugins_lua_dmarc.lua) = 972b78415e11bde2f8b224632291ba299d02656c
 SHA1 (patch-src_rspamd.c) = 1903994d5970af57de9c5d522df3dd12576c8418

Index: pkgsrc/mail/rspamd/patches/patch-src_plugins_lua_dmarc.lua
diff -u pkgsrc/mail/rspamd/patches/patch-src_plugins_lua_dmarc.lua:1.1 pkgsrc/mail/rspamd/patches/patch-src_plugins_lua_dmarc.lua:1.2
--- pkgsrc/mail/rspamd/patches/patch-src_plugins_lua_dmarc.lua:1.1      Thu May 16 15:22:14 2024
+++ pkgsrc/mail/rspamd/patches/patch-src_plugins_lua_dmarc.lua  Sun Nov  2 21:17:43 2025
@@ -1,18 +1,18 @@
-$NetBSD: patch-src_plugins_lua_dmarc.lua,v 1.1 2024/05/16 15:22:14 taca Exp $
+$NetBSD: patch-src_plugins_lua_dmarc.lua,v 1.2 2025/11/02 21:17:43 wiz Exp $
 
 os.date() require integer as second argument but get_date() returns
 float on NetBSD.  So, convert return value of get_date() to integer.
 
 This fix is provided from Yoshitaka Tokugawa <toku at tokugawa.org>.
 
---- src/plugins/lua/dmarc.lua.orig     2024-02-26 09:36:56.000000000 +0000
+--- src/plugins/lua/dmarc.lua.orig     2025-10-05 18:04:57.000000000 +0000
 +++ src/plugins/lua/dmarc.lua
-@@ -310,7 +310,7 @@ local function dmarc_validate_policy(tas
+@@ -323,7 +323,7 @@ local function dmarc_validate_policy(tas
  
      -- Prepare and send redis report element
      local period = os.date('%Y%m%d',
--        task:get_date({ format = 'connect', gmt = false }))
-+        math.floor(task:get_date({ format = 'connect', gmt = false })))
+-      task:get_date({ format = 'connect', gmt = false }))
++      math.floor(task:get_date({ format = 'connect', gmt = false })))
  
      -- Dmarc domain key must include dmarc domain, rua and period
      local dmarc_domain_key = table.concat(

Added files:

Index: pkgsrc/mail/rspamd/patches/patch-src_lua_lua__util.c
diff -u /dev/null pkgsrc/mail/rspamd/patches/patch-src_lua_lua__util.c:1.4
--- /dev/null   Sun Nov  2 21:17:43 2025
+++ pkgsrc/mail/rspamd/patches/patch-src_lua_lua__util.c        Sun Nov  2 21:17:43 2025
@@ -0,0 +1,16 @@
+$NetBSD: patch-src_lua_lua__util.c,v 1.4 2025/11/02 21:17:43 wiz Exp $
+
+NetBSD's kinfo_proc is not the same as the other *BSDs.
+https://github.com/rspamd/rspamd/issues/5723
+
+--- src/lua/lua_util.c.orig    2025-10-05 18:04:57.000000000 +0000
++++ src/lua/lua_util.c
+@@ -2532,7 +2532,7 @@ lua_util_get_memory_usage(lua_State *L)
+               lua_pushinteger(L, info.virtual_size);
+               lua_settable(L, -3);
+       }
+-#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
++#elif defined(__FreeBSD__) || defined(__OpenBSD__)
+       struct kinfo_proc kp;
+       size_t len = sizeof(kp);
+       int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid()};



Home | Main Index | Thread Index | Old Index