Skip to content

Add GPU-aware MPI easyconfigs for ROCm - #25902

Open
zerefwayne wants to merge 39 commits into
easybuilders:developfrom
zerefwayne:rocm-mpi
Open

Add GPU-aware MPI easyconfigs for ROCm#25902
zerefwayne wants to merge 39 commits into
easybuilders:developfrom
zerefwayne:rocm-mpi

Conversation

@zerefwayne

@zerefwayne zerefwayne commented May 3, 2026

Copy link
Copy Markdown
Contributor

The OpenMPI and rompi built in #25847 was not fully configured for ROCm. The dependencies for OpenMPI are updated in this PR.

@github-actions github-actions Bot added the update label May 3, 2026
@github-actions

github-actions Bot commented May 3, 2026

Copy link
Copy Markdown

Updated software PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb

Diff against PMIx-6.1.0-GCCcore-15.2.0.eb

easybuild/easyconfigs/p/PMIx/PMIx-6.1.0-GCCcore-15.2.0.eb

diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-6.1.0-GCCcore-15.2.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 6c5c09a11b..2ce2df20a7 100644
--- a/easybuild/easyconfigs/p/PMIx/PMIx-6.1.0-GCCcore-15.2.0.eb
+++ b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,7 +1,9 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PMIx'
-version = '6.1.0'
+version = '5.0.6'
 
 homepage = 'https://pmix.org/'
 description = """Process Management for Exascale Environments
@@ -16,28 +18,28 @@ provide a reference implementation of the PMI-server that demonstrates
 the desired level of scalability.
 """
 
-toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['bb9021c8e100a376f5070ecca727f83a29b5f652dfe381793b88daa79a3b98a2']
+checksums = ['ea51baa0fdee688d54bc9f2c11937671381f00de966233eec6fd88807fb46f83']
 
 builddependencies = [
-    ('binutils', '2.45'),
-    ('Perl', '5.42.0'),
-    ('pkgconf', '2.5.1'),
+    ('Perl', '5.40.0'),
+    ('pkgconf', '2.3.0'),
 ]
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('zlib', '2.3.2'),
-    ('hwloc', '2.13.0'),
+    ('zlib', '1.3.1'),
+    ('hwloc-ROCm', '2.11.2'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
-configopts += ' --with-hwloc=$EBROOTHWLOC'
-configopts += ' --enable-pmix-binaries'
+configopts = '--with-libevent=$EBROOTLIBEVENT  '
+configopts += '--with-zlib=$EBROOTZLIB '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--enable-pmix-binaries '
 
 buildopts = 'V=1'
 
Diff against PMIx-5.0.8-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PMIx/PMIx-5.0.8-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-5.0.8-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 51dc7b14d7..2ce2df20a7 100644
--- a/easybuild/easyconfigs/p/PMIx/PMIx-5.0.8-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,7 +1,9 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PMIx'
-version = '5.0.8'
+version = '5.0.6'
 
 homepage = 'https://pmix.org/'
 description = """Process Management for Exascale Environments
@@ -16,28 +18,28 @@ provide a reference implementation of the PMI-server that demonstrates
 the desired level of scalability.
 """
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['bf5f0a341d0ec7f465627a7570f4dcda3b931bc859256428a35f6c72f13462d0']
+checksums = ['ea51baa0fdee688d54bc9f2c11937671381f00de966233eec6fd88807fb46f83']
 
 builddependencies = [
-    ('binutils', '2.44'),
-    ('Perl', '5.40.2'),
-    ('pkgconf', '2.4.3'),
+    ('Perl', '5.40.0'),
+    ('pkgconf', '2.3.0'),
 ]
 
 dependencies = [
     ('libevent', '2.1.12'),
     ('zlib', '1.3.1'),
-    ('hwloc', '2.12.1'),
+    ('hwloc-ROCm', '2.11.2'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
-configopts += ' --with-hwloc=$EBROOTHWLOC'
-configopts += ' --enable-pmix-binaries'
+configopts = '--with-libevent=$EBROOTLIBEVENT  '
+configopts += '--with-zlib=$EBROOTZLIB '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--enable-pmix-binaries '
 
 buildopts = 'V=1'
 
Diff against PMIx-6.0.0-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PMIx/PMIx-6.0.0-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-6.0.0-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 15e3705e89..2ce2df20a7 100644
--- a/easybuild/easyconfigs/p/PMIx/PMIx-6.0.0-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,7 +1,9 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PMIx'
-version = '6.0.0'
+version = '5.0.6'
 
 homepage = 'https://pmix.org/'
 description = """Process Management for Exascale Environments
@@ -16,28 +18,28 @@ provide a reference implementation of the PMI-server that demonstrates
 the desired level of scalability.
 """
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['bfe969966d0ce82e032739cac286239bd5ad74a831d7adae013284919f125318']
+checksums = ['ea51baa0fdee688d54bc9f2c11937671381f00de966233eec6fd88807fb46f83']
 
 builddependencies = [
-    ('binutils', '2.44'),
-    ('Perl', '5.40.2'),
-    ('pkgconf', '2.4.3'),
+    ('Perl', '5.40.0'),
+    ('pkgconf', '2.3.0'),
 ]
 
 dependencies = [
     ('libevent', '2.1.12'),
     ('zlib', '1.3.1'),
-    ('hwloc', '2.12.1'),
+    ('hwloc-ROCm', '2.11.2'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
-configopts += ' --with-hwloc=$EBROOTHWLOC'
-configopts += ' --enable-pmix-binaries'
+configopts = '--with-libevent=$EBROOTLIBEVENT  '
+configopts += '--with-zlib=$EBROOTZLIB '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--enable-pmix-binaries '
 
 buildopts = 'V=1'
 

Updated software PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb

Diff against PRRTE-4.1.0-GCCcore-15.2.0.eb

easybuild/easyconfigs/p/PRRTE/PRRTE-4.1.0-GCCcore-15.2.0.eb

diff --git a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.1.0-GCCcore-15.2.0.eb b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index d35338ca0d..f10c336589 100644
--- a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.1.0-GCCcore-15.2.0.eb
+++ b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,31 +1,29 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PRRTE'
-version = '4.1.0'
+version = '3.0.8'
 
 homepage = 'https://docs.prrte.org/'
 description = """PRRTE is the PMIx Reference RunTime Environment"""
 
-toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/prrte/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['285ad62b670075708b9fcfe14c54baa599733bc274d10502a82e8eebba0b7c70']
-
-builddependencies = [
-    ('binutils', '2.45'),
-    ('pkgconf', '2.5.1'),
-]
+checksums = ['e798192fa0ab38172818a109a6c89bcc37e4b1123ca150d8c115dee5231750de']
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('hwloc', '2.13.0'),
-    ('PMIx', '6.1.0'),
+    ('hwloc-ROCm', '2.11.2'),
+    ('PMIx', '5.0.6'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT'
-configopts += ' --with-hwloc=$EBROOTHWLOC --with-pmix=$EBROOTPMIX'
+configopts = '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--with-pmix=$EBROOTPMIX '
 
 buildopts = 'V=1'
 
Diff against PRRTE-3.0.11-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.11-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.11-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 0eb711cd4e..f10c336589 100644
--- a/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.11-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,31 +1,29 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PRRTE'
-version = '3.0.11'
+version = '3.0.8'
 
 homepage = 'https://docs.prrte.org/'
 description = """PRRTE is the PMIx Reference RunTime Environment"""
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/prrte/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['37af5a82d333a54c0bac358f06c194427b7dbfa7b8b85f2ddd1145acf71cfdd4']
-
-builddependencies = [
-    ('binutils', '2.44'),
-    ('pkgconf', '2.4.3'),
-]
+checksums = ['e798192fa0ab38172818a109a6c89bcc37e4b1123ca150d8c115dee5231750de']
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('hwloc', '2.12.1'),
-    ('PMIx', '5.0.8'),
+    ('hwloc-ROCm', '2.11.2'),
+    ('PMIx', '5.0.6'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT'
-configopts += ' --with-hwloc=$EBROOTHWLOC --with-pmix=$EBROOTPMIX'
+configopts = '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--with-pmix=$EBROOTPMIX '
 
 buildopts = 'V=1'
 
Diff against PRRTE-4.0.0-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PRRTE/PRRTE-4.0.0-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.0.0-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 4206a4aeab..f10c336589 100644
--- a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.0.0-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,31 +1,29 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PRRTE'
-version = '4.0.0'
+version = '3.0.8'
 
 homepage = 'https://docs.prrte.org/'
 description = """PRRTE is the PMIx Reference RunTime Environment"""
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/prrte/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['3c2ec961e0ba0c99128c7bf3545f4789d55a85a70ce958e868ae5e3db6ed4de4']
-
-builddependencies = [
-    ('binutils', '2.44'),
-    ('pkgconf', '2.4.3'),
-]
+checksums = ['e798192fa0ab38172818a109a6c89bcc37e4b1123ca150d8c115dee5231750de']
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('hwloc', '2.12.1'),
-    ('PMIx', '6.0.0'),
+    ('hwloc-ROCm', '2.11.2'),
+    ('PMIx', '5.0.6'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT'
-configopts += ' --with-hwloc=$EBROOTHWLOC --with-pmix=$EBROOTPMIX'
+configopts = '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--with-pmix=$EBROOTPMIX '
 
 buildopts = 'V=1'
 

@zerefwayne
zerefwayne force-pushed the rocm-mpi branch 6 times, most recently from d46e69f to 2a3fea0 Compare May 3, 2026 07:45
@zerefwayne

zerefwayne commented May 3, 2026

Copy link
Copy Markdown
Contributor Author

hwloc-2.11.2-rocm-compilers-19.0.0-ROCm-6.4.1.eb

Test report by @zerefwayne
SUCCESS
Build succeeded for 1 out of 1 (total: 1 min 59 secs) (1 easyconfigs in total)
nid005670 - Linux SLES 15.6, x86_64, AMD EPYC 7A53 64-Core Processor (zen3), 4 x AMD AMD INSTINCT MI200 (MCM) OAM LC MBA HPE C2 (model: 0x7408, driver: 6.10.5), Python 3.13.4
See https://gist.github.com/zerefwayne/e2cd6dcfcf0fcc76d434cdc183c41112 for a full test report.

@github-actions github-actions Bot added new 2025a issues & PRs related to 2025a common toolchains labels May 3, 2026
@github-actions github-actions Bot removed the 2025a issues & PRs related to 2025a common toolchains label May 3, 2026
@zerefwayne

zerefwayne commented May 3, 2026

Copy link
Copy Markdown
Contributor Author

UCX-ROCm-1.18.0-rocm-compilers-19.0.0-ROCm-6.4.1.eb

Test report by @zerefwayne
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#4126
SUCCESS
Build succeeded for 1 out of 1 (total: 1 min 38 secs) (1 easyconfigs in total)
nid005670 - Linux SLES 15.6, x86_64, AMD EPYC 7A53 64-Core Processor (zen3), 4 x AMD AMD INSTINCT MI200 (MCM) OAM LC MBA HPE C2 (model: 0x7408, driver: 6.10.5), Python 3.13.4
See https://gist.github.com/zerefwayne/af817571087ce959179ccc5705cbb09f for a full test report.

@zerefwayne

zerefwayne commented May 3, 2026

Copy link
Copy Markdown
Contributor Author

UCC-ROCm-1.3.0-rocm-compilers-19.0.0-ROCm-6.4.1.eb

Test report by @zerefwayne
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#4126
SUCCESS
Build succeeded for 1 out of 1 (total: 2 mins 50 secs) (1 easyconfigs in total)
nid005670 - Linux SLES 15.6, x86_64, AMD EPYC 7A53 64-Core Processor (zen3), 4 x AMD AMD INSTINCT MI200 (MCM) OAM LC MBA HPE C2 (model: 0x7408, driver: 6.10.5), Python 3.13.4
See https://gist.github.com/zerefwayne/a956f6ebc101e30bac1b82a968053a4b for a full test report.

@github-actions github-actions Bot added the change label May 3, 2026
@zerefwayne

Copy link
Copy Markdown
Contributor Author

Test report by @zerefwayne
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#4126
FAILED
Build succeeded for 0 out of 1 (total: 1 min 12 secs) (1 easyconfigs in total)
nid005670 - Linux SLES 15.6, x86_64, AMD EPYC 7A53 64-Core Processor (zen3), 4 x AMD AMD INSTINCT MI200 (MCM) OAM LC MBA HPE C2 (model: 0x7408, driver: 6.10.5), Python 3.13.4
See https://gist.github.com/zerefwayne/a82b1bcadae2fb8a5723f8456ebce9db for a full test report.

@zerefwayne
zerefwayne force-pushed the rocm-mpi branch 4 times, most recently from 5c1a37c to 4145eee Compare May 3, 2026 11:15
@zerefwayne

zerefwayne commented May 3, 2026

Copy link
Copy Markdown
Contributor Author

Test report by @zerefwayne
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#4126
FAILED
Build succeeded for 5 out of 6 (total: 21 mins 8 secs) (6 easyconfigs in total)
nid005670 - Linux SLES 15.6, x86_64, AMD EPYC 7A53 64-Core Processor (zen3), 4 x AMD AMD INSTINCT MI200 (MCM) OAM LC MBA HPE C2 (model: 0x7408, driver: 6.10.5), Python 3.13.4
See https://gist.github.com/zerefwayne/17bf696080b5bd4af3501ace89fa929e for a full test report.


OpenMPI-5.0.7-rocm-compilers-19.0.0-ROCm-6.4.1.eb failed because I used eb installed in LUMI, which doesn't have our easyblock updates yet from easybuilders/easybuild-easyblocks#4119

@zerefwayne

zerefwayne commented May 3, 2026

Copy link
Copy Markdown
Contributor Author

OpenMPI-5.0.7-rocm-compilers-19.0.0-ROCm-6.4.1.eb

Test report by @zerefwayne
SUCCESS
Build succeeded for 1 out of 1 (total: 12 mins 57 secs) (1 easyconfigs in total)
nid005670 - Linux SLES 15.6, x86_64, AMD EPYC 7A53 64-Core Processor (zen3), 4 x AMD AMD INSTINCT MI200 (MCM) OAM LC MBA HPE C2 (model: 0x7408, driver: 6.10.5), Python 3.13.4
See https://gist.github.com/zerefwayne/960143b8d6c7cfff3fce6a50f8af44e8 for a full test report.

@zerefwayne

Copy link
Copy Markdown
Contributor Author

Test report by @zerefwayne
SUCCESS
Build succeeded for 6 out of 6 (total: 28 mins 4 secs) (6 easyconfigs in total)
tcn288.local.snellius.surf.nl - Linux RHEL 9.6, x86_64, AMD EPYC 7H12 64-Core Processor (zen2), Python 3.13.4
See https://gist.github.com/zerefwayne/e6837856b07b7d0e1833d61fd471fac1 for a full test report.

@zerefwayne zerefwayne mentioned this pull request May 4, 2026
1 task
Comment thread easybuild/easyconfigs/o/OpenMPI/OpenMPI-5.0.7-rocm-compilers-19.0.0-ROCm-6.4.1.eb Outdated
@zerefwayne

Copy link
Copy Markdown
Contributor Author

Test report by @zerefwayne
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#4126
FAILED
Build succeeded for 5 out of 6 (total: 24 mins 21 secs) (6 easyconfigs in total)
nid005214 - Linux SLES 15.6, x86_64, AMD EPYC 7A53 64-Core Processor (zen3), Python 3.13.4
See https://gist.github.com/zerefwayne/9aa9bc7a18f9fb4bacee5fe80e8c1bbc for a full test report.

@zerefwayne

Copy link
Copy Markdown
Contributor Author

Test report by @zerefwayne
SUCCESS
Build succeeded for 1 out of 1 (total: 15 mins 9 secs) (1 easyconfigs in total)
nid005214 - Linux SLES 15.6, x86_64, AMD EPYC 7A53 64-Core Processor (zen3), Python 3.13.4
See https://gist.github.com/zerefwayne/ef775883589b5d14a708b29bd061b6ef for a full test report.

@github-actions github-actions Bot added the 2025a issues & PRs related to 2025a common toolchains label May 10, 2026
@github-actions

Copy link
Copy Markdown

Updated software libconfig-1.8.1-GCCcore-14.2.0.eb

Diff against libconfig-1.8.2-GCCcore-14.3.0.eb

easybuild/easyconfigs/l/libconfig/libconfig-1.8.2-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/l/libconfig/libconfig-1.8.2-GCCcore-14.3.0.eb b/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-14.2.0.eb
index e27761edf6..4a25141e4a 100644
--- a/easybuild/easyconfigs/l/libconfig/libconfig-1.8.2-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-14.2.0.eb
@@ -1,28 +1,28 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libconfig'
-version = '1.8.2'
+version = '1.8.1'
 
 homepage = 'https://hyperrealm.github.io/libconfig'
 description = "Libconfig is a simple library for processing structured configuration files"
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
-source_urls = ['https://hyperrealm.github.io/libconfig/dist/']
+source_urls = ['https://hyperrealm.github.io/%(name)s/dist/']
 sources = [SOURCE_TAR_GZ]
-checksums = [
-    {'libconfig-1.8.2.tar.gz': 'e59ffb902dd5731d5d4e4fb81d3b989697615feab72dfd7c30618167b91a42ee'},
-]
+checksums = [{'libconfig-1.8.1.tar.gz': 'c73ee3d914ec68c99b61e864832931e9a7112eeabfb449dad217fd83e385cbdf'}]
 
 builddependencies = [
-    ('binutils', '2.44'),
+    ('binutils', '2.42'),
     ('Bison', '3.8.2'),
     ('flex', '2.6.4'),
 ]
 
 sanity_check_paths = {
-    'files': ['include/libconfig.h', 'include/libconfig.h++', 'lib/libconfig.a', 'lib/libconfig++.a',
-              'lib/libconfig.%s' % SHLIB_EXT, 'lib/libconfig++.%s' % SHLIB_EXT],
+    'files': ['include/%(name)s.h', 'include/%(name)s.h++', 'lib/%(name)s.a', 'lib/%(name)s++.a',
+              'lib/%(name)s.so', 'lib/%(name)s++.so'],
     'dirs': ['lib/pkgconfig'],
 }
 
Diff against libconfig-1.8.1-GCCcore-13.3.0.eb

easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-13.3.0.eb

diff --git a/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-14.2.0.eb
index 774ece65d3..4a25141e4a 100644
--- a/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-13.3.0.eb
+++ b/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-14.2.0.eb
@@ -1,3 +1,5 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libconfig'
@@ -6,16 +8,11 @@ version = '1.8.1'
 homepage = 'https://hyperrealm.github.io/libconfig'
 description = "Libconfig is a simple library for processing structured configuration files"
 
-toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
-source_urls = ['https://hyperrealm.github.io/libconfig/dist/']
+source_urls = ['https://hyperrealm.github.io/%(name)s/dist/']
 sources = [SOURCE_TAR_GZ]
-patches = [('libconfig-1.8.1_missing_pathbuf_header.patch', 1)]
-checksums = [
-    {'libconfig-1.8.1.tar.gz': '87c6f382994b245f9213be34a2bf19c8ee7d033d7abaa51e88fbb7bad79e2dc6'},
-    {'libconfig-1.8.1_missing_pathbuf_header.patch':
-     'f73ce5776d89e92c6ac990ad0f68ea89a1ce13f007b539b6ac276edecacaa5aa'},
-]
+checksums = [{'libconfig-1.8.1.tar.gz': 'c73ee3d914ec68c99b61e864832931e9a7112eeabfb449dad217fd83e385cbdf'}]
 
 builddependencies = [
     ('binutils', '2.42'),
@@ -24,8 +21,8 @@ builddependencies = [
 ]
 
 sanity_check_paths = {
-    'files': ['include/libconfig.h', 'include/libconfig.h++', 'lib/libconfig.a', 'lib/libconfig++.a',
-              'lib/libconfig.%s' % SHLIB_EXT, 'lib/libconfig++.%s' % SHLIB_EXT],
+    'files': ['include/%(name)s.h', 'include/%(name)s.h++', 'lib/%(name)s.a', 'lib/%(name)s++.a',
+              'lib/%(name)s.so', 'lib/%(name)s++.so'],
     'dirs': ['lib/pkgconfig'],
 }
 

Updated software libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb

Diff against libfabric-2.5.0-GCCcore-15.2.0.eb

easybuild/easyconfigs/l/libfabric/libfabric-2.5.0-GCCcore-15.2.0.eb

diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-2.5.0-GCCcore-15.2.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
index 2bf3eae000..b839b68a36 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-2.5.0-GCCcore-15.2.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
@@ -1,7 +1,10 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libfabric'
-version = '2.5.0'
+version = '1.22.0'
+versionsuffix='-cxi'
 
 homepage = 'https://ofiwg.github.io/libfabric/'
 description = """
@@ -9,56 +12,66 @@ Libfabric is a core component of OFI. It is the library that defines and exports
 the user-space API of OFI, and is typically the only software that applications
 deal with directly. It works in conjunction with provider libraries, which are
 often integrated directly into libfabric.
+
+This build is HPE's shs-libfabric (SHS 12.0.2) and compiles the HPE Slingshot-11
+`cxi` provider, and enables the ROCr/HSA HMEM backend so GPU-resident
+(ROCm device) buffers can be sent directly over the fabric.
 """
 
-# The psm3 provider (enabled by default) requires an AVX capable system to run
-toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/ofiwg/libfabric/releases/download/v%(version)s']
-sources = [SOURCE_TAR_BZ2]
-checksums = ['276019edca708dc0569cf3064a412e395ba7b1883299781caed120594f850995']
+sources = [
+    {
+        'filename': '%(name)s-%(version)s-shs-12.0.2.tar.gz',
+        'git_config': {
+            'url': 'https://github.com/HewlettPackard',
+            'repo_name': 'shs-%(name)s',
+            'tag': 'release/shs-12.0.2',
+            'keep_git_dir': False,
+        },
+    },
+]
+checksums = [
+    None,  # .tgz not reproducible
+]
 
 builddependencies = [
-    ('binutils', '2.45'),
-    ('pkgconf', '2.5.1'),
-    ('Autotools', '20250626'),
+    ('binutils', '2.42'),
+    ('pkgconf', '2.3.0', '', ('GCCcore', '14.2.0')),
+    ('Autotools', '20240712', '', ('GCCcore', '14.2.0')),
 ]
-
 dependencies = [
-    ('numactl', '2.0.19'),
-    # PSM2 dependency for libfabric should be used on Omnipath systems,
-    # but that PSM2 has CUDA as dependency so it's commented out by default;
-    # PSM2 only compiles on x86_64
-    # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
+    ('numactl', '2.0.19', '', ('GCCcore', '14.2.0')),
+    ('libcxi', '1.0.2', '', ('GCCcore', '14.2.0')),
+    ('cassini-headers', '1.1.1', '', SYSTEM),
+    ('cxi-driver-headers', '1.0.0', '', SYSTEM),
 ]
 
-osdependencies = [OS_PKG_IBVERBS_DEV]
+preconfigopts = "./autogen.sh && "
 
-# Regenerate build files to pick up psm3-axv-config patch
-preconfigopts = "./autogen.sh &&"
+# configure auto-detects providers from the host and
+# would otherwise build verbs/efa/psm2 against /usr/lib64 and bake them into
+# libfabric.so's NEEDED list (a host pickup, and fatal at runtime on systems where
+# host libefa/libpsm2 are ABI-incompatible or absent). Disable every provider
+# that links an external library; keep only cxi plus the pure-software core.
+configopts = "--disable-verbs --disable-efa --disable-psm2 --disable-psm3 --disable-opx "
+configopts += "--disable-usnic --disable-sockets --disable-ucx --disable-xpmem "
+configopts += "--enable-cxi=yes "
+configopts += "--with-cassini-headers=$EBROOTCASSINIMINHEADERS "
+configopts += "--with-cxi-uapi-headers=$EBROOTCXIMINDRIVERMINHEADERS "
+configopts += "--with-rocr=$EBROOTROCMMINLLVM "
 
-# Disable deprecated "sockets" provider
-configopts = "--disable-sockets "
-
-# Disable usNIC provider by default as this requires specific osdependencies
-# If you want to enable this provider you need to uncomment the following line:
-# osdependencies.append(('libnl3-devel', 'libnl3-dev'))
-configopts += "--disable-usnic "
-
-# Disable XPMEM to avoid a system library being picked up
-# This leads to rpaths to e.g. /lib64 being added binaries linked against libfabric
-# potentially picking up system libraries instead of EasyBuild provided ones at runtime
-configopts += "--disable-xpmem "
-
-buildopts = "V=1"
+buildopts = 'V=1'
 
 sanity_check_paths = {
-    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] +
-             ['lib/libfabric.%s' % x for x in ['a', SHLIB_EXT]],
-    'dirs': ['include/rdma', 'lib/pkgconfig', 'share']
+    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror', 'lib/%(name)s.a', 'lib/%(name)s.so'],
+    'dirs': ['include/rdma', 'lib/pkgconfig', 'share'],
 }
 
-sanity_check_commands = ['fi_info']
+sanity_check_commands = [
+    'fi_info',
+    "fi_info -l | grep -i cxi",
+]
 
 moduleclass = 'lib'
Diff against libfabric-2.1.0-GCCcore-14.3.0.eb

easybuild/easyconfigs/l/libfabric/libfabric-2.1.0-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-2.1.0-GCCcore-14.3.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
index a7d8da33ff..b839b68a36 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-2.1.0-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
@@ -1,7 +1,10 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libfabric'
-version = '2.1.0'
+version = '1.22.0'
+versionsuffix='-cxi'
 
 homepage = 'https://ofiwg.github.io/libfabric/'
 description = """
@@ -9,58 +12,66 @@ Libfabric is a core component of OFI. It is the library that defines and exports
 the user-space API of OFI, and is typically the only software that applications
 deal with directly. It works in conjunction with provider libraries, which are
 often integrated directly into libfabric.
+
+This build is HPE's shs-libfabric (SHS 12.0.2) and compiles the HPE Slingshot-11
+`cxi` provider, and enables the ROCr/HSA HMEM backend so GPU-resident
+(ROCm device) buffers can be sent directly over the fabric.
 """
 
-# The psm3 provider (enabled by default) requires an AVX capable system to run
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/ofiwg/libfabric/releases/download/v%(version)s']
-sources = [SOURCE_TAR_BZ2]
+sources = [
+    {
+        'filename': '%(name)s-%(version)s-shs-12.0.2.tar.gz',
+        'git_config': {
+            'url': 'https://github.com/HewlettPackard',
+            'repo_name': 'shs-%(name)s',
+            'tag': 'release/shs-12.0.2',
+            'keep_git_dir': False,
+        },
+    },
+]
 checksums = [
-    {'libfabric-2.1.0.tar.bz2': '97df312779e2d937246d2f46385b700e0958ed796d6fed7aae77e2d18923e19f'}
+    None,  # .tgz not reproducible
 ]
 
 builddependencies = [
-    ('binutils', '2.44'),
-    ('pkgconf', '2.4.3'),
-    ('Autotools', '20250527'),
+    ('binutils', '2.42'),
+    ('pkgconf', '2.3.0', '', ('GCCcore', '14.2.0')),
+    ('Autotools', '20240712', '', ('GCCcore', '14.2.0')),
 ]
-
 dependencies = [
-    ('numactl', '2.0.19'),
-    # PSM2 dependency for libfabric should be used on Omnipath systems,
-    # but that PSM2 has CUDA as dependency so it's commented out by default;
-    # PSM2 only compiles on x86_64
-    # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
+    ('numactl', '2.0.19', '', ('GCCcore', '14.2.0')),
+    ('libcxi', '1.0.2', '', ('GCCcore', '14.2.0')),
+    ('cassini-headers', '1.1.1', '', SYSTEM),
+    ('cxi-driver-headers', '1.0.0', '', SYSTEM),
 ]
 
-osdependencies = [OS_PKG_IBVERBS_DEV]
+preconfigopts = "./autogen.sh && "
 
-# Regenerate build files to pick up psm3-axv-config patch
-preconfigopts = "./autogen.sh &&"
+# configure auto-detects providers from the host and
+# would otherwise build verbs/efa/psm2 against /usr/lib64 and bake them into
+# libfabric.so's NEEDED list (a host pickup, and fatal at runtime on systems where
+# host libefa/libpsm2 are ABI-incompatible or absent). Disable every provider
+# that links an external library; keep only cxi plus the pure-software core.
+configopts = "--disable-verbs --disable-efa --disable-psm2 --disable-psm3 --disable-opx "
+configopts += "--disable-usnic --disable-sockets --disable-ucx --disable-xpmem "
+configopts += "--enable-cxi=yes "
+configopts += "--with-cassini-headers=$EBROOTCASSINIMINHEADERS "
+configopts += "--with-cxi-uapi-headers=$EBROOTCXIMINDRIVERMINHEADERS "
+configopts += "--with-rocr=$EBROOTROCMMINLLVM "
 
-# Disable deprecated "sockets" provider
-configopts = "--disable-sockets "
-
-# Disable usNIC provider by default as this requires specific osdependencies
-# If you want to enable this provider you need to uncomment the following line:
-# osdependencies.append(('libnl3-devel', 'libnl3-dev'))
-configopts += "--disable-usnic "
-
-# Disable XPMEM to avoid a system library being picked up
-# This leads to rpaths to e.g. /lib64 being added binaries linked against libfabric
-# potentially picking up system libraries instead of EasyBuild provided ones at runtime
-configopts += "--disable-xpmem "
-
-buildopts = "V=1"
+buildopts = 'V=1'
 
 sanity_check_paths = {
-    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] +
-             ['lib/libfabric.%s' % x for x in ['a', SHLIB_EXT]],
-    'dirs': ['include/rdma', 'lib/pkgconfig', 'share']
+    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror', 'lib/%(name)s.a', 'lib/%(name)s.so'],
+    'dirs': ['include/rdma', 'lib/pkgconfig', 'share'],
 }
 
-sanity_check_commands = ['fi_info']
+sanity_check_commands = [
+    'fi_info',
+    "fi_info -l | grep -i cxi",
+]
 
 moduleclass = 'lib'
Diff against libfabric-2.0.0-GCCcore-14.2.0.eb

easybuild/easyconfigs/l/libfabric/libfabric-2.0.0-GCCcore-14.2.0.eb

diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-2.0.0-GCCcore-14.2.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
index 065ddc5b72..b839b68a36 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-2.0.0-GCCcore-14.2.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
@@ -1,7 +1,10 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libfabric'
-version = '2.0.0'
+version = '1.22.0'
+versionsuffix='-cxi'
 
 homepage = 'https://ofiwg.github.io/libfabric/'
 description = """
@@ -9,61 +12,66 @@ Libfabric is a core component of OFI. It is the library that defines and exports
 the user-space API of OFI, and is typically the only software that applications
 deal with directly. It works in conjunction with provider libraries, which are
 often integrated directly into libfabric.
+
+This build is HPE's shs-libfabric (SHS 12.0.2) and compiles the HPE Slingshot-11
+`cxi` provider, and enables the ROCr/HSA HMEM backend so GPU-resident
+(ROCm device) buffers can be sent directly over the fabric.
 """
 
-# The psm3 provider (enabled by default) requires an AVX capable system to run
-toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/ofiwg/libfabric/releases/download/v%(version)s']
-sources = [SOURCE_TAR_BZ2]
-patches = ['%(name)s-%(version)s_opx_hfi1_pre_cn5000.patch']
+sources = [
+    {
+        'filename': '%(name)s-%(version)s-shs-12.0.2.tar.gz',
+        'git_config': {
+            'url': 'https://github.com/HewlettPackard',
+            'repo_name': 'shs-%(name)s',
+            'tag': 'release/shs-12.0.2',
+            'keep_git_dir': False,
+        },
+    },
+]
 checksums = [
-    {'libfabric-2.0.0.tar.bz2': '1a8e40f1f331d6ee2e9ace518c0088a78c8a838968f8601c2b77fd012a7bf0f5'},
-    {'%(name)s-%(version)s_opx_hfi1_pre_cn5000.patch':
-        '9b97d7f84512ad7fe3bfc878f5fed80fcfa45ec904e9295246ebda99d85c3113'},
+    None,  # .tgz not reproducible
 ]
 
 builddependencies = [
     ('binutils', '2.42'),
-    ('pkgconf', '2.3.0'),
-    ('Autotools', '20240712'),
+    ('pkgconf', '2.3.0', '', ('GCCcore', '14.2.0')),
+    ('Autotools', '20240712', '', ('GCCcore', '14.2.0')),
 ]
-
 dependencies = [
-    ('numactl', '2.0.19'),
-    # PSM2 dependency for libfabric should be used on Omnipath systems,
-    # but that PSM2 has CUDA as dependency so it's commented out by default;
-    # PSM2 only compiles on x86_64
-    # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
+    ('numactl', '2.0.19', '', ('GCCcore', '14.2.0')),
+    ('libcxi', '1.0.2', '', ('GCCcore', '14.2.0')),
+    ('cassini-headers', '1.1.1', '', SYSTEM),
+    ('cxi-driver-headers', '1.0.0', '', SYSTEM),
 ]
 
-osdependencies = [OS_PKG_IBVERBS_DEV]
+preconfigopts = "./autogen.sh && "
 
-# Regenerate build files to pick up psm3-axv-config patch
-preconfigopts = "./autogen.sh &&"
+# configure auto-detects providers from the host and
+# would otherwise build verbs/efa/psm2 against /usr/lib64 and bake them into
+# libfabric.so's NEEDED list (a host pickup, and fatal at runtime on systems where
+# host libefa/libpsm2 are ABI-incompatible or absent). Disable every provider
+# that links an external library; keep only cxi plus the pure-software core.
+configopts = "--disable-verbs --disable-efa --disable-psm2 --disable-psm3 --disable-opx "
+configopts += "--disable-usnic --disable-sockets --disable-ucx --disable-xpmem "
+configopts += "--enable-cxi=yes "
+configopts += "--with-cassini-headers=$EBROOTCASSINIMINHEADERS "
+configopts += "--with-cxi-uapi-headers=$EBROOTCXIMINDRIVERMINHEADERS "
+configopts += "--with-rocr=$EBROOTROCMMINLLVM "
 
-# Disable deprecated "sockets" provider
-configopts = "--disable-sockets "
-
-# Disable usNIC provider by default as this requires specific osdependencies
-# If you want to enable this provider you need to uncomment the following line:
-# osdependencies.append(('libnl3-devel', 'libnl3-dev'))
-configopts += "--disable-usnic "
-
-# Disable XPMEM to avoid a system library being picked up
-# This leads to rpaths to e.g. /lib64 being added binaries linked against libfabric
-# potentially picking up system libraries instead of EasyBuild provided ones at runtime
-configopts += "--disable-xpmem "
-
-buildopts = "V=1"
+buildopts = 'V=1'
 
 sanity_check_paths = {
-    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] +
-             ['lib/libfabric.%s' % x for x in ['a', SHLIB_EXT]],
-    'dirs': ['include/rdma', 'lib/pkgconfig', 'share']
+    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror', 'lib/%(name)s.a', 'lib/%(name)s.so'],
+    'dirs': ['include/rdma', 'lib/pkgconfig', 'share'],
 }
 
-sanity_check_commands = ['fi_info']
+sanity_check_commands = [
+    'fi_info',
+    "fi_info -l | grep -i cxi",
+]
 
 moduleclass = 'lib'

Updated software PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb

Diff against PMIx-6.1.0-GCCcore-15.2.0.eb

easybuild/easyconfigs/p/PMIx/PMIx-6.1.0-GCCcore-15.2.0.eb

diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-6.1.0-GCCcore-15.2.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 6c5c09a11b..9b60498959 100644
--- a/easybuild/easyconfigs/p/PMIx/PMIx-6.1.0-GCCcore-15.2.0.eb
+++ b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,43 +1,39 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PMIx'
-version = '6.1.0'
+version = '5.0.6'
 
 homepage = 'https://pmix.org/'
-description = """Process Management for Exascale Environments
-PMI Exascale (PMIx) represents an attempt to
-provide an extended version of the PMI standard specifically designed
-to support clusters up to and including exascale sizes. The overall
-objective of the project is not to branch the existing pseudo-standard
-definitions - in fact, PMIx fully supports both of the existing PMI-1
-and PMI-2 APIs - but rather to (a) augment and extend those APIs to
-eliminate some current restrictions that impact scalability, and (b)
-provide a reference implementation of the PMI-server that demonstrates
-the desired level of scalability.
-"""
-
-toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
+description = """Process Management for Exascale Environments.
+PMI Exascale (PMIx) extends the PMI standard to support clusters up to and
+including exascale sizes, while remaining fully compatible with the existing
+PMI-1 and PMI-2 APIs. It also provides a reference implementation of the
+PMI-server."""
+
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['bb9021c8e100a376f5070ecca727f83a29b5f652dfe381793b88daa79a3b98a2']
+checksums = ['ea51baa0fdee688d54bc9f2c11937671381f00de966233eec6fd88807fb46f83']
 
 builddependencies = [
-    ('binutils', '2.45'),
-    ('Perl', '5.42.0'),
-    ('pkgconf', '2.5.1'),
+    ('Perl', '5.40.0'),
+    ('pkgconf', '2.3.0'),
 ]
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('zlib', '2.3.2'),
-    ('hwloc', '2.13.0'),
+    ('zlib', '1.3.1'),
+    ('hwloc-ROCm', '2.11.2'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
-configopts += ' --with-hwloc=$EBROOTHWLOC'
-configopts += ' --enable-pmix-binaries'
+configopts = '--with-libevent=$EBROOTLIBEVENT  '
+configopts += '--with-zlib=$EBROOTZLIB '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--enable-pmix-binaries '
 
 buildopts = 'V=1'
 
Diff against PMIx-5.0.8-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PMIx/PMIx-5.0.8-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-5.0.8-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 51dc7b14d7..9b60498959 100644
--- a/easybuild/easyconfigs/p/PMIx/PMIx-5.0.8-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,43 +1,39 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PMIx'
-version = '5.0.8'
+version = '5.0.6'
 
 homepage = 'https://pmix.org/'
-description = """Process Management for Exascale Environments
-PMI Exascale (PMIx) represents an attempt to
-provide an extended version of the PMI standard specifically designed
-to support clusters up to and including exascale sizes. The overall
-objective of the project is not to branch the existing pseudo-standard
-definitions - in fact, PMIx fully supports both of the existing PMI-1
-and PMI-2 APIs - but rather to (a) augment and extend those APIs to
-eliminate some current restrictions that impact scalability, and (b)
-provide a reference implementation of the PMI-server that demonstrates
-the desired level of scalability.
-"""
-
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+description = """Process Management for Exascale Environments.
+PMI Exascale (PMIx) extends the PMI standard to support clusters up to and
+including exascale sizes, while remaining fully compatible with the existing
+PMI-1 and PMI-2 APIs. It also provides a reference implementation of the
+PMI-server."""
+
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['bf5f0a341d0ec7f465627a7570f4dcda3b931bc859256428a35f6c72f13462d0']
+checksums = ['ea51baa0fdee688d54bc9f2c11937671381f00de966233eec6fd88807fb46f83']
 
 builddependencies = [
-    ('binutils', '2.44'),
-    ('Perl', '5.40.2'),
-    ('pkgconf', '2.4.3'),
+    ('Perl', '5.40.0'),
+    ('pkgconf', '2.3.0'),
 ]
 
 dependencies = [
     ('libevent', '2.1.12'),
     ('zlib', '1.3.1'),
-    ('hwloc', '2.12.1'),
+    ('hwloc-ROCm', '2.11.2'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
-configopts += ' --with-hwloc=$EBROOTHWLOC'
-configopts += ' --enable-pmix-binaries'
+configopts = '--with-libevent=$EBROOTLIBEVENT  '
+configopts += '--with-zlib=$EBROOTZLIB '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--enable-pmix-binaries '
 
 buildopts = 'V=1'
 
Diff against PMIx-6.0.0-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PMIx/PMIx-6.0.0-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-6.0.0-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 15e3705e89..9b60498959 100644
--- a/easybuild/easyconfigs/p/PMIx/PMIx-6.0.0-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,43 +1,39 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PMIx'
-version = '6.0.0'
+version = '5.0.6'
 
 homepage = 'https://pmix.org/'
-description = """Process Management for Exascale Environments
-PMI Exascale (PMIx) represents an attempt to
-provide an extended version of the PMI standard specifically designed
-to support clusters up to and including exascale sizes. The overall
-objective of the project is not to branch the existing pseudo-standard
-definitions - in fact, PMIx fully supports both of the existing PMI-1
-and PMI-2 APIs - but rather to (a) augment and extend those APIs to
-eliminate some current restrictions that impact scalability, and (b)
-provide a reference implementation of the PMI-server that demonstrates
-the desired level of scalability.
-"""
-
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+description = """Process Management for Exascale Environments.
+PMI Exascale (PMIx) extends the PMI standard to support clusters up to and
+including exascale sizes, while remaining fully compatible with the existing
+PMI-1 and PMI-2 APIs. It also provides a reference implementation of the
+PMI-server."""
+
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['bfe969966d0ce82e032739cac286239bd5ad74a831d7adae013284919f125318']
+checksums = ['ea51baa0fdee688d54bc9f2c11937671381f00de966233eec6fd88807fb46f83']
 
 builddependencies = [
-    ('binutils', '2.44'),
-    ('Perl', '5.40.2'),
-    ('pkgconf', '2.4.3'),
+    ('Perl', '5.40.0'),
+    ('pkgconf', '2.3.0'),
 ]
 
 dependencies = [
     ('libevent', '2.1.12'),
     ('zlib', '1.3.1'),
-    ('hwloc', '2.12.1'),
+    ('hwloc-ROCm', '2.11.2'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
-configopts += ' --with-hwloc=$EBROOTHWLOC'
-configopts += ' --enable-pmix-binaries'
+configopts = '--with-libevent=$EBROOTLIBEVENT  '
+configopts += '--with-zlib=$EBROOTZLIB '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--enable-pmix-binaries '
 
 buildopts = 'V=1'
 

Updated software PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb

Diff against PRRTE-4.1.0-GCCcore-15.2.0.eb

easybuild/easyconfigs/p/PRRTE/PRRTE-4.1.0-GCCcore-15.2.0.eb

diff --git a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.1.0-GCCcore-15.2.0.eb b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index d35338ca0d..f10c336589 100644
--- a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.1.0-GCCcore-15.2.0.eb
+++ b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,31 +1,29 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PRRTE'
-version = '4.1.0'
+version = '3.0.8'
 
 homepage = 'https://docs.prrte.org/'
 description = """PRRTE is the PMIx Reference RunTime Environment"""
 
-toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/prrte/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['285ad62b670075708b9fcfe14c54baa599733bc274d10502a82e8eebba0b7c70']
-
-builddependencies = [
-    ('binutils', '2.45'),
-    ('pkgconf', '2.5.1'),
-]
+checksums = ['e798192fa0ab38172818a109a6c89bcc37e4b1123ca150d8c115dee5231750de']
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('hwloc', '2.13.0'),
-    ('PMIx', '6.1.0'),
+    ('hwloc-ROCm', '2.11.2'),
+    ('PMIx', '5.0.6'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT'
-configopts += ' --with-hwloc=$EBROOTHWLOC --with-pmix=$EBROOTPMIX'
+configopts = '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--with-pmix=$EBROOTPMIX '
 
 buildopts = 'V=1'
 
Diff against PRRTE-3.0.11-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.11-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.11-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 0eb711cd4e..f10c336589 100644
--- a/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.11-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,31 +1,29 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PRRTE'
-version = '3.0.11'
+version = '3.0.8'
 
 homepage = 'https://docs.prrte.org/'
 description = """PRRTE is the PMIx Reference RunTime Environment"""
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/prrte/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['37af5a82d333a54c0bac358f06c194427b7dbfa7b8b85f2ddd1145acf71cfdd4']
-
-builddependencies = [
-    ('binutils', '2.44'),
-    ('pkgconf', '2.4.3'),
-]
+checksums = ['e798192fa0ab38172818a109a6c89bcc37e4b1123ca150d8c115dee5231750de']
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('hwloc', '2.12.1'),
-    ('PMIx', '5.0.8'),
+    ('hwloc-ROCm', '2.11.2'),
+    ('PMIx', '5.0.6'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT'
-configopts += ' --with-hwloc=$EBROOTHWLOC --with-pmix=$EBROOTPMIX'
+configopts = '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--with-pmix=$EBROOTPMIX '
 
 buildopts = 'V=1'
 
Diff against PRRTE-4.0.0-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PRRTE/PRRTE-4.0.0-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.0.0-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 4206a4aeab..f10c336589 100644
--- a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.0.0-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,31 +1,29 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PRRTE'
-version = '4.0.0'
+version = '3.0.8'
 
 homepage = 'https://docs.prrte.org/'
 description = """PRRTE is the PMIx Reference RunTime Environment"""
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/prrte/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['3c2ec961e0ba0c99128c7bf3545f4789d55a85a70ce958e868ae5e3db6ed4de4']
-
-builddependencies = [
-    ('binutils', '2.44'),
-    ('pkgconf', '2.4.3'),
-]
+checksums = ['e798192fa0ab38172818a109a6c89bcc37e4b1123ca150d8c115dee5231750de']
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('hwloc', '2.12.1'),
-    ('PMIx', '6.0.0'),
+    ('hwloc-ROCm', '2.11.2'),
+    ('PMIx', '5.0.6'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT'
-configopts += ' --with-hwloc=$EBROOTHWLOC --with-pmix=$EBROOTPMIX'
+configopts = '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--with-pmix=$EBROOTPMIX '
 
 buildopts = 'V=1'
 

@github-actions

Copy link
Copy Markdown

Updated software libconfig-1.8.1-GCCcore-14.2.0.eb

Diff against libconfig-1.8.2-GCCcore-14.3.0.eb

easybuild/easyconfigs/l/libconfig/libconfig-1.8.2-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/l/libconfig/libconfig-1.8.2-GCCcore-14.3.0.eb b/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-14.2.0.eb
index e27761edf6..4a25141e4a 100644
--- a/easybuild/easyconfigs/l/libconfig/libconfig-1.8.2-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-14.2.0.eb
@@ -1,28 +1,28 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libconfig'
-version = '1.8.2'
+version = '1.8.1'
 
 homepage = 'https://hyperrealm.github.io/libconfig'
 description = "Libconfig is a simple library for processing structured configuration files"
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
-source_urls = ['https://hyperrealm.github.io/libconfig/dist/']
+source_urls = ['https://hyperrealm.github.io/%(name)s/dist/']
 sources = [SOURCE_TAR_GZ]
-checksums = [
-    {'libconfig-1.8.2.tar.gz': 'e59ffb902dd5731d5d4e4fb81d3b989697615feab72dfd7c30618167b91a42ee'},
-]
+checksums = [{'libconfig-1.8.1.tar.gz': 'c73ee3d914ec68c99b61e864832931e9a7112eeabfb449dad217fd83e385cbdf'}]
 
 builddependencies = [
-    ('binutils', '2.44'),
+    ('binutils', '2.42'),
     ('Bison', '3.8.2'),
     ('flex', '2.6.4'),
 ]
 
 sanity_check_paths = {
-    'files': ['include/libconfig.h', 'include/libconfig.h++', 'lib/libconfig.a', 'lib/libconfig++.a',
-              'lib/libconfig.%s' % SHLIB_EXT, 'lib/libconfig++.%s' % SHLIB_EXT],
+    'files': ['include/%(name)s.h', 'include/%(name)s.h++', 'lib/%(name)s.a', 'lib/%(name)s++.a',
+              'lib/%(name)s.so', 'lib/%(name)s++.so'],
     'dirs': ['lib/pkgconfig'],
 }
 
Diff against libconfig-1.8.1-GCCcore-13.3.0.eb

easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-13.3.0.eb

diff --git a/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-14.2.0.eb
index 774ece65d3..4a25141e4a 100644
--- a/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-13.3.0.eb
+++ b/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-14.2.0.eb
@@ -1,3 +1,5 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libconfig'
@@ -6,16 +8,11 @@ version = '1.8.1'
 homepage = 'https://hyperrealm.github.io/libconfig'
 description = "Libconfig is a simple library for processing structured configuration files"
 
-toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
-source_urls = ['https://hyperrealm.github.io/libconfig/dist/']
+source_urls = ['https://hyperrealm.github.io/%(name)s/dist/']
 sources = [SOURCE_TAR_GZ]
-patches = [('libconfig-1.8.1_missing_pathbuf_header.patch', 1)]
-checksums = [
-    {'libconfig-1.8.1.tar.gz': '87c6f382994b245f9213be34a2bf19c8ee7d033d7abaa51e88fbb7bad79e2dc6'},
-    {'libconfig-1.8.1_missing_pathbuf_header.patch':
-     'f73ce5776d89e92c6ac990ad0f68ea89a1ce13f007b539b6ac276edecacaa5aa'},
-]
+checksums = [{'libconfig-1.8.1.tar.gz': 'c73ee3d914ec68c99b61e864832931e9a7112eeabfb449dad217fd83e385cbdf'}]
 
 builddependencies = [
     ('binutils', '2.42'),
@@ -24,8 +21,8 @@ builddependencies = [
 ]
 
 sanity_check_paths = {
-    'files': ['include/libconfig.h', 'include/libconfig.h++', 'lib/libconfig.a', 'lib/libconfig++.a',
-              'lib/libconfig.%s' % SHLIB_EXT, 'lib/libconfig++.%s' % SHLIB_EXT],
+    'files': ['include/%(name)s.h', 'include/%(name)s.h++', 'lib/%(name)s.a', 'lib/%(name)s++.a',
+              'lib/%(name)s.so', 'lib/%(name)s++.so'],
     'dirs': ['lib/pkgconfig'],
 }
 

Updated software libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb

Diff against libfabric-2.5.0-GCCcore-15.2.0.eb

easybuild/easyconfigs/l/libfabric/libfabric-2.5.0-GCCcore-15.2.0.eb

diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-2.5.0-GCCcore-15.2.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
index 2bf3eae000..b839b68a36 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-2.5.0-GCCcore-15.2.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
@@ -1,7 +1,10 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libfabric'
-version = '2.5.0'
+version = '1.22.0'
+versionsuffix='-cxi'
 
 homepage = 'https://ofiwg.github.io/libfabric/'
 description = """
@@ -9,56 +12,66 @@ Libfabric is a core component of OFI. It is the library that defines and exports
 the user-space API of OFI, and is typically the only software that applications
 deal with directly. It works in conjunction with provider libraries, which are
 often integrated directly into libfabric.
+
+This build is HPE's shs-libfabric (SHS 12.0.2) and compiles the HPE Slingshot-11
+`cxi` provider, and enables the ROCr/HSA HMEM backend so GPU-resident
+(ROCm device) buffers can be sent directly over the fabric.
 """
 
-# The psm3 provider (enabled by default) requires an AVX capable system to run
-toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/ofiwg/libfabric/releases/download/v%(version)s']
-sources = [SOURCE_TAR_BZ2]
-checksums = ['276019edca708dc0569cf3064a412e395ba7b1883299781caed120594f850995']
+sources = [
+    {
+        'filename': '%(name)s-%(version)s-shs-12.0.2.tar.gz',
+        'git_config': {
+            'url': 'https://github.com/HewlettPackard',
+            'repo_name': 'shs-%(name)s',
+            'tag': 'release/shs-12.0.2',
+            'keep_git_dir': False,
+        },
+    },
+]
+checksums = [
+    None,  # .tgz not reproducible
+]
 
 builddependencies = [
-    ('binutils', '2.45'),
-    ('pkgconf', '2.5.1'),
-    ('Autotools', '20250626'),
+    ('binutils', '2.42'),
+    ('pkgconf', '2.3.0', '', ('GCCcore', '14.2.0')),
+    ('Autotools', '20240712', '', ('GCCcore', '14.2.0')),
 ]
-
 dependencies = [
-    ('numactl', '2.0.19'),
-    # PSM2 dependency for libfabric should be used on Omnipath systems,
-    # but that PSM2 has CUDA as dependency so it's commented out by default;
-    # PSM2 only compiles on x86_64
-    # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
+    ('numactl', '2.0.19', '', ('GCCcore', '14.2.0')),
+    ('libcxi', '1.0.2', '', ('GCCcore', '14.2.0')),
+    ('cassini-headers', '1.1.1', '', SYSTEM),
+    ('cxi-driver-headers', '1.0.0', '', SYSTEM),
 ]
 
-osdependencies = [OS_PKG_IBVERBS_DEV]
+preconfigopts = "./autogen.sh && "
 
-# Regenerate build files to pick up psm3-axv-config patch
-preconfigopts = "./autogen.sh &&"
+# configure auto-detects providers from the host and
+# would otherwise build verbs/efa/psm2 against /usr/lib64 and bake them into
+# libfabric.so's NEEDED list (a host pickup, and fatal at runtime on systems where
+# host libefa/libpsm2 are ABI-incompatible or absent). Disable every provider
+# that links an external library; keep only cxi plus the pure-software core.
+configopts = "--disable-verbs --disable-efa --disable-psm2 --disable-psm3 --disable-opx "
+configopts += "--disable-usnic --disable-sockets --disable-ucx --disable-xpmem "
+configopts += "--enable-cxi=yes "
+configopts += "--with-cassini-headers=$EBROOTCASSINIMINHEADERS "
+configopts += "--with-cxi-uapi-headers=$EBROOTCXIMINDRIVERMINHEADERS "
+configopts += "--with-rocr=$EBROOTROCMMINLLVM "
 
-# Disable deprecated "sockets" provider
-configopts = "--disable-sockets "
-
-# Disable usNIC provider by default as this requires specific osdependencies
-# If you want to enable this provider you need to uncomment the following line:
-# osdependencies.append(('libnl3-devel', 'libnl3-dev'))
-configopts += "--disable-usnic "
-
-# Disable XPMEM to avoid a system library being picked up
-# This leads to rpaths to e.g. /lib64 being added binaries linked against libfabric
-# potentially picking up system libraries instead of EasyBuild provided ones at runtime
-configopts += "--disable-xpmem "
-
-buildopts = "V=1"
+buildopts = 'V=1'
 
 sanity_check_paths = {
-    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] +
-             ['lib/libfabric.%s' % x for x in ['a', SHLIB_EXT]],
-    'dirs': ['include/rdma', 'lib/pkgconfig', 'share']
+    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror', 'lib/%(name)s.a', 'lib/%(name)s.so'],
+    'dirs': ['include/rdma', 'lib/pkgconfig', 'share'],
 }
 
-sanity_check_commands = ['fi_info']
+sanity_check_commands = [
+    'fi_info',
+    "fi_info -l | grep -i cxi",
+]
 
 moduleclass = 'lib'
Diff against libfabric-2.1.0-GCCcore-14.3.0.eb

easybuild/easyconfigs/l/libfabric/libfabric-2.1.0-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-2.1.0-GCCcore-14.3.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
index a7d8da33ff..b839b68a36 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-2.1.0-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
@@ -1,7 +1,10 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libfabric'
-version = '2.1.0'
+version = '1.22.0'
+versionsuffix='-cxi'
 
 homepage = 'https://ofiwg.github.io/libfabric/'
 description = """
@@ -9,58 +12,66 @@ Libfabric is a core component of OFI. It is the library that defines and exports
 the user-space API of OFI, and is typically the only software that applications
 deal with directly. It works in conjunction with provider libraries, which are
 often integrated directly into libfabric.
+
+This build is HPE's shs-libfabric (SHS 12.0.2) and compiles the HPE Slingshot-11
+`cxi` provider, and enables the ROCr/HSA HMEM backend so GPU-resident
+(ROCm device) buffers can be sent directly over the fabric.
 """
 
-# The psm3 provider (enabled by default) requires an AVX capable system to run
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/ofiwg/libfabric/releases/download/v%(version)s']
-sources = [SOURCE_TAR_BZ2]
+sources = [
+    {
+        'filename': '%(name)s-%(version)s-shs-12.0.2.tar.gz',
+        'git_config': {
+            'url': 'https://github.com/HewlettPackard',
+            'repo_name': 'shs-%(name)s',
+            'tag': 'release/shs-12.0.2',
+            'keep_git_dir': False,
+        },
+    },
+]
 checksums = [
-    {'libfabric-2.1.0.tar.bz2': '97df312779e2d937246d2f46385b700e0958ed796d6fed7aae77e2d18923e19f'}
+    None,  # .tgz not reproducible
 ]
 
 builddependencies = [
-    ('binutils', '2.44'),
-    ('pkgconf', '2.4.3'),
-    ('Autotools', '20250527'),
+    ('binutils', '2.42'),
+    ('pkgconf', '2.3.0', '', ('GCCcore', '14.2.0')),
+    ('Autotools', '20240712', '', ('GCCcore', '14.2.0')),
 ]
-
 dependencies = [
-    ('numactl', '2.0.19'),
-    # PSM2 dependency for libfabric should be used on Omnipath systems,
-    # but that PSM2 has CUDA as dependency so it's commented out by default;
-    # PSM2 only compiles on x86_64
-    # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
+    ('numactl', '2.0.19', '', ('GCCcore', '14.2.0')),
+    ('libcxi', '1.0.2', '', ('GCCcore', '14.2.0')),
+    ('cassini-headers', '1.1.1', '', SYSTEM),
+    ('cxi-driver-headers', '1.0.0', '', SYSTEM),
 ]
 
-osdependencies = [OS_PKG_IBVERBS_DEV]
+preconfigopts = "./autogen.sh && "
 
-# Regenerate build files to pick up psm3-axv-config patch
-preconfigopts = "./autogen.sh &&"
+# configure auto-detects providers from the host and
+# would otherwise build verbs/efa/psm2 against /usr/lib64 and bake them into
+# libfabric.so's NEEDED list (a host pickup, and fatal at runtime on systems where
+# host libefa/libpsm2 are ABI-incompatible or absent). Disable every provider
+# that links an external library; keep only cxi plus the pure-software core.
+configopts = "--disable-verbs --disable-efa --disable-psm2 --disable-psm3 --disable-opx "
+configopts += "--disable-usnic --disable-sockets --disable-ucx --disable-xpmem "
+configopts += "--enable-cxi=yes "
+configopts += "--with-cassini-headers=$EBROOTCASSINIMINHEADERS "
+configopts += "--with-cxi-uapi-headers=$EBROOTCXIMINDRIVERMINHEADERS "
+configopts += "--with-rocr=$EBROOTROCMMINLLVM "
 
-# Disable deprecated "sockets" provider
-configopts = "--disable-sockets "
-
-# Disable usNIC provider by default as this requires specific osdependencies
-# If you want to enable this provider you need to uncomment the following line:
-# osdependencies.append(('libnl3-devel', 'libnl3-dev'))
-configopts += "--disable-usnic "
-
-# Disable XPMEM to avoid a system library being picked up
-# This leads to rpaths to e.g. /lib64 being added binaries linked against libfabric
-# potentially picking up system libraries instead of EasyBuild provided ones at runtime
-configopts += "--disable-xpmem "
-
-buildopts = "V=1"
+buildopts = 'V=1'
 
 sanity_check_paths = {
-    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] +
-             ['lib/libfabric.%s' % x for x in ['a', SHLIB_EXT]],
-    'dirs': ['include/rdma', 'lib/pkgconfig', 'share']
+    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror', 'lib/%(name)s.a', 'lib/%(name)s.so'],
+    'dirs': ['include/rdma', 'lib/pkgconfig', 'share'],
 }
 
-sanity_check_commands = ['fi_info']
+sanity_check_commands = [
+    'fi_info',
+    "fi_info -l | grep -i cxi",
+]
 
 moduleclass = 'lib'
Diff against libfabric-2.0.0-GCCcore-14.2.0.eb

easybuild/easyconfigs/l/libfabric/libfabric-2.0.0-GCCcore-14.2.0.eb

diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-2.0.0-GCCcore-14.2.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
index 065ddc5b72..b839b68a36 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-2.0.0-GCCcore-14.2.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
@@ -1,7 +1,10 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libfabric'
-version = '2.0.0'
+version = '1.22.0'
+versionsuffix='-cxi'
 
 homepage = 'https://ofiwg.github.io/libfabric/'
 description = """
@@ -9,61 +12,66 @@ Libfabric is a core component of OFI. It is the library that defines and exports
 the user-space API of OFI, and is typically the only software that applications
 deal with directly. It works in conjunction with provider libraries, which are
 often integrated directly into libfabric.
+
+This build is HPE's shs-libfabric (SHS 12.0.2) and compiles the HPE Slingshot-11
+`cxi` provider, and enables the ROCr/HSA HMEM backend so GPU-resident
+(ROCm device) buffers can be sent directly over the fabric.
 """
 
-# The psm3 provider (enabled by default) requires an AVX capable system to run
-toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/ofiwg/libfabric/releases/download/v%(version)s']
-sources = [SOURCE_TAR_BZ2]
-patches = ['%(name)s-%(version)s_opx_hfi1_pre_cn5000.patch']
+sources = [
+    {
+        'filename': '%(name)s-%(version)s-shs-12.0.2.tar.gz',
+        'git_config': {
+            'url': 'https://github.com/HewlettPackard',
+            'repo_name': 'shs-%(name)s',
+            'tag': 'release/shs-12.0.2',
+            'keep_git_dir': False,
+        },
+    },
+]
 checksums = [
-    {'libfabric-2.0.0.tar.bz2': '1a8e40f1f331d6ee2e9ace518c0088a78c8a838968f8601c2b77fd012a7bf0f5'},
-    {'%(name)s-%(version)s_opx_hfi1_pre_cn5000.patch':
-        '9b97d7f84512ad7fe3bfc878f5fed80fcfa45ec904e9295246ebda99d85c3113'},
+    None,  # .tgz not reproducible
 ]
 
 builddependencies = [
     ('binutils', '2.42'),
-    ('pkgconf', '2.3.0'),
-    ('Autotools', '20240712'),
+    ('pkgconf', '2.3.0', '', ('GCCcore', '14.2.0')),
+    ('Autotools', '20240712', '', ('GCCcore', '14.2.0')),
 ]
-
 dependencies = [
-    ('numactl', '2.0.19'),
-    # PSM2 dependency for libfabric should be used on Omnipath systems,
-    # but that PSM2 has CUDA as dependency so it's commented out by default;
-    # PSM2 only compiles on x86_64
-    # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
+    ('numactl', '2.0.19', '', ('GCCcore', '14.2.0')),
+    ('libcxi', '1.0.2', '', ('GCCcore', '14.2.0')),
+    ('cassini-headers', '1.1.1', '', SYSTEM),
+    ('cxi-driver-headers', '1.0.0', '', SYSTEM),
 ]
 
-osdependencies = [OS_PKG_IBVERBS_DEV]
+preconfigopts = "./autogen.sh && "
 
-# Regenerate build files to pick up psm3-axv-config patch
-preconfigopts = "./autogen.sh &&"
+# configure auto-detects providers from the host and
+# would otherwise build verbs/efa/psm2 against /usr/lib64 and bake them into
+# libfabric.so's NEEDED list (a host pickup, and fatal at runtime on systems where
+# host libefa/libpsm2 are ABI-incompatible or absent). Disable every provider
+# that links an external library; keep only cxi plus the pure-software core.
+configopts = "--disable-verbs --disable-efa --disable-psm2 --disable-psm3 --disable-opx "
+configopts += "--disable-usnic --disable-sockets --disable-ucx --disable-xpmem "
+configopts += "--enable-cxi=yes "
+configopts += "--with-cassini-headers=$EBROOTCASSINIMINHEADERS "
+configopts += "--with-cxi-uapi-headers=$EBROOTCXIMINDRIVERMINHEADERS "
+configopts += "--with-rocr=$EBROOTROCMMINLLVM "
 
-# Disable deprecated "sockets" provider
-configopts = "--disable-sockets "
-
-# Disable usNIC provider by default as this requires specific osdependencies
-# If you want to enable this provider you need to uncomment the following line:
-# osdependencies.append(('libnl3-devel', 'libnl3-dev'))
-configopts += "--disable-usnic "
-
-# Disable XPMEM to avoid a system library being picked up
-# This leads to rpaths to e.g. /lib64 being added binaries linked against libfabric
-# potentially picking up system libraries instead of EasyBuild provided ones at runtime
-configopts += "--disable-xpmem "
-
-buildopts = "V=1"
+buildopts = 'V=1'
 
 sanity_check_paths = {
-    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] +
-             ['lib/libfabric.%s' % x for x in ['a', SHLIB_EXT]],
-    'dirs': ['include/rdma', 'lib/pkgconfig', 'share']
+    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror', 'lib/%(name)s.a', 'lib/%(name)s.so'],
+    'dirs': ['include/rdma', 'lib/pkgconfig', 'share'],
 }
 
-sanity_check_commands = ['fi_info']
+sanity_check_commands = [
+    'fi_info',
+    "fi_info -l | grep -i cxi",
+]
 
 moduleclass = 'lib'

Updated software PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb

Diff against PMIx-6.1.0-GCCcore-15.2.0.eb

easybuild/easyconfigs/p/PMIx/PMIx-6.1.0-GCCcore-15.2.0.eb

diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-6.1.0-GCCcore-15.2.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 6c5c09a11b..9b60498959 100644
--- a/easybuild/easyconfigs/p/PMIx/PMIx-6.1.0-GCCcore-15.2.0.eb
+++ b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,43 +1,39 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PMIx'
-version = '6.1.0'
+version = '5.0.6'
 
 homepage = 'https://pmix.org/'
-description = """Process Management for Exascale Environments
-PMI Exascale (PMIx) represents an attempt to
-provide an extended version of the PMI standard specifically designed
-to support clusters up to and including exascale sizes. The overall
-objective of the project is not to branch the existing pseudo-standard
-definitions - in fact, PMIx fully supports both of the existing PMI-1
-and PMI-2 APIs - but rather to (a) augment and extend those APIs to
-eliminate some current restrictions that impact scalability, and (b)
-provide a reference implementation of the PMI-server that demonstrates
-the desired level of scalability.
-"""
-
-toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
+description = """Process Management for Exascale Environments.
+PMI Exascale (PMIx) extends the PMI standard to support clusters up to and
+including exascale sizes, while remaining fully compatible with the existing
+PMI-1 and PMI-2 APIs. It also provides a reference implementation of the
+PMI-server."""
+
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['bb9021c8e100a376f5070ecca727f83a29b5f652dfe381793b88daa79a3b98a2']
+checksums = ['ea51baa0fdee688d54bc9f2c11937671381f00de966233eec6fd88807fb46f83']
 
 builddependencies = [
-    ('binutils', '2.45'),
-    ('Perl', '5.42.0'),
-    ('pkgconf', '2.5.1'),
+    ('Perl', '5.40.0'),
+    ('pkgconf', '2.3.0'),
 ]
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('zlib', '2.3.2'),
-    ('hwloc', '2.13.0'),
+    ('zlib', '1.3.1'),
+    ('hwloc-ROCm', '2.11.2'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
-configopts += ' --with-hwloc=$EBROOTHWLOC'
-configopts += ' --enable-pmix-binaries'
+configopts = '--with-libevent=$EBROOTLIBEVENT  '
+configopts += '--with-zlib=$EBROOTZLIB '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--enable-pmix-binaries '
 
 buildopts = 'V=1'
 
Diff against PMIx-5.0.8-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PMIx/PMIx-5.0.8-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-5.0.8-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 51dc7b14d7..9b60498959 100644
--- a/easybuild/easyconfigs/p/PMIx/PMIx-5.0.8-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,43 +1,39 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PMIx'
-version = '5.0.8'
+version = '5.0.6'
 
 homepage = 'https://pmix.org/'
-description = """Process Management for Exascale Environments
-PMI Exascale (PMIx) represents an attempt to
-provide an extended version of the PMI standard specifically designed
-to support clusters up to and including exascale sizes. The overall
-objective of the project is not to branch the existing pseudo-standard
-definitions - in fact, PMIx fully supports both of the existing PMI-1
-and PMI-2 APIs - but rather to (a) augment and extend those APIs to
-eliminate some current restrictions that impact scalability, and (b)
-provide a reference implementation of the PMI-server that demonstrates
-the desired level of scalability.
-"""
-
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+description = """Process Management for Exascale Environments.
+PMI Exascale (PMIx) extends the PMI standard to support clusters up to and
+including exascale sizes, while remaining fully compatible with the existing
+PMI-1 and PMI-2 APIs. It also provides a reference implementation of the
+PMI-server."""
+
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['bf5f0a341d0ec7f465627a7570f4dcda3b931bc859256428a35f6c72f13462d0']
+checksums = ['ea51baa0fdee688d54bc9f2c11937671381f00de966233eec6fd88807fb46f83']
 
 builddependencies = [
-    ('binutils', '2.44'),
-    ('Perl', '5.40.2'),
-    ('pkgconf', '2.4.3'),
+    ('Perl', '5.40.0'),
+    ('pkgconf', '2.3.0'),
 ]
 
 dependencies = [
     ('libevent', '2.1.12'),
     ('zlib', '1.3.1'),
-    ('hwloc', '2.12.1'),
+    ('hwloc-ROCm', '2.11.2'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
-configopts += ' --with-hwloc=$EBROOTHWLOC'
-configopts += ' --enable-pmix-binaries'
+configopts = '--with-libevent=$EBROOTLIBEVENT  '
+configopts += '--with-zlib=$EBROOTZLIB '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--enable-pmix-binaries '
 
 buildopts = 'V=1'
 
Diff against PMIx-6.0.0-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PMIx/PMIx-6.0.0-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-6.0.0-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 15e3705e89..9b60498959 100644
--- a/easybuild/easyconfigs/p/PMIx/PMIx-6.0.0-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,43 +1,39 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PMIx'
-version = '6.0.0'
+version = '5.0.6'
 
 homepage = 'https://pmix.org/'
-description = """Process Management for Exascale Environments
-PMI Exascale (PMIx) represents an attempt to
-provide an extended version of the PMI standard specifically designed
-to support clusters up to and including exascale sizes. The overall
-objective of the project is not to branch the existing pseudo-standard
-definitions - in fact, PMIx fully supports both of the existing PMI-1
-and PMI-2 APIs - but rather to (a) augment and extend those APIs to
-eliminate some current restrictions that impact scalability, and (b)
-provide a reference implementation of the PMI-server that demonstrates
-the desired level of scalability.
-"""
-
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+description = """Process Management for Exascale Environments.
+PMI Exascale (PMIx) extends the PMI standard to support clusters up to and
+including exascale sizes, while remaining fully compatible with the existing
+PMI-1 and PMI-2 APIs. It also provides a reference implementation of the
+PMI-server."""
+
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['bfe969966d0ce82e032739cac286239bd5ad74a831d7adae013284919f125318']
+checksums = ['ea51baa0fdee688d54bc9f2c11937671381f00de966233eec6fd88807fb46f83']
 
 builddependencies = [
-    ('binutils', '2.44'),
-    ('Perl', '5.40.2'),
-    ('pkgconf', '2.4.3'),
+    ('Perl', '5.40.0'),
+    ('pkgconf', '2.3.0'),
 ]
 
 dependencies = [
     ('libevent', '2.1.12'),
     ('zlib', '1.3.1'),
-    ('hwloc', '2.12.1'),
+    ('hwloc-ROCm', '2.11.2'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
-configopts += ' --with-hwloc=$EBROOTHWLOC'
-configopts += ' --enable-pmix-binaries'
+configopts = '--with-libevent=$EBROOTLIBEVENT  '
+configopts += '--with-zlib=$EBROOTZLIB '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--enable-pmix-binaries '
 
 buildopts = 'V=1'
 

Updated software PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb

Diff against PRRTE-4.1.0-GCCcore-15.2.0.eb

easybuild/easyconfigs/p/PRRTE/PRRTE-4.1.0-GCCcore-15.2.0.eb

diff --git a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.1.0-GCCcore-15.2.0.eb b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index d35338ca0d..f10c336589 100644
--- a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.1.0-GCCcore-15.2.0.eb
+++ b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,31 +1,29 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PRRTE'
-version = '4.1.0'
+version = '3.0.8'
 
 homepage = 'https://docs.prrte.org/'
 description = """PRRTE is the PMIx Reference RunTime Environment"""
 
-toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/prrte/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['285ad62b670075708b9fcfe14c54baa599733bc274d10502a82e8eebba0b7c70']
-
-builddependencies = [
-    ('binutils', '2.45'),
-    ('pkgconf', '2.5.1'),
-]
+checksums = ['e798192fa0ab38172818a109a6c89bcc37e4b1123ca150d8c115dee5231750de']
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('hwloc', '2.13.0'),
-    ('PMIx', '6.1.0'),
+    ('hwloc-ROCm', '2.11.2'),
+    ('PMIx', '5.0.6'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT'
-configopts += ' --with-hwloc=$EBROOTHWLOC --with-pmix=$EBROOTPMIX'
+configopts = '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--with-pmix=$EBROOTPMIX '
 
 buildopts = 'V=1'
 
Diff against PRRTE-3.0.11-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.11-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.11-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 0eb711cd4e..f10c336589 100644
--- a/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.11-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,31 +1,29 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PRRTE'
-version = '3.0.11'
+version = '3.0.8'
 
 homepage = 'https://docs.prrte.org/'
 description = """PRRTE is the PMIx Reference RunTime Environment"""
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/prrte/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['37af5a82d333a54c0bac358f06c194427b7dbfa7b8b85f2ddd1145acf71cfdd4']
-
-builddependencies = [
-    ('binutils', '2.44'),
-    ('pkgconf', '2.4.3'),
-]
+checksums = ['e798192fa0ab38172818a109a6c89bcc37e4b1123ca150d8c115dee5231750de']
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('hwloc', '2.12.1'),
-    ('PMIx', '5.0.8'),
+    ('hwloc-ROCm', '2.11.2'),
+    ('PMIx', '5.0.6'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT'
-configopts += ' --with-hwloc=$EBROOTHWLOC --with-pmix=$EBROOTPMIX'
+configopts = '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--with-pmix=$EBROOTPMIX '
 
 buildopts = 'V=1'
 
Diff against PRRTE-4.0.0-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PRRTE/PRRTE-4.0.0-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.0.0-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 4206a4aeab..f10c336589 100644
--- a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.0.0-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,31 +1,29 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PRRTE'
-version = '4.0.0'
+version = '3.0.8'
 
 homepage = 'https://docs.prrte.org/'
 description = """PRRTE is the PMIx Reference RunTime Environment"""
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
 source_urls = ['https://github.com/openpmix/prrte/releases/download/v%(version)s']
 sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['3c2ec961e0ba0c99128c7bf3545f4789d55a85a70ce958e868ae5e3db6ed4de4']
-
-builddependencies = [
-    ('binutils', '2.44'),
-    ('pkgconf', '2.4.3'),
-]
+checksums = ['e798192fa0ab38172818a109a6c89bcc37e4b1123ca150d8c115dee5231750de']
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('hwloc', '2.12.1'),
-    ('PMIx', '6.0.0'),
+    ('hwloc-ROCm', '2.11.2'),
+    ('PMIx', '5.0.6'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT'
-configopts += ' --with-hwloc=$EBROOTHWLOC --with-pmix=$EBROOTPMIX'
+configopts = '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--with-pmix=$EBROOTPMIX '
 
 buildopts = 'V=1'
 

@github-actions

Copy link
Copy Markdown

Updated software libconfig-1.8.1-GCCcore-14.2.0.eb

Diff against libconfig-1.8.2-GCCcore-14.3.0.eb

easybuild/easyconfigs/l/libconfig/libconfig-1.8.2-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/l/libconfig/libconfig-1.8.2-GCCcore-14.3.0.eb b/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-14.2.0.eb
index e27761edf6..a202ace713 100644
--- a/easybuild/easyconfigs/l/libconfig/libconfig-1.8.2-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-14.2.0.eb
@@ -1,28 +1,28 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libconfig'
-version = '1.8.2'
+version = '1.8.1'
 
 homepage = 'https://hyperrealm.github.io/libconfig'
 description = "Libconfig is a simple library for processing structured configuration files"
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
 source_urls = ['https://hyperrealm.github.io/libconfig/dist/']
 sources = [SOURCE_TAR_GZ]
-checksums = [
-    {'libconfig-1.8.2.tar.gz': 'e59ffb902dd5731d5d4e4fb81d3b989697615feab72dfd7c30618167b91a42ee'},
-]
+checksums = [{'libconfig-1.8.1.tar.gz': 'c73ee3d914ec68c99b61e864832931e9a7112eeabfb449dad217fd83e385cbdf'}]
 
 builddependencies = [
-    ('binutils', '2.44'),
+    ('binutils', '2.42'),
     ('Bison', '3.8.2'),
     ('flex', '2.6.4'),
 ]
 
 sanity_check_paths = {
     'files': ['include/libconfig.h', 'include/libconfig.h++', 'lib/libconfig.a', 'lib/libconfig++.a',
-              'lib/libconfig.%s' % SHLIB_EXT, 'lib/libconfig++.%s' % SHLIB_EXT],
+              'lib/libconfig.so', 'lib/libconfig++.so'],
     'dirs': ['lib/pkgconfig'],
 }
 
Diff against libconfig-1.8.1-GCCcore-13.3.0.eb

easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-13.3.0.eb

diff --git a/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-14.2.0.eb
index 774ece65d3..a202ace713 100644
--- a/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-13.3.0.eb
+++ b/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-14.2.0.eb
@@ -1,3 +1,5 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libconfig'
@@ -6,16 +8,11 @@ version = '1.8.1'
 homepage = 'https://hyperrealm.github.io/libconfig'
 description = "Libconfig is a simple library for processing structured configuration files"
 
-toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
 source_urls = ['https://hyperrealm.github.io/libconfig/dist/']
 sources = [SOURCE_TAR_GZ]
-patches = [('libconfig-1.8.1_missing_pathbuf_header.patch', 1)]
-checksums = [
-    {'libconfig-1.8.1.tar.gz': '87c6f382994b245f9213be34a2bf19c8ee7d033d7abaa51e88fbb7bad79e2dc6'},
-    {'libconfig-1.8.1_missing_pathbuf_header.patch':
-     'f73ce5776d89e92c6ac990ad0f68ea89a1ce13f007b539b6ac276edecacaa5aa'},
-]
+checksums = [{'libconfig-1.8.1.tar.gz': 'c73ee3d914ec68c99b61e864832931e9a7112eeabfb449dad217fd83e385cbdf'}]
 
 builddependencies = [
     ('binutils', '2.42'),
@@ -25,7 +22,7 @@ builddependencies = [
 
 sanity_check_paths = {
     'files': ['include/libconfig.h', 'include/libconfig.h++', 'lib/libconfig.a', 'lib/libconfig++.a',
-              'lib/libconfig.%s' % SHLIB_EXT, 'lib/libconfig++.%s' % SHLIB_EXT],
+              'lib/libconfig.so', 'lib/libconfig++.so'],
     'dirs': ['lib/pkgconfig'],
 }
 

Updated software libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb

Diff against libfabric-2.5.0-GCCcore-15.2.0.eb

easybuild/easyconfigs/l/libfabric/libfabric-2.5.0-GCCcore-15.2.0.eb

diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-2.5.0-GCCcore-15.2.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
index 2bf3eae000..e8cedba683 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-2.5.0-GCCcore-15.2.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
@@ -1,7 +1,10 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libfabric'
-version = '2.5.0'
+version = '1.22.0'
+versionsuffix = '-cxi'
 
 homepage = 'https://ofiwg.github.io/libfabric/'
 description = """
@@ -9,56 +12,65 @@ Libfabric is a core component of OFI. It is the library that defines and exports
 the user-space API of OFI, and is typically the only software that applications
 deal with directly. It works in conjunction with provider libraries, which are
 often integrated directly into libfabric.
+
+This build is HPE's shs-libfabric (SHS 12.0.2) and compiles the HPE Slingshot-11
+`cxi` provider, and enables the ROCr/HSA HMEM backend so GPU-resident
+(ROCm device) buffers can be sent directly over the fabric.
 """
 
-# The psm3 provider (enabled by default) requires an AVX capable system to run
-toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/ofiwg/libfabric/releases/download/v%(version)s']
-sources = [SOURCE_TAR_BZ2]
-checksums = ['276019edca708dc0569cf3064a412e395ba7b1883299781caed120594f850995']
+sources = [
+    {
+        'filename': 'libfabric-1.22.0-shs-12.0.2.tar.gz',
+        'git_config': {
+            'url': 'https://github.com/HewlettPackard',
+            'repo_name': 'shs-libfabric',
+            'tag': 'release/shs-12.0.2',
+            'keep_git_dir': False,
+        },
+    },
+]
+checksums = [
+    None,  # .tgz not reproducible
+]
 
 builddependencies = [
-    ('binutils', '2.45'),
-    ('pkgconf', '2.5.1'),
-    ('Autotools', '20250626'),
+    ('pkgconf', '2.3.0', '', ('GCCcore', '14.2.0')),
+    ('Autotools', '20240712', '', ('GCCcore', '14.2.0')),
 ]
-
 dependencies = [
-    ('numactl', '2.0.19'),
-    # PSM2 dependency for libfabric should be used on Omnipath systems,
-    # but that PSM2 has CUDA as dependency so it's commented out by default;
-    # PSM2 only compiles on x86_64
-    # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
+    ('numactl', '2.0.19', '', ('GCCcore', '14.2.0')),
+    ('libcxi', '1.0.2', '', ('GCCcore', '14.2.0')),
+    ('cassini-headers', '1.1.1', '', SYSTEM),
+    ('cxi-driver-headers', '1.0.0', '', SYSTEM),
 ]
 
-osdependencies = [OS_PKG_IBVERBS_DEV]
+preconfigopts = "./autogen.sh && "
 
-# Regenerate build files to pick up psm3-axv-config patch
-preconfigopts = "./autogen.sh &&"
+# configure auto-detects providers from the host and
+# would otherwise build verbs/efa/psm2 against /usr/lib64 and bake them into
+# libfabric.so's NEEDED list (a host pickup, and fatal at runtime on systems where
+# host libefa/libpsm2 are ABI-incompatible or absent). Disable every provider
+# that links an external library; keep only cxi plus the pure-software core.
+configopts = "--disable-verbs --disable-efa --disable-psm2 --disable-psm3 --disable-opx "
+configopts += "--disable-usnic --disable-sockets --disable-ucx --disable-xpmem "
+configopts += "--enable-cxi=yes "
+configopts += "--with-cassini-headers=$EBROOTCASSINIMINHEADERS "
+configopts += "--with-cxi-uapi-headers=$EBROOTCXIMINDRIVERMINHEADERS "
+configopts += "--with-rocr=$EBROOTROCMMINLLVM "
 
-# Disable deprecated "sockets" provider
-configopts = "--disable-sockets "
-
-# Disable usNIC provider by default as this requires specific osdependencies
-# If you want to enable this provider you need to uncomment the following line:
-# osdependencies.append(('libnl3-devel', 'libnl3-dev'))
-configopts += "--disable-usnic "
-
-# Disable XPMEM to avoid a system library being picked up
-# This leads to rpaths to e.g. /lib64 being added binaries linked against libfabric
-# potentially picking up system libraries instead of EasyBuild provided ones at runtime
-configopts += "--disable-xpmem "
-
-buildopts = "V=1"
+buildopts = 'V=1'
 
 sanity_check_paths = {
-    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] +
-             ['lib/libfabric.%s' % x for x in ['a', SHLIB_EXT]],
-    'dirs': ['include/rdma', 'lib/pkgconfig', 'share']
+    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror', 'lib/libfabric.a', 'lib/libfabric.so'],
+    'dirs': ['include/rdma', 'lib/pkgconfig', 'share'],
 }
 
-sanity_check_commands = ['fi_info']
+sanity_check_commands = [
+    'fi_info',
+    "fi_info -l | grep -i cxi",
+]
 
 moduleclass = 'lib'
Diff against libfabric-2.1.0-GCCcore-14.3.0.eb

easybuild/easyconfigs/l/libfabric/libfabric-2.1.0-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-2.1.0-GCCcore-14.3.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
index a7d8da33ff..e8cedba683 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-2.1.0-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
@@ -1,7 +1,10 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libfabric'
-version = '2.1.0'
+version = '1.22.0'
+versionsuffix = '-cxi'
 
 homepage = 'https://ofiwg.github.io/libfabric/'
 description = """
@@ -9,58 +12,65 @@ Libfabric is a core component of OFI. It is the library that defines and exports
 the user-space API of OFI, and is typically the only software that applications
 deal with directly. It works in conjunction with provider libraries, which are
 often integrated directly into libfabric.
+
+This build is HPE's shs-libfabric (SHS 12.0.2) and compiles the HPE Slingshot-11
+`cxi` provider, and enables the ROCr/HSA HMEM backend so GPU-resident
+(ROCm device) buffers can be sent directly over the fabric.
 """
 
-# The psm3 provider (enabled by default) requires an AVX capable system to run
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/ofiwg/libfabric/releases/download/v%(version)s']
-sources = [SOURCE_TAR_BZ2]
+sources = [
+    {
+        'filename': 'libfabric-1.22.0-shs-12.0.2.tar.gz',
+        'git_config': {
+            'url': 'https://github.com/HewlettPackard',
+            'repo_name': 'shs-libfabric',
+            'tag': 'release/shs-12.0.2',
+            'keep_git_dir': False,
+        },
+    },
+]
 checksums = [
-    {'libfabric-2.1.0.tar.bz2': '97df312779e2d937246d2f46385b700e0958ed796d6fed7aae77e2d18923e19f'}
+    None,  # .tgz not reproducible
 ]
 
 builddependencies = [
-    ('binutils', '2.44'),
-    ('pkgconf', '2.4.3'),
-    ('Autotools', '20250527'),
+    ('pkgconf', '2.3.0', '', ('GCCcore', '14.2.0')),
+    ('Autotools', '20240712', '', ('GCCcore', '14.2.0')),
 ]
-
 dependencies = [
-    ('numactl', '2.0.19'),
-    # PSM2 dependency for libfabric should be used on Omnipath systems,
-    # but that PSM2 has CUDA as dependency so it's commented out by default;
-    # PSM2 only compiles on x86_64
-    # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
+    ('numactl', '2.0.19', '', ('GCCcore', '14.2.0')),
+    ('libcxi', '1.0.2', '', ('GCCcore', '14.2.0')),
+    ('cassini-headers', '1.1.1', '', SYSTEM),
+    ('cxi-driver-headers', '1.0.0', '', SYSTEM),
 ]
 
-osdependencies = [OS_PKG_IBVERBS_DEV]
+preconfigopts = "./autogen.sh && "
 
-# Regenerate build files to pick up psm3-axv-config patch
-preconfigopts = "./autogen.sh &&"
+# configure auto-detects providers from the host and
+# would otherwise build verbs/efa/psm2 against /usr/lib64 and bake them into
+# libfabric.so's NEEDED list (a host pickup, and fatal at runtime on systems where
+# host libefa/libpsm2 are ABI-incompatible or absent). Disable every provider
+# that links an external library; keep only cxi plus the pure-software core.
+configopts = "--disable-verbs --disable-efa --disable-psm2 --disable-psm3 --disable-opx "
+configopts += "--disable-usnic --disable-sockets --disable-ucx --disable-xpmem "
+configopts += "--enable-cxi=yes "
+configopts += "--with-cassini-headers=$EBROOTCASSINIMINHEADERS "
+configopts += "--with-cxi-uapi-headers=$EBROOTCXIMINDRIVERMINHEADERS "
+configopts += "--with-rocr=$EBROOTROCMMINLLVM "
 
-# Disable deprecated "sockets" provider
-configopts = "--disable-sockets "
-
-# Disable usNIC provider by default as this requires specific osdependencies
-# If you want to enable this provider you need to uncomment the following line:
-# osdependencies.append(('libnl3-devel', 'libnl3-dev'))
-configopts += "--disable-usnic "
-
-# Disable XPMEM to avoid a system library being picked up
-# This leads to rpaths to e.g. /lib64 being added binaries linked against libfabric
-# potentially picking up system libraries instead of EasyBuild provided ones at runtime
-configopts += "--disable-xpmem "
-
-buildopts = "V=1"
+buildopts = 'V=1'
 
 sanity_check_paths = {
-    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] +
-             ['lib/libfabric.%s' % x for x in ['a', SHLIB_EXT]],
-    'dirs': ['include/rdma', 'lib/pkgconfig', 'share']
+    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror', 'lib/libfabric.a', 'lib/libfabric.so'],
+    'dirs': ['include/rdma', 'lib/pkgconfig', 'share'],
 }
 
-sanity_check_commands = ['fi_info']
+sanity_check_commands = [
+    'fi_info',
+    "fi_info -l | grep -i cxi",
+]
 
 moduleclass = 'lib'
Diff against libfabric-2.0.0-GCCcore-14.2.0.eb

easybuild/easyconfigs/l/libfabric/libfabric-2.0.0-GCCcore-14.2.0.eb

diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-2.0.0-GCCcore-14.2.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
index 065ddc5b72..e8cedba683 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-2.0.0-GCCcore-14.2.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
@@ -1,7 +1,10 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libfabric'
-version = '2.0.0'
+version = '1.22.0'
+versionsuffix = '-cxi'
 
 homepage = 'https://ofiwg.github.io/libfabric/'
 description = """
@@ -9,61 +12,65 @@ Libfabric is a core component of OFI. It is the library that defines and exports
 the user-space API of OFI, and is typically the only software that applications
 deal with directly. It works in conjunction with provider libraries, which are
 often integrated directly into libfabric.
+
+This build is HPE's shs-libfabric (SHS 12.0.2) and compiles the HPE Slingshot-11
+`cxi` provider, and enables the ROCr/HSA HMEM backend so GPU-resident
+(ROCm device) buffers can be sent directly over the fabric.
 """
 
-# The psm3 provider (enabled by default) requires an AVX capable system to run
-toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/ofiwg/libfabric/releases/download/v%(version)s']
-sources = [SOURCE_TAR_BZ2]
-patches = ['%(name)s-%(version)s_opx_hfi1_pre_cn5000.patch']
+sources = [
+    {
+        'filename': 'libfabric-1.22.0-shs-12.0.2.tar.gz',
+        'git_config': {
+            'url': 'https://github.com/HewlettPackard',
+            'repo_name': 'shs-libfabric',
+            'tag': 'release/shs-12.0.2',
+            'keep_git_dir': False,
+        },
+    },
+]
 checksums = [
-    {'libfabric-2.0.0.tar.bz2': '1a8e40f1f331d6ee2e9ace518c0088a78c8a838968f8601c2b77fd012a7bf0f5'},
-    {'%(name)s-%(version)s_opx_hfi1_pre_cn5000.patch':
-        '9b97d7f84512ad7fe3bfc878f5fed80fcfa45ec904e9295246ebda99d85c3113'},
+    None,  # .tgz not reproducible
 ]
 
 builddependencies = [
-    ('binutils', '2.42'),
-    ('pkgconf', '2.3.0'),
-    ('Autotools', '20240712'),
+    ('pkgconf', '2.3.0', '', ('GCCcore', '14.2.0')),
+    ('Autotools', '20240712', '', ('GCCcore', '14.2.0')),
 ]
-
 dependencies = [
-    ('numactl', '2.0.19'),
-    # PSM2 dependency for libfabric should be used on Omnipath systems,
-    # but that PSM2 has CUDA as dependency so it's commented out by default;
-    # PSM2 only compiles on x86_64
-    # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
+    ('numactl', '2.0.19', '', ('GCCcore', '14.2.0')),
+    ('libcxi', '1.0.2', '', ('GCCcore', '14.2.0')),
+    ('cassini-headers', '1.1.1', '', SYSTEM),
+    ('cxi-driver-headers', '1.0.0', '', SYSTEM),
 ]
 
-osdependencies = [OS_PKG_IBVERBS_DEV]
+preconfigopts = "./autogen.sh && "
 
-# Regenerate build files to pick up psm3-axv-config patch
-preconfigopts = "./autogen.sh &&"
+# configure auto-detects providers from the host and
+# would otherwise build verbs/efa/psm2 against /usr/lib64 and bake them into
+# libfabric.so's NEEDED list (a host pickup, and fatal at runtime on systems where
+# host libefa/libpsm2 are ABI-incompatible or absent). Disable every provider
+# that links an external library; keep only cxi plus the pure-software core.
+configopts = "--disable-verbs --disable-efa --disable-psm2 --disable-psm3 --disable-opx "
+configopts += "--disable-usnic --disable-sockets --disable-ucx --disable-xpmem "
+configopts += "--enable-cxi=yes "
+configopts += "--with-cassini-headers=$EBROOTCASSINIMINHEADERS "
+configopts += "--with-cxi-uapi-headers=$EBROOTCXIMINDRIVERMINHEADERS "
+configopts += "--with-rocr=$EBROOTROCMMINLLVM "
 
-# Disable deprecated "sockets" provider
-configopts = "--disable-sockets "
-
-# Disable usNIC provider by default as this requires specific osdependencies
-# If you want to enable this provider you need to uncomment the following line:
-# osdependencies.append(('libnl3-devel', 'libnl3-dev'))
-configopts += "--disable-usnic "
-
-# Disable XPMEM to avoid a system library being picked up
-# This leads to rpaths to e.g. /lib64 being added binaries linked against libfabric
-# potentially picking up system libraries instead of EasyBuild provided ones at runtime
-configopts += "--disable-xpmem "
-
-buildopts = "V=1"
+buildopts = 'V=1'
 
 sanity_check_paths = {
-    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] +
-             ['lib/libfabric.%s' % x for x in ['a', SHLIB_EXT]],
-    'dirs': ['include/rdma', 'lib/pkgconfig', 'share']
+    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror', 'lib/libfabric.a', 'lib/libfabric.so'],
+    'dirs': ['include/rdma', 'lib/pkgconfig', 'share'],
 }
 
-sanity_check_commands = ['fi_info']
+sanity_check_commands = [
+    'fi_info',
+    "fi_info -l | grep -i cxi",
+]
 
 moduleclass = 'lib'

Updated software PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb

Diff against PMIx-6.1.0-GCCcore-15.2.0.eb

easybuild/easyconfigs/p/PMIx/PMIx-6.1.0-GCCcore-15.2.0.eb

diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-6.1.0-GCCcore-15.2.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 6c5c09a11b..9dc3ffb719 100644
--- a/easybuild/easyconfigs/p/PMIx/PMIx-6.1.0-GCCcore-15.2.0.eb
+++ b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,43 +1,39 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PMIx'
-version = '6.1.0'
+version = '5.0.6'
 
 homepage = 'https://pmix.org/'
-description = """Process Management for Exascale Environments
-PMI Exascale (PMIx) represents an attempt to
-provide an extended version of the PMI standard specifically designed
-to support clusters up to and including exascale sizes. The overall
-objective of the project is not to branch the existing pseudo-standard
-definitions - in fact, PMIx fully supports both of the existing PMI-1
-and PMI-2 APIs - but rather to (a) augment and extend those APIs to
-eliminate some current restrictions that impact scalability, and (b)
-provide a reference implementation of the PMI-server that demonstrates
-the desired level of scalability.
-"""
-
-toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
+description = """Process Management for Exascale Environments.
+PMI Exascale (PMIx) extends the PMI standard to support clusters up to and
+including exascale sizes, while remaining fully compatible with the existing
+PMI-1 and PMI-2 APIs. It also provides a reference implementation of the
+PMI-server."""
+
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
-sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['bb9021c8e100a376f5070ecca727f83a29b5f652dfe381793b88daa79a3b98a2']
+source_urls = ['https://github.com/openpmix/openpmix/releases/download/v5.0.6']
+sources = ['pmix-5.0.6.tar.bz2']
+checksums = ['ea51baa0fdee688d54bc9f2c11937671381f00de966233eec6fd88807fb46f83']
 
 builddependencies = [
-    ('binutils', '2.45'),
-    ('Perl', '5.42.0'),
-    ('pkgconf', '2.5.1'),
+    ('Perl', '5.40.0'),
+    ('pkgconf', '2.3.0'),
 ]
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('zlib', '2.3.2'),
-    ('hwloc', '2.13.0'),
+    ('zlib', '1.3.1'),
+    ('hwloc-ROCm', '2.11.2'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
-configopts += ' --with-hwloc=$EBROOTHWLOC'
-configopts += ' --enable-pmix-binaries'
+configopts = '--with-libevent=$EBROOTLIBEVENT  '
+configopts += '--with-zlib=$EBROOTZLIB '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--enable-pmix-binaries '
 
 buildopts = 'V=1'
 
Diff against PMIx-5.0.8-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PMIx/PMIx-5.0.8-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-5.0.8-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 51dc7b14d7..9dc3ffb719 100644
--- a/easybuild/easyconfigs/p/PMIx/PMIx-5.0.8-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,43 +1,39 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PMIx'
-version = '5.0.8'
+version = '5.0.6'
 
 homepage = 'https://pmix.org/'
-description = """Process Management for Exascale Environments
-PMI Exascale (PMIx) represents an attempt to
-provide an extended version of the PMI standard specifically designed
-to support clusters up to and including exascale sizes. The overall
-objective of the project is not to branch the existing pseudo-standard
-definitions - in fact, PMIx fully supports both of the existing PMI-1
-and PMI-2 APIs - but rather to (a) augment and extend those APIs to
-eliminate some current restrictions that impact scalability, and (b)
-provide a reference implementation of the PMI-server that demonstrates
-the desired level of scalability.
-"""
-
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+description = """Process Management for Exascale Environments.
+PMI Exascale (PMIx) extends the PMI standard to support clusters up to and
+including exascale sizes, while remaining fully compatible with the existing
+PMI-1 and PMI-2 APIs. It also provides a reference implementation of the
+PMI-server."""
+
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
-sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['bf5f0a341d0ec7f465627a7570f4dcda3b931bc859256428a35f6c72f13462d0']
+source_urls = ['https://github.com/openpmix/openpmix/releases/download/v5.0.6']
+sources = ['pmix-5.0.6.tar.bz2']
+checksums = ['ea51baa0fdee688d54bc9f2c11937671381f00de966233eec6fd88807fb46f83']
 
 builddependencies = [
-    ('binutils', '2.44'),
-    ('Perl', '5.40.2'),
-    ('pkgconf', '2.4.3'),
+    ('Perl', '5.40.0'),
+    ('pkgconf', '2.3.0'),
 ]
 
 dependencies = [
     ('libevent', '2.1.12'),
     ('zlib', '1.3.1'),
-    ('hwloc', '2.12.1'),
+    ('hwloc-ROCm', '2.11.2'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
-configopts += ' --with-hwloc=$EBROOTHWLOC'
-configopts += ' --enable-pmix-binaries'
+configopts = '--with-libevent=$EBROOTLIBEVENT  '
+configopts += '--with-zlib=$EBROOTZLIB '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--enable-pmix-binaries '
 
 buildopts = 'V=1'
 
Diff against PMIx-6.0.0-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PMIx/PMIx-6.0.0-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-6.0.0-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 15e3705e89..9dc3ffb719 100644
--- a/easybuild/easyconfigs/p/PMIx/PMIx-6.0.0-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,43 +1,39 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PMIx'
-version = '6.0.0'
+version = '5.0.6'
 
 homepage = 'https://pmix.org/'
-description = """Process Management for Exascale Environments
-PMI Exascale (PMIx) represents an attempt to
-provide an extended version of the PMI standard specifically designed
-to support clusters up to and including exascale sizes. The overall
-objective of the project is not to branch the existing pseudo-standard
-definitions - in fact, PMIx fully supports both of the existing PMI-1
-and PMI-2 APIs - but rather to (a) augment and extend those APIs to
-eliminate some current restrictions that impact scalability, and (b)
-provide a reference implementation of the PMI-server that demonstrates
-the desired level of scalability.
-"""
-
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+description = """Process Management for Exascale Environments.
+PMI Exascale (PMIx) extends the PMI standard to support clusters up to and
+including exascale sizes, while remaining fully compatible with the existing
+PMI-1 and PMI-2 APIs. It also provides a reference implementation of the
+PMI-server."""
+
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
-sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['bfe969966d0ce82e032739cac286239bd5ad74a831d7adae013284919f125318']
+source_urls = ['https://github.com/openpmix/openpmix/releases/download/v5.0.6']
+sources = ['pmix-5.0.6.tar.bz2']
+checksums = ['ea51baa0fdee688d54bc9f2c11937671381f00de966233eec6fd88807fb46f83']
 
 builddependencies = [
-    ('binutils', '2.44'),
-    ('Perl', '5.40.2'),
-    ('pkgconf', '2.4.3'),
+    ('Perl', '5.40.0'),
+    ('pkgconf', '2.3.0'),
 ]
 
 dependencies = [
     ('libevent', '2.1.12'),
     ('zlib', '1.3.1'),
-    ('hwloc', '2.12.1'),
+    ('hwloc-ROCm', '2.11.2'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
-configopts += ' --with-hwloc=$EBROOTHWLOC'
-configopts += ' --enable-pmix-binaries'
+configopts = '--with-libevent=$EBROOTLIBEVENT  '
+configopts += '--with-zlib=$EBROOTZLIB '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--enable-pmix-binaries '
 
 buildopts = 'V=1'
 

Updated software PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb

Diff against PRRTE-4.1.0-GCCcore-15.2.0.eb

easybuild/easyconfigs/p/PRRTE/PRRTE-4.1.0-GCCcore-15.2.0.eb

diff --git a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.1.0-GCCcore-15.2.0.eb b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index d35338ca0d..faae7153b6 100644
--- a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.1.0-GCCcore-15.2.0.eb
+++ b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,31 +1,29 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PRRTE'
-version = '4.1.0'
+version = '3.0.8'
 
 homepage = 'https://docs.prrte.org/'
 description = """PRRTE is the PMIx Reference RunTime Environment"""
 
-toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/openpmix/prrte/releases/download/v%(version)s']
-sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['285ad62b670075708b9fcfe14c54baa599733bc274d10502a82e8eebba0b7c70']
-
-builddependencies = [
-    ('binutils', '2.45'),
-    ('pkgconf', '2.5.1'),
-]
+source_urls = ['https://github.com/openpmix/prrte/releases/download/v3.0.8']
+sources = ['prrte-3.0.8.tar.bz2']
+checksums = ['e798192fa0ab38172818a109a6c89bcc37e4b1123ca150d8c115dee5231750de']
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('hwloc', '2.13.0'),
-    ('PMIx', '6.1.0'),
+    ('hwloc-ROCm', '2.11.2'),
+    ('PMIx', '5.0.6'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT'
-configopts += ' --with-hwloc=$EBROOTHWLOC --with-pmix=$EBROOTPMIX'
+configopts = '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--with-pmix=$EBROOTPMIX '
 
 buildopts = 'V=1'
 
Diff against PRRTE-3.0.11-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.11-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.11-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 0eb711cd4e..faae7153b6 100644
--- a/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.11-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,31 +1,29 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PRRTE'
-version = '3.0.11'
+version = '3.0.8'
 
 homepage = 'https://docs.prrte.org/'
 description = """PRRTE is the PMIx Reference RunTime Environment"""
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/openpmix/prrte/releases/download/v%(version)s']
-sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['37af5a82d333a54c0bac358f06c194427b7dbfa7b8b85f2ddd1145acf71cfdd4']
-
-builddependencies = [
-    ('binutils', '2.44'),
-    ('pkgconf', '2.4.3'),
-]
+source_urls = ['https://github.com/openpmix/prrte/releases/download/v3.0.8']
+sources = ['prrte-3.0.8.tar.bz2']
+checksums = ['e798192fa0ab38172818a109a6c89bcc37e4b1123ca150d8c115dee5231750de']
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('hwloc', '2.12.1'),
-    ('PMIx', '5.0.8'),
+    ('hwloc-ROCm', '2.11.2'),
+    ('PMIx', '5.0.6'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT'
-configopts += ' --with-hwloc=$EBROOTHWLOC --with-pmix=$EBROOTPMIX'
+configopts = '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--with-pmix=$EBROOTPMIX '
 
 buildopts = 'V=1'
 
Diff against PRRTE-4.0.0-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PRRTE/PRRTE-4.0.0-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.0.0-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 4206a4aeab..faae7153b6 100644
--- a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.0.0-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,31 +1,29 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PRRTE'
-version = '4.0.0'
+version = '3.0.8'
 
 homepage = 'https://docs.prrte.org/'
 description = """PRRTE is the PMIx Reference RunTime Environment"""
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/openpmix/prrte/releases/download/v%(version)s']
-sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['3c2ec961e0ba0c99128c7bf3545f4789d55a85a70ce958e868ae5e3db6ed4de4']
-
-builddependencies = [
-    ('binutils', '2.44'),
-    ('pkgconf', '2.4.3'),
-]
+source_urls = ['https://github.com/openpmix/prrte/releases/download/v3.0.8']
+sources = ['prrte-3.0.8.tar.bz2']
+checksums = ['e798192fa0ab38172818a109a6c89bcc37e4b1123ca150d8c115dee5231750de']
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('hwloc', '2.12.1'),
-    ('PMIx', '6.0.0'),
+    ('hwloc-ROCm', '2.11.2'),
+    ('PMIx', '5.0.6'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT'
-configopts += ' --with-hwloc=$EBROOTHWLOC --with-pmix=$EBROOTPMIX'
+configopts = '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--with-pmix=$EBROOTPMIX '
 
 buildopts = 'V=1'
 

@github-actions

Copy link
Copy Markdown

Updated software libconfig-1.8.1-GCCcore-14.2.0.eb

Diff against libconfig-1.8.2-GCCcore-14.3.0.eb

easybuild/easyconfigs/l/libconfig/libconfig-1.8.2-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/l/libconfig/libconfig-1.8.2-GCCcore-14.3.0.eb b/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-14.2.0.eb
index e27761edf6..a202ace713 100644
--- a/easybuild/easyconfigs/l/libconfig/libconfig-1.8.2-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-14.2.0.eb
@@ -1,28 +1,28 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libconfig'
-version = '1.8.2'
+version = '1.8.1'
 
 homepage = 'https://hyperrealm.github.io/libconfig'
 description = "Libconfig is a simple library for processing structured configuration files"
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
 source_urls = ['https://hyperrealm.github.io/libconfig/dist/']
 sources = [SOURCE_TAR_GZ]
-checksums = [
-    {'libconfig-1.8.2.tar.gz': 'e59ffb902dd5731d5d4e4fb81d3b989697615feab72dfd7c30618167b91a42ee'},
-]
+checksums = [{'libconfig-1.8.1.tar.gz': 'c73ee3d914ec68c99b61e864832931e9a7112eeabfb449dad217fd83e385cbdf'}]
 
 builddependencies = [
-    ('binutils', '2.44'),
+    ('binutils', '2.42'),
     ('Bison', '3.8.2'),
     ('flex', '2.6.4'),
 ]
 
 sanity_check_paths = {
     'files': ['include/libconfig.h', 'include/libconfig.h++', 'lib/libconfig.a', 'lib/libconfig++.a',
-              'lib/libconfig.%s' % SHLIB_EXT, 'lib/libconfig++.%s' % SHLIB_EXT],
+              'lib/libconfig.so', 'lib/libconfig++.so'],
     'dirs': ['lib/pkgconfig'],
 }
 
Diff against libconfig-1.8.1-GCCcore-13.3.0.eb

easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-13.3.0.eb

diff --git a/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-14.2.0.eb
index 774ece65d3..a202ace713 100644
--- a/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-13.3.0.eb
+++ b/easybuild/easyconfigs/l/libconfig/libconfig-1.8.1-GCCcore-14.2.0.eb
@@ -1,3 +1,5 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libconfig'
@@ -6,16 +8,11 @@ version = '1.8.1'
 homepage = 'https://hyperrealm.github.io/libconfig'
 description = "Libconfig is a simple library for processing structured configuration files"
 
-toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
 source_urls = ['https://hyperrealm.github.io/libconfig/dist/']
 sources = [SOURCE_TAR_GZ]
-patches = [('libconfig-1.8.1_missing_pathbuf_header.patch', 1)]
-checksums = [
-    {'libconfig-1.8.1.tar.gz': '87c6f382994b245f9213be34a2bf19c8ee7d033d7abaa51e88fbb7bad79e2dc6'},
-    {'libconfig-1.8.1_missing_pathbuf_header.patch':
-     'f73ce5776d89e92c6ac990ad0f68ea89a1ce13f007b539b6ac276edecacaa5aa'},
-]
+checksums = [{'libconfig-1.8.1.tar.gz': 'c73ee3d914ec68c99b61e864832931e9a7112eeabfb449dad217fd83e385cbdf'}]
 
 builddependencies = [
     ('binutils', '2.42'),
@@ -25,7 +22,7 @@ builddependencies = [
 
 sanity_check_paths = {
     'files': ['include/libconfig.h', 'include/libconfig.h++', 'lib/libconfig.a', 'lib/libconfig++.a',
-              'lib/libconfig.%s' % SHLIB_EXT, 'lib/libconfig++.%s' % SHLIB_EXT],
+              'lib/libconfig.so', 'lib/libconfig++.so'],
     'dirs': ['lib/pkgconfig'],
 }
 

Updated software libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb

Diff against libfabric-2.5.0-GCCcore-15.2.0.eb

easybuild/easyconfigs/l/libfabric/libfabric-2.5.0-GCCcore-15.2.0.eb

diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-2.5.0-GCCcore-15.2.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
index 2bf3eae000..e8cedba683 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-2.5.0-GCCcore-15.2.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
@@ -1,7 +1,10 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libfabric'
-version = '2.5.0'
+version = '1.22.0'
+versionsuffix = '-cxi'
 
 homepage = 'https://ofiwg.github.io/libfabric/'
 description = """
@@ -9,56 +12,65 @@ Libfabric is a core component of OFI. It is the library that defines and exports
 the user-space API of OFI, and is typically the only software that applications
 deal with directly. It works in conjunction with provider libraries, which are
 often integrated directly into libfabric.
+
+This build is HPE's shs-libfabric (SHS 12.0.2) and compiles the HPE Slingshot-11
+`cxi` provider, and enables the ROCr/HSA HMEM backend so GPU-resident
+(ROCm device) buffers can be sent directly over the fabric.
 """
 
-# The psm3 provider (enabled by default) requires an AVX capable system to run
-toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/ofiwg/libfabric/releases/download/v%(version)s']
-sources = [SOURCE_TAR_BZ2]
-checksums = ['276019edca708dc0569cf3064a412e395ba7b1883299781caed120594f850995']
+sources = [
+    {
+        'filename': 'libfabric-1.22.0-shs-12.0.2.tar.gz',
+        'git_config': {
+            'url': 'https://github.com/HewlettPackard',
+            'repo_name': 'shs-libfabric',
+            'tag': 'release/shs-12.0.2',
+            'keep_git_dir': False,
+        },
+    },
+]
+checksums = [
+    None,  # .tgz not reproducible
+]
 
 builddependencies = [
-    ('binutils', '2.45'),
-    ('pkgconf', '2.5.1'),
-    ('Autotools', '20250626'),
+    ('pkgconf', '2.3.0', '', ('GCCcore', '14.2.0')),
+    ('Autotools', '20240712', '', ('GCCcore', '14.2.0')),
 ]
-
 dependencies = [
-    ('numactl', '2.0.19'),
-    # PSM2 dependency for libfabric should be used on Omnipath systems,
-    # but that PSM2 has CUDA as dependency so it's commented out by default;
-    # PSM2 only compiles on x86_64
-    # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
+    ('numactl', '2.0.19', '', ('GCCcore', '14.2.0')),
+    ('libcxi', '1.0.2', '', ('GCCcore', '14.2.0')),
+    ('cassini-headers', '1.1.1', '', SYSTEM),
+    ('cxi-driver-headers', '1.0.0', '', SYSTEM),
 ]
 
-osdependencies = [OS_PKG_IBVERBS_DEV]
+preconfigopts = "./autogen.sh && "
 
-# Regenerate build files to pick up psm3-axv-config patch
-preconfigopts = "./autogen.sh &&"
+# configure auto-detects providers from the host and
+# would otherwise build verbs/efa/psm2 against /usr/lib64 and bake them into
+# libfabric.so's NEEDED list (a host pickup, and fatal at runtime on systems where
+# host libefa/libpsm2 are ABI-incompatible or absent). Disable every provider
+# that links an external library; keep only cxi plus the pure-software core.
+configopts = "--disable-verbs --disable-efa --disable-psm2 --disable-psm3 --disable-opx "
+configopts += "--disable-usnic --disable-sockets --disable-ucx --disable-xpmem "
+configopts += "--enable-cxi=yes "
+configopts += "--with-cassini-headers=$EBROOTCASSINIMINHEADERS "
+configopts += "--with-cxi-uapi-headers=$EBROOTCXIMINDRIVERMINHEADERS "
+configopts += "--with-rocr=$EBROOTROCMMINLLVM "
 
-# Disable deprecated "sockets" provider
-configopts = "--disable-sockets "
-
-# Disable usNIC provider by default as this requires specific osdependencies
-# If you want to enable this provider you need to uncomment the following line:
-# osdependencies.append(('libnl3-devel', 'libnl3-dev'))
-configopts += "--disable-usnic "
-
-# Disable XPMEM to avoid a system library being picked up
-# This leads to rpaths to e.g. /lib64 being added binaries linked against libfabric
-# potentially picking up system libraries instead of EasyBuild provided ones at runtime
-configopts += "--disable-xpmem "
-
-buildopts = "V=1"
+buildopts = 'V=1'
 
 sanity_check_paths = {
-    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] +
-             ['lib/libfabric.%s' % x for x in ['a', SHLIB_EXT]],
-    'dirs': ['include/rdma', 'lib/pkgconfig', 'share']
+    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror', 'lib/libfabric.a', 'lib/libfabric.so'],
+    'dirs': ['include/rdma', 'lib/pkgconfig', 'share'],
 }
 
-sanity_check_commands = ['fi_info']
+sanity_check_commands = [
+    'fi_info',
+    "fi_info -l | grep -i cxi",
+]
 
 moduleclass = 'lib'
Diff against libfabric-2.1.0-GCCcore-14.3.0.eb

easybuild/easyconfigs/l/libfabric/libfabric-2.1.0-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-2.1.0-GCCcore-14.3.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
index a7d8da33ff..e8cedba683 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-2.1.0-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
@@ -1,7 +1,10 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libfabric'
-version = '2.1.0'
+version = '1.22.0'
+versionsuffix = '-cxi'
 
 homepage = 'https://ofiwg.github.io/libfabric/'
 description = """
@@ -9,58 +12,65 @@ Libfabric is a core component of OFI. It is the library that defines and exports
 the user-space API of OFI, and is typically the only software that applications
 deal with directly. It works in conjunction with provider libraries, which are
 often integrated directly into libfabric.
+
+This build is HPE's shs-libfabric (SHS 12.0.2) and compiles the HPE Slingshot-11
+`cxi` provider, and enables the ROCr/HSA HMEM backend so GPU-resident
+(ROCm device) buffers can be sent directly over the fabric.
 """
 
-# The psm3 provider (enabled by default) requires an AVX capable system to run
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/ofiwg/libfabric/releases/download/v%(version)s']
-sources = [SOURCE_TAR_BZ2]
+sources = [
+    {
+        'filename': 'libfabric-1.22.0-shs-12.0.2.tar.gz',
+        'git_config': {
+            'url': 'https://github.com/HewlettPackard',
+            'repo_name': 'shs-libfabric',
+            'tag': 'release/shs-12.0.2',
+            'keep_git_dir': False,
+        },
+    },
+]
 checksums = [
-    {'libfabric-2.1.0.tar.bz2': '97df312779e2d937246d2f46385b700e0958ed796d6fed7aae77e2d18923e19f'}
+    None,  # .tgz not reproducible
 ]
 
 builddependencies = [
-    ('binutils', '2.44'),
-    ('pkgconf', '2.4.3'),
-    ('Autotools', '20250527'),
+    ('pkgconf', '2.3.0', '', ('GCCcore', '14.2.0')),
+    ('Autotools', '20240712', '', ('GCCcore', '14.2.0')),
 ]
-
 dependencies = [
-    ('numactl', '2.0.19'),
-    # PSM2 dependency for libfabric should be used on Omnipath systems,
-    # but that PSM2 has CUDA as dependency so it's commented out by default;
-    # PSM2 only compiles on x86_64
-    # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
+    ('numactl', '2.0.19', '', ('GCCcore', '14.2.0')),
+    ('libcxi', '1.0.2', '', ('GCCcore', '14.2.0')),
+    ('cassini-headers', '1.1.1', '', SYSTEM),
+    ('cxi-driver-headers', '1.0.0', '', SYSTEM),
 ]
 
-osdependencies = [OS_PKG_IBVERBS_DEV]
+preconfigopts = "./autogen.sh && "
 
-# Regenerate build files to pick up psm3-axv-config patch
-preconfigopts = "./autogen.sh &&"
+# configure auto-detects providers from the host and
+# would otherwise build verbs/efa/psm2 against /usr/lib64 and bake them into
+# libfabric.so's NEEDED list (a host pickup, and fatal at runtime on systems where
+# host libefa/libpsm2 are ABI-incompatible or absent). Disable every provider
+# that links an external library; keep only cxi plus the pure-software core.
+configopts = "--disable-verbs --disable-efa --disable-psm2 --disable-psm3 --disable-opx "
+configopts += "--disable-usnic --disable-sockets --disable-ucx --disable-xpmem "
+configopts += "--enable-cxi=yes "
+configopts += "--with-cassini-headers=$EBROOTCASSINIMINHEADERS "
+configopts += "--with-cxi-uapi-headers=$EBROOTCXIMINDRIVERMINHEADERS "
+configopts += "--with-rocr=$EBROOTROCMMINLLVM "
 
-# Disable deprecated "sockets" provider
-configopts = "--disable-sockets "
-
-# Disable usNIC provider by default as this requires specific osdependencies
-# If you want to enable this provider you need to uncomment the following line:
-# osdependencies.append(('libnl3-devel', 'libnl3-dev'))
-configopts += "--disable-usnic "
-
-# Disable XPMEM to avoid a system library being picked up
-# This leads to rpaths to e.g. /lib64 being added binaries linked against libfabric
-# potentially picking up system libraries instead of EasyBuild provided ones at runtime
-configopts += "--disable-xpmem "
-
-buildopts = "V=1"
+buildopts = 'V=1'
 
 sanity_check_paths = {
-    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] +
-             ['lib/libfabric.%s' % x for x in ['a', SHLIB_EXT]],
-    'dirs': ['include/rdma', 'lib/pkgconfig', 'share']
+    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror', 'lib/libfabric.a', 'lib/libfabric.so'],
+    'dirs': ['include/rdma', 'lib/pkgconfig', 'share'],
 }
 
-sanity_check_commands = ['fi_info']
+sanity_check_commands = [
+    'fi_info',
+    "fi_info -l | grep -i cxi",
+]
 
 moduleclass = 'lib'
Diff against libfabric-2.0.0-GCCcore-14.2.0.eb

easybuild/easyconfigs/l/libfabric/libfabric-2.0.0-GCCcore-14.2.0.eb

diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-2.0.0-GCCcore-14.2.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
index 065ddc5b72..e8cedba683 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-2.0.0-GCCcore-14.2.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1-cxi.eb
@@ -1,7 +1,10 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'libfabric'
-version = '2.0.0'
+version = '1.22.0'
+versionsuffix = '-cxi'
 
 homepage = 'https://ofiwg.github.io/libfabric/'
 description = """
@@ -9,61 +12,65 @@ Libfabric is a core component of OFI. It is the library that defines and exports
 the user-space API of OFI, and is typically the only software that applications
 deal with directly. It works in conjunction with provider libraries, which are
 often integrated directly into libfabric.
+
+This build is HPE's shs-libfabric (SHS 12.0.2) and compiles the HPE Slingshot-11
+`cxi` provider, and enables the ROCr/HSA HMEM backend so GPU-resident
+(ROCm device) buffers can be sent directly over the fabric.
 """
 
-# The psm3 provider (enabled by default) requires an AVX capable system to run
-toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/ofiwg/libfabric/releases/download/v%(version)s']
-sources = [SOURCE_TAR_BZ2]
-patches = ['%(name)s-%(version)s_opx_hfi1_pre_cn5000.patch']
+sources = [
+    {
+        'filename': 'libfabric-1.22.0-shs-12.0.2.tar.gz',
+        'git_config': {
+            'url': 'https://github.com/HewlettPackard',
+            'repo_name': 'shs-libfabric',
+            'tag': 'release/shs-12.0.2',
+            'keep_git_dir': False,
+        },
+    },
+]
 checksums = [
-    {'libfabric-2.0.0.tar.bz2': '1a8e40f1f331d6ee2e9ace518c0088a78c8a838968f8601c2b77fd012a7bf0f5'},
-    {'%(name)s-%(version)s_opx_hfi1_pre_cn5000.patch':
-        '9b97d7f84512ad7fe3bfc878f5fed80fcfa45ec904e9295246ebda99d85c3113'},
+    None,  # .tgz not reproducible
 ]
 
 builddependencies = [
-    ('binutils', '2.42'),
-    ('pkgconf', '2.3.0'),
-    ('Autotools', '20240712'),
+    ('pkgconf', '2.3.0', '', ('GCCcore', '14.2.0')),
+    ('Autotools', '20240712', '', ('GCCcore', '14.2.0')),
 ]
-
 dependencies = [
-    ('numactl', '2.0.19'),
-    # PSM2 dependency for libfabric should be used on Omnipath systems,
-    # but that PSM2 has CUDA as dependency so it's commented out by default;
-    # PSM2 only compiles on x86_64
-    # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
+    ('numactl', '2.0.19', '', ('GCCcore', '14.2.0')),
+    ('libcxi', '1.0.2', '', ('GCCcore', '14.2.0')),
+    ('cassini-headers', '1.1.1', '', SYSTEM),
+    ('cxi-driver-headers', '1.0.0', '', SYSTEM),
 ]
 
-osdependencies = [OS_PKG_IBVERBS_DEV]
+preconfigopts = "./autogen.sh && "
 
-# Regenerate build files to pick up psm3-axv-config patch
-preconfigopts = "./autogen.sh &&"
+# configure auto-detects providers from the host and
+# would otherwise build verbs/efa/psm2 against /usr/lib64 and bake them into
+# libfabric.so's NEEDED list (a host pickup, and fatal at runtime on systems where
+# host libefa/libpsm2 are ABI-incompatible or absent). Disable every provider
+# that links an external library; keep only cxi plus the pure-software core.
+configopts = "--disable-verbs --disable-efa --disable-psm2 --disable-psm3 --disable-opx "
+configopts += "--disable-usnic --disable-sockets --disable-ucx --disable-xpmem "
+configopts += "--enable-cxi=yes "
+configopts += "--with-cassini-headers=$EBROOTCASSINIMINHEADERS "
+configopts += "--with-cxi-uapi-headers=$EBROOTCXIMINDRIVERMINHEADERS "
+configopts += "--with-rocr=$EBROOTROCMMINLLVM "
 
-# Disable deprecated "sockets" provider
-configopts = "--disable-sockets "
-
-# Disable usNIC provider by default as this requires specific osdependencies
-# If you want to enable this provider you need to uncomment the following line:
-# osdependencies.append(('libnl3-devel', 'libnl3-dev'))
-configopts += "--disable-usnic "
-
-# Disable XPMEM to avoid a system library being picked up
-# This leads to rpaths to e.g. /lib64 being added binaries linked against libfabric
-# potentially picking up system libraries instead of EasyBuild provided ones at runtime
-configopts += "--disable-xpmem "
-
-buildopts = "V=1"
+buildopts = 'V=1'
 
 sanity_check_paths = {
-    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] +
-             ['lib/libfabric.%s' % x for x in ['a', SHLIB_EXT]],
-    'dirs': ['include/rdma', 'lib/pkgconfig', 'share']
+    'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror', 'lib/libfabric.a', 'lib/libfabric.so'],
+    'dirs': ['include/rdma', 'lib/pkgconfig', 'share'],
 }
 
-sanity_check_commands = ['fi_info']
+sanity_check_commands = [
+    'fi_info',
+    "fi_info -l | grep -i cxi",
+]
 
 moduleclass = 'lib'

Updated software PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb

Diff against PMIx-6.1.0-GCCcore-15.2.0.eb

easybuild/easyconfigs/p/PMIx/PMIx-6.1.0-GCCcore-15.2.0.eb

diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-6.1.0-GCCcore-15.2.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 6c5c09a11b..9dc3ffb719 100644
--- a/easybuild/easyconfigs/p/PMIx/PMIx-6.1.0-GCCcore-15.2.0.eb
+++ b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,43 +1,39 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PMIx'
-version = '6.1.0'
+version = '5.0.6'
 
 homepage = 'https://pmix.org/'
-description = """Process Management for Exascale Environments
-PMI Exascale (PMIx) represents an attempt to
-provide an extended version of the PMI standard specifically designed
-to support clusters up to and including exascale sizes. The overall
-objective of the project is not to branch the existing pseudo-standard
-definitions - in fact, PMIx fully supports both of the existing PMI-1
-and PMI-2 APIs - but rather to (a) augment and extend those APIs to
-eliminate some current restrictions that impact scalability, and (b)
-provide a reference implementation of the PMI-server that demonstrates
-the desired level of scalability.
-"""
-
-toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
+description = """Process Management for Exascale Environments.
+PMI Exascale (PMIx) extends the PMI standard to support clusters up to and
+including exascale sizes, while remaining fully compatible with the existing
+PMI-1 and PMI-2 APIs. It also provides a reference implementation of the
+PMI-server."""
+
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
-sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['bb9021c8e100a376f5070ecca727f83a29b5f652dfe381793b88daa79a3b98a2']
+source_urls = ['https://github.com/openpmix/openpmix/releases/download/v5.0.6']
+sources = ['pmix-5.0.6.tar.bz2']
+checksums = ['ea51baa0fdee688d54bc9f2c11937671381f00de966233eec6fd88807fb46f83']
 
 builddependencies = [
-    ('binutils', '2.45'),
-    ('Perl', '5.42.0'),
-    ('pkgconf', '2.5.1'),
+    ('Perl', '5.40.0'),
+    ('pkgconf', '2.3.0'),
 ]
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('zlib', '2.3.2'),
-    ('hwloc', '2.13.0'),
+    ('zlib', '1.3.1'),
+    ('hwloc-ROCm', '2.11.2'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
-configopts += ' --with-hwloc=$EBROOTHWLOC'
-configopts += ' --enable-pmix-binaries'
+configopts = '--with-libevent=$EBROOTLIBEVENT  '
+configopts += '--with-zlib=$EBROOTZLIB '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--enable-pmix-binaries '
 
 buildopts = 'V=1'
 
Diff against PMIx-5.0.8-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PMIx/PMIx-5.0.8-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-5.0.8-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 51dc7b14d7..9dc3ffb719 100644
--- a/easybuild/easyconfigs/p/PMIx/PMIx-5.0.8-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,43 +1,39 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PMIx'
-version = '5.0.8'
+version = '5.0.6'
 
 homepage = 'https://pmix.org/'
-description = """Process Management for Exascale Environments
-PMI Exascale (PMIx) represents an attempt to
-provide an extended version of the PMI standard specifically designed
-to support clusters up to and including exascale sizes. The overall
-objective of the project is not to branch the existing pseudo-standard
-definitions - in fact, PMIx fully supports both of the existing PMI-1
-and PMI-2 APIs - but rather to (a) augment and extend those APIs to
-eliminate some current restrictions that impact scalability, and (b)
-provide a reference implementation of the PMI-server that demonstrates
-the desired level of scalability.
-"""
-
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+description = """Process Management for Exascale Environments.
+PMI Exascale (PMIx) extends the PMI standard to support clusters up to and
+including exascale sizes, while remaining fully compatible with the existing
+PMI-1 and PMI-2 APIs. It also provides a reference implementation of the
+PMI-server."""
+
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
-sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['bf5f0a341d0ec7f465627a7570f4dcda3b931bc859256428a35f6c72f13462d0']
+source_urls = ['https://github.com/openpmix/openpmix/releases/download/v5.0.6']
+sources = ['pmix-5.0.6.tar.bz2']
+checksums = ['ea51baa0fdee688d54bc9f2c11937671381f00de966233eec6fd88807fb46f83']
 
 builddependencies = [
-    ('binutils', '2.44'),
-    ('Perl', '5.40.2'),
-    ('pkgconf', '2.4.3'),
+    ('Perl', '5.40.0'),
+    ('pkgconf', '2.3.0'),
 ]
 
 dependencies = [
     ('libevent', '2.1.12'),
     ('zlib', '1.3.1'),
-    ('hwloc', '2.12.1'),
+    ('hwloc-ROCm', '2.11.2'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
-configopts += ' --with-hwloc=$EBROOTHWLOC'
-configopts += ' --enable-pmix-binaries'
+configopts = '--with-libevent=$EBROOTLIBEVENT  '
+configopts += '--with-zlib=$EBROOTZLIB '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--enable-pmix-binaries '
 
 buildopts = 'V=1'
 
Diff against PMIx-6.0.0-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PMIx/PMIx-6.0.0-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-6.0.0-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 15e3705e89..9dc3ffb719 100644
--- a/easybuild/easyconfigs/p/PMIx/PMIx-6.0.0-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PMIx/PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,43 +1,39 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PMIx'
-version = '6.0.0'
+version = '5.0.6'
 
 homepage = 'https://pmix.org/'
-description = """Process Management for Exascale Environments
-PMI Exascale (PMIx) represents an attempt to
-provide an extended version of the PMI standard specifically designed
-to support clusters up to and including exascale sizes. The overall
-objective of the project is not to branch the existing pseudo-standard
-definitions - in fact, PMIx fully supports both of the existing PMI-1
-and PMI-2 APIs - but rather to (a) augment and extend those APIs to
-eliminate some current restrictions that impact scalability, and (b)
-provide a reference implementation of the PMI-server that demonstrates
-the desired level of scalability.
-"""
-
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+description = """Process Management for Exascale Environments.
+PMI Exascale (PMIx) extends the PMI standard to support clusters up to and
+including exascale sizes, while remaining fully compatible with the existing
+PMI-1 and PMI-2 APIs. It also provides a reference implementation of the
+PMI-server."""
+
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
-sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['bfe969966d0ce82e032739cac286239bd5ad74a831d7adae013284919f125318']
+source_urls = ['https://github.com/openpmix/openpmix/releases/download/v5.0.6']
+sources = ['pmix-5.0.6.tar.bz2']
+checksums = ['ea51baa0fdee688d54bc9f2c11937671381f00de966233eec6fd88807fb46f83']
 
 builddependencies = [
-    ('binutils', '2.44'),
-    ('Perl', '5.40.2'),
-    ('pkgconf', '2.4.3'),
+    ('Perl', '5.40.0'),
+    ('pkgconf', '2.3.0'),
 ]
 
 dependencies = [
     ('libevent', '2.1.12'),
     ('zlib', '1.3.1'),
-    ('hwloc', '2.12.1'),
+    ('hwloc-ROCm', '2.11.2'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
-configopts += ' --with-hwloc=$EBROOTHWLOC'
-configopts += ' --enable-pmix-binaries'
+configopts = '--with-libevent=$EBROOTLIBEVENT  '
+configopts += '--with-zlib=$EBROOTZLIB '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--enable-pmix-binaries '
 
 buildopts = 'V=1'
 

Updated software PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb

Diff against PRRTE-4.1.0-GCCcore-15.2.0.eb

easybuild/easyconfigs/p/PRRTE/PRRTE-4.1.0-GCCcore-15.2.0.eb

diff --git a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.1.0-GCCcore-15.2.0.eb b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index d35338ca0d..faae7153b6 100644
--- a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.1.0-GCCcore-15.2.0.eb
+++ b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,31 +1,29 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PRRTE'
-version = '4.1.0'
+version = '3.0.8'
 
 homepage = 'https://docs.prrte.org/'
 description = """PRRTE is the PMIx Reference RunTime Environment"""
 
-toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/openpmix/prrte/releases/download/v%(version)s']
-sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['285ad62b670075708b9fcfe14c54baa599733bc274d10502a82e8eebba0b7c70']
-
-builddependencies = [
-    ('binutils', '2.45'),
-    ('pkgconf', '2.5.1'),
-]
+source_urls = ['https://github.com/openpmix/prrte/releases/download/v3.0.8']
+sources = ['prrte-3.0.8.tar.bz2']
+checksums = ['e798192fa0ab38172818a109a6c89bcc37e4b1123ca150d8c115dee5231750de']
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('hwloc', '2.13.0'),
-    ('PMIx', '6.1.0'),
+    ('hwloc-ROCm', '2.11.2'),
+    ('PMIx', '5.0.6'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT'
-configopts += ' --with-hwloc=$EBROOTHWLOC --with-pmix=$EBROOTPMIX'
+configopts = '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--with-pmix=$EBROOTPMIX '
 
 buildopts = 'V=1'
 
Diff against PRRTE-3.0.11-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.11-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.11-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 0eb711cd4e..faae7153b6 100644
--- a/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.11-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,31 +1,29 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PRRTE'
-version = '3.0.11'
+version = '3.0.8'
 
 homepage = 'https://docs.prrte.org/'
 description = """PRRTE is the PMIx Reference RunTime Environment"""
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/openpmix/prrte/releases/download/v%(version)s']
-sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['37af5a82d333a54c0bac358f06c194427b7dbfa7b8b85f2ddd1145acf71cfdd4']
-
-builddependencies = [
-    ('binutils', '2.44'),
-    ('pkgconf', '2.4.3'),
-]
+source_urls = ['https://github.com/openpmix/prrte/releases/download/v3.0.8']
+sources = ['prrte-3.0.8.tar.bz2']
+checksums = ['e798192fa0ab38172818a109a6c89bcc37e4b1123ca150d8c115dee5231750de']
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('hwloc', '2.12.1'),
-    ('PMIx', '5.0.8'),
+    ('hwloc-ROCm', '2.11.2'),
+    ('PMIx', '5.0.6'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT'
-configopts += ' --with-hwloc=$EBROOTHWLOC --with-pmix=$EBROOTPMIX'
+configopts = '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--with-pmix=$EBROOTPMIX '
 
 buildopts = 'V=1'
 
Diff against PRRTE-4.0.0-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PRRTE/PRRTE-4.0.0-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.0.0-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
index 4206a4aeab..faae7153b6 100644
--- a/easybuild/easyconfigs/p/PRRTE/PRRTE-4.0.0-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PRRTE/PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
@@ -1,31 +1,29 @@
+# Author:   Aayush Joglekar <aayush.joglekar@surf.nl>
+
 easyblock = 'ConfigureMake'
 
 name = 'PRRTE'
-version = '4.0.0'
+version = '3.0.8'
 
 homepage = 'https://docs.prrte.org/'
 description = """PRRTE is the PMIx Reference RunTime Environment"""
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}
 toolchainopts = {'pic': True}
 
-source_urls = ['https://github.com/openpmix/prrte/releases/download/v%(version)s']
-sources = ['%(namelower)s-%(version)s.tar.bz2']
-checksums = ['3c2ec961e0ba0c99128c7bf3545f4789d55a85a70ce958e868ae5e3db6ed4de4']
-
-builddependencies = [
-    ('binutils', '2.44'),
-    ('pkgconf', '2.4.3'),
-]
+source_urls = ['https://github.com/openpmix/prrte/releases/download/v3.0.8']
+sources = ['prrte-3.0.8.tar.bz2']
+checksums = ['e798192fa0ab38172818a109a6c89bcc37e4b1123ca150d8c115dee5231750de']
 
 dependencies = [
     ('libevent', '2.1.12'),
-    ('hwloc', '2.12.1'),
-    ('PMIx', '6.0.0'),
+    ('hwloc-ROCm', '2.11.2'),
+    ('PMIx', '5.0.6'),
 ]
 
-configopts = ' --with-libevent=$EBROOTLIBEVENT'
-configopts += ' --with-hwloc=$EBROOTHWLOC --with-pmix=$EBROOTPMIX'
+configopts = '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--with-hwloc=$EBROOTHWLOC '
+configopts += '--with-pmix=$EBROOTPMIX '
 
 buildopts = 'V=1'
 

@zerefwayne
zerefwayne requested a review from casparvl July 27, 2026 12:21
@casparvl

Copy link
Copy Markdown
Contributor

Test report by @casparvl
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#4173
SUCCESS
Build succeeded for 15 out of 15 (total: 1 hour 17 mins 3 secs) (14 easyconfigs in total)
j14n2.mgt.liza.surf.nl - Linux Debian GNU/Linux 12, x86_64, Intel(R) Xeon(R) Platinum 8360Y CPU @ 2.40GHz (icelake), 1 x AMD Aldebaran/MI200 [Instinct MI210] (device id: N/A, gfx: N/A, driver: N/A), Python 3.13.4
See https://gist.github.com/casparvl/bd3b51fb321fd3744ae46247ef300951 for a full test report.

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

Labels

2025a issues & PRs related to 2025a common toolchains change enhancement new update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants