Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Mar 2018 18:53:44 +0000 (UTC)
From:      Vsevolod Stakhov <vsevolod@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r464724 - in head/mail/rspamd: . files
Message-ID:  <201803161853.w2GIrimB077531@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: vsevolod
Date: Fri Mar 16 18:53:44 2018
New Revision: 464724
URL: https://svnweb.freebsd.org/changeset/ports/464724

Log:
  Update rspamd port to 1.7.0
  
  - add options for torch (and torch with OpenBLAS to improve performance)
  - update/sort plist
  - use option helpers
  - delete patch-src_libserver_milter.c - already in upstream
  - add patch-contrib_torch_torch7_lib_TH_CMakeLists.txt to allow build torch without OpenBLAS (which depends on GCC).
  
  PR:		226646
  Submitted by:	Anton Yuzhaninov <citrin+pr@citrin.ru>

Added:
  head/mail/rspamd/files/patch-contrib_torch_torch7_lib_TH_CMakeLists.txt   (contents, props changed)
Deleted:
  head/mail/rspamd/files/patch-src_libserver_milter.c
Modified:
  head/mail/rspamd/Makefile
  head/mail/rspamd/distinfo
  head/mail/rspamd/pkg-plist

Modified: head/mail/rspamd/Makefile
==============================================================================
--- head/mail/rspamd/Makefile	Fri Mar 16 18:49:08 2018	(r464723)
+++ head/mail/rspamd/Makefile	Fri Mar 16 18:53:44 2018	(r464724)
@@ -1,8 +1,7 @@
 # $FreeBSD$
 
 PORTNAME=	rspamd
-PORTVERSION=	1.6.6
-PORTREVISION=	1
+PORTVERSION=	1.7.0
 CATEGORIES=	mail
 
 MAINTAINER=	vsevolod@FreeBSD.org
@@ -20,16 +19,19 @@ BUILD_DEPENDS=	ragel:devel/ragel
 
 CONFLICTS_INSTALL=	rspamd-devel
 
-OPTIONS_DEFINE=		GPERF GD CGP
+OPTIONS_DEFINE=		GPERF GD CGP TORCH TORCH_BLAS
 OPTIONS_DEFINE_amd64=	HYPERSCAN
+OPTIONS_DEFAULT=	TORCH
+OPTIONS_SUB=	yes
 
 CGP_DESC=		Install Communigate Pro(tm) helper
 GD_DESC=		Enable libgd support for images fuzzy hashes
 GPERF_DESC=		Google perf-tools profiling
 HYPERSCAN_DESC=		Use hyperscan optimizations (amd64 only)
+TORCH_DESC=		Machine learning support using torch
+TORCH_BLAS_DESC=	Build torch with OpenBLAS
+TORCH_BLAS_IMPLIES=	TORCH
 
-USE_RC_SUBR=	rspamd
-
 SUB_FILES=	pkg-message rspamd.newsyslog.conf.sample
 PLIST_SUB+=	ETCDIR=etc/rspamd \
 		RSPAMDVERSION=${PORTVERSION}
@@ -54,34 +56,33 @@ USE_GNOME=	glib20
 USE_GITHUB=	yes
 GH_ACCOUNT=	vstakhov
 
-.include <bsd.port.options.mk>
+USE_RC_SUBR=	rspamd
 
-.if ${PORT_OPTIONS:MGD}
- CMAKE_ARGS+=	-DENABLE_GD=ON
- LIB_DEPENDS+=	libgd.so:graphics/gd
-.else
- CMAKE_ARGS+=	-DENABLE_GD=OFF
-.endif
+GD_CMAKE_ON=	-DENABLE_GD=ON
+GD_LIB_DEPENDS=	libgd.so:graphics/gd
 
-.if ${PORT_OPTIONS:MGPERF}
- CMAKE_ARGS+=	-DENABLE_GPERF_TOOLS=ON
- LIB_DEPENDS+=	libprofiler.so:devel/google-perftools
-.endif
+GPERF_CMAKE_ON=	-DENABLE_GPERF_TOOLS=ON
+GPERF_LIB_DEPENDS=	libprofiler.so:devel/google-perftools
 
-.if ${PORT_OPTIONS:MHYPERSCAN}
- CMAKE_ARGS+=		-DENABLE_HYPERSCAN=ON
- LIB_DEPENDS+=		libhs.so:devel/hyperscan
-.endif
+HYPERSCAN_CMAKE_ON=	-DENABLE_HYPERSCAN=ON
+HYPERSCAN_LIB_DEPENDS=	libhs.so:devel/hyperscan
 
-.if ${PORT_OPTIONS:MCGP}
- PLIST_SUB+=	CGP=""
- RUN_DEPENDS+=	\
+TORCH_CMAKE_ON=	-DENABLE_TORCH=ON
+TORCH_CMAKE_OFF=-DENABLE_TORCH=OFF
+
+TORCH_BLAS_USES=	blaslapack:openblas
+TORCH_BLAS_CMAKE_ON=	-DWITH_BLAS=open
+
+CGP_RUN_DEPENDS+=	\
 	p5-AnyEvent-HTTP>=0:www/p5-AnyEvent-HTTP \
 	p5-AnyEvent>=0:devel/p5-AnyEvent \
 	p5-EV>=0:devel/p5-EV \
 	p5-JSON-XS>=0:converters/p5-JSON-XS
