Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: mail-filter/rspamd/
Date: Sun, 19 Mar 2023 21:21:07
Message-Id: 1679260851.fc55387362b98251f1b04a8253439fe6653bb86d.sam@gentoo
1 commit: fc55387362b98251f1b04a8253439fe6653bb86d
2 Author: Petr Vaněk <arkamar <AT> atlas <DOT> cz>
3 AuthorDate: Sun Mar 19 17:16:26 2023 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Sun Mar 19 21:20:51 2023 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fc553873
7
8 mail-filter/rspamd: add 3.5
9
10 Closes: https://bugs.gentoo.org/902137
11 Signed-off-by: Petr Vaněk <arkamar <AT> atlas.cz>
12 Signed-off-by: Sam James <sam <AT> gentoo.org>
13
14 mail-filter/rspamd/Manifest | 1 +
15 mail-filter/rspamd/rspamd-3.5.ebuild | 149 +++++++++++++++++++++++++++++++++++
16 2 files changed, 150 insertions(+)
17
18 diff --git a/mail-filter/rspamd/Manifest b/mail-filter/rspamd/Manifest
19 index d10d234b142a..bcee383412e4 100644
20 --- a/mail-filter/rspamd/Manifest
21 +++ b/mail-filter/rspamd/Manifest
22 @@ -1 +1,2 @@
23 DIST rspamd-3.4.tar.gz 5689732 BLAKE2B 8d1b98205f51cfe834db3ed53b8be72ada834980380cba06c4470689d16ef4a6396190ae27044ae76a7b35df6afd3cdf551f9469d878ac69ec61ef6b86b46104 SHA512 fec8cb7b845bf25d02f1c32c82bf35ad9c65f3301a73f3ea611b6fcfa0ac1b75f75561c4c42f142f876ac3a78f96fd91d22d30c5b3600e4001e25f06bc693ccf
24 +DIST rspamd-3.5.tar.gz 5806722 BLAKE2B 547cd9bb26942dc584d1f4b164e61bdb15505a56399fa19b358b7d7525ee983acc8d5ae1fdb3de340e3461a03aedbb48266fd81404c1f4a2e8fc5bd6735d9a62 SHA512 39c87d5dfd9ae1fc7709e19967eac5e7c7dc83fa070dfebbb7ab5411d7d50d6e6f10248ada717cf1cb3f6ff6c5bfb4d31fd87e1a7e1b2e5f876f6be7b5705623
25
26 diff --git a/mail-filter/rspamd/rspamd-3.5.ebuild b/mail-filter/rspamd/rspamd-3.5.ebuild
27 new file mode 100644
28 index 000000000000..bf4fc1bf5f86
29 --- /dev/null
30 +++ b/mail-filter/rspamd/rspamd-3.5.ebuild
31 @@ -0,0 +1,149 @@
32 +# Copyright 1999-2023 Gentoo Authors
33 +# Distributed under the terms of the GNU General Public License v2
34 +
35 +EAPI=8
36 +
37 +LUA_COMPAT=( lua5-{1..4} luajit )
38 +
39 +inherit cmake lua-single pax-utils systemd tmpfiles
40 +
41 +if [[ ${PV} == *9999 ]] ; then
42 + EGIT_REPO_URI="https://github.com/rspamd/rspamd.git"
43 + inherit git-r3
44 +else
45 + SRC_URI="https://github.com/rspamd/rspamd/archive/${PV}.tar.gz -> ${P}.tar.gz"
46 + KEYWORDS="~amd64 ~x86"
47 +fi
48 +
49 +DESCRIPTION="Rapid spam filtering system"
50 +HOMEPAGE="
51 + https://rspamd.com
52 + https://github.com/rspamd/rspamd
53 +"
54 +
55 +LICENSE="Apache-2.0 Boost-1.0 BSD BSD-1 BSD-2 CC0-1.0 LGPL-3 MIT public-domain unicode ZLIB"
56 +SLOT="0"
57 +IUSE="blas cpu_flags_x86_ssse3 jemalloc +jit selinux test"
58 +RESTRICT="!test? ( test )"
59 +
60 +# A part of tests use ffi luajit extension
61 +REQUIRED_USE="${LUA_REQUIRED_USE}
62 + test? ( lua_single_target_luajit )"
63 +
64 +RDEPEND="${LUA_DEPS}
65 + $(lua_gen_cond_dep '
66 + dev-lua/LuaBitOp[${LUA_USEDEP}]
67 + dev-lua/lua-argparse[${LUA_USEDEP}]
68 + ')
69 + acct-group/rspamd
70 + acct-user/rspamd
71 + app-arch/zstd:=
72 + dev-db/sqlite:3
73 + dev-libs/glib:2
74 + dev-libs/icu:=
75 + dev-libs/libev
76 + dev-libs/libfmt:=
77 + dev-libs/libpcre2:=[jit=]
78 + dev-libs/libsodium:=
79 + dev-libs/openssl:0=[-bindist(-)]
80 + dev-libs/snowball-stemmer:=
81 + >=dev-libs/xxhash-0.8.0
82 + sys-apps/file
83 + sys-libs/zlib
84 + blas? (
85 + virtual/blas
86 + virtual/lapack
87 + )
88 + cpu_flags_x86_ssse3? ( dev-libs/hyperscan )
89 + jemalloc? ( dev-libs/jemalloc:= )
90 + selinux? ( sec-policy/selinux-spamassassin )
91 +"
92 +DEPEND="${RDEPEND}
93 + dev-cpp/doctest
94 +"
95 +BDEPEND="
96 + dev-lang/perl
97 + dev-util/ragel
98 + virtual/pkgconfig
99 +"
100 +
101 +PATCHES=(
102 + "${FILESDIR}/rspamd-3.0-cmake-lua-version.patch"
103 + "${FILESDIR}/rspamd-3.2-unbundle-lua.patch"
104 + "${FILESDIR}/rspamd-2.5-unbundle-snowball.patch"
105 +)
106 +
107 +src_prepare() {
108 + cmake_src_prepare
109 +
110 + rm -vrf contrib/{doctest,fmt,lua-{argparse,bit},snowball,xxhash,zstd} || die
111 +
112 + > cmake/Toolset.cmake || die #827550
113 +
114 + sed -i -e 's/User=_rspamd/User=rspamd/g' \
115 + rspamd.service \
116 + || die
117 +}
118 +
119 +src_configure() {
120 + local mycmakeargs=(
121 + -DCONFDIR=/etc/rspamd
122 + -DRUNDIR=/var/run/rspamd
123 + -DDBDIR=/var/lib/rspamd
124 + -DLOGDIR=/var/log/rspamd
125 + -DLIBDIR="/usr/$(get_libdir)/rspamd"
126 +
127 + -DSYSTEM_DOCTEST=ON
128 + -DSYSTEM_FMT=ON
129 + -DSYSTEM_XXHASH=ON
130 + -DSYSTEM_ZSTD=ON
131 +
132 + -DENABLE_BLAS=$(usex blas ON OFF)
133 + -DENABLE_HYPERSCAN=$(usex cpu_flags_x86_ssse3 ON OFF)
134 + -DENABLE_JEMALLOC=$(usex jemalloc ON OFF)
135 + -DENABLE_LUAJIT=$(usex lua_single_target_luajit ON OFF)
136 + -DENABLE_PCRE2=ON
137 + )
138 + cmake_src_configure
139 +}
140 +
141 +src_test() {
142 + cmake_build run-test
143 +}
144 +
145 +src_install() {
146 + cmake_src_install
147 +
148 + newconfd "${FILESDIR}"/rspamd.conf rspamd
149 + newinitd "${FILESDIR}/rspamd-r7.init" rspamd
150 + systemd_newunit rspamd.service rspamd.service
151 +
152 + newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf
153 +
154 + # Remove mprotect for JIT support
155 + if use lua_single_target_luajit; then
156 + pax-mark m "${ED}"/usr/bin/rspamd-* "${ED}"/usr/bin/rspamadm-*
157 + fi
158 +
159 + insinto /etc/logrotate.d
160 + newins "${FILESDIR}"/rspamd-r1.logrotate rspamd
161 +
162 + diropts -o rspamd -g rspamd
163 + keepdir /var/{lib,log}/rspamd
164 +}
165 +
166 +pkg_postinst() {
167 + tmpfiles_process "${PN}.conf"
168 +
169 + for ver in ${REPLACING_VERSIONS}; do
170 + if ver_test "${ver}" -eq "3.4"; then
171 + elog "rspamd-3.4 is known to segfault when it is updated from older version due"
172 + elog "to a page-alignment of hyperscan .unser files. The issue was patched in"
173 + elog "rspamd-3.4-r1 ebuild revision. All possibly broken .unser files will be"
174 + elog "automaticaly removed. See https://github.com/rspamd/rspamd/issues/4329 for"
175 + elog "more information."
176 +
177 + find "${EROOT}/var/lib/rspamd" -type f -name '*.unser' -delete
178 + fi
179 + done
180 +}