Skip to content

{bio}[foss/2024a] dorado v1.4.0 w/ CUDA 12.6.0#25577

Closed
pavelToman wants to merge 1 commit intoeasybuilders:developfrom
pavelToman:20260317120506_new_pr_dorado140
Closed

{bio}[foss/2024a] dorado v1.4.0 w/ CUDA 12.6.0#25577
pavelToman wants to merge 1 commit intoeasybuilders:developfrom
pavelToman:20260317120506_new_pr_dorado140

Conversation

@pavelToman
Copy link
Copy Markdown
Collaborator

@pavelToman pavelToman commented Mar 17, 2026

(created using eb --new-pr)
resolves vscentrum/vsc-software-stack#644

@github-actions github-actions bot added the 2024a issues & PRs related to 2024a common toolchains label Mar 17, 2026
@github-actions
Copy link
Copy Markdown

Updated software dorado-1.4.0-foss-2024a-CUDA-12.6.0.eb

Diff against dorado-1.1.1-foss-2024a-CUDA-12.6.0.eb

easybuild/easyconfigs/d/dorado/dorado-1.1.1-foss-2024a-CUDA-12.6.0.eb

diff --git a/easybuild/easyconfigs/d/dorado/dorado-1.1.1-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/d/dorado/dorado-1.4.0-foss-2024a-CUDA-12.6.0.eb
index eb876a41d6..e933da46a1 100644
--- a/easybuild/easyconfigs/d/dorado/dorado-1.1.1-foss-2024a-CUDA-12.6.0.eb
+++ b/easybuild/easyconfigs/d/dorado/dorado-1.4.0-foss-2024a-CUDA-12.6.0.eb
@@ -1,7 +1,7 @@
 easyblock = 'CMakeMake'
 
 name = 'dorado'
-version = '1.1.1'
+version = '1.4.0'
 versionsuffix = '-CUDA-%(cudaver)s'
 
 homepage = 'https://github.com/nanoporetech/dorado'
@@ -20,29 +20,21 @@ sources = [{
     },
     'filename': SOURCE_TAR_XZ,
 }]
-patches = [
-    '%(name)s-1.0.0_dont_install_external_libraries.patch',
-]
-checksums = [
-    {'dorado-1.1.1.tar.xz': 'e3aad85ab5076bae19a679332b71215c3b10faa745e3b46b7a35fc8fdb14fed6'},
-    {'dorado-1.0.0_dont_install_external_libraries.patch':
-     '2db45a8b1d5360e743b96beb9ce61264a2b3d4a815bed10ee4978caa3fba3a3b'},
-]
+
+checksums = ['b65aaaeacd9169ecf3722b4e37956f74ae4ac9ce09827d3bb4cdef1ec82e6965']
 
 builddependencies = [
-    ('binutils', '2.42'),
     ('CMake', '3.29.3'),
-    ('patchelf', '0.18.0'),
     ('git', '2.45.1'),
 ]
-
+_htslib_version = '1.21'
 dependencies = [
     ('CUDA', '12.6.0', '', SYSTEM),
     ('OpenSSL', '3', '', SYSTEM),
     ('PyTorch', '2.7.1', versionsuffix),
     ('HDF5', '1.14.5'),
     ('zstd', '1.5.6'),
-    ('HTSlib', '1.21'),
+    ('HTSlib', _htslib_version),
     ('kineto', '20250715', versionsuffix),
     ('libaec', '1.1.3'),
 ]
@@ -54,10 +46,12 @@ preconfigopts = "sed -i '/OPENSSL_USE_STATIC_LIBS TRUE/d' ../dorado/cmake/OpenSS
 # undefined reference to symbol 'SSL_get_peer_certificate@@OPENSSL_1_1_0'
 preconfigopts += r"sed -i 's/OpenSSL::SSL/ssl\n    crypto/g' ../dorado/dorado/utils/CMakeLists.txt && "
 
+# replace dont_install_external_libraries.patch by sed cmd - use system CUDA
+preconfigopts += "sed -i '/install(FILES ${NATIVE_CUDA_LIBS} DESTINATION lib COMPONENT redist_libs)/d' "
+preconfigopts += "../dorado/cmake/InstallRedistLibs.cmake && "
+
 # don't use vendored HTSlib, use provided HTSlib dependency
 preconfigopts += "rm -r ../dorado/dorado/3rdparty/htslib/ && "
-preconfigopts += "sed -i '/add_dependencies.*htslib_project/d' ../dorado/CMakeLists.txt && "
-preconfigopts += "sed -i '/add_dependencies.*htslib_project/d' ../dorado/dorado/utils/CMakeLists.txt && "
 preconfigopts += "sed -i '/Htslib.cmake/d' ../dorado/CMakeLists.txt && "
 # rename link target 'htslib' -> 'hts' only in CMake files, excluding kadayashi's cmake dir
 preconfigopts += r"find ../dorado -type f \( -name CMakeLists.txt -o -name '*.cmake' \) "
@@ -68,20 +62,17 @@ preconfigopts += r"sed -i -E 's/find_package\(\s*hts\b/find_package(htslib/' "
 preconfigopts += "../dorado/dorado/3rdparty/kadayashi/CMakeLists.txt && "
 preconfigopts += r"sed -i -E 's/\bset\(HTSLIB_LIBRARIES\s+htslib(::hts)?\)/set(HTSLIB_LIBRARIES hts)/' "
 preconfigopts += "../dorado/dorado/3rdparty/kadayashi/cmake/Findhtslib.cmake && "
-
+# fix software_versions.yml - license and version of htslib
+_htslib_block = r"/^htslib:$/,/^[^[:space:]].*:$/ s#^\([[:space:]]*"
+preconfigopts += (
+    "sed -i "
+    rf"""-e '{_htslib_block}license:\).*#\1 PATH_NOT_AVAILABLE#' """
+    rf"""-e '{_htslib_block}version:\).*#\1 "{_htslib_version}"#' """
+    "../dorado/dorado/3rdparty/software_versions.yml && "
+)
 # disable treating warnings like errors by stripping out -Werror
 # cfr. https://github.com/nanoporetech/dorado/issues/779
 preconfigopts += "sed -i 's/-Werror//g' ../dorado/cmake/Warnings.cmake && "