-.else
- PLIST_SUB+=	CGP="@comment "
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MTORCH_BLAS}
+USE_GCC=	yes
 .endif
 
 post-install:
@@ -93,11 +94,12 @@ post-install:
 	${RM} ${STAGEDIR}/${ETCDIR}/rspamd.systemd.conf
 	# No need, since rspamd.conf.sample is a same
 	${RM} ${STAGEDIR}/${ETCDIR}/rspamd.sysvinit.conf
+	# No examples installed by the port
+	${RMDIR} ${STAGEDIR}/${EXAMPLESDIR}
 	${INSTALL_DATA} ${WRKDIR}/rspamd.newsyslog.conf.sample ${STAGEDIR}${ETCDIR}
 	@${MKDIR} ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d
 	${LN} -s ${ETCDIR}/rspamd.newsyslog.conf ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d
-.if ${PORT_OPTIONS:MCGP}
+post-install-CGP-on:
 	${INSTALL_SCRIPT} ${WRKSRC}/utils/cgp_rspamd.pl ${STAGEDIR}${PREFIX}/bin/rspamd-cgp-helper
-.endif
 
 .include <bsd.port.mk>

Modified: head/mail/rspamd/distinfo
==============================================================================
--- head/mail/rspamd/distinfo	Fri Mar 16 18:49:08 2018	(r464723)
+++ head/mail/rspamd/distinfo	Fri Mar 16 18:53:44 2018	(r464724)
@@ -1,3 +1,3 @@
-TIMESTAMP = 1518866523
-SHA256 (vstakhov-rspamd-1.6.6_GH0.tar.gz) = 3ae2064ae379adb575bb4f1edd05830a6643d362f22779947fccb18a51f8bfe2
-SIZE (vstakhov-rspamd-1.6.6_GH0.tar.gz) = 2487482
+TIMESTAMP = 1520893818
+SHA256 (vstakhov-rspamd-1.7.0_GH0.tar.gz) = cf8bd3cbe3e6e146dbb9c5d6c0098ccfe69dda5a672b9cf6af629e9fbbdba039
+SIZE (vstakhov-rspamd-1.7.0_GH0.tar.gz) = 4444320

