diff --git a/sources b/sources index 05f80c3..76e7d22 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ugene-free-48.1.tar.gz) = dca7746e78dfa64f6557c17b0c2e0d1edf7bab50bba6c4dc245ba976b854b86d77c3594f8b59bf5d8a541df73f8f806217947ce90dc96dc29f95d353aabee5d9 +SHA512 (ugene-free-53.0.tar.gz) = 233c857d9a0ea42005efaa53e5ba5162e76a149f01d7406a73bd9215b96c096b3c379cc3b14c7d7b83c61df5ea2435412f6d43c71aef84b23d1d683d5a172b30 diff --git a/ugene-40.1-qbswap-bigendian-workaround.patch b/ugene-40.1-qbswap-bigendian-workaround.patch index 813d7a8..baa1c50 100644 --- a/ugene-40.1-qbswap-bigendian-workaround.patch +++ b/ugene-40.1-qbswap-bigendian-workaround.patch @@ -40,6 +40,6 @@ +#endif +QT_END_NAMESPACE + - namespace U2 { - - static quint8 cigarOp2samtools(U2CigarOp op, U2OpStatus& os) { + extern "C" { + #include "samtools_core/htslib/cram/cram_samtools.h" + } diff --git a/ugene-47.x-has-sse-i686.patch b/ugene-47.x-has-sse-i686.patch deleted file mode 100644 index e65a89d..0000000 --- a/ugene-47.x-has-sse-i686.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- ugene-47.x/src/ugene_globals.pri.i386 2023-07-20 19:37:10.106204731 +0900 -+++ ugene-47.x/src/ugene_globals.pri 2023-07-20 22:31:43.266627766 +0900 -@@ -168,6 +168,7 @@ defineTest( target_platform_has_sse ) { - contains(QMAKE_TARGET.arch, x86_64) : return (true) - # This check works on Linux & Mac. - contains(QMAKE_HOST.arch, x86_64) : return (true) -+ contains(QMAKE_HOST.arch, i686) : return (true) - return (false) - } - diff --git a/ugene-49.1-narrowing-for-unsigned-char.patch b/ugene-49.1-narrowing-for-unsigned-char.patch new file mode 100644 index 0000000..a37bc35 --- /dev/null +++ b/ugene-49.1-narrowing-for-unsigned-char.patch @@ -0,0 +1,22 @@ +--- ugene-49.1/src/plugins_3rdparty/ball/src/include/BALL/DATATYPE/hashGrid.h.orig 2023-11-26 02:17:11.000000000 +0900 ++++ ugene-49.1/src/plugins_3rdparty/ball/src/include/BALL/DATATYPE/hashGrid.h 2024-01-22 16:42:22.536722206 +0900 +@@ -37,7 +37,7 @@ namespace BALL + { + namespace __private + { +- extern const char BALL_EXPORT neighbour_table_[27][3]; ++ extern const signed char BALL_EXPORT neighbour_table_[27][3]; + } + + template class HashGrid3; +--- ugene-49.1/src/plugins_3rdparty/ball/src/source/DATATYPE/hashGrid.cpp.orig 2023-11-26 02:17:11.000000000 +0900 ++++ ugene-49.1/src/plugins_3rdparty/ball/src/source/DATATYPE/hashGrid.cpp 2024-01-22 16:42:28.199724474 +0900 +@@ -9,7 +9,7 @@ namespace BALL + { + namespace __private + { +- const char neighbour_table_[27][3] = ++ const signed char neighbour_table_[27][3] = + { + { 0, 0, 0 }, { 0, 0, -1 }, { 0, 0, 1 }, + { 0, -1, -1 }, { 0, -1, 0 }, { 0, -1, 1 }, diff --git a/ugene-50.x-aarch64-neon-impl-not-yet.patch b/ugene-50.x-aarch64-neon-impl-not-yet.patch new file mode 100644 index 0000000..d21b04b --- /dev/null +++ b/ugene-50.x-aarch64-neon-impl-not-yet.patch @@ -0,0 +1,26 @@ +diff --git a/src/libs_3rdparty/samtools/src/samtools_core/htslib/htscodecs/htscodecs/rANS_static4x16pr.c b/src/libs_3rdparty/samtools/src/samtools_core/htslib/htscodecs/htscodecs/rANS_static4x16pr.c +index be907d85b..820d43cf0 100644 +--- a/src/libs_3rdparty/samtools/src/samtools_core/htslib/htscodecs/htscodecs/rANS_static4x16pr.c ++++ b/src/libs_3rdparty/samtools/src/samtools_core/htslib/htscodecs/htscodecs/rANS_static4x16pr.c +@@ -1068,8 +1068,8 @@ unsigned char *(*rans_enc_func(int do_simd, int order)) + if (do_simd) { + if ((rans_cpu & RANS_CPU_ENC_NEON) && have_neon()) + return order & 1 +- ? rans_compress_O1_32x16_neon +- : rans_compress_O0_32x16_neon; ++ ? rans_compress_O1_32x16 ++ : rans_compress_O0_32x16; + else + return order & 1 + ? rans_compress_O1_32x16 +@@ -1091,8 +1091,8 @@ unsigned char *(*rans_dec_func(int do_simd, int order)) + if (do_simd) { + if ((rans_cpu & RANS_CPU_DEC_NEON) && have_neon()) + return order & 1 +- ? rans_uncompress_O1_32x16_neon +- : rans_uncompress_O0_32x16_neon; ++ ? rans_uncompress_O1_32x16 ++ : rans_uncompress_O0_32x16; + else + return order & 1 + ? rans_uncompress_O1_32x16 diff --git a/ugene-52.1.x-RegionSelectorController-overload.patch b/ugene-52.1.x-RegionSelectorController-overload.patch new file mode 100644 index 0000000..ebc5ad2 --- /dev/null +++ b/ugene-52.1.x-RegionSelectorController-overload.patch @@ -0,0 +1,13 @@ +diff --git a/src/corelibs/U2Gui/src/util/RegionSelectorController.cpp b/src/corelibs/U2Gui/src/util/RegionSelectorController.cpp +index f052b9122..d0fdfeb0d 100644 +--- a/src/corelibs/U2Gui/src/util/RegionSelectorController.cpp ++++ b/src/corelibs/U2Gui/src/util/RegionSelectorController.cpp +@@ -339,7 +339,7 @@ void RegionSelectorController::connectSlots() { + + connect(gui.startLineEdit, &QLineEdit::textEdited, this, &RegionSelectorController::sl_onRegionChanged); + connect(gui.endLineEdit, &QLineEdit::textEdited, this, &RegionSelectorController::sl_onRegionChanged); +- connect(gui.presetsComboBox, &QComboBox::activated, this, &RegionSelectorController::sl_onPresetChanged); ++ connect(gui.presetsComboBox, QOverload::of(&QComboBox::activated), this, &RegionSelectorController::sl_onPresetChanged); + + if (settings.selection != nullptr) { + connect(settings.selection, SIGNAL(si_onSelectionChanged(GSelection*)), SLOT(sl_onSelectionChanged(GSelection*))); diff --git a/ugene-52.x-s390x-platform-macro.patch b/ugene-52.x-s390x-platform-macro.patch new file mode 100644 index 0000000..72ca2de --- /dev/null +++ b/ugene-52.x-s390x-platform-macro.patch @@ -0,0 +1,27 @@ +diff --git a/src/libs_3rdparty/qtscript/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h b/src/libs_3rdparty/qtscript/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h +index a4695a261..ec063f1ee 100644 +--- a/src/libs_3rdparty/qtscript/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h ++++ b/src/libs_3rdparty/qtscript/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h +@@ -407,6 +407,13 @@ + #define WTF_CPU_RISCV32 1 + #endif + ++/* CPU(IBM z system) */ ++#if defined(__s390x__) || defined(__s390__) ++#define WTF_CPU_S390X 1 ++#define WTF_CPU_BIG_ENDIAN 1 ++#endif ++ ++ + /* ==== OS() - underlying operating system; only to be used for mandated low-level services like + virtual memory, not to choose a GUI toolkit ==== */ + +@@ -960,6 +967,8 @@ + #if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32) && !defined(WTF_USE_JSVALUE32_64) + #if (CPU(X86_64) && !CPU(X32) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(MIPS64) || CPU(AARCH64) || CPU(RISCV64) + #define WTF_USE_JSVALUE64 1 ++#elif (CPU(S390X)) ++#define WTF_USE_JSVALUE64 1 + #elif CPU(ARM) || CPU(PPC64) || CPU(RISCV32) + #define WTF_USE_JSVALUE32 1 + #elif OS(WINDOWS) && COMPILER(MINGW) diff --git a/ugene.spec b/ugene.spec index 2e0d87b..7390734 100644 --- a/ugene.spec +++ b/ugene.spec @@ -2,24 +2,24 @@ %if 0%{?use_release_branch} < 1 # master -%global gitdate 20230903 -%global gitcommit 3dd4779ff42843fd7c653643840c8ae23c784646 +%global gitdate 20251211 +%global gitcommit b50ca792f254939978f0ffd3126e3d9ab770a10a # New git commit with non-free part removed using "git filter-branch" -%global gitcommit_free 5b1c13afdeac24ae9af8f7d93da33ee183270879 +%global gitcommit_free 7e674061492924b3dfbc884c4c9503ecab9887b2 %else # currently 41.0 branch -%global gitdate 20211117 -%global gitcommit 2d776cc668bc5019452e25ecc330c88093e75c48 +%global gitdate 20250313 +%global gitcommit c0dffab5a15e01c026f80cf0a7033b08112a355f # New git commit with non-free part using "git filter-branch" -%global gitcommit_free f995e33068c5959c1bab249cd04ed3776e9b2d96 +%global gitcommit_free b0631c54cc0603a88793ed5d6ee02dec196b823e %endif %global shortcommit %(c=%{gitcommit}; echo ${c:0:7}) %global git_version %{gitdate}git%{shortcommit} -%global tarballdate 20230904 -%global tarballtime 1053 +%global tarballdate 20251211 +%global tarballtime 2210 %global use_release 1 %global use_gitbare 0 @@ -35,7 +35,7 @@ %global GIT git %endif -%global mainver 48.1 +%global mainver 53.0 %undefine prever %if 0%{?use_release} >= 1 @@ -55,7 +55,8 @@ Release: 1%{?dist} #The entire source code is GPLv2+ except: #file src/libs_3rdparty/qtbindings_core/src/qtscriptconcurrent.h which is GPLv2 #files in src/plugins_3rdparty/script_debuger/src/qtscriptdebug/ which are GPLv2 -License: GPLv2+ and GPLv2 +# Automatically converted from old format: GPLv2+ and GPLv2 - review is highly recommended. +License: GPL-2.0-or-later AND GPL-2.0-only URL: http://ugene.net %if 0%{?use_release} >= 1 #Source0: https://github.com/ugeneunipro/ugene/archive/%{mainver}.tar.gz/#/%{name}-%{mainver}.tar.gz @@ -70,6 +71,8 @@ Source1: create-ugene-free-tarball.sh Source2: create-%{name}-git-bare-tarball.sh # This is not installed Source10: ugene.wrapper +Patch1: ugene-49.1-narrowing-for-unsigned-char.patch +Patch3: ugene-52.1.x-RegionSelectorController-overload.patch # Currently distro-specific Patch102: ugene-44.x-libs_3rdparty-breakpad-sys_mmap_use_system_mmap.patch Patch103: ugene-40.1-libs_3rdparty-breakpad-unwind-nonsupported-arch.patch @@ -77,7 +80,8 @@ Patch104: ugene-47.x-plugins_3rdparty-hmm2-nosse-arch.patch Patch105: ugene-40.1-libs_3rdparty-breakpad-arch-port.patch Patch106: ugene-47.x-git-plgins-smith_waterman-nonsse2-arch.patch Patch107: ugene-40.1-qbswap-bigendian-workaround.patch -Patch108: ugene-47.x-has-sse-i686.patch +Patch109: ugene-50.x-aarch64-neon-impl-not-yet.patch +Patch110: ugene-52.x-s390x-platform-macro.patch BuildRequires: make BuildRequires: gcc-c++ @@ -89,13 +93,16 @@ BuildRequires: %{_bindir}/git BuildRequires: cmake(Qt5Core) BuildRequires: cmake(Qt5Gui) +BuildRequires: cmake(Qt5LinguistTools) BuildRequires: cmake(Qt5Network) +BuildRequires: cmake(Qt5NetworkAuth) BuildRequires: cmake(Qt5PrintSupport) BuildRequires: cmake(Qt5Script) BuildRequires: cmake(Qt5ScriptTools) BuildRequires: cmake(Qt5Sql) BuildRequires: cmake(Qt5Svg) BuildRequires: cmake(Qt5Test) +BuildRequires: cmake(Qt5WebSockets) BuildRequires: cmake(Qt5Widgets) BuildRequires: cmake(Qt5Xml) @@ -117,8 +124,6 @@ is a designer for custom bioinformatics workflows. %prep %if 0%{?use_release} >= 1 %setup -q -# Umm... -sed -i.desktop ugene.pri -e '\@desktop@s|etc/share/|etc/shared/|' %endif %if 0%{?use_gitbare} >= 1 @@ -131,7 +136,10 @@ git checkout -b %{mainver}-fedora %{gitcommit_free} git config user.name "%{name} Fedora maintainer" git config user.email "%{name}-maintainers@fedoraproject.org" %endif - +%patch -P1 -p1 -b .narrow + %GIT commit -m "Fix narrowing on arch where default char is unsigned" -a +%patch -P3 -p1 -b .include + %GIT commit -m "RegionSelectorController: specify overloaded function" -a %patch -P102 -p1 -b .sys_mmap -Z %GIT commit -m "libs_3rdparty/breakpad: use C function instead of directly using syscall assemble code" -a %patch -P103 -p1 -b .unwind -Z @@ -144,75 +152,111 @@ git config user.email "%{name}-maintainers@fedoraproject.org" %GIT commit -m "plugins/smith_waterman: support architecture not supporting SSE2" -a %patch -P107 -p1 -b .char_bigen -Z %GIT commit -m "src/corelibs/U2Core et al.: Workaround for Qt qbswap issue on Q_BIG_ENDIAN" -a -%patch -P108 -p1 -b .sse_i686 -Z - %GIT commit -m "ugene_globals.pri: tell sse2 available also on i686" -a +%if 1 +%patch -P109 -p1 -b .neon -Z + %GIT commit -m "neon impl not yet available" -a +%endif +%patch -P110 -p1 -b .s390x_macro -Z + %GIT commit -m "define s390x related macro" -a + +# Kill system-provided 3rd-party libs +sed -i CMakeLists.txt \ + -e '\@add_subdirectory.*libs_3rdparty/sqlite3@d' \ + -e '\@add_subdirectory.*libs_3rdparty/zlib@d' \ + %{nil} +rm -rf src/libs_3rdparty/{sqlite3,zlib} +rm -rf src/include/3rdparty/{sqlite3,zlib} + %GIT rm -r -f src/libs_3rdparty/{sqlite3,zlib} || true + %GIT rm -r -f src/include/3rdparty/{sqlite3,zlib} || true + %GIT commit -m "kill system-provided 3rd-party libs" -a +grep -rl --exclude-dir=.git 3rdparty/zlib/zlib.h . | \ + xargs sed -i 's|3rdparty/zlib/zlib.h|zlib.h|' +grep -rl --exclude-dir=.git 3rdparty/sqlite3/sqlite3.h . | \ + xargs sed -i 's|3rdparty/sqlite3/sqlite3.h|sqlite3.h|' +find . -name CMakeLists.txt | \ + xargs sed -i \ + -e 's|zlib|z|' \ + -e 's|ugenedb|sqlite3|' \ + %{nil} + %GIT commit -m "fix system provided header path" -a sed -i.nonfree CMakeLists.txt -e '\@add_subdirectory.*plugins_3rdparty/psipred@d' -sed -i.nonfree ugene.pro -e '\@plugins_3rdparty/psipred@d' %GIT commit -m "remove nonfree code" -a +# Remove -Werror +sed -i CMakeLists.txt -e '\@" -Werror=@d' + %GIT commit -m "remove -Werror" -a + +# Enable some deprecated API +sed -i CMakeLists.txt -e '\@QT_DISABLE_DEPRECATED_BEFORE=@s|0x050F00|0x050000|' + %GIT commit -m "enable some deprecated API" -a + %build %if 0%{?use_gitbare} >= 1 cd %{name} %endif -%{qmake_qt5} -r \ - PREFIX=%{_libdir}/%{name} \ - UGENE_EXCLUDE_LIST_ENABLED=1 \ - UGENE_USE_SYSTEM_SQLITE=1 \ - UGENE_USE_BUNDLED_ZLIB=0 \ - UGENE_WITHOUT_NON_FREE=1 \ - %{nil} -%make_build -k +export QT_DIR=%{_libdir}/qt5 +export LD_LIBRARY_PATH=$(pwd)/%{_vpath_builddir}/dist + +%cmake \ + -DCMAKE_SKIP_RPATH=TRUE \ + %{nil} +%cmake_build %install -LIBAPPDIR=%{_libdir}/%{name} - %if 0%{?use_gitbare} >= 1 cd %{name} %endif -make install \ - INSTALL_ROOT=%{buildroot} \ - INSTALL="install -p" \ - %{nil} -# Some needed files are not installed..... -mkdir -p %{buildroot}$LIBAPPDIR -cp -a src/_release/* %{buildroot}$LIBAPPDIR -rm -f %{buildroot}$LIBAPPDIR/*.a +%cmake_install -# 1. manually move files... -pushd %{buildroot} -rm -f ./$LIBAPPDIR/LICENSE* +# Install all files manually... +# 0. Documents +cp -a \ + LICENSE.3rd_party.txt \ + LICENSE.txt \ + .. + +pushd %_vpath_builddir # 1-0 bindir -mkdir -p ./%{_bindir} -install -cpm 0755 %{SOURCE10} ./%{_bindir}/%{name} +mkdir -p %{buildroot}%{_bindir} +install -cpm 0755 %{SOURCE10} %{buildroot}%{_bindir}/%{name} -# 1-1 data files -mkdir -p ./%{_datadir}/%{name}/ -mv ./$LIBAPPDIR/data ./%{_datadir}/%{name} -ln -sf ../../../%{_datadir}/%{name} ./$LIBAPPDIR/data +# 1-1 libraries +mkdir -p %{buildroot}%{_libdir}/%{name} +cp -a dist/* %{buildroot}%{_libdir}/%{name}/ +rm -f %{buildroot}%{_libdir}/%{name}/*.a +# Back to the top directory +popd + +# 1-2 data files +mkdir -p %{buildroot}%{_datadir}/%{name}/ +cp -a data %{buildroot}%{_datadir}/%{name} +ln -sf ../../../%{_datadir}/%{name}/data %{buildroot}%{_libdir}/%{name}/data + +pushd ./etc/shared # 1-11 hicolor -mkdir -p ./%{_datadir}/icons/hicolor/32x32/mimetypes/ -mv ./$LIBAPPDIR/application-x-ugene-ext.png ./%{_datadir}/icons/hicolor/32x32/mimetypes/ +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/32x32/mimetypes/ +cp -p application-x-ugene-ext.png %{buildroot}/%{_datadir}/icons/hicolor/32x32/mimetypes/ # 1-12 mime -mkdir -p ./%{_datadir}/mime/packages -mv ./$LIBAPPDIR/application-x-ugene.xml ./%{_datadir}/mime/packages +mkdir -p %{buildroot}%{_datadir}/mime/packages +cp -p application-x-ugene.xml %{buildroot}/%{_datadir}/mime/packages # 1-13 man file -mkdir -p ./%{_mandir}/man1 -mv ./$LIBAPPDIR/%{name}.1* ./%{_mandir}/man1 +mkdir -p %{buildroot}%{_mandir}/man1 +cp -p %{name}.1* %{buildroot}/%{_mandir}/man1 # 1-14 desktop files -mkdir -p ./%{_datadir}/applications/ -mv ./$LIBAPPDIR/%{name}.desktop ./%{_datadir}/applications/ +mkdir -p %{buildroot}%{_datadir}/applications/ +cp -p %{name}.desktop %{buildroot}/%{_datadir}/applications/ # 1-15 icons -mkdir -p ./%{_datadir}/pixmaps -mv ./$LIBAPPDIR/%{name}.{png,xpm} ./%{_datadir}/pixmaps +mkdir -p %{buildroot}%{_datadir}/pixmaps +cp -p %{name}.{png,xpm} %{buildroot}%{_datadir}/pixmaps popd %check @@ -232,6 +276,8 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop %{_libdir}/%{name}/plugins/*.plugin %{_libdir}/%{name}/plugins/lib*.so +%{_libdir}/%{name}/transl_*.qm + %{_libdir}/%{name}/%{name} %{_libdir}/%{name}/%{name}cl %{_libdir}/%{name}/%{name}m @@ -250,6 +296,48 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop %{_mandir}/man1/%{name}.1* %changelog +* Sun Nov 30 2025 Mamoru TASAKA - 53.0-1 +- 53.0 + +* Fri Jul 25 2025 Fedora Release Engineering - 52.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Jul 18 2025 Mamoru TASAKA - 52.1-2 +- Fix data files symlink + +* Thu May 08 2025 Mamoru TASAKA - 52.1-1 +- 52.1 + +* Fri Jan 24 2025 Mamoru TASAKA - 52.0-1 +- 52.0 + +* Fri Jan 17 2025 Mamoru TASAKA - 51.0-2 +- Support C23 strict function prototype + +* Thu Sep 26 2024 Mamoru TASAKA - 51.0-1 +- 51.0 + +* Wed Aug 7 2024 Miroslav Suchý - 50.0-3 +- convert license to SPDX + +* Sat Jul 20 2024 Fedora Release Engineering - 50.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sun Apr 14 2024 Mamoru TASAKA - 50.0-1 +- 50.0 + +* Sat Jan 27 2024 Fedora Release Engineering - 49.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Mamoru TASAKA - 49.1-2 +- Fix -Wnarrowing on non x86(-64) arch detected by gcc14 + +* Tue Nov 28 2023 Mamoru TASAKA - 49.1-1 +- 49.1 + +* Thu Nov 9 2023 Mamoru TASAKA - 49.0-1 +- 49.0 + * Tue Sep 5 2023 Mamoru TASAKA - 48.1-1 - 48.1