gioser

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 815Rust 56Shell 37Markdown 291229 Definiciones

⎇ a6a9d59e4f0d354cf2c9066538c6fa7016fc6721 recipes/incoming-gnome/gjs.toml TOML · 50 líneas · 4.2 KB Historia crudo

licencias: 936 de 1141 (82%) — detección por evidencia, con sus dos imprecisiones declaradas a6a9d59e4 · sergio ·

1# gjs 1.84.2 — los bindings JavaScript de GNOME (GNOME 48). gnome-shell cuelga de gjs, y gjs cuelga de
2# spidermonkey (mozjs-128), que YA está sellado en este repo (recipes/incoming-gnome/spidermonkey.toml,
3# provee mozjs-128.pc). gjs 1.84 requiere mozjs 128 ✓ — coincide con el spidermonkey sellado.
4#
5# ⚠ PRIMER BORRADOR feature-minimal — NO garantiza sellar a la primera. Notas de diseño:
6#   · Build = meson (idioma GNOME, auto-detectado por el lab; calcado de gtk4/glib/libadwaita).
7#   · compiler = zig-cc (como todo el stack meson GNOME del corpus). gjs es cpp+c; zig lo cubre.
8#   · link = DYNAMIC (NO static como gtk4/glib): spidermonkey sólo provee libmozjs-128.so (shared-js);
9#     no hay .a de mozjs contra la que enlazar estáticamente, así que gjs enlaza la .so ⇒ dynamic.
10#   · Feature-minimal: sin instalar tests, sin profiler (evita la dep sysprof-capture), tests de
11#     DBus/GTK saltados, sin x11 (gjs no tiene backend x11 propio; cairo-xlib es `required: false`).
12#     readline SÍ (la receta readline existe y da la shell interactiva/depurador).
13name    = "gjs"
14version = "1.84.2"
15license = "MIT AND LGPL-2.0-or-later"
16
17[source]
18tarball = "https://download.gnome.org/sources/gjs/1.84/gjs-1.84.2.tar.xz"
19sha256  = "35142edf345705636300291ec3a7d583f14969ff3fae0ff30f4a95b1e6740166"
20
21[build]
22compiler = "zig-cc"
23target   = "x86_64-linux-musl"
24link     = "dynamic"
25
26[build.phases]
27# -Dbsymbolic_functions=false: el linker zig/lld NO soporta -Bsymbolic-functions (meson.build:89 aborta).
28# BLOQUEADO en el link por cairo: cairo es dep OBLIGATORIA (no hay -Dcairo) y el cairo estático arrastra
29# fontconfig.a→expat, freetype→png/z, pixman ⇒ 'undefined symbol: XML_GetCurrentLineNumber'. cpp_link_args
30# global rompe el sanity-check de meson. Fix real = cairo isla DINÁMICA (cierre C #7): entonces gjs linkea
31# libcairo.so con NEEDED libfontconfig.so y la cadena resuelve al cargar. Ver [[gnome-introspection-dinamica]].
32# sed: gjs incluye INCONDICIONALMENTE el subproyecto gobject-introspection-tests (Regress/WarnLib,
33# con 'cairo=true') + subdirs installed-tests/test. Sus g-ir-scanner piden cairo-1.0.gir, que nuestro
34# g-i (cairo=disabled) no instala ⇒ "Couldn't find include 'cairo-1.0.gir'". Son SÓLO fixtures de test;
35# los removemos (gi_tests no se usa fuera del bloque). Deja la libgjs + GjsPrivate typelib, que es el hito.
36configure = "sed -i \"/gi_tests = subproject('gobject-introspection-tests'/,/install_dir=@0@/d; /subdir('installed-tests')/d; /subdir('test')/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 -Dbsymbolic_functions=false -Dinstalled_tests=false -Dprofiler=disabled -Dskip_dbus_tests=true -Dskip_gtk_tests=true -Dreadline=disabled -Dc_args=-Wno-error=date-time"
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
40[deps]
41# spidermonkey → mozjs-128.pc (sellado); glib → glib-2.0/gobject-2.0/gio-2.0/gthread-2.0; cairo →
42# cairo + cairo-gobject; libffi, readline, pkgconf existen en el corpus. meson/samurai/python3 = tooling.
43# gobject-introspection: g-ir-scanner ⇒ typelib GjsPrivate + gobject-introspection-1.0.pc en link.
44# glib-introspected: gjs escanea GjsPrivate, que referencia GObject/GLib ⇒ el scan necesita los .gir
45# CORE (GObject-2.0.gir/GLib-2.0.gir) que SÓLO produce glib-introspected. hammer hidrata deps DIRECTAS,
46# no transitivas de g-i ⇒ hay que declararla aquí (misma lección del keystone [[gnome-introspection-dinamica]]).
47# cairo-shared (+ su cierre -shared) = cairo DINÁMICO: gjs linkea libcairo.so y la cadena resuelve por
48# NEEDED (no undefined XML_GetCurrentLineNumber). glib-2.0.pc → libpcre2-8 (pcre2 canónico da el .pc).
49# pixman canónico ya es dinámico. expat canónico (--with-pic, embebido en el cierre).
50build = ["spidermonkey", "nspr", "glib", "glib-introspected", "cairo-shared", "freetype-shared", "fontconfig-shared", "pixman", "libpng-shared", "zlib-shared", "expat", "libffi", "readline", "ncurses", "gobject-introspection", "meson", "samurai", "python3", "py3-setuptools", "pkgconf", "pcre2"]