summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/spack/spack/main.py2
-rw-r--r--lib/spack/spack/patch.py9
-rw-r--r--lib/spack/spack/paths.py1
-rw-r--r--lib/spack/spack/test/conftest.py16
-rw-r--r--lib/spack/spack/test/patch.py6
-rw-r--r--var/spack/repos/builtin.mock/README.md7
-rw-r--r--var/spack/repos/builtin.mock/packages/patch-a-foreign-dependency/mock2-package.patch11
-rw-r--r--var/spack/repos/builtin.mock/packages/patch-a-foreign-dependency/package.py17
-rw-r--r--var/spack/repos/builtin.mock2/README.md6
-rw-r--r--var/spack/repos/builtin.mock2/packages/mock2-patched-dependency/package.py15
-rw-r--r--var/spack/repos/builtin.mock2/repo.yaml2
11 files changed, 12 insertions, 80 deletions
diff --git a/lib/spack/spack/main.py b/lib/spack/spack/main.py
index 28567f26e8..7cab47d77f 100644
--- a/lib/spack/spack/main.py
+++ b/lib/spack/spack/main.py
@@ -547,7 +547,7 @@ def setup_main_options(args):
key = syaml.syaml_str("repos")
key.override = True
spack.config.CONFIG.scopes["command_line"].sections["repos"] = syaml.syaml_dict(
- [(key, [spack.paths.mock_packages_path, spack.paths.mock_packages_path2])]
+ [(key, [spack.paths.mock_packages_path])]
)
spack.repo.PATH = spack.repo.create(spack.config.CONFIG)
diff --git a/lib/spack/spack/patch.py b/lib/spack/spack/patch.py
index d4bc9fb4f4..a0f4152317 100644
--- a/lib/spack/spack/patch.py
+++ b/lib/spack/spack/patch.py
@@ -530,7 +530,7 @@ class PatchCache:
# update the index with per-package patch indexes
pkg_cls = self.repository.get_pkg_class(pkg_fullname)
- partial_index = self._index_patches(pkg_cls)
+ partial_index = self._index_patches(pkg_cls, self.repository)
for sha256, package_to_patch in partial_index.items():
p2p = self.index.setdefault(sha256, {})
p2p.update(package_to_patch)
@@ -546,11 +546,14 @@ class PatchCache:
p2p.update(package_to_patch)
@staticmethod
- def _index_patches(pkg_class: Type["spack.package_base.PackageBase"]) -> Dict[Any, Any]:
+ def _index_patches(
+ pkg_class: Type["spack.package_base.PackageBase"], repository: "spack.repo.RepoPath"
+ ) -> Dict[Any, Any]:
"""Patch index for a specific patch.
Args:
pkg_class: package object to get patches for
+ repository: repository containing the package
Returns:
The patch index for that package.
@@ -568,7 +571,7 @@ class PatchCache:
for dependency in deps_by_name.values():
for patch_list in dependency.patches.values():
for patch in patch_list:
- dspec_cls = spack.repo.PATH.get_pkg_class(dependency.spec.fullname)
+ dspec_cls = repository.get_pkg_class(dependency.spec.name)
patch_dict = patch.to_dict()
patch_dict.pop("sha256") # save some space
index[patch.sha256] = {dspec_cls.fullname: patch_dict}
diff --git a/lib/spack/spack/paths.py b/lib/spack/spack/paths.py
index aeca3a9899..84583cd552 100644
--- a/lib/spack/spack/paths.py
+++ b/lib/spack/spack/paths.py
@@ -60,7 +60,6 @@ var_path = os.path.join(prefix, "var", "spack")
repos_path = os.path.join(var_path, "repos")
packages_path = os.path.join(repos_path, "builtin")
mock_packages_path = os.path.join(repos_path, "builtin.mock")
-mock_packages_path2 = os.path.join(repos_path, "builtin.mock2")
#
# Writable things in $spack/var/spack
diff --git a/lib/spack/spack/test/conftest.py b/lib/spack/spack/test/conftest.py
index b66e1edb35..f6670157ed 100644
--- a/lib/spack/spack/test/conftest.py
+++ b/lib/spack/spack/test/conftest.py
@@ -575,11 +575,6 @@ def mock_repo_path():
yield spack.repo.from_path(spack.paths.mock_packages_path)
-@pytest.fixture(scope="session")
-def mock_repo_path2():
- yield spack.repo.from_path(spack.paths.mock_packages_path2)
-
-
def _pkg_install_fn(pkg, spec, prefix):
# sanity_check_prefix requires something in the install directory
mkdirp(prefix.bin)
@@ -593,20 +588,19 @@ def mock_pkg_install(monkeypatch):
@pytest.fixture(scope="function")
-def mock_packages(mock_repo_path, mock_repo_path2, mock_pkg_install, request):
- """Use the 'builtin.mock' and 'builtin.mock2' repositories instead of 'builtin'"""
+def mock_packages(mock_repo_path, mock_pkg_install, request):
+ """Use the 'builtin.mock' repository instead of 'builtin'"""
ensure_configuration_fixture_run_before(request)
- with spack.repo.use_repositories(mock_repo_path, mock_repo_path2) as mock_repo:
+ with spack.repo.use_repositories(mock_repo_path) as mock_repo:
yield mock_repo
@pytest.fixture(scope="function")
-def mutable_mock_repo(request):
+def mutable_mock_repo(mock_repo_path, request):
"""Function-scoped mock packages, for tests that need to modify them."""
ensure_configuration_fixture_run_before(request)
mock_repo = spack.repo.from_path(spack.paths.mock_packages_path)
- mock_repo2 = spack.repo.from_path(spack.paths.mock_packages_path2)
- with spack.repo.use_repositories(mock_repo, mock_repo2) as mock_repo_path:
+ with spack.repo.use_repositories(mock_repo) as mock_repo_path:
yield mock_repo_path
diff --git a/lib/spack/spack/test/patch.py b/lib/spack/spack/test/patch.py
index 1088b1f24b..4b5f31b904 100644
--- a/lib/spack/spack/test/patch.py
+++ b/lib/spack/spack/test/patch.py
@@ -499,9 +499,3 @@ def test_invalid_from_dict(mock_packages, config):
}
with pytest.raises(spack.fetch_strategy.ChecksumError, match="sha256 checksum failed for"):
spack.patch.from_dict(dictionary)
-
-
-@pytest.mark.regression("43097")
-def test_cross_repo_patch(mock_packages, config):
- cross_repo_patch = Spec("patch-a-foreign-dependency")
- cross_repo_patch.concretize()
diff --git a/var/spack/repos/builtin.mock/README.md b/var/spack/repos/builtin.mock/README.md
deleted file mode 100644
index 5a5f6e747f..0000000000
--- a/var/spack/repos/builtin.mock/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# `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
deleted file mode 100644
index 02bfad9103..0000000000
--- a/var/spack/repos/builtin.mock/packages/patch-a-foreign-dependency/mock2-package.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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
deleted file mode 100644
index 6e52029a1d..0000000000
--- a/var/spack/repos/builtin.mock/packages/patch-a-foreign-dependency/package.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# 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
deleted file mode 100644
index 8a079b1a6b..0000000000
--- a/var/spack/repos/builtin.mock2/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# `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
deleted file mode 100644
index ed34ff025a..0000000000
--- a/var/spack/repos/builtin.mock2/packages/mock2-patched-dependency/package.py
+++ /dev/null
@@ -1,15 +0,0 @@
-# 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
deleted file mode 100644
index 84923d8367..0000000000
--- a/var/spack/repos/builtin.mock2/repo.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-repo:
- namespace: 'builtin.mock2'