git: 7a34813aa2b3 - main - mail/rspamd: Backport important fixes from the upstream
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 14 Nov 2022 21:18:24 UTC
The branch main has been updated by vsevolod: URL: https://cgit.FreeBSD.org/ports/commit/?id=7a34813aa2b37410eba1716a17198e7325292249 commit 7a34813aa2b37410eba1716a17198e7325292249 Author: Vsevolod Stakhov <vsevolod@FreeBSD.org> AuthorDate: 2022-11-14 21:17:10 +0000 Commit: Vsevolod Stakhov <vsevolod@FreeBSD.org> CommitDate: 2022-11-14 21:17:10 +0000 mail/rspamd: Backport important fixes from the upstream --- mail/rspamd/Makefile | 1 + .../files/patch-src_libserver_hyperscan_tools.cxx | 21 +++++++++++++++++++++ .../files/patch-src_libutil_cxx_file_util.cxx | 22 ++++++++++++++++++++++ mail/rspamd/files/pkg-message.in | 10 ++++++++++ 4 files changed, 54 insertions(+) diff --git a/mail/rspamd/Makefile b/mail/rspamd/Makefile index 2e86b69f48b9..a3810ab16f4e 100644 --- a/mail/rspamd/Makefile +++ b/mail/rspamd/Makefile @@ -1,5 +1,6 @@ PORTNAME= rspamd PORTVERSION= 3.4 +PORTREVISION= 1 CATEGORIES= mail MAINTAINER= vsevolod@FreeBSD.org diff --git a/mail/rspamd/files/patch-src_libserver_hyperscan_tools.cxx b/mail/rspamd/files/patch-src_libserver_hyperscan_tools.cxx new file mode 100644 index 000000000000..72eb1173ae88 --- /dev/null +++ b/mail/rspamd/files/patch-src_libserver_hyperscan_tools.cxx @@ -0,0 +1,21 @@ +diff --git a/src/libserver/hyperscan_tools.cxx b/src/libserver/hyperscan_tools.cxx +index 6187208a9..96366067d 100644 +--- src/libserver/hyperscan_tools.cxx ++++ src/libserver/hyperscan_tools.cxx +@@ -306,7 +306,15 @@ auto load_cached_hs_file(const char *fname, std::int64_t offset = 0) -> tl::expe + msg_debug_hyperscan_lambda("multipattern: create new database in %s; %Hz size", + tmpfile_pattern.data(), unserialized_size); + void *buf; +- posix_memalign(&buf, 16, unserialized_size); ++#ifdef HAVE_GETPAGESIZE ++ auto page_size = getpagesize(); ++#else ++ auto page_size = sysconf(_SC_PAGESIZE); ++#endif ++ if (page_size == -1) { ++ page_size = 4096; ++ } ++ posix_memalign(&buf, page_size, unserialized_size); + if (buf == nullptr) { + return tl::make_unexpected(error {"Cannot allocate memory", errno, error_category::CRITICAL }); + } diff --git a/mail/rspamd/files/patch-src_libutil_cxx_file_util.cxx b/mail/rspamd/files/patch-src_libutil_cxx_file_util.cxx new file mode 100644 index 000000000000..f7461da0c82b --- /dev/null +++ b/mail/rspamd/files/patch-src_libutil_cxx_file_util.cxx @@ -0,0 +1,22 @@ +diff --git a/src/libutil/cxx/file_util.cxx b/src/libutil/cxx/file_util.cxx +index e3b3a2605..4536fa97b 100644 +--- src/libutil/cxx/file_util.cxx ++++ src/libutil/cxx/file_util.cxx +@@ -198,7 +198,7 @@ auto raii_mmaped_file::mmap_shared(raii_file &&file, + } + /* Update stat on file to ensure it is up-to-date */ + file.update_stat(); +- map = mmap(nullptr, file.get_size() - offset, flags, MAP_SHARED, file.get_fd(), offset); ++ map = mmap(nullptr, (std::size_t)(file.get_size() - offset), flags, MAP_SHARED, file.get_fd(), offset); + + if (map == MAP_FAILED) { + return tl::make_unexpected(error { fmt::format("cannot mmap file {}: {}", +@@ -206,7 +206,7 @@ auto raii_mmaped_file::mmap_shared(raii_file &&file, + + } + +- return raii_mmaped_file{std::move(file), map, file.get_size() - offset}; ++ return raii_mmaped_file{std::move(file), map, (std::size_t)(file.get_size() - offset)}; + } + + auto raii_mmaped_file::mmap_shared(const char *fname, int open_flags, diff --git a/mail/rspamd/files/pkg-message.in b/mail/rspamd/files/pkg-message.in index 927f2a5b46ac..52b6ff711785 100644 --- a/mail/rspamd/files/pkg-message.in +++ b/mail/rspamd/files/pkg-message.in @@ -13,5 +13,15 @@ You can edit %%ETCDIR%%/rspamd.newsyslog.conf to change log file rotation configuration. EOM +}, +{ type: upgrade + maximum_version: 3.4 + minimum_version: 3.3 + message: <<EOM +Due to the issues with Hyperscan alignment, it is recommended to remove the +existing cached files that might cause troubles from /var/db/rspamd by using the +following command: "find /var/db/rspamd/ -type f -name '*.unser' -delete" +This action is needed merely for this particular upgrade. +EOM } ]