from mkosi.state import MkosiState
from mkosi.tree import copy_tree, rmtree
from mkosi.types import PathString
-from mkosi.util import sort_packages
+from mkosi.util import flatten, sort_packages
def invoke_emerge(state: MkosiState, packages: Sequence[str] = (), apivfs: bool = True) -> None:
"--bind", state.cache_dir / "stage3/var", "/var",
"--ro-bind", "/etc/resolv.conf", "/etc/resolv.conf",
"--bind", state.cache_dir / "repos", "/var/db/repos",
+ *flatten(["--bind", str(d), str(d)] for d in (state.config.workspace_dir, state.config.cache_dir) if d),
],
env=dict(
PKGDIR=str(state.cache_dir / "binpkgs"),
network=True,
)
- bwrap(cmd=chroot + ["emerge-webrsync"])
+ bwrap(cmd=chroot + ["emerge-webrsync"],
+ options=flatten(["--bind", d, d] for d in (state.config.workspace_dir, state.config.cache_dir) if d))
invoke_emerge(state, packages=["sys-apps/baselayout"], apivfs=False)
from mkosi.run import apivfs_cmd, bwrap
from mkosi.state import MkosiState
from mkosi.types import PathString
-from mkosi.util import sort_packages
+from mkosi.util import flatten, sort_packages
def setup_apt(state: MkosiState, repos: Sequence[str]) -> None:
apivfs: bool = True,
) -> None:
cmd = apivfs_cmd(state.root) if apivfs else []
- bwrap(cmd + apt_cmd(state, command) + [operation, *sort_packages(packages)], env=state.config.environment)
+ bwrap(cmd + apt_cmd(state, command) + [operation, *sort_packages(packages)],
+ options=flatten(["--bind", d, d] for d in (state.config.workspace_dir, state.config.cache_dir) if d),
+ env=state.config.environment)
from mkosi.state import MkosiState
from mkosi.tree import rmtree
from mkosi.types import PathString
-from mkosi.util import sort_packages
+from mkosi.util import flatten, sort_packages
class Repo(NamedTuple):
def invoke_dnf(state: MkosiState, command: str, packages: Iterable[str], apivfs: bool = True) -> None:
cmd = apivfs_cmd(state.root) if apivfs else []
- bwrap(cmd + dnf_cmd(state) + [command, *sort_packages(packages)], env=state.config.environment)
+ bwrap(cmd + dnf_cmd(state) + [command, *sort_packages(packages)],
+ options=flatten(["--bind", d, d] for d in (state.config.workspace_dir, state.config.cache_dir) if d),
+ env=state.config.environment)
fixup_rpmdb_location(state.root)
from mkosi.run import apivfs_cmd, bwrap
from mkosi.state import MkosiState
from mkosi.types import PathString
-from mkosi.util import sort_packages
+from mkosi.util import flatten, sort_packages
def setup_pacman(state: MkosiState) -> None:
def invoke_pacman(state: MkosiState, packages: Sequence[str], apivfs: bool = True) -> None:
cmd = apivfs_cmd(state.root) if apivfs else []
- bwrap(cmd + pacman_cmd(state) + ["-Sy", *sort_packages(packages)], env=state.config.environment)
+ bwrap(cmd + pacman_cmd(state) + ["-Sy", *sort_packages(packages)],
+ options=flatten(["--bind", d, d] for d in (state.config.workspace_dir, state.config.cache_dir) if d),
+ env=state.config.environment)
from mkosi.run import apivfs_cmd, bwrap
from mkosi.state import MkosiState
from mkosi.types import PathString
-from mkosi.util import sort_packages
+from mkosi.util import flatten, sort_packages
def setup_zypper(state: MkosiState, repos: Sequence[Repo]) -> None:
apivfs: bool = True,
) -> None:
cmd = apivfs_cmd(state.root) if apivfs else []
- bwrap(cmd + zypper_cmd(state) + [verb, *sort_packages(packages), *options], env=state.config.environment)
+ bwrap(cmd + zypper_cmd(state) + [verb, *sort_packages(packages), *options],
+ options=flatten(["--bind", d, d] for d in (state.config.workspace_dir, state.config.cache_dir) if d),
+ env=state.config.environment)
fixup_rpmdb_location(state.root)