# libass 0.17.5 — renderizador de subtítulos SSA/ASS. Dep DURA de mpv: su `meson.build` la pide sin # `required:` (línea 32), o sea que no hay build de mpv sin esto. # # --enable-asm (default) y por eso `nasm` subió al corpus: el rasterizador de libass tiene rutas SSE2/ # AVX2 escritas a mano, y son las que sostienen subtítulos con karaoke o tipografía pesada a 1080p sin # comerse el frame budget. Es la parte que sí conviene pagar en assembler. # # libunibreak: opcional para upstream (`default=check`), obligatorio acá. Ver su receta — sin él los # renglones se parten por espacios y el CJK queda ilegible. # # LAS DEPS QUE NO SE VEN EN EL `./configure` salen de los `.pc` que resuelve, y son MÁS DE LA MITAD # de la lista: `freetype2.pc` trae `Requires: zlib, libpng`, `fontconfig.pc` trae expat, y # `harfbuzz.pc` trae `Requires: glib-2.0` —porque la harfbuzz del corpus se construyó # `-Dglib=enabled` para GTK4— que a su vez arrastra pcre2 y libffi. Es el patrón # `.pc Requires` → `[deps].build` del corpus. El fallo sin ellas no dice "falta glib": dice # «Package requirements (harfbuzz >= 1.2.3) were not met», culpando a la lib que sí está. # # Estática (.a) como el resto de las libs del corpus: quien la consume es un EJECUTABLE (mpv), no un # objeto compartido, así que la regla del `.a` no-PIC no aplica acá. name = "libass" version = "0.17.5" license = "ISC" [source] tarball = "https://github.com/libass/libass/releases/download/0.17.5/libass-0.17.5.tar.xz" sha256 = "2dca25c0e0c837ddf00b52011b3f82cac1e4ddd3ad018227806b0c2288864acc" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" flags = [] [build.phases] configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr --disable-shared --enable-static --enable-fontconfig --enable-libunibreak --enable-asm' compile = 'make -j"$(nproc)"' install = 'make DESTDIR=/out install' [deps] build = ["freetype", "fribidi", "harfbuzz", "fontconfig", "libunibreak", "glib", "pcre2", "libffi", "expat", "libpng", "zlib", "nasm", "make", "pkgconf"]