Skip to content

Download the USVFS fix from ModSync's mirror first - #78

Merged
skjiisa merged 1 commit into
mainfrom
usvfs-mirror
Oct 3, 2026
Merged

skjiisa merged 1 commit into
mainfrom
usvfs-mirror

Conversation

@skjiisa

@skjiisa skjiisa commented Oct 3, 2026

Copy link
Copy Markdown
Owner

Why

The ARM64 USVFS fix (#77) downloaded from ndabas's fork release only. If that release went away, Apply would stop working for anyone without a cached copy. Once ModSync hosts the binaries it also distributes GPL-3 object code, so the source has to be available next to it, not only on someone else's fork.

The mirror

skjiisa/usvfs v0.5.6.1-woa.1 is a fork of ndabas/usvfs, which carries the full history including the pinned commit 866ce70. Its release has:

  • usvfs_v0.5.6.1-woa.1.7z: byte-identical to ndabas's (acfbdb92…, the hash ModSync already pins).
  • usvfs-v0.5.6.1-woa.1-src.tar.gz: commit 866ce70 with its asmjit, spdlog and udis86 submodules, made with git archive. Rebuilding it gives the same SHA-256 (f5655af8…).
  • SHA256SUMS, plus notes crediting ndabas and usvfs#93, the build instructions and the license.

Change

  • ARCHIVE_URLS: the mirror, then ndabas's release. ensure_cached() tries them in order. A failed download, wrong size or wrong hash moves on to the next URL. If every URL fails, the last reason is reported. Both are checked against the same pinned SHA-256, so the mirror can't change what gets installed.
  • Docs and the README's dependency-table link point at the mirror; the CHANGELOG entry mentions it.

Testing

  • New tests: a bad mirror falls back to the original; a good mirror is used alone.
  • Real download through ensure_cached() into a scratch data dir: fetched from the mirror only, extracted, and every file matched PATCHED.
  • An anonymous curl of the mirror URL gives the pinned hash.
  • uv run pytest -q: 415 passed, 3 skipped.

🤖 Generated with Claude Code

skjiisa/usvfs is a fork of ndabas/usvfs with a v0.5.6.1-woa.1 release
carrying the byte-identical archive (same SHA-256 as the pin), a reproducible
source tarball of commit 866ce70 with its submodules, and SHA256SUMS.
ensure_cached() now tries that mirror first and falls back to ndabas's
release, so Apply keeps working if the original release disappears, and
ModSync's distribution of the binaries has its source next to it. Both are
checked against the same pinned hash, so the mirror can't change what gets
installed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@skjiisa
skjiisa merged commit db1cecb into main Oct 3, 2026
2 checks passed
@skjiisa
skjiisa deleted the usvfs-mirror branch October 3, 2026 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant