Skip to main content

max / alloy

Require the licence file for an archive-pinned base too quasi-type's license_text caches <id>-<ver>-LICENSE.txt for any base declaring a license_url and only reads the zip when there is none, so the licence entry follows the url rather than the shape of the pin. The archive branch printed the zip and skipped it, which would leave a seed built to the gate one file short. Both current bases derive the same list as before.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-08-23 20:54 UTC
Signed with PGP, not checked
Commit: d5f9bc61309c5cc1706254c6f49d6481584c193a
Parent: 4498c1d
1 file changed, +8 insertions, -8 deletions
M Containerfile +8 -8
@@ -300,13 +300,13 @@
300 300 # joined the way `Face::cache_name` joins them, plus the `.zip` an archive-pinned
301 301 # base caches and the `-LICENSE.txt` a `license_url` caches.
302 302 #
303 - # THE ARCHIVE BRANCH NAMES ONLY THE ZIP, and that is a gap rather than the rule.
304 - # `license_text()` in quasi-type caches `<id>-<ver>-LICENSE.txt` for any base
305 - # declaring a `license_url`, archive-pinned or not, and reads the licence out of
306 - # the zip only when there is no such url. So an archive-pinned base that also
307 - # declares a `license_url` wants a file this derivation does not name, and a seed
308 - # built to it would be one file short. Neither base is in that shape today, which
309 - # is why nothing has failed; fix the derivation on the day one is.
303 + # THE ARCHIVE BRANCH NAMES THE ZIP AND THE LICENCE BOTH. `license_text()` in
304 + # quasi-type caches `<id>-<ver>-LICENSE.txt` for any base declaring a
305 + # `license_url`, archive-pinned or not, and reads the licence out of the zip only
306 + # when there is no such url. The licence entry therefore follows the url rather
307 + # than the shape of the pin, and the archive branch prints it too. Neither base
308 + # is archive-pinned today, so the derived list is the same either way; what this
309 + # buys is that the seed is not one file short on the day one is.
310 310 # Derived rather than listed here because a list would be a second copy of the
311 311 # pin, and it would go stale the first time QUASI_TYPE_REV moved to a base with
312 312 # a new version in its file names.
@@ -365,7 +365,7 @@
365 365 b = 0; \
366 366 for (s = 1; s <= ns; s++) if (sid[s] == w[i]) for (k = 1; k <= nb; k++) if (bid[k] == sbase[s]) b = k; \
367 367 if (b == 0) { print "unknown-slot:" w[i]; continue } \
368 - if (archive[b]) { print bid[b] "-" bver[b] ".zip"; continue } \
368 + if (archive[b]) { print bid[b] "-" bver[b] ".zip"; if (license[b]) print bid[b] "-" bver[b] "-LICENSE.txt"; continue } \
369 369 m = split(faces[b], f, " "); \
370 370 for (j = 1; j <= m; j++) print bid[b] "-" bver[b] "-" f[j]; \
371 371 if (license[b]) print bid[b] "-" bver[b] "-LICENSE.txt"; \