`recipes/rust-alpine-target.patch` registra `x86_64-alpine-linux-musl` en `rustc_target`: un spec copiado del canónico y una línea en `supported_targets!`. Es lo que hace Alpine en su APKBUILD, y es la única forma que vale para el triple del HOST (un `.json` por `RUST_TARGET_PATH` no alcanza). La única diferencia real con el spec canónico es `crt_static_default = false`, que es lo que habilita dylibs y con ellos los PROC-MACROS: un rustc con crt-static por default no compila `serde_derive` ni `clap_derive` — ni las 44 recetas `cargo-*` del corpus que usan `derive`. ⚠ PROBADO EN SECO ANTES DE ENCOLAR UNA HORA DE BUILD (`patch -p1 --dry-run` contra el árbol real del worker), y no de primera: la cabecera `@@ -0,0 +1,38 @@` del fichero nuevo tenía 37 líneas y `patch` murió con «malformed patch», y el hunk de `mod.rs` lo escribí con números a ojo y falló. El segundo lo generé con `diff -u` de verdad contra una copia. Un parche se COMPRUEBA, no se redacta. ⚠ Y EL `.patch` HAY QUE ENCOLARLO TAMBIÉN: `source.patches` resuelve contra el directorio de la receta, así que con la receta enlazada en `recipes/incoming/` el parche se busca AHÍ. Es exactamente el corolario que `farm-worker-loop.sh` documenta («los `.patch` NO viajan con la receta»), visto desde el otro lado. Con los dos enlaces, el hash de la cola y el canónico coinciden: `b3:53c7f991…`, y el worker calcula el mismo. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Symbolic link
1 line
27 B
Diff
Symbolic link
1 line
27 B
Diff
../rust-alpine-target.patch
|