Bug 293379 - biology/ugene: please update the port
Summary: biology/ugene: please update the port
Status: In Progress
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Max Brazhnikov
URL: https://github.com/ugeneunipro/ugene/...
Keywords:
Depends on:
Blocks:
 
Reported: 2026-02-23 10:33 UTC by Robert Clausecker
Modified: 2026-04-09 17:05 UTC (History)
2 users (show)

See Also:
fuz: maintainer-feedback-
fuz: merge-quarterly?


Attachments
Update to 53.1 (97.26 KB, patch)
2026-04-02 12:04 UTC, Max Brazhnikov
no flags Details | Diff
Update to 53.1 (97.30 KB, patch)
2026-04-09 13:31 UTC, Max Brazhnikov
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Clausecker freebsd_committer freebsd_triage 2026-02-23 10:33:44 UTC
Upstream is currently at version 53.0, which fixes among other things the build issue on non-x86.  Please update the port.
Comment 1 Robert Clausecker freebsd_committer freebsd_triage 2026-03-15 15:37:07 UTC
maintainer timeout.  @alven, feel free to push an update.
Comment 2 Hannes Hauswedell 2026-03-15 17:02:49 UTC
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.
Comment 3 Robert Clausecker freebsd_committer freebsd_triage 2026-03-15 18:00:31 UTC
(In reply to Hannes Hauswedell from comment #2)

Ok, I'll remove you as mentor.  Thank you for your service!
Comment 4 commit-hook freebsd_committer freebsd_triage 2026-03-15 18:03:06 UTC
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(-)
Comment 5 Älven freebsd_committer freebsd_triage 2026-03-15 20:39:09 UTC
(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.
Comment 6 Älven freebsd_committer freebsd_triage 2026-04-01 20:41:07 UTC
Sorry, it was too difficult for me. :(
And also, it was just taken by makc@, hope he could do it.
Comment 7 Max Brazhnikov freebsd_committer freebsd_triage 2026-04-01 22:43:00 UTC
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!
Comment 8 Max Brazhnikov freebsd_committer freebsd_triage 2026-04-02 12:04:48 UTC
Created attachment 269313 [details]
Update to 53.1

Please, test this patch.
Comment 9 Robert Clausecker freebsd_committer freebsd_triage 2026-04-02 17:28:22 UTC
(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.
Comment 10 Max Brazhnikov freebsd_committer freebsd_triage 2026-04-02 18:19:53 UTC
(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.
Comment 11 Robert Clausecker freebsd_committer freebsd_triage 2026-04-04 17:35:22 UTC
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.
Comment 12 Robert Clausecker freebsd_committer freebsd_triage 2026-04-04 17:36:02 UTC
The error in hashGrid.cpp is likely due to char being unsigned on some platforms, including arm.  Changing to signed char should fix that.
Comment 13 Max Brazhnikov freebsd_committer freebsd_triage 2026-04-04 20:35:36 UTC
(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
Comment 14 Robert Clausecker freebsd_committer freebsd_triage 2026-04-08 13:09:07 UTC
(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
Comment 15 Max Brazhnikov freebsd_committer freebsd_triage 2026-04-08 15:16:13 UTC
(In reply to Robert Clausecker from comment #14)
Nice! Thank you for the fix! I'll adjust the port and will push the update.
Comment 16 Max Brazhnikov freebsd_committer freebsd_triage 2026-04-09 13:31:33 UTC
Created attachment 269551 [details]
Update to 53.1

Robert, I have incorporated your fixes. Could you test the patch?
Comment 17 Robert Clausecker freebsd_committer freebsd_triage 2026-04-09 17:05:46 UTC
(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.