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>
42 lines
2.5 KiB
TOML
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"]
|