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>
This commit is contained in:
Vsevolod Stakhov 2018-03-16 18:53:44 +00:00
parent ad89c8afc3
commit 975a553380
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=464724
5 changed files with 516 additions and 179 deletions

View file

@ -1,8 +1,7 @@
# $FreeBSD$
PORTNAME= rspamd
PORTVERSION= 1.6.6
PORTREVISION= 1
PORTVERSION= 1.7.0
CATEGORIES= mail
MAINTAINER= vsevolod@FreeBSD.org
@ -20,15 +19,18 @@ 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)
USE_RC_SUBR= rspamd
TORCH_DESC= Machine learning support using torch
TORCH_BLAS_DESC= Build torch with OpenBLAS
TORCH_BLAS_IMPLIES= TORCH
SUB_FILES= pkg-message rspamd.newsyslog.conf.sample
PLIST_SUB+= ETCDIR=etc/rspamd \
@ -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>

View file

@ -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

View file

@ -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)

View file

@ -1,113 +0,0 @@
--- src/libserver/milter.c.orig 2017-10-22 16:16:54 UTC
+++ src/libserver/milter.c
@@ -99,6 +99,8 @@ rspamd_milter_session_reset (struct rspa
guint i;
if (how & RSPAMD_MILTER_RESET_IO) {
+ msg_debug_milter ("cleanup IO on abort");
+
DL_FOREACH_SAFE (priv->out_chain, obuf, obuf_tmp) {
rspamd_milter_obuf_free (obuf);
}
@@ -111,8 +113,11 @@ rspamd_milter_session_reset (struct rspa
}
if (how & RSPAMD_MILTER_RESET_COMMON) {
+ msg_debug_milter ("cleanup common data on abort");
+
if (session->message) {
session->message->len = 0;
+ msg_debug_milter ("cleanup message on abort");
}
if (session->rcpts) {
@@ -120,30 +125,38 @@ rspamd_milter_session_reset (struct rspa
rspamd_email_address_unref (cur);
}
+ msg_debug_milter ("cleanup %d recipients on abort",
+ (gint)session->rcpts->len);
+
g_ptr_array_free (session->rcpts, TRUE);
session->rcpts = NULL;
}
if (session->from) {
+ msg_debug_milter ("cleanup from");
rspamd_email_address_unref (session->from);
session->from = NULL;
}
if (session->helo) {
+ msg_debug_milter ("cleanup helo");
session->helo->len = 0;
}
if (session->hostname) {
+ msg_debug_milter ("cleanup hostname");
session->hostname->len = 0;
}
if (priv->headers) {
+ msg_debug_milter ("cleanup headers");
g_hash_table_remove_all (priv->headers);
}
}
if (how & RSPAMD_MILTER_RESET_ADDR) {
if (session->addr) {
+ msg_debug_milter ("cleanup addr");
rspamd_inet_address_free (session->addr);
session->addr = NULL;
}
@@ -151,6 +164,7 @@ rspamd_milter_session_reset (struct rspa
if (how & RSPAMD_MILTER_RESET_MACRO) {
if (session->macros) {
+ msg_debug_milter ("cleanup macros");
g_hash_table_unref (session->macros);
session->macros = NULL;
}
@@ -1545,7 +1559,7 @@ rspamd_milter_send_task_results (struct
msg_err_milter ("cannot find scan results, tempfail");
rspamd_milter_send_action (session, RSPAMD_MILTER_TEMPFAIL);
- return;
+ goto cleanup;
}
elt = ucl_object_lookup (results, "action");
@@ -1554,7 +1568,7 @@ rspamd_milter_send_task_results (struct
msg_err_milter ("cannot find action in results, tempfail");
rspamd_milter_send_action (session, RSPAMD_MILTER_TEMPFAIL);
- return;
+ goto cleanup;
}
rspamd_action_from_str (ucl_object_tostring (elt), &action);
@@ -1614,7 +1628,6 @@ rspamd_milter_send_task_results (struct
}
rspamd_milter_set_reply (session, rcode, xcode, reply);
- rspamd_milter_send_action (session, RSPAMD_MILTER_REJECT);
}
break;
case METRIC_ACTION_SOFT_REJECT:
@@ -1629,7 +1642,6 @@ rspamd_milter_send_task_results (struct
}
rspamd_milter_set_reply (session, rcode, xcode, reply);
- rspamd_milter_send_action (session, RSPAMD_MILTER_REJECT);
break;
case METRIC_ACTION_REWRITE_SUBJECT:
@@ -1674,6 +1686,8 @@ cleanup:
rspamd_fstring_free (rcode);
rspamd_fstring_free (xcode);
rspamd_fstring_free (reply);
+
+ rspamd_milter_session_reset (session, RSPAMD_MILTER_RESET_ABORT);
}
void

View file

@ -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