From e8683dfd537cb59ef7b77012de3c0b49e215c628 Mon Sep 17 00:00:00 2001 From: William PIAT Date: Sat, 20 Jun 2026 23:26:17 +0200 Subject: [PATCH 1/5] air-gapped hipblaslt: add rocm-cmake and spdlog in recipe rather than pulling from the web --- .../builtin/packages/hipblaslt/package.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/repos/spack_repo/builtin/packages/hipblaslt/package.py b/repos/spack_repo/builtin/packages/hipblaslt/package.py index ca3a8bd0997..b9d8a7ce983 100644 --- a/repos/spack_repo/builtin/packages/hipblaslt/package.py +++ b/repos/spack_repo/builtin/packages/hipblaslt/package.py @@ -124,6 +124,7 @@ def url_for_version(self, version): ]: depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") + depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") for ver in ["6.0.0", "6.0.2", "6.1.0", "6.1.1", "6.1.2", "6.2.0", "6.2.1", "6.2.4"]: depends_on(f"hipblas@{ver}", when=f"@{ver}") @@ -175,6 +176,7 @@ def url_for_version(self, version): depends_on("py-pyyaml+libyaml", when="@7.1:") depends_on("py-packaging", when="@7.1:") depends_on("py-msgpack", when="@7.1:") + depends_on("spdlog", when="@7.1:") # Sets the proper for clang++ and clang-offload-blunder. # Also adds hipblas and msgpack include directories @@ -340,6 +342,17 @@ def cmake_args(self): ) if self.spec.satisfies("@7.1:"): args.append(self.define("HIPBLASLT_ENABLE_CLIENT", self.run_tests)) + args.append(self.define("FETCHCONTENT_TRY_FIND_PACKAGE_MODE", "ALWAYS")) + args.append(self.define("spdlog_ROOT", self.spec["spdlog"].prefix)) + args.append( + self.define("spdlog_DIR", self.spec["spdlog"].prefix.lib.cmake.spdlog) + ) + args.append( + self.define( + "FETCHCONTENT_SOURCE_DIR_ROCMCMAKEBUILDTOOLS", + self.spec["rocm-cmake"].prefix, + ) + ) args.append( self.define( "TENSILELITE_OFFLOADBUNDLER", From aa1257c51b2cf0ecfce1e4d4c5231a903fbf19b4 Mon Sep 17 00:00:00 2001 From: William PIAT Date: Mon, 22 Jun 2026 10:58:27 +0200 Subject: [PATCH 2/5] add py-nanobind --- .../builtin/packages/hipblaslt/package.py | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/repos/spack_repo/builtin/packages/hipblaslt/package.py b/repos/spack_repo/builtin/packages/hipblaslt/package.py index b9d8a7ce983..2d0476d0b0f 100644 --- a/repos/spack_repo/builtin/packages/hipblaslt/package.py +++ b/repos/spack_repo/builtin/packages/hipblaslt/package.py @@ -177,6 +177,24 @@ def url_for_version(self, version): depends_on("py-packaging", when="@7.1:") depends_on("py-msgpack", when="@7.1:") depends_on("spdlog", when="@7.1:") + depends_on("py-nanobind", when="@7.1:") + + resource( + name="libdivide", + git="https://github.com/ridiculousfish/libdivide.git", + commit="af7be6946c7a217023611e877cdf6ba93e880e30", + destination="deps", + placement="libdivide", + when="@7.1:", + ) + resource( + name="yaml_cpp", + url="https://github.com/jbeder/yaml-cpp/archive/0.8.0.tar.gz", + sha256="fbe74bbdcee21d656715688706da3c8becfd946d92cd44705cc6098bb23b3a16", + destination="deps", + placement="yaml_cpp", + when="@7.1:", + ) # Sets the proper for clang++ and clang-offload-blunder. # Also adds hipblas and msgpack include directories @@ -273,6 +291,12 @@ def patch(self): string=True, ) if self.spec.satisfies("@7.1:"): + filter_file( + "if(ROCROLLER_ENABLE_YAML_CPP)\n if(ROCROLLER_ENABLE_FETCH)", + "if(ROCROLLER_ENABLE_YAML_CPP)\n find_package(yaml-cpp 0.8.0 QUIET)\n if(NOT yaml-cpp_FOUND AND ROCROLLER_ENABLE_FETCH)", + "shared/rocroller/CMakeLists.txt", + string=True, + ) yaml_path = os.path.join(self.spec["py-pyyaml"].prefix, purelib) packaging_path = os.path.join(self.spec["py-packaging"].prefix, purelib) msgpack_path = os.path.join(self.spec["py-msgpack"].prefix, purelib) @@ -343,6 +367,20 @@ def cmake_args(self): if self.spec.satisfies("@7.1:"): args.append(self.define("HIPBLASLT_ENABLE_CLIENT", self.run_tests)) args.append(self.define("FETCHCONTENT_TRY_FIND_PACKAGE_MODE", "ALWAYS")) + args.append(self.define("ROCROLLER_ENABLE_FETCH", "OFF")) + args.append(self.define("ROCROLLER_ENABLE_YAML_CPP", "OFF")) + args.append(self.define("ROCROLLER_ENABLE_LLVM", "ON")) + libdivide_source = join_path(self.stage.source_path, "deps", "libdivide") + yaml_cpp_source = join_path(self.stage.source_path, "deps", "yaml_cpp") + args.append(self.define("FETCHCONTENT_SOURCE_DIR_LIBDIVIDE", libdivide_source)) + args.append(self.define("FETCHCONTENT_SOURCE_DIR_libdivide", libdivide_source)) + args.append(self.define("FETCHCONTENT_SOURCE_DIR_YAML_CPP", yaml_cpp_source)) + args.append(self.define("FETCHCONTENT_SOURCE_DIR_yaml_cpp", yaml_cpp_source)) + args.append( + self.define( + "yaml-cpp_DIR", join_path(self.spec["yaml-cpp"].prefix, "lib", "cmake", "yaml-cpp") + ) + ) args.append(self.define("spdlog_ROOT", self.spec["spdlog"].prefix)) args.append( self.define("spdlog_DIR", self.spec["spdlog"].prefix.lib.cmake.spdlog) From c85f802c415dc33f79aeebf834b9c8336d604003 Mon Sep 17 00:00:00 2001 From: William PIAT Date: Tue, 23 Jun 2026 14:39:37 +0200 Subject: [PATCH 3/5] air gapped hipblalt --- .../builtin/packages/hipblaslt/package.py | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/repos/spack_repo/builtin/packages/hipblaslt/package.py b/repos/spack_repo/builtin/packages/hipblaslt/package.py index 2d0476d0b0f..ce58346f8be 100644 --- a/repos/spack_repo/builtin/packages/hipblaslt/package.py +++ b/repos/spack_repo/builtin/packages/hipblaslt/package.py @@ -176,8 +176,8 @@ def url_for_version(self, version): depends_on("py-pyyaml+libyaml", when="@7.1:") depends_on("py-packaging", when="@7.1:") depends_on("py-msgpack", when="@7.1:") - depends_on("spdlog", when="@7.1:") depends_on("py-nanobind", when="@7.1:") + depends_on("spdlog", when="@7.1:") resource( name="libdivide", @@ -292,11 +292,11 @@ def patch(self): ) if self.spec.satisfies("@7.1:"): filter_file( - "if(ROCROLLER_ENABLE_YAML_CPP)\n if(ROCROLLER_ENABLE_FETCH)", - "if(ROCROLLER_ENABLE_YAML_CPP)\n find_package(yaml-cpp 0.8.0 QUIET)\n if(NOT yaml-cpp_FOUND AND ROCROLLER_ENABLE_FETCH)", - "shared/rocroller/CMakeLists.txt", - string=True, - ) + "if(ROCROLLER_ENABLE_YAML_CPP)\n if(ROCROLLER_ENABLE_FETCH)", + "if(ROCROLLER_ENABLE_YAML_CPP)\n find_package(yaml-cpp 0.8.0 QUIET)\n if(NOT yaml-cpp_FOUND AND ROCROLLER_ENABLE_FETCH)", + "shared/rocroller/CMakeLists.txt", + string=True, + ) yaml_path = os.path.join(self.spec["py-pyyaml"].prefix, purelib) packaging_path = os.path.join(self.spec["py-packaging"].prefix, purelib) msgpack_path = os.path.join(self.spec["py-msgpack"].prefix, purelib) @@ -368,7 +368,7 @@ def cmake_args(self): args.append(self.define("HIPBLASLT_ENABLE_CLIENT", self.run_tests)) args.append(self.define("FETCHCONTENT_TRY_FIND_PACKAGE_MODE", "ALWAYS")) args.append(self.define("ROCROLLER_ENABLE_FETCH", "OFF")) - args.append(self.define("ROCROLLER_ENABLE_YAML_CPP", "OFF")) + args.append(self.define("ROCROLLER_ENABLE_YAML_CPP", "ON")) args.append(self.define("ROCROLLER_ENABLE_LLVM", "ON")) libdivide_source = join_path(self.stage.source_path, "deps", "libdivide") yaml_cpp_source = join_path(self.stage.source_path, "deps", "yaml_cpp") @@ -376,15 +376,9 @@ def cmake_args(self): args.append(self.define("FETCHCONTENT_SOURCE_DIR_libdivide", libdivide_source)) args.append(self.define("FETCHCONTENT_SOURCE_DIR_YAML_CPP", yaml_cpp_source)) args.append(self.define("FETCHCONTENT_SOURCE_DIR_yaml_cpp", yaml_cpp_source)) - args.append( - self.define( - "yaml-cpp_DIR", join_path(self.spec["yaml-cpp"].prefix, "lib", "cmake", "yaml-cpp") - ) - ) + args.append(self.define("yaml-cpp_DIR", yaml_cpp_source)) args.append(self.define("spdlog_ROOT", self.spec["spdlog"].prefix)) - args.append( - self.define("spdlog_DIR", self.spec["spdlog"].prefix.lib.cmake.spdlog) - ) + args.append(self.define("spdlog_DIR", self.spec["spdlog"].prefix.lib.cmake.spdlog)) args.append( self.define( "FETCHCONTENT_SOURCE_DIR_ROCMCMAKEBUILDTOOLS", From 2b417b55ce5a4a16655b3ff114f8dd16b34d744d Mon Sep 17 00:00:00 2001 From: William PIAT Date: Tue, 23 Jun 2026 15:40:17 +0200 Subject: [PATCH 4/5] fix style --- repos/spack_repo/builtin/packages/hipblaslt/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/hipblaslt/package.py b/repos/spack_repo/builtin/packages/hipblaslt/package.py index ce58346f8be..c4c0e22c0d1 100644 --- a/repos/spack_repo/builtin/packages/hipblaslt/package.py +++ b/repos/spack_repo/builtin/packages/hipblaslt/package.py @@ -293,7 +293,8 @@ def patch(self): if self.spec.satisfies("@7.1:"): filter_file( "if(ROCROLLER_ENABLE_YAML_CPP)\n if(ROCROLLER_ENABLE_FETCH)", - "if(ROCROLLER_ENABLE_YAML_CPP)\n find_package(yaml-cpp 0.8.0 QUIET)\n if(NOT yaml-cpp_FOUND AND ROCROLLER_ENABLE_FETCH)", + "if(ROCROLLER_ENABLE_YAML_CPP)\n find_package(yaml-cpp 0.8.0 QUIET)\n "+\ + " if(NOT yaml-cpp_FOUND AND ROCROLLER_ENABLE_FETCH)", "shared/rocroller/CMakeLists.txt", string=True, ) From 31cc6451f3c7f0859634e2a71af8c8e31ad78ebf Mon Sep 17 00:00:00 2001 From: williampiat3 <32038421+williampiat3@users.noreply.github.com> Date: Tue, 23 Jun 2026 21:07:22 +0000 Subject: [PATCH 5/5] [@spackbot] updating style on behalf of williampiat3 --- repos/spack_repo/builtin/packages/hipblaslt/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/repos/spack_repo/builtin/packages/hipblaslt/package.py b/repos/spack_repo/builtin/packages/hipblaslt/package.py index c4c0e22c0d1..32eb0d14d74 100644 --- a/repos/spack_repo/builtin/packages/hipblaslt/package.py +++ b/repos/spack_repo/builtin/packages/hipblaslt/package.py @@ -293,8 +293,8 @@ def patch(self): if self.spec.satisfies("@7.1:"): filter_file( "if(ROCROLLER_ENABLE_YAML_CPP)\n if(ROCROLLER_ENABLE_FETCH)", - "if(ROCROLLER_ENABLE_YAML_CPP)\n find_package(yaml-cpp 0.8.0 QUIET)\n "+\ - " if(NOT yaml-cpp_FOUND AND ROCROLLER_ENABLE_FETCH)", + "if(ROCROLLER_ENABLE_YAML_CPP)\n find_package(yaml-cpp 0.8.0 QUIET)\n " + + " if(NOT yaml-cpp_FOUND AND ROCROLLER_ENABLE_FETCH)", "shared/rocroller/CMakeLists.txt", string=True, )