From 2775d9629097f0f96f8ca5529ff312babc591aea Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Thu, 5 Feb 2026 13:12:35 +0100 Subject: [PATCH 1/6] fix a couple cmake constraints * use `type=build` where appropriate * avoid a "global" `conflicts("cmake`, use `depends_on("cmake@...` instead Signed-off-by: Harmen Stoppels --- repos/spack_repo/builtin/build_systems/cmake.py | 2 +- repos/spack_repo/builtin/packages/curl/package.py | 2 +- repos/spack_repo/builtin/packages/libuv/package.py | 2 +- repos/spack_repo/builtin/packages/scitokens_cpp/package.py | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/repos/spack_repo/builtin/build_systems/cmake.py b/repos/spack_repo/builtin/build_systems/cmake.py index f41091ba5ac..0d9d7a42434 100644 --- a/repos/spack_repo/builtin/build_systems/cmake.py +++ b/repos/spack_repo/builtin/build_systems/cmake.py @@ -228,7 +228,7 @@ class CMakePackage(PackageBase): # must conflict. # this should be updated to reflect a oneapi fortran provider # once oneapi is usable with fortran on Windows - conflicts("cmake@:4.0", when="%cxx=msvc %fortran=msvc") + depends_on("cmake@4.1:", type="build", when="%cxx=msvc %fortran=msvc") def flags_to_build_system_args(self, flags): """Return a list of all command line arguments to pass the specified diff --git a/repos/spack_repo/builtin/packages/curl/package.py b/repos/spack_repo/builtin/packages/curl/package.py index c20759db0b7..a4d7db45862 100644 --- a/repos/spack_repo/builtin/packages/curl/package.py +++ b/repos/spack_repo/builtin/packages/curl/package.py @@ -91,7 +91,7 @@ class Curl(NMakePackage, AutotoolsPackage, CMakePackage): # CMake 4.0: is not compatible with CMake systems requiring # 3.0, which curl@7.63 requires - depends_on("cmake@:3", when="build_system=cmake @:7.63") + depends_on("cmake@:3", when="build_system=cmake @:7.63", type="build") depends_on("gnutls@3.6.5:", when="tls=gnutls @8.18:") depends_on("gnutls", when="tls=gnutls") diff --git a/repos/spack_repo/builtin/packages/libuv/package.py b/repos/spack_repo/builtin/packages/libuv/package.py index 63e0f17aa50..68e57db8979 100644 --- a/repos/spack_repo/builtin/packages/libuv/package.py +++ b/repos/spack_repo/builtin/packages/libuv/package.py @@ -101,7 +101,7 @@ def url_for_version(self, version): with when("build_system=cmake"): # explicitly require ownlibs to indicate we're short # circuiting the cmake<->libuv cyclic dependency here - depends_on("cmake+ownlibs") + depends_on("cmake+ownlibs", type="build") conflicts( "%gcc@:4.8", diff --git a/repos/spack_repo/builtin/packages/scitokens_cpp/package.py b/repos/spack_repo/builtin/packages/scitokens_cpp/package.py index d347178204b..1da5c1b3baa 100644 --- a/repos/spack_repo/builtin/packages/scitokens_cpp/package.py +++ b/repos/spack_repo/builtin/packages/scitokens_cpp/package.py @@ -42,8 +42,8 @@ class ScitokensCpp(CMakePackage): depends_on("cxx", type="build") # generated - depends_on("cmake@2.6:") - depends_on("cmake@3.10:", when="@0.7.1:") + depends_on("cmake@2.6:", type="build") + depends_on("cmake@3.10:", when="@0.7.1:", type="build") depends_on("openssl") depends_on("sqlite") depends_on("curl") From 44ccdf125008c3155562067a1bbfbb29ed68591c Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Thu, 12 Feb 2026 17:29:42 +0100 Subject: [PATCH 2/6] nitpick Signed-off-by: Harmen Stoppels --- repos/spack_repo/builtin/packages/curl/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/curl/package.py b/repos/spack_repo/builtin/packages/curl/package.py index a4d7db45862..ae6a8b835cb 100644 --- a/repos/spack_repo/builtin/packages/curl/package.py +++ b/repos/spack_repo/builtin/packages/curl/package.py @@ -91,7 +91,7 @@ class Curl(NMakePackage, AutotoolsPackage, CMakePackage): # CMake 4.0: is not compatible with CMake systems requiring # 3.0, which curl@7.63 requires - depends_on("cmake@:3", when="build_system=cmake @:7.63", type="build") + depends_on("cmake@:3", type="build", when="build_system=cmake @:7.63") depends_on("gnutls@3.6.5:", when="tls=gnutls @8.18:") depends_on("gnutls", when="tls=gnutls") From 545665bc1d5ed7344c5d28ed5b72a6fd59411429 Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Thu, 12 Feb 2026 17:40:10 +0100 Subject: [PATCH 3/6] .. Signed-off-by: Harmen Stoppels --- repos/spack_repo/builtin/packages/scitokens_cpp/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/scitokens_cpp/package.py b/repos/spack_repo/builtin/packages/scitokens_cpp/package.py index 1da5c1b3baa..38c4e80f25c 100644 --- a/repos/spack_repo/builtin/packages/scitokens_cpp/package.py +++ b/repos/spack_repo/builtin/packages/scitokens_cpp/package.py @@ -43,7 +43,7 @@ class ScitokensCpp(CMakePackage): depends_on("cxx", type="build") # generated depends_on("cmake@2.6:", type="build") - depends_on("cmake@3.10:", when="@0.7.1:", type="build") + depends_on("cmake@3.10:", type="build", when="@0.7.1:") depends_on("openssl") depends_on("sqlite") depends_on("curl") From c89894a697711356861f5ab34259a784c7c50aa6 Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Fri, 13 Feb 2026 12:15:01 +0100 Subject: [PATCH 4/6] cmake.py: remove previously violated cmake constraint Signed-off-by: Harmen Stoppels --- repos/spack_repo/builtin/build_systems/cmake.py | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/repos/spack_repo/builtin/build_systems/cmake.py b/repos/spack_repo/builtin/build_systems/cmake.py index 0d9d7a42434..de6512a1a78 100644 --- a/repos/spack_repo/builtin/build_systems/cmake.py +++ b/repos/spack_repo/builtin/build_systems/cmake.py @@ -218,18 +218,6 @@ class CMakePackage(PackageBase): depends_on("gmake", type="build", when="generator=make") depends_on("ninja", type="build", when="generator=ninja") - # CMake earlier than 4.1 improperly handles arguments provided to - # the linker when using msvc as a c/cxx compiler and oneapi as a - # fortran compiler https://gitlab.kitware.com/cmake/cmake/-/issues/26005 - # - # Currently in Spack msvc is modeled as both the fortran/cxx compiler - # due to restrictions w/ oneapi on Windows, but in reality, when msvc - # is the fortran compiler, it is utilizing oneapi, and this - # must conflict. - # this should be updated to reflect a oneapi fortran provider - # once oneapi is usable with fortran on Windows - depends_on("cmake@4.1:", type="build", when="%cxx=msvc %fortran=msvc") - def flags_to_build_system_args(self, flags): """Return a list of all command line arguments to pass the specified compiler flags to cmake. Note CMAKE does not have a cppflags option, From 8ceb4e8027a89b29bfbdfae594db0bba442e3e90 Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Fri, 13 Feb 2026 19:37:44 +0100 Subject: [PATCH 5/6] Revert "cmake.py: remove previously violated cmake constraint" This reverts commit c89894a697711356861f5ab34259a784c7c50aa6. --- repos/spack_repo/builtin/build_systems/cmake.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/repos/spack_repo/builtin/build_systems/cmake.py b/repos/spack_repo/builtin/build_systems/cmake.py index de6512a1a78..0d9d7a42434 100644 --- a/repos/spack_repo/builtin/build_systems/cmake.py +++ b/repos/spack_repo/builtin/build_systems/cmake.py @@ -218,6 +218,18 @@ class CMakePackage(PackageBase): depends_on("gmake", type="build", when="generator=make") depends_on("ninja", type="build", when="generator=ninja") + # CMake earlier than 4.1 improperly handles arguments provided to + # the linker when using msvc as a c/cxx compiler and oneapi as a + # fortran compiler https://gitlab.kitware.com/cmake/cmake/-/issues/26005 + # + # Currently in Spack msvc is modeled as both the fortran/cxx compiler + # due to restrictions w/ oneapi on Windows, but in reality, when msvc + # is the fortran compiler, it is utilizing oneapi, and this + # must conflict. + # this should be updated to reflect a oneapi fortran provider + # once oneapi is usable with fortran on Windows + depends_on("cmake@4.1:", type="build", when="%cxx=msvc %fortran=msvc") + def flags_to_build_system_args(self, flags): """Return a list of all command line arguments to pass the specified compiler flags to cmake. Note CMAKE does not have a cppflags option, From 2c04d2df2c5f4e2bed894df78b8938b29a61df2b Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Fri, 13 Feb 2026 19:39:01 +0100 Subject: [PATCH 6/6] just comment out Signed-off-by: Harmen Stoppels --- repos/spack_repo/builtin/build_systems/cmake.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/build_systems/cmake.py b/repos/spack_repo/builtin/build_systems/cmake.py index 0d9d7a42434..3b879f0a46b 100644 --- a/repos/spack_repo/builtin/build_systems/cmake.py +++ b/repos/spack_repo/builtin/build_systems/cmake.py @@ -228,7 +228,9 @@ class CMakePackage(PackageBase): # must conflict. # this should be updated to reflect a oneapi fortran provider # once oneapi is usable with fortran on Windows - depends_on("cmake@4.1:", type="build", when="%cxx=msvc %fortran=msvc") + # NOTE: commented out for now because cmake@3 is used in Spack CI + # successfully with %fortran=msvc. + # depends_on("cmake@4.1:", type="build", when="%cxx=msvc %fortran=msvc") def flags_to_build_system_args(self, flags): """Return a list of all command line arguments to pass the specified