Mismo patrón que curl: LDFLAGS="-all-static -no-pie" en compile Y en install, porque libtool relinkea al instalar. Verificado con un CONTROL que xz obligó a añadir: no basta rc=0 + hash. El build de xz con -all-static devolvió rc=0 y hash válido, pero el artefacto SALIÓ SIN NINGÚN BINARIO (el viejo tenía xz, xzgrep, xzdiff, xzless, lzmainfo): con -all-static, libtool no produce la lib compartida (liblzma.la -rpath) y el enlace de los ejecutables se saltea EN SILENCIO. Un "éxito" que mutila el paquete. xz queda revertida: necesita otro enfoque (separar la lib de los binarios), no este patrón. ⇒ el criterio ahora compara la LISTA DE FICHEROS del artefacto nuevo contra la del viejo, además de NEEDED=0. Los tres pasan: 15, 13 y 114 ficheros, idénticos a sus sellados previos. expat b3:e6990b3e555f · libpng b3:f65887051274 · libxml2 b3:c4c65c4b17b8 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
38 lines
1.5 KiB
TOML
38 lines
1.5 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 LDFLAGS="-all-static -no-pie" -j"$(nproc)"'
|
|
install = 'make DESTDIR=/out install LDFLAGS="-all-static -no-pie"'
|