[med-svn] [Git][med-team/spades][master] 2 commits: Update packaging and patches for SPAdes 4.3.0
Andreas Tille (@tille)
gitlab at salsa.debian.org
Wed Oct 21 06:47:47 BST 2026
Andreas Tille pushed to branch master at Debian Med / spades
Commits:
446c4409 by Andreas Tille at 2026-10-21T07:39:41+02:00
Update packaging and patches for SPAdes 4.3.0
- - - - -
04f3dfba by Andreas Tille at 2026-10-21T07:47:08+02:00
Fix SPAdes config include paths for use outside config directory
SPAdes' Boost property_tree config loader resolves #include directives
relative to the current working directory. unicycler and shovill run
spades-core from their own temporary directories, so the generated
config.info failed to find simplification.info and the assembly aborted.
Rewrite relative includes to absolute paths in the generated per-K configs.
Assisted-By: deepseek-v4.1-flash-free 4.1
- - - - -
14 changed files:
- debian/changelog
- debian/patches/0114_use_debian_provided_libs.patch
- debian/patches/0118_adjust_spades_home_again.patch
- + debian/patches/deactivate_tests_with_no_data.patch
- debian/patches/debuginfo.patch
- debian/patches/fix-bool-cast
- + debian/patches/fix-missing-functional-include.patch
- + debian/patches/fix_config_include_paths.patch
- + debian/patches/samtools_missing_source.patch
- debian/patches/series
- debian/patches/typos.patch
- + debian/patches/use_debian_xxhash.patch
- debian/patches/workdir_for_test.patch
- debian/patches/yaml_load.patch
Changes:
=====================================
debian/changelog
=====================================
@@ -6,6 +6,8 @@ spades (4.3.0+dfsg-1) UNRELEASED; urgency=medium
* Remove Priority field (cme)
* Drop 'Rules-Requires-Root: no' from d/control (routine-update)
* Reformat the Last-Update date as ISO YYYY-MM-DD.
+ * Fix config include paths so SPAdes can run from arbitrary working
+ directories (needed by unicycler and shovill).
-- Andreas Tille <tille at debian.org> Tue, 20 Oct 2026 17:09:28 +0200
=====================================
debian/patches/0114_use_debian_provided_libs.patch
=====================================
@@ -2,8 +2,11 @@ Description: use more Debian packaged libraries
Author: Sascha Steinbiss <satta at debian.org>,
Michael R. Crusoe <michael.crusoe at gmail.com>
Forwarded: not-needed
---- a/assembler/src/cmake/includes.cmake
-+++ b/assembler/src/cmake/includes.cmake
+Assisted-By: deepseek-v4.1-flash-free 4.1
+Index: b/src/cmake/includes.cmake
+===================================================================
+--- a/src/cmake/includes.cmake
++++ b/src/cmake/includes.cmake
@@ -2,6 +2,8 @@
set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ")
@@ -13,9 +16,11 @@ Forwarded: not-needed
include_directories(${SPADES_MAIN_INCLUDE_DIR} ${SPADES_BUILT_INCLUDE_DIR} ${CMAKE_SOURCE_DIR} ${SPADES_MODULES_DIR})
include_directories(SYSTEM "${EXT_DIR}/include")
include_directories(SYSTEM "${Boost_INCLUDE_DIRS}")
---- a/assembler/src/common/modules/path_extend/overlap_analysis.hpp
-+++ b/assembler/src/common/modules/path_extend/overlap_analysis.hpp
-@@ -11,7 +11,7 @@
+Index: b/src/common/modules/path_extend/overlap_analysis.hpp
+===================================================================
+--- a/src/common/modules/path_extend/overlap_analysis.hpp
++++ b/src/common/modules/path_extend/overlap_analysis.hpp
+@@ -12,7 +12,7 @@
#include "utils/logger/logger.hpp"
@@ -24,24 +29,38 @@ Forwarded: not-needed
namespace debruijn_graph {
---- a/assembler/ext/src/CMakeLists.txt
-+++ b/assembler/ext/src/CMakeLists.txt
-@@ -6,12 +6,10 @@ endif()
- if (SPADES_USE_MIMALLOC)
- add_subdirectory(mimalloc EXCLUDE_FROM_ALL)
+Index: b/ext/src/CMakeLists.txt
+===================================================================
+--- a/ext/src/CMakeLists.txt
++++ b/ext/src/CMakeLists.txt
+@@ -21,12 +21,8 @@
+ add_subdirectory(${zlib_ng_SOURCE_DIR} ${zlib_ng_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()
+
-add_subdirectory(nlopt)
- add_subdirectory(ConsensusCore)
- add_subdirectory(bamtools)
+-add_subdirectory(python_libs/pyyaml3)
+-add_subdirectory(bamtools)
add_subdirectory(samtools)
add_subdirectory(cppformat)
-add_subdirectory(ssw)
- add_subdirectory(getopt_pp)
add_subdirectory(llvm)
+ add_subdirectory(bwa)
add_subdirectory(gqf)
---- a/assembler/src/common/modules/coverage_model/kmer_coverage_model.cpp
-+++ b/assembler/src/common/modules/coverage_model/kmer_coverage_model.cpp
-@@ -18,7 +18,7 @@
+@@ -34,9 +30,7 @@
+ add_subdirectory(lexy)
+ add_subdirectory(easel)
+ add_subdirectory(hmmer)
+-add_subdirectory(googletest)
+ add_subdirectory(teamcity_gtest)
+-add_subdirectory(spoa)
+ if (SPADES_USE_NCBISDK)
+ add_subdirectory(ncbi EXCLUDE_FROM_ALL)
+ endif()
+Index: b/src/common/modules/coverage_model/kmer_coverage_model.cpp
+===================================================================
+--- a/src/common/modules/coverage_model/kmer_coverage_model.cpp
++++ b/src/common/modules/coverage_model/kmer_coverage_model.cpp
+@@ -19,7 +19,7 @@
#include <boost/math/distributions/geometric.hpp>
#include <boost/math/distributions/pareto.hpp>
@@ -50,3 +69,104 @@ Forwarded: not-needed
#include <vector>
+Index: b/src/CMakeLists.txt
+===================================================================
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -26,6 +26,12 @@
+ # Add some utility macro
+ include(utils)
+
++# Bamtools from the Debian package
++find_package(bamtools)
++if (bamtools_FOUND)
++ include_directories(${bamtools_INCLUDE_DIRS})
++endif()
++
+ # Define various dirs
+ set(SPADES_MAIN_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+ set(SPADES_MAIN_PROJ_DIR ${SPADES_MAIN_SRC_DIR}/projects)
+Index: b/src/projects/spades/wastewater_disentangle.cpp
+===================================================================
+--- a/src/projects/spades/wastewater_disentangle.cpp
++++ b/src/projects/spades/wastewater_disentangle.cpp
+@@ -11,7 +11,7 @@
+ #include "assembly_graph/core/graph_iterators.hpp"
+ #include "assembly_graph/core/graph.hpp"
+ #include "common/sequence/range.hpp"
+-#include "ssw/ssw_cpp.h"
++#include <ssw_cpp.h>
+
+ #include <tuple>
+ #include <numeric>
+@@ -484,4 +484,4 @@
+
+ }
+
+-}
+\ No newline at end of file
++}
+Index: b/src/common/io/sam/CMakeLists.txt
+===================================================================
+--- a/src/common/io/sam/CMakeLists.txt
++++ b/src/common/io/sam/CMakeLists.txt
+@@ -9,4 +9,4 @@
+
+ add_library(samio STATIC
+ read.cpp sam_reader.cpp bam_parser.cpp)
+-target_link_libraries(samio BamTools samtools ${ZLIB_LIBRARIES})
++target_link_libraries(samio ${bamtools_LIBRARY} samtools ${ZLIB_LIBRARIES})
+Index: b/src/projects/mts/CMakeLists.txt
+===================================================================
+--- a/src/projects/mts/CMakeLists.txt
++++ b/src/projects/mts/CMakeLists.txt
+@@ -31,7 +31,7 @@
+ read_binning.cpp
+ prop_binning.cpp
+ gzstream/gzstream.C)
+-target_link_libraries(prop_binning common_modules nlopt BamTools ssw getopt_pp zlibstatic ${COMMON_LIBRARIES})
++target_link_libraries(prop_binning common_modules nlopt ${bamtools_LIBRARY} ssw getopt_pp zlibstatic ${COMMON_LIBRARIES})
+
+ if (SPADES_STATIC_BUILD)
+ set_target_properties(prop_binning PROPERTIES LINK_SEARCH_END_STATIC 1)
+@@ -41,7 +41,7 @@
+ annotation.cpp
+ stats.cpp)
+
+-target_link_libraries(stats common_modules nlopt BamTools ssw getopt_pp ${COMMON_LIBRARIES})
++target_link_libraries(stats common_modules nlopt ${bamtools_LIBRARY} ssw getopt_pp ${COMMON_LIBRARIES})
+
+ if (SPADES_STATIC_BUILD)
+ set_target_properties(stats PROPERTIES LINK_SEARCH_END_STATIC 1)
+@@ -51,7 +51,7 @@
+ contig_abundance_counter.cpp
+ contig_abundance.cpp)
+
+-target_link_libraries(contig_abundance_counter common_modules nlopt BamTools ssw getopt_pp ${COMMON_LIBRARIES})
++target_link_libraries(contig_abundance_counter common_modules nlopt ${bamtools_LIBRARY} ssw getopt_pp ${COMMON_LIBRARIES})
+
+ if (SPADES_STATIC_BUILD)
+ set_target_properties(contig_abundance_counter PROPERTIES LINK_SEARCH_END_STATIC 1)
+Index: b/ext/src/samtools/CMakeLists.txt
+===================================================================
+--- a/ext/src/samtools/CMakeLists.txt
++++ b/ext/src/samtools/CMakeLists.txt
+@@ -29,4 +29,4 @@
+ bam_reheader.c
+ kprobaln.c
+ bam_cat.c)
+-target_link_libraries(samtools BamTools zlibstatic)
++target_link_libraries(samtools ${bamtools_LIBRARY} zlibstatic)
+Index: b/src/projects/ionhammer/CMakeLists.txt
+===================================================================
+--- a/src/projects/ionhammer/CMakeLists.txt
++++ b/src/projects/ionhammer/CMakeLists.txt
+@@ -33,7 +33,7 @@
+
+
+
+-target_link_libraries(spades-ionhammer Blaze modules input utils pipeline mph_index ${COMMON_LIBRARIES})
++target_link_libraries(spades-ionhammer Blaze modules input utils pipeline mph_index ${bamtools_LIBRARY} ${COMMON_LIBRARIES})
+ #target_link_libraries(kmer_evaluator input utils mph_index BamTools ${COMMON_LIBRARIES})
+
+ if (SPADES_STATIC_BUILD)
=====================================
debian/patches/0118_adjust_spades_home_again.patch
=====================================
@@ -1,16 +1,24 @@
Subject: Adjust spades_home var to install files under /usr/share/spades
From: Alex Mestiashvili <amestia at rsh2.donotuse.de>
Forwarded: not-needed
---- a/assembler/spades_init.py
-+++ b/assembler/spades_init.py
-@@ -31,8 +31,8 @@ def init():
- # users configuration (spades_init.py and spades binary are in the same directory)
+Assisted-By: deepseek-v4.1-flash-free 4.1
+Index: b/src/projects/spades/pipeline/spades_init.py
+===================================================================
+--- a/src/projects/spades/pipeline/spades_init.py
++++ b/src/projects/spades/pipeline/spades_init.py
+@@ -37,9 +37,12 @@
if isfile(os.path.join(spades_home, "spades-core")):
+ # users configuration (spades_init.py and spades binary are in the same directory)
install_prefix = dirname(spades_home)
- bin_home = join(install_prefix, "bin")
- spades_home = join(install_prefix, "share", "spades")
+- config_dirs = [(join(spades_home, "configs"), "./")]
+ bin_home = '/usr/libexec/spades'
+ spades_home = '/usr/share/spades'
++ config_dirs = [(join(spades_home, "configs", "debruijn"), "debruijn"),
++ (join(spades_home, "configs", "ionhammer"), "ionhammer"),
++ (join(spades_home, "configs", "hammer"), "hammer"),
++ (join(spades_home, "configs", "corrector"), "corrector")]
python_modules_home = spades_home
ext_python_modules_home = spades_home
-
+ spades_version = open(join(spades_home, "VERSION"), 'r').readline().strip()
=====================================
debian/patches/deactivate_tests_with_no_data.patch
=====================================
@@ -0,0 +1,357 @@
+Description: omitting many build-time tests as their data files are not shipped
+ anymore in the source tarball
+Author: Pierre Gruet <pgt at debian.org>
+Forwarded: no
+Last-Update: 2024-07-04
+
+Assisted-By: deepseek-v4.1-flash-free 4.1
+
+Index: b/ext/src/zlib-ng/test/CMakeLists.txt
+===================================================================
+--- a/ext/src/zlib-ng/test/CMakeLists.txt
++++ b/ext/src/zlib-ng/test/CMakeLists.txt
+@@ -16,7 +16,7 @@
+ add_executable(example example.c)
+ configure_test_executable(example)
+ target_link_libraries(example zlib)
+-add_test(NAME example COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:example>)
++#add_test(NAME example COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:example>)
+
+ add_executable(minigzip minigzip.c)
+ configure_test_executable(minigzip)
+@@ -57,7 +57,7 @@
+ endif()
+ # infcover references zng_inflate_table() and struct inflate_state, which are internal to zlib-ng.
+ if(ZLIBNG_ENABLE_TESTS)
+- add_test(NAME infcover COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:infcover>)
++# add_test(NAME infcover COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:infcover>)
+ endif()
+
+ add_executable(makefixed ${PROJECT_SOURCE_DIR}/tools/makefixed.c ${PROJECT_SOURCE_DIR}/inftrees.c)
+Index: b/ext/src/zlib-ng/test/cmake/test-cves.cmake
+===================================================================
+--- a/ext/src/zlib-ng/test/cmake/test-cves.cmake
++++ b/ext/src/zlib-ng/test/cmake/test-cves.cmake
+@@ -1,6 +1,7 @@
+ # test-cves.cmake -- Tests targeting common vulnerabilities and exposures
+
+-set(CVES CVE-2002-0059 CVE-2004-0797 CVE-2005-1849 CVE-2005-2096)
++set(CVES "")
++#set(CVES CVE-2002-0059 CVE-2004-0797 CVE-2005-1849 CVE-2005-2096)
+ foreach(cve ${CVES})
+ set(CVE_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:minigzip> -d)
+ add_test(NAME ${cve}
+@@ -11,7 +12,8 @@
+ -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-redirect.cmake)
+ endforeach()
+
+-set(CVE_COMPRESS_LEVELS 6 1 2)
++set(CVE_COMPRESS_LEVELS "")
++#set(CVE_COMPRESS_LEVELS 6 1 2)
+ foreach(cve_compress_level ${CVE_COMPRESS_LEVELS})
+ add_test(NAME CVE-2018-25032-fixed-level-${cve_compress_level}
+ COMMAND ${CMAKE_COMMAND}
+Index: b/ext/src/zlib-ng/test/cmake/test-data.cmake
+===================================================================
+--- a/ext/src/zlib-ng/test/cmake/test-data.cmake
++++ b/ext/src/zlib-ng/test/cmake/test-data.cmake
+@@ -64,5 +64,5 @@
+ endforeach()
+
+ # Additional tests to verify with automatic data type detection arg
+-test_minigzip("detect-text" "data/lcet10.txt" -A)
+-test_minigzip("detect-binary" "data/paper-100k.pdf" -A)
++#test_minigzip("detect-text" "data/lcet10.txt" -A)
++#test_minigzip("detect-binary" "data/paper-100k.pdf" -A)
+Index: b/ext/src/zlib-ng/test/cmake/test-issues.cmake
+===================================================================
+--- a/ext/src/zlib-ng/test/cmake/test-issues.cmake
++++ b/ext/src/zlib-ng/test/cmake/test-issues.cmake
+@@ -1,68 +1,68 @@
+ # test-issues.cmake -- Tests targeting specific GitHub issues
+
+-add_test(NAME GH-361
+- COMMAND ${CMAKE_COMMAND}
+- "-DTARGET=${MINIGZIP_COMMAND}"
+- "-DCOMPRESS_ARGS=-c;-k;-4"
+- -DTEST_NAME=GH-361-test-txt
+- -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/GH-361/test.txt
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
+-
+-add_test(NAME GH-364
+- COMMAND ${CMAKE_COMMAND}
+- "-DCOMPRESS_TARGET=${SWITCHLEVELS_COMMAND}"
+- "-DCOMPRESS_ARGS=1;5;9;3"
+- "-DDECOMPRESS_TARGET=${MINIGZIP_COMMAND}"
+- -DTEST_NAME=GH-364-test-bin
+- -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/GH-364/test.bin
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
+-
+-add_test(NAME GH-382
+- COMMAND ${CMAKE_COMMAND}
+- "-DTARGET=${MINIDEFLATE_COMMAND}"
+- "-DCOMPRESS_ARGS=-c;-m;1;-w;-15;-1;-s;4"
+- "-DDECOMPRESS_ARGS=-c;-d;-m;1;-w;-15"
+- -DGZIP_VERIFY=OFF
+- -DTEST_NAME=GH-382-defneg3-dat
+- -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/GH-382/defneg3.dat
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
+-
+-add_test(NAME GH-536-segfault
+- COMMAND ${CMAKE_COMMAND}
+- "-DCOMPRESS_TARGET=${SWITCHLEVELS_COMMAND}"
+- "-DCOMPRESS_ARGS=6;9744;1;91207"
+- "-DDECOMPRESS_TARGET=${MINIGZIP_COMMAND}"
+- -DCOMPARE=OFF
+- -DGZIP_VERIFY=OFF
+- -DTEST_NAME=GH-536-segfault-lcet10-txt
+- -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/data/lcet10.txt
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
+-
+-add_test(NAME GH-536-incomplete-read
+- COMMAND ${CMAKE_COMMAND}
+- "-DCOMPRESS_TARGET=${SWITCHLEVELS_COMMAND}"
+- "-DCOMPRESS_ARGS=6;88933;1;195840;2;45761"
+- "-DDECOMPRESS_TARGET=${MINIGZIP_COMMAND}"
+- -DCOMPARE=OFF
+- -DGZIP_VERIFY=OFF
+- -DTEST_NAME=GH-536-incomplete-read-lcet10-txt
+- -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/data/lcet10.txt
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
+-
+-add_test(NAME GH-536-zero-stored-block
+- COMMAND ${CMAKE_COMMAND}
+- "-DCOMPRESS_TARGET=${SWITCHLEVELS_COMMAND}"
+- "-DCOMPRESS_ARGS=6;15248;1;1050;2;25217"
+- "-DDECOMPRESS_TARGET=${MINIGZIP_COMMAND}"
+- -DCOMPARE=OFF
+- -DGZIP_VERIFY=OFF
+- -DTEST_NAME=GH-536-zero-stored-block-lcet10-txt
+- -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/data/lcet10.txt
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
+-
+-add_test(NAME GH-751
+- COMMAND ${CMAKE_COMMAND}
+- "-DTARGET=${MINIGZIP_COMMAND}"
+- -DTEST_NAME=GH-751-test-txt
+- -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/GH-751/test.txt
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
++#add_test(NAME GH-361
++# COMMAND ${CMAKE_COMMAND}
++# "-DTARGET=${MINIGZIP_COMMAND}"
++# "-DCOMPRESS_ARGS=-c;-k;-4"
++# -DTEST_NAME=GH-361-test-txt
++# -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/GH-361/test.txt
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
++
++#add_test(NAME GH-364
++# COMMAND ${CMAKE_COMMAND}
++# "-DCOMPRESS_TARGET=${SWITCHLEVELS_COMMAND}"
++# "-DCOMPRESS_ARGS=1;5;9;3"
++# "-DDECOMPRESS_TARGET=${MINIGZIP_COMMAND}"
++# -DTEST_NAME=GH-364-test-bin
++# -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/GH-364/test.bin
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
++
++#add_test(NAME GH-382
++# COMMAND ${CMAKE_COMMAND}
++# "-DTARGET=${MINIDEFLATE_COMMAND}"
++# "-DCOMPRESS_ARGS=-c;-m;1;-w;-15;-1;-s;4"
++# "-DDECOMPRESS_ARGS=-c;-d;-m;1;-w;-15"
++# -DGZIP_VERIFY=OFF
++# -DTEST_NAME=GH-382-defneg3-dat
++# -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/GH-382/defneg3.dat
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
++
++#add_test(NAME GH-536-segfault
++# COMMAND ${CMAKE_COMMAND}
++# "-DCOMPRESS_TARGET=${SWITCHLEVELS_COMMAND}"
++# "-DCOMPRESS_ARGS=6;9744;1;91207"
++# "-DDECOMPRESS_TARGET=${MINIGZIP_COMMAND}"
++# -DCOMPARE=OFF
++# -DGZIP_VERIFY=OFF
++# -DTEST_NAME=GH-536-segfault-lcet10-txt
++# -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/data/lcet10.txt
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
++
++#add_test(NAME GH-536-incomplete-read
++# COMMAND ${CMAKE_COMMAND}
++# "-DCOMPRESS_TARGET=${SWITCHLEVELS_COMMAND}"
++# "-DCOMPRESS_ARGS=6;88933;1;195840;2;45761"
++# "-DDECOMPRESS_TARGET=${MINIGZIP_COMMAND}"
++# -DCOMPARE=OFF
++# -DGZIP_VERIFY=OFF
++# -DTEST_NAME=GH-536-incomplete-read-lcet10-txt
++# -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/data/lcet10.txt
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
++
++#add_test(NAME GH-536-zero-stored-block
++# COMMAND ${CMAKE_COMMAND}
++# "-DCOMPRESS_TARGET=${SWITCHLEVELS_COMMAND}"
++# "-DCOMPRESS_ARGS=6;15248;1;1050;2;25217"
++# "-DDECOMPRESS_TARGET=${MINIGZIP_COMMAND}"
++# -DCOMPARE=OFF
++# -DGZIP_VERIFY=OFF
++# -DTEST_NAME=GH-536-zero-stored-block-lcet10-txt
++# -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/data/lcet10.txt
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
++
++#add_test(NAME GH-751
++# COMMAND ${CMAKE_COMMAND}
++# "-DTARGET=${MINIGZIP_COMMAND}"
++# -DTEST_NAME=GH-751-test-txt
++# -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/GH-751/test.txt
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
+Index: b/ext/src/zlib-ng/test/cmake/test-tools.cmake
+===================================================================
+--- a/ext/src/zlib-ng/test/cmake/test-tools.cmake
++++ b/ext/src/zlib-ng/test/cmake/test-tools.cmake
+@@ -1,80 +1,80 @@
+ # test-tools.cmake -- Tests targeting tool coverage
+
+ # Compress and decompress using file_compress/file_decompress, optionally also testing MMAP
+-add_test(NAME minigzip-file_compress
+- COMMAND ${CMAKE_COMMAND}
+- "-DTARGET=${MINIGZIP_COMMAND}"
+- -DFILEMODE=ON
+- -DGZIP_VERIFY=ON
+- -DTEST_NAME=minigzip-file_compress
+- -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/data/paper-100k.pdf
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
+-
+-add_test(NAME minideflate-file_compress
+- COMMAND ${CMAKE_COMMAND}
+- "-DTARGET=${MINIDEFLATE_COMMAND}"
+- -DFILEMODE=ON
+- -DGZIP_VERIFY=OFF
+- -DTEST_NAME=minideflate-file_compress
+- -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/data/paper-100k.pdf
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
++#add_test(NAME minigzip-file_compress
++# COMMAND ${CMAKE_COMMAND}
++# "-DTARGET=${MINIGZIP_COMMAND}"
++# -DFILEMODE=ON
++# -DGZIP_VERIFY=ON
++# -DTEST_NAME=minigzip-file_compress
++# -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/data/paper-100k.pdf
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
++
++#add_test(NAME minideflate-file_compress
++# COMMAND ${CMAKE_COMMAND}
++# "-DTARGET=${MINIDEFLATE_COMMAND}"
++# -DFILEMODE=ON
++# -DGZIP_VERIFY=OFF
++# -DTEST_NAME=minideflate-file_compress
++# -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/data/paper-100k.pdf
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compress-and-verify.cmake)
+
+ # Test --help and invalid parameters for our tools
+ set(TEST_COMMAND ${MINIGZIP_COMMAND} "--help")
+-add_test(NAME minigzip-help
+- COMMAND ${CMAKE_COMMAND}
+- "-DCOMMAND=${TEST_COMMAND}"
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-redirect.cmake)
+-
+-set(TEST_COMMAND ${MINIGZIP_COMMAND} "--invalid")
+-add_test(NAME minigzip-invalid
+- COMMAND ${CMAKE_COMMAND}
+- "-DCOMMAND=${TEST_COMMAND}"
+- -DSUCCESS_EXIT=64
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-redirect.cmake)
+-
+-set(TEST_COMMAND ${MINIDEFLATE_COMMAND} "--help")
+-add_test(NAME minideflate-help
+- COMMAND ${CMAKE_COMMAND}
+- "-DCOMMAND=${TEST_COMMAND}"
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-redirect.cmake)
+-
+-set(TEST_COMMAND ${MINIDEFLATE_COMMAND} "--invalid")
+-add_test(NAME minideflate-invalid
+- COMMAND ${CMAKE_COMMAND}
+- "-DCOMMAND=${TEST_COMMAND}"
+- -DSUCCESS_EXIT=64
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-redirect.cmake)
+-
+-set(TEST_COMMAND ${SWITCHLEVELS_COMMAND} "--help")
+-add_test(NAME switchlevels-help
+- COMMAND ${CMAKE_COMMAND}
+- "-DCOMMAND=${TEST_COMMAND}"
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-redirect.cmake)
++#add_test(NAME minigzip-help
++# COMMAND ${CMAKE_COMMAND}
++# "-DCOMMAND=${TEST_COMMAND}"
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-redirect.cmake)
++
++#set(TEST_COMMAND ${MINIGZIP_COMMAND} "--invalid")
++#add_test(NAME minigzip-invalid
++# COMMAND ${CMAKE_COMMAND}
++# "-DCOMMAND=${TEST_COMMAND}"
++# -DSUCCESS_EXIT=64
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-redirect.cmake)
++
++#set(TEST_COMMAND ${MINIDEFLATE_COMMAND} "--help")
++#add_test(NAME minideflate-help
++# COMMAND ${CMAKE_COMMAND}
++# "-DCOMMAND=${TEST_COMMAND}"
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-redirect.cmake)
++
++#set(TEST_COMMAND ${MINIDEFLATE_COMMAND} "--invalid")
++#add_test(NAME minideflate-invalid
++# COMMAND ${CMAKE_COMMAND}
++# "-DCOMMAND=${TEST_COMMAND}"
++# -DSUCCESS_EXIT=64
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-redirect.cmake)
++
++#set(TEST_COMMAND ${SWITCHLEVELS_COMMAND} "--help")
++#add_test(NAME switchlevels-help
++# COMMAND ${CMAKE_COMMAND}
++# "-DCOMMAND=${TEST_COMMAND}"
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-redirect.cmake)
+
+ # Test generated crc32 tables match tables in source directory
+-add_test(NAME makecrct
+- COMMAND ${CMAKE_COMMAND}
+- "-DCOMMAND=${MAKECRCT_COMMAND}"
+- -DOUTPUT=${PROJECT_BINARY_DIR}/Testing/Temporary/crc32_braid_tbl._h
+- -DCOMPARE=${PROJECT_SOURCE_DIR}/crc32_braid_tbl.h
+- -DIGNORE_LINE_ENDINGS=ON
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-compare.cmake)
++#add_test(NAME makecrct
++# COMMAND ${CMAKE_COMMAND}
++# "-DCOMMAND=${MAKECRCT_COMMAND}"
++# -DOUTPUT=${PROJECT_BINARY_DIR}/Testing/Temporary/crc32_braid_tbl._h
++# -DCOMPARE=${PROJECT_SOURCE_DIR}/crc32_braid_tbl.h
++# -DIGNORE_LINE_ENDINGS=ON
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-compare.cmake)
+
+ # Test generated inflate tables match tables in source directory
+-add_test(NAME makefixed
+- COMMAND ${CMAKE_COMMAND}
+- "-DCOMMAND=${MAKEFIXED_COMMAND}"
+- -DOUTPUT=${PROJECT_BINARY_DIR}/Testing/Temporary/inffixed_tbl._h
+- -DCOMPARE=${PROJECT_SOURCE_DIR}/inffixed_tbl.h
+- -DIGNORE_LINE_ENDINGS=ON
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-compare.cmake)
++#add_test(NAME makefixed
++# COMMAND ${CMAKE_COMMAND}
++# "-DCOMMAND=${MAKEFIXED_COMMAND}"
++# -DOUTPUT=${PROJECT_BINARY_DIR}/Testing/Temporary/inffixed_tbl._h
++# -DCOMPARE=${PROJECT_SOURCE_DIR}/inffixed_tbl.h
++# -DIGNORE_LINE_ENDINGS=ON
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-compare.cmake)
+
+ # Test generated tree tables match tables in source directory
+-add_test(NAME maketrees
+- COMMAND ${CMAKE_COMMAND}
+- "-DCOMMAND=${MAKETREES_COMMAND}"
+- -DOUTPUT=${PROJECT_BINARY_DIR}/Testing/Temporary/trees_tbl._h
+- -DCOMPARE=${PROJECT_SOURCE_DIR}/trees_tbl.h
+- -DIGNORE_LINE_ENDINGS=ON
+- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-compare.cmake)
++#add_test(NAME maketrees
++# COMMAND ${CMAKE_COMMAND}
++# "-DCOMMAND=${MAKETREES_COMMAND}"
++# -DOUTPUT=${PROJECT_BINARY_DIR}/Testing/Temporary/trees_tbl._h
++# -DCOMPARE=${PROJECT_SOURCE_DIR}/trees_tbl.h
++# -DIGNORE_LINE_ENDINGS=ON
++# -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-compare.cmake)
=====================================
debian/patches/debuginfo.patch
=====================================
@@ -2,9 +2,13 @@ Author: Juhani Numminen <juhaninumminen0 at gmail.com>
Last-Changed: Thu, 25 Feb 2021 17:54:56 +0200
Description: want debug info for the deb package
Forwarded: not-needed
---- a/assembler/src/cmake/flags.cmake
-+++ b/assembler/src/cmake/flags.cmake
-@@ -39,7 +39,7 @@ else()
+Assisted-By: deepseek-v4.1-flash-free 4.1
+
+Index: b/src/cmake/flags.cmake
+===================================================================
+--- a/src/cmake/flags.cmake
++++ b/src/cmake/flags.cmake
+@@ -40,7 +40,7 @@
if (${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo")
add_compile_options(-g1)
else()
=====================================
debian/patches/fix-bool-cast
=====================================
@@ -1,8 +1,12 @@
From: Michael R. Crusoe <crusoe at debian.org>
Subject: Make explicit cast to bool
---- a/assembler/src/common/func/pred.hpp
-+++ b/assembler/src/common/func/pred.hpp
-@@ -33,7 +33,7 @@ class TypedPredicate {
+Assisted-By: deepseek-v4.1-flash-free 4.1
+
+Index: b/src/common/func/pred.hpp
+===================================================================
+--- a/src/common/func/pred.hpp
++++ b/src/common/func/pred.hpp
+@@ -40,7 +40,7 @@
: data_(std::move(p)) { }
virtual bool operator()(T x) const override {
=====================================
debian/patches/fix-missing-functional-include.patch
=====================================
@@ -0,0 +1,17 @@
+Description: add missing <functional> include for GCC 16
+Author: Andreas Tille <tille at debian.org>
+Forwarded: no
+Assisted-By: deepseek-v4.1-flash-free 4.1
+Last-Update: 2026-10-21
+
+--- a/src/projects/ionhammer/thread_utils.h
++++ b/src/projects/ionhammer/thread_utils.h
+@@ -12,6 +12,8 @@
+ #ifndef PROJECT_THREAD_UTILS_H
+ #define PROJECT_THREAD_UTILS_H
+
++#include <functional>
++
+ namespace n_computation_utils {
+
+ template <class AdditiveStat>
=====================================
debian/patches/fix_config_include_paths.patch
=====================================
@@ -0,0 +1,54 @@
+Author: Andreas Tille <tille at debian.org>
+Last-Update: 2026-10-21
+Description: Resolve config includes relative to the config directory
+ SPAdes' Boost property_tree based config loader resolves #include
+ directives relative to the current working directory. Running SPAdes from
+ an arbitrary directory, as unicycler and shovill do, fails with
+ .
+ Exception caught .../configs/config.info(3): cannot open include file simplification.info
+ .
+ Rewrite relative includes to absolute paths in the generated per-K configs.
+Forwarded: not-needed
+
+Assisted-By: deepseek-v4.1-flash-free 4.1
+
+--- a/src/projects/spades/pipeline/spades_pipeline/stages/spades_iteration_stage.py
++++ b/src/projects/spades/pipeline/spades_pipeline/stages/spades_iteration_stage.py
+@@ -9,6 +9,7 @@
+ ############################################################################
+
+ import os
++import re
+
+ from ..commands_parser import Command
+ from ..process_cfg import process_spaces, bool_to_str, substitute_params
+@@ -46,6 +47,21 @@
+ command.append(os.path.join(configs_dir, "hmm_mode.info"))
+
+
++def make_includes_absolute(configs_dir):
++ include_re = re.compile(r'(#include\s+")([^"/][^"]*)(")')
++ for filename in os.listdir(configs_dir):
++ if not filename.endswith(".info"):
++ continue
++ path = os.path.join(configs_dir, filename)
++ with open(path) as reader:
++ contents = reader.read()
++ contents = include_re.sub(
++ lambda match: match.group(1) + os.path.join(configs_dir, match.group(2)) + match.group(3),
++ contents)
++ with open(path, "w") as writer:
++ writer.write(contents)
++
++
+ def prepare_config_spades(filename, cfg, additional_contigs_fname, K, stage, saves_dir, last_one):
+ subst_dict = dict()
+ subst_dict["K"] = str(K)
+@@ -169,6 +185,7 @@
+ cfg_fn = os.path.join(dst_configs, "config.info")
+ prepare_config_spades(cfg_fn, cfg, additional_contigs_dname, self.K, self.get_stage(self.short_name),
+ saves_dir, self.last_one)
++ make_includes_absolute(dst_configs)
+
+ def get_command(self, cfg):
+ data_dir = os.path.join(cfg.output_dir, "K%d" % self.K)
=====================================
debian/patches/samtools_missing_source.patch
=====================================
@@ -0,0 +1,27 @@
+Description: adding some source files to build the samtools part, otherwise
+ some symbols are missing at compilation time
+Author: Pierre Gruet <pgt at debian.org>
+Forwarded: no
+Last-Update: 2024-07-04
+
+Assisted-By: deepseek-v4.1-flash-free 4.1
+
+Index: b/ext/src/samtools/CMakeLists.txt
+===================================================================
+--- a/ext/src/samtools/CMakeLists.txt
++++ b/ext/src/samtools/CMakeLists.txt
+@@ -21,6 +21,7 @@
+ bam_pileup.c
+ bam_lpileup.c
+ bam_md.c
++ bgzf.c
+ razf.c
+ faidx.c
+ bedidx.c
+@@ -28,5 +29,6 @@
+ sam_header.c
+ bam_reheader.c
+ kprobaln.c
++ knetfile.c
+ bam_cat.c)
+ target_link_libraries(samtools ${bamtools_LIBRARY} zlibstatic)
=====================================
debian/patches/series
=====================================
@@ -1,27 +1,12 @@
-fix-gcc13.patch
-0002_use_debian_packaged_python-joblib.patch
-0003_accept-system-bwa.patch
-0101_cmake_ignore_removed_python-yaml.patch
-0102_cmake_ignore_removed_python-joblib.patch
-0103_use-debian-packaged-bwa.patch
-#do_not_install_third_party_libs.patch
-# use-debian-packaged-samtools.patch
-# bamtools-cmake.patch
-# use-debian-packaged-yaml-cpp.patch ## <<-- does not work - see patch description
0114_use_debian_provided_libs.patch
-#0116_stable_link_order.patch
0118_adjust_spades_home_again.patch
fix-bool-cast
-python3.patch
yaml_load.patch
debuginfo.patch
-debian_bwa_zlib.patch
workdir_for_test.patch
-disable_local_convertutf.patch
-fix-sigill-on-non-popcnt-cpus.patch
-fix-privacy-breaches.patch
typos.patch
-python3.12.patch
-raw_regex_pattern.patch
-gcc-15.patch
-Try_to_unbreak.patch
+use_debian_xxhash.patch
+samtools_missing_source.patch
+deactivate_tests_with_no_data.patch
+fix-missing-functional-include.patch
+fix_config_include_paths.patch
=====================================
debian/patches/typos.patch
=====================================
@@ -4,14 +4,18 @@ Forwarded: no
Last-Update: 2022-06-25
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
---- spades.orig/assembler/src/common/stages/ss_edge_split.hpp
-+++ spades/assembler/src/common/stages/ss_edge_split.hpp
-@@ -14,7 +14,7 @@
+Assisted-By: deepseek-v4.1-flash-free 4.1
+
+Index: b/src/common/stages/ss_edge_split.hpp
+===================================================================
+--- a/src/common/stages/ss_edge_split.hpp
++++ b/src/common/stages/ss_edge_split.hpp
+@@ -15,7 +15,7 @@
class SSEdgeSplit: public spades::AssemblyStage {
public:
- SSEdgeSplit() : AssemblyStage("Strand-specific Edge Spliting", "ss_edge_splitting") {}
+ SSEdgeSplit() : AssemblyStage("Strand-specific Edge Splitting", "ss_edge_splitting") {}
- void run(GraphPack& gp, const char *) override;
+ void run(graph_pack::GraphPack& gp, const char *) override;
};
=====================================
debian/patches/use_debian_xxhash.patch
=====================================
@@ -0,0 +1,125 @@
+Description: changing the path to include files of xxhash as we use the
+ Debian-packaged one
+Author: Pierre Gruet <pgt at debian.org>
+Forwarded: not-needed
+Last-Update: 2024-07-04
+
+Assisted-By: deepseek-v4.1-flash-free 4.1
+
+Index: b/src/common/alignment/kmer_map.hpp
+===================================================================
+--- a/src/common/alignment/kmer_map.hpp
++++ b/src/common/alignment/kmer_map.hpp
+@@ -16,7 +16,7 @@
+ #include <limits>
+
+ #define XXH_INLINE_ALL
+-#include "xxh/xxhash.h"
++#include <xxhash.h>
+
+ namespace debruijn_graph {
+ class KMerMap {
+Index: b/src/common/kmer_index/kmer_mph/kmer_index.hpp
+===================================================================
+--- a/src/common/kmer_index/kmer_mph/kmer_index.hpp
++++ b/src/common/kmer_index/kmer_mph/kmer_index.hpp
+@@ -15,7 +15,7 @@
+ #include <cmath>
+
+ #define XXH_INLINE_ALL
+-#include "xxh/xxhash.h"
++#include <xxhash.h>
+
+ namespace kmers {
+
+Index: b/src/common/paired_info/concurrent_pair_info_buffer.hpp
+===================================================================
+--- a/src/common/paired_info/concurrent_pair_info_buffer.hpp
++++ b/src/common/paired_info/concurrent_pair_info_buffer.hpp
+@@ -16,7 +16,7 @@
+ #include <cuckoo/cuckoohash_map.hh>
+
+ #define XXH_INLINE_ALL
+-#include "xxh/xxhash.h"
++#include <xxhash.h>
+
+ namespace omnigraph {
+
+Index: b/src/common/paired_info/paired_info_utils.cpp
+===================================================================
+--- a/src/common/paired_info/paired_info_utils.cpp
++++ b/src/common/paired_info/paired_info_utils.cpp
+@@ -18,7 +18,7 @@
+ #include "utils/parallel/openmp_wrapper.h"
+
+ #define XXH_INLINE_ALL
+-#include "xxh/xxhash.h"
++#include <xxhash.h>
+
+ namespace paired_info {
+
+Index: b/src/common/sequence/rtseq.hpp
+===================================================================
+--- a/src/common/sequence/rtseq.hpp
++++ b/src/common/sequence/rtseq.hpp
+@@ -31,7 +31,7 @@
+ #include <iostream>
+
+ #define XXH_INLINE_ALL
+-#include "xxh/xxhash.h"
++#include <xxhash.h>
+
+ template<size_t max_size_, typename T = seq::seq_element_type>
+ class RuntimeSeq {
+Index: b/src/common/sequence/seq.hpp
+===================================================================
+--- a/src/common/sequence/seq.hpp
++++ b/src/common/sequence/seq.hpp
+@@ -33,7 +33,7 @@
+ #include "seq_common.hpp"
+
+ #define XXH_INLINE_ALL
+-#include "xxh/xxhash.h"
++#include <xxhash.h>
+
+ #include <string>
+ #include <array>
+Index: b/src/common/sequence/simple_seq.hpp
+===================================================================
+--- a/src/common/sequence/simple_seq.hpp
++++ b/src/common/sequence/simple_seq.hpp
+@@ -28,7 +28,7 @@
+ #include "seq_common.hpp"
+
+ #define XXH_INLINE_ALL
+-#include "xxh/xxhash.h"
++#include <xxhash.h>
+
+ /**
+ * @param T is max number of nucleotides, type for storage
+Index: b/src/projects/ionhammer/HSeq.hpp
+===================================================================
+--- a/src/projects/ionhammer/HSeq.hpp
++++ b/src/projects/ionhammer/HSeq.hpp
+@@ -19,7 +19,7 @@
+ #include <cstdint>
+
+ #define XXH_INLINE_ALL
+-#include "xxh/xxhash.h"
++#include <xxhash.h>
+
+ namespace hammer {
+
+Index: b/src/test/adt/phm_test.cpp
+===================================================================
+--- a/src/test/adt/phm_test.cpp
++++ b/src/test/adt/phm_test.cpp
+@@ -15,7 +15,7 @@
+ #include <algorithm>
+
+ #define XXH_INLINE_ALL
+-#include "xxh/xxhash.h"
++#include <xxhash.h>
+
+ #include <gtest/gtest.h>
+
=====================================
debian/patches/workdir_for_test.patch
=====================================
@@ -2,12 +2,16 @@ Author: Juhani Numminen <juhaninumminen0 at gmail.com>
Last-Changed: Thu, 25 Feb 2021 17:54:56 +0200
Description: set working directory so that the test finds its data
Forwarded: no
---- a/assembler/src/test/debruijn/CMakeLists.txt
-+++ b/assembler/src/test/debruijn/CMakeLists.txt
-@@ -12,4 +12,5 @@
- path_extend_test.cpp graphio.cpp overlap_removal_test.cpp graph_alignment_test.cpp
- test.cpp)
- target_link_libraries(debruijn_test common_modules input ${COMMON_LIBRARIES} teamcity_gtest gtest)
+Assisted-By: deepseek-v4.1-flash-free 4.1
+
+Index: b/src/test/debruijn/CMakeLists.txt
+===================================================================
+--- a/src/test/debruijn/CMakeLists.txt
++++ b/src/test/debruijn/CMakeLists.txt
+@@ -13,4 +13,5 @@
+ path_extend_test.cpp graphio.cpp overlap_removal_test.cpp graph_alignment_test.cpp v_overlaps.cpp
+ contracted_graph_test.cpp barcode_index.cpp test.cpp)
+ target_link_libraries(debruijn_test common_modules input ${COMMON_LIBRARIES} graphio teamcity_gtest gtest)
-add_test(NAME debruijn_test COMMAND debruijn_test)
+add_test(NAME debruijn_test COMMAND debruijn_test
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/..)
=====================================
debian/patches/yaml_load.patch
=====================================
@@ -5,18 +5,22 @@ Description: Specify yaml loader
Reviewed-By: Étienne Mollier <emollier at debian.org>
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1022086
---- spades.orig/assembler/spades.py
-+++ spades/assembler/spades.py
-@@ -114,7 +114,7 @@
+Assisted-By: deepseek-v4.1-flash-free 4.1
+
+Index: b/src/projects/spades/pipeline/spades.py
+===================================================================
+--- a/src/projects/spades/pipeline/spades.py
++++ b/src/projects/spades/pipeline/spades.py
+@@ -129,7 +129,7 @@
" for RNA-Seq use '--rna'.")
log.info(" Reads:")
- dataset_data = pyyaml.load(open(cfg["dataset"].yaml_filename))
+ dataset_data = pyyaml.load(open(cfg["dataset"].yaml_filename), Loader=pyyaml.FullLoader)
- dataset_data = support.relative2abs_paths(dataset_data, os.path.dirname(cfg["dataset"].yaml_filename))
- support.pretty_print_reads(dataset_data, log)
+ dataset_data = file_operations.relative2abs_paths(dataset_data, os.path.dirname(cfg["dataset"].yaml_filename))
+ support.pretty_print_reads(dataset_data)
-@@ -334,7 +334,7 @@
+@@ -352,7 +352,7 @@
spades_commands_fpath = os.path.join(cfg["common"].output_dir, "run_spades.yaml")
with open(spades_commands_fpath) as stream:
@@ -25,7 +29,7 @@ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1022086
restart_from_stage_id = None
for num in range(len(old_pipeline)):
-@@ -369,7 +369,7 @@
+@@ -388,7 +388,7 @@
def get_first_incomplete_command(filename):
with open(filename) as stream:
@@ -34,20 +38,24 @@ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1022086
first_incomplete_stage_id = 0
while first_incomplete_stage_id < len(old_pipeline):
---- spades.orig/assembler/src/tools/reads_utils/reads_quality.py
-+++ spades/assembler/src/tools/reads_utils/reads_quality.py
-@@ -148,7 +148,7 @@
- for dataset in datasets:
-
- try:
-- dataset_data = pyyaml.load(open(dataset, 'r'))
-+ dataset_data = pyyaml.load(open(dataset, 'r'), Loader=pyyaml.FullLoader)
- except pyyaml.YAMLError as exc:
- support.warning('skipping ' + dataset + ': exception caught while parsing YAML file (' + options_storage.dataset_yaml_filename + '):\n' + str(exc))
- continue
---- spades.orig/assembler/src/spades_pipeline/options_parser.py
-+++ spades/assembler/src/spades_pipeline/options_parser.py
-@@ -1073,14 +1073,14 @@
+Index: b/src/projects/spades/pipeline/spades_pipeline/commands_parser.py
+===================================================================
+--- a/src/projects/spades/pipeline/spades_pipeline/commands_parser.py
++++ b/src/projects/spades/pipeline/spades_pipeline/commands_parser.py
+@@ -119,7 +119,7 @@
+ import pyyaml3 as yaml
+
+ with open(yaml_fpath) as stream:
+- data = yaml.load(stream)
++ data = yaml.load(stream, Loader=yaml.FullLoader)
+ commands = []
+ for kwargs in data:
+ commands.append(Command(**kwargs))
+Index: b/src/projects/spades/pipeline/spades_pipeline/options_parser.py
+===================================================================
+--- a/src/projects/spades/pipeline/spades_pipeline/options_parser.py
++++ b/src/projects/spades/pipeline/spades_pipeline/options_parser.py
+@@ -1190,14 +1190,14 @@
if load_processed_dataset:
if os.path.isfile(processed_dataset_fpath):
try:
@@ -64,159 +72,64 @@ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1022086
except pyyaml.YAMLError:
_, exc, _ = sys.exc_info()
support.error(
---- spades.orig/assembler/src/spades_pipeline/scripts/compress_all.py
-+++ spades/assembler/src/spades_pipeline/scripts/compress_all.py
-@@ -38,7 +38,7 @@
- except:
- from joblib import Parallel, delayed
-
-- dataset_data = pyyaml.load(open(input_file))
-+ dataset_data = pyyaml.load(open(input_file), Loader=pyyaml.FullLoader)
- remove_not_corrected_reads(output_dir)
- is_changed = False
- if gzip_output:
-@@ -80,7 +80,7 @@
-
- if not_used_yaml_file != "":
- is_changed = True
-- not_used_dataset_data = pyyaml.load(open(not_used_yaml_file))
-+ not_used_dataset_data = pyyaml.load(open(not_used_yaml_file), Loader=pyyaml.FullLoader)
- dataset_data += not_used_dataset_data
- log.info("\n== Info about datasets not used in error correction stage is loaded")
-
---- spades.orig/assembler/src/spades_pipeline/scripts/postprocessing_script.py
-+++ spades/assembler/src/spades_pipeline/scripts/postprocessing_script.py
-@@ -66,7 +66,7 @@
- elif sys.version.startswith("3."):
- import pyyaml3 as pyyaml
-
-- dataset_data = pyyaml.load(open(args.dataset_yaml_file))
-+ dataset_data = pyyaml.load(open(args.dataset_yaml_file), Loader=pyyaml.FullLoader)
-
- # init python_lib_folder
- python_modules_home = abspath(dirname(realpath(__file__)))
---- spades.orig/assembler/src/spades_pipeline/stages/correction_stage.py
-+++ spades/assembler/src/spades_pipeline/stages/correction_stage.py
-@@ -24,7 +24,7 @@
- import pyyaml2 as pyyaml
- elif sys.version.startswith("3."):
- import pyyaml3 as pyyaml
-- data = pyyaml.load(open(filename))
-+ data = pyyaml.load(open(filename), Loader=pyyaml.FullLoader)
- data["dataset"] = cfg.dataset
- data["output_dir"] = cfg.output_dir
- data["work_dir"] = cfg.tmp_dir
---- spades.orig/assembler/src/spades_pipeline/stages/spades_stage.py
-+++ spades/assembler/src/spades_pipeline/stages/spades_stage.py
-@@ -29,7 +29,7 @@
- import pyyaml2 as pyyaml
- elif sys.version.startswith("3."):
- import pyyaml3 as pyyaml
-- est_params_data = pyyaml.load(open(est_params_filename))
-+ est_params_data = pyyaml.load(open(est_params_filename), Loader=pyyaml.FullLoader)
- max_read_length = int(est_params_data["nomerge max read length"])
- log.info("Max read length detected as %d" % max_read_length)
- if max_read_length == 0:
---- spades.orig/assembler/src/spades_pipeline/truspades/moleculo_filter_contigs.py
-+++ spades/assembler/src/spades_pipeline/truspades/moleculo_filter_contigs.py
-@@ -37,4 +37,4 @@
- return len(contig.seq) >= self.min_length
-
- # def Filter(contigs, left_reads, right_reads, length_threshold, pattern):
--# dataset_data = pyyaml.load(yaml_file, 'r')
-+# dataset_data = pyyaml.load(yaml_file, 'r', Loader=pyyaml.FullLoader)
---- spades.orig/assembler/src/test/teamcity/teamcity_kmertools/teamcity_gbuilder.py
-+++ spades/assembler/src/test/teamcity/teamcity_kmertools/teamcity_gbuilder.py
-@@ -63,7 +63,7 @@
- elif sys.version.startswith('3.'):
- import pyyaml3 as pyyaml
-
-- info = pyyaml.load(open(info_filename, 'r'))
-+ info = pyyaml.load(open(info_filename, 'r'), Loader=pyyaml.FullLoader)
- return info
-
-
---- spades.orig/assembler/src/test/teamcity/teamcity_kmertools/teamcity_kmercount.py
-+++ spades/assembler/src/test/teamcity/teamcity_kmertools/teamcity_kmercount.py
-@@ -63,7 +63,7 @@
- elif sys.version.startswith('3.'):
- import pyyaml3 as pyyaml
-
-- info = pyyaml.load(open(info_filename, 'r'))
-+ info = pyyaml.load(open(info_filename, 'r'), Loader=pyyaml.FullLoader)
- return info
-
-
---- spades.orig/assembler/src/test/teamcity/teamcity_kmertools/teamcity_kmerestimating.py
-+++ spades/assembler/src/test/teamcity/teamcity_kmertools/teamcity_kmerestimating.py
-@@ -63,7 +63,7 @@
- elif sys.version.startswith('3.'):
- import pyyaml3 as pyyaml
-
-- info = pyyaml.load(open(info_filename, 'r'))
-+ info = pyyaml.load(open(info_filename, 'r'), Loader=pyyaml.FullLoader)
- return info
-
-
---- spades.orig/assembler/src/spades_pipeline/stages/before_start_stage.py
-+++ spades/assembler/src/spades_pipeline/stages/before_start_stage.py
-@@ -29,7 +29,7 @@
+Index: b/src/projects/spades/pipeline/spades_pipeline/stages/before_start_stage.py
+===================================================================
+--- a/src/projects/spades/pipeline/spades_pipeline/stages/before_start_stage.py
++++ b/src/projects/spades/pipeline/spades_pipeline/stages/before_start_stage.py
+@@ -28,7 +28,7 @@
self.tmp_files = []
- if (os.path.isfile(os.path.join(output_dir, "run_spades.yaml"))):
+ if os.path.isfile(os.path.join(output_dir, "run_spades.yaml")):
- previous_pipeline = pyyaml.load(open(os.path.join(output_dir, "run_spades.yaml")))
+ previous_pipeline = pyyaml.load(open(os.path.join(output_dir, "run_spades.yaml")), Loader=pyyaml.FullLoader)
for previous_stage in previous_pipeline:
self.tmp_files += previous_stage["del_after"]
---- spades.orig/assembler/src/spades_pipeline/stages/error_correction_stage.py
-+++ spades/assembler/src/spades_pipeline/stages/error_correction_stage.py
+Index: b/src/projects/spades/pipeline/spades_pipeline/stages/correction_stage.py
+===================================================================
+--- a/src/projects/spades/pipeline/spades_pipeline/stages/correction_stage.py
++++ b/src/projects/spades/pipeline/spades_pipeline/stages/correction_stage.py
+@@ -25,7 +25,7 @@
+ def prepare_config_corr(filename, cfg, ext_python_modules_home):
+ addsitedir(ext_python_modules_home)
+ import pyyaml3 as pyyaml
+- data = pyyaml.load(open(filename))
++ data = pyyaml.load(open(filename), Loader=pyyaml.FullLoader)
+ data["dataset"] = cfg.dataset
+ data["output_dir"] = cfg.output_dir
+ data["work_dir"] = cfg.tmp_dir
+Index: b/src/projects/spades/pipeline/spades_pipeline/stages/error_correction_stage.py
+===================================================================
+--- a/src/projects/spades/pipeline/spades_pipeline/stages/error_correction_stage.py
++++ b/src/projects/spades/pipeline/spades_pipeline/stages/error_correction_stage.py
@@ -47,7 +47,7 @@
- import pyyaml2 as pyyaml
- elif sys.version.startswith("3."):
- import pyyaml3 as pyyaml
+ def prepare_config_ih(self, filename, cfg, ext_python_modules_home):
+ addsitedir(ext_python_modules_home)
+ import pyyaml3 as pyyaml
- data = pyyaml.load(open(filename))
+ data = pyyaml.load(open(filename), Loader=pyyaml.FullLoader)
data["dataset"] = cfg.dataset_yaml_filename
data["working_dir"] = cfg.tmp_dir
data["output_dir"] = cfg.output_dir
---- spades.orig/assembler/src/test/teamcity/teamcity_kmertools/teamcity_readfilter.py
-+++ spades/assembler/src/test/teamcity/teamcity_kmertools/teamcity_readfilter.py
-@@ -63,7 +63,7 @@
- elif sys.version.startswith('3.'):
- import pyyaml3 as pyyaml
-
-- info = pyyaml.load(open(info_filename, 'r'))
-+ info = pyyaml.load(open(info_filename, 'r'), Loader=pyyaml.FullLoader)
- return info
+Index: b/src/projects/spades/pipeline/spades_pipeline/supplemetary/compress_all.py
+===================================================================
+--- a/src/projects/spades/pipeline/spades_pipeline/supplemetary/compress_all.py
++++ b/src/projects/spades/pipeline/spades_pipeline/supplemetary/compress_all.py
+@@ -32,7 +32,7 @@
+ import pyyaml3 as pyyaml
+ from concurrent.futures import ProcessPoolExecutor
+- dataset_data = pyyaml.load(open(input_file))
++ dataset_data = pyyaml.load(open(input_file), Loader=pyyaml.FullLoader)
+ remove_not_corrected_reads(output_dir)
+ is_changed = False
+ if gzip_output:
+@@ -83,7 +83,7 @@
---- spades.orig/assembler/src/test/teamcity/teamcity_workflow/workflow_base.py
-+++ spades/assembler/src/test/teamcity/teamcity_workflow/workflow_base.py
-@@ -67,7 +67,7 @@
- elif sys.version.startswith('3.'):
- import pyyaml3 as pyyaml
-
-- info = pyyaml.load(open(info_filename, 'r'))
-+ info = pyyaml.load(open(info_filename, 'r'), Loader=pyyaml.FullLoader)
- return info
-
-
---- spades.orig/assembler/src/test/teamcity/teamcity_workflow/workflow_kmer.py
-+++ spades/assembler/src/test/teamcity/teamcity_workflow/workflow_kmer.py
-@@ -27,7 +27,7 @@
- def get_kmer_list(path):
- run_spades_yaml = os.path.join(path, "run_spades.yaml")
-
-- stages = pyyaml.load(open(run_spades_yaml))
-+ stages = pyyaml.load(open(run_spades_yaml), Loader=pyyaml.FullLoader)
- kmers = []
- for stage in stages:
- stage_name = stage['STAGE']
-@@ -62,4 +62,4 @@
- return 12
-
+ if not_used_yaml_file != "":
+ is_changed = True
+- not_used_dataset_data = pyyaml.load(open(not_used_yaml_file))
++ not_used_dataset_data = pyyaml.load(open(not_used_yaml_file), Loader=pyyaml.FullLoader)
+ dataset_data += not_used_dataset_data
+ log.info("\n== Info about datasets not used in error correction stage is loaded")
--workflow_base.main(check_test=check_kmer_set)
-\ No newline at end of file
-+workflow_base.main(check_test=check_kmer_set)
View it on GitLab: https://salsa.debian.org/med-team/spades/-/compare/1a0f7bcdedeecbc87dced1803cc7a796053b5f18...04f3dfbadb6e49276cd35286426ad0a663a74ba0
--
View it on GitLab: https://salsa.debian.org/med-team/spades/-/compare/1a0f7bcdedeecbc87dced1803cc7a796053b5f18...04f3dfbadb6e49276cd35286426ad0a663a74ba0
You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20261021/7e67996c/attachment-0001.htm>
More information about the debian-med-commit
mailing list