from mkosi.distributions import Distribution, detect_distribution
from mkosi.documentation import show_docs
from mkosi.installer import clean_package_manager_metadata
-from mkosi.kmod import gen_required_kernel_modules, loaded_modules, process_kernel_modules
+from mkosi.kmod import gen_required_kernel_modules, is_valid_kdir, loaded_modules, process_kernel_modules
from mkosi.log import ARG_DEBUG, complete_step, die, log_notice, log_step
from mkosi.manifest import Manifest
from mkosi.mounts import (
if not cache:
for modulesd in (context.root / "usr/lib/modules").glob("*"):
- if not modulesd.is_dir() or (
- (modulesd / "updates").exists() and len(list(modulesd.glob("*"))) == 1
- ):
+ if not is_valid_kdir(modulesd):
continue
process_kernel_modules(
)
for modulesd in (context.root / "usr/lib/modules").glob("*"):
- if not modulesd.is_dir() or ((modulesd / "updates").exists() and len(list(modulesd.glob("*"))) == 1):
+ if not is_valid_kdir(modulesd):
continue
if (
p.parent.rmdir()
elif p.exists():
p.rmdir()
+
+
+def is_valid_kdir(kdir: Path) -> bool:
+ dircontent = list(kdir.glob("*"))
+
+ # kdir does not exist or is empty
+ if not dircontent:
+ return False
+
+ # check that kdir contains more than just updates
+ return dircontent != [kdir / "updates"]