Files
hammer/recipes/incoming-gnome/libsecret.toml
T
sergioandClaude Opus 5 fd73295c94 gnome onda 3: las tres piezas de soporte de eds — libsecret, libxml2-shared, libuuid-shared
Leído el CMakeLists real de evolution-data-server 3.56.2, la frontera de la cima
son cuatro cosas, no una. Estas son tres; la cuarta (NSS) va aparte.

  libsecret 0.21.7  b3:b75607c6  CMakeLists:932 la mete en el pkg_check_modules
        (DATA_SERVER REQUIRED …) sin perilla, y libedataserver-1.2 es lo que
        gnome-shell enlaza. En gcr se la había esquivado con -Dssh_agent=false;
        acá no hay cómo: eds guarda ahí las credenciales de correo y calendario.
        -Dcrypto=libgcrypt de las tres del combo — gnutls no existe en el corpus
        y 'disabled' apagaría el cifrado justo en la pieza que guarda contraseñas.

  libxml2-shared    b3:87389636  en libical la libxml2 sólo la enlazaba un binario
        de build y bastó la .a canónica; en eds entra en cuatro .so reales
        (CMakeLists:932,936,937,938) y la .a no es PIC. Mismos patches de CVE que
        la canónica: la superficie de seguridad no diverge.

  libuuid-shared    b3:d42cf850  `uuid` es REQUERIDA (:424). No es un
        "util-linux-shared": --disable-all-programs apaga los ~100 binarios y deja
        una sola librería. Duplicar la lista de --without-* del canónico para
        conseguir un .so de 30 KB sería mantener esa superficie en dos lugares.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 20:04:14 -04:00

42 lines
2.5 KiB
TOML

# libsecret 0.21.7 — cliente de la Secret Service API (contraseñas guardadas en el llavero).
#
# Vuelve a la campaña por la puerta de atrás. En gcr se la esquivó a propósito (-Dssh_agent=false la
# sacaba de la frontera, ver el comentario de gcr.toml), pero evolution-data-server la pide DURA:
# CMakeLists.txt:932 la mete en el pkg_check_modules(DATA_SERVER REQUIRED …) junto a gio y libsoup,
# sin perilla. Y libedataserver-1.2 es exactamente lo que gnome-shell enlaza (meson.build:73). O sea
# que esta vez no hay cómo apagarla: eds guarda ahí las credenciales de las cuentas de correo y
# calendario, que es literalmente su trabajo.
#
# -Dcrypto=libgcrypt de las tres opciones del combo ('libgcrypt','gnutls','disabled'): libgcrypt ya
# está sellada y en variante -shared; gnutls no existe en el corpus. Con 'disabled' libsecret deja de
# cifrar la memoria de los secretos en tránsito, que es justo lo que no se quiere apagar en la pieza
# que guarda contraseñas.
#
# Apagados y lo que compran:
# -Dtpm2=false → tss2/tpm2-tss, tres recetas que nadie más pide.
# -Dpam=false → linux-pam; arje-zero no usa PAM (no hay sesión PAM que rellenar).
# -Dmanpage=false -Dgtk_doc=false → xsltproc + docbook-xsl + gi-docgen.
# -Dvapi=false → no hay valac en el corpus.
# -Dbash_completion=disabled → sólo instala un fichero de completado; no cambia la librería.
#
# ISLA DINÁMICA: -Dintrospection=true y shared. eds expone typelibs y su cierre pasa por acá.
name = "libsecret"
version = "0.21.7"
[source]
tarball = "https://download.gnome.org/sources/libsecret/0.21/libsecret-0.21.7.tar.xz"
sha256 = "6b452e4750590a2b5617adc40026f28d2f4903de15f1250e1d1c40bfd68ed55e"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
[build.phases]
configure = "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 -Dcrypto=libgcrypt -Dtpm2=false -Dpam=false -Dmanpage=false -Dgtk_doc=false -Dvapi=false -Dbash_completion=disabled -Dintrospection=true -Dc_args=-Wno-error=date-time"
compile = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
[deps]
build = ["meson", "samurai", "python3", "pkgconf", "gettext-tiny", "py3-setuptools", "gi-foreign-girs", "gobject-introspection", "glib", "glib-introspected", "libgcrypt-shared", "libgpg-error-shared", "libffi", "pcre2", "zlib-shared"]