Added: head/mail/rspamd/files/patch-contrib_torch_torch7_lib_TH_CMakeLists.txt
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/mail/rspamd/files/patch-contrib_torch_torch7_lib_TH_CMakeLists.txt	Fri Mar 16 18:53:44 2018	(r464724)
@@ -0,0 +1,92 @@
+--- contrib/torch/torch7/lib/TH/CMakeLists.txt.orig	2018-03-12 16:46:32 UTC
++++ contrib/torch/torch7/lib/TH/CMakeLists.txt
+@@ -230,22 +230,28 @@ ELSE()
+   ENDIF()
+ ENDIF()
+ 
+-FIND_PACKAGE(BLAS)
+-IF(BLAS_FOUND)
+-  SET(USE_BLAS 1)
+-  TARGET_LINK_LIBRARIES(TH ${BLAS_LIBRARIES})
+-  IF(BLAS_INFO STREQUAL "mkl")
+-    ADD_DEFINITIONS(-DTH_BLAS_MKL)
+-  ELSEIF(BLAS_INFO STREQUAL "open")
+-    ADD_DEFINITIONS(-DTH_BLAS_OPEN)
+-  ENDIF()
+-ENDIF(BLAS_FOUND)
++IF(WITH_BLAS)
++  MESSAGE(STATUS "XXXC: will find BLAS")
++  FIND_PACKAGE(BLAS)
++  IF(BLAS_FOUND)
++    MESSAGE(STATUS "XXXC: BLAS was found")
++    SET(USE_BLAS 1)
++    TARGET_LINK_LIBRARIES(TH ${BLAS_LIBRARIES})
++    IF(BLAS_INFO STREQUAL "mkl")
++      ADD_DEFINITIONS(-DTH_BLAS_MKL)
++    ELSEIF(BLAS_INFO STREQUAL "open")
++      ADD_DEFINITIONS(-DTH_BLAS_OPEN)
++    ENDIF()
++  ENDIF(BLAS_FOUND)
++ENDIF(WITH_BLAS)
+ 
+-FIND_PACKAGE(LAPACK)
+-IF(LAPACK_FOUND)
+-  SET(USE_LAPACK 1)
+-  TARGET_LINK_LIBRARIES(TH ${LAPACK_LIBRARIES})
+-ENDIF(LAPACK_FOUND)
++IF(WITH_LAPACK)
++  FIND_PACKAGE(LAPACK)
++  IF(LAPACK_FOUND)
++    SET(USE_LAPACK 1)
++    TARGET_LINK_LIBRARIES(TH ${LAPACK_LIBRARIES})
++  ENDIF(LAPACK_FOUND)
++ENDIF(WITH_LAPACK)
+ 
+ IF (UNIX AND NOT APPLE)
+    INCLUDE(CheckLibraryExists)
+--- contrib/torch/torch7/lib/TH/CMakeLists.txt.orig	2018-03-12 16:46:32 UTC
++++ contrib/torch/torch7/lib/TH/CMakeLists.txt
+@@ -230,22 +230,28 @@ ELSE()
+   ENDIF()
+ ENDIF()
+ 
+-FIND_PACKAGE(BLAS)
+-IF(BLAS_FOUND)
+-  SET(USE_BLAS 1)
+-  TARGET_LINK_LIBRARIES(TH ${BLAS_LIBRARIES})
+-  IF(BLAS_INFO STREQUAL "mkl")
+-    ADD_DEFINITIONS(-DTH_BLAS_MKL)
+-  ELSEIF(BLAS_INFO STREQUAL "open")
+-    ADD_DEFINITIONS(-DTH_BLAS_OPEN)
+-  ENDIF()
+-ENDIF(BLAS_FOUND)
++IF(WITH_BLAS)
++  MESSAGE(STATUS "XXXC: will find BLAS")
++  FIND_PACKAGE(BLAS)
++  IF(BLAS_FOUND)
++    MESSAGE(STATUS "XXXC: BLAS was found")
++    SET(USE_BLAS 1)
++    TARGET_LINK_LIBRARIES(TH ${BLAS_LIBRARIES})
++    IF(BLAS_INFO STREQUAL "mkl")
++      ADD_DEFINITIONS(-DTH_BLAS_MKL)
++    ELSEIF(BLAS_INFO STREQUAL "open")
++      ADD_DEFINITIONS(-DTH_BLAS_OPEN)
++    ENDIF()
++  ENDIF(BLAS_FOUND)
++ENDIF(WITH_BLAS)
+ 
+-FIND_PACKAGE(LAPACK)
+-IF(LAPACK_FOUND)
+-  SET(USE_LAPACK 1)
+-  TARGET_LINK_LIBRARIES(TH ${LAPACK_LIBRARIES})
+-ENDIF(LAPACK_FOUND)
++IF(WITH_LAPACK)
++  FIND_PACKAGE(LAPACK)
++  IF(LAPACK_FOUND)
++    SET(USE_LAPACK 1)
++    TARGET_LINK_LIBRARIES(TH ${LAPACK_LIBRARIES})
++  ENDIF(LAPACK_FOUND)
++ENDIF(WITH_LAPACK)
+ 
+ IF (UNIX AND NOT APPLE)
+    INCLUDE(CheckLibraryExists)

Modified: head/mail/rspamd/pkg-plist
==============================================================================
--- head/mail/rspamd/pkg-plist	Fri Mar 16 18:49:08 2018	(r464723)
+++ head/mail/rspamd/pkg-plist	Fri Mar 16 18:53:44 2018	(r464724)
@@ -1,20 +1,23 @@
-bin/rspamd-%%RSPAMDVERSION%%
-bin/rspamd
-bin/rspamd_stats
-bin/rspamadm-%%RSPAMDVERSION%%
 bin/rspamadm
-bin/rspamc-%%RSPAMDVERSION%%
+bin/rspamadm-%%RSPAMDVERSION%%
 bin/rspamc
+bin/rspamc-%%RSPAMDVERSION%%
+bin/rspamd
+bin/rspamd-%%RSPAMDVERSION%%
+bin/rspamd_stats
 %%CGP%%bin/rspamd-cgp-helper
+etc/newsyslog.conf.d/rspamd.newsyslog.conf
 @sample %%ETCDIR%%/2tld.inc.sample
-@sample %%ETCDIR%%/mime_types.inc.sample
+@sample %%ETCDIR%%/actions.conf
 @sample %%ETCDIR%%/common.conf.sample
 @sample %%ETCDIR%%/composites.conf.sample
 @sample %%ETCDIR%%/dmarc_whitelist.inc.sample
+@sample %%ETCDIR%%/groups.conf
 @sample %%ETCDIR%%/logging.inc.sample
 @sample %%ETCDIR%%/maillist.inc.sample
 @sample %%ETCDIR%%/metrics.conf.sample
 @sample %%ETCDIR%%/mid.inc.sample
+@sample %%ETCDIR%%/mime_types.inc.sample
 @sample %%ETCDIR%%/modules.conf.sample
 %%ETCDIR%%/modules.d/antivirus.conf
 %%ETCDIR%%/modules.d/arc.conf
@@ -25,8 +28,8 @@ bin/rspamc
 %%ETCDIR%%/modules.d/dkim.conf
 %%ETCDIR%%/modules.d/dkim_signing.conf
 %%ETCDIR%%/modules.d/dmarc.conf
+%%ETCDIR%%/modules.d/elastic.conf
 %%ETCDIR%%/modules.d/emails.conf
-%%ETCDIR%%/modules.d/fann_redis.conf
 %%ETCDIR%%/modules.d/force_actions.conf
 %%ETCDIR%%/modules.d/forged_recipients.conf
 %%ETCDIR%%/modules.d/fuzzy_check.conf
