Compare commits

..

No commits in common. "rawhide" and "f35" have entirely different histories.

14 changed files with 230 additions and 327 deletions

View file

@ -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

View file

@ -1 +1 @@
SHA512 (ugene-free-53.0.tar.gz) = 233c857d9a0ea42005efaa53e5ba5162e76a149f01d7406a73bd9215b96c096b3c379cc3b14c7d7b83c61df5ea2435412f6d43c71aef84b23d1d683d5a172b30
SHA512 (ugene-free-44.0.tar.gz) = 2bc39e98335a5a89267759d438bb7b3fc61c44077a95385d0f2b39affbc07ac17956da35e64f7ae8df16c4ea469d1a937092592c34af2775c3eaa0a6ecd9f6dd

View file

@ -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);

View file

@ -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) {

View file

@ -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<QVBoxLayout*>(layout());
QVBoxLayout* l = qobject_cast<QVBoxLayout*>(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 @@

View file

@ -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 <stddef.h>
#include <stdint.h>
#include <string.h>
@ -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")

View file

@ -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 <emmintrin.h>
#include <iostream>
@@ -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 <emmintrin.h>
#include "SmithWatermanAlgorithm.h"
@@ -55,3 +56,4 @@
} // namespace U2
#endif
+#endif

View file

@ -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";

View file

@ -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 <emmintrin.h>
#include <iostream>
@@ -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 <emmintrin.h>
#include "SmithWatermanAlgorithm.h"
@@ -52,3 +53,4 @@
};
} // namespace U2
+#endif

View file

@ -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 <typename Item> 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 },

View file

@ -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

View file

@ -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<int>::of(&QComboBox::activated), this, &RegionSelectorController::sl_onPresetChanged);
if (settings.selection != nullptr) {
connect(settings.selection, SIGNAL(si_onSelectionChanged(GSelection*)), SLOT(sl_onSelectionChanged(GSelection*)));

View file

@ -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)

View file

@ -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 <mtasaka@fedoraproject.org> - 53.0-1
- 53.0
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 52.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Fri Jul 18 2025 Mamoru TASAKA <mtasaka@fedoraproject.org> - 52.1-2
- Fix data files symlink
* Thu May 08 2025 Mamoru TASAKA <mtasaka@fedoraproject.org> - 52.1-1
- 52.1
* Fri Jan 24 2025 Mamoru TASAKA <mtasaka@fedoraproject.org> - 52.0-1
- 52.0
* Fri Jan 17 2025 Mamoru TASAKA <mtasaka@fedoraproject.org> - 51.0-2
- Support C23 strict function prototype
* Thu Sep 26 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 51.0-1
- 51.0
* Wed Aug 7 2024 Miroslav Suchý <msuchy@redhat.com> - 50.0-3
- convert license to SPDX
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 50.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sun Apr 14 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 50.0-1
- 50.0
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 49.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Jan 22 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 49.1-2
- Fix -Wnarrowing on non x86(-64) arch detected by gcc14
* Tue Nov 28 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 49.1-1
- 49.1
* Thu Nov 9 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 49.0-1
- 49.0
* Tue Sep 5 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 48.1-1
- 48.1
* Thu Aug 10 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 48.0-1
- 48.0
* Sat Jul 22 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 47.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue May 23 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 47.0-1
- 47.0
* Fri Feb 24 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 46.0-1
- 46.0
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 45.1-2.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Wed Jan 18 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 45.1-2
- Header file inclusion fix for gcc13
* Sun Jan 1 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 45.1-1
- A Happy New Year 45.1 release
* Tue Dec 20 2022 Florian Weimer <fweimer@redhat.com> - 45.0-2
- Apply upstream patch to fix C99 compatibility issue
* Sun Nov 20 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 45.0-1
- 45.0
* Sun Aug 21 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 44.0-1
- 44.0