Skip to content

copy tests to minimap2 install dir to fix --sanity-check-only and --module only, fix installing recent minimap2 easyconfigs on ARM, add easyconfig for minimap2 v2.29 w/ GCCcore/13.3.0#22791

Merged
boegel merged 8 commits intoeasybuilders:developfrom
laraPPr:20250423134655_new_pr_minimap2220
Apr 29, 2025
Merged

copy tests to minimap2 install dir to fix --sanity-check-only and --module only, fix installing recent minimap2 easyconfigs on ARM, add easyconfig for minimap2 v2.29 w/ GCCcore/13.3.0#22791
boegel merged 8 commits intoeasybuilders:developfrom
laraPPr:20250423134655_new_pr_minimap2220

Conversation

@laraPPr
Copy link
Copy Markdown
Contributor

@laraPPr laraPPr commented Apr 23, 2025

(created using eb --new-pr)

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 23, 2025

Updated software minimap2-2.29-GCCcore-13.3.0.eb

Diff against minimap2-2.28-GCCcore-13.2.0.eb

easybuild/easyconfigs/m/minimap2/minimap2-2.28-GCCcore-13.2.0.eb

diff --git a/easybuild/easyconfigs/m/minimap2/minimap2-2.28-GCCcore-13.2.0.eb b/easybuild/easyconfigs/m/minimap2/minimap2-2.29-GCCcore-13.3.0.eb
index 0e8f754b16..29825beea0 100644
--- a/easybuild/easyconfigs/m/minimap2/minimap2-2.28-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/m/minimap2/minimap2-2.29-GCCcore-13.3.0.eb
@@ -11,7 +11,7 @@
 easyblock = 'MakeCp'
 
 name = 'minimap2'
-version = '2.28'
+version = '2.29'
 
 homepage = 'https://github.com/lh3/minimap2'
 description = """Minimap2 is a fast sequence mapping and alignment
@@ -24,20 +24,20 @@ test data sets, minimap2 is over 20 times faster than most other
 long-read aligners. It will replace BWA-MEM for long reads and contig
 alignment."""
 
-toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
 
 source_urls = ['https://github.com/lh3/%(name)s/releases/download/v%(version)s/']
 sources = ['%(name)s-%(version)s.tar.bz2']
-checksums = ['ffa5712735d229119f8c05722a0638ae0cc15aeb8938e29a3e52d5da5c92a0b4']
+checksums = ['8a231af5766b62cb9e24720290a730809633a6ea4cb7fe49ce39884438eceddb']
 
-builddependencies = [('binutils', '2.40')]
+builddependencies = [('binutils', '2.42')]
 
-dependencies = [('zlib', '1.2.13')]
+dependencies = [('zlib', '1.3.1')]
 
 # Adding -DHAVE_KALLOC because this was done in the past as the
-# INCLUDES variable was used to pass the CPPFLAGS set by EasyBuild
+# INCLUDES variable was used to pass the CPPFLAGS set by EasyBuild.
 # The INCLUDES variable is used for ARM support so we can no longer
-# use it to pass the CPPFLAGS set by EasyBuild
+# use it to pass the CPPFLAGS set by EasyBuild.
 buildopts = 'CC="${CC}" CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS} -DHAVE_KALLOC"'
 
 if ARCH == 'aarch64':
Diff against minimap2-2.26-GCCcore-12.3.0.eb

easybuild/easyconfigs/m/minimap2/minimap2-2.26-GCCcore-12.3.0.eb

diff --git a/easybuild/easyconfigs/m/minimap2/minimap2-2.26-GCCcore-12.3.0.eb b/easybuild/easyconfigs/m/minimap2/minimap2-2.29-GCCcore-13.3.0.eb
index c7697decdb..29825beea0 100644
--- a/easybuild/easyconfigs/m/minimap2/minimap2-2.26-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/m/minimap2/minimap2-2.29-GCCcore-13.3.0.eb
@@ -11,7 +11,7 @@
 easyblock = 'MakeCp'
 
 name = 'minimap2'
-version = '2.26'
+version = '2.29'
 
 homepage = 'https://github.com/lh3/minimap2'
 description = """Minimap2 is a fast sequence mapping and alignment
@@ -24,20 +24,20 @@ test data sets, minimap2 is over 20 times faster than most other
 long-read aligners. It will replace BWA-MEM for long reads and contig
 alignment."""
 
-toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
 
 source_urls = ['https://github.com/lh3/%(name)s/releases/download/v%(version)s/']
 sources = ['%(name)s-%(version)s.tar.bz2']
-checksums = ['6a588efbd273bff4f4808d5190957c50272833d2daeb4407ccf4c1b78143624c']
+checksums = ['8a231af5766b62cb9e24720290a730809633a6ea4cb7fe49ce39884438eceddb']
 
-builddependencies = [('binutils', '2.40')]
+builddependencies = [('binutils', '2.42')]
 
-dependencies = [('zlib', '1.2.13')]
+dependencies = [('zlib', '1.3.1')]
 
 # Adding -DHAVE_KALLOC because this was done in the past as the
-# INCLUDES variable was used to pass the CPPFLAGS set by EasyBuild
+# INCLUDES variable was used to pass the CPPFLAGS set by EasyBuild.
 # The INCLUDES variable is used for ARM support so we can no longer
-# use it to pass the CPPFLAGS set by EasyBuild
+# use it to pass the CPPFLAGS set by EasyBuild.
 buildopts = 'CC="${CC}" CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS} -DHAVE_KALLOC"'
 
 if ARCH == 'aarch64':
Diff against minimap2-2.26-GCCcore-12.2.0.eb

easybuild/easyconfigs/m/minimap2/minimap2-2.26-GCCcore-12.2.0.eb

diff --git a/easybuild/easyconfigs/m/minimap2/minimap2-2.26-GCCcore-12.2.0.eb b/easybuild/easyconfigs/m/minimap2/minimap2-2.29-GCCcore-13.3.0.eb
index 46d5365a16..29825beea0 100644
--- a/easybuild/easyconfigs/m/minimap2/minimap2-2.26-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/m/minimap2/minimap2-2.29-GCCcore-13.3.0.eb
@@ -6,11 +6,12 @@
 
 # Update Petr Král (INUITS)
 
-# Add support for ARM Lara Peeters (UGent)
+# Added ARM support Lara Peeters (UGent)
+
 easyblock = 'MakeCp'
 
 name = 'minimap2'
-version = '2.26'
+version = '2.29'
 
 homepage = 'https://github.com/lh3/minimap2'
 description = """Minimap2 is a fast sequence mapping and alignment
@@ -23,26 +24,25 @@ test data sets, minimap2 is over 20 times faster than most other
 long-read aligners. It will replace BWA-MEM for long reads and contig
 alignment."""
 
-toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
 
 source_urls = ['https://github.com/lh3/%(name)s/releases/download/v%(version)s/']
 sources = ['%(name)s-%(version)s.tar.bz2']
-checksums = ['6a588efbd273bff4f4808d5190957c50272833d2daeb4407ccf4c1b78143624c']
+checksums = ['8a231af5766b62cb9e24720290a730809633a6ea4cb7fe49ce39884438eceddb']
 
-builddependencies = [('binutils', '2.39')]
+builddependencies = [('binutils', '2.42')]
 
-dependencies = [('zlib', '1.2.12')]
+dependencies = [('zlib', '1.3.1')]
 
 # Adding -DHAVE_KALLOC because this was done in the past as the
-# INCLUDES variable was used to pass the CPPFLAGS set by EasyBuild
+# INCLUDES variable was used to pass the CPPFLAGS set by EasyBuild.
 # The INCLUDES variable is used for ARM support so we can no longer
-# use it to pass the CPPFLAGS set by EasyBuild
+# use it to pass the CPPFLAGS set by EasyBuild.
 buildopts = 'CC="${CC}" CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS} -DHAVE_KALLOC"'
 
 if ARCH == 'aarch64':
     buildopts += ' arm_neon=1 aarch64=1'
 
