fix: key an emulator folder omission by its cores

Since 7f20702b4 an omission read in an emulator's own folder is one per
folder, and the folder is the core's: mame2015 and mame2016 each list
3dobios.zip. The check keyed omissions by root and dest alone and read
seven manifests as listing one place twice.
This commit is contained in:
Abdessamad Derraz committed 2026-11-11 14:35:59 +01:00
1 parent 2f9152e77a
commit 0b36d77071
2 files changed
+25 -1

No files matched your search

+7 -1
View File
@@ -714,7 +714,13 @@ def _semantic_install_checks(path: Path, manifest: dict) -> list[str]:
destinations = [(entry.get("root"), entry.get("dest")) for entry in files]
if len(destinations) != len(set(destinations)):
out.append(f"{path.relative_to(ROOT)}: duplicate destinations")
omitted_destinations = [(entry.get("root"), entry.get("dest")) for entry in omitted]
# root: emulator is each core's own folder: mame2015 and mame2016 read
# 3dobios.zip in two places, one omission each, named by its cores.
omitted_destinations = [
(entry.get("root"), entry.get("dest"),
tuple(entry.get("cores") or ()) if entry.get("root") == "emulator" else ())
for entry in omitted
]
if len(omitted_destinations) != len(set(omitted_destinations)):
out.append(f"{path.relative_to(ROOT)}: duplicate omitted destinations")
overlap = set(destinations) & set(omitted_destinations)