gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

gobetween: replace a illarion/udpfacade — la dep transitiva desapareció de internet

`github.com/eric-lindau/udpfacade` (que importa src/server/udp) ya no existe:
GitHub da «Repository not found» y proxy.golang.org 404 para esa versión, así
que `go mod vendor` moría y la receta era INCONSTRUIBLE. No se arregla subiendo
de versión: master de gobetween pinea el mismo módulo.

Se redirige con `replace` al único superviviente, illarion/udpfacade.

⚠ Apunta a MASTER (031998cc71fa), no al commit pineado. El original
(d8c1c27add169599654f71a6c62d13cde1c51e50) SÍ existe como objeto en illarion
—los forks comparten almacén y la API de GitHub lo muestra— pero NO es
alcanzable desde ninguna ref, y `go` sólo resuelve pseudo-versiones alcanzables
desde una ref. Comprobado: `unknown revision d8c1c27add16`. (`git fetch <sha>`
sí lo trae; `go` no usa esa vía.)

⚠ SEGURO y comprobado, 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 esto construye x86_64-linux-musl.

Va como PATCH y no como fase porque `vendor_go_deps` corre en el fetch
(lib.rs:277), antes de las fases; los patches se aplican antes (lib.rs:224).

Verificado: el patch aplica limpio sobre un checkout pristino, hammer sella, y
el binario arranca e imprime su versión.

23bb79f2ea6db97e3e0ae6e309982450ca5df16f · ruwaq Sergio · (1 killa ñawpaq) · tayta c1466de9d · kay commitpi sach'ata qhaway

Semántico sayk'uy

Mana ima sutichaypas t'ikrakurqanchu: qillqalla, yachachiylla utaq willaylla t'ikrakurqan.

2 qillqakuna · +74 −2

diff --git a/recipes/gobetween-udpfacade-replace.patch b/recipes/gobetween-udpfacade-replace.patch
new file mode 100644
index 00000000..76d3d4d4
--- /dev/null
+++ b/recipes/gobetween-udpfacade-replace.patch
@@ -0,0 +1,50 @@
+gobetween pinea github.com/eric-lindau/udpfacade, cuyo repo YA NO EXISTE:
+GitHub responde "Repository not found" y proxy.golang.org da 404 para esa
+version, asi que `go mod vendor` no puede resolverlo y la receta era
+inconstruible.
+
+Se redirige con `replace` al unico superviviente del modulo,
+github.com/illarion/udpfacade.
+
+OJO CON LA VERSION: el commit pineado (d8c1c27add169599654f71a6c62d13cde1c51e50,
+"Hotfix: Windows imports") EXISTE como objeto en illarion pero NO es alcanzable
+desde ninguna ref, y `go` solo resuelve pseudo-versiones alcanzables desde una
+ref => hay que apuntar a master (031998cc71fa, 2019-04-25).
+
+Eso es SEGURO para este build y se comprobo, no se supuso. Entre master y el
+commit pineado hay exactamente tres commits y el diff completo es:
+
+    udp.go         | 2 ++      <- solo anade "// +build !windows"
+    udp_test.go    | 2 ++      <- solo anade "// +build !windows"
+    udp_windows.go | 58 +++++  <- fichero nuevo, "// +build windows"
+
+Es decir: para GOOS=linux el codigo compilado es IDENTICO. La receta construye
+x86_64-linux-musl, asi que udp_windows.go nunca entra.
+
+--- a/go.mod
++++ b/go.mod
+@@ -112,3 +112,5 @@
+ 	gopkg.in/yaml.v2 v2.4.0 // indirect
+ 	gopkg.in/yaml.v3 v3.0.1 // indirect
+ )
++
++replace github.com/eric-lindau/udpfacade => github.com/illarion/udpfacade v0.0.0-20190425230512-031998cc71fa
+--- a/go.sum
++++ b/go.sum
+@@ -176,6 +176,8 @@
+ github.com/hashicorp/memberlist v0.5.2/go.mod h1:Ri9p/tRShbjYnpNf4FFPXG7wxEGY4Nrcn6E7jrVa//4=
+ github.com/hashicorp/serf v0.10.2 h1:m5IORhuNSjaxeljg5DeQVDlQyVkhRIjJDimbkCa8aAc=
+ github.com/hashicorp/serf v0.10.2/go.mod h1:T1CmSGfSeGfnfNy/w0odXQUR1rfECGd2Qdsp84DjOiY=
++github.com/illarion/udpfacade v0.0.0-20190425230512-031998cc71fa h1:2d+tvJ1U5kiS0xFTPmftxJjk8YnYO9qojma59H29jCM=
++github.com/illarion/udpfacade v0.0.0-20190425230512-031998cc71fa/go.mod h1:FgXLvXZ5hgyfdG0KcbEt7dihoivzIk9puoGiP+2isNE=
+ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
+ github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
+ github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
+--- a/src/go.mod
++++ b/src/go.mod
+@@ -111,3 +111,5 @@
+ 	gopkg.in/yaml.v2 v2.4.0 // indirect
+ 	gopkg.in/yaml.v3 v3.0.1 // indirect
+ )
++
++replace github.com/eric-lindau/udpfacade => github.com/illarion/udpfacade v0.0.0-20190425230512-031998cc71fa
diff --git a/recipes/gobetween.toml b/recipes/gobetween.toml
index 65fbbab9..b4aa45b2 100644
--- a/recipes/gobetween.toml
+++ b/recipes/gobetween.toml
@@ -6,9 +6,31 @@ 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"
+repo    = "https://github.com/yyyar/gobetween"
+commit  = "23a7c246d7ed40b53b4631c3dcba0f79ddc6c838"
+patches = ["gobetween-udpfacade-replace.patch"]
 
 [build]
 compiler = "zig-cc"