pkgsrc-WIP-changes archive

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

rspamd31: import rspamd-3.1



Module Name:	pkgsrc-wip
Committed By:	Thomas Klausner <wiz%gatalith.at@localhost>
Pushed By:	wiz
Date:		Wed Aug 17 18:06:48 2022 +0200
Changeset:	a4c6367c3d75cf304f3f9cd6223f00b69770bd43

Modified Files:
	Makefile
Added Files:
	rspamd31/DESCR
	rspamd31/Makefile
	rspamd31/PLIST
	rspamd31/cfgfiles.mk
	rspamd31/distinfo
	rspamd31/files/rspamd.sh
	rspamd31/files/smf/manifest.xml
	rspamd31/files/smf/rspamd.sh
	rspamd31/patches/patch-CMakeLists.txt
	rspamd31/patches/patch-cmake_Toolset.cmake
	rspamd31/patches/patch-contrib_doctest_doctest_doctest.h
	rspamd31/patches/patch-contrib_fpconv_fpconv.c
	rspamd31/patches/patch-src_libcryptobox_CMakeLists.txt
	rspamd31/patches/patch-src_libcryptobox_chacha20_chacha.c
	rspamd31/patches/patch-src_libcryptobox_cryptobox.c

Log Message:
rspamd31: import rspamd-3.1

Current 3.2 version has issues on NetBSD.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=a4c6367c3d75cf304f3f9cd6223f00b69770bd43

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

diffstat:
 Makefile                                           |   1 +
 rspamd31/DESCR                                     |   3 +
 rspamd31/Makefile                                  | 119 +++++++
 rspamd31/PLIST                                     | 352 +++++++++++++++++++++
 rspamd31/cfgfiles.mk                               |   3 +
 rspamd31/distinfo                                  |  12 +
 rspamd31/files/rspamd.sh                           |  37 +++
 rspamd31/files/smf/manifest.xml                    |  29 ++
 rspamd31/files/smf/rspamd.sh                       |  14 +
 rspamd31/patches/patch-CMakeLists.txt              |  55 ++++
 rspamd31/patches/patch-cmake_Toolset.cmake         |  18 ++
 .../patch-contrib_doctest_doctest_doctest.h        |  19 ++
 rspamd31/patches/patch-contrib_fpconv_fpconv.c     |  20 ++
 .../patches/patch-src_libcryptobox_CMakeLists.txt  |  35 ++
 .../patch-src_libcryptobox_chacha20_chacha.c       |  40 +++
 .../patches/patch-src_libcryptobox_cryptobox.c     |  22 ++
 16 files changed, 779 insertions(+)

diffs:
diff --git a/Makefile b/Makefile
index 8241656199..651a2f8909 100644
--- a/Makefile
+++ b/Makefile
@@ -5082,6 +5082,7 @@ SUBDIR+=	rsem
 SUBDIR+=	rset
 SUBDIR+=	rsget
 SUBDIR+=	rsound
+SUBDIR+=	rspamd31
 SUBDIR+=	rsstail
 SUBDIR+=	rst-mode
 SUBDIR+=	rstudio
