* [Conf] SPF is no longer a C module
* [Conf] Update spamtrap map path example
* [CritFix] Fix html entities decoding
* [CritFix] Fix re cache when mix of pcre and hyperscan is used
* [Feature] Allow milter code to deal with multiple headers
* [Feature] Antivirus: Add avast support
* [Feature] Dkim_signing: Allow to sign via milter_headers
* [Feature] Implement content hashes
* [Feature] Lua_text: Add regexp split iterator method
* [Feature] Lua_text: Implement flattening of the input tables
* [Feature] Send quit command to Redis
* [Feature] Speed up is_ascii function
* [Feature] Spf: Add external_relay option
* [Fix] Avoid double escaping
* [Fix] Fix O(N^2) algorithm
* [Fix] Fix arc seal validation
* [Fix] Fix base tag processing according to stupid HTML renderer behaviour
* [Fix] Fix dealing with `\0` in ucl strings and JSON
* [Fix] Fix gpg parts misdetection
* [Fix] Fix ignored symbols exporting
* [Fix] Fix processing of numeric url's
* [Fix] Fix processing of the closed tcp connections
* [Fix] Fix regexp type check for pcre2
* [Fix] Fix urls encode function
* [Fix] Fix urls shifting when doing decode to include separators
* [Fix] Fix white on white rule and add is_leaf flag
* [Fix] Further fixes in charset detection
* [Fix] Ignore diacritics in chartable module for specific languages
* [Fix] Limit size of symbols options by max_opts_len option
* [Fix] More fixes in html tag content calculations
* [Fix] Plug memory leak in fuzzy storage
* [Fix] Process high priority settings even if settings/id has been specified
* [Fix] Select a different upstream on last retransmit
* [Fix] Treat soft hyphen as zero width space
* [Fix] Try harder to watch the lifetime of the key_stat
* [Fix] Use ipv6-mapped-ipv4 addresses in radix trie
* [Project] Add logic to break execution when processing symbols*
* [Project] Add methods to set specific content for mime parts from Lua
* [Project] Lua_content: support PDF files
* [Project] Move dns_tool to using of the rspamd_spf from FFI module
* [Project] Preliminary SPF plugin in Lua
* [Project] Show debug stat for memory pool
* [Project] Some rework about specific data that is now tagged
* [Project] Start reworking of the mempool structure
* [Rework] Allow to add userdata as symbols options
* [Rework] Change mime part specifics handling
* [Rework] Move LRU SPF cache from spf plugin
* [Rework] Rework HTML tags content attachment
* [Rework] Rework options hash structure
* [Rework] Start lua_content library
* [Rework] Stop using of uthash for http headers
* [Rework] Use faster hashing approach for memory pools variables
* [Rules] Add PDF related rules
moisseev [Sun, 2 Feb 2020 10:51:20 +0000 (13:51 +0300)]
[WebUI] Update D3Evolution to 1.2.0
+ Add cursor
The cursor location follows the mouse pointer movements when it hovers over the graph
and updates the coordinates of the cursor's cross-points in the graph legend.
Peter Wu [Tue, 21 Jan 2020 04:13:16 +0000 (04:13 +0000)]
[Minor] CMake: Add ENABLE_LTO option
* The `CMAKE_BUILD_TYPE=None` option is commonly used to respect the
user's optimization flags. Users may be interested in enabling LTO
anyway in that case. Implement this the Debian build.
* Remove typo, the value is called RelWithDebInfo. Enable LTO for this
by default.
Peter Wu [Tue, 21 Jan 2020 03:54:27 +0000 (03:54 +0000)]
[Minor] Debian: set BUILD_WITH_INSTALL_RPATH=ON
* Use the install RPATH to avoid relinking at install time.
* This additionally ensures reproducible builds invariant of the build
directory since build paths such as `X/src:X/contrib/replxx:...` are
no longer embedded in the binary.
* This assumes that binaries are not ran at build time. If this is
needed, CMAKE_BUILD_RPATH_USE_ORIGIN=ON can be used instead (requires
CMake 3.14). For older CMake, try setting LD_LIBRARY_PATH.
Peter Wu [Tue, 21 Jan 2020 02:53:24 +0000 (02:53 +0000)]
[Minor] Make ragel-generated files independent of the parent directory
* Use relative paths for `#line` directives to allow reproducible builds
independent of the absolute build directory. For /b/rspamd/src/x.rl
and build dir /b/build, it could result in `../../build/src/x.rl`.
* The `-L` option for `Inhibit writing #line directives` is useless, it
just comments out the line with `/* ... */`, but that means that the
source file is still different.
* Note that ragel only accepts one input file, despite plural `INPUTS`.
Peter Wu [Tue, 21 Jan 2020 02:21:31 +0000 (02:21 +0000)]
[Minor] test: remove hard-coded build directory
* Reproducible build: avoid defining the BUILDROOT macro and avoid
embedding the build directory in the test image. Instead rely on the
test files being present next to the executable.
* I considered using g_test_build_filename, available since GLib 2.38
(available on all supported platforms, RHEL 7, Debian, Ubuntu, etc.),
but decided against it because it would require setting the
G_TEST_SRCDIR or G_TEST_BUILDDIR environment variables. Therefore this
patch simply parses argv0 directly.
Peter Wu [Tue, 21 Jan 2020 01:05:49 +0000 (01:05 +0000)]
[Minor] contrib/snowball: fix modules.h location
* Reproducible builds! No more absolute paths in source files, so the
generated binary is also invariant of the build directory.
* Output modules.h in snowball/libstemmer/ instead of snowball/. This
allows removal of the extra include directory and -f option.
* This partially reverts some changes in
https://github.com/snowballstem/snowball/commit/d178f201fda878c26538401650a7d46c37a5e6f1
and matches the commands in GNUmakefile.
Peter Wu [Mon, 20 Jan 2020 22:32:15 +0000 (22:32 +0000)]
[Minor] Debian: set fixfilepath reproducible build option
* Enable -ffile-prefix-map to ensure that assert statements in
contrib/libev/ev.c and other places do not store the full file path.
This ensures reproducible builds, invariant of the build directory.
Supported since dpkg 1.19.1, including Debian buster and Ubuntu 19.04.
* Enable all hardening features while at it, this adds bindnow only. See
https://manpages.debian.org/buster/dpkg-dev/dpkg-buildflags.1.en.html
Peter Wu [Mon, 20 Jan 2020 20:43:13 +0000 (20:43 +0000)]
[Minor] Debian: update arches and versions in build dependencies
* glib 2.28 is the current minimum declared in CMakeLists.txt, but even
Jessie satisfies that requirement. Remove it.
* Use DEB_HOST_ARCH for "The Debian architecture of the host machine"
instead of DEB_TARGET_ARCH which is relevant for cross-compiling only.
* Update luajit arches based on https://packages.debian.org/sid/luajit
* Added arm64, mips64el, ppc64, ppc64el (stretch-backports / buster).
* Removed kfreebsd-i386 and 32-bit powerpc (removed in Jessie).
* Removed powerpcspe (unofficial port with outdated luajit).
* Maintained mips (removed after buster).