-
 files_to_copy = [
     (['%(name)s'], 'bin'),
     (['lib%(name)s.a'], 'lib'),

laraPPr pushed a commit to laraPPr/easybuild-easyconfigs that referenced this pull request Apr 23, 2025
@github-actions github-actions Bot added change and removed new labels Apr 23, 2025
Comment thread easybuild/easyconfigs/m/minimap2/minimap2-2.20-GCCcore-10.3.0.eb Outdated
@laraPPr
Copy link
Copy Markdown
Contributor Author

laraPPr commented Apr 23, 2025

Test report by @laraPPr
SUCCESS
Build succeeded for 3 out of 3 (3 easyconfigs in total)
node4001.donphan.os - Linux RHEL 9.4 (Plow), x86_64, Intel(R) Xeon(R) Gold 6240 CPU @ 2.60GHz (cascadelake), 1 x NVIDIA NVIDIA A2, 570.86.15, Python 3.11.3
See https://gist.github.com/laraPPr/934cf74f60cb0d928dbbcda4b596c016 for a full test report.

@laraPPr
Copy link
Copy Markdown
Contributor Author

laraPPr commented Apr 23, 2025

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Copy Markdown
Collaborator

@laraPPr: 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=22791 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_22791 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

Details

- notification for comment with ID 2824348247 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).

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
FAILED
Build succeeded for 8 out of 9 (9 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.5, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/eac96fc6092150e3c3ff3b7317b19480 for a full test report.

Comment thread easybuild/easyconfigs/m/minimap2/minimap2-2.20-GCCcore-10.3.0.eb Outdated
@laraPPr
Copy link
Copy Markdown
Contributor Author

laraPPr commented Apr 23, 2025

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Copy Markdown
Collaborator

@laraPPr: 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=22791 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_22791 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

Details

- notification for comment with ID 2824466427 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).

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 9 out of 9 (9 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.5, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/f1ac4e9ff5fb23818a39769681786a69 for a full test report.

@laraPPr
Copy link
Copy Markdown
Contributor Author

laraPPr commented Apr 23, 2025

Also tested minimap2-2.26-GCCcore-12.3.0.eb on ARM and than it fails with

gcc: error: unrecognized command-line option ‘-msse2’

make: *** [Makefile:67: ksw2_ll_sse.o] Error 1

make: *** Waiting for unfinished jobs....

The flag should not be set for ARM builds.
Traced it back to here the comment seems to suggest that the flag -msse2 should not be set it is set in the actual code. https://github.com/lh3/minimap2/blob/4483f89ee5c0e5972820a2b981ffcb88cc3eff6f/Makefile#L65-L68

See installation instructions this should be set in make command when building on arm make arm_neon=1 aarch64=1
https://github.com/lh3/minimap2/tree/v2.25?tab=readme-ov-file#installation


dependencies = [('zlib', '1.3.1')]

buildopts = 'CC="${CC}" CFLAGS="${CFLAGS}" INCLUDES="${CPPFLAGS}"'
Copy link
Copy Markdown
Contributor Author

@laraPPr laraPPr Apr 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
buildopts = 'CC="${CC}" CFLAGS="${CFLAGS}" INCLUDES="${CPPFLAGS}"'
buildopts = 'CC="${CC}" CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS} -DHAVE_KALLOC"'

Ok I went down an ARM rabit whole and this is breaking the flags set for ARM and I don't know why INCLUDES is being use here and not CPPFLAGS.
@verdurin do you still remember why you had done this?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might not be a problem as it might be better to use SMID see https://github.com/lh3/minimap2/tree/v2.20?tab=readme-ov-file#installation

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's actually @lexming who added the INCLUDES, see changes in #15859

We can't set INCLUDES though, since that causes trouble on Arm, since then we overwrite what the Makefile is doing when on an Arm system, i.e.:

INCLUDES+=-Isse2neon

CPPFLAGS is only set to -DHAVE_KALLOC, nothing else is being done with it (other than using it), so the proposed fix makes sense to me.

@laraPPr laraPPr changed the title fix --sanity-check-only and --module only for minimap2 fix --sanity-check-only and --module only for minimap2 and add ARM support for GCC12.3.0 and older Apr 25, 2025
@laraPPr
Copy link
Copy Markdown
Contributor Author

laraPPr commented Apr 25, 2025

Test report by @laraPPr
SUCCESS
Build succeeded for 3 out of 3 (3 easyconfigs in total)
aarch64-neoverse-n1-node1.int.aws-rocky88-202310.eessi.io - Linux Rocky Linux 8.10, AArch64, ARM UNKNOWN, Python 3.6.8
See https://gist.github.com/laraPPr/4e4bc394502f8ec056a0375bede0543d for a full test report.

@laraPPr
Copy link
Copy Markdown
Contributor Author

laraPPr commented Apr 25, 2025

Test report by @laraPPr
SUCCESS
Build succeeded for 3 out of 3 (3 easyconfigs in total)
node3526.doduo.os - Linux RHEL 9.4 (Plow), x86_64, AMD EPYC 7552 48-Core Processor, Python 3.9.18
See https://gist.github.com/laraPPr/5642f8848d884977b96cc07caf2a1470 for a full test report.

@laraPPr
Copy link
Copy Markdown
Contributor Author

laraPPr commented Apr 25, 2025

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Copy Markdown
Collaborator

@laraPPr: 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=22791 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_22791 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

Details

- notification for comment with ID 2830182989 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).

