]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Run depmod and modinfo on host again
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 21 Dec 2023 10:07:36 +0000 (11:07 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 21 Dec 2023 15:45:00 +0000 (16:45 +0100)
Running these in the chroot is much slower when building images for
another architecture. Also, we might soon have a way to prevent dnf
from running depmod (see
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2743), so
let's adopt that when it is merged.

mkosi/__init__.py
mkosi/kmod.py
tests/test_initrd.py

index 19401edac678e5f938e3430a8f71fd6f78ceec28..53e0f91afeda0d396adf158f54361dd552116822 100644 (file)
@@ -2058,20 +2058,7 @@ def run_depmod(state: MkosiState) -> None:
     if state.config.overlay or state.config.output_format.is_extension_image():
         return
 
-    outputs = (
-        "modules.dep",
-        "modules.dep.bin",
-        "modules.symbols",
-        "modules.symbols.bin",
-    )
-
     for kver, _ in gen_kernel_images(state):
-        if (
-            not state.config.kernel_modules_exclude and
-            all((state.root / "usr/lib/modules" / kver / o).exists() for o in outputs)
-        ):
-            continue
-
         process_kernel_modules(
             state.root, kver,
             state.config.kernel_modules_include,
@@ -2080,7 +2067,7 @@ def run_depmod(state: MkosiState) -> None:
         )
 
         with complete_step(f"Running depmod for {kver}"):
-            bwrap(chroot_cmd(state.root) + ["depmod", "--all", kver])
+            run(["depmod", "--all", "--basedir", state.root, kver])
 
 
 def run_sysusers(state: MkosiState) -> None:
index 0844d39d4575c801507a748a8cf1a76d5cffe0c0..d0239a9cdb6a53218a63c4c1494294565f0be583 100644 (file)
@@ -8,7 +8,7 @@ from collections.abc import Iterator, Sequence
 from pathlib import Path
 
 from mkosi.log import complete_step, log_step
-from mkosi.run import bwrap, chroot_cmd
+from mkosi.run import run
 
 
 def loaded_modules() -> list[str]:
@@ -76,8 +76,8 @@ def resolve_module_dependencies(root: Path, kver: str, modules: Sequence[str]) -
     info = ""
     for i in range(0, len(nametofile.keys()), 8500):
         chunk = list(nametofile.keys())[i:i+8500]
-        info += bwrap(chroot_cmd(root) + ["modinfo", "--set-version", kver, "--null", *chunk],
-                      stdout=subprocess.PIPE).stdout.strip()
+        info += run(["modinfo", "--basedir", root, "--set-version", kver, "--null", *chunk],
+                    stdout=subprocess.PIPE).stdout.strip()
 
     log_step("Calculating required kernel modules and firmware")
 
index 99623a6720659986171a344fd27dc9d1054c223d..874f53caae2b4028b9fd32338b077ddcbf5d1d42 100644 (file)
@@ -239,7 +239,7 @@ def test_initrd_size(initrd: Image) -> None:
         Distribution.debian: 40,
         Distribution.ubuntu: 36,
         Distribution.arch: 47,
-        Distribution.opensuse: 36,
+        Distribution.opensuse: 39,
     }.get(initrd.config.distribution, 48)
 
     assert (Path(initrd.output_dir.name) / "initrd").stat().st_size <= maxsize