@@ -37,10 +40,12 @@ bin/rspamc
 %%ETCDIR%%/modules.d/maillist.conf
 %%ETCDIR%%/modules.d/metadata_exporter.conf
 %%ETCDIR%%/modules.d/metric_exporter.conf
-%%ETCDIR%%/modules.d/mime_types.conf
 %%ETCDIR%%/modules.d/mid.conf
+%%ETCDIR%%/modules.d/milter_headers.conf
+%%ETCDIR%%/modules.d/mime_types.conf
 %%ETCDIR%%/modules.d/multimap.conf
 %%ETCDIR%%/modules.d/mx_check.conf
+%%ETCDIR%%/modules.d/neural.conf
 %%ETCDIR%%/modules.d/once_received.conf
 %%ETCDIR%%/modules.d/phishing.conf
 %%ETCDIR%%/modules.d/ratelimit.conf
@@ -48,7 +53,6 @@ bin/rspamc
 %%ETCDIR%%/modules.d/redis.conf
 %%ETCDIR%%/modules.d/regexp.conf
 %%ETCDIR%%/modules.d/replies.conf
-%%ETCDIR%%/modules.d/milter_headers.conf
 %%ETCDIR%%/modules.d/rspamd_update.conf
 %%ETCDIR%%/modules.d/spamassassin.conf
 %%ETCDIR%%/modules.d/spamtrap.conf
@@ -59,28 +63,384 @@ bin/rspamc
 %%ETCDIR%%/modules.d/url_reputation.conf
 %%ETCDIR%%/modules.d/url_tags.conf
 %%ETCDIR%%/modules.d/whitelist.conf
-@sample %%ETCDIR%%/options.inc.sample
+%%ETCDIR%%/options.inc
+%%ETCDIR%%/options.inc.sample
 %%ETCDIR%%/redirectors.inc
-@sample %%ETCDIR%%/rspamd.conf.sample
-@sample %%ETCDIR%%/spf_dkim_whitelist.inc.sample
-@sample %%ETCDIR%%/statistic.conf.sample
-@sample %%ETCDIR%%/surbl-whitelist.inc.sample
-@sample %%ETCDIR%%/worker-controller.inc.sample
-@sample %%ETCDIR%%/worker-fuzzy.inc.sample
-@sample %%ETCDIR%%/worker-normal.inc.sample
-@sample %%ETCDIR%%/worker-proxy.inc.sample
-@sample %%ETCDIR%%/rspamd.newsyslog.conf.sample
-etc/newsyslog.conf.d/rspamd.newsyslog.conf
+%%ETCDIR%%/rspamd.conf
+%%ETCDIR%%/rspamd.conf.sample
+%%ETCDIR%%/rspamd.newsyslog.conf.sample
+%%ETCDIR%%/scores.d/fuzzy_group.conf
+%%ETCDIR%%/scores.d/headers_group.conf
+%%ETCDIR%%/scores.d/hfilter_group.conf
+%%ETCDIR%%/scores.d/mime_types_group.conf
+%%ETCDIR%%/scores.d/mua_group.conf
+%%ETCDIR%%/scores.d/phishing_group.conf
+%%ETCDIR%%/scores.d/policies_group.conf
+%%ETCDIR%%/scores.d/rbl_group.conf
+%%ETCDIR%%/scores.d/statistics_group.conf
+%%ETCDIR%%/scores.d/subject_group.conf
+%%ETCDIR%%/scores.d/surbl_group.conf
+%%ETCDIR%%/spf_dkim_whitelist.inc
+%%ETCDIR%%/spf_dkim_whitelist.inc.sample
+%%ETCDIR%%/statistic.conf
+%%ETCDIR%%/statistic.conf.sample
+%%ETCDIR%%/surbl-whitelist.inc
+%%ETCDIR%%/surbl-whitelist.inc.sample
+%%ETCDIR%%/worker-controller.inc
+%%ETCDIR%%/worker-controller.inc.sample
+%%ETCDIR%%/worker-fuzzy.inc
+%%ETCDIR%%/worker-fuzzy.inc.sample
+%%ETCDIR%%/worker-normal.inc
+%%ETCDIR%%/worker-normal.inc.sample
+%%ETCDIR%%/worker-proxy.inc
+%%ETCDIR%%/worker-proxy.inc.sample
 lib/rspamd/librspamd-actrie.so
+%%TORCH%%lib/rspamd/libTH.so
+%%TORCH%%lib/rspamd/libTHNN.so
+%%TORCH%%lib/rspamd/libdecisiontree.so
+%%TORCH%%lib/rspamd/libpaths.so
+%%TORCH%%lib/rspamd/libtorch.so
+man/man1/rspamadm.1.gz
+man/man1/rspamc.1.gz
+man/man8/rspamd.8.gz
 %%DATADIR%%/effective_tld_names.dat
