From: Daan De Meyer Date: Thu, 22 Feb 2024 07:28:59 +0000 (+0100) Subject: Rename finalize_ephemeral_source_mounts and add ephemeral arguments X-Git-Tag: v21~35^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ce27edc1a1c280befab614990cd40beeb20b0dab;p=thirdparty%2Fmkosi.git Rename finalize_ephemeral_source_mounts and add ephemeral arguments Let's make it configurable whether we make sources ephemeral or not. --- diff --git a/mkosi/__init__.py b/mkosi/__init__.py index 755c7da53..a3333c94d 100644 --- a/mkosi/__init__.py +++ b/mkosi/__init__.py @@ -53,7 +53,7 @@ from mkosi.installer import clean_package_manager_metadata from mkosi.kmod import gen_required_kernel_modules, process_kernel_modules from mkosi.log import ARG_DEBUG, complete_step, die, log_notice, log_step from mkosi.manifest import Manifest -from mkosi.mounts import finalize_ephemeral_source_mounts, mount_overlay +from mkosi.mounts import finalize_source_mounts, mount_overlay from mkosi.pager import page from mkosi.partition import Partition, finalize_root, finalize_roothash from mkosi.qemu import KernelType, copy_ephemeral, run_qemu, run_ssh @@ -435,7 +435,7 @@ def run_prepare_scripts(context: Context, build: bool) -> None: with ( mount_build_overlay(context) if build else contextlib.nullcontext(), finalize_chroot_scripts(context) as cd, - finalize_ephemeral_source_mounts(context.config) as sources, + finalize_source_mounts(context.config, ephemeral=context.config.build_sources_ephemeral) as sources, ): if build: step_msg = "Running prepare script {} in build overlay…" @@ -515,7 +515,7 @@ def run_build_scripts(context: Context) -> None: with ( mount_build_overlay(context, volatile=True), finalize_chroot_scripts(context) as cd, - finalize_ephemeral_source_mounts(context.config) as sources, + finalize_source_mounts(context.config, ephemeral=context.config.build_sources_ephemeral) as sources, ): for script in context.config.build_scripts: chroot = chroot_cmd( @@ -590,7 +590,7 @@ def run_postinst_scripts(context: Context) -> None: with ( finalize_chroot_scripts(context) as cd, - finalize_ephemeral_source_mounts(context.config) as sources, + finalize_source_mounts(context.config, ephemeral=context.config.build_sources_ephemeral) as sources, ): for script in context.config.postinst_scripts: chroot = chroot_cmd( @@ -652,7 +652,7 @@ def run_finalize_scripts(context: Context) -> None: with ( finalize_chroot_scripts(context) as cd, - finalize_ephemeral_source_mounts(context.config) as sources, + finalize_source_mounts(context.config, ephemeral=context.config.build_sources_ephemeral) as sources, ): for script in context.config.finalize_scripts: chroot = chroot_cmd( diff --git a/mkosi/installer/apt.py b/mkosi/installer/apt.py index a13da8b1f..0234cdd8a 100644 --- a/mkosi/installer/apt.py +++ b/mkosi/installer/apt.py @@ -8,7 +8,7 @@ from mkosi.config import Config from mkosi.context import Context from mkosi.installer import PackageManager from mkosi.log import die -from mkosi.mounts import finalize_ephemeral_source_mounts +from mkosi.mounts import finalize_source_mounts from mkosi.run import find_binary, run from mkosi.sandbox import apivfs_cmd from mkosi.types import _FILE, CompletedProcess, PathString @@ -174,7 +174,7 @@ class Apt(PackageManager): mounts: Sequence[PathString] = (), stdout: _FILE = None, ) -> CompletedProcess: - with finalize_ephemeral_source_mounts(context.config) as sources: + with finalize_source_mounts(context.config, ephemeral=context.config.build_sources_ephemeral) as sources: return run( cls.cmd(context, "apt-get") + [operation, *arguments], sandbox=( diff --git a/mkosi/installer/dnf.py b/mkosi/installer/dnf.py index 8cb9b7a54..ca831c4a6 100644 --- a/mkosi/installer/dnf.py +++ b/mkosi/installer/dnf.py @@ -8,7 +8,7 @@ from mkosi.context import Context from mkosi.installer import PackageManager from mkosi.installer.rpm import RpmRepository, rpm_cmd from mkosi.log import ARG_DEBUG -from mkosi.mounts import finalize_ephemeral_source_mounts +from mkosi.mounts import finalize_source_mounts from mkosi.run import find_binary, run from mkosi.sandbox import apivfs_cmd from mkosi.types import _FILE, CompletedProcess, PathString @@ -160,7 +160,7 @@ class Dnf(PackageManager): stdout: _FILE = None, ) -> CompletedProcess: try: - with finalize_ephemeral_source_mounts(context.config) as sources: + with finalize_source_mounts(context.config, ephemeral=context.config.build_sources_ephemeral) as sources: return run( cls.cmd(context) + [operation,*arguments], sandbox=( diff --git a/mkosi/installer/pacman.py b/mkosi/installer/pacman.py index 821ca5399..2ecb98837 100644 --- a/mkosi/installer/pacman.py +++ b/mkosi/installer/pacman.py @@ -8,7 +8,7 @@ from typing import NamedTuple from mkosi.config import Config from mkosi.context import Context from mkosi.installer import PackageManager -from mkosi.mounts import finalize_ephemeral_source_mounts +from mkosi.mounts import finalize_source_mounts from mkosi.run import run from mkosi.sandbox import apivfs_cmd from mkosi.types import _FILE, CompletedProcess, PathString @@ -150,7 +150,7 @@ class Pacman(PackageManager): apivfs: bool = False, stdout: _FILE = None, ) -> CompletedProcess: - with finalize_ephemeral_source_mounts(context.config) as sources: + with finalize_source_mounts(context.config, ephemeral=context.config.build_sources_ephemeral) as sources: return run( cls.cmd(context) + [operation, *arguments], sandbox=( diff --git a/mkosi/installer/zypper.py b/mkosi/installer/zypper.py index 1ea97882b..6e09c9b68 100644 --- a/mkosi/installer/zypper.py +++ b/mkosi/installer/zypper.py @@ -8,7 +8,7 @@ from mkosi.config import Config, yes_no from mkosi.context import Context from mkosi.installer import PackageManager from mkosi.installer.rpm import RpmRepository, rpm_cmd -from mkosi.mounts import finalize_ephemeral_source_mounts +from mkosi.mounts import finalize_source_mounts from mkosi.run import run from mkosi.sandbox import apivfs_cmd from mkosi.types import _FILE, CompletedProcess, PathString @@ -120,7 +120,7 @@ class Zypper(PackageManager): apivfs: bool = False, stdout: _FILE = None, ) -> CompletedProcess: - with finalize_ephemeral_source_mounts(context.config) as sources: + with finalize_source_mounts(context.config, ephemeral=context.config.build_sources_ephemeral) as sources: return run( cls.cmd(context) + [operation, *arguments], sandbox=( diff --git a/mkosi/mounts.py b/mkosi/mounts.py index dfd8c4e06..246fbb72c 100644 --- a/mkosi/mounts.py +++ b/mkosi/mounts.py @@ -123,10 +123,10 @@ def mount_overlay( @contextlib.contextmanager -def finalize_ephemeral_source_mounts(config: Config) -> Iterator[list[PathString]]: +def finalize_source_mounts(config: Config, *, ephemeral: bool) -> Iterator[list[PathString]]: with contextlib.ExitStack() as stack: mounts = ( - (stack.enter_context(mount_overlay([source])) if config.build_sources_ephemeral else source, target) + (stack.enter_context(mount_overlay([source])) if ephemeral else source, target) for source, target in {t.with_prefix(Path("/work/src")) for t in config.build_sources} )