diff --git a/rspamd31/DESCR b/rspamd31/DESCR
new file mode 100644
index 0000000000..1a571c9fc7
--- /dev/null
+++ b/rspamd31/DESCR
@@ -0,0 +1,3 @@
+Rspamd is fast, modular and lightweight spam filter. It is designed to work
+with big ammount of mail and can be easily extended with own filters written in
+lua.
diff --git a/rspamd31/Makefile b/rspamd31/Makefile
new file mode 100644
index 0000000000..6350e6b1ac
--- /dev/null
+++ b/rspamd31/Makefile
@@ -0,0 +1,119 @@
+# $NetBSD: Makefile,v 1.81 2022/06/28 11:34:34 wiz Exp $
+
+DISTNAME=	rspamd-3.1
+PKGREVISION=	2
+CATEGORIES=	mail
+MASTER_SITES=	${MASTER_SITE_GITHUB:=rspamd/}
+
+MAINTAINER=	bartosz.kuzma%gmail.com@localhost
+HOMEPAGE=	https://www.rspamd.com/
+COMMENT=	Fast, free and open-source spam filtering system
+LICENSE=	2-clause-bsd
+
+DEPENDS+=	${LUA_PKGPREFIX}-lpeg-[0-9]*:../../devel/lua-lpeg
+DEPENDS+=	ragel-[0-9]*:../../devel/ragel
+
+GCC_REQD+=	8
+
+USE_CMAKE=	yes
+USE_TOOLS+=	perl pkg-config
+USE_LANGUAGES=	c99 c++
+BUILD_DEFS+=	VARBASE
+
+LUA_VERSIONS_ACCEPTED=	54 53 52 51
+
+.include "../../mk/bsd.prefs.mk"
+
+.if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 099915
+USE_PKGSRC_GCC=		yes
+USE_PKGSRC_GCC_RUNTIME=	yes
+.endif
+
+CPPFLAGS.SunOS+=			-D__EXTENSIONS__
+
+CMAKE_INSTALL_NAME_DIR=	${PREFIX}/lib/rspamd
+LDFLAGS+=		${COMPILER_RPATH_FLAG}${PREFIX}/lib/rspamd
+TEST_TARGET=		run-test
+
+RSPAMD_USER?=	rspamd
+RSPAMD_GROUP?=	rspamd
+PKG_GROUPS=	${RSPAMD_GROUP}
+PKG_USERS=	${RSPAMD_USER}:${RSPAMD_GROUP}
+
+PKG_GROUPS_VARS=	RSPAMD_GROUP
+PKG_USERS_VARS=		RSPAMD_USER
+
+PKG_GECOS.${RSPAMD_USER}=	rspamd user
+
+PKG_SYSCONFSUBDIR=	rspamd
+
+EGDIR=		${PREFIX}/share/examples/${PKGBASE}
+LOGDIR=		${VARBASE}/log/rspamd
+DBDIR=		${VARBASE}/db/rspamd
+RUNDIR=		${VARBASE}/run/rspamd
+
+FILES_SUBST+=	RSPAMD_USER=${RSPAMD_USER}
+FILES_SUBST+=	RSPAMD_GROUP=${RSPAMD_GROUP}
+
+RCD_SCRIPTS=	rspamd
+SMF_METHODS=	rspamd
+
+CMAKE_ARGS+=	-DMANDIR:PATH=${PREFIX}/${PKGMANDIR}
+CMAKE_ARGS+=	-DLOGDIR:PATH=${LOGDIR}
+CMAKE_ARGS+=	-DRUNDIR:PATH=${VARBASE}/run/rspamd
+CMAKE_ARGS+=	-DDBDIR:PATH=${DBDIR}
+CMAKE_ARGS+=	-DCONFDIR:PATH=${PKG_SYSCONFDIR}
+CMAKE_ARGS+=	-DEXAMPLESDIR:PATH=${EGDIR}
+CMAKE_ARGS+=	-DRSPAMD_USER=${RSPAMD_USER}
+CMAKE_ARGS+=	-DRSPAMD_GROUP=${RSPAMD_GROUP}
+# Torch requires LuaJIT2, but LuaJIT2 only supports Lua 5.1
+CMAKE_ARGS+=	-DENABLE_LUAJIT=OFF
+
+# Assumes inotify == Linux
+CMAKE_ARGS.SunOS+=	-DHAVE_INOTIFY_INIT=NO
+
+REPLACE_PERL+=	utils/rspamd_stats.pl
+
+MAKE_DIRS+=	${PKG_SYSCONFDIR}/maps.d
+MAKE_DIRS+=	${PKG_SYSCONFDIR}/modules.d
+MAKE_DIRS+=	${PKG_SYSCONFDIR}/scores.d
+
+OWN_DIRS_PERMS+=	${DBDIR} ${RSPAMD_USER} ${RSPAMD_GROUP} 0700
+OWN_DIRS_PERMS+=	${LOGDIR} ${RSPAMD_USER} ${RSPAMD_GROUP} 0750
+OWN_DIRS_PERMS+=	${RUNDIR} ${RSPAMD_USER} ${RSPAMD_GROUP} 0755
+
+.include "cfgfiles.mk"
+
+.for file in ${CFGFILES}
+CONF_FILES+=	${EGDIR}/${file} ${PKG_SYSCONFDIR}/${file}
+.endfor
+
+###
+### Generate list of config files
+###
+.PHONY: cfgfiles
+cfgfiles:
+	${RUN} ${RECURSIVE_MAKE} extract
+	@${ECHO} "# \$$NetBSD\$$" > ${.CURDIR}/cfgfiles.mk
+	@${ECHO} "# Do not edit, regenerate using 'make cfgfiles'" >> ${.CURDIR}/cfgfiles.mk
+	${RUN} cd ${WRKSRC}/conf && ${FIND} * -type f | ${SORT} \
+	| ${TR} '\n' ' ' | ${SED} 's, $$,,' \
+	| ${AWK} '{print("CFGFILES=\t" $$0)}' >> ${.CURDIR}/cfgfiles.mk
+	@${ECHO} >> ${.CURDIR}/cfgfiles.mk
+
+post-extract:
+	${FIND} ${WRKSRC}/conf -type d -exec ${CHMOD} ${PKGDIRMODE} {} \;
+	${FIND} ${WRKSRC}/conf -type f -exec ${CHMOD} ${DOCMODE} {} \;
+
+.include "../../databases/hiredis/buildlink3.mk"
+.include "../../databases/sqlite3/buildlink3.mk"
+.include "../../devel/fann/buildlink3.mk"
+.include "../../devel/glib2/buildlink3.mk"
+.include "../../devel/libevent/buildlink3.mk"
+.include "../../lang/lua/buildlink3.mk"
+.include "../../mail/gmime/buildlink3.mk"
+.include "../../security/openssl/buildlink3.mk"
+.include "../../security/libsodium/buildlink3.mk"
+.include "../../sysutils/file/buildlink3.mk"
+.include "../../textproc/icu/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/rspamd31/PLIST b/rspamd31/PLIST
new file mode 100644
index 0000000000..9249c0648e
--- /dev/null
+++ b/rspamd31/PLIST
@@ -0,0 +1,352 @@
+@comment $NetBSD: PLIST,v 1.23 2021/12/21 15:00:41 triaxx Exp $
+bin/rspamadm
+bin/rspamadm-${PKGVERSION}
+bin/rspamc
+bin/rspamc-${PKGVERSION}
+bin/rspamd
+bin/${PKGNAME}
+bin/rspamd_stats
+lib/rspamd/librspamd-actrie.so
+lib/rspamd/librspamd-ev.so
+lib/rspamd/librspamd-kann.so
+lib/rspamd/librspamd-replxx.so
+lib/rspamd/librspamd-server.so
+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/logging.inc
+share/examples/rspamd/maps.d/dmarc_whitelist.inc
+share/examples/rspamd/maps.d/maillist.inc
+share/examples/rspamd/maps.d/mid.inc
+share/examples/rspamd/maps.d/mime_types.inc
+share/examples/rspamd/maps.d/redirectors.inc
+share/examples/rspamd/maps.d/spf_dkim_whitelist.inc
+share/examples/rspamd/maps.d/surbl-whitelist.inc
+share/examples/rspamd/metrics.conf
+share/examples/rspamd/modules.conf
+share/examples/rspamd/modules.d/antivirus.conf
+share/examples/rspamd/modules.d/arc.conf
+share/examples/rspamd/modules.d/asn.conf
+share/examples/rspamd/modules.d/aws_s3.conf
+share/examples/rspamd/modules.d/chartable.conf
+share/examples/rspamd/modules.d/clickhouse.conf
+share/examples/rspamd/modules.d/dcc.conf
+share/examples/rspamd/modules.d/dkim.conf
+share/examples/rspamd/modules.d/dkim_signing.conf
+share/examples/rspamd/modules.d/dmarc.conf
+share/examples/rspamd/modules.d/elastic.conf
+share/examples/rspamd/modules.d/emails.conf
+share/examples/rspamd/modules.d/external_relay.conf
+share/examples/rspamd/modules.d/external_services.conf
+share/examples/rspamd/modules.d/force_actions.conf
+share/examples/rspamd/modules.d/forged_recipients.conf
+share/examples/rspamd/modules.d/fuzzy_check.conf
+share/examples/rspamd/modules.d/greylist.conf
+share/examples/rspamd/modules.d/hfilter.conf
+share/examples/rspamd/modules.d/history_redis.conf
+share/examples/rspamd/modules.d/http_headers.conf
+share/examples/rspamd/modules.d/maillist.conf
+share/examples/rspamd/modules.d/metadata_exporter.conf
+share/examples/rspamd/modules.d/metric_exporter.conf
+share/examples/rspamd/modules.d/mid.conf
+share/examples/rspamd/modules.d/milter_headers.conf
+share/examples/rspamd/modules.d/mime_types.conf
+share/examples/rspamd/modules.d/multimap.conf
+share/examples/rspamd/modules.d/mx_check.conf
+share/examples/rspamd/modules.d/neural.conf
+share/examples/rspamd/modules.d/once_received.conf
+share/examples/rspamd/modules.d/p0f.conf
+share/examples/rspamd/modules.d/phishing.conf
+share/examples/rspamd/modules.d/ratelimit.conf
+share/examples/rspamd/modules.d/rbl.conf
+share/examples/rspamd/modules.d/redis.conf
+share/examples/rspamd/modules.d/regexp.conf
+share/examples/rspamd/modules.d/replies.conf
+share/examples/rspamd/modules.d/reputation.conf
+share/examples/rspamd/modules.d/rspamd_update.conf
+share/examples/rspamd/modules.d/spamassassin.conf
+share/examples/rspamd/modules.d/spamtrap.conf
+share/examples/rspamd/modules.d/spf.conf
+share/examples/rspamd/modules.d/surbl.conf
+share/examples/rspamd/modules.d/trie.conf
+share/examples/rspamd/modules.d/url_redirector.conf
+share/examples/rspamd/modules.d/whitelist.conf
+share/examples/rspamd/options.inc
+share/examples/rspamd/rspamd.conf
+share/examples/rspamd/scores.d/content_group.conf
+share/examples/rspamd/scores.d/fuzzy_group.conf
+share/examples/rspamd/scores.d/headers_group.conf
+share/examples/rspamd/scores.d/hfilter_group.conf
+share/examples/rspamd/scores.d/mime_types_group.conf
+share/examples/rspamd/scores.d/mua_group.conf
+share/examples/rspamd/scores.d/phishing_group.conf
+share/examples/rspamd/scores.d/policies_group.conf
+share/examples/rspamd/scores.d/rbl_group.conf
+share/examples/rspamd/scores.d/statistics_group.conf
+share/examples/rspamd/scores.d/subject_group.conf
+share/examples/rspamd/scores.d/surbl_group.conf
+share/examples/rspamd/scores.d/whitelist_group.conf
+share/examples/rspamd/settings.conf
+share/examples/rspamd/statistic.conf
+share/examples/rspamd/worker-controller.inc
+share/examples/rspamd/worker-fuzzy.inc
+share/examples/rspamd/worker-normal.inc
+share/examples/rspamd/worker-proxy.inc
+share/rspamd/effective_tld_names.dat
+share/rspamd/elastic/kibana.json
+share/rspamd/elastic/rspamd_template.json
+share/rspamd/languages/af.json
+share/rspamd/languages/an.json
+share/rspamd/languages/ar.json
+share/rspamd/languages/bg.json
+share/rspamd/languages/bn.json
+share/rspamd/languages/br.json
+share/rspamd/languages/cs.json
+share/rspamd/languages/cy.json
+share/rspamd/languages/da.json
+share/rspamd/languages/de.json
+share/rspamd/languages/en.json
+share/rspamd/languages/es.json
+share/rspamd/languages/et.json
+share/rspamd/languages/eu.json
+share/rspamd/languages/fa.json
+share/rspamd/languages/fi.json
+share/rspamd/languages/fr.json
+share/rspamd/languages/ga.json
+share/rspamd/languages/hi.json
+share/rspamd/languages/hr.json
+share/rspamd/languages/hu.json
+share/rspamd/languages/id.json
+share/rspamd/languages/is.json
+share/rspamd/languages/it.json
+share/rspamd/languages/lt.json
+share/rspamd/languages/lv.json
+share/rspamd/languages/mr.json
+share/rspamd/languages/ms.json
+share/rspamd/languages/ne.json
+share/rspamd/languages/nl.json
+share/rspamd/languages/no.json
+share/rspamd/languages/pa.json
+share/rspamd/languages/pl.json
+share/rspamd/languages/pt.json
+share/rspamd/languages/ro.json
+share/rspamd/languages/ru.json
+share/rspamd/languages/sl.json
+share/rspamd/languages/so.json
+share/rspamd/languages/sq.json
+share/rspamd/languages/sr.json
+share/rspamd/languages/stop_words
+share/rspamd/languages/sv.json
+share/rspamd/languages/sw.json
+share/rspamd/languages/tr.json
+share/rspamd/languages/uk.json
+share/rspamd/languages/ur.json
+share/rspamd/languages/vi.json
+share/rspamd/lualib/ansicolors.lua
+share/rspamd/lualib/argparse.lua
+share/rspamd/lualib/fun.lua
+share/rspamd/lualib/global_functions.lua
+share/rspamd/lualib/lpegre.lua
+share/rspamd/lualib/lua_auth_results.lua
+share/rspamd/lualib/lua_aws.lua
+share/rspamd/lualib/lua_bayes_learn.lua
+share/rspamd/lualib/lua_cfg_transform.lua
+share/rspamd/lualib/lua_clickhouse.lua
+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_dkim_tools.lua
+share/rspamd/lualib/lua_ffi/common.lua
+share/rspamd/lualib/lua_ffi/dkim.lua
+share/rspamd/lualib/lua_ffi/init.lua
+share/rspamd/lualib/lua_ffi/linalg.lua
+share/rspamd/lualib/lua_ffi/spf.lua
+share/rspamd/lualib/lua_fuzzy.lua
+share/rspamd/lualib/lua_lexer.lua
+share/rspamd/lualib/lua_magic/heuristics.lua
+share/rspamd/lualib/lua_magic/init.lua
+share/rspamd/lualib/lua_magic/patterns.lua
+share/rspamd/lualib/lua_magic/types.lua
+share/rspamd/lualib/lua_maps.lua
+share/rspamd/lualib/lua_maps_expressions.lua
+share/rspamd/lualib/lua_meta.lua
+share/rspamd/lualib/lua_mime.lua
+share/rspamd/lualib/lua_mime_types.lua
+share/rspamd/lualib/lua_redis.lua
+share/rspamd/lualib/lua_scanners/avast.lua
+share/rspamd/lualib/lua_scanners/clamav.lua
+share/rspamd/lualib/lua_scanners/common.lua
+share/rspamd/lualib/lua_scanners/dcc.lua
+share/rspamd/lualib/lua_scanners/fprot.lua
+share/rspamd/lualib/lua_scanners/icap.lua
+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/oletools.lua
+share/rspamd/lualib/lua_scanners/p0f.lua
+share/rspamd/lualib/lua_scanners/pyzor.lua
+share/rspamd/lualib/lua_scanners/razor.lua
+share/rspamd/lualib/lua_scanners/savapi.lua
+share/rspamd/lualib/lua_scanners/sophos.lua
+share/rspamd/lualib/lua_scanners/spamassassin.lua
+share/rspamd/lualib/lua_scanners/vadesecure.lua
+share/rspamd/lualib/lua_scanners/virustotal.lua
+share/rspamd/lualib/lua_selectors/common.lua
+share/rspamd/lualib/lua_selectors/extractors.lua
+share/rspamd/lualib/lua_selectors/init.lua
+share/rspamd/lualib/lua_selectors/maps.lua
+share/rspamd/lualib/lua_selectors/transforms.lua
+share/rspamd/lualib/lua_settings.lua
+share/rspamd/lualib/lua_smtp.lua
+share/rspamd/lualib/lua_stat.lua
+share/rspamd/lualib/lua_tcp_sync.lua
+share/rspamd/lualib/lua_urls_compose.lua
+share/rspamd/lualib/lua_util.lua
+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/rbl.lua
+share/rspamd/lualib/plugins_stats.lua
+share/rspamd/lualib/rescore_utility.lua
+share/rspamd/lualib/rspamadm/clickhouse.lua
+share/rspamd/lualib/rspamadm/configgraph.lua
+share/rspamd/lualib/rspamadm/confighelp.lua
+share/rspamd/lualib/rspamadm/configwizard.lua
+share/rspamd/lualib/rspamadm/cookie.lua
+share/rspamd/lualib/rspamadm/corpus_test.lua
+share/rspamd/lualib/rspamadm/dmarc_report.lua
+share/rspamd/lualib/rspamadm/dns_tool.lua
+share/rspamd/lualib/rspamadm/fuzzy_convert.lua
+share/rspamd/lualib/rspamadm/fuzzy_stat.lua
+share/rspamd/lualib/rspamadm/grep.lua
+share/rspamd/lualib/rspamadm/keypair.lua
+share/rspamd/lualib/rspamadm/mime.lua
+share/rspamd/lualib/rspamadm/neural_test.lua
+share/rspamd/lualib/rspamadm/rescore.lua
+share/rspamd/lualib/rspamadm/stat_convert.lua
+share/rspamd/lualib/rspamadm/statistics_dump.lua
+share/rspamd/lualib/rspamadm/template.lua
+share/rspamd/lualib/rspamadm/vault.lua
+share/rspamd/lualib/tableshape.lua
+share/rspamd/plugins/antivirus.lua
+share/rspamd/plugins/arc.lua
+share/rspamd/plugins/asn.lua
+share/rspamd/plugins/aws_s3.lua
+share/rspamd/plugins/bayes_expiry.lua
+share/rspamd/plugins/clickhouse.lua
+share/rspamd/plugins/clustering.lua
+share/rspamd/plugins/dcc.lua
+share/rspamd/plugins/dkim_signing.lua
+share/rspamd/plugins/dmarc.lua
+share/rspamd/plugins/dynamic_conf.lua
+share/rspamd/plugins/elastic.lua
+share/rspamd/plugins/emails.lua
+share/rspamd/plugins/external_relay.lua
+share/rspamd/plugins/external_services.lua
+share/rspamd/plugins/force_actions.lua
+share/rspamd/plugins/forged_recipients.lua
+share/rspamd/plugins/fuzzy_collect.lua
+share/rspamd/plugins/greylist.lua
+share/rspamd/plugins/hfilter.lua
+share/rspamd/plugins/history_redis.lua
+share/rspamd/plugins/http_headers.lua
+share/rspamd/plugins/ip_score.lua
+share/rspamd/plugins/maillist.lua
+share/rspamd/plugins/maps_stats.lua
+share/rspamd/plugins/metadata_exporter.lua
+share/rspamd/plugins/metric_exporter.lua
+share/rspamd/plugins/mid.lua
+share/rspamd/plugins/milter_headers.lua
+share/rspamd/plugins/mime_types.lua
+share/rspamd/plugins/multimap.lua
+share/rspamd/plugins/mx_check.lua
+share/rspamd/plugins/neural.lua
+share/rspamd/plugins/once_received.lua
+share/rspamd/plugins/p0f.lua
+share/rspamd/plugins/phishing.lua
+share/rspamd/plugins/ratelimit.lua
+share/rspamd/plugins/rbl.lua
+share/rspamd/plugins/replies.lua
+share/rspamd/plugins/reputation.lua
+share/rspamd/plugins/rspamd_update.lua
+share/rspamd/plugins/settings.lua
+share/rspamd/plugins/spamassassin.lua
+share/rspamd/plugins/spamtrap.lua
+share/rspamd/plugins/spf.lua
+share/rspamd/plugins/trie.lua
+share/rspamd/plugins/url_redirector.lua
+share/rspamd/plugins/whitelist.lua
+share/rspamd/rules/bitcoin.lua
+share/rspamd/rules/bounce.lua
+share/rspamd/rules/content.lua
+share/rspamd/rules/controller/init.lua
+share/rspamd/rules/controller/maps.lua
+share/rspamd/rules/controller/neural.lua
+share/rspamd/rules/controller/selectors.lua
+share/rspamd/rules/forwarding.lua
+share/rspamd/rules/headers_checks.lua
+share/rspamd/rules/html.lua
+share/rspamd/rules/mid.lua
+share/rspamd/rules/misc.lua
+share/rspamd/rules/regexp/compromised_hosts.lua
+share/rspamd/rules/regexp/headers.lua
+share/rspamd/rules/regexp/misc.lua
+share/rspamd/rules/regexp/upstream_spam_filters.lua
+share/rspamd/rules/rspamd.lua
+share/rspamd/rules/subject_checks.lua
+share/rspamd/www/README.md
+share/rspamd/www/apple-touch-icon.png
+share/rspamd/www/browserconfig.xml
+share/rspamd/www/css/FooTable.Glyphicons.css
+share/rspamd/www/css/bootstrap.min.css
+share/rspamd/www/css/d3evolution.css
+share/rspamd/www/css/font-glyphicons.css
+share/rspamd/www/css/footable.standalone.min.css
+share/rspamd/www/css/nprogress.css
+share/rspamd/www/css/prism.css
+share/rspamd/www/css/rspamd.css
+share/rspamd/www/css/svg-with-js.min.css
+share/rspamd/www/favicon-16x16.png
+share/rspamd/www/favicon-32x32.png
+share/rspamd/www/favicon.ico
+share/rspamd/www/fonts/glyphicons-halflings-regular.ttf
+share/rspamd/www/fonts/glyphicons-halflings-regular.woff
+share/rspamd/www/fonts/glyphicons-halflings-regular.woff2
+share/rspamd/www/img/asc.png
+share/rspamd/www/img/desc.png
+share/rspamd/www/img/rspamd_logo_navbar.png
+share/rspamd/www/index.html
+share/rspamd/www/js/app/config.js
+share/rspamd/www/js/app/graph.js
+share/rspamd/www/js/app/history.js
+share/rspamd/www/js/app/rspamd.js
+share/rspamd/www/js/app/selectors.js
+share/rspamd/www/js/app/stats.js
+share/rspamd/www/js/app/symbols.js
+share/rspamd/www/js/app/upload.js
+share/rspamd/www/js/lib/bootstrap.bundle.min.js
+share/rspamd/www/js/lib/codejar.min.js
+share/rspamd/www/js/lib/d3.min.js
+share/rspamd/www/js/lib/d3evolution.min.js
+share/rspamd/www/js/lib/d3pie.min.js
+share/rspamd/www/js/lib/fontawesome.min.js
+share/rspamd/www/js/lib/footable.min.js
+share/rspamd/www/js/lib/jquery-3.6.0.min.js
+share/rspamd/www/js/lib/jquery.stickytabs.min.js
+share/rspamd/www/js/lib/linenumbers.min.js
+share/rspamd/www/js/lib/nprogress.min.js
+share/rspamd/www/js/lib/prism.js
+share/rspamd/www/js/lib/require.min.js
+share/rspamd/www/js/lib/solid.min.js
+share/rspamd/www/js/lib/visibility.min.js
+share/rspamd/www/js/main.js
+share/rspamd/www/mstile-150x150.png
+share/rspamd/www/safari-pinned-tab.svg
+@pkgdir etc/rspamd
diff --git a/rspamd31/cfgfiles.mk b/rspamd31/cfgfiles.mk
new file mode 100644
index 0000000000..d22dd8e1a7
--- /dev/null
+++ b/rspamd31/cfgfiles.mk
@@ -0,0 +1,3 @@
+# $NetBSD: cfgfiles.mk,v 1.6 2020/02/11 20:39:48 triaxx Exp $
+# Do not edit, regenerate using 'make cfgfiles'
+CFGFILES=	actions.conf cgp.inc common.conf composites.conf groups.conf logging.inc maps.d/dmarc_whitelist.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/chartable.conf modules.d/clickhouse.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_services.conf modules.d/force_actions.conf modules.d/forged_recipients.conf modules.d/fuzzy_check.conf modules.d/greylist.conf modules.d/hfilter.conf modules.d/history_redis.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 options.inc 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.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
diff --git a/rspamd31/distinfo b/rspamd31/distinfo
new file mode 100644
index 0000000000..ba978c4c2f
--- /dev/null
+++ b/rspamd31/distinfo
@@ -0,0 +1,12 @@
+$NetBSD: distinfo,v 1.42 2022/05/29 19:21:46 gavan Exp $
+
+BLAKE2s (rspamd-3.1.tar.gz) = d23e3aba1974e31236295171e7d74df624497c9ab11c8d8ebfe95830b70d9d7a
+SHA512 (rspamd-3.1.tar.gz) = 3c3c06c10d3dfc90e4bc92c7ebaff4bd4854d3b0e56d6476f0223918c4a52f4cc7a8b381b1f867164199ee18ea00eda77ae0315925f3fd71596d610200667178
+Size (rspamd-3.1.tar.gz) = 5566920 bytes
+SHA1 (patch-CMakeLists.txt) = e50137fb3c2d467a8c880491e5d34d475e1a8d05
+SHA1 (patch-cmake_Toolset.cmake) = fbc4027fedb4261ce913701ebbb32d8395bc7783
+SHA1 (patch-contrib_doctest_doctest_doctest.h) = 5238cb9f837e1d8f402023ddc2f7d02dda3f67ab
+SHA1 (patch-contrib_fpconv_fpconv.c) = b1ec2b07570674458e69020ccbf25f0374d894f6
+SHA1 (patch-src_libcryptobox_CMakeLists.txt) = c003a1992221090f8d7f259a2387319b3fa999f0
+SHA1 (patch-src_libcryptobox_chacha20_chacha.c) = 22072c2ba35914ded17a8707e04cedf0de8cfc1d
+SHA1 (patch-src_libcryptobox_cryptobox.c) = c284aac8a65ae3a5fb9eccd8fb9dcee238518846
diff --git a/rspamd31/files/rspamd.sh b/rspamd31/files/rspamd.sh
new file mode 100644
index 0000000000..2444f6008e
--- /dev/null
+++ b/rspamd31/files/rspamd.sh
@@ -0,0 +1,37 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: rspamd.sh,v 1.2 2018/02/01 09:07:23 fhajny Exp $
+#
+# PROVIDE: rspamd
+# REQUIRE: DAEMON
+# BEFORE: mail
+
+if [ -f /etc/rc.subr ]; then
+	. /etc/rc.subr
+fi
+
+name="rspamd"
+rcvar=$name
+command="@PREFIX@/bin/rspamd"
+pidfile="@VARBASE@/run/rspamd/${name}.pid"
+command_args="-u @RSPAMD_USER@ -g @RSPAMD_GROUP@ -c @PKG_SYSCONFDIR@/rspamd.conf"
+required_files="@PKG_SYSCONFDIR@/rspamd.conf"
+start_precmd="rspamd_precmd"
+
+rspamd_precmd()
+{
+	if [ ! -d @VARBASE@/run/rspamd ]; then
+		@MKDIR@ @VARBASE@/run/rspamd
+		@CHMOD@ 0755 @VARBASE@/run/rspamd
+		@CHOWN@ @RSPAMD_USER@:@RSPAMD_GROUP@ @VARBASE@/run/rspamd
+	fi
+}
+
+if [ -f /etc/rc.subr ]; then
+        load_rc_config $name
+	run_rc_command "$1"
+else
+	echo -n " ${name}"
+	${command} ${rspamd_flags} ${command_args}
+fi
+
diff --git a/rspamd31/files/smf/manifest.xml b/rspamd31/files/smf/manifest.xml
new file mode 100644
index 0000000000..c7b6f669c7
--- /dev/null
+++ b/rspamd31/files/smf/manifest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<service_bundle type="manifest" name="export">
+  <service name="@SMF_PREFIX@/@SMF_NAME@" type="service" version="1">
+    <create_default_instance enabled="false" />
+    <single_instance />
+    <dependency name="network" grouping="require_all" restart_on="error" type="service">
+      <service_fmri value="svc:/milestone/network:default" />
+    </dependency>
+    <dependency name="filesystem" grouping="require_all" restart_on="error" type="service">
+      <service_fmri value="svc:/system/filesystem/local" />
+    </dependency>
+    <method_context></method_context>
+    <exec_method type="method" name="start" exec="@PREFIX@/@SMF_METHOD_FILE.rspamd@ -u @RSPAMD_USER@ -g @RSPAMD_USER@ -c %{config_file}" timeout_seconds="60" />
+    <exec_method type="method" name="stop" exec=":kill" timeout_seconds="60" />
+    <property_group name="startd" type="framework">
+      <propval name="duration" type="astring" value="contract" />
+      <propval name="ignore_error" type="astring" value="core,signal" />
+    </property_group>
+    <property_group name="application" type="application">
+      <propval name="config_file" type="astring" value="@PKG_SYSCONFDIR@/rspamd.conf" />
+    </property_group>
+    <template>
+      <common_name>
+        <loctext xml:lang="C">Rspamd spam filtering system.</loctext>
+      </common_name>
+    </template>
+  </service>
+</service_bundle>
diff --git a/rspamd31/files/smf/rspamd.sh b/rspamd31/files/smf/rspamd.sh
new file mode 100644
index 0000000000..d5b746ad8b
--- /dev/null
+++ b/rspamd31/files/smf/rspamd.sh
@@ -0,0 +1,14 @@
+#!@SMF_METHOD_SHELL@
+#
+# $NetBSD: rspamd.sh,v 1.1 2020/01/06 12:06:08 jperkin Exp $
+#
+
+. /lib/svc/share/smf_include.sh
+
+if [ ! -d @VARBASE@/run/rspamd ]; then
+	@MKDIR@ @VARBASE@/run/rspamd
+	@CHMOD@ 0750 @VARBASE@/run/rspamd
+	@CHOWN@ @RSPAMD_USER@:@RSPAMD_GROUP@ @VARBASE@/run/rspamd
+fi
+
+@PREFIX@/bin/rspamd "$@"
diff --git a/rspamd31/patches/patch-CMakeLists.txt b/rspamd31/patches/patch-CMakeLists.txt
new file mode 100644
index 0000000000..ce7a3f03d7
--- /dev/null
+++ b/rspamd31/patches/patch-CMakeLists.txt
@@ -0,0 +1,55 @@
+$NetBSD: patch-CMakeLists.txt,v 1.7 2021/12/21 15:00:41 triaxx Exp $
+
+For pkgsrc. Install config files to examples directory.
+Find lua more reliably.
+
+--- CMakeLists.txt.orig	2021-11-01 14:33:30.000000000 +0000
++++ CMakeLists.txt
+@@ -155,7 +155,7 @@ ELSE(ENABLE_LUAJIT MATCHES "ON")
+ 			"include/lua53"
+ 			"include/lua"
+ 			ROOT ${LUA_ROOT}
+-			MODULES lua53
++			MODULES lua-5.3
+ 			OPTIONAL)
+ 
+ 	IF (NOT WITH_LIBLUA)
+@@ -168,7 +168,7 @@ ELSE(ENABLE_LUAJIT MATCHES "ON")
+ 				"include/lua54"
+ 				"include/lua"
+ 				ROOT ${LUA_ROOT}
+-				MODULES lua54
++				MODULES lua-5.4
+ 				OPTIONAL)
+ 		IF (NOT WITH_LIBLUA)
+ 			ProcessPackage(LIBLUA LIBRARY	"lua"
+@@ -180,7 +180,7 @@ ELSE(ENABLE_LUAJIT MATCHES "ON")
+ 					"include/lua52"
+ 					"include/lua"
+ 					ROOT ${LUA_ROOT}
+-					MODULES lua52
++					MODULES lua-5.2
+ 					OPTIONAL)
+ 
+ 			IF (NOT WITH_LIBLUA)
+@@ -192,7 +192,7 @@ ELSE(ENABLE_LUAJIT MATCHES "ON")
+ 						"include/lua51"
+ 						"include/lua"
+ 						ROOT ${LUA_ROOT}
+-						MODULES lua51)
++						MODULES lua-5.1)
+ 			ENDIF()
+ 		ENDIF()
+ 	ENDIF()
+@@ -677,9 +677,9 @@ FILE(GLOB_RECURSE CONF_FILES RELATIVE "$
+ 	"${CMAKE_SOURCE_DIR}/conf/*.inc" )
+ FOREACH(CONF_FILE ${CONF_FILES})
+ 	GET_FILENAME_COMPONENT(_rp ${CONF_FILE} PATH)
+-	INSTALL(CODE "FILE(MAKE_DIRECTORY \$ENV{DESTDIR}${CONFDIR}/${_rp})")
++	INSTALL(CODE "FILE(MAKE_DIRECTORY \$ENV{DESTDIR}${EXAMPLESDIR}/${_rp})")
+ 	INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/conf/${CONF_FILE}"
+-		DESTINATION ${CONFDIR}/${_rp})
++		DESTINATION ${EXAMPLESDIR}/${_rp})
+ ENDFOREACH(CONF_FILE)
+ 
+ # Lua plugins
diff --git a/rspamd31/patches/patch-cmake_Toolset.cmake b/rspamd31/patches/patch-cmake_Toolset.cmake
new file mode 100644
index 0000000000..623794571e
--- /dev/null
+++ b/rspamd31/patches/patch-cmake_Toolset.cmake
@@ -0,0 +1,18 @@
+$NetBSD: patch-cmake_Toolset.cmake,v 1.2 2021/12/21 15:00:41 triaxx Exp $
+
+Avoid specifying a custom linker:
+gcc: error: unrecognized command line option '-fuse-ld=lld'; did you mean '-fuse-ld=bfd'?
+
+--- cmake/Toolset.cmake.orig	2021-11-01 14:33:30.000000000 +0000
++++ cmake/Toolset.cmake
+@@ -52,8 +52,8 @@ endif ()
+ 
+ option(LINKER_NAME "Linker name or full path")
+ 
+-find_program(LLD_PATH NAMES "ld.lld" "lld")
+-find_program(GOLD_PATH NAMES "ld.gold" "gold")
++#find_program(LLD_PATH NAMES "ld.lld" "lld")
++#find_program(GOLD_PATH NAMES "ld.gold" "gold")
+ 
+ if(NOT LINKER_NAME)
+     if(LLD_PATH)
diff --git a/rspamd31/patches/patch-contrib_doctest_doctest_doctest.h b/rspamd31/patches/patch-contrib_doctest_doctest_doctest.h
new file mode 100644
index 0000000000..7a767f4d5e
--- /dev/null
+++ b/rspamd31/patches/patch-contrib_doctest_doctest_doctest.h
@@ -0,0 +1,19 @@
+$NetBSD: patch-contrib_doctest_doctest_doctest.h,v 1.1 2022/03/03 16:23:31 jperkin Exp $
+
+Explicitly use std::log10().
+
+--- contrib/doctest/doctest/doctest.h.orig	2021-11-01 14:33:30.000000000 +0000
++++ contrib/doctest/doctest/doctest.h
+@@ -5803,9 +5803,9 @@ namespace {
+             separator_to_stream();
+             s << std::dec;
+ 
+-            auto totwidth = int(std::ceil(log10((std::max(p.numTestCasesPassingFilters, static_cast<unsigned>(p.numAsserts))) + 1)));
+-            auto passwidth = int(std::ceil(log10((std::max(p.numTestCasesPassingFilters - p.numTestCasesFailed, static_cast<unsigned>(p.numAsserts - p.numAssertsFailed))) + 1)));
+-            auto failwidth = int(std::ceil(log10((std::max(p.numTestCasesFailed, static_cast<unsigned>(p.numAssertsFailed))) + 1)));
++            auto totwidth = int(std::ceil(std::log10((std::max(p.numTestCasesPassingFilters, static_cast<unsigned>(p.numAsserts))) + 1)));
++            auto passwidth = int(std::ceil(std::log10((std::max(p.numTestCasesPassingFilters - p.numTestCasesFailed, static_cast<unsigned>(p.numAsserts - p.numAssertsFailed))) + 1)));
++            auto failwidth = int(std::ceil(std::log10((std::max(p.numTestCasesFailed, static_cast<unsigned>(p.numAssertsFailed))) + 1)));
+             const bool anythingFailed = p.numTestCasesFailed > 0 || p.numAssertsFailed > 0;
+             s << Color::Cyan << "[doctest] " << Color::None << "test cases: " << std::setw(totwidth)
+               << p.numTestCasesPassingFilters << " | "
diff --git a/rspamd31/patches/patch-contrib_fpconv_fpconv.c b/rspamd31/patches/patch-contrib_fpconv_fpconv.c
new file mode 100644
index 0000000000..8d91aafb2b
--- /dev/null
+++ b/rspamd31/patches/patch-contrib_fpconv_fpconv.c
@@ -0,0 +1,20 @@
+$NetBSD: patch-contrib_fpconv_fpconv.c,v 1.1 2019/06/21 15:02:54 jperkin Exp $
+
+Provide compat MIN/MAX macros.
+
+--- contrib/fpconv/fpconv.c.orig	2019-05-23 14:41:27.000000000 +0000
++++ contrib/fpconv/fpconv.c
+@@ -14,6 +14,13 @@
+ #define absv(n) ((n) < 0 ? -(n) : (n))
+ #define minv(a, b) ((a) < (b) ? (a) : (b))
+ 
++#ifndef MIN
++#define MIN(a, b)	((a) < (b) ? (a) : (b))
++#endif
++#ifndef MAX
++#define MAX(a, b)	((a) < (b) ? (b) : (a))
++#endif
++
+ static uint64_t tens[] = {
+ 		10000000000000000000U, 1000000000000000000U, 100000000000000000U,
+ 		10000000000000000U, 1000000000000000U, 100000000000000U,
diff --git a/rspamd31/patches/patch-src_libcryptobox_CMakeLists.txt b/rspamd31/patches/patch-src_libcryptobox_CMakeLists.txt
new file mode 100644
index 0000000000..ba9182b6cb
--- /dev/null
+++ b/rspamd31/patches/patch-src_libcryptobox_CMakeLists.txt
@@ -0,0 +1,35 @@
+$NetBSD: patch-src_libcryptobox_CMakeLists.txt,v 1.1 2022/05/29 19:21:46 gavan Exp $
+
+--- src/libcryptobox/CMakeLists.txt.orig	2021-11-01 14:33:30.000000000 +0000
++++ src/libcryptobox/CMakeLists.txt
+@@ -5,17 +5,24 @@ SET(BASE64SRC ${CMAKE_CURRENT_SOURCE_DIR
+ 		${CMAKE_CURRENT_SOURCE_DIR}/base64/base64.c)
+ 
+ IF(HAVE_AVX2)
+-	SET(CHACHASRC ${CHACHASRC} ${CMAKE_CURRENT_SOURCE_DIR}/chacha20/avx2.S)
++	IF ("${ARCH}" STREQUAL "x86_64")
++		SET(CHACHASRC ${CHACHASRC} ${CMAKE_CURRENT_SOURCE_DIR}/chacha20/avx2.S)
++		MESSAGE(STATUS "Cryptobox: AVX2 support is added (chacha20, avx2)")
++	ENDIF()
+ 	SET(BASE64SRC ${BASE64SRC} ${CMAKE_CURRENT_SOURCE_DIR}/base64/avx2.c)
+-	MESSAGE(STATUS "Cryptobox: AVX2 support is added (chacha20, avx2)")
++	MESSAGE(STATUS "Cryptobox: AVX2 support is added (base64, avx2)")
+ ENDIF(HAVE_AVX2)
+ IF(HAVE_AVX)
+-	SET(CHACHASRC ${CHACHASRC} ${CMAKE_CURRENT_SOURCE_DIR}/chacha20/avx.S)
+-	MESSAGE(STATUS "Cryptobox: AVX support is added (chacha20)")
++	IF ("${ARCH}" STREQUAL "x86_64")
++		SET(CHACHASRC ${CHACHASRC} ${CMAKE_CURRENT_SOURCE_DIR}/chacha20/avx.S)
++		MESSAGE(STATUS "Cryptobox: AVX support is added (chacha20)")
++	ENDIF()
+ ENDIF(HAVE_AVX)
+ IF(HAVE_SSE2)
+-	SET(CHACHASRC ${CHACHASRC} ${CMAKE_CURRENT_SOURCE_DIR}/chacha20/sse2.S)
+-	MESSAGE(STATUS "Cryptobox: SSE2 support is added (chacha20)")
++	IF ("${ARCH}" STREQUAL "x86_64")
++		SET(CHACHASRC ${CHACHASRC} ${CMAKE_CURRENT_SOURCE_DIR}/chacha20/sse2.S)
++		MESSAGE(STATUS "Cryptobox: SSE2 support is added (chacha20)")
++	ENDIF()
+ ENDIF(HAVE_SSE2)
+ IF(HAVE_SSE42)
+ 	SET(BASE64SRC ${BASE64SRC} ${CMAKE_CURRENT_SOURCE_DIR}/base64/sse42.c)
diff --git a/rspamd31/patches/patch-src_libcryptobox_chacha20_chacha.c b/rspamd31/patches/patch-src_libcryptobox_chacha20_chacha.c
new file mode 100644
index 0000000000..ecd8091f9a
--- /dev/null
+++ b/rspamd31/patches/patch-src_libcryptobox_chacha20_chacha.c
@@ -0,0 +1,40 @@
+$NetBSD: patch-src_libcryptobox_chacha20_chacha.c,v 1.1 2022/05/29 19:21:46 gavan Exp $
+
+--- src/libcryptobox/chacha20/chacha.c.orig	2021-11-01 14:33:30.000000000 +0000
++++ src/libcryptobox/chacha20/chacha.c
+@@ -52,15 +52,15 @@ typedef struct chacha_impl_t {
+ #define CHACHA_IMPL(cpuflags, desc, ext) \
+ 		{(cpuflags), desc, chacha_##ext, xchacha_##ext, chacha_blocks_##ext, hchacha_##ext}
+ 
+-#if defined(HAVE_AVX2)
++#if defined(HAVE_AVX2) && defined(__x86_64__)
+ 	CHACHA_DECLARE(avx2)
+ 	#define CHACHA_AVX2 CHACHA_IMPL(CPUID_AVX2, "avx2", avx2)
+ #endif
+-#if defined(HAVE_AVX)
++#if defined(HAVE_AVX) && defined(__x86_64__)
+ 	CHACHA_DECLARE(avx)
+ 	#define CHACHA_AVX CHACHA_IMPL(CPUID_AVX, "avx", avx)
+ #endif
+-#if defined(HAVE_SSE2)
++#if defined(HAVE_SSE2) && defined(__x86_64__)
+ 	CHACHA_DECLARE(sse2)
+ 	#define CHACHA_SSE2 CHACHA_IMPL(CPUID_SSE2, "sse2", sse2)
+ #endif
+@@ -70,13 +70,13 @@ CHACHA_DECLARE(ref)
+ 
+ static const chacha_impl_t chacha_list[] = {
+ 	CHACHA_GENERIC,
+-#if defined(CHACHA_AVX2)
++#if defined(CHACHA_AVX2) && defined(__x86_64__)
+ 	CHACHA_AVX2,
+ #endif
+-#if defined(CHACHA_AVX)
++#if defined(CHACHA_AVX) && defined(__x86_64__)
+ 	CHACHA_AVX,
+ #endif
+-#if defined(CHACHA_SSE2)
++#if defined(CHACHA_SSE2) && defined(__x86_64__)
+ 	CHACHA_SSE2
+ #endif
+ };
diff --git a/rspamd31/patches/patch-src_libcryptobox_cryptobox.c b/rspamd31/patches/patch-src_libcryptobox_cryptobox.c
new file mode 100644
index 0000000000..3df0778f36
--- /dev/null
+++ b/rspamd31/patches/patch-src_libcryptobox_cryptobox.c
@@ -0,0 +1,22 @@
+$NetBSD: patch-src_libcryptobox_cryptobox.c,v 1.3 2022/05/29 19:21:46 gavan Exp $
+
+--- src/libcryptobox/cryptobox.c.orig	2021-11-01 14:33:30.000000000 +0000
++++ src/libcryptobox/cryptobox.c
+@@ -118,7 +118,7 @@ rspamd_cryptobox_test_instr (gint instr)
+ 	}
+ 
+ 	switch (instr) {
+-#ifdef HAVE_SSE2
++#if defined HAVE_SSE2 && defined(__x86_64__)
+ 	case CPUID_SSE2:
+ 		__asm__ volatile ("psubb %xmm0, %xmm0");
+ 		break;
+@@ -146,7 +146,7 @@ rspamd_cryptobox_test_instr (gint instr)
+ 		__asm__ volatile ("pcmpeqq %xmm0, %xmm0");
+ 		break;
+ #endif
+-#ifdef HAVE_SSE42
++#if defined HAVE_SSE42 && defined(__x86_64__)
+ 	case CPUID_SSE42:
+ 		__asm__ volatile ("pushq %rax\n"
+ 				"xorq %rax, %rax\n"


Home | Main Index | Thread Index | Old Index