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 1471Shell 173Rust 105Markdown 943545 Definiciones

gnome: `xz-shared` — sin ella NINGUNA app de la imagen carga, no una

`scripts/vigia-sonames.py` sobre los cinco perfiles marcaba `liblzma.so.5` en GNOME pedido por
`libadwaita` y por `python3`. La columna de QUIÉN lo pide es la que decide, y acá decidió fuerte:
mirando el artefacto sellado, el `NEEDED` no lo lleva un binario suelto sino
**`usr/lib/libadwaita-1.so.0`**, que es la librería contra la que enlaza toda app GTK4/GNOME de la
imagen. Sin proveedor del SONAME el loader falla en TODAS, no en una.

Misma fuga de siempre —el `xz` canónico del corpus es `.a`, así que el rootfs lo resolvía contra el
sysroot Alpine DEL LAB— y por eso invisible al store: el lab no entra en `hash_inputs`.

La receta `-shared` existía sólo en `incoming-kde`. Se promueve al corpus con el mismo procedimiento
que `bzip2-shared` el 2026-09-03, y comprobando lo mismo antes de creerlo: el hash es idéntico desde
las dos rutas (b3:174289d5) ⇒ un solo artefacto y cero rebuilds. Si hubiera diferido, sería otra
receta y no valdría la promoción.

Va sólo en GNOME: en cosmic y sway ese soname lo pide únicamente `python3`, que es herramienta de
build y no viaja en la imagen.

GNOME pasa de 3 sonames sin proveedor a 2. De los dos que quedan, `libperl.so` es de `perl` (build),
y `libreadline.so.8` lo pide `usr/bin/sqlite3` —el shell de la CLI, NO `libsqlite3.so.0`—, así que
las apps están bien y lo roto es el comando. Queda anotado como verruga, no como rotura.

3a83d2eda4116741047a332477cfb72b6c5c7fd1 · por Sergio · (hace 1 mes) · padre 92d47cfe1 · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

2 archivos · +36 −0

diff --git a/docs/state/targets.toml b/docs/state/targets.toml
index 6d7491b3..ae920431 100644
--- a/docs/state/targets.toml
+++ b/docs/state/targets.toml
@@ -370,6 +370,15 @@ paquetes = [
   # Arreglarlo de verdad pide re-sellar pipewire, que arrastra 7 artefactos —entre ellos dos Rust
   # que ya murieron por OOM— así que se paga el día que pipewire se re-selle por otro motivo.
   "expat-shared", "libffi-shared", "bzip2-shared", "ncurses-shared",
+  # `xz-shared` se suma el 2026-09-05, cazada por `scripts/vigia-sonames.py`. Y es la MÁS grave de
+  # todas las de esta clase encontradas hasta ahora: quien pide `liblzma.so.5` no es una herramienta
+  # ni un binario suelto, es **`libadwaita-1.so.0`** — la librería contra la que enlaza TODA app
+  # GTK4/GNOME de la imagen. Sin proveedor, el loader falla en cada una de ellas, no en una.
+  # El `xz` canónico del corpus es `.a`; la receta `-shared` existía sólo en `incoming-kde`, y se
+  # promueve al corpus igual que `bzip2-shared`: mismo hash desde las dos partes
+  # (b3:174289d5) ⇒ un solo artefacto, cero rebuilds.
+  # Sólo va acá: en cosmic y sway ese soname lo pide únicamente `python3`, que no viaja en la imagen.
+  "xz-shared",
   # ── TEMA DE ICONOS Y DE CURSORES ─────────────────────────────────────────────────────────────
   # Añadido el 2026-09-03: medido sobre los artefactos del cierre, este perfil tenía **CERO** temas
   # de iconos — ni siquiera `hicolor`. Se ve en `docs/evidencia/gnome-shell-qemu-2026-09-03-libs-
diff --git a/recipes/xz-shared.toml b/recipes/xz-shared.toml
new file mode 100644
index 00000000..783f20bd
--- /dev/null
+++ b/recipes/xz-shared.toml
@@ -0,0 +1,27 @@
+# xz-shared 5.8.3 — variante DINÁMICA (liblzma.so, PIC) para el escritorio KDE.
+#
+# El xz canónico (recipes/xz.toml) sella liblzma.a --disable-shared (cola static-musl). Ese .a sin PIC no
+# enlaza dentro de libarchive.so/libzip.so. Como zlib-shared/bzip2-shared, esta variante construye
+# liblzma.so con autotools --enable-shared (PIC nativo). Nombre distinto para no colisionar con el canónico.
+name    = "xz-shared"
+version = "5.8.3"
+
+[source]
+tarball = "https://github.com/tukaani-project/xz/releases/download/v5.8.3/xz-5.8.3.tar.xz"
+sha256  = "fff1ffcf2b0da84d308a14de513a1aa23d4e9aa3464d17e64b9714bfdd0bbfb6"
+
+[build]
+compiler = "zig-cc"
+target   = "x86_64-linux-musl"
+link     = "dynamic"
+flags    = []
+
+[build.phases]
+configure = '''./configure --build=$CBUILD --host=$CHOST --prefix=/usr \
+  --enable-shared --disable-static \
+  --disable-xz --disable-xzdec --disable-lzmadec --disable-lzmainfo --disable-scripts --disable-doc'''
+compile = 'make -j"$(nproc)"'
+install = "make DESTDIR=/out install && find /out -name '*.la' -delete"
+
+[deps]
+build = ["pkgconf"]