diff options
author | Marek Szuba <marecki@gentoo.org> | 2020-12-09 23:48:46 +0100 |
---|---|---|
committer | Marek Szuba <marecki@gentoo.org> | 2020-12-09 23:57:13 +0100 |
commit | 988d8128f29202023006ed0b299cbe6daefbebf9 (patch) | |
tree | 58d08dde1dd300183a291841b83a9d83cb3f87cd /mail-filter/rspamd | |
parent | mail-filter/rspamd: limit unmigrated ebuilds to dev-lang/lua:0 (diff) | |
download | gentoo-988d8128f29202023006ed0b299cbe6daefbebf9.tar.gz gentoo-988d8128f29202023006ed0b299cbe6daefbebf9.tar.bz2 gentoo-988d8128f29202023006ed0b299cbe6daefbebf9.zip |
mail-filter/rspamd: migrate to lua-single.eclass
Latest release and the live ebuild. Support lua5-{1..3} and luajit, as
per upstream build scripts. Speaking of which, although the upstream
logic for finding is the same as in FindLua.cmake (i.e. 5.3, 5.2, 5.1,
stopping on the first one found) they use a different module which does
support pkgconfig - so although a patch is still necessary, all it does
is point cmake to the pkgconfig wrapper set up by lua-single.
Closes: https://bugs.gentoo.org/752957
Signed-off-by: Marek Szuba <marecki@gentoo.org>
Diffstat (limited to 'mail-filter/rspamd')
-rw-r--r-- | mail-filter/rspamd/files/rspamd-2.6-cmake-lua-version.patch | 44 | ||||
-rw-r--r-- | mail-filter/rspamd/rspamd-2.6-r100.ebuild | 117 | ||||
-rw-r--r-- | mail-filter/rspamd/rspamd-9999.ebuild | 24 |
3 files changed, 174 insertions, 11 deletions
diff --git a/mail-filter/rspamd/files/rspamd-2.6-cmake-lua-version.patch b/mail-filter/rspamd/files/rspamd-2.6-cmake-lua-version.patch new file mode 100644 index 000000000000..141b13dfa8af --- /dev/null +++ b/mail-filter/rspamd/files/rspamd-2.6-cmake-lua-version.patch @@ -0,0 +1,44 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -139,40 +139,8 @@ + ELSE(ENABLE_LUAJIT MATCHES "ON") + + ProcessPackage(LIBLUA LIBRARY "lua" +- "lua-5.3" +- INCLUDE lua.h INCLUDE_SUFFIXES +- "include/lua-5.3" +- "include/lua5.3" +- "include/lua53" +- "include/lua" + ROOT ${LUA_ROOT} +- MODULES lua53 +- OPTIONAL) +- +- IF (NOT WITH_LIBLUA) +- ProcessPackage(LIBLUA LIBRARY "lua" +- "lua-5.2" +- INCLUDE lua.h INCLUDE_SUFFIXES +- "include/lua-5.2" +- "include/lua5.2" +- "include/lua52" +- "include/lua" +- ROOT ${LUA_ROOT} +- MODULES lua52 +- OPTIONAL) +- +- IF (NOT WITH_LIBLUA) +- ProcessPackage(LIBLUA LIBRARY "lua" +- "lua-5.1" +- INCLUDE lua.h INCLUDE_SUFFIXES +- "include/lua-5.1" +- "include/lua5.1" +- "include/lua51" +- "include/lua" +- ROOT ${LUA_ROOT} +- MODULES lua51) +- ENDIF() +- ENDIF() ++ MODULES lua) + ENDIF(ENABLE_LUAJIT MATCHES "ON") + + IF(ENABLE_JEMALLOC MATCHES "ON" AND NOT SANITIZE) diff --git a/mail-filter/rspamd/rspamd-2.6-r100.ebuild b/mail-filter/rspamd/rspamd-2.6-r100.ebuild new file mode 100644 index 000000000000..e8100951ee1d --- /dev/null +++ b/mail-filter/rspamd/rspamd-2.6-r100.ebuild @@ -0,0 +1,117 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +LUA_COMPAT=( lua5-{1..3} luajit ) + +inherit cmake lua-single pax-utils systemd tmpfiles + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://github.com/rspamd/rspamd.git" + inherit git-r3 +else + SRC_URI="https://github.com/rspamd/rspamd/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +DESCRIPTION="Rapid spam filtering system" +HOMEPAGE="https://rspamd.com https://github.com/rspamd/rspamd" +LICENSE="Apache-2.0 Boost-1.0 BSD BSD-1 BSD-2 CC0-1.0 LGPL-3 MIT public-domain unicode ZLIB" +SLOT="0" +IUSE="blas cpu_flags_x86_ssse3 jemalloc +jit libressl pcre2" + +REQUIRED_USE="${LUA_REQUIRED_USE} + jit? ( lua_single_target_luajit )" + +RDEPEND="${LUA_DEPS} + $(lua_gen_cond_dep ' + dev-lua/LuaBitOp[${LUA_USEDEP}] + ' lua5-{1,2}) + acct-group/rspamd + acct-user/rspamd + app-arch/zstd + dev-db/sqlite:3 + dev-libs/glib:2 + dev-libs/icu:= + dev-libs/libev + dev-libs/libsodium + dev-libs/snowball-stemmer + net-libs/libnsl + sys-apps/file + blas? ( + virtual/blas + virtual/lapack + ) + cpu_flags_x86_ssse3? ( dev-libs/hyperscan ) + jemalloc? ( dev-libs/jemalloc ) + !libressl? ( dev-libs/openssl:0=[-bindist] ) + libressl? ( dev-libs/libressl:0= ) + pcre2? ( dev-libs/libpcre2[jit=] ) + !pcre2? ( dev-libs/libpcre[jit=] )" +DEPEND="${RDEPEND}" +BDEPEND=" + dev-util/ragel + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}/rspamd-2.6-cmake-lua-version.patch" + "${FILESDIR}/rspamd-2.6-unbundle-lua.patch" + "${FILESDIR}/rspamd-2.6-unbundle-zstd.patch" + "${FILESDIR}/rspamd-2.5-unbundle-snowball.patch" +) + +src_prepare() { + cmake_src_prepare + + rm -vrf contrib/{lua-bit,snowball,zstd} || die + + sed -i -e 's/User=_rspamd/User=rspamd/g' \ + rspamd.service \ + || die +} + +src_configure() { + local mycmakeargs=( + -DCONFDIR=/etc/rspamd + -DRUNDIR=/var/run/rspamd + -DDBDIR=/var/lib/rspamd + -DLOGDIR=/var/log/rspamd + -DENABLE_BLAS=$(usex blas ON OFF) + -DENABLE_HYPERSCAN=$(usex cpu_flags_x86_ssse3 ON OFF) + -DENABLE_JEMALLOC=$(usex jemalloc ON OFF) + -DENABLE_LUAJIT=$(usex lua_single_target_luajit ON OFF) + -DENABLE_PCRE2=$(usex pcre2 ON OFF) + ) + cmake_src_configure +} + +src_test() { + cmake_src_test +} + +src_install() { + cmake_src_install + + newconfd "${FILESDIR}"/rspamd.conf rspamd + newinitd "${FILESDIR}/rspamd-r7.init" rspamd + systemd_newunit rspamd.service rspamd.service + + newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf + + # Remove mprotect for JIT support + if use lua_single_target_luajit; then + pax-mark m "${ED}"/usr/bin/rspamd-* "${ED}"/usr/bin/rspamadm-* + fi + + insinto /etc/logrotate.d + newins "${FILESDIR}"/rspamd-r1.logrotate rspamd + + diropts -o rspamd -g rspamd + keepdir /var/{lib,log}/rspamd +} + +pkg_postinst() { + tmpfiles_process "${PN}.conf" +} diff --git a/mail-filter/rspamd/rspamd-9999.ebuild b/mail-filter/rspamd/rspamd-9999.ebuild index e51965b8983e..8f97da55c2b1 100644 --- a/mail-filter/rspamd/rspamd-9999.ebuild +++ b/mail-filter/rspamd/rspamd-9999.ebuild @@ -3,7 +3,9 @@ EAPI=7 -inherit cmake pax-utils systemd tmpfiles +LUA_COMPAT=( lua5-{1..3} luajit ) + +inherit cmake lua-single pax-utils systemd tmpfiles if [[ ${PV} == *9999 ]] ; then EGIT_REPO_URI="https://github.com/rspamd/rspamd.git" @@ -19,7 +21,13 @@ LICENSE="Apache-2.0 Boost-1.0 BSD BSD-1 BSD-2 CC0-1.0 LGPL-3 MIT public-domain u SLOT="0" IUSE="blas cpu_flags_x86_ssse3 jemalloc +jit libressl pcre2" -RDEPEND=" +REQUIRED_USE="${LUA_REQUIRED_USE} + jit? ( lua_single_target_luajit )" + +RDEPEND="${LUA_DEPS} + $(lua_gen_cond_dep ' + dev-lua/LuaBitOp[${LUA_USEDEP}] + ' lua5-{1,2}) acct-group/rspamd acct-user/rspamd app-arch/zstd @@ -37,13 +45,6 @@ RDEPEND=" ) cpu_flags_x86_ssse3? ( dev-libs/hyperscan ) jemalloc? ( dev-libs/jemalloc ) - jit? ( - dev-lang/luajit:2 - ) - !jit? ( - dev-lang/lua:* - dev-lua/LuaBitOp - ) !libressl? ( dev-libs/openssl:0=[-bindist] ) libressl? ( dev-libs/libressl:0= ) pcre2? ( dev-libs/libpcre2[jit=] ) @@ -55,6 +56,7 @@ BDEPEND=" " PATCHES=( + "${FILESDIR}/rspamd-2.6-cmake-lua-version.patch" "${FILESDIR}/rspamd-2.6-unbundle-lua.patch" "${FILESDIR}/rspamd-9999-unbundle-zstd.patch" "${FILESDIR}/rspamd-2.5-unbundle-snowball.patch" @@ -79,7 +81,7 @@ src_configure() { -DENABLE_BLAS=$(usex blas ON OFF) -DENABLE_HYPERSCAN=$(usex cpu_flags_x86_ssse3 ON OFF) -DENABLE_JEMALLOC=$(usex jemalloc ON OFF) - -DENABLE_LUAJIT=$(usex jit ON OFF) + -DENABLE_LUAJIT=$(usex lua_single_target_luajit ON OFF) -DENABLE_PCRE2=$(usex pcre2 ON OFF) ) cmake_src_configure @@ -99,7 +101,7 @@ src_install() { newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf # Remove mprotect for JIT support - if use jit; then + if use lua_single_target_luajit; then pax-mark m "${ED}"/usr/bin/rspamd-* "${ED}"/usr/bin/rspamadm-* fi |