fix: drop bundled files from provenance needs

profile_needs read every profile entry, so --missing named 43 files the emulator installs itself among 50 needs and buried the six xm7 ROMs. A bundled entry is skipped unless a platform package leaves it out (not_bundled_on). The report now lists 7 needs.
This commit is contained in:
Abdessamad Derraz committed 2026-11-05 19:30:57 +01:00
1 parent a05b1da9a0
commit 137f971dae
2 files changed
+21 -1

No files matched your search

+6 -1
View File
@@ -66,7 +66,8 @@ def profile_needs(profiles: dict, db: dict) -> dict:
Keyed by every hash a profile accepts, and, for an entry that declares
a size and no hash, by its names casefolded. An entry with neither
cannot be told apart from any same-named dump and is left out.
cannot be told apart from any same-named dump and is left out, as is a
file the emulator installs itself (`bundled:`) on every platform.
"""
files = db.get("files", {})
indexes = db.get("indexes", {})
@@ -92,6 +93,10 @@ def profile_needs(profiles: dict, db: dict) -> dict:
name = str(entry.get("name", ""))
if not name or name.endswith("/"):
continue
# Installed with the emulator, so not an acquisition target,
# unless a platform package leaves it out.
if entry.get("bundled") and not entry.get("not_bundled_on"):
continue
need = {"emulator": emulator, "name": name,
"required": bool(entry.get("required"))}
hashes = {(field, v) for field in HASH_FIELDS for v in _values(entry, field)}