-%%DATADIR%%/lib/auth_results.lua
-%%DATADIR%%/lib/dkim_sign_tools.lua
+%%DATADIR%%/elastic/kibana.json
+%%DATADIR%%/elastic/rspamd_template.json
+%%DATADIR%%/languages/af.json
+%%DATADIR%%/languages/an.json
+%%DATADIR%%/languages/ar.json
+%%DATADIR%%/languages/bg.json
+%%DATADIR%%/languages/bn.json
+%%DATADIR%%/languages/br.json
+%%DATADIR%%/languages/cs.json
+%%DATADIR%%/languages/cy.json
+%%DATADIR%%/languages/da.json
+%%DATADIR%%/languages/de.json
+%%DATADIR%%/languages/el.json
+%%DATADIR%%/languages/en.json
+%%DATADIR%%/languages/es.json
+%%DATADIR%%/languages/et.json
+%%DATADIR%%/languages/eu.json
+%%DATADIR%%/languages/fa.json
+%%DATADIR%%/languages/fi.json
+%%DATADIR%%/languages/fr.json
+%%DATADIR%%/languages/ga.json
+%%DATADIR%%/languages/gl.json
+%%DATADIR%%/languages/gu.json
+%%DATADIR%%/languages/he.json
+%%DATADIR%%/languages/hi.json
+%%DATADIR%%/languages/hr.json
+%%DATADIR%%/languages/hu.json
+%%DATADIR%%/languages/id.json
+%%DATADIR%%/languages/is.json
+%%DATADIR%%/languages/it.json
+%%DATADIR%%/languages/ja.json
+%%DATADIR%%/languages/km.json
+%%DATADIR%%/languages/kn.json
+%%DATADIR%%/languages/ko.json
+%%DATADIR%%/languages/lt.json
+%%DATADIR%%/languages/lv.json
+%%DATADIR%%/languages/ml.json
+%%DATADIR%%/languages/mr.json
+%%DATADIR%%/languages/ms.json
+%%DATADIR%%/languages/ne.json
+%%DATADIR%%/languages/nl.json
+%%DATADIR%%/languages/no.json
+%%DATADIR%%/languages/pa.json
+%%DATADIR%%/languages/pl.json
+%%DATADIR%%/languages/pt.json
+%%DATADIR%%/languages/ro.json
+%%DATADIR%%/languages/ru.json
+%%DATADIR%%/languages/sl.json
+%%DATADIR%%/languages/so.json
+%%DATADIR%%/languages/sq.json
+%%DATADIR%%/languages/sr.json
+%%DATADIR%%/languages/sv.json
+%%DATADIR%%/languages/sw.json
+%%DATADIR%%/languages/ta.json
+%%DATADIR%%/languages/te.json
+%%DATADIR%%/languages/th.json
+%%DATADIR%%/languages/tr.json
+%%DATADIR%%/languages/uk.json
+%%DATADIR%%/languages/ur.json
+%%DATADIR%%/languages/vi.json
+%%DATADIR%%/languages/yi.json
+%%DATADIR%%/languages/zh-CN.json
 %%DATADIR%%/lib/fun.lua
 %%DATADIR%%/lib/global_functions.lua
+%%DATADIR%%/lib/lua_auth_results.lua
+%%DATADIR%%/lib/lua_cfg_transform.lua
+%%DATADIR%%/lib/lua_dkim_tools.lua
+%%DATADIR%%/lib/lua_maps.lua
+%%DATADIR%%/lib/lua_meta.lua
+%%DATADIR%%/lib/lua_nn.lua
 %%DATADIR%%/lib/lua_redis.lua
+%%DATADIR%%/lib/lua_stat.lua
 %%DATADIR%%/lib/lua_util.lua
