summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorTom Scogland <scogland1@llnl.gov>2022-08-17 17:54:17 -0700
committerGitHub <noreply@github.com>2022-08-17 17:54:17 -0700
commitb9e57006c98c5ea3836a33a55a41a516e52f3e4b (patch)
tree54110b6ca18b0cdf413df5a237d451af6333d1be /var
parentc386181c0f804222f1aabb8419162bfe9916cce9 (diff)
downloadspack-b9e57006c98c5ea3836a33a55a41a516e52f3e4b.tar.gz
spack-b9e57006c98c5ea3836a33a55a41a516e52f3e4b.tar.bz2
spack-b9e57006c98c5ea3836a33a55a41a516e52f3e4b.tar.xz
spack-b9e57006c98c5ea3836a33a55a41a516e52f3e4b.zip
bugfix: use cmake version from dependency (#31739)
Ensure that build tools with module-level commands in spack use the version built as part of their build graph if one exists. This is now also required for mesa, scons, cmake and ctest, out of graph versions of these tools in path will not be found unless added as an external. This bug appeared because a new version of rocprim needs cmake 3.16, while I have 3.14 in my path I had added an external for cmake 3.20 to the dag, but 3.14 was still used to configure rocprim causing it to fail. As far as I can tell, all the build tools added in build_environment.py had this problem, despite the fact that they should have been resolving these tools by name with a path search and find the one in the dag that way. I'm still investigating why the path searching and Executable logic didn't do it, but this makes three of the build systems much more explicit, and leaves only gmake and ninja as dependencies from out in the system while ensuring the version in the dag is used if there is one. The additional sqlite version is to perturb the hash of python to work around a relocation bug which will be fixed in a subsequent PR.
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin.mock/packages/cmake/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/ninja/package.py3
-rw-r--r--var/spack/repos/builtin/packages/cmake/package.py6
-rw-r--r--var/spack/repos/builtin/packages/gmake/package.py5
-rw-r--r--var/spack/repos/builtin/packages/meson/package.py3
-rw-r--r--var/spack/repos/builtin/packages/ninja/package.py8
-rw-r--r--var/spack/repos/builtin/packages/scons/package.py3
-rw-r--r--var/spack/repos/builtin/packages/sqlite/package.py1
8 files changed, 31 insertions, 0 deletions
diff --git a/var/spack/repos/builtin.mock/packages/cmake/package.py b/var/spack/repos/builtin.mock/packages/cmake/package.py
index 4fe890df1a..30c3647df2 100644
--- a/var/spack/repos/builtin.mock/packages/cmake/package.py
+++ b/var/spack/repos/builtin.mock/packages/cmake/package.py
@@ -40,6 +40,8 @@ class Cmake(Package):
def setup_dependent_package(self, module, dspec):
spack_cc # Ensure spack module-scope variable is avaiable
+ module.cmake = Executable(self.spec.prefix.bin.cmake)
+ module.ctest = Executable(self.spec.prefix.bin.ctest)
self.spec.from_cmake = "from_cmake"
module.from_cmake = "from_cmake"
diff --git a/var/spack/repos/builtin.mock/packages/ninja/package.py b/var/spack/repos/builtin.mock/packages/ninja/package.py
index 864c58ea10..040e977c2e 100644
--- a/var/spack/repos/builtin.mock/packages/ninja/package.py
+++ b/var/spack/repos/builtin.mock/packages/ninja/package.py
@@ -13,3 +13,6 @@ class Ninja(Package):
url = "https://github.com/ninja-build/ninja/archive/v1.7.2.tar.gz"
version("1.10.2", sha256="ce35865411f0490368a8fc383f29071de6690cbadc27704734978221f25e2bed")
+
+ def setup_dependent_package(self, module, dspec):
+ module.ninja = Executable(self.spec.prefix.bin.ninja)
diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py
index f6705a6376..9af718f121 100644
--- a/var/spack/repos/builtin/packages/cmake/package.py
+++ b/var/spack/repos/builtin/packages/cmake/package.py
@@ -399,6 +399,12 @@ class Cmake(Package):
filter_file("mpc++_r)", "mpc++_r mpiFCC)", f, string=True)
filter_file("mpifc)", "mpifc mpifrt)", f, string=True)
+ def setup_dependent_package(self, module, dependent_spec):
+ """Called before cmake packages's install() methods."""
+
+ module.cmake = Executable(self.spec.prefix.bin.cmake)
+ module.ctest = Executable(self.spec.prefix.bin.ctest)
+
def test(self):
"""Perform smoke tests on the installed package."""
spec_vers_str = "version {0}".format(self.spec.version)
diff --git a/var/spack/repos/builtin/packages/gmake/package.py b/var/spack/repos/builtin/packages/gmake/package.py
index fe408e9e4e..81a9ac0abe 100644
--- a/var/spack/repos/builtin/packages/gmake/package.py
+++ b/var/spack/repos/builtin/packages/gmake/package.py
@@ -5,6 +5,7 @@
import re
+from spack.build_environment import MakeExecutable
from spack.package import *
@@ -71,3 +72,7 @@ class Gmake(AutotoolsPackage, GNUMirrorPackage):
def symlink_gmake(self):
with working_dir(self.prefix.bin):
symlink("make", "gmake")
+
+ def setup_dependent_package(self, module, dspec):
+ module.make = MakeExecutable(self.spec.prefix.bin.make, make_jobs)
+ module.gmake = MakeExecutable(self.spec.prefix.bin.gmake, make_jobs)
diff --git a/var/spack/repos/builtin/packages/meson/package.py b/var/spack/repos/builtin/packages/meson/package.py
index ee846ee013..cdd653c90e 100644
--- a/var/spack/repos/builtin/packages/meson/package.py
+++ b/var/spack/repos/builtin/packages/meson/package.py
@@ -81,3 +81,6 @@ class Meson(PythonPackage):
# https://github.com/pybind/pybind11/issues/595
if self.spec.satisfies("platform=darwin"):
env.set("STRIP", "strip -x")
+
+ def setup_dependent_package(self, module, dspec):
+ module.meson = Executable(self.spec.prefix.bin.meson)
diff --git a/var/spack/repos/builtin/packages/ninja/package.py b/var/spack/repos/builtin/packages/ninja/package.py
index d68dd926ed..9ae951f0b3 100644
--- a/var/spack/repos/builtin/packages/ninja/package.py
+++ b/var/spack/repos/builtin/packages/ninja/package.py
@@ -4,7 +4,9 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import sys
+from spack.build_environment import MakeExecutable
from spack.package import *
+from spack.util.executable import which_string
class Ninja(Package):
@@ -69,3 +71,9 @@ class Ninja(Package):
# instead of 'ninja'. Install both for uniformity.
with working_dir(prefix.bin):
symlink("ninja", "ninja-build")
+
+ def setup_dependent_package(self, module, dspec):
+ name = "ninja"
+ module.ninja = MakeExecutable(
+ which_string(name, path=[self.spec.prefix.bin], required=True), module.make_jobs
+ )
diff --git a/var/spack/repos/builtin/packages/scons/package.py b/var/spack/repos/builtin/packages/scons/package.py
index e0c9bee586..4e662275a2 100644
--- a/var/spack/repos/builtin/packages/scons/package.py
+++ b/var/spack/repos/builtin/packages/scons/package.py
@@ -57,3 +57,6 @@ class Scons(PythonPackage):
def setup_dependent_run_environment(self, env, dependent_spec):
env.prepend_path("PYTHONPATH", self.prefix.lib.scons)
+
+ def setup_dependent_package(self, module, dspec):
+ module.scons = Executable(self.spec.prefix.bin.scons)
diff --git a/var/spack/repos/builtin/packages/sqlite/package.py b/var/spack/repos/builtin/packages/sqlite/package.py
index 2c58c5cfb1..5b56295582 100644
--- a/var/spack/repos/builtin/packages/sqlite/package.py
+++ b/var/spack/repos/builtin/packages/sqlite/package.py
@@ -17,6 +17,7 @@ class Sqlite(AutotoolsPackage):
homepage = "https://www.sqlite.org"
+ version("3.39.2", sha256="852be8a6183a17ba47cee0bbff7400b7aa5affd283bf3beefc34fcd088a239de")
version("3.38.5", sha256="5af07de982ba658fd91a03170c945f99c971f6955bc79df3266544373e39869c")
version("3.38.3", sha256="61f2dd93a2e38c33468b7125967c3218bf9f4dd8365def6025e314f905dc942e")
version("3.37.2", sha256="4089a8d9b467537b3f246f217b84cd76e00b1d1a971fe5aca1e30e230e46b2d8")