matar-gcc: 11 recetas C migradas gcc→zig-cc (medido: construyen y corren)
Primera tanda del rollout aprobado. harkaq nombró 47 recetas compiler=gcc; migra-zig.sh midió que las C-puras migran a zig (~85%). Estas 11 se verificaron en el LAPTOP (store completo, fiable): construyen con zig-cc Y —las que tienen binario— corren limpio. bzip2 expat json-c gzip htop less libpng libyaml zstd libffi xz El compiler=gcc era deuda histórica: se marcaron con zig 0.13/0.16 (que segfaultaban C clásicos), zig mejoró, el gcc quedó por inercia. Verificado in-place: bzip2→b3:86a33b76, json-c→b3:9cbe76e3. 11 dependencias menos del gcc de Alpine. Quedan ~25 C-puras candidatas del VPS por verificar en el laptop (el store parcial del VPS daba build-falla espurios por deps faltantes — la medición fiable es la del laptop) + las 11 Rust (sys-crate C, otra evaluación). OJO: re-hashea estas 11 (estaban en el índice firmado 748); el índice necesita re-firma en el próximo packaging. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Delta semántico
Ninguna definición cambió: el cambio es de texto, documentación o datos.
11 archivos · +21 −21
- recipes/bzip2.toml +2 −2
- recipes/expat.toml +2 −2
- recipes/gzip.toml +1 −1
- recipes/htop.toml +2 −2
- recipes/json-c.toml +2 −2
- recipes/less.toml +2 −2
- recipes/libffi.toml +2 −2
- recipes/libpng.toml +2 −2
- recipes/libyaml.toml +2 −2
- recipes/xz.toml +2 −2
- recipes/zstd.toml +2 −2
diff --git a/recipes/bzip2.toml b/recipes/bzip2.toml
index 6aa3f6c6..e4456329 100644
--- a/recipes/bzip2.toml
+++ b/recipes/bzip2.toml
@@ -1,12 +1,12 @@
# bzip2 1.0.8 → libbz2.a (C, Makefile custom sin configure). Lib base: compresión .bz2, cola C.
-# De-Alpinizada: compiler=gcc, make directo, install con PREFIX (el Makefile no usa DESTDIR).
+# De-Alpinizada: compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16), make directo, install con PREFIX (el Makefile no usa DESTDIR).
name = "bzip2"
version = "1.0.8"
[source]
tarball = "https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz"
sha256 = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269"
[build]
-compiler = "gcc"
+compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
flags = []
diff --git a/recipes/expat.toml b/recipes/expat.toml
index 2069b956..56b8dd59 100644
--- a/recipes/expat.toml
+++ b/recipes/expat.toml
@@ -1,5 +1,5 @@
# expat 2.8.1 — parser XML stream (C). Lib base: dep de cola C (fontconfig, dbus, etc.) y crates -sys.
-# De-Alpinizada (Etapa G): compiler=gcc, configure-split explícito, estático. Sin deps externas.
+# De-Alpinizada (Etapa G): compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16), configure-split explícito, estático. Sin deps externas.
name = "expat"
version = "2.8.1"
@@ -8,7 +8,7 @@ tarball = "https://github.com/libexpat/libexpat/releases/download/R_2_8_1/expat-
sha256 = "10b195ee78160a908388180a8fe3603d4e9a12f4755fbf5f3816b23a9d750da0"
[build]
-compiler = "gcc"
+compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
flags = []
diff --git a/recipes/gzip.toml b/recipes/gzip.toml
index 83496c16..18ad5dfc 100644
--- a/recipes/gzip.toml
+++ b/recipes/gzip.toml
@@ -11,7 +11,7 @@ tarball = "https://ftp.gnu.org/gnu/gzip/gzip-1.14.tar.xz"
sha256 = "01a7b881bd220bfdf615f97b8718f80bdfd3f6add385b993dcf6efd14e8c0ac6"
[build]
-compiler = "gcc"
+compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
flags = []
diff --git a/recipes/htop.toml b/recipes/htop.toml
index 1471fbb5..74fb42cd 100644
--- a/recipes/htop.toml
+++ b/recipes/htop.toml
@@ -5,7 +5,7 @@
# - deps.build = ["ncurses", "linux-headers"]: htop usa la API de curses widec (-lncursesw) y headers
# de Linux (taskstats/cgroup). Quito lm-sensors del makedepends de Alpine: el soporte de sensores
# es OPCIONAL (libsensors auto-detectado) y no está en el corpus ⇒ `--disable-sensors` explícito.
-# - compiler=gcc (gueto, igual que ncurses/less): zig-cc miscompila estos C clásicos.
+# - compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16) (gueto, igual que ncurses/less): zig-cc miscompila estos C clásicos.
# - link=static + sin libtool en el link del binario ⇒ LDFLAGS=-static del lab basta (htop static-pie).
# htop auto-detecta ncursesw (widec) para soporte unicode — la ncurses del corpus es widec.
#
@@ -19,7 +19,7 @@ tarball = "https://github.com/htop-dev/htop/releases/download/3.5.1/htop-3.5.1.t
sha256 = "526cecd62870aa8d14d2a79a35ea197e4e2b5317d275b567cee0574b2ddb2e9a"
[build]
-compiler = "gcc"
+compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
diff --git a/recipes/json-c.toml b/recipes/json-c.toml
index a864dae5..a4daa132 100644
--- a/recipes/json-c.toml
+++ b/recipes/json-c.toml
@@ -1,4 +1,4 @@
-# json-c 0.18 — lib C base (de-Alpinizada, Etapa G). compiler=gcc, configure-split, estático.
+# json-c 0.18 — lib C base (de-Alpinizada, Etapa G). compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16), configure-split, estático.
name = "json-c"
version = "0.18"
@@ -8,7 +8,7 @@ sha256 = "876ab046479166b869afc6896d288183bbc0e5843f141200c677b3e8dfb11724"
patches = ["cmake-version.patch"]
[build]
-compiler = "gcc"
+compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
flags = []
diff --git a/recipes/less.toml b/recipes/less.toml
index aedbc6d7..9be3eafe 100644
--- a/recipes/less.toml
+++ b/recipes/less.toml
@@ -6,7 +6,7 @@
#
# deps.build = ["ncurses"]: el lab apila el árbol de ncurses (libtinfo.a→libncursesw.a + term.h +
# tinfo.pc + terminfo) en /usr y el configure de less lo halla por pkgconf. link=static ⇒ less ELF
-# estático musl. compiler=gcc (gueto): zig-cc miscompila estos C clásicos (segfault, ver file/jq).
+# estático musl. compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16) (gueto): zig-cc miscompila estos C clásicos (segfault, ver file/jq).
# $CBUILD/$CHOST los da el lab (build==host ⇒ nativo).
name = "less"
@@ -17,7 +17,7 @@ tarball = "https://www.greenwoodsoftware.com/less/less-704.tar.gz"
sha256 = "20a0b0a2bb2525fa53c7eee9beb854b4c9cf172eabb209af7020743547bfe9fb"
[build]
-compiler = "gcc"
+compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
diff --git a/recipes/libffi.toml b/recipes/libffi.toml
index 116f2e9f..c53f2603 100644
--- a/recipes/libffi.toml
+++ b/recipes/libffi.toml
@@ -1,5 +1,5 @@
# libffi 3.5.2 — interfaz de llamada a función foránea (C). Lib base: python, muchos -sys crates.
-# De-Alpinizada: compiler=gcc, configure-split, estático.
+# De-Alpinizada: compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16), configure-split, estático.
# --with-pic: el .a estático lleva objetos PIC ⇒ se puede enlazar dentro de bibliotecas COMPARTIDAS
# (libwayland-server.so / Mesa lo exigen; sin PIC: «R_X86_64_PC32 ... recompile with -fPIC»). PIC
# es superset: sigue sirviendo para el enlace estático de exes. (2026-06-27, stack gráfico tawasuyu.)
@@ -9,7 +9,7 @@ version = "3.5.2"
tarball = "https://github.com/libffi/libffi/releases/download/v3.5.2/libffi-3.5.2.tar.gz"
sha256 = "f3a3082a23b37c293a4fcd1053147b371f2ff91fa7ea1b2a52e335676bac82dc"
[build]
-compiler = "gcc"
+compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
flags = []
diff --git a/recipes/libpng.toml b/recipes/libpng.toml
index facdaa6a..bf54bda2 100644
--- a/recipes/libpng.toml
+++ b/recipes/libpng.toml
@@ -1,12 +1,12 @@
# libpng 1.6.58 → libpng16.a (C, autotools). Lib base imágenes: png crates, cola gráfica.
-# De-Alpinizada: compiler=gcc, configure-split, contra zlib del corpus, estático.
+# De-Alpinizada: compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16), configure-split, contra zlib del corpus, estático.
name = "libpng"
version = "1.6.58"
[source]
tarball = "https://downloads.sourceforge.net/libpng/libpng-1.6.58.tar.gz"
sha256 = "8c9b05b675ca7301a458df2c2e46f26e1d41ff36b8863f8c33530bc58c2e6225"
[build]
-compiler = "gcc"
+compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
flags = []
diff --git a/recipes/libyaml.toml b/recipes/libyaml.toml
index be6fb09b..d18266cd 100644
--- a/recipes/libyaml.toml
+++ b/recipes/libyaml.toml
@@ -1,12 +1,12 @@
# libyaml 0.2.5 → libyaml.a (C, autotools). Lib base YAML: yaml-sys, parsers. Tarball release
-# (el repo git no trae configure). De-Alpinizada: compiler=gcc, configure-split, estático.
+# (el repo git no trae configure). De-Alpinizada: compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16), configure-split, estático.
name = "libyaml"
version = "0.2.5"
[source]
tarball = "https://github.com/yaml/libyaml/releases/download/0.2.5/yaml-0.2.5.tar.gz"
sha256 = "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4"
[build]
-compiler = "gcc"
+compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
flags = []
diff --git a/recipes/xz.toml b/recipes/xz.toml
index 7a4fb1fd..ed8cf871 100644
--- a/recipes/xz.toml
+++ b/recipes/xz.toml
@@ -1,12 +1,12 @@
# xz 5.8.3 → liblzma.a (C, autotools). Lib base: compresión .xz, libxml2-lzma, cola C.
-# De-Alpinizada: compiler=gcc, configure-split, solo la lib (--disable CLI tools), estático.
+# De-Alpinizada: compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16), configure-split, solo la lib (--disable CLI tools), estático.
name = "xz"
version = "5.8.3"
[source]
tarball = "https://github.com/tukaani-project/xz/releases/download/v5.8.3/xz-5.8.3.tar.xz"
sha256 = "fff1ffcf2b0da84d308a14de513a1aa23d4e9aa3464d17e64b9714bfdd0bbfb6"
[build]
-compiler = "gcc"
+compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
flags = []
diff --git a/recipes/zstd.toml b/recipes/zstd.toml
index 2a541075..3ea80541 100644
--- a/recipes/zstd.toml
+++ b/recipes/zstd.toml
@@ -1,12 +1,12 @@
# zstd 1.5.7 → libzstd.a (C, Makefile). Lib FUNDACIONAL: zstd-sys está en MONTONES de crates Rust
-# (compresión moderna) + cola C. De-Alpinizada: compiler=gcc, build de lib/ (no CLI), estático.
+# (compresión moderna) + cola C. De-Alpinizada: compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16), build de lib/ (no CLI), estático.
name = "zstd"
version = "1.5.7"
[source]
tarball = "https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz"
sha256 = "eb33e51f49a15e023950cd7825ca74a4a2b43db8354825ac24fc1b7ee09e6fa3"
[build]
-compiler = "gcc"
+compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
flags = []