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…
1# gtksourceview 5.16.0 — VARIANTE ISLA DINÁMICA (sombra de `recipes/gtksourceview.toml` estática).
2# El widget de edición de código: resaltado de sintaxis, números de línea, sangrado. Lo piden
3# `libspelling` (`meson.build:8`) y `gnome-text-editor` (`meson.build:47`).
4#
5# ── POR QUÉ UNA SOMBRA, Y NO REUSAR LA DEL CORPUS ──────────────────────────────────────────────
6# La canónica es del MUNDO ESTÁTICO: `--prefer-static -Ddefault_library=static`, y su artefacto es
7# `libgtksourceview-5.a` a secas — comprobado sobre el store, ni un `.so`. Y lo más importante no es
8# que sea `.a`: es **contra qué está enlazada**. Su cierre es el gtk4 CANÓNICO (estático), no el
9# gtk4 de esta cola. Montarla dentro de `libspelling.so` metería un segundo GTK4 y un segundo GLib
10# en el mismo proceso, que es el SIGSEGV del keystone que documenta [[dos-glib-estaticas-en-un-proceso]]
11# y por el que existe la isla entera.
12#
13# Es exactamente el caso de `libadwaita.toml` en esta misma cola —misma explicación, mismo remedio—
14# y por eso la canónica NO se toca: la comparten otros consumidores del corpus y cambiarla los
15# re-hashea a todos para nada.
16#
17# vs. la canónica, revertido:
18# · link=dynamic, `-Ddefault_library=shared`, SIN `--prefer-static`.
19# · todas las deps pasan a la isla / a sus variantes `-shared` (cairo-shared, libxml2-shared,
20# fontconfig-shared, freetype-shared, libpng-shared, libjpeg-turbo-shared, libtiff-shared,
21# zlib-shared) — que son justamente las que no son PIC y no entran en un `.so`.
22#
23# El `sed` de los tests se hereda de la canónica y por la MISMA razón que ella documenta:
24# gtksourceview 5.16 no tiene opción `tests`, y esos subdirectorios construyen ejecutables que
25# fallan por las deps privadas. La librería —lo único que esta receta produce para el escritorio—
26# ya está enlazada cuando eso pasa.
27#
28# `-Dintrospection=disabled`: la isla SABE hacer introspección y acá se deja apagada porque los dos
29# consumidores (libspelling, gnome-text-editor) son C. Encenderla es una línea el día que una
30# extensión en JS quiera GtkSource por typelib.
31name = "gtksourceview"
32version = "5.16.0"
33license = "LGPL-2.1-or-later"
34
35[source]
36tarball = "https://download.gnome.org/sources/gtksourceview/5.16/gtksourceview-5.16.0.tar.xz"
37sha256 = "ab35d420102f3e8b055dd3b8642d3a48209f888189e6254d0ffb4b6a7e8c3566"
38
39[build]
40compiler = "zig-cc"
41target = "x86_64-linux-musl"
42link = "dynamic"
43
44[build.phases]
45configure = "sed -i \"/subdir('tests')/d;/subdir('testsuite')/d\" meson.build && 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 -Dintrospection=disabled -Dvapi=false -Ddocumentation=false -Dsysprof=false -Dc_args=-Wno-error=date-time"
46compile = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
47install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
48
49[deps]
50build = ["meson", "samurai", "python3", "pkgconf", "gettext-tiny", "glib", "gtk4", "pango", "gdk-pixbuf", "cairo-shared", "graphene", "harfbuzz", "fribidi", "fontconfig-shared", "freetype-shared", "pixman", "libpng-shared", "expat", "libxml2-shared", "libjpeg-turbo-shared", "libtiff-shared", "libepoxy", "wayland", "wayland-protocols", "libxkbcommon", "libdrm", "pcre2", "libffi", "zlib-shared", "mesa"]