Upstream is currently at version 53.0, which fixes among other things the build issue on non-x86. Please update the port.
maintainer timeout. @alven, feel free to push an update.
Sorry, I am fairly certain I had replied to this. In any case, since I am no longer using this piece of software myself, I would gladly pass own port-ownership to someone else.
(In reply to Hannes Hauswedell from comment #2) Ok, I'll remove you as mentor. Thank you for your service!
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=552bce4f9c2870156b1ec1b5306c7c0453e89658 commit 552bce4f9c2870156b1ec1b5306c7c0453e89658 Author: Robert Clausecker <fuz@FreeBSD.org> AuthorDate: 2026-03-15 18:00:51 +0000 Commit: Robert Clausecker <fuz@FreeBSD.org> CommitDate: 2026-03-15 18:01:27 +0000 biology/ugene: return to pool PR: 293379 biology/ugene/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
(In reply to Robert Clausecker from comment #1) > @alven, feel free to push an update. Thank you, Robert. I have this in work and would like to have it done and landed. I like to help with scientific ports.
Sorry, it was too difficult for me. :( And also, it was just taken by makc@, hope he could do it.
I have ported the latest release with quick and dirty patches. I'll clean up the port, and will put the update here for testing. Stay tuned!
Created attachment 269313 [details] Update to 53.1 Please, test this patch.
(In reply to Max Brazhnikov from comment #8) Fails to build on aarch64 and armv7: FAILED: [code=1] src/plugins/smith_waterman/CMakeFiles/smith_waterman.dir/src/SmithWatermanAlgorithmSSE2.cpp.o /usr/local/libexec/ccache/c++ -DPLUGIN_ID=\"smith_waterman\" -DQT_CORE_LIB -DQT_DISABLE_DEPRECATED_BEFORE=0x050F00 -DQT_FATAL_ASSERT -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_SVG_LIB -DQT_TESTCASE_BUILDDIR=\"/wrkdirs/usr/ports/biology/ugene/work/.build\" -DQT_TESTLIB_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -Dsmith_waterman_EXPORTS -I/wrkdirs/usr/ports/biology/ugene/work/.build/src/plugins/smith_waterman -I/wrkdirs/usr/ports/biology/ugene/work/ugene-53.1/src/plugins/smith_waterman -I/wrkdirs/usr/ports/biology/ugene/work/.build/src/plugins/smith_waterman/smith_waterman_autogen/include -I/wrkdirs/usr/ports/biology/ugene/work/ugene-53.1/src/libs_3rdparty/qtscript/script/api -I/wrkdirs/usr/ports/biology/ugene/work/ugene-53.1/src/plugins/smith_waterman/src -I/wrkdirs/usr/ports/biology/ugene/work/ugene-53.1/src/plugins/smith_waterman/../../include -isystem /usr/local/include/qt5 -isystem /usr/local/include/qt5/QtCore -isystem /usr/local/lib/qt5/mkspecs/freebsd-clang -isystem /usr/local/include/qt5/QtGui -isystem /usr/local/include/qt5/QtWidgets -isystem /usr/local/include/qt5/QtXml -isystem /usr/local/include/qt5/QtNetwork -isystem /usr/local/include/qt5/QtPrintSupport -isystem /usr/local/include/qt5/QtTest -isystem /usr/local/include/qt5/QtSvg -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -DNDEBUG -std=gnu++14 -fPIC -fPIC -MD -MT src/plugins/smith_waterman/CMakeFiles/smith_waterman.dir/src/SmithWatermanAlgorithmSSE2.cpp.o -MF src/plugins/smith_waterman/CMakeFiles/smith_waterman.dir/src/SmithWatermanAlgorithmSSE2.cpp.o.d -o src/plugins/smith_waterman/CMakeFiles/smith_waterman.dir/src/SmithWatermanAlgorithmSSE2.cpp.o -c /wrkdirs/usr/ports/biology/ugene/work/ugene-53.1/src/plugins/smith_waterman/src/SmithWatermanAlgorithmSSE2.cpp (...) In file included from /wrkdirs/usr/ports/biology/ugene/work/ugene-53.1/src/plugins/smith_waterman/src/SmithWatermanAlgorithmSSE2.cpp:26: /usr/lib/clang/19/include/emmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture" 14 | #error "This header is only meant to be used on x86 and x64 architecture" | ^ (...) It seems like the code believes it is being built for x86, when it is being built for AArch64. Please check the build scripts and adjust. I also strongly recommend you ditch all the static REINPLACE_CMD in do-patch and replace them with patch files. And for the non-static bits, it's better to do them in pre-configure so that you can run "make patch" and have pristine patched files without any dynamic replacements in them.
(In reply to Robert Clausecker from comment #9) Could you report this problem upstream? Apparently not all build issues have been fixed for non-x86, and I suppose this one is not the only. You could also try to remove this plugin from the build, just comment corresponding add_subdirectory() from the top level CMakeLists.txt.
With the smith_waterman plugin disabled, it then fails here: FAILED: [code=1] src/plugins_3rdparty/ball/CMakeFiles/ball.dir/src/source/DATATYPE/hashGrid.cpp.o /usr/bin/c++ -DPLUGIN_ID=\"ball\" -DQT_CORE_LIB -DQT_DISABLE_DEPRECATED_BEFORE=0x050F00 -DQT_FATAL_ASSERT -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_SVG_LIB -DQT_TESTCASE_BUILDDIR=\"/usr/home/ports/main.ports/biology/ugene/work/.build\" -DQT_TESTLIB_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -Dball_EXPORTS -I/usr/home/ports/main.ports/biology/ugene/work/.build/src/plugins_3rdparty/ball -I/usr/home/ports/main.ports/biology/ugene/work/ugene-53.1/src/plugins_3rdparty/ball -I/usr/home/ports/main.ports/biology/ugene/work/.build/src/plugins_3rdparty/ball/ball_autogen/include -I/usr/home/ports/main.ports/biology/ugene/work/ugene-53.1/src/libs_3rdparty/qtscript/script/api -I/usr/home/ports/main.ports/biology/ugene/work/ugene-53.1/src/plugins_3rdparty/ball/src/include -I/usr/home/ports/main.ports/biology/ugene/work/ugene-53.1/src/plugins_3rdparty/ball/src/source -I/usr/home/ports/main.ports/biology/ugene/work/ugene-53.1/src/plugins_3rdparty/ball/src -I/usr/home/ports/main.ports/biology/ugene/work/ugene-53.1/src/plugins_3rdparty/ball/../../include -isystem /usr/local/include/qt5 -isystem /usr/local/include/qt5/QtCore -isystem /usr/local/lib/qt5/mkspecs/freebsd-clang -isystem /usr/local/include/qt5/QtGui -isystem /usr/local/include/qt5/QtWidgets -isystem /usr/local/include/qt5/QtXml -isystem /usr/local/include/qt5/QtNetwork -isystem /usr/local/include/qt5/QtPrintSupport -isystem /usr/local/include/qt5/QtTest -isystem /usr/local/include/qt5/QtSvg -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -DNDEBUG -std=gnu++14 -fPIC -fPIC -MD -MT src/plugins_3rdparty/ball/CMakeFiles/ball.dir/src/source/DATATYPE/hashGrid.cpp.o -MF src/plugins_3rdparty/ball/CMakeFiles/ball.dir/src/source/DATATYPE/hashGrid.cpp.o.d -o src/plugins_3rdparty/ball/CMakeFiles/ball.dir/src/source/DATATYPE/hashGrid.cpp.o -c /usr/home/ports/main.ports/biology/ugene/work/ugene-53.1/src/plugins_3rdparty/ball/src/source/DATATYPE/hashGrid.cpp /usr/home/ports/main.ports/biology/ugene/work/ugene-53.1/src/plugins_3rdparty/ball/src/source/DATATYPE/hashGrid.cpp:14:28: error: constant expression evaluates to -1 which cannot be narrowed to type 'char' [-Wc++11-narrowing] 14 | { 0, 0, 0 }, { 0, 0, -1 }, { 0, 0, 1 }, | ^~ (... 19 similar errors omitted for brevity ...) It then fails in hmm2 with this error: FAILED: [code=1] src/plugins_3rdparty/hmm2/CMakeFiles/hmm2.dir/src/u_search/uhmmsearch_sse.cpp.o /usr/bin/c++ -DPLUGIN_ID=\"hmm2\" -DQT_CORE_LIB -DQT_DISABLE_DEPRECATED_BEFORE=0x050F00 -DQT_FATAL_ASSERT -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_SVG_LIB -DQT_TESTCASE_BUILDDIR=\"/usr/home/ports/main.ports/biology/ugene/work/.build\" -DQT_TESTLIB_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -Dhmm2_EXPORTS -I/usr/home/ports/main.ports/biology/ugene/work/.build/src/plugins_3rdparty/hmm2 -I/usr/home/ports/main.ports/biology/ugene/work/ugene-53.1/src/plugins_3rdparty/hmm2 -I/usr/home/ports/main.ports/biology/ugene/work/.build/src/plugins_3rdparty/hmm2/hmm2_autogen/include -I/usr/home/ports/main.ports/biology/ugene/work/ugene-53.1/src/libs_3rdparty/qtscript/script/api -I/usr/home/ports/main.ports/biology/ugene/work/ugene-53.1/src/plugins_3rdparty/hmm2/src -I/usr/home/ports/main.ports/biology/ugene/work/ugene-53.1/src/plugins_3rdparty/hmm2/../../include -isystem /usr/local/include/qt5 -isystem /usr/local/include/qt5/QtCore -isystem /usr/local/lib/qt5/mkspecs/freebsd-clang -isystem /usr/local/include/qt5/QtGui -isystem /usr/local/include/qt5/QtWidgets -isystem /usr/local/include/qt5/QtXml -isystem /usr/local/include/qt5/QtNetwork -isystem /usr/local/include/qt5/QtPrintSupport -isystem /usr/local/include/qt5/QtTest -isystem /usr/local/include/qt5/QtSvg -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -DNDEBUG -std=gnu++14 -fPIC -fPIC -MD -MT src/plugins_3rdparty/hmm2/CMakeFiles/hmm2.dir/src/u_search/uhmmsearch_sse.cpp.o -MF src/plugins_3rdparty/hmm2/CMakeFiles/hmm2.dir/src/u_search/uhmmsearch_sse.cpp.o.d -o src/plugins_3rdparty/hmm2/CMakeFiles/hmm2.dir/src/u_search/uhmmsearch_sse.cpp.o -c /usr/home/ports/main.ports/biology/ugene/work/ugene-53.1/src/plugins_3rdparty/hmm2/src/u_search/uhmmsearch_sse.cpp In file included from /usr/home/ports/main.ports/biology/ugene/work/ugene-53.1/src/plugins_3rdparty/hmm2/src/u_search/uhmmsearch_sse.cpp:2: /usr/lib/clang/19/include/emmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture" 14 | #error "This header is only meant to be used on x86 and x64 architecture" | ^ and disabling this plugin, too, the build then completes, although as expected with some missing files: ===> Parsing plist ===> Checking for items in STAGEDIR missing from pkg-plist ===> Checking for items in pkg-plist which are not in STAGEDIR Error: Missing: lib/ugene/plugins/libball.so Error: Missing: lib/ugene/plugins/libhmm2.so Error: Missing: lib/ugene/plugins/libsmith_waterman.so ===> Error: Plist issues found.
The error in hashGrid.cpp is likely due to char being unsigned on some platforms, including arm. Changing to signed char should fix that.
(In reply to Robert Clausecker from comment #11) Thank you for testing! We can disable hmm and smith_waterman plugins for non-x86. As for the ball plugin, the Debian maintainer has a patch, which was refused by Ugene devs for unrelated reasons [1]. We can either reuse the patch or disable the plugin. What do you prefer? [1] https://github.com/ugeneunipro/ugene/issues/1682
(In reply to Max Brazhnikov from comment #13) The patch for the ball plugin looks reasonable. The other two can probably be patched by replacing #include <emmintrin.h> with #if defined(__i386__) || defined(__amd64__) #include <emmintrin.h> #else #include <sse2neon.h> #endif and then depending on BUILD_DEPENDS=${LOCALBASE}/include/sse2neon.h:devel/sse2neon
(In reply to Robert Clausecker from comment #14) Nice! Thank you for the fix! I'll adjust the port and will push the update.
Created attachment 269551 [details] Update to 53.1 Robert, I have incorporated your fixes. Could you test the patch?
(In reply to Max Brazhnikov from comment #16) Builds on armv7 now, arm64 fails as follows: FAILED: [code=1] dist/plugins_checker : && /usr/local/libexec/ccache/c++ -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -is ystem /usr/local/include -DNDEBUG -pthread -Wl,--undefined-version -L/usr/local/lib -Xlinker --dependency-file=src/ plugins_checker/CMakeFiles/plugins_checker.dir/link.d src/plugins_checker/CMakeFiles/plugins_checker.dir/src/Main.cpp.o -o dist/plugins_checker -Wl,-rpath,/usr/local/lib/qt5:/wrkdirs/usr/ports/biology/ugene/work/.build/dist /usr/local/lib/qt5/libQt5Widgets.so.5.15.18 dist/libU2Lang.so dist/libU2Private.so /usr/local/lib/qt5/libQt5Gui.so.5.15.18 /usr/local/lib/qt5/libQt5Core.so.5.15.18 /usr/local/lib/qt5/libQt5Xml.so.5.15.18 /usr/local/lib/qt5/libQt5Core.so.5.15.18 /usr/local/lib/qt5/libQt5Widgets.so.5.15.18 /usr/local/lib/qt5/libQt5Gui.so.5.15.18 /usr/local/lib/qt5/libQt5Core.so.5.15.18 dist/libU2Formats.so dist/libU2Algorithm.so dist/libU2Core.so /usr/local/lib/qt5/libQt5Widgets.so.5.15.18 /usr/local/lib/qt5/libQt5Gui.so.5.15.18 /usr/local/lib/qt5/libQt5Network.so.5.15.18 /usr/local/lib/qt5/libQt5Xml.so.5.15.18 /usr/local/lib/qt5/libQt5Core.so.5.15.18 dist/libqtscript.so dist/libugenedb.so /usr/local/lib/qt5/libQt5Widgets.so.5.15.18 /usr/local/lib/qt5/libQt5Gui.so.5.15.18 /usr/local/lib/qt5/libQt5Core.so.5.15.18 dist/libsamtools.a dist/libzlib.a /usr/local/lib/qt5/libQt5Core.so.5.15.18 /usr/local/lib/qt5/libQt5Widgets.so.5.15.18 /usr/local/lib/qt5/libQt5Gui.so.5.15.18 /usr/local/lib/qt5/libQt5Core.so.5.15.18 -Wl,-rpath-link,/usr/local/lib/qt5 && : ld: error: undefined reference: rans_compress_O1_32x16_neon >>> referenced by dist/libU2Formats.so (disallowed by --no-allow-shlib-undefined) ld: error: undefined reference: rans_compress_O0_32x16_neon >>> referenced by dist/libU2Formats.so (disallowed by --no-allow-shlib-undefined) ld: error: undefined reference: rans_uncompress_O1_32x16_neon >>> referenced by dist/libU2Formats.so (disallowed by --no-allow-shlib-undefined) ld: error: undefined reference: rans_uncompress_O0_32x16_neon >>> referenced by dist/libU2Formats.so (disallowed by --no-allow-shlib-undefined) ld: error: undefined reference: rans_compress_O1_32x16_neon >>> referenced by dist/libU2Algorithm.so (disallowed by --no-allow-shlib-undefined) ld: error: undefined reference: rans_compress_O0_32x16_neon >>> referenced by dist/libU2Algorithm.so (disallowed by --no-allow-shlib-undefined) ld: error: undefined reference: rans_uncompress_O1_32x16_neon >>> referenced by dist/libU2Algorithm.so (disallowed by --no-allow-shlib-undefined) ld: error: undefined reference: rans_uncompress_O0_32x16_neon >>> referenced by dist/libU2Algorithm.so (disallowed by --no-allow-shlib-undefined) c++: error: linker command failed with exit code 1 (use -v to see invocation) This sort of error is usually caused by a wrong build configuration. The project knows it can use an arm64 (aarch64) specifc file, so it doesn't use its generic implementation, but then it fails to add the aarch64-specific file to the build for some reason.