mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-31 08:07:19 -05:00
fix: replay held omissions in install regions
The builder keeps a held regional fallback when the requested file is missing (since 2026-10-17), and the comment beside the manifest's omissions still said the opposite. A file the builder holds but the manifest cannot download sat in omitted_files counted unheld, so the installer kept a fallback the pack drops. Such an omission now carries held: true and narrow() counts it held, as the builder does.
This commit is contained in:
1 parent
7ca6adca56
commit
ef69687fe1
6 files changed
+139
-17
No files matched your search
+6
-2
@@ -1754,6 +1754,8 @@ def _check_omission(entry: dict, dest: str) -> None:
|
||||
raise ValueError(f"invalid omitted required flag for {dest}")
|
||||
if entry.get("reason") not in OMISSION_REASONS:
|
||||
raise ValueError(f"invalid omission reason for {dest}")
|
||||
if "held" in entry and entry["held"] is not True:
|
||||
raise ValueError(f"invalid omitted held flag for {dest}")
|
||||
cores = entry.get("cores")
|
||||
if cores is not None and (
|
||||
not isinstance(cores, list)
|
||||
@@ -2516,8 +2518,10 @@ def narrow(
|
||||
omitted = _filter_by_target(omitted, cores)
|
||||
if regions:
|
||||
# The builder's held set: what the collection serves. An omission
|
||||
# answers the request but takes no installable file's place.
|
||||
held = {f["dest"] for f in files}
|
||||
# answers the request but takes no installable file's place, unless
|
||||
# the builder holds it (held: true) and only this download lacks it:
|
||||
# the pack drops the fallback it displaces, and so does this.
|
||||
held = {f["dest"] for f in files} | {o["dest"] for o in omitted if o.get("held")}
|
||||
dropped = region_drops(files + omitted, regions, systems, held)
|
||||
files = [f for f in files if f["dest"] not in dropped]
|
||||
omitted = [o for o in omitted if o["dest"] not in dropped]
|
||||
|
||||
Reference in new issue
Block a user