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/gcr.toml TOML · 53 líneas · 3.8 KB Historia crudo

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

1# gcr 4.4.0.1 — criptografía y almacén de claves para el escritorio (parseo de certificados, prompts
2# de contraseña, agente ssh). gnome-shell la exige por `gcr-4` (meson.build:74).
3#
4# Feature-minimal, y cada apagado se paga en recetas que NO hay que autorar:
5#   -Dssh_agent=false  → libsecret sólo es requerida por el agente ssh (meson.build:96). Sin él,
6#                        libsecret deja de ser frontera. El shell usa gcr para prompts, no como
7#                        agente ssh (eso lo hace gnome-keyring, que no está en esta campaña).
8#   -Dsystemd=disabled    → libsystemd es `required: get_option('systemd')` (:104), o sea que acá SÍ
9#                        hay perilla. Es la tercera vez que aparece la C-ABI de logind en este
10#                        frente y la tercera que se esquiva; mutter sigue siendo la única sin salida.
11#   -Dgtk4=false       → la UI de prompts es opcional; `gcr-4` (lo que el shell enlaza) es la lib base.
12#   -Dcrypto=libgcrypt -Dgpg_path=/usr/bin/gpg → de las dos opciones (libgcrypt/gnutls), libgcrypt YA está en el corpus y
13#                        sellada, con su libgpg-error. gnutls no existe acá.
14#
15#   -Dgpg_path=…      → gcr sólo quiere la RUTA del binario gpg para hornearla en el código
16#                        (meson.build:63-66: si la opción está vacía, hace find_program). No compila
17#                        ni ejecuta nada de gnupg, así que fijar la ruta evita meter gnupg entero al
18#                        sandbox por un string. La ruta es la del futuro artefacto, no la del host.
19#
20# El sed saca `subdir('po')` (:153). NO es capricho: el msgfmt de gettext-tiny —lo único que hay en
21# el corpus— ABORTA con SIGABRT en po/ar.po (src/msgfmt.c:183). Es la segunda vez que ese msgfmt
22# marca el límite (en iso-codes lo esquivé de antemano); si aparece una tercera, conviene autorar el
23# gettext de GNU de verdad en vez de seguir apagando traducciones receta por receta. Lo que se pierde
24# son los textos traducidos de los prompts de contraseña; la librería que enlaza el shell es la misma.
25#
26#: libgcrypt en el corpus es SÓLO estática, y su libgcrypt.pc pone
27# gpg-error en `Requires.private`, que pkg-config expande únicamente con --static. Al enlazar el .a
28# dentro de un .so ese cierre se pierde y el linker corta con `undefined symbol:
29# gpg_err_code_to_errno` (referenciado desde libgcrypt.a). Se agrega a mano en vez de tocar
30# libgcrypt.toml: re-hashearla arrastraría a todo lo que ya la tiene sellada.
31#
32# p11-kit es la única frontera que gcr abrió, y se cerró con -Dtrust_module=disabled del lado de ella.
33# ISLA DINÁMICA: produce .so con GObject ⇒ glib dinámica, un registro de GType.
34name    = "gcr"
35version = "4.4.0.1"
36license = "LGPL-2.1-or-later"
37
38[source]
39tarball = "https://download.gnome.org/sources/gcr/4.4/gcr-4.4.0.1.tar.xz"
40sha256  = "0c3c341e49f9f4f2532a4884509804190a0c2663e6120360bb298c5d174a8098"
41
42[build]
43compiler = "zig-cc"
44target   = "x86_64-linux-musl"
45link     = "dynamic"
46
47[build.phases]
48configure = "sed -i \"/^subdir('po')$/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 -Dgtk4=false -Dssh_agent=false -Dsystemd=disabled -Dcrypto=libgcrypt -Dgpg_path=/usr/bin/gpg -Dintrospection=true -Dvapi=false -Dgtk_doc=false -Dc_args=-Wno-error=date-time"
49compile   = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
50install   = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
51
52[deps]
53build = ["meson", "samurai", "python3", "pkgconf", "gettext-tiny", "py3-setuptools", "gi-foreign-girs", "gobject-introspection", "glib", "glib-introspected", "p11-kit", "libgcrypt-shared", "libgpg-error-shared", "libffi", "pcre2", "zlib"]