]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Remove unneeded directories as well in process_kernel_modules()
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 18 Mar 2024 09:01:28 +0000 (10:01 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 18 Mar 2024 09:05:23 +0000 (10:05 +0100)
mkosi/kmod.py

index fbbb5cedd8b67010ba9402175f0c0e93ed78d547..8fafa7650d6957790581279c99fd14069b64c2ed 100644 (file)
@@ -222,19 +222,25 @@ def process_kernel_modules(
             gen_required_kernel_modules(root, kver, include=include, exclude=exclude, host=host, sandbox=sandbox)
         )
 
-        for m in (root / "usr/lib/modules" / kver).rglob("*.ko*"):
+        for m in sorted((root / "usr/lib/modules" / kver / "kernel").rglob("*"), reverse=True):
             if m in required:
                 continue
 
-            logging.debug(f"Removing module {m}")
-            m.unlink()
+            if m.is_file() or m.is_symlink():
+                logging.debug(f"Removing module {m}")
+                m.unlink()
+            else:
+                m.rmdir()
 
-        for fw in (m for m in (root / "usr/lib/firmware").rglob("*") if not m.is_dir()):
+        for fw in sorted((root / "usr/lib/firmware").rglob("*"), reverse=True):
             if fw in required:
                 continue
 
             if any(fw.is_relative_to(root / "usr/lib/firmware" / d) for d in ("amd-ucode", "intel-ucode")):
                 continue
 
-            logging.debug(f"Removing firmware {fw}")
-            fw.unlink()
+            if fw.is_file() or fw.is_symlink():
+                logging.debug(f"Removing firmware {fw}")
+                fw.unlink()
+            else:
+                fw.rmdir()