* 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.
* 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.
[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
[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).
[Minor] Debian: Enable Hyperscan and parallel builds
Debian 9 (Stretch) ships with Hyperscan 4.4.1, Ubuntu 18.04 ships with
Hyperscan 4.7.0. Follow rspamd's official recommendation and enable
support for these.
The --parallel option has been supported since 2009 and works perfectly
with CMake, so enable it by default.
- Move it from debian/ and centos/
- Ensure Debian package installs .service/.socket
- Enable socket-activated service
- Clean up redundant CentOS config files