From: Paymon MARANDI Date: Sat, 20 May 2023 13:50:08 +0000 (-0400) Subject: gentoo: support prebuilt initrds. X-Git-Tag: v15~103^2~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ebd54cede30baf18e97269b1868674586ff42937;p=thirdparty%2Fmkosi.git gentoo: support prebuilt initrds. Signed-off-by: Paymon MARANDI --- diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9540b4479..8a1c23230 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,8 +119,7 @@ jobs: - fedora - rocky - alma - # Disabled until gentoo supports prebuilt initrds. - # - gentoo + - gentoo - opensuse format: - directory diff --git a/mkosi/distributions/gentoo.py b/mkosi/distributions/gentoo.py index ae0dc49f8..8e0682d07 100644 --- a/mkosi/distributions/gentoo.py +++ b/mkosi/distributions/gentoo.py @@ -1,12 +1,12 @@ # SPDX-License-Identifier: LGPL-2.1+ -from dataclasses import dataclass import logging import os import re import urllib.parse import urllib.request from collections.abc import Sequence +from dataclasses import dataclass from pathlib import Path from textwrap import dedent from typing import List, Optional @@ -18,13 +18,14 @@ from mkosi.log import ARG_DEBUG, complete_step, die, log_step from mkosi.remove import unlink_try_hard from mkosi.run import run, run_workspace_command from mkosi.state import MkosiState +from mkosi.types import PathString def invoke_emerge( state: MkosiState, sysroot: Optional[Path] = None, root: Optional[Path] = None, - bwrap_params: list[str] = [], + bwrap_params: list[PathString] = [], pkgs: Sequence[str] = (), actions: Sequence[str] = (), opts: Sequence[str] = (), @@ -32,9 +33,9 @@ def invoke_emerge( ) -> None: jobs = os.cpu_count() or 1 if sysroot is not None: - target_root_mntp = Path("/tmp/mkosi-root") + target_root_mntp = "/tmp/mkosi-root" bwrap_params += ["--bind", state.root, target_root_mntp] - root = target_root_mntp + root = Path(target_root_mntp) else: sysroot = state.root root = None @@ -173,9 +174,9 @@ class Gentoo: """ try: from portage.const import ( # type: ignore + BINREPOS_CONF_FILE, EBUILD_SH_ENV_DIR, USER_CONFIG_PATH, - BINREPOS_CONF_FILE, ) except ImportError as e: logging.warn(NEED_PORTAGE_MSG) @@ -364,7 +365,7 @@ class Gentoo: copy_path(self.portage_cfg_dir, root_portage_cfg) def get_snapshot_of_portage_tree(self) -> None: - bwrap_params = ["--bind", self.state.cache / "repos", "/var/db/repos"] + bwrap_params: list[PathString] = ["--bind", self.state.cache / "repos", "/var/db/repos"] run_workspace_command(self.stage3_cache, ["/usr/bin/emerge-webrsync"], bwrap_params=bwrap_params, network=True)