From f07789febf928f1ec8e1b6782ec5650e248d6071 Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Tue, 20 May 2025 12:11:27 +0200 Subject: [PATCH] builtin: fix a few imports (#50570) --- .../builtin/build_systems/_checks.py | 29 ++++++++++--------- .../builtin/build_systems/autotools.py | 2 +- .../spack_repo/builtin/build_systems/lua.py | 3 +- .../spack_repo/builtin/build_systems/qmake.py | 3 +- .../spack_repo/builtin/build_systems/waf.py | 3 +- 5 files changed, 19 insertions(+), 21 deletions(-) diff --git a/var/spack/repos/spack_repo/builtin/build_systems/_checks.py b/var/spack/repos/spack_repo/builtin/build_systems/_checks.py index 4c6b4545b8a..0abb35b7139 100644 --- a/var/spack/repos/spack_repo/builtin/build_systems/_checks.py +++ b/var/spack/repos/spack_repo/builtin/build_systems/_checks.py @@ -2,12 +2,9 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os -from typing import List - -import llnl.util.lang +from typing import Callable, List import spack.relocate -import spack.store from spack.package import Builder, InstallError, Spec, run_after @@ -22,24 +19,28 @@ def sanity_check_prefix(builder: Builder): """ pkg = builder.pkg - def check_paths(path_list, filetype, predicate): + def check_paths(path_list: List[str], filetype: str, predicate: Callable[[str], bool]) -> None: if isinstance(path_list, str): path_list = [path_list] for path in path_list: - abs_path = os.path.join(pkg.prefix, path) - if not predicate(abs_path): - msg = "Install failed for {0}. No such {1} in prefix: {2}" - msg = msg.format(pkg.name, filetype, path) - raise InstallError(msg) + if not predicate(os.path.join(pkg.prefix, path)): + raise InstallError( + f"Install failed for {pkg.name}. No such {filetype} in prefix: {path}" + ) check_paths(pkg.sanity_check_is_file, "file", os.path.isfile) check_paths(pkg.sanity_check_is_dir, "directory", os.path.isdir) - ignore_file = llnl.util.lang.match_predicate(spack.store.STORE.layout.hidden_file_regexes) - if all(map(ignore_file, os.listdir(pkg.prefix))): - msg = "Install failed for {0}. Nothing was installed!" - raise InstallError(msg.format(pkg.name)) + # Check that the prefix is not empty apart from the .spack/ directory + with os.scandir(pkg.prefix) as entries: + f = next( + (f for f in entries if not (f.name == ".spack" and f.is_dir(follow_symlinks=False))), + None, + ) + + if f is None: + raise InstallError(f"Install failed for {pkg.name}. Nothing was installed!") def apply_macos_rpath_fixups(builder: Builder): diff --git a/var/spack/repos/spack_repo/builtin/build_systems/autotools.py b/var/spack/repos/spack_repo/builtin/build_systems/autotools.py index 0db5fd45ba0..1ac7457603b 100644 --- a/var/spack/repos/spack_repo/builtin/build_systems/autotools.py +++ b/var/spack/repos/spack_repo/builtin/build_systems/autotools.py @@ -7,7 +7,6 @@ from typing import Callable, List, Optional, Set, Tuple, Union import llnl.util.filesystem as fs -import llnl.util.tty as tty import spack.build_environment import spack.builder @@ -34,6 +33,7 @@ register_builder, run_after, run_before, + tty, when, working_dir, ) diff --git a/var/spack/repos/spack_repo/builtin/build_systems/lua.py b/var/spack/repos/spack_repo/builtin/build_systems/lua.py index 53e2318fc48..85832a54c3f 100644 --- a/var/spack/repos/spack_repo/builtin/build_systems/lua.py +++ b/var/spack/repos/spack_repo/builtin/build_systems/lua.py @@ -3,8 +3,6 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os -from llnl.util.filesystem import find - from spack.package import ( Builder, EnvironmentModifications, @@ -15,6 +13,7 @@ build_system, depends_on, extends, + find, register_builder, when, ) diff --git a/var/spack/repos/spack_repo/builtin/build_systems/qmake.py b/var/spack/repos/spack_repo/builtin/build_systems/qmake.py index fa6ad99fd36..1b4a2481198 100644 --- a/var/spack/repos/spack_repo/builtin/build_systems/qmake.py +++ b/var/spack/repos/spack_repo/builtin/build_systems/qmake.py @@ -1,8 +1,6 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from llnl.util.filesystem import working_dir - from spack.package import ( PackageBase, Prefix, @@ -11,6 +9,7 @@ depends_on, register_builder, run_after, + working_dir, ) from ._checks import BuilderWithDefaults, execute_build_time_tests diff --git a/var/spack/repos/spack_repo/builtin/build_systems/waf.py b/var/spack/repos/spack_repo/builtin/build_systems/waf.py index 446e4793c8e..124e744c17b 100644 --- a/var/spack/repos/spack_repo/builtin/build_systems/waf.py +++ b/var/spack/repos/spack_repo/builtin/build_systems/waf.py @@ -1,8 +1,6 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from llnl.util.filesystem import working_dir - from spack.package import ( PackageBase, Prefix, @@ -11,6 +9,7 @@ depends_on, register_builder, run_after, + working_dir, ) from ._checks import BuilderWithDefaults, execute_build_time_tests, execute_install_time_tests