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 1428Shell 142Markdown 86Rust 842937 Definiciones

⎇ 534014c3ec69daea789a1d0523e1d00a69c6ed65 recipes/incoming-gnome/libcap-ng.toml TOML · 46 líneas · 2.4 KB Historia crudo

gnome-keyring necesita la API VIEJA de gcr, y vte destapó un -c que gana sobre un -E 043800faa · Sergio ·

1# libcap-ng 0.8.5 — la API sencilla de capabilities de Linux. La pide `gnome-keyring`, y aunque
2# upstream la declara `required: false` (`meson.build:40`), acá entra a propósito. La razón está en
3# el código, no en la lista de deps.
4#
5# ── QUÉ SE APAGA SI FALTA: `gkd-capability.c` ENTERO ───────────────────────────────────────────
6# `daemon/gkd-capability.c` está envuelto en `#ifdef HAVE_LIBCAPNG` de punta a punta, y su única
7# función la llama `daemon/gkd-main.c:1019` **antes de nada**:
8#
9#     gkd_capability_obtain_capability_and_drop_privileges ()
10#
11# Lo que hace: si el demonio corre con privilegios, se queda SÓLO con `CAP_IPC_LOCK` —lo que le
12# permite `mlock()` la memoria donde viven las contraseñas, para que no acabe en swap— y suelta todo
13# lo demás con `capng_change_id`, abortando si no puede. Sin libcap-ng esa función **se compila
14# vacía**: no es que falle, es que no hace nada, y el demonio de secretos se queda sin las dos
15# mitades — ni retiene lo que necesita ni suelta lo que no.
16#
17# Por eso una dep «opcional» se declara acá: el repo acaba de pagar (SDD 28 §5.11) el precio de un
18# bit de privilegio que se declaraba y no se verificaba. Ésta es la otra cara — la pieza que, si no
19# está, hace que soltar privilegios sea un no-op silencioso.
20#
21# `--without-python3`: las bindings de Python son para escribir herramientas de capabilities, no
22# para esta cadena. `--disable-static`: el consumidor es un ejecutable, pero toda la cola es la isla
23# dinámica y mezclar criterios por receta es cómo se llega a dos copias de la misma lib.
24#
25# ⚠ Fuente: el sitio del autor (Steve Grubb, Red Hat) es el upstream real de libcap-ng; no hay
26# release en GitHub. Si el mirror de fuentes (ADR 0013) no lo tiene, ésta es la URL a espejar.
27name    = "libcap-ng"
28version = "0.8.5"
29license = "LGPL-2.1-or-later"
30
31[source]
32tarball = "https://people.redhat.com/sgrubb/libcap-ng/libcap-ng-0.8.5.tar.gz"
33sha256  = "3ba5294d1cbdfa98afaacfbc00b6af9ed2b83e8a21817185dfd844cc8c7ac6ff"
34
35[build]
36compiler = "zig-cc"
37target   = "x86_64-linux-musl"
38link     = "dynamic"
39
40[build.phases]
41configure = "CFLAGS='-O2 -fPIC' ./configure --build=$CBUILD --host=$CHOST --prefix=/usr --enable-shared --disable-static --without-python3 --disable-dependency-tracking"
42compile   = 'make -j"$(nproc)"'
43install   = 'make DESTDIR=/out install'
44
45[deps]
46build = ["make"]