@laraPPr laraPPr changed the title fix --sanity-check-only and --module only for minimap2 and add ARM support for GCC12.3.0 and older fix --sanity-check-only and --module only for minimap2 and add ARM support for GCC12.2.0 and older Apr 25, 2025
@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 9 out of 9 (9 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.5, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/7c244f59cd074547e21f37c024e9877c for a full test report.

@boegel boegel added aarch64 Related to Arm 64-bit (aarch64) and removed change labels Apr 28, 2025
@boegel boegel added this to the 5.0.1 milestone Apr 28, 2025
@boegel boegel changed the title fix --sanity-check-only and --module only for minimap2 and add ARM support for GCC12.2.0 and older copy tests to minimap2 install dir to fix --sanity-check-only and --module only, and add ARM support for GCC12.2.0 and older Apr 28, 2025
@boegel boegel changed the title copy tests to minimap2 install dir to fix --sanity-check-only and --module only, and add ARM support for GCC12.2.0 and older copy tests to minimap2 install dir to fix --sanity-check-only and --module only, add ARM support for GCC12.2.0 and older, add easyconfig for minimap2 v2.29 w/ GCCcore/13.3.0 Apr 28, 2025
@boegel
Copy link
Copy Markdown
Member

boegel commented Apr 28, 2025

Test report by @boegel
SUCCESS
Build succeeded for 9 out of 9 (9 easyconfigs in total)
node3518.doduo.os - Linux RHEL 9.4, x86_64, AMD EPYC 7552 48-Core Processor (zen2), Python 3.9.18
See https://gist.github.com/boegel/152419d2e30c1fe1f26baf71b5a07bb3 for a full test report.

@boegel
Copy link
Copy Markdown
Member

boegel commented Apr 28, 2025

Test report by @boegel
SUCCESS
Build succeeded for 9 out of 9 (9 easyconfigs in total)
node3518.doduo.os - Linux RHEL 9.4, x86_64, AMD EPYC 7552 48-Core Processor (zen2), Python 3.9.18
See https://gist.github.com/boegel/96f5a1dfaa36fdf07f1bd2a9b6cd026c for a full test report.

edit: with --sanity-check-only

@boegel
Copy link
Copy Markdown
Member

boegel commented Apr 29, 2025

Test report by @boegel
SUCCESS
Build succeeded for 9 out of 9 (9 easyconfigs in total)
node3518.doduo.os - Linux RHEL 9.4, x86_64, AMD EPYC 7552 48-Core Processor (zen2), Python 3.9.18
See https://gist.github.com/boegel/17b9b6ba57619567f868e15959228639 for a full test report.

edit: with --module-only

Copy link
Copy Markdown
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@boegel
Copy link
Copy Markdown
Member

boegel commented Apr 29, 2025

Going in, thanks @laraPPr!

@boegel boegel merged commit 83f1351 into easybuilders:develop Apr 29, 2025
8 checks passed
@boegel boegel changed the title copy tests to minimap2 install dir to fix --sanity-check-only and --module only, add ARM support for GCC12.2.0 and older, add easyconfig for minimap2 v2.29 w/ GCCcore/13.3.0 copy tests to minimap2 install dir to fix --sanity-check-only and --module only, fix installing recent minimap2 easyconfigs on ARM, add easyconfig for minimap2 v2.29 w/ GCCcore/13.3.0 May 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

aarch64 Related to Arm 64-bit (aarch64) bug fix update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants