1. 概要
発生は、2026年6月23日、「FreeBSD 15.0-RELEASE-p2」上でのことです。
2. 状況
portversion -v | grep '<'
[Reading data from pkg(8) ... - 861 packages found - done]
rspamd-4.0.0_1 < needs updating (port has 4.1.0_1)
という状況にありまして。
env BATCH=yes portupgrade -rR rspamd
すると下記で止まります。
・・・ 略 ・・・
[ 30% 146/475] /usr/bin/c++ -DDOCTEST_CONFIG_NO_MULTI_LANE_ATOMICS -DDOCTEST_CONFIG_USE_STD_HEADERS -DFMT_HEADER_ONLY -DFREEBSD -DHAVE_CONFIG_H -DREPLXX_BUILDING_DLL -DU_CHARSET_IS_UTF8 -DZSTD_DISABLE_DEPRECATE_WARNINGS -D_BSD_SOURCE -Drspamd_replxx_EXPORTS -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/hiredis -I/usr/ports/mail/rspamd/work/rspamd-4.1.0 -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/src -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/src/libutil -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/src/libserver -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/src/libmime -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/src/libstat -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/src/libcryptobox -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/libucl -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/replxx/include -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/uthash -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/http-parser -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/fpconv -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/libottery -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/cdb -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/snowball/include -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/librdns -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/aho-corasick -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/lc-btrie -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/lua-lpeg -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/frozen/include -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/fu2/include -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/src/libserver/fasttext -I/usr/ports/mail/rspamd/work/.build/src -I/usr/ports/mail/rspamd/work/.build/src/libcryptobox -I/usr/local/include/luajit-2.1 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/xxhash -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/simdutf/include -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/doctest -I/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/replxx/src -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -fdiagnostics-color=always -Wno-unused-command-line-argument -Wno-ignored-optimization-argument -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -DNDEBUG -O2 -fomit-frame-pointer -fassociative-math -freciprocal-math -fno-signed-zeros -ffp-contract=fast -std=gnu++20 -flto -fPIC -msse2 -m64 -Wextra -Wall -Wpointer-arith -Wno-unused-parameter -Wno-unused-function -Wunused-variable -Wno-strict-aliasing -fno-strict-aliasing -Wnull-dereference -Wno-unused-const-variable -Wno-sign-compare -Wno-implicit-fallthrough -Wmissing-noreturn -Wmissing-format-attribute -Werror=return-type -fPIC -MD -MT contrib/replxx/CMakeFiles/rspamd-replxx.dir/src/replxx_impl.cxx.o -MF contrib/replxx/CMakeFiles/rspamd-replxx.dir/src/replxx_impl.cxx.o.d -o contrib/replxx/CMakeFiles/rspamd-replxx.dir/src/replxx_impl.cxx.o -c /usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/replxx/src/replxx_impl.cxx
ninja: build stopped: subcommand failed.
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1
Stop.
make: stopped making "all" in /usr/ports/mail/rspamd
egrep: empty (sub)expression
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20260623-31673-n953rl env UPGRADE_TOOL=portupgrade UPGRADE_PORT=rspamd-4.0.0_1 UPGRADE_PORT_VER=4.0.0_1 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
! mail/rspamd (rspamd-4.0.0_1) (unknown build error)
env BATCH=yes MAKE_JOBS_UNSAFE=yes portupgrade -rR rspamd
すると、今度は、下記で止まります。
/usr/local/include/simdutf/implementation.h:6990:27: note: unimplemented pure virtual method 'find' in 'implementation'
6990 | virtual const char16_t *find(const char16_t *start, const char16_t *end,
| ^
In file included from /usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/simdutf/src/simdutf.cpp:4:
In file included from /usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/simdutf/src/implementation.cpp:26:
In file included from /usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/simdutf/src/simdutf/haswell.h:57:
/usr/ports/mail/rspamd/work/rspamd-4.1.0/contrib/simdutf/src/simdutf/haswell/bitmanipulation.h:20:1: fatal error: unknown type name 'simdutf_inline'
20 | simdutf_inline int trailing_zeroes(uint64_t input_num) {
| ^
2 warnings and 1 error generated.
ninja: build stopped: subcommand failed.
*** Error code 1
Stop.
make: stopped making "all" in /usr/ports/mail/rspamd
egrep: empty (sub)expression
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20260623-36537-ubrfdy env UPGRADE_TOOL=portupgrade UPGRADE_PORT=rspamd-4.0.0_1 UPGRADE_PORT_VER=4.0.0_1 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
! mail/rspamd (rspamd-4.0.0_1) (unknown build error)
「Gemini」伍長に尋ねてみると。
「simdutf」のバージョンが「rspamd」が必要としているものとのバージョン違いになっていてエラーになるらしい。
3. 対策
「rspamd」のアップグレードの間だけ、「simdutf」にいなくなってもらいます。
cd /usr/ports/devel/simdutf
make deinstall clean
その上で。
env BATCH=yes portupgrade -rR rspamd
これは、通りました。
「simdutf」を基に戻します。
cd /usr/ports/converters/simdutf
make NO_DIALOG=yes
make reinstall
その後、「rspamd」を再起動します。
service rspamd restart
4. 参考サイト
本ページは、「Gemini」伍長を参考にさせていただきました。