diff --git a/create-ugene-git-bare-tarball.sh b/create-ugene-git-bare-tarball.sh index e1c57aa..05f5602 100644 --- a/create-ugene-git-bare-tarball.sh +++ b/create-ugene-git-bare-tarball.sh @@ -12,7 +12,7 @@ TIME=$(date '+%H%M') TARNAME=${REPONAME}-free-${DATE}T${TIME}.tar.gz PWDDIR=$(pwd) -TMPDIR=$(mktemp -d $(pwd)/tmp-${REPONAME}-XXXXXX) +TMPDIR=$(mktemp -d /var/tmp/${REPONAME}-XXXXXX) pushd $TMPDIR git clone --depth 30 --no-single-branch --mirror $GITURL diff --git a/sources b/sources index 76e7d22..0a319e8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ugene-free-53.0.tar.gz) = 233c857d9a0ea42005efaa53e5ba5162e76a149f01d7406a73bd9215b96c096b3c379cc3b14c7d7b83c61df5ea2435412f6d43c71aef84b23d1d683d5a172b30 +SHA512 (ugene-free-44.0.tar.gz) = 2bc39e98335a5a89267759d438bb7b3fc61c44077a95385d0f2b39affbc07ac17956da35e64f7ae8df16c4ea469d1a937092592c34af2775c3eaa0a6ecd9f6dd diff --git a/ugene-40.1-libs_3rdparty-breakpad-arch-port.patch b/ugene-40.1-libs_3rdparty-breakpad-arch-port.patch index cf06c23..323159e 100644 --- a/ugene-40.1-libs_3rdparty-breakpad-arch-port.patch +++ b/ugene-40.1-libs_3rdparty-breakpad-arch-port.patch @@ -61,7 +61,7 @@ } // namespace google_breakpad --- ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/handler/exception_handler.cc.port 2021-11-09 11:04:57.135469882 +0900 +++ ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/handler/exception_handler.cc 2021-11-09 12:06:47.875738562 +0900 -@@ -442,6 +442,7 @@ int ExceptionHandler::ThreadEntry(void* +@@ -441,6 +441,7 @@ int ExceptionHandler::ThreadEntry(void* // This function runs in a compromised context: see the top of the file. // Runs on the crashing thread. bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) { @@ -69,7 +69,7 @@ if (filter_ && !filter_(callback_context_)) return false; -@@ -483,6 +484,9 @@ bool ExceptionHandler::HandleSignal(int +@@ -482,6 +483,9 @@ bool ExceptionHandler::HandleSignal(int } } return GenerateDump(&g_crash_context_); @@ -79,7 +79,7 @@ } // This is a public interface to HandleSignal that allows the client to -@@ -661,6 +665,7 @@ bool ExceptionHandler::WriteMinidump(con +@@ -660,6 +664,7 @@ bool ExceptionHandler::WriteMinidump(con __attribute__((optimize("no-omit-frame-pointer"))) #endif bool ExceptionHandler::WriteMinidump() { @@ -87,7 +87,7 @@ if (!IsOutOfProcess() && !minidump_descriptor_.IsFD() && !minidump_descriptor_.IsMicrodumpOnConsole()) { // Update the path of the minidump so that this can be called multiple times -@@ -735,6 +740,9 @@ bool ExceptionHandler::WriteMinidump() { +@@ -734,6 +739,9 @@ bool ExceptionHandler::WriteMinidump() { #endif return GenerateDump(&context); diff --git a/ugene-40.1-qbswap-bigendian-workaround.patch b/ugene-40.1-qbswap-bigendian-workaround.patch index baa1c50..7733aef 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 + - extern "C" { - #include "samtools_core/htslib/cram/cram_samtools.h" - } + namespace U2 { + + static quint8 cigarOp2samtools(U2CigarOp op, U2OpStatus &os) { diff --git a/ugene-47.x-plugins_3rdparty-hmm2-nosse-arch.patch b/ugene-42.0-plugins_3rdparty-hmm2-nosse-arch.patch similarity index 60% rename from ugene-47.x-plugins_3rdparty-hmm2-nosse-arch.patch rename to ugene-42.0-plugins_3rdparty-hmm2-nosse-arch.patch index 974f41c..63457d9 100644 --- a/ugene-47.x-plugins_3rdparty-hmm2-nosse-arch.patch +++ b/ugene-42.0-plugins_3rdparty-hmm2-nosse-arch.patch @@ -2,7 +2,7 @@ +++ ugene-40.1/src/plugins_3rdparty/hmm2/src/u_search/HMMSearchDialogController.cpp 2021-11-09 01:34:30.052988784 +0900 @@ -81,7 +81,9 @@ QWidget* w = createController->getWidget(); - auto l = qobject_cast(layout()); + QVBoxLayout* l = qobject_cast(layout()); l->insertWidget(1, w); +#if defined (__SSE2__) algoCombo->addItem(tr("SSE optimized"), HMMSearchAlgo_SSEOptimized); @@ -10,6 +10,25 @@ algoCombo->addItem(tr("Conservative"), HMMSearchAlgo_Conservative); okButton = buttonBox->button(QDialogButtonBox::Ok); +--- ugene-40.1/src/plugins_3rdparty/hmm2/src/u_search/uhmmsearch.cpp.sse 2021-10-11 15:41:23.000000000 +0900 ++++ ugene-40.1/src/plugins_3rdparty/hmm2/src/u_search/uhmmsearch.cpp 2021-11-09 01:34:30.052988784 +0900 +@@ -56,9 +56,15 @@ + tophit_s* dhit = AllocTophits(200); // domain hits: 200=lumpsize + + int nseq = 0; // number of sequences searched ++#if defined(__SSE2__) + if (s.alg == HMMSearchAlgo_SSEOptimized) { + main_loop_opt(hmm, seq, seqLen, &thresh, do_forward, do_null2, do_xnu, histogram, ghit, dhit, &nseq, si, sseScoring); +- } else if (s.alg == HMMSearchAlgo_Conservative) { ++ } ++#else ++ if (0) { ++ } ++#endif ++ else if (s.alg == HMMSearchAlgo_Conservative) { + main_loop_serial(hmm, seq, seqLen, &thresh, do_forward, do_null2, do_xnu, histogram, ghit, dhit, &nseq, si); + } else { + assert(false && "bad hmmsearch algorithm selected"); --- ugene-42.0/src/plugins_3rdparty/hmm2/src/u_search/uhmmsearch_sse.cpp.sse 2022-03-09 15:37:14.586340751 +0900 +++ ugene-42.0/src/plugins_3rdparty/hmm2/src/u_search/uhmmsearch_sse.cpp 2022-03-09 15:47:23.559077800 +0900 @@ -1,4 +1,5 @@ diff --git a/ugene-44.x-libs_3rdparty-breakpad-sys_mmap_use_system_mmap.patch b/ugene-42.x-libs_3rdparty-breakpad-sys_mmap_use_system_mmap.patch similarity index 96% rename from ugene-44.x-libs_3rdparty-breakpad-sys_mmap_use_system_mmap.patch rename to ugene-42.x-libs_3rdparty-breakpad-sys_mmap_use_system_mmap.patch index 5497653..726b799 100644 --- a/ugene-44.x-libs_3rdparty-breakpad-sys_mmap_use_system_mmap.patch +++ b/ugene-42.x-libs_3rdparty-breakpad-sys_mmap_use_system_mmap.patch @@ -19,7 +19,7 @@ --- ugene-42.x/src/libs_3rdparty/breakpad/src/third_party/lss/linux_syscall_support.h.sys_mmap 2021-10-11 15:41:23.000000000 +0900 +++ ugene-42.x/src/libs_3rdparty/breakpad/src/third_party/lss/linux_syscall_support.h 2021-11-09 00:46:06.363362301 +0900 -@@ -86,10 +86,7 @@ +@@ -85,10 +85,7 @@ * on Linux. * Porting to other related platforms should not be difficult. */ @@ -31,7 +31,7 @@ #ifndef SYS_CPLUSPLUS #ifdef __cplusplus -@@ -108,15 +105,21 @@ extern "C" { +@@ -107,15 +104,21 @@ extern "C" { #include #include #include @@ -54,7 +54,7 @@ #ifdef __mips__ /* Include definitions of the ABI currently in use. */ #ifdef __ANDROID__ -@@ -4859,6 +4862,48 @@ struct kernel_statfs { +@@ -4021,6 +4024,48 @@ struct kernel_statfs { #pragma pop_macro("pwrite64") #pragma pop_macro("getdents64") diff --git a/ugene-43.0-git-plgins-smith_waterman-nonsse2-arch.patch b/ugene-43.0-git-plgins-smith_waterman-nonsse2-arch.patch new file mode 100644 index 0000000..44aea3c --- /dev/null +++ b/ugene-43.0-git-plgins-smith_waterman-nonsse2-arch.patch @@ -0,0 +1,103 @@ +--- ugene-40.1/src/plugins/smith_waterman/src/SWAlgorithmPlugin.cpp.sse_2 2021-11-11 15:42:19.590500062 +0900 ++++ ugene-40.1/src/plugins/smith_waterman/src/SWAlgorithmPlugin.cpp 2021-11-11 15:42:26.384496818 +0900 +@@ -99,9 +99,11 @@ + par->registerAlgorithm(new SWPairwiseAlignmentAlgorithm()); + regDependedIMPLFromOtherPlugins(); + ++#if defined (__SSE2__) + coreLog.trace("Registering SSE2 SW implementation"); + swar->registerFactory(new SWTaskFactory(SW_sse2), QString("SSE2")); + par->getAlgorithm("Smith-Waterman")->addAlgorithmRealization(new PairwiseAlignmentSmithWatermanTaskFactory(SW_sse2), new PairwiseAlignmentSmithWatermanGUIExtensionFactory(SW_sse2), "SSE2"); ++#endif + + this->connect(AppContext::getPluginSupport(), SIGNAL(si_allStartUpPluginsLoaded()), SLOT(regDependedIMPLFromOtherPlugins())); + } +--- ugene-40.1/src/plugins/smith_waterman/src/SWAlgorithmTask.cpp.sse_2 2021-11-11 15:42:19.590500062 +0900 ++++ ugene-40.1/src/plugins/smith_waterman/src/SWAlgorithmTask.cpp 2021-11-11 15:46:26.960369309 +0900 +@@ -181,6 +181,7 @@ + sWatermanConfig.sqnc.left(c.chunkSize * c.nThreads), + sWatermanConfig.resultView); + break; ++#ifdef __SSE2__ + case SW_sse2: + neededRam = SmithWatermanAlgorithmSSE2::estimateNeededRamAmount(sWatermanConfig.ptrn, + sWatermanConfig.sqnc.left(c.chunkSize * c.nThreads), +@@ -189,6 +190,7 @@ + minScore, + maxScore, + sWatermanConfig.resultView); ++#endif + break; + default: + assert(0); +@@ -267,7 +269,12 @@ + + SmithWatermanAlgorithm* sw = nullptr; + if (algType == SW_sse2) { ++#if defined(__SSE2__) + sw = new SmithWatermanAlgorithmSSE2; ++#else ++ coreLog.error("SSE2 was not enabled in this build"); ++ return; ++#endif + } else if (algType == SW_cuda) { + #ifdef SW2_BUILD_WITH_CUDA + sw = new SmithWatermanAlgorithmCUDA; +@@ -581,7 +588,11 @@ + + SmithWatermanAlgorithm* sw = nullptr; + if (algType == SW_sse2) { ++#if defined(__SSE2__) + sw = new SmithWatermanAlgorithmSSE2; ++#else ++ coreLog.error("SSE2 was not enabled in this build"); ++#endif + } else if (algType == SW_cuda) { + #ifdef SW2_BUILD_WITH_CUDA + sw = new SmithWatermanAlgorithmCUDA; +@@ -745,6 +756,7 @@ + sqnc->left(c.chunkSize * c.nThreads), + SmithWatermanSettings::MULTIPLE_ALIGNMENT); + break; ++#ifdef __SSE2__ + case SW_sse2: + neededRam = SmithWatermanAlgorithmSSE2::estimateNeededRamAmount(*ptrn, + sqnc->left(c.chunkSize * c.nThreads), +@@ -753,6 +765,7 @@ + minScore, + maxScore, + SmithWatermanSettings::MULTIPLE_ALIGNMENT); ++#endif + break; + default: + assert(0); +--- ugene-40.1/src/plugins/smith_waterman/src/SmithWatermanAlgorithmSSE2.cpp.sse_2 2021-11-11 15:42:19.591500062 +0900 ++++ ugene-40.1/src/plugins/smith_waterman/src/SmithWatermanAlgorithmSSE2.cpp 2021-11-11 15:42:26.385496818 +0900 +@@ -19,6 +19,7 @@ + * MA 02110-1301, USA. + */ + ++#if defined(__SSE2__) + #include + #include + +@@ -1210,3 +1211,4 @@ + } + + } // namespace U2 ++#endif +--- ugene-40.1/src/plugins/smith_waterman/src/SmithWatermanAlgorithmSSE2.h.sse_2 2021-11-11 15:42:19.592500061 +0900 ++++ ugene-40.1/src/plugins/smith_waterman/src/SmithWatermanAlgorithmSSE2.h 2021-11-11 15:42:26.385496818 +0900 +@@ -22,6 +22,7 @@ + #ifndef _SMITHWATERMANALGORITHM_SSE2_H + #define _SMITHWATERMANALGORITHM_SSE2_H + ++#if defined(__SSE2__) + #include + + #include "SmithWatermanAlgorithm.h" +@@ -55,3 +56,4 @@ + } // namespace U2 + + #endif ++#endif diff --git a/ugene-43.x-wrong-elif-SendReportDialog.patch b/ugene-43.x-wrong-elif-SendReportDialog.patch new file mode 100644 index 0000000..ac49ca0 --- /dev/null +++ b/ugene-43.x-wrong-elif-SendReportDialog.patch @@ -0,0 +1,17 @@ +--- ugene-43.0/src/ugenem/src/SendReportDialog.cpp.elif 2022-08-17 15:55:45.936686547 +0900 ++++ ugene-43.0/src/ugenem/src/SendReportDialog.cpp 2022-08-17 20:56:02.123046050 +0900 +@@ -497,11 +497,11 @@ + QString ReportSender::getArchSuffix() const { + #ifdef Q_PROCESSOR_X86_64 + return " x64"; +-#elif Q_PROCESSOR_X86_32 ++#elif defined(Q_PROCESSOR_X86_32) + return " x86"; +-#elif Q_PROCESSOR_ARM_64 ++#elif defined(Q_PROCESSOR_ARM_64) + return " arm-64"; +-#elif Q_PROCESSOR_ARM_32 ++#elif defined(Q_PROCESSOR_ARM_32) + return " arm-32"; + #else + return " unknown-arch"; diff --git a/ugene-47.x-git-plgins-smith_waterman-nonsse2-arch.patch b/ugene-47.x-git-plgins-smith_waterman-nonsse2-arch.patch deleted file mode 100644 index 7ba07ff..0000000 --- a/ugene-47.x-git-plgins-smith_waterman-nonsse2-arch.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- ugene-40.1/src/plugins/smith_waterman/src/SmithWatermanAlgorithmSSE2.cpp.sse_2 2021-11-11 15:42:19.591500062 +0900 -+++ ugene-40.1/src/plugins/smith_waterman/src/SmithWatermanAlgorithmSSE2.cpp 2021-11-11 15:42:26.385496818 +0900 -@@ -23,6 +23,7 @@ - * MA 02110-1301, USA. - */ - -+#if defined(__SSE2__) - #include - #include - -@@ -1214,3 +1215,4 @@ - } - - } // namespace U2 -+#endif ---- ugene-40.1/src/plugins/smith_waterman/src/SmithWatermanAlgorithmSSE2.h.sse_2 2021-11-11 15:42:19.592500061 +0900 -+++ ugene-40.1/src/plugins/smith_waterman/src/SmithWatermanAlgorithmSSE2.h 2021-11-11 15:42:26.385496818 +0900 -@@ -21,6 +21,7 @@ - - #pragma once - -+#if defined(__SSE2__) - #include - - #include "SmithWatermanAlgorithm.h" -@@ -52,3 +53,4 @@ - }; - - } // namespace U2 -+#endif diff --git a/ugene-49.1-narrowing-for-unsigned-char.patch b/ugene-49.1-narrowing-for-unsigned-char.patch deleted file mode 100644 index a37bc35..0000000 --- a/ugene-49.1-narrowing-for-unsigned-char.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- 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 deleted file mode 100644 index d21b04b..0000000 --- a/ugene-50.x-aarch64-neon-impl-not-yet.patch +++ /dev/null @@ -1,26 +0,0 @@ -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 deleted file mode 100644 index ebc5ad2..0000000 --- a/ugene-52.1.x-RegionSelectorController-overload.patch +++ /dev/null @@ -1,13 +0,0 @@ -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 deleted file mode 100644 index 72ca2de..0000000 --- a/ugene-52.x-s390x-platform-macro.patch +++ /dev/null @@ -1,27 +0,0 @@ -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 7390734..9dfb7d8 100644 --- a/ugene.spec +++ b/ugene.spec @@ -2,24 +2,24 @@ %if 0%{?use_release_branch} < 1 # master -%global gitdate 20251211 -%global gitcommit b50ca792f254939978f0ffd3126e3d9ab770a10a +%global gitdate 20220815 +%global gitcommit 8b6c9d5487227e26e414d93442a5083c3e705091 # New git commit with non-free part removed using "git filter-branch" -%global gitcommit_free 7e674061492924b3dfbc884c4c9503ecab9887b2 +%global gitcommit_free 94307b664095fb0e88062f570c8c765d8cbf5cc5 %else # currently 41.0 branch -%global gitdate 20250313 -%global gitcommit c0dffab5a15e01c026f80cf0a7033b08112a355f +%global gitdate 20211117 +%global gitcommit 2d776cc668bc5019452e25ecc330c88093e75c48 # New git commit with non-free part using "git filter-branch" -%global gitcommit_free b0631c54cc0603a88793ed5d6ee02dec196b823e +%global gitcommit_free 02c04596cd6543ab44cc212ac1b383f825998b0e %endif %global shortcommit %(c=%{gitcommit}; echo ${c:0:7}) -%global git_version %{gitdate}git%{shortcommit} +%global git_version D%{gitdate}git%{shortcommit} -%global tarballdate 20251211 -%global tarballtime 2210 +%global tarballdate 20220817 +%global tarballtime 1514 %global use_release 1 %global use_gitbare 0 @@ -35,34 +35,33 @@ %global GIT git %endif -%global mainver 53.0 +%global mainrel 1 %undefine prever %if 0%{?use_release} >= 1 -%global fedoraver %{mainver}%{?prever:~%{prerpmver}} +%global fedorarel %{?prever:0.}%{mainrel}%{?prever:.%{prerpmver}} %endif %if 0%{?use_gitbare} >= 1 -%global fedoraver %{mainver}%{?git_version:^%{git_version}} +%global fedorarel %{mainrel}.%{git_version} %endif Name: ugene Summary: Integrated bioinformatics toolkit -Version: %{fedoraver} -Release: 1%{?dist} +Version: 44.0 +Release: %{fedorarel}%{?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 -# Automatically converted from old format: GPLv2+ and GPLv2 - review is highly recommended. -License: GPL-2.0-or-later AND GPL-2.0-only +License: GPLv2+ and GPLv2 URL: http://ugene.net %if 0%{?use_release} >= 1 -#Source0: https://github.com/ugeneunipro/ugene/archive/%{mainver}.tar.gz/#/%{name}-%{mainver}.tar.gz +#Source0: https://github.com/ugeneunipro/ugene/archive/%{version}.tar.gz/#/%{name}-%{version}.tar.gz # Removing non-free part -Source0: %{name}-free-%{mainver}.tar.gz -# Source0 is created by # env VERSION=%%{mainver} source ./%{SOURCE1} +Source0: %{name}-free-%{version}.tar.gz +# Source0 is created by # env VERSION=%%{version} source ./%{SOURCE1} %endif %if 0%{?use_gitbare} >= 1 Source0: %{name}-free-%{tarballdate}T%{tarballtime}.tar.gz @@ -71,17 +70,14 @@ 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 +Patch102: ugene-42.x-libs_3rdparty-breakpad-sys_mmap_use_system_mmap.patch Patch103: ugene-40.1-libs_3rdparty-breakpad-unwind-nonsupported-arch.patch -Patch104: ugene-47.x-plugins_3rdparty-hmm2-nosse-arch.patch +Patch104: ugene-42.0-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 +Patch106: ugene-43.0-git-plgins-smith_waterman-nonsse2-arch.patch Patch107: ugene-40.1-qbswap-bigendian-workaround.patch -Patch109: ugene-50.x-aarch64-neon-impl-not-yet.patch -Patch110: ugene-52.x-s390x-platform-macro.patch +Patch108: ugene-43.x-wrong-elif-SendReportDialog.patch BuildRequires: make BuildRequires: gcc-c++ @@ -93,16 +89,13 @@ 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) @@ -124,139 +117,102 @@ 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 -%setup -q -c -n %{name}-%{mainver}%{?git_version:-%{git_version}} -T -a 0 +%setup -q -c -T -a 0 git clone ./%{name}.git/ cd %{name} cp -a [A-Z]* .. -git checkout -b %{mainver}-fedora %{gitcommit_free} +git checkout -b %{version}-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 - %GIT commit -m "libs_3rdparty/breakpad: workaround for arch not supporting unwind" -a -%patch -P104 -p1 -b .sse -Z - %GIT commit -m "plugins_3rdparty/hmm2: support architecture not supporting SSE2" -a -%patch -P105 -p1 -b .port -Z - %GIT commit -m "libs_3rdparty/breakpad: workaround for arch not ported by the upstream" -a -%patch -P106 -p1 -b .sse_2 -Z - %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 -%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 +%patch102 -p1 -b .sys_mmap -Z + %GIT commit -m "libs_3rdparty/breakpad: use C function instead of directly using syscall assemble code" -a +%patch103 -p1 -b .unwind -Z + %GIT commit -m "libs_3rdparty/breakpad: workaround for arch not supporting unwind" -a +%patch104 -p1 -b .sse -Z + %GIT commit -m "plugins_3rdparty/hmm2: support architecture not supporting SSE2" -a +%patch105 -p1 -b .port -Z + %GIT commit -m "libs_3rdparty/breakpad: workaround for arch not ported by the upstream" -a +%patch106 -p1 -b .sse_2 -Z + %GIT commit -m "plugins/smith_waterman: support architecture not supporting SSE2" -a +%patch107 -p1 -b .char_bigen -Z + %GIT commit -m "src/corelibs/U2Core et al.: Workaround for Qt qbswap issue on Q_BIG_ENDIAN" -a +%patch108 -p1 -b .elif -Z + %GIT commit -m "ugenem/src/SendReportDialog.cpp: fix wrong elif usage" -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 - -export QT_DIR=%{_libdir}/qt5 -export LD_LIBRARY_PATH=$(pwd)/%{_vpath_builddir}/dist - -%cmake \ - -DCMAKE_SKIP_RPATH=TRUE \ +%{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} -%cmake_build + +%make_build -k %install +LIBAPPDIR=%{_libdir}/%{name} + %if 0%{?use_gitbare} >= 1 cd %{name} %endif +make install \ + INSTALL_ROOT=%{buildroot} \ + INSTALL="install -p" \ + %{nil} -%cmake_install +# Some needed files are not installed..... +mkdir -p %{buildroot}$LIBAPPDIR +cp -a src/_release/* %{buildroot}$LIBAPPDIR +rm -f %{buildroot}$LIBAPPDIR/*.a -# Install all files manually... -# 0. Documents -cp -a \ - LICENSE.3rd_party.txt \ - LICENSE.txt \ - .. - -pushd %_vpath_builddir +# 1. manually move files... +pushd %{buildroot} +rm -f ./$LIBAPPDIR/LICENSE* # 1-0 bindir -mkdir -p %{buildroot}%{_bindir} -install -cpm 0755 %{SOURCE10} %{buildroot}%{_bindir}/%{name} +mkdir -p ./%{_bindir} +install -cpm 0755 %{SOURCE10} ./%{_bindir}/%{name} -# 1-1 libraries -mkdir -p %{buildroot}%{_libdir}/%{name} -cp -a dist/* %{buildroot}%{_libdir}/%{name}/ -rm -f %{buildroot}%{_libdir}/%{name}/*.a +# 1-1 data files +mkdir -p ./%{_datadir}/%{name}/ +mv ./$LIBAPPDIR/data ./%{_datadir}/%{name} +ln -sf ../../../%{_datadir}/%{name} ./$LIBAPPDIR/data -# 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 %{buildroot}%{_datadir}/icons/hicolor/32x32/mimetypes/ -cp -p application-x-ugene-ext.png %{buildroot}/%{_datadir}/icons/hicolor/32x32/mimetypes/ +mkdir -p ./%{_datadir}/icons/hicolor/32x32/mimetypes/ +mv ./$LIBAPPDIR/application-x-ugene-ext.png ./%{_datadir}/icons/hicolor/32x32/mimetypes/ # 1-12 mime -mkdir -p %{buildroot}%{_datadir}/mime/packages -cp -p application-x-ugene.xml %{buildroot}/%{_datadir}/mime/packages +mkdir -p ./%{_datadir}/mime/packages +mv ./$LIBAPPDIR/application-x-ugene.xml ./%{_datadir}/mime/packages # 1-13 man file -mkdir -p %{buildroot}%{_mandir}/man1 -cp -p %{name}.1* %{buildroot}/%{_mandir}/man1 +mkdir -p ./%{_mandir}/man1 +mv ./$LIBAPPDIR/%{name}.1* ./%{_mandir}/man1 # 1-14 desktop files -mkdir -p %{buildroot}%{_datadir}/applications/ -cp -p %{name}.desktop %{buildroot}/%{_datadir}/applications/ +mkdir -p ./%{_datadir}/applications/ +mv ./$LIBAPPDIR/%{name}.desktop ./%{_datadir}/applications/ # 1-15 icons -mkdir -p %{buildroot}%{_datadir}/pixmaps -cp -p %{name}.{png,xpm} %{buildroot}%{_datadir}/pixmaps +mkdir -p ./%{_datadir}/pixmaps +mv ./$LIBAPPDIR/%{name}.{png,xpm} ./%{_datadir}/pixmaps popd %check @@ -276,8 +232,6 @@ 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 @@ -296,78 +250,6 @@ 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 - -* Thu Aug 10 2023 Mamoru TASAKA - 48.0-1 -- 48.0 - -* Sat Jul 22 2023 Mamoru TASAKA - 47.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Tue May 23 2023 Mamoru TASAKA - 47.0-1 -- 47.0 - -* Fri Feb 24 2023 Mamoru TASAKA - 46.0-1 -- 46.0 - -* Sat Jan 21 2023 Fedora Release Engineering - 45.1-2.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Wed Jan 18 2023 Mamoru TASAKA - 45.1-2 -- Header file inclusion fix for gcc13 - -* Sun Jan 1 2023 Mamoru TASAKA - 45.1-1 -- A Happy New Year 45.1 release - -* Tue Dec 20 2022 Florian Weimer - 45.0-2 -- Apply upstream patch to fix C99 compatibility issue - -* Sun Nov 20 2022 Mamoru TASAKA - 45.0-1 -- 45.0 - * Sun Aug 21 2022 Mamoru TASAKA - 44.0-1 - 44.0