nix instalado en gioser: la cadena frontera→triaje vuelve a correr
'yupana frontera' llevaba desde el 2026-08-10 sin poder correr acá porque el hub no tenía nix.
Instalado desde el repo de Artix (extra/nix 2.35.2). Dos cosas que costaron medirse:
· El paquete quedó ROTO al instalarse: le faltaban libboost_{context,iostreams,url}.so.1.92.0
porque el sistema tiene boost 1.91 y 280 paquetes sin actualizar. NO se hizo 'pacman -Syu':
280 paquetes en un server protegido, sin backup, que hospeda la granja, gitea y el runner de
CI no es una decisión que tome un arreglo de tooling. El ensayo en seco mostró que la
reparación acotada eran TRES paquetes exactos (boost-libs, source-highlight, gdb) sin
cascada, y eso sí se hizo. Control después: gdb 17.2 sigue arrancando.
· El store por defecto iba a ~/.nixstore, o sea a '/', que tiene 21 G libres frente a los 126
del volumen. Llenar '/' no rompe una tanda, rompe la máquina. NIX_ROOT pasa a apuntar a
work/nixstore, que además ya es el sitio de lo pesado-y-regenerable. La caché git de nixpkgs
(~69 M) NO la gobierna esa variable —nix la pone en XDG_CACHE_HOME— así que en gioser está
mudada al volumen con un enlace: ~/.cache/nix -> /mnt/vvv/nix-cache.
Con eso, la frontera vuelve a dar respuesta, y es pequeña como corresponde a un corpus cerrado:
172 candidatos → 150 opcionales, 11 provistos, 5 nix-ismos, 4 HUECOS reales (polkit-qt-1,
qqc2-breeze-style, shared-mime-info, xwayland) y 2 pendientes de clasificar (mesa-libclc,
python3-3.14.7-env).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014QPJteswQvP1L7zSBrQQe2
Delta semántico
Ninguna definición cambió: el cambio es de texto, documentación o datos.
3 archivos · +247 −95
- docs/state/frontera-triaje.toml +69 −48
- docs/state/seed-frontera.json +171 −46
- scripts/seed-graph.py +7 −1
diff --git a/docs/state/frontera-triaje.toml b/docs/state/frontera-triaje.toml
index 2f822421..292d5e39 100644
--- a/docs/state/frontera-triaje.toml
+++ b/docs/state/frontera-triaje.toml
@@ -27,14 +27,14 @@ piden = ["mesa"]
[candidato."acl"]
veredicto = "opcional"
porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
-perfiles = ["cli", "escritorio-kde"]
+perfiles = ["base", "cli", "escritorio-kde"]
piden = ["kio", "rsync"]
[candidato."adns"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["gnupg"]
[candidato."appstream-qt"]
@@ -66,7 +66,7 @@ piden = ["kfilemetadata", "kio"]
[candidato."audit"]
veredicto = "opcional"
porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
-perfiles = ["cli", "escritorio-kde", "escritorio-mirada"]
+perfiles = ["base", "cli", "escritorio-kde", "escritorio-mirada"]
piden = ["dbus", "linux-pam"]
[candidato."aurorae"]
@@ -80,21 +80,21 @@ piden = ["kwin"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
-perfiles = ["cli", "escritorio-kde"]
+perfiles = ["base", "cli", "escritorio-kde"]
piden = ["util-linux"]
[candidato."autoconf-archive"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
-perfiles = ["cli", "escritorio-kde", "escritorio-mirada"]
+perfiles = ["base", "cli", "escritorio-kde", "escritorio-mirada"]
piden = ["python3"]
[candidato."automake"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
-perfiles = ["cli", "escritorio-kde"]
+perfiles = ["base", "cli", "escritorio-kde"]
piden = ["util-linux"]
[candidato."avahi"]
@@ -115,14 +115,14 @@ piden = ["plasma-workspace"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
-perfiles = ["cli", "escritorio-kde", "escritorio-mirada"]
+perfiles = ["base", "cli", "escritorio-kde", "escritorio-mirada"]
piden = ["python3"]
[candidato."check"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["parted"]
[candidato."clang"]
@@ -136,7 +136,7 @@ piden = ["mesa"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["shadow"]
[candidato."cups"]
@@ -149,7 +149,7 @@ piden = ["qtbase"]
[candidato."db"]
veredicto = "opcional"
porque = "conectores de base de datos: ninguna imagen los pide"
-perfiles = ["cli", "escritorio-kde", "escritorio-mirada"]
+perfiles = ["base", "cli", "escritorio-kde", "escritorio-mirada"]
piden = ["iproute2", "linux-pam"]
[candidato."dejagnu"]
@@ -204,7 +204,7 @@ piden = ["kfilemetadata"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["lsof"]
[candidato."editorconfig-core-c"]
@@ -232,14 +232,14 @@ piden = ["qtspeech"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["e2fsprogs"]
[candidato."gdbm"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "conectores de base de datos: ninguna imagen los pide"
-perfiles = ["cli", "escritorio-kde", "escritorio-mirada"]
+perfiles = ["base", "cli", "escritorio-kde", "escritorio-mirada"]
piden = ["python3"]
[candidato."git-minimal"]
@@ -248,6 +248,7 @@ sugerencia = "nix-ismo?"
porque = "variante de empaquetado de nix; hammer ya tiene la receta `git`"
perfiles = ["cli"]
piden = ["starship"]
+ausente = true # ya no aparece en el último barrido de la frontera
[candidato."glibc"]
veredicto = "nix-ismo"
@@ -255,6 +256,7 @@ sugerencia = "nix-ismo?"
porque = "la libc de nixpkgs asomando por su stdenv; hammer es musl"
perfiles = ["cli"]
piden = ["go"]
+ausente = true # ya no aparece en el último barrido de la frontera
[candidato."glslang"]
veredicto = "opcional"
@@ -275,7 +277,7 @@ piden = ["mpfr"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["gnupg"]
[candidato."gpgmepp"]
@@ -303,7 +305,7 @@ piden = ["wayland"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["sudo"]
[candidato."gst-libav"]
@@ -350,7 +352,7 @@ piden = ["qtbase"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
-perfiles = ["cli", "escritorio-kde", "escritorio-mirada"]
+perfiles = ["base", "cli", "escritorio-kde", "escritorio-mirada"]
piden = ["flex"]
[candidato."hunspell"]
@@ -364,7 +366,7 @@ piden = ["sonnet"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["iproute2"]
[candidato."jasper"]
@@ -406,14 +408,14 @@ piden = ["plasma-workspace"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["pciutils"]
[candidato."krb5"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["curl"]
[candidato."kuserfeedback"]
@@ -427,7 +429,7 @@ piden = ["plasma-workspace"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
-perfiles = ["cli", "escritorio-kde"]
+perfiles = ["base", "cli", "escritorio-kde"]
piden = ["dbus"]
[candidato."libappimage"]
@@ -448,27 +450,27 @@ piden = ["qtbase"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["iproute2"]
[candidato."libbsd"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["shadow"]
[candidato."libcap-ng"]
veredicto = "opcional"
porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
-perfiles = ["cli", "escritorio-kde"]
+perfiles = ["base", "cli", "escritorio-kde"]
piden = ["dbus", "util-linux"]
[candidato."libclc"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "Vulkan / compilación de shaders / dispatch GL: no habilitado (mesa se construye sin ellos)"
-perfiles = ["escritorio-kde", "escritorio-mirada"]
+perfiles = ["escritorio-kde"]
piden = ["mesa"]
[candidato."libdatrie"]
@@ -495,13 +497,13 @@ piden = ["kwin"]
[candidato."libglvnd"]
veredicto = "opcional"
porque = "Vulkan / compilación de shaders / dispatch GL: no habilitado (mesa se construye sin ellos)"
-perfiles = ["escritorio-kde", "escritorio-mirada"]
+perfiles = ["escritorio-kde"]
piden = ["libepoxy", "mesa", "qtbase"]
[candidato."libidn2"]
veredicto = "opcional"
porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["curl", "iputils"]
[candidato."libimobiledevice"]
@@ -529,7 +531,7 @@ piden = ["qtsvg"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["iproute2"]
[candidato."libpciaccess"]
@@ -559,6 +561,7 @@ sugerencia = "opcional?"
porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
perfiles = ["cli"]
piden = ["curl"]
+ausente = true # ya no aparece en el último barrido de la frontera
[candidato."libpulseaudio"]
veredicto = "opcional"
@@ -604,7 +607,7 @@ piden = ["qtbase"]
[candidato."libunwind"]
veredicto = "opcional"
porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
-perfiles = ["cli", "escritorio-kde", "escritorio-mirada"]
+perfiles = ["base", "cli", "escritorio-kde", "escritorio-mirada"]
piden = ["mesa", "qtmultimedia", "strace"]
[candidato."libva-minimal"]
@@ -640,7 +643,7 @@ piden = ["qtbase", "xcb-util-cursor"]
veredicto = "provisto"
provee = "xcb-util-keysyms"
porque = "nixpkgs lo separa en un paquete propio; acá lo da la receta `xcb-util-keysyms` (verificado en el store)"
-perfiles = ["escritorio-kde", "escritorio-mirada"]
+perfiles = ["escritorio-kde"]
piden = ["mesa", "qtbase"]
[candidato."libxcb-render-util"]
@@ -677,7 +680,7 @@ piden = ["qtbase"]
veredicto = "opcional"
sugerencia = "hueco?"
porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
-perfiles = ["cli", "escritorio-kde", "escritorio-mirada"]
+perfiles = ["base", "cli", "escritorio-kde", "escritorio-mirada"]
piden = ["linux-pam", "perl", "shadow", "util-linux"]
[candidato."libxft"]
@@ -746,14 +749,14 @@ piden = ["qtbase"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
-perfiles = ["escritorio-kde", "escritorio-mirada"]
+perfiles = ["escritorio-kde"]
piden = ["libinput"]
[candidato."lvm2"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["parted"]
[candidato."mariadb-connector-c"]
@@ -777,11 +780,18 @@ porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para constr
perfiles = ["escritorio-kde"]
piden = ["qtbase"]
+[candidato."mesa-libclc"]
+veredicto = "pendiente"
+sugerencia = "opcional?"
+porque = "lo pide una sola receta (mesa); mirá si es una feature opcional"
+perfiles = ["escritorio-mirada"]
+piden = ["mesa"]
+
[candidato."mesa-libgbm"]
veredicto = "provisto"
provee = "mesa"
porque = "nixpkgs lo separa en un paquete propio; acá lo da la receta `mesa` (verificado en el store)"
-perfiles = ["escritorio-kde", "escritorio-mirada"]
+perfiles = ["escritorio-kde"]
piden = ["kwin", "mesa", "qtbase"]
[candidato."milou"]
@@ -794,7 +804,7 @@ piden = ["kwin", "plasma-workspace"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
-perfiles = ["cli", "escritorio-kde", "escritorio-mirada"]
+perfiles = ["base", "cli", "escritorio-kde", "escritorio-mirada"]
piden = ["python3"]
[candidato."nghttp2"]
@@ -803,26 +813,27 @@ sugerencia = "opcional?"
porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
perfiles = ["cli"]
piden = ["curl"]
+ausente = true # ya no aparece en el último barrido de la frontera
[candidato."nghttp3"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["curl"]
[candidato."ngtcp2"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["curl"]
[candidato."openldap"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "conectores de base de datos: ninguna imagen los pide"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["gnupg"]
[candidato."orc"]
@@ -870,7 +881,7 @@ piden = ["mesa"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
-perfiles = ["cli", "escritorio-kde"]
+perfiles = ["base", "cli", "escritorio-kde"]
piden = ["util-linux"]
[candidato."polkit-qt-1"]
@@ -891,7 +902,7 @@ piden = ["kfilemetadata"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["rsync"]
[candidato."psqlodbc"]
@@ -919,9 +930,16 @@ piden = ["kcoreaddons", "kguiaddons", "knotifications", "kstatusnotifieritem", "
veredicto = "nix-ismo"
sugerencia = "nix-ismo?"
porque = "wrapper de entorno de nix, no un paquete"
-perfiles = ["escritorio-kde", "escritorio-mirada"]
+perfiles = ["escritorio-kde"]
piden = ["kcoreaddons", "kguiaddons", "knotifications", "kstatusnotifieritem", "kwidgetsaddons", "kxmlgui", "libinput"]
+[candidato."python3-3.14.7-env"]
+veredicto = "pendiente"
+sugerencia = "nix-ismo?"
+porque = "el nombre tiene forma de andamiaje de nixpkgs (env/minimal/wrapper)"
+perfiles = ["escritorio-mirada"]
+piden = ["libinput"]
+
[candidato."pyyaml"]
veredicto = "opcional"
sugerencia = "opcional?"
@@ -981,6 +999,7 @@ sugerencia = "opcional?"
porque = "helper del stdenv de nixpkgs"
perfiles = ["cli"]
piden = ["jq"]
+ausente = true # ya no aparece en el último barrido de la frontera
[candidato."rhash"]
veredicto = "opcional"
@@ -1061,14 +1080,14 @@ piden = ["libcanberra", "qtbase"]
veredicto = "opcional"
sugerencia = "nix-ismo?"
porque = "hammer usa arje-zero como PID1; ninguna imagen quiere systemd"
-perfiles = ["cli", "escritorio-kde", "escritorio-mirada"]
+perfiles = ["base", "cli", "escritorio-kde", "escritorio-mirada"]
piden = ["dbus", "mako"]
[candidato."systemd-minimal-libs"]
veredicto = "opcional"
sugerencia = "nix-ismo?"
porque = "hammer usa arje-zero como PID1; ninguna imagen quiere systemd"
-perfiles = ["cli", "escritorio-kde", "escritorio-mirada"]
+perfiles = ["base", "cli", "escritorio-kde", "escritorio-mirada"]
piden = ["dhcpcd", "htop", "libinput", "linux-pam", "mesa", "qtbase", "seatd", "util-linux"]
[candidato."taglib"]
@@ -1082,27 +1101,27 @@ piden = ["kfilemetadata"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["shadow"]
[candidato."texinfo"]
veredicto = "opcional"
porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["e2fsprogs", "git", "gnupg"]
[candidato."tinyxxd"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["dosfstools"]
[candidato."tpm2-tss"]
veredicto = "opcional"
sugerencia = "opcional?"
porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
-perfiles = ["cli"]
+perfiles = ["base", "cli"]
piden = ["gnupg"]
[candidato."uname"]
@@ -1112,6 +1131,7 @@ provee = "coreutils"
porque = "nixpkgs lo separa en un paquete propio; acá lo da la receta `coreutils` (verificado en el store)"
perfiles = ["cli"]
piden = ["git"]
+ausente = true # ya no aparece en el último barrido de la frontera
[candidato."unixodbc"]
veredicto = "opcional"
@@ -1145,7 +1165,7 @@ veredicto = "provisto"
sugerencia = "hueco?"
provee = "wayland"
porque = "nixpkgs lo separa en un paquete propio; acá lo da la receta `wayland` (verificado en el store)"
-perfiles = ["escritorio-kde", "escritorio-mirada"]
+perfiles = ["escritorio-kde"]
piden = ["kscreenlocker", "libxkbcommon", "mako", "mesa", "qtbase", "wayland", "wayland-protocols"]
[candidato."xclip"]
@@ -1165,7 +1185,7 @@ piden = ["libxkbcommon"]
[candidato."xmlto"]
veredicto = "opcional"
porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
-perfiles = ["cli", "escritorio-kde", "escritorio-mirada"]
+perfiles = ["base", "cli", "escritorio-kde", "escritorio-mirada"]
piden = ["git", "wayland"]
[candidato."xvfb"]
@@ -1188,3 +1208,4 @@ sugerencia = "opcional?"
porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
perfiles = ["cli"]
piden = ["rsync"]
+ausente = true # ya no aparece en el último barrido de la frontera
diff --git a/docs/state/seed-frontera.json b/docs/state/seed-frontera.json
index 8abdf02c..58b80f0b 100644
--- a/docs/state/seed-frontera.json
+++ b/docs/state/seed-frontera.json
@@ -1,7 +1,7 @@
{
"advertencia": "HIPÓTESIS desde metadata de nixpkgs. Cada candidato es (a) dep opcional que hammer no habilitó, (b) nix-ismo por filtrar, o (c) hueco real. Clasificar a mano; NO promover a receta automáticamente.",
"perfiles": {
- "cli": {
+ "base": {
"candidatos": {
"acl": [
"rsync"
@@ -42,11 +42,154 @@
"gdbm": [
"python3"
],
- "git-minimal": [
- "starship"
+ "gnutls": [
+ "gnupg"
+ ],
+ "groff": [
+ "sudo"
+ ],
+ "help2man": [
+ "flex"
+ ],
+ "iptables": [
+ "iproute2"
+ ],
+ "kmod": [
+ "pciutils"
+ ],
+ "krb5": [
+ "curl"
+ ],
+ "libapparmor": [
+ "dbus"
+ ],
+ "libbpf": [
+ "iproute2"
+ ],
+ "libbsd": [
+ "shadow"
+ ],
+ "libcap-ng": [
+ "dbus",
+ "util-linux"
+ ],
+ "libidn2": [
+ "curl",
+ "iputils"
+ ],
+ "libmnl": [
+ "iproute2"
],
- "glibc": [
- "go"
+ "libunwind": [
+ "strace"
+ ],
+ "libxcrypt": [
+ "perl",
+ "shadow",
+ "util-linux"
+ ],
+ "lvm2": [
+ "parted"
+ ],
+ "mpdecimal": [
+ "python3"
+ ],
+ "nghttp3": [
+ "curl"
+ ],
+ "ngtcp2": [
+ "curl"
+ ],
+ "openldap": [
+ "gnupg"
+ ],
+ "po4a": [
+ "util-linux"
+ ],
+ "popt": [
+ "rsync"
+ ],
+ "systemd-minimal": [
+ "dbus"
+ ],
+ "systemd-minimal-libs": [
+ "dhcpcd",
+ "util-linux"
+ ],
+ "tcb": [
+ "shadow"
+ ],
+ "texinfo": [
+ "e2fsprogs",
+ "git",
+ "gnupg"
+ ],
+ "tinyxxd": [
+ "dosfstools"
+ ],
+ "tpm2-tss": [
+ "gnupg"
+ ],
+ "xmlto": [
+ "git"
+ ]
+ },
+ "recetas_sembradas": 57,
+ "sin_attr_en_nixpkgs": [
+ "bzip2-shared",
+ "ca-certificates",
+ "libusb",
+ "linux-headers",
+ "make",
+ "ncurses-shared",
+ "openssl-threads",
+ "procps-ng",
+ "readline-shared",
+ "sed",
+ "sqlite-shared",
+ "xz-shared"
+ ]
+ },
+ "cli": {
+ "candidatos": {
+ "acl": [
+ "rsync"
+ ],
+ "adns": [
+ "gnupg"
+ ],
+ "audit": [
+ "dbus"
+ ],
+ "autoconf": [
+ "util-linux"
+ ],
+ "autoconf-archive": [
+ "python3"
+ ],
+ "automake": [
+ "util-linux"
+ ],
+ "bluez-headers": [
+ "python3"
+ ],
+ "check": [
+ "parted"
+ ],
+ "cmocka": [
+ "shadow"
+ ],
+ "db": [
+ "iproute2"
+ ],
+ "ed": [
+ "lsof"
+ ],
+ "fuse": [
+ "e2fsprogs"
+ ],
+ "gdbm": [
+ "python3"
],
"gnutls": [
"gnupg"
@@ -89,9 +232,6 @@
"libmnl": [
"iproute2"
],
- "libpsl": [
- "curl"
- ],
"libunwind": [
"strace"
],
@@ -106,9 +246,6 @@
"mpdecimal": [
"python3"
],
- "nghttp2": [
- "curl"
- ],
"nghttp3": [
"curl"
],
@@ -127,9 +264,6 @@
"popt": [
"rsync"
],
- "remove-references-to": [
- "jq"
- ],
"systemd-minimal": [
"dbus"
],
@@ -152,27 +286,27 @@
"tpm2-tss": [
"gnupg"
],
- "uname": [
- "git"
- ],
"xclip": [
"gitui"
],
"xmlto": [
"git"
- ],
- "xxhash": [
- "rsync"
]
},
- "recetas_sembradas": 74,
+ "recetas_sembradas": 80,
"sin_attr_en_nixpkgs": [
+ "bzip2-shared",
"ca-certificates",
"libusb",
"linux-headers",
"make",
+ "ncurses-shared",
+ "openssl-threads",
"procps-ng",
- "sed"
+ "readline-shared",
+ "sed",
+ "sqlite-shared",
+ "xz-shared"
]
},
"escritorio-kde": {
@@ -722,12 +856,6 @@
"help2man": [
"flex"
],
- "libclc": [
- "mesa"
- ],
- "libglvnd": [
- "mesa"
- ],
"libpciaccess": [
"libdrm"
],
@@ -740,11 +868,9 @@
"libwacom": [
"libinput"
],
- "libxcb-keysyms": [
- "mesa"
- ],
"libxcrypt": [
- "linux-pam"
+ "linux-pam",
+ "perl"
],
"libxrandr": [
"mesa"
@@ -758,10 +884,7 @@
"llvm": [
"mesa"
],
- "lua": [
- "libinput"
- ],
- "mesa-libgbm": [
+ "mesa-libclc": [
"mesa"
],
"mpdecimal": [
@@ -773,7 +896,7 @@
"pycparser": [
"mesa"
],
- "python3-3.14.6-env": [
+ "python3-3.14.7-env": [
"libinput"
],
"pyyaml": [
@@ -807,13 +930,6 @@
"w3m": [
"linux-pam"
],
- "wayland-scanner": [
- "libxkbcommon",
- "mako",
- "mesa",
- "wayland",
- "wayland-protocols"
- ],
"xkbcomp": [
"libxkbcommon"
],
@@ -824,15 +940,24 @@
"libxkbcommon"
]
},
- "recetas_sembradas": 40,
+ "recetas_sembradas": 41,
"sin_attr_en_nixpkgs": [
+ "bzip2-shared",
+ "expat-shared",
+ "libffi-shared",
"make",
"markupsafe",
"mesa-swrast",
"mirada-compositor",
"mirada-ctl",
"mirada-greeter",
- "packaging"
+ "ncurses-shared",
+ "openssl-threads",
+ "packaging",
+ "readline-shared",
+ "sqlite-shared",
+ "xz-shared",
+ "zlib-shared"
]
}
},
diff --git a/scripts/seed-graph.py b/scripts/seed-graph.py
index 5e24acab..b1e83885 100755
--- a/scripts/seed-graph.py
+++ b/scripts/seed-graph.py
@@ -41,7 +41,13 @@ import targets as targets_mod
TRANSITIVO = "--transitivo" in sys.argv # comparar CLAUSURA sembrada vs deps aplanadas de hammer
NIXPKGS = os.environ.get("NIXPKGS", "nixpkgs")
-NIX_ROOT = os.environ.get("NIX_ROOT", os.path.expanduser("~/.nixstore"))
+# El store de nix va al `work/` del repo, NO a `~/.nixstore` (2026-09-08). En gioser `$HOME`
+# vive en `/` (74 G, 21 libres) y el volumen tiene 126: llenar `/` no rompe una tanda, rompe
+# la MÁQUINA. Y `work/` ya es el sitio de lo pesado-y-regenerable, así que la poda lo alcanza.
+# Medido: el store de un eval son ~8 MB; lo gordo es la caché git de nixpkgs (~69 MB), que
+# nix pone en `$XDG_CACHE_HOME` y por eso NO la gobierna esta variable — en gioser está
+# mudada al volumen con un enlace (`~/.cache/nix -> /mnt/vvv/nix-cache`).
+NIX_ROOT = os.environ.get("NIX_ROOT", str(ROOT / "work/nixstore"))
OUT = ROOT / "docs/state/seed-edges.json"
FRONTERA = ROOT / "docs/state/seed-frontera.json"
LOTE = 120 # nombres por proceso de `nix eval` (uno solo evalúa 6 en 0.7s; el costo es el arranque)