Files
Sergio e852f48491 takana etapa 5a: los comentarios de las 741 recetas
Barrido de TEXTO puro: 1427 líneas de comentario TOML. Cero ArtifactHash
movidos, y eso está MEDIDO, no deducido: hasheé las 741 antes y después y los
ficheros de hashes son idénticos byte a byte (723 con hash real + 18 que ya no
hasheaban de antes).

El guardián valió la pena: el primer barrido, filtrando por 'la línea empieza
con #', movió el hash de helix, lsof y steam-runtime-sniper. La causa es que una
fase se escribe como compile = <triple> ... <triple> y sus comentarios de SHELL
también empiezan con #, pero viven dentro del VALOR — y las fases sí entran en
hash_inputs. El barrido ahora calcula los rangos de las cadenas multilínea de
TOML y no entra ahí.

Quedan intactos a propósito: .hammer-zig-cc y .hammer-cargo-vendor (literales
dentro de fases), hammerd, hammer-recover y toda ruta que empiece por /
2026-09-09 19:23:26 +00:00

56 lines
3.2 KiB
TOML

# Importada de nixpkgs por `takana import-nix` (Etapa G). PUNTO DE PARTIDA, no final:
# - el build usa el lab de takana (zig-cc / musl estático), NO el stdenv de nix ⇒ revisá
# compiler/link/phases y adaptá hasta que compile.
# - las deps van con su nombre NIX; remapealas a las recetas del corpus si difieren.
name = "gobetween"
version = "0.8.1"
license = "MIT"
# ── 2026-08-27: una dep TRANSITIVA de Go desapareció de internet ────────────────────────────────
# `github.com/eric-lindau/udpfacade` (que `src/server/udp` importa) ya no existe: GitHub responde
# «Repository not found» y `proxy.golang.org` da 404 para su versión ⇒ `go mod vendor` moría con
# `invalid version: unknown revision` y la receta era INCONSTRUIBLE. No se arregla subiendo de
# versión: master de gobetween pinea exactamente el mismo módulo.
#
# El parche redirige con `replace` al único superviviente, `github.com/illarion/udpfacade`.
#
# ⚠ Apunta a MASTER (031998cc71fa), no al commit pineado. El commit original
# (d8c1c27add169599654f71a6c62d13cde1c51e50) SÍ existe como objeto en illarion —los forks comparten
# almacén de objetos, y la API de GitHub te lo muestra— pero NO es alcanzable desde ninguna ref, y
# `go` sólo resuelve pseudo-versiones alcanzables desde una ref (`git fetch <sha>` sí funciona; `go`
# no lo usa). Comprobado: da `unknown revision d8c1c27add16`.
#
# ⚠ Y es SEGURO, comprobado y no supuesto: entre master y el commit pineado hay TRES commits y el
# diff entero es `udp.go` +2 y `udp_test.go` +2 (sólo la línea `// +build !windows`) más
# `udp_windows.go` nuevo con `// +build windows`. Para GOOS=linux el código compilado es IDÉNTICO,
# y esta receta construye x86_64-linux-musl.
#
# ⚠ Un `replace` NO se puede meter desde una fase: `vendor_go_deps` corre en el FETCH, antes del
# build (lib.rs:277). Por eso va como patch — los patches sí se aplican antes (lib.rs:224).
[source]
repo = "https://github.com/yyyar/gobetween"
commit = "23a7c246d7ed40b53b4631c3dcba0f79ddc6c838"
patches = ["gobetween-udpfacade-replace.patch"]
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
flags = []
# ── El binario se llama `main` si no se renombra ────────────────────────────────────────────────
# El módulo es `github.com/yyyar/gobetween/main` y el paquete main está en la raíz, así que
# `go install` —que nombra el binario por el último elemento de la ruta del módulo— lo deja como
# **`/usr/bin/main`**. Un `/usr/bin/main` es inservible en una distro: choca con cualquier cosa y no
# dice qué es. La fase `install` que genera takana para Go es `true` (el binario ya lo puso
# `go install` en GOBIN=/out/usr/bin), así que definirla acá sólo añade el renombrado.
#
# Los `test -x` no son adorno: si `go install` cambiara el nombre, sin ellos el `mv` fallaría y la
# receta sellaría un artefacto SIN binario. Regla 3 del repo: que falle ruidosamente.
[build.phases]
install = "test -x /out/usr/bin/main && mv /out/usr/bin/main /out/usr/bin/gobetween && test -x /out/usr/bin/gobetween"
# buildInputs de nix (no usados con CGO off): go
[deps]
build = ["go"]