tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1574Shell 204Rust 111Markdown 993763 Definiciones

⎇ 32627251b1adcc995958bd60e72226040bff6125 recipes/cairo-shared.toml TOML · 40 líneas · 2.7 KB Historia crudo

la cadena GTK3 se enlazaba estática dentro de dos `.so`: cuatro variantes `-shared` y xkeyboard-config al corpus a828e74c4 · Sergio ·

1# cairo-shared 1.18.4 — variante DINÁMICA. **Existe por un fallo medido, no por simetría.**
2#
3# El canónico (`recipes/cairo.toml`) es `-Ddefault_library=static`, así que quien lo enlaza se lo
4# traga entero. Y `gtk3` produce DOS objetos compartidos —`libgtk-3.so` y `libgdk-3.so`—, de modo
5# que cada uno se llevaba su propia copia. Los dos se cargan siempre juntos (libxul los declara
6# NEEDED a los dos) ⇒ dos copias en un proceso, y el navegador moría antes de pintar:
7#
8#     GLib-GObject-CRITICAL: cannot register existing type 'PangoFontMap'
9#     … decenas de líneas … tipo '<invalid>'
10#
11# Se midió con `nm -D --defined-only` sobre cada `.so` del rootfs, preguntando quién DEFINE
12# `pango_font_map_get_type` / `cairo_create` / `gdk_pixbuf_get_type` / `hb_buffer_create`.
13# Respuesta: `libgtk-3.so` Y `libgdk-3.so`, las dos. Debía ser una sola librería, y ninguna de ellas.
14#
15# Es la misma regla que ya arrastraba el corpus desde GTK4 y que la cadena GTK3 se había saltado:
16# **las deps de una `.so` van a las variantes `-shared`, en lugar de las estáticas y jamás junto a
17# ellas** (las dos instalan los mismos `.pc` y cabeceras).
18#
19# ⚠ `pixman` sigue estático: no hay variante `-shared`. Queda embebido sólo acá ⇒ una copia. Deuda
20# anotada; el día que otra `.so` del mismo proceso también lo lleve, reaparece el choque.
21#
22# Sólo cambia el modo de librería: se conservan TODOS los switches del canónico para no arrastrar
23# deps nuevas ni cambiar qué se construye.
24name    = "cairo-shared"
25version = "1.18.4"
26license = "LGPL-2.1-only OR MPL-1.1"
27[source]
28tarball = "https://gitlab.freedesktop.org/cairo/cairo/-/archive/1.18.4/cairo-1.18.4.tar.bz2"
29sha256  = "6d9281e786fd289d382324d4588d59973a36911e1865b40e64f9ec39936ceba8"
30patches = ["cairo-ctime-r.patch"]
31[build]
32compiler = "zig-cc"
33target   = "x86_64-linux-musl"
34link     = "dynamic"
35[build.phases]
36configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Ddefault_library=shared -Dc_args=-Wno-error=date-time -Dtests=disabled -Dxlib=disabled -Dxcb=disabled -Dquartz=disabled -Dtee=disabled -Dsymbol-lookup=disabled -Dspectre=disabled -Dgtk_doc=false -Dpng=enabled -Dfreetype=enabled -Dfontconfig=enabled -Dglib=enabled"
37compile   = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
38install   = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
39[deps]
40build = ["meson", "samurai", "python3", "pkgconf", "pixman", "freetype-shared", "fontconfig-shared", "libpng-shared", "zlib-shared", "glib-shared", "expat-shared", "libffi-shared", "pcre2-shared"]