diff options
author | Greg Becker <becker33@llnl.gov> | 2024-11-08 17:07:40 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-08 18:07:40 -0700 |
commit | da1d533877f90610571b72f070c01e13b9729108 (patch) | |
tree | db1e39d1daba082fcec630e61e7f4423c9c63a87 /var | |
parent | c6997e11a74e5dedbeabf93ea1df3f8d2a4601e8 (diff) | |
download | spack-da1d533877f90610571b72f070c01e13b9729108.tar.gz spack-da1d533877f90610571b72f070c01e13b9729108.tar.bz2 spack-da1d533877f90610571b72f070c01e13b9729108.tar.xz spack-da1d533877f90610571b72f070c01e13b9729108.zip |
fix patched dependencies across repositories (#42463)
Currently, if a package has a dependency from another repository and patches it,
generation of the patch cache will fail. Concretization succeeds if a fixed patch
cache is in place.
- [x] don't assume that patched dependencies are in the same repo when indexing
- [x] add some test fixtures to support multi-repo tests.
---------
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
Diffstat (limited to 'var')
6 files changed, 58 insertions, 0 deletions
diff --git a/var/spack/repos/builtin.mock/README.md b/var/spack/repos/builtin.mock/README.md new file mode 100644 index 0000000000..5a5f6e747f --- /dev/null +++ b/var/spack/repos/builtin.mock/README.md @@ -0,0 +1,7 @@ +# `builtin.mock` + +This repository and the secondary mock repo `builtin.mock2` contain mock packages used +by Spack tests. + +Most tests are in `builtin.mock`, but `builtin.mock2` is used for scenarios where we +need multiple repos for testing. diff --git a/var/spack/repos/builtin.mock/packages/patch-a-foreign-dependency/mock2-package.patch b/var/spack/repos/builtin.mock/packages/patch-a-foreign-dependency/mock2-package.patch new file mode 100644 index 0000000000..02bfad9103 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/patch-a-foreign-dependency/mock2-package.patch @@ -0,0 +1,11 @@ +--- patch-a-dependency/configure 2018-08-13 23:13:51.000000000 -0700 ++++ patch-a-dependency/configure.patched 2018-08-13 23:14:15.000000000 -0700 +@@ -2,7 +2,7 @@ + prefix=$(echo $1 | sed 's/--prefix=//') + cat > Makefile <<EOF + all: +- echo Building... ++ echo Patched! + + install: + mkdir -p $prefix diff --git a/var/spack/repos/builtin.mock/packages/patch-a-foreign-dependency/package.py b/var/spack/repos/builtin.mock/packages/patch-a-foreign-dependency/package.py new file mode 100644 index 0000000000..6e52029a1d --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/patch-a-foreign-dependency/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PatchAForeignDependency(Package): + """Package that requries a patched version of a dependency.""" + + homepage = "http://www.example.com" + url = "http://www.example.com/patch-a-dependency-1.0.tar.gz" + + version("1.0", md5="0123456789abcdef0123456789abcdef") + + depends_on("mock2-patched-dependency", patches=patch("mock2-package.patch")) diff --git a/var/spack/repos/builtin.mock2/README.md b/var/spack/repos/builtin.mock2/README.md new file mode 100644 index 0000000000..8a079b1a6b --- /dev/null +++ b/var/spack/repos/builtin.mock2/README.md @@ -0,0 +1,6 @@ +# `builtin.mock2` + +This is the secondary mock repo for testing Spack, along with `builtin.mock`. + +Most tests are in `builtin.mock`, but this repository is used for scenarios where we +need multiple repos for testing. diff --git a/var/spack/repos/builtin.mock2/packages/mock2-patched-dependency/package.py b/var/spack/repos/builtin.mock2/packages/mock2-patched-dependency/package.py new file mode 100644 index 0000000000..ed34ff025a --- /dev/null +++ b/var/spack/repos/builtin.mock2/packages/mock2-patched-dependency/package.py @@ -0,0 +1,15 @@ +# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Mock2PatchedDependency(Package): + """Package patched by patch-a-foreign-dependency in builtin.mock.""" + + homepage = "http://www.example.com" + url = "http://www.example.com/mock2-patch-dependency-1.0.tar.gz" + + version("1.0", md5="0123456789abcdef0123456789abcdef") diff --git a/var/spack/repos/builtin.mock2/repo.yaml b/var/spack/repos/builtin.mock2/repo.yaml new file mode 100644 index 0000000000..84923d8367 --- /dev/null +++ b/var/spack/repos/builtin.mock2/repo.yaml @@ -0,0 +1,2 @@ +repo: + namespace: 'builtin.mock2' |