Let's make it configurable whether we make sources ephemeral or not.
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
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…"
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(
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(
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(
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
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=(
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
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=(
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
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=(
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
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=(
@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}
)