From 23bb79f2ea6db97e3e0ae6e309982450ca5df16f Mon Sep 17 00:00:00 2001 From: Sergio Date: Thu, 27 Aug 2026 16:30:56 +0000 Subject: [PATCH] =?UTF-8?q?gobetween:=20replace=20a=20illarion/udpfacade?= =?UTF-8?q?=20=E2=80=94=20la=20dep=20transitiva=20desapareci=C3=B3=20de=20?= =?UTF-8?q?internet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `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 ` 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. --- recipes/gobetween-udpfacade-replace.patch | 50 +++++++++++++++++++++++ recipes/gobetween.toml | 26 +++++++++++- 2 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 recipes/gobetween-udpfacade-replace.patch 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 ` 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"