1# Migración compiler=gcc → zig-cc (matar-gcc) — BALANCE (2026-07-16)
2
3harkaq nombró 47 recetas `compiler=gcc`. `migra-zig.sh` (build con zig + smoke-test del binario)
4midió cuáles migran. Las C-puras (36) se verificaron en el laptop (store completo, fiable).
5
6## MIGRADAS a zig-cc (27 recetas C) ✅
7bzip2 expat json-c gzip htop less libpng libyaml zstd libffi xz · freetype jq libassuan
8libgpg-error libssh2 libuv libxml2 nano pcre2 pigz socat tig tmux vim · curl libevent
9
10El `compiler=gcc` era **deuda histórica**: marcadas con zig 0.13/0.16 (que segfaultaban C
11clásicos), zig mejoró, el gcc quedó por inercia. 27 dependencias menos del gcc de Alpine.
12
13## MATRACA real (4 recetas) — razones específicas, una por una
14- **libgcrypt, libsodium**: no construyen con zig. Crypto con assembly/detección de features que
15 zig maneja distinto. Matraca criptográfica.
16- **file**: falla en el subdir `magic`.
17- **linux-pam**: no construye con zig.
18
19## Sin confirmar (2) — construyen con zig pero el smoke-test no verifica el binario
20- **libevdev, mtdev**: libs sin binario claro que correr. Probablemente migrables; verificar el
21 link en un consumidor antes de promover.
22
23## Fuera de alcance (11 Rust con sys-crate C)
24delta gitui helix xplr yazi zellij ouch hurl git-absorb cargo-audit cargo-cache — el gcc compila
25el C embebido de libgit2-sys/etc, no el Rust. Otra evaluación (más arriesgada y lenta).
26
27## Balance
28De 47: **27 migradas**, 4 matraca-C, 2 sin confirmar, 11 Rust diferidas, resto no medido. matar-gcc
29pasó de "47 invisibles" (harkaq las reveló) a **27 cerradas + una cola nombrada y priorizada**.
30
31**Rollout: re-hashea las 27 (estaban en el índice firmado 748) ⇒ re-firma en el próximo packaging.**
migracion-zig.md
Migración compiler=gcc → zig-cc (matar-gcc) — BALANCE (2026-07-16)
harkaq nombró 47 recetas compiler=gcc. migra-zig.sh (build con zig + smoke-test del binario)
midió cuáles migran. Las C-puras (36) se verificaron en el laptop (store completo, fiable).
MIGRADAS a zig-cc (27 recetas C) ✅
bzip2 expat json-c gzip htop less libpng libyaml zstd libffi xz · freetype jq libassuan
libgpg-error libssh2 libuv libxml2 nano pcre2 pigz socat tig tmux vim · curl libevent
El compiler=gcc era deuda histórica: marcadas con zig 0.13/0.16 (que segfaultaban C
clásicos), zig mejoró, el gcc quedó por inercia. 27 dependencias menos del gcc de Alpine.
MATRACA real (4 recetas) — razones específicas, una por una
- libgcrypt, libsodium: no construyen con zig. Crypto con assembly/detección de features que
zig maneja distinto. Matraca criptográfica.
- file: falla en el subdir
magic.
- linux-pam: no construye con zig.
Sin confirmar (2) — construyen con zig pero el smoke-test no verifica el binario
- libevdev, mtdev: libs sin binario claro que correr. Probablemente migrables; verificar el
link en un consumidor antes de promover.
Fuera de alcance (11 Rust con sys-crate C)
delta gitui helix xplr yazi zellij ouch hurl git-absorb cargo-audit cargo-cache — el gcc compila
el C embebido de libgit2-sys/etc, no el Rust. Otra evaluación (más arriesgada y lenta).
Balance
De 47: 27 migradas, 4 matraca-C, 2 sin confirmar, 11 Rust diferidas, resto no medido. matar-gcc
pasó de "47 invisibles" (harkaq las reveló) a 27 cerradas + una cola nombrada y priorizada.
Rollout: re-hashea las 27 (estaban en el índice firmado 748) ⇒ re-firma en el próximo packaging.