diff --git a/.gitignore b/.gitignore index 865ec36..d0a90d7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -/ugene-1.*.tar.gz -/ugene-33.0.tar.gz +/ugene-free-*.tar.gz diff --git a/create-ugene-free-tarball.sh b/create-ugene-free-tarball.sh new file mode 100644 index 0000000..b07b9af --- /dev/null +++ b/create-ugene-free-tarball.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +set -e +set -x + +umask 0022 + +VERSION=${VERSION:-40.1} +FEDORA_TAR_VERSION=${VERSION} + +REPONAME=ugene +TARNAME=${REPONAME} + +SOURCE_TOP_URL=https://github.com/ugeneunipro/${REPONAME}/archive/ + +CURRENT_DIR=$(pwd) +TMPDIR=$(mktemp -d /var/tmp/${REPONAME}-XXXXXX) + + +pushd $TMPDIR + +TARBALL_NAME=${TARNAME}-${FEDORA_TAR_VERSION}.tar.gz +SOURCE_URL=${SOURCE_TOP_URL}/${VERSION}/${TARBALL_NAME} + +wget -N ${SOURCE_URL} +rm -rf ${TARNAME}-${VERSION} +tar xzf ${TARBALL_NAME} + +pushd ${TARNAME}-${VERSION} + +echo "Removing nonfree code" +for NONFREE in \ + src/plugins_3rdparty/psipred +do + rm -rf $NONFREE +done + +echo "done" +popd + +tar czf ${TARNAME}-free-${FEDORA_TAR_VERSION}.tar.gz ${TARNAME}-${VERSION}/ +mv ${TARNAME}-free-${FEDORA_TAR_VERSION}.tar.gz ${CURRENT_DIR}/ + +popd +rm -rf $TMPDIR + diff --git a/create-ugene-git-bare-tarball.sh b/create-ugene-git-bare-tarball.sh new file mode 100644 index 0000000..e1c57aa --- /dev/null +++ b/create-ugene-git-bare-tarball.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +set -x +set -e + +REPONAME=ugene +GITURL=https://github.com/ugeneunipro/${REPONAME}.git + +DATE=$(date '+%Y%m%d') +TIME=$(date '+%H%M') + +TARNAME=${REPONAME}-free-${DATE}T${TIME}.tar.gz + +PWDDIR=$(pwd) +TMPDIR=$(mktemp -d $(pwd)/tmp-${REPONAME}-XXXXXX) +pushd $TMPDIR + +git clone --depth 30 --no-single-branch --mirror $GITURL + +pushd ${REPONAME}.git + +git log 2>&1 | head -n 5 > git-log-orig.txt +#grep version README.md + +# remove non-free part +for NONFREE in \ + src/plugins_3rdparty/psipred +do + env FILTER_BRANCH_SQUELCH_WARNING=1 \ + git filter-branch --index-filter "git rm -r --cached --ignore-unmatch $NONFREE" -- --all +done + +# And again show git head info +git log 2>&1 | head -n 5 +#grep version README.md +echo + +# Here again show original git head infob +cat git-log-orig.txt +echo +rm -f git-log-orig.txt + +popd + +tar czf ${TARNAME} ${REPONAME}.git/ + +cp -p ${TARNAME} $PWDDIR +popd +rm -rf $TMPDIR diff --git a/sources b/sources index 5622a2a..76e7d22 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ugene-33.0.tar.gz) = 5e02a1845d7626c1287002a25bfa1551234fc94312963aef2981bdfe70af1959d5b1c4289af0138dfa9ba44846454ba2d4d9cd96f029bac1ab262ed2bc583d87 +SHA512 (ugene-free-53.0.tar.gz) = 233c857d9a0ea42005efaa53e5ba5162e76a149f01d7406a73bd9215b96c096b3c379cc3b14c7d7b83c61df5ea2435412f6d43c71aef84b23d1d683d5a172b30 diff --git a/ugene-1.31.0.patch b/ugene-1.31.0.patch deleted file mode 100644 index a478a52..0000000 --- a/ugene-1.31.0.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/src/plugins/external_tool_support/src/trimmomatic/util/LengthSettingsWidget.cpp b/src/plugins/external_tool_support/src/trimmomatic/util/LengthSettingsWidget.cpp -index a2541b880..f806afef7 100644 ---- a/src/plugins/external_tool_support/src/trimmomatic/util/LengthSettingsWidget.cpp -+++ b/src/plugins/external_tool_support/src/trimmomatic/util/LengthSettingsWidget.cpp -@@ -20,6 +20,7 @@ - */ - - #include -+#include - - #include "LengthSettingsWidget.h" - #include "LineEditHighlighter.h" -diff --git a/src/plugins/external_tool_support/src/trimmomatic/util/QualitySettingsWidget.cpp b/src/plugins/external_tool_support/src/trimmomatic/util/QualitySettingsWidget.cpp -index 00ecfef09..bce841083 100644 ---- a/src/plugins/external_tool_support/src/trimmomatic/util/QualitySettingsWidget.cpp -+++ b/src/plugins/external_tool_support/src/trimmomatic/util/QualitySettingsWidget.cpp -@@ -19,6 +19,7 @@ - * MA 02110-1301, USA. - */ - -+#include - #include - - #include "QualitySettingsWidget.h" diff --git a/ugene-40.1-libs_3rdparty-breakpad-arch-port.patch b/ugene-40.1-libs_3rdparty-breakpad-arch-port.patch new file mode 100644 index 0000000..cf06c23 --- /dev/null +++ b/ugene-40.1-libs_3rdparty-breakpad-arch-port.patch @@ -0,0 +1,183 @@ +--- ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/dump_writer_common/thread_info.cc.port 2021-10-11 15:41:23.000000000 +0900 ++++ ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/dump_writer_common/thread_info.cc 2021-11-09 11:04:57.375470034 +0900 +@@ -270,9 +270,19 @@ void ThreadInfo::FillCPUContext(RawConte + out->float_save.fir = mcontext.fpc_eir; + #endif + } ++ ++#else ++uintptr_t ThreadInfo::GetInstructionPointer() const { ++ return 0; ++} ++ ++void ThreadInfo::FillCPUContext(RawContextCPU* out) const { ++} ++ + #endif // __mips__ + + void ThreadInfo::GetGeneralPurposeRegisters(void** gp_regs, size_t* size) { ++#if defined(__i386) || defined(__x86_64) || defined(__ARM_EABI__) || defined(__aarch64__) || defined(__mips__) + assert(gp_regs || size); + #if defined(__mips__) + if (gp_regs) +@@ -285,9 +295,11 @@ void ThreadInfo::GetGeneralPurposeRegist + if (size) + *size = sizeof(regs); + #endif ++#endif + } + + void ThreadInfo::GetFloatingPointRegisters(void** fp_regs, size_t* size) { ++#if defined(__i386) || defined(__x86_64) || defined(__ARM_EABI__) || defined(__aarch64__) || defined(__mips__) + assert(fp_regs || size); + #if defined(__mips__) + if (fp_regs) +@@ -300,6 +312,7 @@ void ThreadInfo::GetFloatingPointRegiste + if (size) + *size = sizeof(fpregs); + #endif ++#endif + } + + } // namespace google_breakpad +--- ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc.port 2021-11-09 12:13:14.526068539 +0900 ++++ ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc 2021-11-09 12:13:47.079160354 +0900 +@@ -254,6 +254,16 @@ void UContextReader::FillCPUContext(RawC + out->float_save.fir = uc->uc_mcontext.fpc_eir; // Unused. + #endif + } ++ ++#else ++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { ++ return 0; ++} ++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { ++ return 0; ++} ++void UContextReader::FillCPUContext(RawContextCPU* out, const ucontext_t* uc) { ++} + #endif + + } // 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* + // 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) { ++#if defined(__i386) || defined(__x86_64) || defined(__ARM_EABI__) || defined(__aarch64__) || defined(__mips__) + if (filter_ && !filter_(callback_context_)) + return false; + +@@ -483,6 +484,9 @@ bool ExceptionHandler::HandleSignal(int + } + } + return GenerateDump(&g_crash_context_); ++#else ++ return false; ++#endif + } + + // This is a public interface to HandleSignal that allows the client to +@@ -661,6 +665,7 @@ bool ExceptionHandler::WriteMinidump(con + __attribute__((optimize("no-omit-frame-pointer"))) + #endif + bool ExceptionHandler::WriteMinidump() { ++#if defined(__i386) || defined(__x86_64) || defined(__ARM_EABI__) || defined(__aarch64__) || defined(__mips__) + 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() { + #endif + + return GenerateDump(&context); ++#else ++ return false; ++#endif + } + + void ExceptionHandler::AddMappingInfo(const string& name, +--- ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/microdump_writer/microdump_writer.cc.port 2021-10-11 15:41:23.000000000 +0900 ++++ ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/microdump_writer/microdump_writer.cc 2021-11-09 12:20:24.529281407 +0900 +@@ -338,7 +338,7 @@ class MicrodumpWriter { + # error "This mips ABI is currently not supported (n32)" + #endif + #else +-#error "This code has not been ported to your platform yet" ++ const char kArch[] = "unknown"; + #endif + + LogAppend("O "); +@@ -409,11 +409,15 @@ class MicrodumpWriter { + void DumpCPUState() { + RawContextCPU cpu; + my_memset(&cpu, 0, sizeof(RawContextCPU)); ++#if !defined(__i386__) && !defined(__x86_64) && !defined(__aarch64__) ++ UContextReader::FillCPUContext(&cpu, ucontext_); ++#else + #if !defined(__ARM_EABI__) && !defined(__mips__) + UContextReader::FillCPUContext(&cpu, ucontext_, float_state_); + #else + UContextReader::FillCPUContext(&cpu, ucontext_); + #endif ++#endif + LogAppend("C "); + LogAppend(&cpu, sizeof(cpu)); + LogCommitLine(); +--- ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/minidump_writer/linux_dumper.h.port 2021-10-11 15:41:23.000000000 +0900 ++++ ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/minidump_writer/linux_dumper.h 2021-11-09 11:04:57.384470040 +0900 +@@ -63,6 +63,7 @@ namespace google_breakpad { + (defined(__mips__) && _MIPS_SIM == _ABIO32) + typedef Elf32_auxv_t elf_aux_entry; + #elif defined(__x86_64) || defined(__aarch64__) || \ ++ defined(__powerpc64__) || defined(__s390x__) || \ + (defined(__mips__) && _MIPS_SIM != _ABIO32) + typedef Elf64_auxv_t elf_aux_entry; + #endif +--- ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc.port 2021-10-11 15:41:23.000000000 +0900 ++++ ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc 2021-11-09 11:04:57.384470040 +0900 +@@ -198,6 +198,7 @@ bool LinuxPtraceDumper::ReadRegisters(Th + // these members are set to -1. Returns true iff all three members are + // available. + bool LinuxPtraceDumper::GetThreadInfoByIndex(size_t index, ThreadInfo* info) { ++#if defined(__i386) || defined(__x86_64) || defined(__ARM_EABI__) || defined(__aarch64__) || defined(__mips__) + if (index >= threads_.size()) + return false; + +@@ -304,6 +305,9 @@ bool LinuxPtraceDumper::GetThreadInfoByI + info->stack_pointer = reinterpret_cast(stack_pointer); + + return true; ++#else ++ return false; ++#endif + } + + bool LinuxPtraceDumper::IsPostMortem() const { +--- ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/minidump_writer/minidump_writer.cc.port 2021-10-11 15:41:23.000000000 +0900 ++++ ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/minidump_writer/minidump_writer.cc 2021-11-09 12:20:06.954231835 +0900 +@@ -468,11 +468,15 @@ class MinidumpWriter { + if (!cpu.Allocate()) + return false; + my_memset(cpu.get(), 0, sizeof(RawContextCPU)); ++#if !defined(__i386__) && !defined(__x86_64) && !defined(__aarch64__) ++ UContextReader::FillCPUContext(cpu.get(), ucontext_); ++#else + #if !defined(__ARM_EABI__) && !defined(__mips__) + UContextReader::FillCPUContext(cpu.get(), ucontext_, float_state_); + #else + UContextReader::FillCPUContext(cpu.get(), ucontext_); + #endif ++#endif + thread.thread_context = cpu.location(); + crashing_thread_context_ = cpu.location(); + } else { +@@ -1206,7 +1210,7 @@ class MinidumpWriter { + return true; + } + #else +-# error "Unsupported CPU" ++ bool WriteCPUInformation(MDRawSystemInfo* sys_info) { return false; } + #endif + + bool WriteFile(MDLocationDescriptor* result, const char* filename) { diff --git a/ugene-40.1-libs_3rdparty-breakpad-unwind-nonsupported-arch.patch b/ugene-40.1-libs_3rdparty-breakpad-unwind-nonsupported-arch.patch new file mode 100644 index 0000000..10bcf83 --- /dev/null +++ b/ugene-40.1-libs_3rdparty-breakpad-unwind-nonsupported-arch.patch @@ -0,0 +1,11 @@ +--- ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h.unwind 2021-10-11 15:41:23.000000000 +0900 ++++ ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h 2021-11-08 20:15:01.057998601 +0900 +@@ -45,7 +45,7 @@ typedef MDRawContextARM64_Old RawContext + #elif defined(__mips__) + typedef MDRawContextMIPS RawContextCPU; + #else +-#error "This code has not been ported to your platform yet." ++typedef unsigned long RawContextCPU; + #endif + + } // namespace google_breakpad diff --git a/ugene-40.1-qbswap-bigendian-workaround.patch b/ugene-40.1-qbswap-bigendian-workaround.patch new file mode 100644 index 0000000..baa1c50 --- /dev/null +++ b/ugene-40.1-qbswap-bigendian-workaround.patch @@ -0,0 +1,45 @@ +--- ugene-40.1/src/corelibs/U2Core/src/io/ZlibAdapter.cpp.char_bigen 2021-10-11 15:41:23.000000000 +0900 ++++ ugene-40.1/src/corelibs/U2Core/src/io/ZlibAdapter.cpp 2021-11-09 16:41:07.802412220 +0900 +@@ -29,6 +29,12 @@ + + #include "LocalFileAdapter.h" + ++QT_BEGIN_NAMESPACE ++#if defined(Q_BYTE_ORDER) && Q_BYTE_ORDER == Q_BIG_ENDIAN ++template <> inline Q_DECL_CONSTEXPR char qbswap(char source) { return source; } ++#endif ++QT_END_NAMESPACE ++ + namespace U2 { + + class GzipUtil { +--- ugene-40.1/src/corelibs/U2Core/src/util/DatatypeSerializeUtils.cpp.char_bigen 2021-10-11 15:41:23.000000000 +0900 ++++ ugene-40.1/src/corelibs/U2Core/src/util/DatatypeSerializeUtils.cpp 2021-11-09 14:55:12.703372481 +0900 +@@ -31,6 +31,12 @@ + #include + #include + ++QT_BEGIN_NAMESPACE ++#if defined(Q_BYTE_ORDER) && Q_BYTE_ORDER == Q_BIG_ENDIAN ++template <> inline Q_DECL_CONSTEXPR char qbswap(char source) { return source; } ++#endif ++QT_END_NAMESPACE ++ + namespace U2 { + + const QString DNAChromatogramSerializer::ID = "chroma_1.14"; +--- ugene-40.1/src/libs_3rdparty/samtools/src/SamtoolsAdapter.cpp.char_bigen 2021-10-11 15:41:23.000000000 +0900 ++++ ugene-40.1/src/libs_3rdparty/samtools/src/SamtoolsAdapter.cpp 2021-11-09 16:40:41.872455587 +0900 +@@ -27,6 +27,12 @@ + #include + #include + ++QT_BEGIN_NAMESPACE ++#if defined(Q_BYTE_ORDER) && Q_BYTE_ORDER == Q_BIG_ENDIAN ++template <> inline Q_DECL_CONSTEXPR char qbswap(char source) { return source; } ++#endif ++QT_END_NAMESPACE ++ + extern "C" { + #include "samtools_core/htslib/cram/cram_samtools.h" + } diff --git a/ugene-44.x-libs_3rdparty-breakpad-sys_mmap_use_system_mmap.patch b/ugene-44.x-libs_3rdparty-breakpad-sys_mmap_use_system_mmap.patch new file mode 100644 index 0000000..5497653 --- /dev/null +++ b/ugene-44.x-libs_3rdparty-breakpad-sys_mmap_use_system_mmap.patch @@ -0,0 +1,105 @@ +--- ugene-40.1/src/libs_3rdparty/breakpad/src/common/memory_allocator.h.sys_mmap 2021-10-11 15:41:23.000000000 +0900 ++++ ugene-40.1/src/libs_3rdparty/breakpad/src/common/memory_allocator.h 2021-11-08 22:21:13.962461668 +0900 +@@ -42,11 +42,14 @@ + #include + #endif + +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined(__linux__) + #define sys_mmap mmap + #define sys_munmap munmap ++#if !defined(__linux__) + #define MAP_ANONYMOUS MAP_ANON +-#else ++#endif ++#endif ++#if ! defined(__APPLE__) + #include "third_party/lss/linux_syscall_support.h" + #endif + +--- 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 @@ + * on Linux. + * Porting to other related platforms should not be difficult. + */ +-#if (defined(__i386__) || defined(__x86_64__) || defined(__ARM_ARCH_3__) || \ +- defined(__mips__) || defined(__PPC__) || defined(__ARM_EABI__) || \ +- defined(__aarch64__) || defined(__s390__) || defined(__e2k__)) \ +- && (defined(__linux) || defined(__ANDROID__)) ++#if defined(__linux) || defined(__ANDROID__) + + #ifndef SYS_CPLUSPLUS + #ifdef __cplusplus +@@ -108,15 +105,21 @@ extern "C" { + #include + #include + #include +-#include + #include + #include + #include ++#include + #include ++#include + #include + #include ++#include + #include + ++#ifndef __linux__ ++#ifndef __linux__ ++#ifndef __linux__ ++ + #ifdef __mips__ + /* Include definitions of the ABI currently in use. */ + #ifdef __ANDROID__ +@@ -4859,6 +4862,48 @@ struct kernel_statfs { + #pragma pop_macro("pwrite64") + #pragma pop_macro("getdents64") + ++#endif ++#endif ++#endif ++#ifdef __linux__ ++#define sys_open open ++#define sys_close close ++#define sys_lseek lseek ++#define sys_write ::write ++#define sys_read read ++#define sys_pipe pipe ++#define sys_tgkill tgkill ++#define sys_gettid gettid ++#define sys_prctl prctl ++#define sys_clone clone ++#define sys_waitpid waitpid ++#define sys_sigaltstack sigaltstack ++#define sys_getpid getpid ++#define sys_ptrace(a,b,c,d) ptrace((enum __ptrace_request)a,b,c,d) ++#define sys_stat stat ++#define sys_sendmsg sendmsg ++#define sys_getdents getdents64 ++#define sys_readlink readlink ++#define sys_fstat fstat ++#define sys_fstat64 fstat64 ++#define sys_mmap mmap ++#define sys_munmap munmap ++#define kernel_iovec iovec ++#define kernel_msghdr msghdr ++#define kernel_stat stat ++#define kernel_stat64 stat64 ++#define kernel_dirent linux_dirent64 ++ ++struct linux_dirent64 { ++ ino64_t d_ino; /* 64-bit inode number */ ++ off64_t d_off; /* 64-bit offset to next structure */ ++ unsigned short d_reclen; /* Size of this dirent */ ++ unsigned char d_type; /* File type */ ++ char d_name[]; /* Filename (null-terminated) */ ++}; ++ ++#endif ++ + #if defined(__cplusplus) && !defined(SYS_CPLUSPLUS) + } + #endif diff --git a/ugene-47.x-git-plgins-smith_waterman-nonsse2-arch.patch b/ugene-47.x-git-plgins-smith_waterman-nonsse2-arch.patch new file mode 100644 index 0000000..7ba07ff --- /dev/null +++ b/ugene-47.x-git-plgins-smith_waterman-nonsse2-arch.patch @@ -0,0 +1,30 @@ +--- 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-47.x-plugins_3rdparty-hmm2-nosse-arch.patch b/ugene-47.x-plugins_3rdparty-hmm2-nosse-arch.patch new file mode 100644 index 0000000..974f41c --- /dev/null +++ b/ugene-47.x-plugins_3rdparty-hmm2-nosse-arch.patch @@ -0,0 +1,36 @@ +--- ugene-40.1/src/plugins_3rdparty/hmm2/src/u_search/HMMSearchDialogController.cpp.sse 2021-10-11 15:41:23.000000000 +0900 ++++ 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()); + l->insertWidget(1, w); ++#if defined (__SSE2__) + algoCombo->addItem(tr("SSE optimized"), HMMSearchAlgo_SSEOptimized); ++#endif + algoCombo->addItem(tr("Conservative"), HMMSearchAlgo_Conservative); + + okButton = buttonBox->button(QDialogButtonBox::Ok); +--- 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 @@ + #include ++#if defined (__SSE2__) + #include + #include + +@@ -488,3 +489,4 @@ QList sseScoring(unsigned char* d + + return results; + } ++#endif +--- ugene-40.1/src/plugins_3rdparty/hmm2/src/u_search/uhmmsearch_sse.h.sse 2021-10-11 15:41:23.000000000 +0900 ++++ ugene-40.1/src/plugins_3rdparty/hmm2/src/u_search/uhmmsearch_sse.h 2021-11-09 01:34:30.052988784 +0900 +@@ -1,6 +1,8 @@ + #ifndef __HMMSEARCH_SSE_H__ + #define __HMMSEARCH_SSE_H__ + ++#if defined(__SSE2__) + QList sseScoring(unsigned char* dsq, int seqlen, plan7_s* hmm, HMMSeqGranulation* gr, U2::TaskStateInfo& ti); ++#endif + + #endif // __HMMSEARCH_SSE_H__ 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 6cd56f4..7390734 100644 --- a/ugene.spec +++ b/ugene.spec @@ -1,40 +1,118 @@ -Name: ugene -Summary: Integrated bioinformatics toolkit -Version: 33.0 -Release: 11%{?dist} +%global use_release_branch 0 + +%if 0%{?use_release_branch} < 1 +# master +%global gitdate 20251211 +%global gitcommit b50ca792f254939978f0ffd3126e3d9ab770a10a +# New git commit with non-free part removed using "git filter-branch" +%global gitcommit_free 7e674061492924b3dfbc884c4c9503ecab9887b2 +%else +# currently 41.0 branch +%global gitdate 20250313 +%global gitcommit c0dffab5a15e01c026f80cf0a7033b08112a355f +# New git commit with non-free part using "git filter-branch" +%global gitcommit_free b0631c54cc0603a88793ed5d6ee02dec196b823e +%endif + + +%global shortcommit %(c=%{gitcommit}; echo ${c:0:7}) +%global git_version %{gitdate}git%{shortcommit} + +%global tarballdate 20251211 +%global tarballtime 2210 + +%global use_release 1 +%global use_gitbare 0 + +%if 0%{?use_gitbare} < 1 +# force +%global use_release 1 +%endif + +%if 0%{?use_release} >= 1 +%global GIT true +%else +%global GIT git +%endif + +%global mainver 53.0 +%undefine prever + +%if 0%{?use_release} >= 1 +%global fedoraver %{mainver}%{?prever:~%{prerpmver}} +%endif +%if 0%{?use_gitbare} >= 1 +%global fedoraver %{mainver}%{?git_version:^%{git_version}} +%endif + + +Name: ugene +Summary: Integrated bioinformatics toolkit + +Version: %{fedoraver} +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 -URL: http://ugene.net -Source0: http://ugene.net/downloads/%{name}-%{version}.tar.gz -#Patch0: ugene-1.31.0.patch +# 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 +# Removing non-free part +Source0: %{name}-free-%{mainver}.tar.gz +# Source0 is created by # env VERSION=%%{mainver} source ./%{SOURCE1} +%endif +%if 0%{?use_gitbare} >= 1 +Source0: %{name}-free-%{tarballdate}T%{tarballtime}.tar.gz +%endif +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 +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 +Patch109: ugene-50.x-aarch64-neon-impl-not-yet.patch +Patch110: ugene-52.x-s390x-platform-macro.patch -BuildRequires: desktop-file-utils -BuildRequires: mesa-libGLU-devel -BuildRequires: qt5-qtbase-devel qt5-qtbase-private-devel -BuildRequires: qt5-qtbase-mysql -BuildRequires: qt5-qtmultimedia-devel -BuildRequires: qt5-qtscript-devel -BuildRequires: qt5-qtsensors-devel -BuildRequires: qt5-qtsvg-devel -BuildRequires: qt5-qttools-devel -BuildRequires: qt5-qtwebchannel-devel -BuildRequires: qt5-qtwebkit-devel -BuildRequires: qt5-qtxmlpatterns-devel -BuildRequires: qt5-qtwebengine-devel -BuildRequires: qt5-qtwebsockets-devel -BuildRequires: qt5-qtwebchannel-devel -BuildRequires: zlib-devel +BuildRequires: make +BuildRequires: gcc-c++ +BuildRequires: desktop-file-utils -BuildConflicts: qt-devel +%if 0%{?use_gitbare} >= 1 +BuildRequires: %{_bindir}/git +%endif -#We need strict versions of qt for correct work of src/libs_3rdparty/qtbindings_* -%{?_qt5:Requires: %{_qt5}%{?_isa} = %{_qt5_version}} +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) -Provides: bundled(sqlite) -Provides: bundled(samtools) -ExclusiveArch: %{ix86} x86_64 +BuildRequires: pkgconfig(gl) +BuildRequires: pkgconfig(glu) +BuildRequires: pkgconfig(sqlite3) +BuildRequires: pkgconfig(xtst) +BuildRequires: pkgconfig(zlib) + +Provides: bundled(samtools) = 0.1.18 %description Unipro UGENE is a cross-platform visual environment for DNA and protein @@ -44,45 +122,306 @@ complex analysis of the genomic data. One of the main features of UGENE is a designer for custom bioinformatics workflows. %prep +%if 0%{?use_release} >= 1 %setup -q -#%patch0 -p1 -b .qt510 +%endif + +%if 0%{?use_gitbare} >= 1 +%setup -q -c -n %{name}-%{mainver}%{?git_version:-%{git_version}} -T -a 0 +git clone ./%{name}.git/ +cd %{name} +cp -a [A-Z]* .. + +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 + %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 + +sed -i.nonfree CMakeLists.txt -e '\@add_subdirectory.*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 -# workaround FTBFS (https://bugzilla.redhat.com/show_bug.cgi?id=1736931) -export CXXFLAGS="-fpermissive %{optflags}" - -%{qmake_qt5} -r \ - INSTALL_BINDIR=%{_bindir} \ - INSTALL_LIBDIR=%{_libdir} \ - INSTALL_DATADIR=%{_datadir} \ - INSTALL_MANDIR=%{_mandir} \ -%if 0%{?_ugene_with_non_free} - UGENE_WITHOUT_NON_FREE=0 \ -%else - UGENE_WITHOUT_NON_FREE=1 \ +%if 0%{?use_gitbare} >= 1 +cd %{name} %endif - UGENE_EXCLUDE_LIST_ENABLED=1 +export QT_DIR=%{_libdir}/qt5 +export LD_LIBRARY_PATH=$(pwd)/%{_vpath_builddir}/dist -make %{?_smp_mflags} +%cmake \ + -DCMAKE_SKIP_RPATH=TRUE \ + %{nil} +%cmake_build %install -make install INSTALL_ROOT=%{buildroot} -desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop +%if 0%{?use_gitbare} >= 1 +cd %{name} +%endif + +%cmake_install + +# Install all files manually... +# 0. Documents +cp -a \ + LICENSE.3rd_party.txt \ + LICENSE.txt \ + .. + +pushd %_vpath_builddir + +# 1-0 bindir +mkdir -p %{buildroot}%{_bindir} +install -cpm 0755 %{SOURCE10} %{buildroot}%{_bindir}/%{name} + +# 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 %{buildroot}%{_datadir}/icons/hicolor/32x32/mimetypes/ +cp -p application-x-ugene-ext.png %{buildroot}/%{_datadir}/icons/hicolor/32x32/mimetypes/ + +# 1-12 mime +mkdir -p %{buildroot}%{_datadir}/mime/packages +cp -p application-x-ugene.xml %{buildroot}/%{_datadir}/mime/packages + +# 1-13 man file +mkdir -p %{buildroot}%{_mandir}/man1 +cp -p %{name}.1* %{buildroot}/%{_mandir}/man1 + +# 1-14 desktop files +mkdir -p %{buildroot}%{_datadir}/applications/ +cp -p %{name}.desktop %{buildroot}/%{_datadir}/applications/ + +# 1-15 icons +mkdir -p %{buildroot}%{_datadir}/pixmaps +cp -p %{name}.{png,xpm} %{buildroot}%{_datadir}/pixmaps +popd + +%check +desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop %files -%{!?_licensedir:%global license %%doc} -%license LICENSE.txt LICENSE.3rd_party.txt -%{_bindir}/* -%{_libdir}/%{name}/ +%license LICENSE.txt +%license LICENSE.3rd_party.txt + +%{_bindir}/%{name} + +%dir %{_libdir}/%{name}/ +%{_libdir}/%{name}/lib*.so + +%dir %{_libdir}/%{name}/plugins/ +%{_libdir}/%{name}/plugins/*.license +%{_libdir}/%{name}/plugins/*.plugin +%{_libdir}/%{name}/plugins/lib*.so + +%{_libdir}/%{name}/transl_*.qm + +%{_libdir}/%{name}/%{name} +%{_libdir}/%{name}/%{name}cl +%{_libdir}/%{name}/%{name}m +%{_libdir}/%{name}/%{name}ui +%{_libdir}/%{name}/plugins_checker + +%dir %{_datadir}/%{name}/ +%{_datadir}/%{name}/data/ +%{_libdir}/%{name}/data + %{_datadir}/applications/%{name}.desktop %{_datadir}/pixmaps/ugene.* -%{_datadir}/icons/hicolor/*/*/* +%{_datadir}/icons/hicolor/32x32/mimetypes/application-x-ugene-ext.png + %{_datadir}/mime/packages/*.xml -%{_datadir}/%{name}/ -%{_mandir}/man1/* +%{_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 + +* Sat Jul 23 2022 Fedora Release Engineering - 43.0-2.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 6 2022 Mamoru TASAKA - 43.0-1 +- 43.0 + +* Wed Mar 9 2022 Mamoru TASAKA - 42.0-1 +- 42.0 + +* Sat Jan 22 2022 Fedora Release Engineering - 41.0-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sat Dec 4 2021 Mamoru TASAKA - 41.0-1 +- 41.0 + +* Wed Nov 17 2021 Mamoru TASAKA - 40.1-2 +- Surely remove nonfree code from tarball + +* Tue Nov 9 2021 Mamoru TASAKA - 40.1-1 +- 40.1 + +* Fri Jul 23 2021 Fedora Release Engineering - 34.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jan 27 2021 Fedora Release Engineering - 34.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Nov 23 07:55:33 CET 2020 Jan Grulich - 34.0-5 +- rebuild (qt5) + +* Sun Oct 18 2020 Jeff Law - 34.0-4 +- Fix missing #includes for gcc-11 + +* Fri Sep 11 2020 Jan Grulich - 34.0-3 +- rebuild (qt5) + +* Wed Jul 29 2020 Fedora Release Engineering - 34.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Apr 15 2020 Rex Dieter - 34.0-1 +- ugene-34.0 +- update Source0 URL +- no longer uses qt5 private api (yay) +- use %%check + +* Mon Apr 06 2020 Rex Dieter - 33.0-13 +- rebuild (qt5) + +* Fri Jan 31 2020 Fedora Release Engineering - 33.0-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Mon Dec 09 2019 Jan Grulich - 33.0-11 - rebuild (qt5) @@ -111,7 +450,7 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop * Thu Oct 25 2018 Yuliya Algaer - 1.31.1-1 - New upstream release -* Thu Aug 24 2018 Yuliya Algaer - 1.31.0-6 +* Fri Aug 24 2018 Yuliya Algaer - 1.31.0-6 - New upstream release * Sat Jul 14 2018 Fedora Release Engineering - 1.30.0-25 diff --git a/ugene.wrapper b/ugene.wrapper new file mode 100644 index 0000000..00f8788 --- /dev/null +++ b/ugene.wrapper @@ -0,0 +1,4 @@ +#!/usr/bin/bash +LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/ugene +export LD_LIBRARY_PATH +/usr/lib64/ugene/ugene "$@"