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