From: Daan De Meyer Date: Sun, 12 Mar 2023 15:54:00 +0000 (+0100) Subject: Stop mounting package caches into images when running scripts X-Git-Tag: v15~298 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=06f6410f9af2431fe2bce43bdcde7158c2058312;p=thirdparty%2Fmkosi.git Stop mounting package caches into images when running scripts The package manager in the container might be a very different version than the one running on the host which could cause all sorts of caching issues. Since we don't need the caches in the image anymore as we run the package managers outside of the image, let's stop mounting the cache directory into the image when running scripts as well. --- diff --git a/mkosi/__init__.py b/mkosi/__init__.py index f3c874ced..114073437 100644 --- a/mkosi/__init__.py +++ b/mkosi/__init__.py @@ -500,10 +500,6 @@ def configure_serial_terminal(state: MkosiState) -> None: """) -def cache_params(state: MkosiState, root: Path) -> list[PathString]: - return flatten(("--bind", state.cache, root / p) for p in state.installer.cache_path()) - - def mount_build_overlay(state: MkosiState) -> ContextManager[Path]: return mount_overlay(state.root, state.build_overlay, state.workdir, state.root) @@ -519,7 +515,6 @@ def run_prepare_script(state: MkosiState, cached: bool, build: bool) -> None: bwrap: list[PathString] = [ "--bind", state.config.build_sources, "/root/src", "--bind", state.config.prepare_script, "/root/prepare", - *cache_params(state, Path("/")), "--chdir", "/root/src", ] @@ -561,7 +556,6 @@ def run_postinst_script(state: MkosiState) -> None: with complete_step("Running postinstall script…"): bwrap: list[PathString] = [ "--bind", state.config.postinst_script, "/root/postinst", - *cache_params(state, Path("/")), ] run_workspace_command(state, ["/root/postinst", "final"], bwrap_params=bwrap, diff --git a/mkosi/distributions/__init__.py b/mkosi/distributions/__init__.py index ded241a59..f32fc486c 100644 --- a/mkosi/distributions/__init__.py +++ b/mkosi/distributions/__init__.py @@ -23,10 +23,6 @@ class DistributionInstaller: def initrd_path(kver: str) -> Path: return Path("boot") / f"initramfs-{kver}.img" - @classmethod - def cache_path(cls) -> list[str]: - raise NotImplementedError - @classmethod def install_packages(cls, state: "MkosiState", packages: Sequence[str]) -> None: raise NotImplementedError diff --git a/mkosi/distributions/arch.py b/mkosi/distributions/arch.py index 867a73e87..faca026cb 100644 --- a/mkosi/distributions/arch.py +++ b/mkosi/distributions/arch.py @@ -11,10 +11,6 @@ from mkosi.types import PathString class ArchInstaller(DistributionInstaller): - @classmethod - def cache_path(cls) -> list[str]: - return ["var/cache/pacman/pkg"] - @classmethod def filesystem(cls) -> str: return "ext4" diff --git a/mkosi/distributions/centos.py b/mkosi/distributions/centos.py index 7a9cb6dda..f33e2e967 100644 --- a/mkosi/distributions/centos.py +++ b/mkosi/distributions/centos.py @@ -27,9 +27,6 @@ def move_rpm_db(root: Path) -> None: class CentosInstaller(DistributionInstaller): - @classmethod - def cache_path(cls) -> list[str]: - return ["var/cache/yum", "var/cache/dnf"] @classmethod def filesystem(cls) -> str: diff --git a/mkosi/distributions/debian.py b/mkosi/distributions/debian.py index 800b40694..a9eafd329 100644 --- a/mkosi/distributions/debian.py +++ b/mkosi/distributions/debian.py @@ -33,10 +33,6 @@ class DebianInstaller(DistributionInstaller): state.root.joinpath("etc/resolv.conf").unlink(missing_ok=True) state.root.joinpath("etc/resolv.conf").symlink_to("../run/systemd/resolve/resolv.conf") - @classmethod - def cache_path(cls) -> list[str]: - return ["var/cache/apt/archives"] - @classmethod def filesystem(cls) -> str: return "ext4" diff --git a/mkosi/distributions/fedora.py b/mkosi/distributions/fedora.py index f4fb8127b..bd0452b3b 100644 --- a/mkosi/distributions/fedora.py +++ b/mkosi/distributions/fedora.py @@ -29,10 +29,6 @@ FEDORA_KEYS_MAP = { class FedoraInstaller(DistributionInstaller): - @classmethod - def cache_path(cls) -> list[str]: - return ["var/cache/dnf"] - @classmethod def filesystem(cls) -> str: return "btrfs" diff --git a/mkosi/distributions/gentoo.py b/mkosi/distributions/gentoo.py index 0ef891eae..0165ff971 100644 --- a/mkosi/distributions/gentoo.py +++ b/mkosi/distributions/gentoo.py @@ -374,10 +374,6 @@ class Gentoo: class GentooInstaller(DistributionInstaller): - @classmethod - def cache_path(cls) -> list[str]: - return ["var/cache/binpkgs", "var/cache/distfiles"] - @classmethod def filesystem(cls) -> str: return "ext4" diff --git a/mkosi/distributions/mageia.py b/mkosi/distributions/mageia.py index ff02d1926..ae4f8413c 100644 --- a/mkosi/distributions/mageia.py +++ b/mkosi/distributions/mageia.py @@ -10,10 +10,6 @@ from mkosi.log import complete_step class MageiaInstaller(DistributionInstaller): - @classmethod - def cache_path(cls) -> list[str]: - return ["var/cache/dnf"] - @classmethod def filesystem(cls) -> str: return "ext4" diff --git a/mkosi/distributions/opensuse.py b/mkosi/distributions/opensuse.py index 54f1cda63..9beb15197 100644 --- a/mkosi/distributions/opensuse.py +++ b/mkosi/distributions/opensuse.py @@ -13,10 +13,6 @@ from mkosi.types import PathString class OpensuseInstaller(DistributionInstaller): - @classmethod - def cache_path(cls) -> list[str]: - return ["var/cache/zypp/packages"] - @classmethod def filesystem(cls) -> str: return "btrfs"