fix(boost): el envoltorio tiene que reescribir `--target` — el patrón ya estaba en 30 recetas
El motor de b2 compiló con nuestro envoltorio y murió así:
error: unable to parse target query 'x86_64-pc-linux': UnknownOperatingSystem
El guion del motor le pasa `--target=x86_64-pc-linux` al compilador y **zig lo rechaza**: quiere el
triple con ABI (`x86_64-linux-musl`), y ése no la lleva. Mi envoltorio era un
`exec zig c++ "$@"` pelado.
⚠ **Y la respuesta estaba en el propio catálogo.** `churay-metal`, las cinco `pata-*` y 27 recetas
más traen exactamente este bucle:
for a do case "$a" in --target=*) a=--target=x86_64-linux-musl ;; esac; set -- "$@" "$a"; shift; done
Es el patrón canónico del repo para cualquier build que invente su propio triple, y lo copié tal
cual en vez de escribir una variante. **Cuarta vez hoy que lo que buscaba estaba a un `grep` o unas
líneas de distancia**: el `Checking for module 'pango'` sobre el `CMake Error` de fcitx5, la ayuda
del propio bootstrap, su línea 229, y ahora esto.
Los cuatro fallos de boost han sido de ese tipo —cómo invocar, qué toolset, qué triple— y ninguno ha
tocado todavía la pregunta de fondo: si `zig c++` puede compilar Boost.Iostreams. Esa sigue abierta
y es la que decide si el chino tiene camino.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Delta semántico
Ninguna definición cambió: el cambio es de texto, documentación o datos.
1 archivos · +9 −1
diff --git a/recipes/incoming-kde/boost.toml b/recipes/incoming-kde/boost.toml
index 2478ae04..b5ef4cb0 100644
--- a/recipes/incoming-kde/boost.toml
+++ b/recipes/incoming-kde/boost.toml
@@ -32,7 +32,15 @@ link = "dynamic"
# escribió `using gcc` apuntando al mismo envoltorio, que era inventarle un toolset.
configure = '''
set -e
-printf '#!/bin/sh\nexec /opt/zig/zig c++ -mcpu=baseline "$@"\n' > .zcxx; chmod +x .zcxx
+# ⚠ **EL ENVOLTORIO REESCRIBE `--target`, Y ES EL PATRÓN CANÓNICO DEL REPO (30 recetas lo usan).**
+# El guion del motor de b2 le pasa `--target=x86_64-pc-linux` al compilador, y zig lo rechaza:
+# error: unable to parse target query 'x86_64-pc-linux': UnknownOperatingSystem
+# zig quiere el triple con ABI (`x86_64-linux-musl`); `x86_64-pc-linux` no la lleva. Mi primer
+# envoltorio era un `exec zig c++ "$@"` pelado y por eso moría. La respuesta estaba en el propio
+# catálogo —`churay-metal`, `pata-*` y 27 más traen exactamente este bucle— y es la cuarta vez hoy
+# que lo que buscaba estaba a un `grep` de distancia.
+printf '%s\n' '#!/bin/sh' 'for a do' 'case "$a" in --target=*) a=--target=x86_64-linux-musl ;; esac' 'set -- "$@" "$a"' 'shift' 'done' 'exec /opt/zig/zig c++ -mcpu=baseline "$@"' > .zcxx
+chmod +x .zcxx
printf '#!/bin/sh\nexec /opt/zig/zig ar "$@"\n' > .zar; chmod +x .zar
printf '#!/bin/sh\nexec /opt/zig/zig ranlib "$@"\n' > .zranlib; chmod +x .zranlib
./tools/build/src/engine/build.sh --cxx="$PWD/.zcxx" cxx