]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Use Path.relative_to instead of Path.parts
authorLaurence Kiln <246209442+LaurenceKiln@users.noreply.github.com>
Fri, 5 Dec 2025 21:31:32 +0000 (23:31 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Sat, 6 Dec 2025 20:14:08 +0000 (21:14 +0100)
mkosi/kmod.py

index ecce5193ffd848f134c4a1c836d667fc5b8e883c..c25d923af0704f6d3cb2d31963701cab679c7d81 100644 (file)
@@ -107,7 +107,7 @@ def filter_kernel_modules(
         globs = [normalize_module_glob(p) for p in include if not p.startswith("re:")]
 
         for m in modules:
-            rel = os.fspath(Path(*m.parts[5:]))
+            rel = os.fspath(m.relative_to(modulesd))
 
             if (patterns and regex.search(rel)) or globs_match_module(normalize_module_name(rel), globs):
                 keep.add(rel)
@@ -119,7 +119,7 @@ def filter_kernel_modules(
 
         remove = set()
         for m in modules:
-            rel = os.fspath(Path(*m.parts[5:]))
+            rel = os.fspath(m.relative_to(modulesd))
             if rel not in keep and regex.search(rel):
                 remove.add(m)
 
@@ -145,6 +145,8 @@ def filter_firmware(
     if exclude:
         logging.debug(f"Firmware exclude: {' '.join(exclude)}")
 
+    firmwared = Path("usr/lib/firmware")
+
     # globs can be also used to exclude firmware, so we we need to apply them
     # to the inherited list of firmware files too.
     globs = [p for p in include if not p.startswith("re:")]
@@ -156,14 +158,13 @@ def filter_firmware(
         regex = re.compile("|".join(patterns))
 
         for f in firmware:
-            rel = os.fspath(Path(*f.parts[3:]))
+            rel = os.fspath(f.relative_to(firmwared))
             if (patterns and regex.search(rel)) or not globs_match_firmware(rel, globs, match_default=True):
                 remove.add(f)
 
         firmware -= remove
 
     if include:
-        firmwared = Path("usr/lib/firmware")
         with chdir(root):
             all_firmware = {p for p in firmwared.rglob("*") if p.is_file() or p.is_symlink()}
 
@@ -171,7 +172,7 @@ def filter_firmware(
         regex = re.compile("|".join(patterns))
 
         for f in all_firmware:
-            rel = os.fspath(Path(*f.parts[3:]))
+            rel = os.fspath(f.relative_to(firmwared))
             if (patterns and regex.search(rel)) or globs_match_firmware(rel, globs):
                 firmware.add(f)