From 505a342417e6b6200993387a21693ef8bb3fb1d2 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 2 Sep 2026 15:38:51 +0000 Subject: [PATCH] wolf: fix info.zip pack never actually installing (broke content matching for every core) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Confirmed live: RetroArch's file browser and directory-scan importer both failed to recognize SNES ROMs (.sfc) even though the ROM files and the snes9x core .so were both genuinely present and correctly mounted — the core's own .info file (which declares supported_extensions) was never actually installed, because the "already present, skip" check for the info.zip pack was "is $CORES_DIR non-empty", and $CORES_DIR is always non-empty by the time that check runs (the core .so files fill it first, earlier in the same `cores all` run). So the info-pack fetch silently no-op'd on every single install, fresh or not — not specific to this laptop. Give "info" its own real check: does $CORES_DIR actually contain any *.info files, not just anything at all. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01VLX1yYKJExGSXmgUhxKQG6 --- services/wolf.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/services/wolf.sh b/services/wolf.sh index e40dd28..ce21bac 100644 --- a/services/wolf.sh +++ b/services/wolf.sh @@ -1753,7 +1753,17 @@ fuse scummvm" "autoconfig:$RA_CFG_DIR/autoconfig" \ "info:$CORES_DIR"; do pack="${pair%%:*}"; dest="${pair#*:}" - [ -d "$dest" ] && [ "$(ls -A "$dest" 2>/dev/null)" ] && [ "$FORCE" != "force" ] && continue + # "info" shares $CORES_DIR with the core .so files downloaded + # above, so "is the destination non-empty" is always true + # there and would skip this pack every time (confirmed + # live: exactly this made every .info file silently never + # install, breaking content-database extension matching for + # every core). Check for its own actual content instead. + if [ "$pack" = "info" ]; then + [ -n "$(ls "$dest"/*.info 2>/dev/null)" ] && [ "$FORCE" != "force" ] && continue + else + [ -d "$dest" ] && [ "$(ls -A "$dest" 2>/dev/null)" ] && [ "$FORCE" != "force" ] && continue + fi echo "Fetching $pack.zip..." tmp=$(mktemp) if curl -fsSL -o "$tmp" "$ASSETS_BASE/$pack.zip"; then