Skip to content

Keep TeX Live source builds available when a mirror breaks#1006

Open
brandonpayton wants to merge 2 commits into
mainfrom
fix/texlive-historic-mirror
Open

Keep TeX Live source builds available when a mirror breaks#1006
brandonpayton wants to merge 2 commits into
mainfrom
fix/texlive-historic-mirror

Conversation

@brandonpayton

@brandonpayton brandonpayton commented Jul 20, 2026

Copy link
Copy Markdown
Member

Why

The ABI 41 repair rebuild reached TeX Live but could not download its source archive. The Utah historic mirror is currently serving the wrong intermediate certificate, so GitHub Actions rejects the HTTPS connection with curl: (60) unable to get local issuer certificate. The later runtime-bundle phase used the same endpoint for install-tl and its package repository, so rotating only the first download would have moved the failure instead of fixing it.

What changes

  • Move the TeX Live source archive, install-tl, and frozen 2025 package repository to pi.kwarc.info, which TUG lists as an official historic-archive mirror.
  • Replace the source archive placeholder hash with the real SHA-256 and verify it before extraction.
  • Pin install-tl to its published SHA-512 and verify it before extraction.
  • Preserve environment overrides for callers that intentionally use another mirror.
  • Keep package revision 2 because the mirrored source archive bytes are identical; only source transport and integrity checks change.

Evidence

  • Failure: force-rebuild job 88271199875
  • TUG mirror list: https://tug.org/historic/README
  • Source archive: 111,136,556 bytes, SHA-256 fffdb1a3d143c177a4398a2229a40d6a88f18098e5f6dcfd57648c9f2417490f
  • Upstream source SHA-512: 0837c935488b96cfc8dd79f1298f283b467ab68b4163cee9cb04b79e80195982fdc5ae8a80058dc7d3e99206bfda8b3bdd11340425b08f60cbef70d5a0e22702
  • Independently downloaded install-tl SHA-512 matches upstream: a307d7d11bcbd1f054ad0b0d476f7f12bc1a40d07445020edef8713b44453831d18a2f1722c3d2b0ea2e4fe6c06183a79d1c4049495113f412a9f5a570a8614d
  • bash -n passed for both changed shell scripts.
  • shellcheck passed with only pre-existing informational findings in build-texlive.sh.
  • git diff --check passed.

Decisive validation

The normal staging workflow is not a valid TeX Live cross-build check because TeX Live is disabled in its package matrix. This PR's staging run therefore skipped TeX Live and selected unrelated packages missing from the staging index; that run was cancelled so it would not compete with the active ABI 41 recovery rebuild.

After this PR merges, a focused TeX Live wasm32 force rebuild from the exact merge commit will exercise the repaired production path end to end: source download, cross-build, runtime-bundle download, artifact publication, and index update.

@brandonpayton

Copy link
Copy Markdown
Member Author

Exact-head staging cannot exercise this repair because the staging matrix explicitly skips texlive as temporarily disabled. It began rebuilding unrelated entries that the concurrent canonical recovery had not published yet, so I cancelled run 29720020692 to preserve runner capacity. Exact-head source/provenance review is complete; the decisive validation is a focused post-merge texlive/wasm32 force rebuild.

@github-actions

Copy link
Copy Markdown

Phase B-1 matrix build status — pr-1006-staging

ABI v41. 0 built, 20 failed, 20 total.

Package Arch Status Sha
bash wasm32 failed
mariadb-test wasm32 failed
mariadb-vfs wasm32 failed
mariadb-vfs wasm64 failed
nethack wasm32 failed
node wasm32 failed
spidermonkey-node wasm32 failed
userspace wasm32 failed
vim wasm32 failed
wget wasm32 failed
xz wasm32 failed
zip wasm32 failed
zstd wasm32 failed
nethack-browser-bundle wasm32 failed
rootfs wasm32 failed
vim-browser-bundle wasm32 failed
shell wasm32 failed
lamp wasm32 failed
node-vfs wasm32 failed
wordpress wasm32 failed

Auto-generated; replaced on each push. Raw data in the publish-status workflow artifact.

@brandonpayton brandonpayton added skip-staging-tests Opt into skipping the staging tests. This does not skip tests before merge. and removed skip-staging-tests Opt into skipping the staging tests. This does not skip tests before merge. labels Jul 20, 2026
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