fix: resolve a loose archive entry by its members

gngeopi and neo-emu declare neogeo.zip loose and, apart, the ROMs they
open inside it. The archive pass took the copy holding them, the loose
entry resolved by name to another copy, and both verify --emulator and
the emulator pack reported the archive missing while the ZIP held it.
with_archive_members() gives the loose entry the members in verify, the
pack, slots and the gap report.
This commit is contained in:
Abdessamad Derraz committed 2026-10-21 05:05:54 +02:00
1 parent 348c56e94c
commit fb639647e6
5 files changed
+87 -4

No files matched your search

+5 -2
View File
@@ -37,7 +37,7 @@ from common import (
variant_base_name,
)
from packresolve import preferred_entries
from validation import outside_gap_scope
from validation import outside_gap_scope, with_archive_members
if TYPE_CHECKING:
from packextras import ExtraPlacement
@@ -241,7 +241,10 @@ def profile_claims(
full = placed[1]
# The owner's own copy is the one the builder ships.
local, status = resolve_local_file(
{**entry, "source_profile": emu_name},
{
**with_archive_members(entry, profile.get("files") or []),
"source_profile": emu_name,
},
db,
zip_contents,
dest_hint=dest,