Files
sergioandClaude Opus 4.8 1670ebf933 Etapa G: frente Go — toolchain go.toml + patron de build de-riskeado
Las 13 recetas Go de la escoria (amfora/cheat/dnsx/croc/dyff/csvtk/git-town/
miller/jump/gron/qrcp/walk/gtrash) esperaban un toolchain Go. Lo construyo:

- recipes/go.toml: empaqueta el tarball binario oficial go1.26.4 (estatico ⇒
  corre en el sandbox musl), reubica GOROOT a /usr/lib/go, expone go/gofmt.
  Sella y se materializa como overlay via deps.build=["go"]. Pragmatico
  (como Alpine/nix); bootstrap-desde-fuente queda como frente futuro (cf mrustc).
- DE-RISK end-to-end: amfora compila OFFLINE con  +  ⇒ binario estatico que corre (Amfora v1.11.0).
- amfora.toml: plantilla de referencia del patron Go (phases compile correctas).

Muro restante (mecanico, sin incognitas): el source de hammer es repo+commit
sin vendor/; el build offline no baja modulos. Falta que el importador (con red)
corra  y empaquete el source-vendoreado, igual que Rust vendorea
crates. Eso destraba las 13 de una.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 03:45:37 -04:00

29 lines
1.4 KiB
TOML

# go — toolchain Go como build-dep del corpus (Etapa G, frente Go).
# Destraba las recetas Go importadas (amfora/cheat/dnsx/croc/dyff/csvtk/git-town/
# miller/jump/gron/qrcp/walk/gtrash): declaran `deps.build = ["go"]` y hammer lo
# materializa como capa overlay ⇒ /usr/bin/go visible en el sandbox.
#
# Pragmático (igual que Alpine/nix): empaqueta el tarball BINARIO oficial, no lo
# bootstrapea desde fuente. El binario `go` es ESTÁTICO (statically linked, Go puro)
# ⇒ corre en el rootfs musl sin glibc. Bootstrap-desde-fuente (go1.4→…) queda como
# frente futuro, análogo a mrustc para Rust.
name = "go"
version = "1.26.4"
[source]
tarball = "https://go.dev/dl/go1.26.4.linux-amd64.tar.gz"
sha256 = "1153d3d50e0ac764b447adfe05c2bcf08e889d42a02e0fe0259bd47f6733ad7f"
[build]
compiler = "zig-cc" # inerte: no se compila nada, solo se reubica el árbol
target = "x86_64-linux-musl"
link = "static"
# El tarball extrae a `go/` (cwd del build). No hay nada que compilar: el toolchain
# ya viene binario. Solo reubicamos el GOROOT a /usr/lib/go y exponemos go/gofmt.
# El binario `go` resuelve GOROOT relativo a su ruta real ⇒ el symlink basta.
[build.phases]
configure = "true"
compile = "true"
install = "mkdir -p /out/usr/lib/go /out/usr/bin && cp -a . /out/usr/lib/go/ && ln -sf ../lib/go/bin/go /out/usr/bin/go && ln -sf ../lib/go/bin/gofmt /out/usr/bin/gofmt"