Files
hammer/recipes/libxml2.toml
T
sergioandClaude Opus 4.8 322d528888 matar-gcc: 14 recetas C más migradas gcc→zig-cc (verificadas en laptop, store completo)
Segunda tanda. Candidatas que el VPS marcó migrable; re-verificadas en el LAPTOP
(store completo, fiable) build+corre — 14/14, cero matraca:

  freetype jq libassuan libgpg-error libssh2 libuv libxml2 nano pcre2 pigz socat
  tig tmux vim

pcre2 tuvo una discrepancia transitoria (falló en una prueba local temprana con
"linker version script", migró en el VPS); re-verificado limpio en el laptop:
construye Y corre. Era estado transitorio, no incompatibilidad.

Confirma el patrón: el VPS acierta en las MIGRABLES (build+corre son evidencia
real); sólo erraba en las matraca (build-falla espurio por store parcial). La
medición fiable es el laptop.

Total matar-gcc esta sesión: 25 recetas C migradas (11+14). El frente pasa de 47
compiler=gcc a ~22 (las 25 migradas + las que faltan medir + las 11 Rust). OJO:
re-hashea, índice firmado 748 necesita re-firma en el próximo packaging.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 13:30:05 -04:00

38 lines
1.4 KiB
TOML

# libxml2 2.13.9 — parser XML/HTML (C). Lib FUNDACIONAL: dep de muchísima cola C + crates *-sys.
# De-Alpinizada (Etapa G):
# - compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16): zig-cc miscompila libs C (patrón file/jq); gcc del rootfs es musl.
# - --disable-shared --enable-static: el lab linkea estático; queremos libxml2.a en /usr/lib.
# - core sin compresión/bindings: --without-lzma (no hay xz en corpus), --without-zlib,
# --without-python (el binding no aplica al userland estático). El parseo XML —el valor— no los pide.
# - patches CVE de Alpine conservados (seguridad).
name = "libxml2"
version = "2.13.9"
[source]
tarball = "https://download.gnome.org/sources/libxml2/2.13/libxml2-2.13.9.tar.xz"
sha256 = "a2c9ae7b770da34860050c309f903221c67830c86e4a7e760692b803df95143a"
patches = ["CVE-2026-6732.patch", "CVE-2026-6732-test.patch"]
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
flags = []
# configure EXPLÍCITO: si se deja vacío, la heurística del lab inyecta su propio ./configure
# minimal (defaults → exige python-3.12) que corre antes y aborta. Definirlo lo desactiva.
[deps]
build = ["make"]
[build.phases]
configure = '''
./configure \
--build=$CBUILD --host=$CHOST \
--prefix=/usr \
--disable-shared --enable-static \
--without-python --without-lzma --without-zlib \
--with-legacy
'''
compile = 'make'
install = 'make DESTDIR=/out install'