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