-%%DATADIR%%/lib/maps.lua
-%%DATADIR%%/lib/meta_functions.lua
+%%DATADIR%%/lib/rspamadm/ansicolors.lua
+%%DATADIR%%/lib/rspamadm/confighelp.lua
+%%DATADIR%%/lib/rspamadm/configwizard.lua
+%%DATADIR%%/lib/rspamadm/corpus_test.lua
+%%DATADIR%%/lib/rspamadm/fuzzy_convert.lua
+%%DATADIR%%/lib/rspamadm/fuzzy_stat.lua
+%%DATADIR%%/lib/rspamadm/getopt.lua
+%%DATADIR%%/lib/rspamadm/grep.lua
+%%DATADIR%%/lib/rspamadm/plugins_stats.lua
+%%DATADIR%%/lib/rspamadm/rescore.lua
+%%DATADIR%%/lib/rspamadm/rescore_utility.lua
+%%DATADIR%%/lib/rspamadm/stat_convert.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/CartNode.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/CartTrainer.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/CartTree.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/DFD.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/DataSet.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/DecisionForest.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/DecisionForestTrainer.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/DecisionTree.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/GiniState.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/GradientBoostState.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/GradientBoostTrainer.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/LogitBoostCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/MSECriterion.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/RandomForestTrainer.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/Sparse2Dense.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/SparseTensor.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/TreeState.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/WorkPool.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/_env.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/benchmark.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/init.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/math.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/test.lua
+%%TORCH%%%%DATADIR%%/lib/decisiontree/utils.lua
+%%TORCH%%%%DATADIR%%/lib/moses.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Abs.lua
+%%TORCH%%%%DATADIR%%/lib/nn/AbsCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Add.lua
+%%TORCH%%%%DATADIR%%/lib/nn/AddConstant.lua
+%%TORCH%%%%DATADIR%%/lib/nn/BCECriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/BatchNormalization.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Bilinear.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Bottle.lua
+%%TORCH%%%%DATADIR%%/lib/nn/CAdd.lua
+%%TORCH%%%%DATADIR%%/lib/nn/CAddTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/CAddTensorTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/CDivTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/CMaxTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/CMinTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/CMul.lua
+%%TORCH%%%%DATADIR%%/lib/nn/CMulTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/CReLU.lua
+%%TORCH%%%%DATADIR%%/lib/nn/CSubTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Clamp.lua
+%%TORCH%%%%DATADIR%%/lib/nn/ClassNLLCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/ClassSimplexCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Collapse.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Concat.lua
+%%TORCH%%%%DATADIR%%/lib/nn/ConcatTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Constant.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Container.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Contiguous.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Convert.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Copy.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Cosine.lua
+%%TORCH%%%%DATADIR%%/lib/nn/CosineDistance.lua
+%%TORCH%%%%DATADIR%%/lib/nn/CosineEmbeddingCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Criterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/CriterionTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/CrossEntropyCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Decorator.lua
+%%TORCH%%%%DATADIR%%/lib/nn/DepthConcat.lua
+%%TORCH%%%%DATADIR%%/lib/nn/DistKLDivCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/DistanceRatioCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/DontCast.lua
+%%TORCH%%%%DATADIR%%/lib/nn/DotProduct.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Dropout.lua
+%%TORCH%%%%DATADIR%%/lib/nn/ELU.lua
+%%TORCH%%%%DATADIR%%/lib/nn/ErrorMessages.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Euclidean.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Exp.lua
+%%TORCH%%%%DATADIR%%/lib/nn/FlattenTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/GPU.lua
+%%TORCH%%%%DATADIR%%/lib/nn/GatedLinearUnit.lua
+%%TORCH%%%%DATADIR%%/lib/nn/GradientReversal.lua
+%%TORCH%%%%DATADIR%%/lib/nn/HardShrink.lua
+%%TORCH%%%%DATADIR%%/lib/nn/HardTanh.lua
+%%TORCH%%%%DATADIR%%/lib/nn/HingeEmbeddingCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Identity.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Index.lua
+%%TORCH%%%%DATADIR%%/lib/nn/IndexLinear.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Jacobian.lua
+%%TORCH%%%%DATADIR%%/lib/nn/JoinTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Kmeans.lua
+%%TORCH%%%%DATADIR%%/lib/nn/L1Cost.lua
+%%TORCH%%%%DATADIR%%/lib/nn/L1HingeEmbeddingCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/L1Penalty.lua
+%%TORCH%%%%DATADIR%%/lib/nn/LayerNormalization.lua
+%%TORCH%%%%DATADIR%%/lib/nn/LeakyReLU.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Linear.lua
+%%TORCH%%%%DATADIR%%/lib/nn/LinearWeightNorm.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Log.lua
+%%TORCH%%%%DATADIR%%/lib/nn/LogSigmoid.lua
+%%TORCH%%%%DATADIR%%/lib/nn/LogSoftMax.lua
+%%TORCH%%%%DATADIR%%/lib/nn/LookupTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/MM.lua
+%%TORCH%%%%DATADIR%%/lib/nn/MSECriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/MV.lua
+%%TORCH%%%%DATADIR%%/lib/nn/MapTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/MarginCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/MarginRankingCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/MaskedSelect.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Max.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Maxout.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Mean.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Min.lua
+%%TORCH%%%%DATADIR%%/lib/nn/MixtureTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Module.lua
+%%TORCH%%%%DATADIR%%/lib/nn/ModuleCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Mul.lua
+%%TORCH%%%%DATADIR%%/lib/nn/MulConstant.lua
+%%TORCH%%%%DATADIR%%/lib/nn/MultiCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/MultiLabelMarginCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/MultiLabelSoftMarginCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/MultiMarginCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/NaN.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Narrow.lua
+%%TORCH%%%%DATADIR%%/lib/nn/NarrowTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Normalize.lua
+%%TORCH%%%%DATADIR%%/lib/nn/OneHot.lua
+%%TORCH%%%%DATADIR%%/lib/nn/PReLU.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Padding.lua
+%%TORCH%%%%DATADIR%%/lib/nn/PairwiseDistance.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Parallel.lua
+%%TORCH%%%%DATADIR%%/lib/nn/ParallelCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/ParallelTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/PartialLinear.lua
+%%TORCH%%%%DATADIR%%/lib/nn/PixelShuffle.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Power.lua
+%%TORCH%%%%DATADIR%%/lib/nn/PrintSize.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Profile.lua
+%%TORCH%%%%DATADIR%%/lib/nn/RReLU.lua
+%%TORCH%%%%DATADIR%%/lib/nn/ReLU.lua
+%%TORCH%%%%DATADIR%%/lib/nn/ReLU6.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Replicate.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Reshape.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Select.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SelectTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Sequential.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Sigmoid.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SmoothL1Criterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SoftMarginCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SoftMax.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SoftMin.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SoftPlus.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SoftShrink.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SoftSign.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SparseJacobian.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SparseLinear.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialAdaptiveAveragePooling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialAdaptiveMaxPooling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialAutoCropMSECriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialAveragePooling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialBatchNormalization.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialClassNLLCriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialContrastiveNormalization.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialConvolution.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialConvolutionLocal.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialConvolutionMM.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialConvolutionMap.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialCrossMapLRN.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialDepthWiseConvolution.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialDilatedConvolution.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialDilatedMaxPooling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialDivisiveNormalization.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialDropout.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialFractionalMaxPooling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialFullConvolution.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialFullConvolutionMap.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialLPPooling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialLogSoftMax.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialMaxPooling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialMaxUnpooling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialReflectionPadding.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialReplicationPadding.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialSoftMax.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialSubSampling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialSubtractiveNormalization.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialUpSamplingBilinear.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialUpSamplingNearest.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SpatialZeroPadding.lua
+%%TORCH%%%%DATADIR%%/lib/nn/SplitTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Sqrt.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Square.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Squeeze.lua
+%%TORCH%%%%DATADIR%%/lib/nn/StochasticGradient.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Sum.lua
+%%TORCH%%%%DATADIR%%/lib/nn/THNN.lua
+%%TORCH%%%%DATADIR%%/lib/nn/THNN_h.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Tanh.lua
+%%TORCH%%%%DATADIR%%/lib/nn/TanhShrink.lua
+%%TORCH%%%%DATADIR%%/lib/nn/TemporalConvolution.lua
+%%TORCH%%%%DATADIR%%/lib/nn/TemporalDynamicKMaxPooling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/TemporalMaxPooling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/TemporalRowConvolution.lua
+%%TORCH%%%%DATADIR%%/lib/nn/TemporalSubSampling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Threshold.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Transpose.lua
+%%TORCH%%%%DATADIR%%/lib/nn/Unsqueeze.lua
+%%TORCH%%%%DATADIR%%/lib/nn/View.lua
+%%TORCH%%%%DATADIR%%/lib/nn/VolumetricAveragePooling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/VolumetricBatchNormalization.lua
+%%TORCH%%%%DATADIR%%/lib/nn/VolumetricConvolution.lua
+%%TORCH%%%%DATADIR%%/lib/nn/VolumetricDilatedConvolution.lua
+%%TORCH%%%%DATADIR%%/lib/nn/VolumetricDilatedMaxPooling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/VolumetricDropout.lua
+%%TORCH%%%%DATADIR%%/lib/nn/VolumetricFractionalMaxPooling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/VolumetricFullConvolution.lua
+%%TORCH%%%%DATADIR%%/lib/nn/VolumetricMaxPooling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/VolumetricMaxUnpooling.lua
+%%TORCH%%%%DATADIR%%/lib/nn/VolumetricReplicationPadding.lua
+%%TORCH%%%%DATADIR%%/lib/nn/WeightNorm.lua
+%%TORCH%%%%DATADIR%%/lib/nn/WeightedEuclidean.lua
+%%TORCH%%%%DATADIR%%/lib/nn/WeightedMSECriterion.lua
+%%TORCH%%%%DATADIR%%/lib/nn/WhiteNoise.lua
+%%TORCH%%%%DATADIR%%/lib/nn/ZeroGrad.lua
+%%TORCH%%%%DATADIR%%/lib/nn/ZipTable.lua
+%%TORCH%%%%DATADIR%%/lib/nn/ZipTableOneToMany.lua
+%%TORCH%%%%DATADIR%%/lib/nn/hessian.lua
+%%TORCH%%%%DATADIR%%/lib/nn/init.lua
+%%TORCH%%%%DATADIR%%/lib/nn/test.lua
+%%TORCH%%%%DATADIR%%/lib/nn/utils.lua
+%%TORCH%%%%DATADIR%%/lib/optim/ConfusionMatrix.lua
+%%TORCH%%%%DATADIR%%/lib/optim/Logger.lua
+%%TORCH%%%%DATADIR%%/lib/optim/adadelta.lua
+%%TORCH%%%%DATADIR%%/lib/optim/adagrad.lua
+%%TORCH%%%%DATADIR%%/lib/optim/adam.lua
+%%TORCH%%%%DATADIR%%/lib/optim/adamax.lua
+%%TORCH%%%%DATADIR%%/lib/optim/asgd.lua
+%%TORCH%%%%DATADIR%%/lib/optim/cg.lua
+%%TORCH%%%%DATADIR%%/lib/optim/checkgrad.lua
+%%TORCH%%%%DATADIR%%/lib/optim/cmaes.lua
+%%TORCH%%%%DATADIR%%/lib/optim/de.lua
+%%TORCH%%%%DATADIR%%/lib/optim/fista.lua
+%%TORCH%%%%DATADIR%%/lib/optim/init.lua
+%%TORCH%%%%DATADIR%%/lib/optim/lbfgs.lua
+%%TORCH%%%%DATADIR%%/lib/optim/lswolfe.lua
+%%TORCH%%%%DATADIR%%/lib/optim/nag.lua
+%%TORCH%%%%DATADIR%%/lib/optim/polyinterp.lua
+%%TORCH%%%%DATADIR%%/lib/optim/rmsprop.lua
+%%TORCH%%%%DATADIR%%/lib/optim/rprop.lua
+%%TORCH%%%%DATADIR%%/lib/optim/sgd.lua
+%%TORCH%%%%DATADIR%%/lib/paths/init.lua
+%%TORCH%%%%DATADIR%%/lib/torch/CmdLine.lua
+%%TORCH%%%%DATADIR%%/lib/torch/FFInterface.lua
+%%TORCH%%%%DATADIR%%/lib/torch/File.lua
+%%TORCH%%%%DATADIR%%/lib/torch/Tensor.lua
+%%TORCH%%%%DATADIR%%/lib/torch/TestSuite.lua
+%%TORCH%%%%DATADIR%%/lib/torch/Tester.lua
+%%TORCH%%%%DATADIR%%/lib/torch/init.lua
+%%TORCH%%%%DATADIR%%/lib/torch/paths.lua
+%%TORCH%%%%DATADIR%%/lib/torch/test.lua
 %%DATADIR%%/lua/antivirus.lua
 %%DATADIR%%/lua/arc.lua
 %%DATADIR%%/lua/asn.lua
