diff --git a/.gitignore b/.gitignore index 1ef0afd..b55c5f8 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ /seqan3-3.4.0-rc.2.tar.gz /seqan3-3.4.0-rc.3.tar.gz /seqan3-3.4.0.tar.gz +/seqan3-3.4.2.tar.gz diff --git a/seqan3-fix_gcc-16.patch b/seqan3-fix_gcc-16.patch deleted file mode 100644 index 94fa3b6..0000000 --- a/seqan3-fix_gcc-16.patch +++ /dev/null @@ -1,47 +0,0 @@ -From e6ddc2529cad39497f15199f9fdc4eb99672018c Mon Sep 17 00:00:00 2001 -From: Enrico Seiler -Date: Tue, 20 Jan 2026 13:11:14 +0100 -Subject: [PATCH] fix(gcc-16): bogus warning with fedora - ---- - .../alphabet/container/bitpacked_sequence.hpp | 26 +++++++++++++++++++ - 1 file changed, 26 insertions(+) - -diff --git a/include/seqan3/alphabet/container/bitpacked_sequence.hpp b/include/seqan3/alphabet/container/bitpacked_sequence.hpp -index 67abc29d22..eb353200a7 100644 ---- a/include/seqan3/alphabet/container/bitpacked_sequence.hpp -+++ b/include/seqan3/alphabet/container/bitpacked_sequence.hpp -@@ -87,7 +87,33 @@ class bitpacked_sequence - //!\brief Update the sdsl-proxy. - constexpr void on_update() noexcept - { -+ // Alternative patch in the SDSL. -+ // The problem is that, in the Fedora build type, there is a warning about accessing lo_set[65], -+ // which is out of bounds (size is 64). -+ // However, during runtime, lo_set[65] is never actually accessed (bogus warning). -+ // Making `len > 64` undefined behaviour resolves the warning. -+ // Note that the SDSL uses an older C++ standard and has not `std::unreachable()` available. -+ // Also, `__builtin_unreachable()` is only valid for GCC and Clang. The SDSL also supports MSVC, -+ // where there is an equivalent but different builtin for that. -+ // The diff is for the amalgamated seqan3/contrib/sdsl-lite.hpp; but the patch should be applied upstream. -+ // ```diff -+ // diff --git a/include/seqan3/contrib/sdsl-lite.hpp b/include/seqan3/contrib/sdsl-lite.hpp -+ // index a82da4ac2..b59628a56 100644 -+ // --- a/include/seqan3/contrib/sdsl-lite.hpp -+ // +++ b/include/seqan3/contrib/sdsl-lite.hpp -+ // @@ -510,6 +510,8 @@ constexpr uint32_t bits_impl::sel11(uint64_t x, uint32_t i, uint32_t c) -+ // template -+ // constexpr void bits_impl::write_int(uint64_t * word, uint64_t x, uint8_t offset, const uint8_t len) -+ // { -+ // + if (len > 64) -+ // + __builtin_unreachable(); -+ // x &= bits_impl::lo_set[len]; -+ // if (offset + len < 64) -+ // { -+ // ``` -+ SEQAN3_WORKAROUND_GCC_BOGUS_MEMCPY_START(-Warray-bounds) - internal_proxy = base_t::to_rank(); -+ SEQAN3_WORKAROUND_GCC_BOGUS_MEMCPY_STOP - } - - public: diff --git a/seqan3-fix_latest_google_benchmark.patch b/seqan3-fix_latest_google_benchmark.patch deleted file mode 100644 index e0d7bc8..0000000 --- a/seqan3-fix_latest_google_benchmark.patch +++ /dev/null @@ -1,174 +0,0 @@ -From d1d486500e842433d9203ce97b0c3323acd4ad90 Mon Sep 17 00:00:00 2001 -From: Enrico Seiler -Date: Sun, 18 Jan 2026 18:30:43 +0100 -Subject: [PATCH] fix: latest google benchmark - ---- - test/performance/range/gap_decorator_helper.hpp | 10 +++++++++- - .../dream_index/interleaved_bloom_filter_benchmark.cpp | 10 +++++++++- - .../search/index_construction_benchmark.cpp | 10 +++++++++- - .../search/views/view_kmer_hash_benchmark.cpp | 10 +++++++++- - .../search/views/view_minimiser_hash_benchmark.cpp | 10 +++++++++- - .../utility/bloom_filter/bloom_filter_benchmark.cpp | 10 +++++++++- - 6 files changed, 54 insertions(+), 6 deletions(-) - -diff --git a/test/performance/range/gap_decorator_helper.hpp b/test/performance/range/gap_decorator_helper.hpp -index 638d1b998a..6d1fada68b 100644 ---- a/test/performance/range/gap_decorator_helper.hpp -+++ b/test/performance/range/gap_decorator_helper.hpp -@@ -16,6 +16,14 @@ - #include - #include - -+namespace benchmark -+{ -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -+using Benchmark = benchmark::internal::Benchmark; -+#pragma GCC diagnostic pop -+} // namespace benchmark -+ - #define SEQAN3_LEN_LONG 1 << 18 - #define SEQAN3_LEN_SHORT 1 << 12 - -@@ -29,7 +37,7 @@ - * | !SEQAN3_LONG_TESTS | 1 << [4:2:12] | [1, 5, 50] % - * | SEQAN3_LONG_TESTS | 1 << [4:2:18] | [1, 5, 25, 50, 75] % - */ --void custom_arguments(benchmark::internal::Benchmark * b) -+void custom_arguments(benchmark::Benchmark * b) - { - std::vector gap_percentages{1, 5, 50}; - long long int seq_len_max = SEQAN3_LEN_SHORT; -diff --git a/test/performance/search/dream_index/interleaved_bloom_filter_benchmark.cpp b/test/performance/search/dream_index/interleaved_bloom_filter_benchmark.cpp -index a4cad0a0c6..cca693982a 100644 ---- a/test/performance/search/dream_index/interleaved_bloom_filter_benchmark.cpp -+++ b/test/performance/search/dream_index/interleaved_bloom_filter_benchmark.cpp -@@ -9,12 +9,20 @@ - #include - #include - -+namespace benchmark -+{ -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -+using Benchmark = benchmark::internal::Benchmark; -+#pragma GCC diagnostic pop -+} // namespace benchmark -+ - inline benchmark::Counter hashes_per_second(size_t const count) - { - return benchmark::Counter(count, benchmark::Counter::kIsIterationInvariantRate, benchmark::Counter::OneK::kIs1000); - } - --static void arguments(benchmark::internal::Benchmark * b) -+static void arguments(benchmark::Benchmark * b) - { - // Bins must be powers of two - for (int32_t bins : {64, 8192}) -diff --git a/test/performance/search/index_construction_benchmark.cpp b/test/performance/search/index_construction_benchmark.cpp -index d83943bcd7..86ebfb48e2 100644 ---- a/test/performance/search/index_construction_benchmark.cpp -+++ b/test/performance/search/index_construction_benchmark.cpp -@@ -17,10 +17,18 @@ - # include - #endif - -+namespace benchmark -+{ -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -+using Benchmark = benchmark::internal::Benchmark; -+#pragma GCC diagnostic pop -+} // namespace benchmark -+ - static constexpr int32_t max_length{50000}; - static constexpr size_t seed{0x6'12'6f}; - --static void arguments(benchmark::internal::Benchmark * b) -+static void arguments(benchmark::Benchmark * b) - { - #ifndef NDEBUG - constexpr std::array values{50, 5000}; -diff --git a/test/performance/search/views/view_kmer_hash_benchmark.cpp b/test/performance/search/views/view_kmer_hash_benchmark.cpp -index 09b98d7d24..8d9a5d313a 100644 ---- a/test/performance/search/views/view_kmer_hash_benchmark.cpp -+++ b/test/performance/search/views/view_kmer_hash_benchmark.cpp -@@ -13,6 +13,14 @@ - # include - #endif // SEQAN3_HAS_SEQAN2 - -+namespace benchmark -+{ -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -+using Benchmark = benchmark::internal::Benchmark; -+#pragma GCC diagnostic pop -+} // namespace benchmark -+ - inline benchmark::Counter bp_per_second(size_t const basepairs) - { - return benchmark::Counter(basepairs, -@@ -32,7 +40,7 @@ inline seqan3::shape make_gapped_shape(size_t const k) - return shape; - } - --static void arguments(benchmark::internal::Benchmark * b) -+static void arguments(benchmark::Benchmark * b) - { - for (int32_t sequence_length : {1000, 50000, /*1'000'000*/}) - { -diff --git a/test/performance/search/views/view_minimiser_hash_benchmark.cpp b/test/performance/search/views/view_minimiser_hash_benchmark.cpp -index 39c8c8395a..d2c012990d 100644 ---- a/test/performance/search/views/view_minimiser_hash_benchmark.cpp -+++ b/test/performance/search/views/view_minimiser_hash_benchmark.cpp -@@ -16,6 +16,14 @@ - # include - #endif // SEQAN3_HAS_SEQAN2 - -+namespace benchmark -+{ -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -+using Benchmark = benchmark::internal::Benchmark; -+#pragma GCC diagnostic pop -+} // namespace benchmark -+ - inline benchmark::Counter bp_per_second(size_t const basepairs) - { - return benchmark::Counter(basepairs, -@@ -35,7 +43,7 @@ inline seqan3::shape make_gapped_shape(size_t const k) - return shape; - } - --static void arguments(benchmark::internal::Benchmark * b) -+static void arguments(benchmark::Benchmark * b) - { - for (int32_t sequence_length : {50000, /*1'000'000*/}) - { -diff --git a/test/performance/utility/bloom_filter/bloom_filter_benchmark.cpp b/test/performance/utility/bloom_filter/bloom_filter_benchmark.cpp -index 07f56fa4e0..71737edd9d 100644 ---- a/test/performance/utility/bloom_filter/bloom_filter_benchmark.cpp -+++ b/test/performance/utility/bloom_filter/bloom_filter_benchmark.cpp -@@ -7,12 +7,20 @@ - #include - #include - -+namespace benchmark -+{ -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -+using Benchmark = benchmark::internal::Benchmark; -+#pragma GCC diagnostic pop -+} // namespace benchmark -+ - inline benchmark::Counter hashes_per_second(size_t const count) - { - return benchmark::Counter(count, benchmark::Counter::kIsIterationInvariantRate, benchmark::Counter::OneK::kIs1000); - } - --static void arguments(benchmark::internal::Benchmark * b) -+static void arguments(benchmark::Benchmark * b) - { - // Size of the IBF will be 2^bits bits - for (int32_t bits = 15; bits <= 20; bits += 5) diff --git a/seqan3.spec b/seqan3.spec index d02475b..913be93 100644 --- a/seqan3.spec +++ b/seqan3.spec @@ -24,7 +24,7 @@ ExclusiveArch: %{power64} x86_64 aarch64 Name: seqan3 Summary: The modern C++ library for sequence analysis -Version: 3.4.0 +Version: 3.4.2 Release: %autorelease License: BSD-3-Clause URL: https://www.seqan.de/ @@ -57,19 +57,10 @@ BuildRequires: gtest-devel >= 1.10.0 BuildRequires: texlive-newunicodechar BuildRequires: doxygen >= 1.9.4 %endif - # Use Fedora's CMake only Patch1: %{name}-3.4.0-disable_CPM.patch - # Include missing header files Patch2: %{name}-fix_GCC15.patch - -# Fix (gcc-16) bogus warning -Patch3: %{name}-fix_gcc-16.patch - -# Fix google benchmark -Patch4: %{name}-fix_latest_google_benchmark.patch - %description SeqAn3 is the new version of the popular SeqAn template library for the analysis of biological sequences. @@ -92,10 +83,8 @@ Requires: sdsl-lite-devel%{?_isa} >= 3.0.1 Requires: zlib-devel%{?_isa} >= 1.2 Requires: bzip2-devel%{?_isa} >= 1.0 Requires: range-v3-devel%{?_isa} >= 0.11.0 - Provides: bundled(bzip2stream) Provides: bundled(zipstream) - %description devel C++ headers files of SeqAn3, including CMake configuration files. @@ -110,8 +99,6 @@ SeqAn3 documentation. %patch 1 -p1 -b .backup %patch 2 -p1 -b .backup -%patch 3 -p1 -b .backup -%patch 4 -p1 -b .backup # Unbundle libraries already available in Fedora rm -rf submodules/cereal diff --git a/sources b/sources index 886e772..2f642b5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (seqan3-3.4.0.tar.gz) = c8541ac8166c70f521c2613d7c3ad7760ae3025ed5f196740176789c2f0400cecfd4aea2c500a1c0a2f801e35a5ab4df4dfc7c3d116518ab08b30da7cf69df06 +SHA512 (seqan3-3.4.2.tar.gz) = 6337bb3d49406e89e277ab4b9e751f6b2a0524c32c7aecf2093b795863870c2337bb1df1c798791aee82325cb3f0b19ecb57e109d73db847e6fe6a2a033bbaae