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.
This commit is contained in:
Sergio
2026-08-27 16:30:56 +00:00
parent c1466de9d6
commit 23bb79f2ea
2 changed files with 74 additions and 2 deletions
+50
View File
@@ -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
+24 -2
View File
@@ -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"