@@ -90,10 +450,8 @@ lib/rspamd/librspamd-actrie.so
 %%DATADIR%%/lua/dkim_signing.lua
 %%DATADIR%%/lua/dmarc.lua
 %%DATADIR%%/lua/dynamic_conf.lua
+%%DATADIR%%/lua/elastic.lua
 %%DATADIR%%/lua/emails.lua
-%%DATADIR%%/lua/fann_classifier.lua
-%%DATADIR%%/lua/fann_redis.lua
-%%DATADIR%%/lua/fann_scores.lua
 %%DATADIR%%/lua/force_actions.lua
 %%DATADIR%%/lua/forged_recipients.lua
 %%DATADIR%%/lua/fuzzy_collect.lua
@@ -105,23 +463,25 @@ lib/rspamd/librspamd-actrie.so
 %%DATADIR%%/lua/metadata_exporter.lua
 %%DATADIR%%/lua/metric_exporter.lua
 %%DATADIR%%/lua/mid.lua
+%%DATADIR%%/lua/milter_headers.lua
 %%DATADIR%%/lua/mime_types.lua
 %%DATADIR%%/lua/multimap.lua
 %%DATADIR%%/lua/mx_check.lua
+%%DATADIR%%/lua/neural.lua
 %%DATADIR%%/lua/once_received.lua
 %%DATADIR%%/lua/phishing.lua
 %%DATADIR%%/lua/ratelimit.lua