-preconfigopts += "sed -i 's/enable_warnings_as_errors.*//g' ../dorado/CMakeLists.txt "
-preconfigopts += "../dorado/dorado/utils/CMakeLists.txt "
-preconfigopts += "../dorado/dorado/modbase/CMakeLists.txt "
-preconfigopts += "../dorado/dorado/torch_utils/CMakeLists.txt && "
-
-# skip including a nonexistant file
-preconfigopts += "TMPDIR=$(mktemp -d) && "
-preconfigopts += "head -442 ../dorado/cmake/Torch.cmake > $TMPDIR/cmake && "
-preconfigopts += "tail -31 ../dorado/cmake/Torch.cmake >> $TMPDIR/cmake && "
-preconfigopts += "mv $TMPDIR/cmake ../dorado/cmake/Torch.cmake && "
 
 _copts = [
     "-DCUDA_TOOLKIT_ROOT_DIR=$EBROOTCUDA",
@@ -92,29 +83,20 @@ _copts = [
     # in function `_GLOBAL__sub_I_mutex.cc': mutex.cc:(.text.startup+0x17): undefined reference to `pthread_atfork'
     '-DCMAKE_C_FLAGS="$CFLAGS -pthread"',
     '-DCMAKE_CXX_FLAGS="$CXXFLAGS -pthread"',
-    # "-DHTSLIB_INCLUDE_DIR=$EBROOTHTSLIB/include",
-    # "-DHTSLIB_LIBRARIES=$EBROOTHTSLIB/lib/libhts.so",
-    '-DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -lcublas"',
-    '-DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS -lcublas"',
 ]
 
 configopts = ' '.join(_copts) + ' '
 
-# disable CMake fiddling with RPATH when EasyBuild is configured to use RPATH linking
-configopts += "$(if %(rpath_enabled)s; then "
-configopts += "echo '-DCMAKE_SKIP_INSTALL_RPATH=YES -DCMAKE_SKIP_RPATH=YES'; fi) "
-
-# CUDA libraries that are copied to installdir need to be patched to have an RPATH section
-# when EasyBuild is configured to use RPATH linking (required to pass RPATH sanity check);
-# by default, CMake sets RUNPATH to '$ORIGIN' rather than RPATH (but that's disabled above)
-postinstallcmds = [
-    "if %(rpath_enabled)s; then "
-    "  for lib in $(ls %(installdir)s/lib/lib{cu,nv}*.so*); do "
-    "    echo setting RPATH in $lib;"
-    "    patchelf --force-rpath --set-rpath '$ORIGIN' $lib;"
-    "  done;"
-    "fi",
-]
+# fix FASTQ tag tests: fastq_with_us_and_tags.fq corrupted (contains U bases)
+# reported: https://github.com/nanoporetech/dorado/issues/1581
+pretestopts = (
+    "tr 'Uu' 'Tt' < ../dorado/tests/data/bam_reader/fastq_with_us_and_tags.fq "
+    "> ../dorado/tests/data/bam_reader/fastq_with_us_and_tags.fq.tmp && "
+    "mv ../dorado/tests/data/bam_reader/fastq_with_us_and_tags.fq.tmp "
+    "../dorado/tests/data/bam_reader/fastq_with_us_and_tags.fq && "
+)
+
+runtest = True
 
 sanity_check_paths = {
     'files': ['bin/dorado'],
Diff against dorado-0.9.1-foss-2023a-CUDA-12.1.1.eb

easybuild/easyconfigs/d/dorado/dorado-0.9.1-foss-2023a-CUDA-12.1.1.eb

diff --git a/easybuild/easyconfigs/d/dorado/dorado-0.9.1-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/d/dorado/dorado-1.4.0-foss-2024a-CUDA-12.6.0.eb
index f1006a7765..e933da46a1 100644
--- a/easybuild/easyconfigs/d/dorado/dorado-0.9.1-foss-2023a-CUDA-12.1.1.eb
+++ b/easybuild/easyconfigs/d/dorado/dorado-1.4.0-foss-2024a-CUDA-12.6.0.eb
@@ -1,13 +1,13 @@
 easyblock = 'CMakeMake'
 
 name = 'dorado'
-version = '0.9.1'
+version = '1.4.0'
 versionsuffix = '-CUDA-%(cudaver)s'
 
 homepage = 'https://github.com/nanoporetech/dorado'
 description = """Dorado is a high-performance, easy-to-use, open source basecaller for Oxford Nanopore reads."""
 
-toolchain = {'name': 'foss', 'version': '2023a'}
+toolchain = {'name': 'foss', 'version': '2024a'}
 toolchainopts = {'usempi': True}
 
 source_urls = ['https://github.com/nanoporetech/dorado/archive/']
@@ -20,31 +20,23 @@ sources = [{
     },
     'filename': SOURCE_TAR_XZ,
 }]
-patches = [
-    '%(name)s-0.8.0_dont_install_external_libraries.patch',
-]
-checksums = [
-    {'dorado-0.9.1.tar.xz':
-     '95fcbc822b0f31e0f670cafbd234ea639233e978d2fad745b0546b344974dff0'},
-    {'dorado-0.8.0_dont_install_external_libraries.patch':
-     '28942b7057af00c574a5e70d33a58b4036fd09ae0b041f45b67581c8dda832b1'},
-]
+
+checksums = ['b65aaaeacd9169ecf3722b4e37956f74ae4ac9ce09827d3bb4cdef1ec82e6965']
 
 builddependencies = [
-    ('binutils', '2.40'),
-    ('CMake', '3.26.3'),
-    ('patchelf', '0.18.0'),
+    ('CMake', '3.29.3'),
+    ('git', '2.45.1'),
 ]
-
+_htslib_version = '1.21'
 dependencies = [
-    ('CUDA', '12.1.1', '', SYSTEM),
-    ('OpenSSL', '1.1', '', SYSTEM),
-    ('PyTorch', '2.1.2', '-CUDA-%(cudaver)s'),
-    ('HDF5', '1.14.0'),
-    ('zstd', '1.5.5'),
-    ('HTSlib', '1.18'),
-    ('kineto', '0.4.0'),
-    ('libaec', '1.0.6'),
+    ('CUDA', '12.6.0', '', SYSTEM),
+    ('OpenSSL', '3', '', SYSTEM),
+    ('PyTorch', '2.7.1', versionsuffix),
+    ('HDF5', '1.14.5'),
+    ('zstd', '1.5.6'),
+    ('HTSlib', _htslib_version),
+    ('kineto', '20250715', versionsuffix),
+    ('libaec', '1.1.3'),
 ]
 
 # don't link to OpenSSL static libraries
@@ -52,18 +44,32 @@ dependencies = [
 preconfigopts = "sed -i '/OPENSSL_USE_STATIC_LIBS TRUE/d' ../dorado/cmake/OpenSSL.cmake && "
 # link in the ssl and crypto libs, to fix:
 # undefined reference to symbol 'SSL_get_peer_certificate@@OPENSSL_1_1_0'
-preconfigopts += "sed -i 's/OpenSSL::SSL/ssl\\n    crypto/g' ../dorado/dorado/utils/CMakeLists.txt && "
+preconfigopts += r"sed -i 's/OpenSSL::SSL/ssl\n    crypto/g' ../dorado/dorado/utils/CMakeLists.txt && "
+
+# replace dont_install_external_libraries.patch by sed cmd - use system CUDA
+preconfigopts += "sed -i '/install(FILES ${NATIVE_CUDA_LIBS} DESTINATION lib COMPONENT redist_libs)/d' "
+preconfigopts += "../dorado/cmake/InstallRedistLibs.cmake && "
 
 # don't use vendored HTSlib, use provided HTSlib dependency
 preconfigopts += "rm -r ../dorado/dorado/3rdparty/htslib/ && "
-preconfigopts += "sed -i '/add_dependencies.*htslib_project/d' ../dorado/CMakeLists.txt && "
-preconfigopts += "sed -i '/add_dependencies.*htslib_project/d' ../dorado/dorado/utils/CMakeLists.txt && "
 preconfigopts += "sed -i '/Htslib.cmake/d' ../dorado/CMakeLists.txt && "
-# link with -lhts, not -lhtslib
-preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/CMakeLists.txt && "
-preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/dorado/utils/CMakeLists.txt && "
-preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/dorado/torch_utils/CMakeLists.txt && "
-
+# rename link target 'htslib' -> 'hts' only in CMake files, excluding kadayashi's cmake dir
+preconfigopts += r"find ../dorado -type f \( -name CMakeLists.txt -o -name '*.cmake' \) "
+preconfigopts += "-not -path '../dorado/dorado/3rdparty/kadayashi/cmake/*' -print0 | "
+preconfigopts += r"xargs -0 sed -i -E 's/\<htslib\>/hts/g' && "
+# keep kadayashi's find_package on 'htslib' and make it return -lhts via its finder
+preconfigopts += r"sed -i -E 's/find_package\(\s*hts\b/find_package(htslib/' "
+preconfigopts += "../dorado/dorado/3rdparty/kadayashi/CMakeLists.txt && "
+preconfigopts += r"sed -i -E 's/\bset\(HTSLIB_LIBRARIES\s+htslib(::hts)?\)/set(HTSLIB_LIBRARIES hts)/' "
+preconfigopts += "../dorado/dorado/3rdparty/kadayashi/cmake/Findhtslib.cmake && "
+# fix software_versions.yml - license and version of htslib
+_htslib_block = r"/^htslib:$/,/^[^[:space:]].*:$/ s#^\([[:space:]]*"
+preconfigopts += (
+    "sed -i "
+    rf"""-e '{_htslib_block}license:\).*#\1 PATH_NOT_AVAILABLE#' """
+    rf"""-e '{_htslib_block}version:\).*#\1 "{_htslib_version}"#' """
+    "../dorado/dorado/3rdparty/software_versions.yml && "
+)
 # disable treating warnings like errors by stripping out -Werror
 # cfr. https://github.com/nanoporetech/dorado/issues/779
 preconfigopts += "sed -i 's/-Werror//g' ../dorado/cmake/Warnings.cmake && "
@@ -76,25 +82,21 @@ _copts = [
     # add -pthread flag (in addition to -lpthread) to avoid linking error:
     # in function `_GLOBAL__sub_I_mutex.cc': mutex.cc:(.text.startup+0x17): undefined reference to `pthread_atfork'
     '-DCMAKE_C_FLAGS="$CFLAGS -pthread"',
+    '-DCMAKE_CXX_FLAGS="$CXXFLAGS -pthread"',
 ]
 
 configopts = ' '.join(_copts) + ' '
 
-# disable CMake fiddling with RPATH when EasyBuild is configured to use RPATH linking
-configopts += "$(if %(rpath_enabled)s; then "
-configopts += "echo '-DCMAKE_SKIP_INSTALL_RPATH=YES -DCMAKE_SKIP_RPATH=YES'; fi) "
-
-# CUDA libraries that are copied to installdir need to be patched to have an RPATH section
-# when EasyBuild is configured to use RPATH linking (required to pass RPATH sanity check);
-# by default, CMake sets RUNPATH to '$ORIGIN' rather than RPATH (but that's disabled above)
-postinstallcmds = [
-    "if %(rpath_enabled)s; then "
-    "  for lib in $(ls %(installdir)s/lib/lib{cu,nv}*.so*); do "
-    "    echo setting RPATH in $lib;"
-    "    patchelf --force-rpath --set-rpath '$ORIGIN' $lib;"
-    "  done;"
-    "fi",
-]
+# fix FASTQ tag tests: fastq_with_us_and_tags.fq corrupted (contains U bases)
+# reported: https://github.com/nanoporetech/dorado/issues/1581
+pretestopts = (
+    "tr 'Uu' 'Tt' < ../dorado/tests/data/bam_reader/fastq_with_us_and_tags.fq "
+    "> ../dorado/tests/data/bam_reader/fastq_with_us_and_tags.fq.tmp && "
+    "mv ../dorado/tests/data/bam_reader/fastq_with_us_and_tags.fq.tmp "
+    "../dorado/tests/data/bam_reader/fastq_with_us_and_tags.fq && "
+)
+
+runtest = True
 
 sanity_check_paths = {
     'files': ['bin/dorado'],
Diff against dorado-0.9.0-foss-2023a-CUDA-12.1.1.eb

easybuild/easyconfigs/d/dorado/dorado-0.9.0-foss-2023a-CUDA-12.1.1.eb

diff --git a/easybuild/easyconfigs/d/dorado/dorado-0.9.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/d/dorado/dorado-1.4.0-foss-2024a-CUDA-12.6.0.eb
index 38a2abfe08..e933da46a1 100644
--- a/easybuild/easyconfigs/d/dorado/dorado-0.9.0-foss-2023a-CUDA-12.1.1.eb
+++ b/easybuild/easyconfigs/d/dorado/dorado-1.4.0-foss-2024a-CUDA-12.6.0.eb
@@ -1,13 +1,13 @@
 easyblock = 'CMakeMake'
 
 name = 'dorado'
-version = '0.9.0'
+version = '1.4.0'
 versionsuffix = '-CUDA-%(cudaver)s'
 
 homepage = 'https://github.com/nanoporetech/dorado'
 description = """Dorado is a high-performance, easy-to-use, open source basecaller for Oxford Nanopore reads."""
 
-toolchain = {'name': 'foss', 'version': '2023a'}
+toolchain = {'name': 'foss', 'version': '2024a'}
 toolchainopts = {'usempi': True}
 
 source_urls = ['https://github.com/nanoporetech/dorado/archive/']
@@ -20,31 +20,23 @@ sources = [{
     },
     'filename': SOURCE_TAR_XZ,
 }]
-patches = [
-    '%(name)s-0.8.0_dont_install_external_libraries.patch',
-]
-checksums = [
-    {'dorado-0.9.0.tar.xz':
-     'f08ccbd047d16e20e1fbd71f3449c9b82cbe264aa07a0d0f9a637f957587d99a'},
-    {'dorado-0.8.0_dont_install_external_libraries.patch':
-     '28942b7057af00c574a5e70d33a58b4036fd09ae0b041f45b67581c8dda832b1'},
-]
+
+checksums = ['b65aaaeacd9169ecf3722b4e37956f74ae4ac9ce09827d3bb4cdef1ec82e6965']
 
 builddependencies = [
-    ('binutils', '2.40'),
-    ('CMake', '3.26.3'),
-    ('patchelf', '0.18.0'),
+    ('CMake', '3.29.3'),
+    ('git', '2.45.1'),
 ]
-
+_htslib_version = '1.21'
 dependencies = [
-    ('CUDA', '12.1.1', '', SYSTEM),
-    ('OpenSSL', '1.1', '', SYSTEM),
-    ('PyTorch', '2.1.2', '-CUDA-%(cudaver)s'),
-    ('HDF5', '1.14.0'),
-    ('zstd', '1.5.5'),
-    ('HTSlib', '1.18'),
-    ('kineto', '0.4.0'),
-    ('libaec', '1.0.6'),
+    ('CUDA', '12.6.0', '', SYSTEM),
+    ('OpenSSL', '3', '', SYSTEM),
+    ('PyTorch', '2.7.1', versionsuffix),
+    ('HDF5', '1.14.5'),
+    ('zstd', '1.5.6'),
+    ('HTSlib', _htslib_version),
+    ('kineto', '20250715', versionsuffix),
+    ('libaec', '1.1.3'),
 ]
 
 # don't link to OpenSSL static libraries
@@ -52,18 +44,32 @@ dependencies = [
 preconfigopts = "sed -i '/OPENSSL_USE_STATIC_LIBS TRUE/d' ../dorado/cmake/OpenSSL.cmake && "
 # link in the ssl and crypto libs, to fix:
 # undefined reference to symbol 'SSL_get_peer_certificate@@OPENSSL_1_1_0'
-preconfigopts += "sed -i 's/OpenSSL::SSL/ssl\\n    crypto/g' ../dorado/dorado/utils/CMakeLists.txt && "
+preconfigopts += r"sed -i 's/OpenSSL::SSL/ssl\n    crypto/g' ../dorado/dorado/utils/CMakeLists.txt && "
+
+# replace dont_install_external_libraries.patch by sed cmd - use system CUDA
+preconfigopts += "sed -i '/install(FILES ${NATIVE_CUDA_LIBS} DESTINATION lib COMPONENT redist_libs)/d' "
+preconfigopts += "../dorado/cmake/InstallRedistLibs.cmake && "
 
 # don't use vendored HTSlib, use provided HTSlib dependency
 preconfigopts += "rm -r ../dorado/dorado/3rdparty/htslib/ && "
-preconfigopts += "sed -i '/add_dependencies.*htslib_project/d' ../dorado/CMakeLists.txt && "
-preconfigopts += "sed -i '/add_dependencies.*htslib_project/d' ../dorado/dorado/utils/CMakeLists.txt && "
 preconfigopts += "sed -i '/Htslib.cmake/d' ../dorado/CMakeLists.txt && "
-# link with -lhts, not -lhtslib
-preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/CMakeLists.txt && "
-preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/dorado/utils/CMakeLists.txt && "
-preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/dorado/torch_utils/CMakeLists.txt && "
-
+# rename link target 'htslib' -> 'hts' only in CMake files, excluding kadayashi's cmake dir
+preconfigopts += r"find ../dorado -type f \( -name CMakeLists.txt -o -name '*.cmake' \) "
+preconfigopts += "-not -path '../dorado/dorado/3rdparty/kadayashi/cmake/*' -print0 | "
+preconfigopts += r"xargs -0 sed -i -E 's/\<htslib\>/hts/g' && "
+# keep kadayashi's find_package on 'htslib' and make it return -lhts via its finder
+preconfigopts += r"sed -i -E 's/find_package\(\s*hts\b/find_package(htslib/' "
+preconfigopts += "../dorado/dorado/3rdparty/kadayashi/CMakeLists.txt && "
+preconfigopts += r"sed -i -E 's/\bset\(HTSLIB_LIBRARIES\s+htslib(::hts)?\)/set(HTSLIB_LIBRARIES hts)/' "
+preconfigopts += "../dorado/dorado/3rdparty/kadayashi/cmake/Findhtslib.cmake && "
+# fix software_versions.yml - license and version of htslib
+_htslib_block = r"/^htslib:$/,/^[^[:space:]].*:$/ s#^\([[:space:]]*"
+preconfigopts += (
+    "sed -i "
+    rf"""-e '{_htslib_block}license:\).*#\1 PATH_NOT_AVAILABLE#' """
+    rf"""-e '{_htslib_block}version:\).*#\1 "{_htslib_version}"#' """
+    "../dorado/dorado/3rdparty/software_versions.yml && "
+)
 # disable treating warnings like errors by stripping out -Werror
 # cfr. https://github.com/nanoporetech/dorado/issues/779
 preconfigopts += "sed -i 's/-Werror//g' ../dorado/cmake/Warnings.cmake && "
@@ -76,25 +82,21 @@ _copts = [
     # add -pthread flag (in addition to -lpthread) to avoid linking error:
     # in function `_GLOBAL__sub_I_mutex.cc': mutex.cc:(.text.startup+0x17): undefined reference to `pthread_atfork'
     '-DCMAKE_C_FLAGS="$CFLAGS -pthread"',
+    '-DCMAKE_CXX_FLAGS="$CXXFLAGS -pthread"',
 ]
 
 configopts = ' '.join(_copts) + ' '
 
-# disable CMake fiddling with RPATH when EasyBuild is configured to use RPATH linking
-configopts += "$(if %(rpath_enabled)s; then "
-configopts += "echo '-DCMAKE_SKIP_INSTALL_RPATH=YES -DCMAKE_SKIP_RPATH=YES'; fi) "
-
-# CUDA libraries that are copied to installdir need to be patched to have an RPATH section
-# when EasyBuild is configured to use RPATH linking (required to pass RPATH sanity check);
-# by default, CMake sets RUNPATH to '$ORIGIN' rather than RPATH (but that's disabled above)
-postinstallcmds = [
-    "if %(rpath_enabled)s; then "
-    "  for lib in $(ls %(installdir)s/lib/lib{cu,nv}*.so*); do "
-    "    echo setting RPATH in $lib;"
-    "    patchelf --force-rpath --set-rpath '$ORIGIN' $lib;"
-    "  done;"
-    "fi",
-]
+# fix FASTQ tag tests: fastq_with_us_and_tags.fq corrupted (contains U bases)
+# reported: https://github.com/nanoporetech/dorado/issues/1581
+pretestopts = (
+    "tr 'Uu' 'Tt' < ../dorado/tests/data/bam_reader/fastq_with_us_and_tags.fq "
+    "> ../dorado/tests/data/bam_reader/fastq_with_us_and_tags.fq.tmp && "
+    "mv ../dorado/tests/data/bam_reader/fastq_with_us_and_tags.fq.tmp "
+    "../dorado/tests/data/bam_reader/fastq_with_us_and_tags.fq && "
+)
+
+runtest = True
 
 sanity_check_paths = {
     'files': ['bin/dorado'],

@pavelToman
Copy link
Copy Markdown
Collaborator Author

@boegelbot please test @ jsc-zen3-a100

@boegelbot
Copy link
Copy Markdown
Collaborator

@pavelToman: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=25577 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_25577 --ntasks=8 --partition=jsczen3g --gres=gpu:1 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 10039

Test results coming soon (I hope)...

Details

- notification for comment with ID 4074150562 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@pavelToman
Copy link
Copy Markdown
Collaborator Author

Test report by @pavelToman
SUCCESS
Build succeeded for 1 out of 1 (total: 11 mins 37 secs) (1 easyconfigs in total)
node4005.donphan.os - Linux RHEL 9.6, x86_64, Intel(R) Xeon(R) Gold 6240 CPU @ 2.60GHz, 1 x NVIDIA NVIDIA A2, 580.95.05, Python 3.9.21
See https://gist.github.com/pavelToman/b6491ad0859f0f4dd8d8ee2241395b3a for a full test report.

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 1 out of 1 (total: 12 mins 33 secs) (1 easyconfigs in total)
jsczen3g1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.7, x86_64, AMD EPYC-Milan Processor (zen3), 1 x NVIDIA NVIDIA A100 80GB PCIe, 590.48.01, Python 3.9.25
See https://gist.github.com/boegelbot/874951d0bf1686c1461c48c819de0760 for a full test report.

@pavelToman
Copy link
Copy Markdown
Collaborator Author

pavelToman commented Mar 17, 2026

Dorado needs newer HTSlib, v.1.22.1 should be ok
nanoporetech/dorado#1581 (comment)

@pavelToman pavelToman marked this pull request as draft March 17, 2026 13:56
@pavelToman pavelToman closed this Mar 25, 2026
@pavelToman
Copy link
Copy Markdown
Collaborator Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2024a issues & PRs related to 2024a common toolchains update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dorado 1.4

3 participants