]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Rename finalize_ephemeral_source_mounts and add ephemeral arguments
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 22 Feb 2024 07:28:59 +0000 (08:28 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 22 Feb 2024 12:31:21 +0000 (13:31 +0100)
Let's make it configurable whether we make sources ephemeral or not.

mkosi/__init__.py
mkosi/installer/apt.py
mkosi/installer/dnf.py
mkosi/installer/pacman.py
mkosi/installer/zypper.py
mkosi/mounts.py

index 755c7da5399f90eab30e7501b1b00b6bd085d6cb..a3333c94d0fb6d3a279ef06d0d46096ff1c6de8b 100644 (file)
@@ -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(
index a13da8b1f3216d33ada8fb0ee45a955298b60505..0234cdd8a66cd3835e39734d862d4b8ef9fa7944 100644 (file)
@@ -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=(
index 8cb9b7a5430ed0bf9023d86291281fdf32578c1b..ca831c4a68ee736851727464b56e7bebeb5de746 100644 (file)
@@ -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=(
index 821ca5399016d3e447f0e229e84107ba9209bb2b..2ecb988376e3476944e6a548a6c9f0dd4f792841 100644 (file)
@@ -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=(
index 1ea97882b8a12a8406654054aec52791597ad716..6e09c9b68ecb94d4c93c55dfed5684c20c083669 100644 (file)
@@ -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=(
index dfd8c4e067f15e659cc5e81df4628fe340c6fa70..246fbb72c8f9a75728a43f5c9e9643de7588d013 100644 (file)
@@ -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}
         )