-%%DATADIR%%/lua/url_redirector.lua
-%%DATADIR%%/lua/url_tags.lua
-%%DATADIR%%/lua/replies.lua
 %%DATADIR%%/lua/rbl.lua
-%%DATADIR%%/lua/milter_headers.lua
+%%DATADIR%%/lua/replies.lua
+%%DATADIR%%/lua/reputation.lua
 %%DATADIR%%/lua/rspamd_update.lua
 %%DATADIR%%/lua/settings.lua
 %%DATADIR%%/lua/spamassassin.lua
 %%DATADIR%%/lua/spamtrap.lua
 %%DATADIR%%/lua/trie.lua
+%%DATADIR%%/lua/url_redirector.lua
 %%DATADIR%%/lua/url_reputation.lua
+%%DATADIR%%/lua/url_tags.lua
 %%DATADIR%%/lua/whitelist.lua
 %%DATADIR%%/rules/forwarding.lua
 %%DATADIR%%/rules/headers_checks.lua
@@ -163,16 +523,12 @@ lib/rspamd/librspamd-actrie.so
 %%DATADIR%%/www/js/lib/domReady.js
 %%DATADIR%%/www/js/lib/footable.min.js
 %%DATADIR%%/www/js/lib/humanize.min.js
-%%DATADIR%%/www/js/lib/jquery-3.1.1.min.js
+%%DATADIR%%/www/js/lib/jquery-3.2.1.min.js
 %%DATADIR%%/www/js/lib/visibility.min.js
 %%DATADIR%%/www/js/main.js
 %%DATADIR%%/www/js/require.js
 %%DATADIR%%/www/plugins.txt
 %%DATADIR%%/www/react-index.html
-man/man1/rspamadm.1.gz
-man/man1/rspamc.1.gz
-man/man8/rspamd.8.gz
-@dir %%EXAMPLESDIR%%
 @owner nobody
 @group nobody
 @dir /var/db/rspamd



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201803161853.w2GIrimB077531>