From b097209aecec050012ffa8b6f80f5e4d56308abd Mon Sep 17 00:00:00 2001 From: Petr Vaněk Date: Mon, 6 Sep 2021 08:15:55 +0200 Subject: mail-filter/rspamd: use system dev-cpp/doctest MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This backports patch already merged to upstream, which allows us to use system dev-cpp/doctest library rather than bundled one. Rspamd bundles doctest-2.4.5 which fails to build with glibc-2.34. Closes: https://bugs.gentoo.org/811318 Signed-off-by: Petr Vaněk Signed-off-by: Sam James --- .../rspamd/files/rspamd-3.0-system-doctest.patch | 72 ++++++++++++ mail-filter/rspamd/rspamd-3.0-r2.ebuild | 124 -------------------- mail-filter/rspamd/rspamd-3.0-r3.ebuild | 127 +++++++++++++++++++++ 3 files changed, 199 insertions(+), 124 deletions(-) create mode 100644 mail-filter/rspamd/files/rspamd-3.0-system-doctest.patch delete mode 100644 mail-filter/rspamd/rspamd-3.0-r2.ebuild create mode 100644 mail-filter/rspamd/rspamd-3.0-r3.ebuild (limited to 'mail-filter') diff --git a/mail-filter/rspamd/files/rspamd-3.0-system-doctest.patch b/mail-filter/rspamd/files/rspamd-3.0-system-doctest.patch new file mode 100644 index 000000000000..bb315ee7a459 --- /dev/null +++ b/mail-filter/rspamd/files/rspamd-3.0-system-doctest.patch @@ -0,0 +1,72 @@ +From d37a3764e9889e6de0a7341ba3195ee8a314de23 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20Van=C4=9Bk?= +Date: Wed, 1 Sep 2021 13:30:56 +0200 +Subject: [PATCH] Add SYSTEM_DOCTEST cmake option + +This gives packagers option to use system version of doctest rather than +bundled one. It is disabled by default. Additionally, there is no need +to link rspamd-test-cxx with doctest as it is is single header library. + +Main reason for this change is that currently bundled version of +doctest-2.4.5 can't compile with glibc-2.34 [1]. However, this issue was +already fixed in upstream doctest-2.4.6 [2] in commit [3]. With this, +packagers can just bump doctest to fixed version. + +[1] https://github.com/onqtam/doctest/issues/473 +[2] https://github.com/onqtam/doctest/blob/master/CHANGELOG.md#246-2021-03-22 +[3] https://github.com/onqtam/doctest/commit/099d5414e97244ec44cf46b14cd176b3a3dc52e3 +--- + +Merged-to-upstream: https://github.com/rspamd/rspamd/pull/3875 + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index fc4175677..ced49730d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -59,6 +59,7 @@ OPTION(ENABLE_LUA_TRACE "Trace all Lua C API invocations [default: OFF]" OFF) + OPTION(ENABLE_LUA_REPL "Enables Lua repl (requires C++11 compiler) [default: ON]" ON) + OPTION(SYSTEM_ZSTD "Use system zstd instead of bundled one [default: OFF]" OFF) + OPTION(SYSTEM_FMT "Use system fmt instead of bundled one [defalut: OFF]" OFF) ++OPTION(SYSTEM_DOCTEST "Use system doctest instead of bundled one [default: OFF]" OFF) + + ############################# INCLUDE SECTION ############################################# + +@@ -118,7 +119,6 @@ INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/" + "${CMAKE_SOURCE_DIR}/contrib/lc-btrie" + "${CMAKE_SOURCE_DIR}/contrib/lua-lpeg" + "${CMAKE_SOURCE_DIR}/contrib/frozen/include" +- "${CMAKE_SOURCE_DIR}/contrib/doctest" + "${CMAKE_SOURCE_DIR}/contrib/fu2/include" + "${CMAKE_BINARY_DIR}/src" #Stored in the binary dir + "${CMAKE_BINARY_DIR}/src/libcryptobox") +@@ -656,7 +656,12 @@ IF(SYSTEM_FMT MATCHES "OFF") + ELSE() + find_package(fmt) + ENDIF() +-ADD_SUBDIRECTORY(contrib/doctest) ++IF(SYSTEM_DOCTEST MATCHES "OFF") ++ ADD_SUBDIRECTORY(contrib/doctest) ++ INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/contrib/doctest") ++ELSE() ++ find_package(doctest) ++ENDIF() + + IF (NOT WITH_LUAJIT) + ADD_SUBDIRECTORY(contrib/lua-bit) +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 9e56cbad7..08e9556f3 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -24,9 +24,7 @@ SET(CXXTESTSSRC rspamd_cxx_unit.cxx) + ADD_EXECUTABLE(rspamd-test-cxx EXCLUDE_FROM_ALL ${CXXTESTSSRC}) + SET_TARGET_PROPERTIES(rspamd-test-cxx PROPERTIES LINKER_LANGUAGE CXX) + ADD_DEPENDENCIES(rspamd-test-cxx rspamd-server) +-ADD_DEPENDENCIES(rspamd-test-cxx doctest) + TARGET_LINK_LIBRARIES(rspamd-test-cxx PRIVATE rspamd-server) +-TARGET_LINK_LIBRARIES(rspamd-test-cxx PRIVATE doctest) + SET_TARGET_PROPERTIES(rspamd-test-cxx PROPERTIES LINKER_LANGUAGE CXX) + + IF(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}") +-- +2.31.1 + diff --git a/mail-filter/rspamd/rspamd-3.0-r2.ebuild b/mail-filter/rspamd/rspamd-3.0-r2.ebuild deleted file mode 100644 index 30065ff095b5..000000000000 --- a/mail-filter/rspamd/rspamd-3.0-r2.ebuild +++ /dev/null @@ -1,124 +0,0 @@ -# Copyright 1999-2021 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 pcre2 test" -RESTRICT="!test? ( test )" - -# A part of tests use ffi luajit extension -REQUIRED_USE="${LUA_REQUIRED_USE} - jit? ( lua_single_target_luajit ) - test? ( lua_single_target_luajit )" - -RDEPEND="${LUA_DEPS} - $(lua_gen_cond_dep ' - dev-lua/LuaBitOp[${LUA_USEDEP}] - ') - 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/libfmt:= - dev-libs/libsodium:= - dev-libs/snowball-stemmer:= - sys-apps/file - blas? ( - virtual/blas - virtual/lapack - ) - cpu_flags_x86_ssse3? ( dev-libs/hyperscan ) - jemalloc? ( dev-libs/jemalloc:= ) - dev-libs/openssl:0=[-bindist(-)] - pcre2? ( dev-libs/libpcre2:=[jit=] ) - !pcre2? ( dev-libs/libpcre[jit=] )" -DEPEND="${RDEPEND}" -BDEPEND=" - dev-util/ragel - virtual/pkgconfig -" - -PATCHES=( - "${FILESDIR}/${P}-cmake-lua-version.patch" - "${FILESDIR}/${P}-system-libfmt.patch" - "${FILESDIR}/${P}-fix-null-dereference.patch" - "${FILESDIR}/${PN}-2.6-unbundle-lua.patch" - "${FILESDIR}/${PN}-2.5-unbundle-snowball.patch" -) - -src_prepare() { - cmake_src_prepare - - rm -vrf contrib/{fmt,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 - - -DSYSTEM_FMT=ON - -DSYSTEM_ZSTD=ON - - -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_build run-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-3.0-r3.ebuild b/mail-filter/rspamd/rspamd-3.0-r3.ebuild new file mode 100644 index 000000000000..1ff4af0796ec --- /dev/null +++ b/mail-filter/rspamd/rspamd-3.0-r3.ebuild @@ -0,0 +1,127 @@ +# Copyright 1999-2021 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 pcre2 test" +RESTRICT="!test? ( test )" + +# A part of tests use ffi luajit extension +REQUIRED_USE="${LUA_REQUIRED_USE} + jit? ( lua_single_target_luajit ) + test? ( lua_single_target_luajit )" + +RDEPEND="${LUA_DEPS} + $(lua_gen_cond_dep ' + dev-lua/LuaBitOp[${LUA_USEDEP}] + ') + acct-group/rspamd + acct-user/rspamd + app-arch/zstd:= + dev-db/sqlite:3 + dev-cpp/doctest + dev-libs/glib:2 + dev-libs/icu:= + dev-libs/libev + dev-libs/libfmt:= + dev-libs/libsodium:= + dev-libs/snowball-stemmer:= + sys-apps/file + blas? ( + virtual/blas + virtual/lapack + ) + cpu_flags_x86_ssse3? ( dev-libs/hyperscan ) + jemalloc? ( dev-libs/jemalloc:= ) + dev-libs/openssl:0=[-bindist(-)] + pcre2? ( dev-libs/libpcre2:=[jit=] ) + !pcre2? ( dev-libs/libpcre[jit=] )" +DEPEND="${RDEPEND}" +BDEPEND=" + dev-util/ragel + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}/${P}-cmake-lua-version.patch" + "${FILESDIR}/${P}-system-libfmt.patch" + "${FILESDIR}/${P}-system-doctest.patch" + "${FILESDIR}/${P}-fix-null-dereference.patch" + "${FILESDIR}/${PN}-2.6-unbundle-lua.patch" + "${FILESDIR}/${PN}-2.5-unbundle-snowball.patch" +) + +src_prepare() { + cmake_src_prepare + + rm -vrf contrib/{doctest,fmt,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 + + -DSYSTEM_DOCTEST=ON + -DSYSTEM_FMT=ON + -DSYSTEM_ZSTD=ON + + -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_build run-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" +} -- cgit v1.2.3-65-gdbad