# libarchive 3.8.1 (bsdtar/bsdcpio) — plan-freebsd T3.1: el único export de código real de # FreeBSD. Dos usos: (1) extractor de REFERENCIA CRUZADA del formato — donde hammer serializa # árboles, extraer con bsdtar y comparar = consenso de implementación aplicado al contenedor # (T3.2, espíritu del cierre §1 sobre el formato, no sobre el build); (2) dep de build opcional # para tarballs exóticos donde busybox tar se queda corto (T3.3). # # Mínima a propósito: sólo zlib (gzip). xz/zstd/bz2 tienen receta en el catálogo y se activan # cuando el uso T3.2 lo pida — cada `--with-*` es una línea en [deps] y un re-sellado, no un # framework. iconv va embebido en musl ⇒ --without-iconv. --disable-shared ⇒ bsdtar enlaza # libarchive.a (contrato link=static, mismo patrón que zlib/tar). # # PENDIENTE construir en el WORKER (el laptop no compila recetas C). sha256 verificado del # tarball de GitHub releases 2026-07-16. name = "libarchive" version = "3.8.1" license = "BSD-2-Clause" [source] tarball = "https://github.com/libarchive/libarchive/releases/download/v3.8.1/libarchive-3.8.1.tar.xz" sha256 = "19f917d42d530f98815ac824d90c7eaf648e9d9a50e4f309c812457ffa5496b5" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" # Split de la info de depuración (SDD 23 etapa 4, tanda de HOJAS). Entra en `hash_inputs`. strip_debug = true [deps] build = ["binutils", "make", "zlib"] [build.phases] # -fno-sanitize=undefined: mismo motivo que zlib — sin él, zig cc emite llamadas UBSan que el # libarchive.a estático arrastraría a todo consumidor. configure = """ CFLAGS='-O2 -fno-sanitize=undefined' ./configure --prefix=/usr \ --enable-static --disable-shared --enable-bsdtar --enable-bsdcpio \ --with-zlib --without-bz2lib --without-lzma --without-zstd --without-lz4 \ --without-lzo2 --without-libb2 --without-iconv --without-xml2 --without-expat \ --without-openssl --without-nettle --without-cng --disable-acl --disable-xattr """ # -all-static en compile E install (libtool relinkea al instalar): sin esto el `link = # "static"` de la receta se ignora en silencio y bsdtar sale dinámico. scripts/static-audit.sh compile = "make LDFLAGS=\"-all-static -no-pie\" -j\"$(nproc)\"" install = "make DESTDIR=/out install LDFLAGS=\"-all-static -no-pie\""