7350dd9d94
When compiled with LuaJIT support, rspamd segfaults on aarch64. Without LuaJIT, rspamd falls back to plain Lua and torch support needs to be disabled.
54 lines
1.6 KiB
Nix
54 lines
1.6 KiB
Nix
{ stdenv, lib, fetchFromGitHub, cmake, perl
|
|
, file, glib, libevent, luajit, openssl, pcre, pkgconfig, sqlite, ragel, icu
|
|
, hyperscan, libfann, gd, jemalloc, openblas, lua
|
|
, withFann ? true
|
|
, withGd ? false
|
|
, withBlas ? true
|
|
, withHyperscan ? stdenv.isx86_64
|
|
, withLuaJIT ? stdenv.isx86_64
|
|
}:
|
|
|
|
assert withHyperscan -> stdenv.isx86_64;
|
|
|
|
let libmagic = file; # libmagic provided by file package ATM
|
|
in
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "rspamd";
|
|
version = "1.9.4";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "rspamd";
|
|
repo = "rspamd";
|
|
rev = version;
|
|
sha256 = "0b8n7xazmzjb6jf8sk0jg0x861nf1ayzxsvjaymw1qjgpn371r51";
|
|
};
|
|
|
|
nativeBuildInputs = [ cmake pkgconfig perl ];
|
|
buildInputs = [ glib libevent libmagic openssl pcre sqlite ragel icu jemalloc ]
|
|
++ lib.optional withFann libfann
|
|
++ lib.optional withGd gd
|
|
++ lib.optional withHyperscan hyperscan
|
|
++ lib.optional withBlas openblas
|
|
++ lib.optional withLuaJIT luajit ++ lib.optional (!withLuaJIT) lua;
|
|
|
|
cmakeFlags = [
|
|
"-DDEBIAN_BUILD=ON"
|
|
"-DRUNDIR=/run/rspamd"
|
|
"-DDBDIR=/var/lib/rspamd"
|
|
"-DLOGDIR=/var/log/rspamd"
|
|
"-DLOCAL_CONFDIR=/etc/rspamd"
|
|
"-DENABLE_JEMALLOC=ON"
|
|
] ++ lib.optional withFann "-DENABLE_FANN=ON"
|
|
++ lib.optional withHyperscan "-DENABLE_HYPERSCAN=ON"
|
|
++ lib.optional withGd "-DENABLE_GD=ON"
|
|
++ lib.optional (!withLuaJIT) "-DENABLE_TORCH=OFF";
|
|
|
|
meta = with stdenv.lib; {
|
|
homepage = "https://rspamd.com";
|
|
license = licenses.asl20;
|
|
description = "Advanced spam filtering system";
|
|
maintainers = with maintainers; [ avnik fpletz globin ];
|
|
platforms = with platforms; linux;
|
|
};
|
|
}
|