From 1054921d88d1a9ac42f72f673480ae86cffccb9a Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Tue, 18 Mar 2025 16:00:06 +0100 Subject: [PATCH] Have filter_kernel_modules() return a list of module names The only caller of this function only needs the list of module names, not the full paths so let's just return the list of module names. --- mkosi/kmod.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/mkosi/kmod.py b/mkosi/kmod.py index a66f98f2e..256c30bc4 100644 --- a/mkosi/kmod.py +++ b/mkosi/kmod.py @@ -81,7 +81,7 @@ def filter_kernel_modules( *, include: Iterable[str], exclude: Iterable[str], -) -> list[Path]: +) -> list[str]: logging.debug(f"Kernel modules include: {' '.join(include)}") logging.debug(f"Kernel modules exclude: {' '.join(exclude)}") @@ -127,7 +127,7 @@ def filter_kernel_modules( logging.debug(f"Including {len(modules)}/{n_modules} kernel modules.") - return sorted(modules) + return sorted(module_path_to_name(m) for m in modules) def filter_firmware( @@ -323,15 +323,22 @@ def gen_required_kernel_modules( # installed we have to take the slow path to make sure we don't copy firmware into the initrd that is not # depended on by any kernel modules. if modules_include or modules_exclude or (context.root / firmwared).glob("*"): - modules = filter_kernel_modules(context.root, kver, include=modules_include, exclude=modules_exclude) - names = [module_path_to_name(m) for m in modules] - mods, firmware = resolve_module_dependencies(context, kver, names) + modules, firmware = resolve_module_dependencies( + context, + kver, + modules=filter_kernel_modules( + context.root, + kver, + include=modules_include, + exclude=modules_exclude, + ), + ) else: logging.debug( "No modules excluded and no firmware installed, using kernel modules generation fast path" ) with chdir(context.root): - mods = set(modulesd.rglob("*.ko*")) + modules = set(modulesd.rglob("*.ko*")) firmware = set() # Include or exclude firmware explicitly configured @@ -350,17 +357,17 @@ def gen_required_kernel_modules( itertools.chain( { p.relative_to(context.root) - for f in mods | firmware + for f in modules | firmware for p in parents_below(context.root / f, context.root / "usr/lib") }, - mods, + modules, firmware, (p.relative_to(context.root) for p in (context.root / modulesd).glob("modules*")), ) ) if (modulesd / "vdso").exists(): - if not mods: + if not modules: yield from ( p.relative_to(context.root) for p in parents_below(context.root / modulesd / "vdso", context.root / "usr/lib") -- 2.47.2