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…
triaje: 26 más — quedan 27, y un Chromium entero colgaba de una VPN
1# frontera-triaje.toml — VEREDICTOS sobre los candidatos a hueco de la frontera.
2#
3# Lo genera y sincroniza `scripts/triaje.py` desde `seed-frontera.json`; los veredictos los
4# pone un HUMANO editando este fichero. Sincronizar NO pisa lo ya decidido: sólo agrega
5# candidatos nuevos y marca `[ausente]` los que dejaron de aparecer.
6#
7# veredicto ∈ pendiente | hueco | opcional | nix-ismo | provisto
8# hueco — falta de verdad. Ponelo como raíz en docs/state/targets.toml ⇒ nace un nodo
9# `wanted` en el grafo y entra al drenaje. (`triaje.py --aplicar` te da la línea.)
10# opcional — dep que nixpkgs habilita y nosotros no queremos. Queda registrada para que no
11# vuelva a preguntarse.
12# nix-ismo — andamiaje de nixpkgs sin contraparte acá. `--aplicar` lo manda al descarte del
13# sembrador ⇒ la próxima corrida sale más limpia.
14# provisto — no falta: ya lo da otra receta con otro nombre. `provee = "<receta>"` dice cuál;
15# `--aplicar` lo manda al sembrador como alias.
16#
17# `sugerencia` es una heurística con evidencia, NO un veredicto: abarata el juicio, no lo cierra.
18schema = "hammer-frontera-triaje/1"
19
20[candidato."CUnit"]
21veredicto = "nix-ismo"
22sugerencia = "opcional?"
23porque = "nghttp2 1.64.0 no nombra CUnit en ningún fichero: sus tests usan munit VENDORIZADO en tests/munit/. Es una dep rancia de la expresión de nixpkgs ⇒ no puede volver como hueco ni encendiendo los tests"
24perfiles = ["escritorio-gnome"]
25piden = ["nghttp2"]
26
27[candidato."SPIRV-LLVM-Translator"]
28veredicto = "opcional"
29sugerencia = "opcional?"
30porque = "Vulkan / compilación de shaders / dispatch GL: no habilitado (mesa se construye sin ellos)"
31perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
32piden = ["mesa"]
33
34[candidato."acl"]
35veredicto = "opcional"
36porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
37perfiles = ["base", "cli", "escritorio-kde", "escritorio-sway"]
38piden = ["kio", "libarchive", "rsync"]
39
40[candidato."ada"]
41veredicto = "opcional"
42sugerencia = "opcional?"
43porque = "nodejs la bundlea a propósito y la receta lo dice con nombre y apellido (ada, brotli, c-ares, icu, nghttp2, openssl, simdjson, simdutf, sqlite, zstd): acá Node es una HERRAMIENTA DE BUILD del sandbox de Gecko, no software que la distro publique"
44perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
45piden = ["nodejs"]
46
47[candidato."adns"]
48veredicto = "opcional"
49sugerencia = "opcional?"
50porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
51perfiles = ["base", "cli", "escritorio-sway"]
52piden = ["gnupg"]
53
54[candidato."amf-headers"]
55veredicto = "opcional"
56sugerencia = "opcional?"
57porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-amf, la codificación por hardware de AMD: necesita el driver propietario, que la distro no trae"
58perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
59piden = ["ffmpeg"]
60
61[candidato."appstream-qt"]
62veredicto = "opcional"
63porque = "formatos/paquetería ajenos; hammer tiene los suyos (.swm, Etapa F)"
64perfiles = ["escritorio-kde"]
65piden = ["frameworkintegration", "plasma-workspace"]
66
67[candidato."argcomplete"]
68veredicto = "opcional"
69sugerencia = "opcional?"
70porque = "no lo enlaza nada: tools/meson.build:17 lo usa como PROGRAMA (register-python-argcomplete) para generar el completado de bash de `gdctl`, dentro del bloque `if bash_completion`. La receta pasa -Dbash_completion=false"
71perfiles = ["escritorio-gnome"]
72piden = ["mutter"]
73
74[candidato."argyllcms"]
75veredicto = "opcional"
76sugerencia = "opcional?"
77porque = "colord va con -Dargyllcms_sensor=false explícito: es el soporte de colorímetros de hardware para calibrar la pantalla"
78perfiles = ["escritorio-gnome"]
79piden = ["colord"]
80
81[candidato."asio"]
82veredicto = "opcional"
83sugerencia = "opcional?"
84porque = "dep del plugin obs-websocket, que NO se construye: la receta lo neutraliza con `touch plugins/obs-websocket/CMakeLists.txt` y el artefacto sellado lo confirma — usr/lib/obs-plugins no tiene obs-websocket.so. asio es su capa de red asíncrona"
85perfiles = ["escritorio-kde"]
86piden = ["obs-studio"]
87
88[candidato."aspell"]
89veredicto = "opcional"
90sugerencia = "opcional?"
91porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
92perfiles = ["escritorio-kde"]
93piden = ["sonnet"]
94
95[candidato."at-spi2-core"]
96veredicto = "opcional"
97sugerencia = "opcional?"
98porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
99perfiles = ["escritorio-kde"]
100piden = ["qtbase"]
101ausente = true # ya no aparece en el último barrido de la frontera
102
103[candidato."attr"]
104veredicto = "opcional"
105porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
106perfiles = ["escritorio-kde"]
107piden = ["kfilemetadata", "kio", "libarchive"]
108
109[candidato."audit"]
110veredicto = "opcional"
111porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
112perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
113piden = ["dbus", "linux-pam", "networkmanager"]
114
115[candidato."aurorae"]
116veredicto = "opcional"
117sugerencia = "opcional?"
118porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
119perfiles = ["escritorio-kde"]
120piden = ["kwin"]
121
122[candidato."autoconf"]
123veredicto = "opcional"
124sugerencia = "opcional?"
125porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
126perfiles = ["base", "cli", "escritorio-kde", "escritorio-sway"]
127piden = ["util-linux"]
128
129[candidato."autoconf-archive"]
130veredicto = "opcional"
131sugerencia = "opcional?"
132porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
133perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
134piden = ["python3"]
135
136[candidato."autogen"]
137veredicto = "opcional"
138sugerencia = "opcional?"
139porque = "no se enlaza: configure.ac:68 busca el PROGRAMA `autogen` y si no está sólo hace `touch tests/*.c` (línea 535). El Makefile.am:414 lo dice con todas las letras — los ficheros generados VIENEN en el tarball de release y el touch existe «to prevent stale files from calling autogen in tarball releases». Andamiaje de los tests, no de la librería"
140perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
141piden = ["libsndfile"]
142
143[candidato."automake"]
144veredicto = "opcional"
145sugerencia = "opcional?"
146porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
147perfiles = ["base", "cli", "escritorio-kde", "escritorio-sway"]
148piden = ["util-linux"]
149
150[candidato."avahi"]
151veredicto = "opcional"
152porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
153perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
154piden = ["kdnssd", "pipewire"]
155
156[candidato."baloo"]
157veredicto = "opcional"
158sugerencia = "hueco?"
159porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
160perfiles = ["escritorio-kde"]
161piden = ["dolphin", "gwenview", "plasma-desktop", "plasma-workspace"]
162
163[candidato."baloo-widgets"]
164veredicto = "pendiente"
165sugerencia = "opcional?"
166porque = "lo pide una sola receta (dolphin); mirá si es una feature opcional"
167perfiles = ["escritorio-kde"]
168piden = ["dolphin"]
169
170[candidato."bash-completion"]
171veredicto = "provisto"
172sugerencia = "hueco?"
173provee = "bash-completion"
174porque = "lo piden 5 recetas de la imagen — difícil que sea accesorio"
175perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
176piden = ["appstream", "colord", "gnome-shell", "modemmanager", "swayimg"]
177
178[candidato."bluez"]
179veredicto = "opcional"
180porque = "lo piden 3 recetas"
181perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
182piden = ["networkmanager", "pipewire", "pulseaudio"]
183
184[candidato."bluez-headers"]
185veredicto = "opcional"
186sugerencia = "opcional?"
187porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
188perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
189piden = ["python3"]
190
191[candidato."boost-build"]
192veredicto = "pendiente"
193sugerencia = "opcional?"
194porque = "lo pide una sola receta (boost); mirá si es una feature opcional"
195perfiles = ["escritorio-kde"]
196piden = ["boost"]
197
198[candidato."bpftools"]
199veredicto = "opcional"
200sugerencia = "opcional?"
201porque = "la receta pasa -Debpf=false, y ya estaba escrito en sus comentarios"
202perfiles = ["escritorio-kde"]
203piden = ["networkmanager"]
204
205[candidato."bubblewrap"]
206veredicto = "provisto"
207provee = "bwrap"
208porque = "lo piden 2 recetas"
209perfiles = ["escritorio-cosmic", "escritorio-gnome"]
210piden = ["gnome-desktop", "xdg-desktop-portal"]
211
212[candidato."c-ares"]
213veredicto = "opcional"
214porque = "configure.ac:225 de nghttp2 pone request_libcares=no DENTRO del bloque --enable-lib-only, que es justo lo que pasa la receta ⇒ ni estando presente se usaría; y nodejs la bundlea a propósito (su receta lo documenta: Alpine construye contra diez deps de sistema, el corpus tiene dos)"
215perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
216piden = ["nghttp2", "nodejs"]
217
218[candidato."cef-binary"]
219veredicto = "opcional"
220sugerencia = "opcional?"
221porque = "-DENABLE_BROWSER=OFF, y la receta ya lo explica: CEF es un prebuilt de glibc ⇒ montón B (qorpa, ADR 0015), no se construye desde fuente"
222perfiles = ["escritorio-kde"]
223piden = ["obs-studio"]
224
225[candidato."cfitsio"]
226veredicto = "opcional"
227sugerencia = "opcional?"
228porque = "CMakeLists.txt:121 la usa `if(CFITSIO_FOUND)` con un FindCFitsio propio: son imágenes FITS de astronomía. ⚠ Es un `find` AUTOMÁTICO sin apagar, pero eso NO es una escotilla del catálogo: el sandbox de hammer monta SÓLO las deps declaradas (docs/02-build-lab.md §3.4, raíz tmpfs + bind read-only de las deps) y agregarla a [deps] movería el ArtifactHash, o sea que se vería. La vía silenciosa es otra: que aparezca en el LAB, que no entra en hash_inputs. "
229perfiles = ["escritorio-kde"]
230piden = ["gwenview"]
231
232[candidato."check"]
233veredicto = "opcional"
234sugerencia = "hueco?"
235porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
236perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
237piden = ["fcft", "girara", "parted", "pulseaudio"]
238
239[candidato."cjson"]
240veredicto = "opcional"
241sugerencia = "opcional?"
242porque = "el artefacto sellado de obs-studio no tiene NINGÚN NEEDED a libcjson (medido con readelf sobre los 13 plugins y los binarios): el JSON que OBS enlaza de verdad es jansson, que sí está en [deps]"
243perfiles = ["escritorio-kde"]
244piden = ["obs-studio"]
245
246[candidato."clang"]
247veredicto = "opcional"
248sugerencia = "opcional?"
249porque = "Vulkan / compilación de shaders / dispatch GL: no habilitado (mesa se construye sin ellos)"
250perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
251piden = ["mesa"]
252
253[candidato."cmocka"]
254veredicto = "opcional"
255sugerencia = "opcional?"
256porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
257perfiles = ["base", "cli", "escritorio-sway"]
258piden = ["shadow"]
259
260[candidato."cups"]
261veredicto = "opcional"
262porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
263perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
264piden = ["gtk3", "gtk4", "qtbase"]
265
266[candidato."db"]
267veredicto = "opcional"
268porque = "conectores de base de datos: ninguna imagen los pide"
269perfiles = ["base", "cli", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
270piden = ["evolution-data-server", "iproute2", "linux-pam"]
271
272[candidato."dbus-python"]
273veredicto = "opcional"
274porque = "sólo la usan los tests: en libsecret 0.21.7 vive en mock-service*.py y test-py-*.py y el árbol no la nombra fuera de ahí; modemmanager va con -Dtests=false. Ninguna librería instalada la enlaza"
275perfiles = ["escritorio-gnome", "escritorio-kde"]
276piden = ["libsecret", "modemmanager"]
277
278[candidato."ddcutil"]
279veredicto = "pendiente"
280sugerencia = "opcional?"
281porque = "lo pide una sola receta (powerdevil); mirá si es una feature opcional"
282perfiles = ["escritorio-kde"]
283piden = ["powerdevil"]
284
285[candidato."dejagnu"]
286veredicto = "opcional"
287sugerencia = "opcional?"
288porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
289perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
290piden = ["libffi"]
291
292[candidato."desktop-file-utils"]
293veredicto = "provisto"
294provee = "desktop-file-utils"
295porque = "lo piden 3 recetas"
296perfiles = ["escritorio-gnome"]
297piden = ["gnome-shell", "libadwaita", "mutter"]
298
299[candidato."directx-headers"]
300veredicto = "opcional"
301sugerencia = "opcional?"
302porque = "Vulkan / compilación de shaders / dispatch GL: no habilitado (mesa se construye sin ellos)"
303perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
304piden = ["mesa"]
305
306[candidato."discount"]
307veredicto = "opcional"
308sugerencia = "opcional?"
309porque = "okular la declara OPCIONAL dos veces: entra en la lista FORCE_NOT_REQUIRED_DEPENDENCIES (CMakeLists.txt:37) y su find_package va con set_okular_optional_package_properties. Es el back-end de Markdown; sin él okular no previsualiza .md"
310perfiles = ["escritorio-kde"]
311piden = ["okular"]
312
313[candidato."djvulibre"]
314veredicto = "opcional"
315sugerencia = "opcional?"
316porque = "okular la declara OPCIONAL dos veces: entra en la lista FORCE_NOT_REQUIRED_DEPENDENCIES (CMakeLists.txt:37) y su find_package va con set_okular_optional_package_properties. Es el back-end de DjVu, el formato de libros escaneados"
317perfiles = ["escritorio-kde"]
318piden = ["okular"]
319
320[candidato."dnsmasq"]
321veredicto = "opcional"
322sugerencia = "opcional?"
323porque = "⚠ no es una librería que se enlace: meson_options.txt:10 la declara `type: 'string'` — una RUTA a un binario que NM ejecuta. Sirve para el método `shared` (compartir la conexión) y para el plugin de DNS con caché. Capacidad ausente, no dep rota"
324perfiles = ["escritorio-kde"]
325piden = ["networkmanager"]
326
327[candidato."docbook5"]
328veredicto = "opcional"
329sugerencia = "opcional?"
330porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
331perfiles = ["escritorio-kde", "escritorio-mirada", "escritorio-sway"]
332piden = ["linux-pam"]
333
334[candidato."docutils"]
335veredicto = "opcional"
336sugerencia = "hueco?"
337porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
338perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
339piden = ["gdk-pixbuf", "glib", "gnome-shell", "gtk4", "json-glib", "libdrm", "mutter", "pango", "pipewire", "xdg-desktop-portal"]
340
341[candidato."double-conversion"]
342veredicto = "opcional"
343sugerencia = "opcional?"
344porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
345perfiles = ["escritorio-kde"]
346piden = ["qtbase"]
347
348[candidato."doxygen"]
349veredicto = "opcional"
350sugerencia = "hueco?"
351porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
352perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
353piden = ["exiv2", "libqalculate", "libxkbcommon", "pipewire", "wayland", "wireplumber"]
354
355[candidato."dri-pkgconfig-stub"]
356veredicto = "opcional"
357sugerencia = "opcional?"
358porque = "es el stub que publica dri.pc desde que mesa dejó de hacerlo. include/meson.build:9 lo pide como `dependency('dri', required: build_glx)` ⇒ sólo es OBLIGATORIO con glx encendido, y la receta va -Dglx=false porque ninguna cola publica gl.pc"
359perfiles = ["escritorio-kde"]
360piden = ["xwayland"]
361
362[candidato."duktape"]
363veredicto = "pendiente"
364sugerencia = "opcional?"
365porque = "lo pide una sola receta (polkit); mirá si es una feature opcional"
366perfiles = ["escritorio-gnome", "escritorio-kde"]
367piden = ["polkit"]
368
369[candidato."ebook-tools"]
370veredicto = "opcional"
371porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
372perfiles = ["escritorio-kde"]
373piden = ["kfilemetadata", "okular"]
374
375[candidato."ed"]
376veredicto = "opcional"
377sugerencia = "opcional?"
378porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
379perfiles = ["base", "cli", "escritorio-sway"]
380piden = ["lsof"]
381
382[candidato."editorconfig-core-c"]
383veredicto = "opcional"
384sugerencia = "opcional?"
385porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
386perfiles = ["escritorio-kde"]
387piden = ["ktexteditor"]
388
389[candidato."egl-wayland"]
390veredicto = "opcional"
391porque = "es la plataforma EGLStream de NVIDIA. mutter la pediría sólo con -Dwayland_eglstream, que su meson.options:84 define en false y la receta no pasa; y xwayland 24.1.13 YA NO LA SOPORTA: hw/xwayland/meson.build:171 escribe have_eglstream=false a pelo. Sin driver propietario de NVIDIA en la distro no hay a quién servir"
392perfiles = ["escritorio-gnome", "escritorio-kde"]
393piden = ["mutter", "xwayland"]
394
395[candidato."eigen"]
396veredicto = "opcional"
397sugerencia = "opcional?"
398porque = "la receta pasa -DWITH_EIGEN=OFF explícito"
399perfiles = ["escritorio-kde"]
400piden = ["opencv"]
401
402[candidato."fdk-aac"]
403veredicto = "opcional"
404porque = "lo piden 2 recetas"
405perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
406piden = ["obs-studio", "pipewire"]
407
408[candidato."ffado"]
409veredicto = "opcional"
410sugerencia = "opcional?"
411porque = "la receta pasa -Dlibffado=disabled (meson_options.txt:350). Es el soporte de interfaces de audio FireWire profesionales"
412perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
413piden = ["pipewire"]
414
415[candidato."ffmpeg-headless"]
416veredicto = "nix-ismo"
417porque = "lo piden 2 recetas"
418perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
419piden = ["opencv", "pipewire"]
420
421[candidato."fftw-single"]
422veredicto = "opcional"
423porque = "lo piden 3 recetas"
424perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
425piden = ["pipewire", "pulseaudio", "speexdsp"]
426
427[candidato."flac"]
428veredicto = "opcional"
429sugerencia = "opcional?"
430porque = "libsndfile va con --disable-external-libs, que es lo que hace que esta receta sea UNA y no CINCO (la receta lo explica): apaga FLAC, Ogg, Vorbis y Opus de una"
431perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
432piden = ["libsndfile"]
433
434[candidato."flatpak"]
435veredicto = "opcional"
436porque = "formatos/paquetería ajenos; hammer tiene los suyos (.swm, Etapa F)"
437perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde"]
438piden = ["cosmic-store", "plasma-workspace", "xdg-desktop-portal"]
439
440[candidato."flite"]
441veredicto = "opcional"
442sugerencia = "opcional?"
443porque = "stack de audio/multimedia: decisión de producto pendiente, no un hueco de build"
444perfiles = ["escritorio-kde"]
445piden = ["qtspeech"]
446
447[candidato."font-util"]
448veredicto = "opcional"
449sugerencia = "opcional?"
450porque = "en todo el árbol aparece UNA vez y es como valor por defecto de `fontrootdir` (meson_options.txt:12-13): la raíz de las fuentes de mapa de bits LEGACY de X11. Sin él meson cae a $datadir/fonts/X11 y la distro no publica esas fuentes"
451perfiles = ["escritorio-kde"]
452piden = ["xwayland"]
453
454[candidato."fuse"]
455veredicto = "opcional"
456porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
457perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-sway"]
458piden = ["e2fsprogs", "xdg-desktop-portal"]
459
460[candidato."gdbm"]
461veredicto = "opcional"
462sugerencia = "opcional?"
463porque = "conectores de base de datos: ninguna imagen los pide"
464perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
465piden = ["python3"]
466
467[candidato."gdm"]
468veredicto = "opcional"
469sugerencia = "opcional?"
470porque = "APARCADO POR DISEÑO y ya documentado en docs/state/targets.toml:263 («SIN gnome-session / gnome-settings-daemon / gdm»): la sesión la lanza arje, no un display manager. Mismo criterio con el que ya se cerró gnome-settings-daemon"
471perfiles = ["escritorio-gnome"]
472piden = ["gnome-shell"]
473
474[candidato."getopt"]
475veredicto = "pendiente"
476sugerencia = "opcional?"
477porque = "lo pide una sola receta (libseccomp); mirá si es una feature opcional"
478perfiles = ["escritorio-gnome"]
479piden = ["libseccomp"]
480
481[candidato."gflags"]
482veredicto = "opcional"
483sugerencia = "opcional?"
484porque = "-DBUILD_LIST=core,imgproc: de todo OpenCV se construyen DOS módulos. gflags/glog son deps del módulo dnn, que no está en la lista"
485perfiles = ["escritorio-kde"]
486piden = ["opencv"]
487
488[candidato."gi-docgen"]
489veredicto = "opcional"
490sugerencia = "hueco?"
491porque = "lo piden 9 recetas de la imagen — difícil que sea accesorio"
492perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
493piden = ["gdk-pixbuf", "glib", "gnome-shell", "gtk4", "json-glib", "libadwaita", "libsecret", "mutter", "pango"]
494
495[candidato."git-minimal"]
496veredicto = "nix-ismo"
497sugerencia = "nix-ismo?"
498porque = "variante de empaquetado de nix; hammer ya tiene la receta `git`"
499perfiles = ["cli"]
500piden = ["starship"]
501ausente = true # ya no aparece en el último barrido de la frontera
502
503[candidato."glad2"]
504veredicto = "provisto"
505sugerencia = "opcional?"
506provee = "glad"
507porque = "no falta: recipes/glad.toml pinea la 2.0.8, que ES glad2 — nixpkgs parte glad (v1) y glad2 (v2) en dos paquetes y acá hay uno solo. Ya figura en el [deps].build de libplacebo. Cuarta forma de alias: la VERSIÓN metida en el nombre"
508perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
509piden = ["libplacebo"]
510
511[candidato."glib-networking"]
512veredicto = "pendiente"
513sugerencia = "opcional?"
514porque = "lo pide una sola receta (evolution-data-server); mirá si es una feature opcional"
515perfiles = ["escritorio-gnome"]
516piden = ["evolution-data-server"]
517
518[candidato."glibc"]
519veredicto = "nix-ismo"
520sugerencia = "nix-ismo?"
521porque = "la libc de nixpkgs asomando por su stdenv; hammer es musl"
522perfiles = ["cli"]
523piden = ["go"]
524ausente = true # ya no aparece en el último barrido de la frontera
525
526[candidato."glog"]
527veredicto = "opcional"
528sugerencia = "opcional?"
529porque = "-DBUILD_LIST=core,imgproc: gflags/glog son deps del módulo dnn, que no se construye"
530perfiles = ["escritorio-kde"]
531piden = ["opencv"]
532
533[candidato."glslang"]
534veredicto = "opcional"
535porque = "Vulkan / compilación de shaders / dispatch GL: no habilitado (mesa se construye sin ellos)"
536perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
537piden = ["mesa", "wlroots"]
538
539[candidato."glu"]
540veredicto = "opcional"
541porque = "CERO referencias a GLU en los dos fuentes (phonon 4.12.0 y xwayland 24.1.13, grep sobre el árbol entero): la arrastran las expresiones de nixpkgs, no el código. Y la distro no publica GL de escritorio, que es de lo único que GLU cuelga"
542perfiles = ["escritorio-kde"]
543piden = ["phonon", "xwayland"]
544
545[candidato."gmp-with-cxx"]
546veredicto = "provisto"
547sugerencia = "opcional?"
548provee = "gmp"
549porque = "nixpkgs lo separa en un paquete propio; acá lo da la receta `gmp` (verificado en el store)"
550perfiles = ["escritorio-kde"]
551piden = ["mpfr"]
552ausente = true # ya no aparece en el último barrido de la frontera
553
554[candidato."gnome-autoar"]
555veredicto = "opcional"
556sugerencia = "opcional?"
557porque = "sólo la pide subprojects/extensions-tool (extensions-tool/meson.build:32, `dependency('gnome-autoar-0')`), que meson.build:279 construye `if get_option('extensions_tool')` — y la receta pasa -Dextensions_tool=false. Sirve para desempaquetar el .zip de una extensión, no para pintar el escritorio"
558perfiles = ["escritorio-gnome"]
559piden = ["gnome-shell"]
560
561[candidato."gnome-bluetooth"]
562veredicto = "opcional"
563sugerencia = "opcional?"
564porque = "cero referencias en los meson de gnome-shell 48.8. Y el hueco de fondo es el mismo que el de los codecs de pipewire: NO HAY receta de bluez en el catálogo ⇒ la distro no tiene Bluetooth. Un indicador para un stack que no existe no compra nada"
565perfiles = ["escritorio-gnome"]
566piden = ["gnome-shell"]
567
568[candidato."gnome-clocks"]
569veredicto = "opcional"
570sugerencia = "opcional?"
571porque = "cero referencias en los meson de gnome-shell 48.8: es una APP que el reloj del panel consulta en runtime para la sección de husos horarios. Sin ella el calendario funciona, sin relojes del mundo"
572perfiles = ["escritorio-gnome"]
573piden = ["gnome-shell"]
574
575[candidato."gnome-keyring"]
576veredicto = "pendiente"
577sugerencia = "opcional?"
578porque = "SIGUE PENDIENTE A PROPÓSITO: es el primer candidato del barrido que parece falta de verdad, y un 'hueco' nace como raíz en targets.toml y entra al drenaje ⇒ lo decide un humano. MEDIDO: (1) gnome-shell js/ui/components/keyring.js:221 hace own_name('org.gnome.keyring.SystemPrompter') ⇒ el shell PREGUNTA la contraseña, no guarda el secreto; (2) grep sobre el STORE ENTERO: NINGÚN artefacto declara org.freedesktop.secrets; (3) del lado KDE tampoco hay demonio — el artefacto de kwallet instala sólo libKF6Wallet.so y sus cabeceras, sin kwalletd6. O sea: los dos escritorios tienen el PROMPTER sellado (gnome-shell, y plasma-workspace publica org.kde.secretprompter.service) y NINGUNO tiene el almacén. Elegir gnome-keyring, kwalletd o los dos es decisión de diseño, no de triaje"
579perfiles = ["escritorio-gnome"]
580piden = ["gnome-shell"]
581
582[candidato."gnome-online-accounts"]
583veredicto = "opcional"
584sugerencia = "opcional?"
585porque = "evolution-data-server va con -DENABLE_GOA=OFF y la receta lo documenta. Sin cuentas en línea no hay qué sincronizar"
586perfiles = ["escritorio-gnome"]
587piden = ["evolution-data-server"]
588
589[candidato."gnome-settings-daemon"]
590veredicto = "opcional"
591porque = "lo piden 2 recetas"
592perfiles = ["escritorio-gnome"]
593piden = ["gnome-shell", "mutter"]
594
595[candidato."gnutls"]
596veredicto = "opcional"
597porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
598perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
599piden = ["ffmpeg", "gnupg", "networkmanager"]
600
601[candidato."gpgmepp"]
602veredicto = "opcional"
603sugerencia = "opcional?"
604porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
605perfiles = ["escritorio-kde"]
606piden = ["kwallet"]
607
608[candidato."gpsd"]
609veredicto = "opcional"
610porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
611perfiles = ["escritorio-kde"]
612piden = ["plasma-workspace", "plasma5support"]
613
614[candidato."graphite2"]
615veredicto = "pendiente"
616sugerencia = "opcional?"
617porque = "lo pide una sola receta (harfbuzz); mirá si es una feature opcional"
618perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
619piden = ["harfbuzz"]
620
621[candidato."graphviz"]
622veredicto = "opcional"
623sugerencia = "hueco?"
624porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
625perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
626piden = ["exiv2", "pipewire", "wayland", "wireplumber"]
627
628[candidato."groff"]
629veredicto = "opcional"
630porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
631perfiles = ["base", "cli", "escritorio-kde", "escritorio-sway"]
632piden = ["libzip", "sudo"]
633
634[candidato."gst-libav"]
635veredicto = "opcional"
636sugerencia = "opcional?"
637porque = "stack de audio/multimedia: decisión de producto pendiente, no un hueco de build"
638perfiles = ["escritorio-kde"]
639piden = ["qtmultimedia"]
640
641[candidato."gst-plugins-bad"]
642veredicto = "opcional"
643porque = "stack de audio/multimedia: decisión de producto pendiente, no un hueco de build"
644perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
645piden = ["gtk4", "qtmultimedia"]
646
647[candidato."gst-plugins-base"]
648veredicto = "opcional"
649sugerencia = "hueco?"
650porque = "stack de audio/multimedia: decisión de producto pendiente, no un hueco de build"
651perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
652piden = ["gnome-shell", "gtk4", "libcanberra", "opencv", "pipewire", "qtmultimedia", "xdg-desktop-portal"]
653
654[candidato."gst-plugins-good"]
655veredicto = "opcional"
656sugerencia = "hueco?"
657porque = "stack de audio/multimedia: decisión de producto pendiente, no un hueco de build"
658perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde"]
659piden = ["gnome-shell", "opencv", "qtmultimedia", "xdg-desktop-portal"]
660
661[candidato."gstreamer"]
662veredicto = "opcional"
663sugerencia = "hueco?"
664porque = "stack de audio/multimedia: decisión de producto pendiente, no un hueco de build"
665perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
666piden = ["gnome-shell", "libcanberra", "opencv", "pipewire", "qtmultimedia", "xdg-desktop-portal", "xdg-desktop-portal-cosmic"]
667
668[candidato."gtest"]
669veredicto = "opcional"
670sugerencia = "opcional?"
671porque = "nodejs la BUNDLEA: está en deps/ del tarball pineado (verificado listando el propio node-v24.18.1.tar.gz, no de memoria). La receta ya declara la decisión de fondo: acá Node es una herramienta de build del sandbox de Gecko, no software que la distro publique, así que gana el cierre chico. Está como deps/googletest"
672perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
673piden = ["nodejs"]
674
675[candidato."gtk+3"]
676veredicto = "opcional"
677sugerencia = "hueco?"
678porque = "X11 heredado: el escritorio es Wayland"
679perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
680piden = ["adwaita-icon-theme", "evolution-data-server", "firefox", "girara", "gjs", "gnome-desktop", "qtbase"]
681
682[candidato."gusb"]
683veredicto = "provisto"
684sugerencia = "opcional?"
685provee = "libgusb"
686porque = "no falta: es el mismo paquete con el prefijo `lib`. recipes/incoming-gnome/libgusb.toml (0.4.9) está sellada y ya figura en el [deps].build de colord. Tercera FORMA de alias del barrido: prefijo, después de puntuación y mayúsculas"
687perfiles = ["escritorio-gnome"]
688piden = ["colord"]
689
690[candidato."hdf5-cpp"]
691veredicto = "opcional"
692sugerencia = "opcional?"
693porque = "-DBUILD_LIST=core,imgproc: es la dep del módulo hdf, que no se construye. Y la receta ya recorta la E/S de imágenes entera (-DWITH_JPEG/PNG/TIFF/WEBP=OFF)"
694perfiles = ["escritorio-kde"]
695piden = ["opencv"]
696
697[candidato."hdrhistogram_c"]
698veredicto = "opcional"
699sugerencia = "opcional?"
700porque = "nodejs la BUNDLEA: está en deps/ del tarball pineado (verificado listando el propio node-v24.18.1.tar.gz, no de memoria). La receta ya declara la decisión de fondo: acá Node es una herramienta de build del sandbox de Gecko, no software que la distro publique, así que gana el cierre chico. Está como deps/histogram"
701perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
702piden = ["nodejs"]
703
704[candidato."help2man"]
705veredicto = "opcional"
706sugerencia = "opcional?"
707porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
708perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
709piden = ["flex"]
710
711[candidato."hunspell"]
712veredicto = "opcional"
713sugerencia = "opcional?"
714porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
715perfiles = ["escritorio-kde"]
716piden = ["sonnet"]
717
718[candidato."inih"]
719veredicto = "pendiente"
720sugerencia = "opcional?"
721porque = "lo pide una sola receta (exiv2); mirá si es una feature opcional"
722perfiles = ["escritorio-kde"]
723piden = ["exiv2"]
724
725[candidato."iptables"]
726veredicto = "opcional"
727sugerencia = "opcional?"
728porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
729perfiles = ["base", "cli", "escritorio-sway"]
730piden = ["iproute2"]
731
732[candidato."jasper"]
733veredicto = "opcional"
734sugerencia = "opcional?"
735porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
736perfiles = ["escritorio-kde"]
737piden = ["qtsvg"]
738
739[candidato."jemalloc"]
740veredicto = "opcional"
741sugerencia = "opcional?"
742porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
743perfiles = ["cli", "escritorio-sway"]
744piden = ["fd"]
745
746[candidato."kaccounts-integration"]
747veredicto = "opcional"
748sugerencia = "opcional?"
749porque = "CMakeLists.txt:119-123 la declara TYPE OPTIONAL y su PURPOSE lo dice: «Required for building the OpenDesktop integration plugin». Sin cuentas en línea en la distro no hay qué integrar"
750perfiles = ["escritorio-kde"]
751piden = ["plasma-desktop"]
752
753[candidato."kdegraphics-mobipocket"]
754veredicto = "opcional"
755porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
756perfiles = ["escritorio-kde"]
757piden = ["kfilemetadata", "okular"]
758
759[candidato."kdoctools"]
760veredicto = "opcional"
761sugerencia = "hueco?"
762porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
763perfiles = ["escritorio-kde"]
764piden = ["dolphin", "filelight", "gwenview", "kate", "kcalc", "kcharselect", "kded", "kdf", "kfind", "kio", "kmenuedit", "konsole"] # …y 7 más
765
766[candidato."kimageannotator"]
767veredicto = "opcional"
768sugerencia = "opcional?"
769porque = "CMakeLists.txt:169 la declara TYPE OPTIONAL —anotar capturas— y arrastraría además kColorPicker-Qt6, que su rama pide REQUIRED. ⚠ Es un `find` AUTOMÁTICO sin apagar, pero eso NO es una escotilla del catálogo: el sandbox de hammer monta SÓLO las deps declaradas (docs/02-build-lab.md §3.4, raíz tmpfs + bind read-only de las deps) y agregarla a [deps] movería el ArtifactHash, o sea que se vería. La vía silenciosa es otra: que aparezca en el LAB, que no entra en hash_inputs. "
770perfiles = ["escritorio-kde"]
771piden = ["gwenview"]
772
773[candidato."kimageformats"]
774veredicto = "pendiente"
775sugerencia = "opcional?"
776porque = "lo pide una sola receta (kscreen); mirá si es una feature opcional"
777perfiles = ["escritorio-kde"]
778piden = ["kscreen"]
779
780[candidato."kio-extras"]
781veredicto = "opcional"
782porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
783perfiles = ["escritorio-kde"]
784piden = ["dolphin", "plasma-desktop", "plasma-workspace"]
785
786[candidato."kmod"]
787veredicto = "opcional"
788sugerencia = "opcional?"
789porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
790perfiles = ["base", "cli", "escritorio-sway"]
791piden = ["pciutils"]
792
793[candidato."krb5"]
794veredicto = "opcional"
795porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
796perfiles = ["base", "cli", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
797piden = ["curl", "evolution-data-server"]
798
799[candidato."kuserfeedback"]
800veredicto = "opcional"
801porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
802perfiles = ["escritorio-kde"]
803piden = ["dolphin", "kate", "plasma-workspace"]
804
805[candidato."lame"]
806veredicto = "opcional"
807porque = "lo piden 2 recetas"
808perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
809piden = ["ffmpeg", "libsndfile"]
810
811[candidato."ldacbt"]
812veredicto = "opcional"
813sugerencia = "opcional?"
814porque = "codec de audio Bluetooth: vive en spa/plugins/bluez5, que spa/plugins/meson.build:19 sólo compila `if bluez_deps_found`, y la receta pasa -Dbluez5=disabled. ⚠ Y el hueco es más hondo que la perilla: NO HAY receta de bluez en todo el catálogo ⇒ la distro no tiene Bluetooth, ni de audio ni de nada. LDAC es el codec de Sony"
815perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
816piden = ["pipewire"]
817
818[candidato."lerc"]
819veredicto = "opcional"
820sugerencia = "opcional?"
821porque = "libtiff va con -Dlerc=OFF explícito"
822perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
823piden = ["libtiff"]
824
825[candidato."libaom"]
826veredicto = "opcional"
827sugerencia = "opcional?"
828porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libaom. ⚠ Lo que se pierde es CODIFICAR AV1, no reproducirlo: el decoder nativo está en el artefacto sellado («AV1 decoder», medido con strings sobre libavcodec.so.61.19.100)"
829perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
830piden = ["ffmpeg"]
831
832[candidato."libapparmor"]
833veredicto = "opcional"
834sugerencia = "opcional?"
835porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
836perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
837piden = ["dbus"]
838
839[candidato."libappimage"]
840veredicto = "opcional"
841sugerencia = "opcional?"
842porque = "formatos/paquetería ajenos; hammer tiene los suyos (.swm, Etapa F)"
843perfiles = ["escritorio-kde"]
844piden = ["kfilemetadata"]
845
846[candidato."libasyncns"]
847veredicto = "pendiente"
848sugerencia = "opcional?"
849porque = "lo pide una sola receta (pulseaudio); mirá si es una feature opcional"
850perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
851piden = ["pulseaudio"]
852
853[candidato."libavif"]
854veredicto = "opcional"
855sugerencia = "opcional?"
856porque = "la receta pasa -Davif=disabled explícito"
857perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
858piden = ["swayimg"]
859
860[candidato."libb2"]
861veredicto = "opcional"
862sugerencia = "opcional?"
863porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
864perfiles = ["escritorio-kde"]
865piden = ["qtbase"]
866
867[candidato."libblake3"]
868veredicto = "opcional"
869sugerencia = "opcional?"
870porque = "⚠ DESFASE DE VERSIÓN: AppStream 1.0.5 no la nombra en ningún meson. Sale de una expresión de nixpkgs para una versión más nueva"
871perfiles = ["escritorio-gnome"]
872piden = ["appstream"]
873
874[candidato."libbluray"]
875veredicto = "opcional"
876sugerencia = "opcional?"
877porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libbluray. ⚠ CAPACIDAD AUSENTE dicha en voz alta: la distro no navega discos Blu-ray (menús, títulos, BD-J). Los ficheros sueltos se leen igual"
878perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
879piden = ["ffmpeg"]
880
881[candidato."libbpf"]
882veredicto = "opcional"
883porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
884perfiles = ["base", "cli", "escritorio-kde", "escritorio-sway"]
885piden = ["iproute2", "networkmanager"]
886
887[candidato."libbsd"]
888veredicto = "opcional"
889sugerencia = "opcional?"
890porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
891perfiles = ["base", "cli", "escritorio-sway"]
892piden = ["shadow"]
893
894[candidato."libcamera"]
895veredicto = "opcional"
896sugerencia = "opcional?"
897porque = "la receta pasa -Dlibcamera=disabled (meson_options.txt:180). La captura de cámara de la distro es un hueco YA CONOCIDO y declarado en obs-studio (-DENABLE_V4L2=OFF), no uno nuevo que destape este candidato"
898perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
899piden = ["pipewire"]
900
901[candidato."libcap-ng"]
902veredicto = "opcional"
903porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
904perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
905piden = ["dbus", "util-linux"]
906
907[candidato."libclc"]
908veredicto = "opcional"
909sugerencia = "opcional?"
910porque = "Vulkan / compilación de shaders / dispatch GL: no habilitado (mesa se construye sin ellos)"
911perfiles = ["escritorio-kde"]
912piden = ["mesa"]
913ausente = true # ya no aparece en el último barrido de la frontera
914
915[candidato."libdatachannel"]
916veredicto = "opcional"
917sugerencia = "opcional?"
918porque = "-DENABLE_WEBRTC=OFF; la receta lo dice: pide libdatachannel, que no está en ninguna cola"
919perfiles = ["escritorio-kde"]
920piden = ["obs-studio"]
921
922[candidato."libdatrie"]
923veredicto = "opcional"
924sugerencia = "opcional?"
925porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
926perfiles = ["escritorio-kde"]
927piden = ["qtbase"]
928
929[candidato."libdecor"]
930veredicto = "opcional"
931sugerencia = "opcional?"
932porque = "sólo decora la ventana cuando Xwayland corre ROOTFUL (meson_options.txt:81); acá lo lanza el compositor en rootless. meson.build:210 la pide `required: false` con la opción en 'auto'. ⚠ CORRECCIÓN de cómo lo dije al principio: no es una escotilla del catálogo — el sandbox monta sólo las deps declaradas y agregarla movería el ArtifactHash. La vía silenciosa sería el LAB, que no entra en hash_inputs"
933perfiles = ["escritorio-kde"]
934piden = ["xwayland"]
935
936[candidato."libdeflate"]
937veredicto = "opcional"
938sugerencia = "opcional?"
939porque = "libtiff va con -Dlibdeflate=OFF explícito"
940perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
941piden = ["libtiff"]
942
943[candidato."libdmtx"]
944veredicto = "opcional"
945sugerencia = "opcional?"
946porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
947perfiles = ["escritorio-kde"]
948piden = ["prison"]
949
950[candidato."libdovi"]
951veredicto = "opcional"
952sugerencia = "opcional?"
953porque = "libplacebo va con -Dlibdovi=disabled explícito (mantiene -Ddovi=enabled, que es el soporte propio de Dolby Vision sin la librería externa)"
954perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
955piden = ["libplacebo"]
956
957[candidato."libebur128"]
958veredicto = "opcional"
959sugerencia = "opcional?"
960porque = "⚠ DESFASE DE VERSIÓN, no una perilla apagada: pipewire 1.2.7 —la que pinea la receta— no nombra ebur128 en NINGÚN fichero (grep sobre el árbol entero). El candidato sale de una expresión de nixpkgs para una pipewire más nueva. Vuelve a ser pregunta legítima el día que subamos de versión"
961perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
962piden = ["pipewire"]
963
964[candidato."libei"]
965veredicto = "opcional"
966sugerencia = "opcional?"
967porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
968perfiles = ["escritorio-kde"]
969piden = ["kwin"]
970ausente = true # ya no aparece en el último barrido de la frontera
971
972[candidato."libev"]
973veredicto = "pendiente"
974sugerencia = "opcional?"
975porque = "lo pide una sola receta (nghttp2); mirá si es una feature opcional"
976perfiles = ["escritorio-gnome"]
977piden = ["nghttp2"]
978
979[candidato."libfreeaptx"]
980veredicto = "opcional"
981sugerencia = "opcional?"
982porque = "codec de audio Bluetooth: vive en spa/plugins/bluez5, que spa/plugins/meson.build:19 sólo compila `if bluez_deps_found`, y la receta pasa -Dbluez5=disabled. ⚠ Y el hueco es más hondo que la perilla: NO HAY receta de bluez en todo el catálogo ⇒ la distro no tiene Bluetooth, ni de audio ni de nada. aptX es el codec de Qualcomm (meson_options.txt:120)"
983perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
984piden = ["pipewire"]
985
986[candidato."libfyaml"]
987veredicto = "opcional"
988sugerencia = "opcional?"
989porque = "⚠ DESFASE DE VERSIÓN: AppStream 1.0.5 no la nombra en ningún meson. El YAML de esta versión lo hace libyaml, que ya está en [deps]"
990perfiles = ["escritorio-gnome"]
991piden = ["appstream"]
992
993[candidato."libglvnd"]
994veredicto = "opcional"
995porque = "Vulkan / compilación de shaders / dispatch GL: no habilitado (mesa se construye sin ellos)"
996perfiles = ["escritorio-kde"]
997piden = ["libepoxy", "mesa", "qtbase"]
998ausente = true # ya no aparece en el último barrido de la frontera
999
1000[candidato."libglycin"]
1001veredicto = "opcional"
1002sugerencia = "opcional?"
1003porque = "⚠ DESFASE DE VERSIÓN: mutter 48.8 —la que pinea la receta— no nombra glycin en NINGÚN fichero. El cargador de imágenes enjaulado entra en la serie 49 de GNOME; el candidato sale de una expresión de nixpkgs más nueva que nuestro pin"
1004perfiles = ["escritorio-gnome"]
1005piden = ["mutter"]
1006
1007[candidato."libheif"]
1008veredicto = "opcional"
1009sugerencia = "opcional?"
1010porque = "la receta pasa -Dheif=disabled explícito"
1011perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1012piden = ["swayimg"]
1013
1014[candidato."libidn2"]
1015veredicto = "opcional"
1016porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
1017perfiles = ["base", "cli", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1018piden = ["curl", "iputils", "libpsl"]
1019
1020[candidato."libimobiledevice"]
1021veredicto = "opcional"
1022sugerencia = "opcional?"
1023porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
1024perfiles = ["escritorio-kde"]
1025piden = ["solid"]
1026
1027[candidato."libjack2"]
1028veredicto = "opcional"
1029porque = "lo piden 2 recetas"
1030perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1031piden = ["obs-studio", "pipewire"]
1032
1033[candidato."libjxl"]
1034veredicto = "opcional"
1035porque = "lo piden 2 recetas"
1036perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1037piden = ["opencv", "swayimg"]
1038
1039[candidato."libkdcraw"]
1040veredicto = "opcional"
1041sugerencia = "opcional?"
1042porque = "CMakeLists.txt:148-156 la declara TYPE OPTIONAL: es el decodificador de fotos RAW. Mismo criterio que -Draw=disabled en swayimg. ⚠ Es un `find` AUTOMÁTICO sin apagar, pero eso NO es una escotilla del catálogo: el sandbox de hammer monta SÓLO las deps declaradas (docs/02-build-lab.md §3.4, raíz tmpfs + bind read-only de las deps) y agregarla a [deps] movería el ArtifactHash, o sea que se vería. La vía silenciosa es otra: que aparezca en el LAB, que no entra en hash_inputs. "
1043perfiles = ["escritorio-kde"]
1044piden = ["gwenview"]
1045
1046[candidato."libkexiv2"]
1047veredicto = "opcional"
1048porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
1049perfiles = ["escritorio-kde"]
1050piden = ["okular", "plasma-workspace"]
1051
1052[candidato."liblc3"]
1053veredicto = "opcional"
1054sugerencia = "opcional?"
1055porque = "codec de audio Bluetooth: vive en spa/plugins/bluez5, que spa/plugins/meson.build:19 sólo compila `if bluez_deps_found`, y la receta pasa -Dbluez5=disabled. ⚠ Y el hueco es más hondo que la perilla: NO HAY receta de bluez en todo el catálogo ⇒ la distro no tiene Bluetooth, ni de audio ni de nada. LC3 es el codec de Bluetooth LE Audio (meson_options.txt:140)"
1056perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1057piden = ["pipewire"]
1058
1059[candidato."libliftoff"]
1060veredicto = "pendiente"
1061sugerencia = "opcional?"
1062porque = "lo pide una sola receta (wlroots); mirá si es una feature opcional"
1063perfiles = ["escritorio-sway"]
1064piden = ["wlroots"]
1065
1066[candidato."libmbim"]
1067veredicto = "opcional"
1068sugerencia = "opcional?"
1069porque = "modemmanager va con -Dmbim=false explícito"
1070perfiles = ["escritorio-kde"]
1071piden = ["modemmanager"]
1072
1073[candidato."libmng"]
1074veredicto = "opcional"
1075sugerencia = "opcional?"
1076porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
1077perfiles = ["escritorio-kde"]
1078piden = ["qtsvg"]
1079
1080[candidato."libmnl"]
1081veredicto = "opcional"
1082sugerencia = "opcional?"
1083porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
1084perfiles = ["base", "cli", "escritorio-sway"]
1085piden = ["iproute2"]
1086
1087[candidato."libmpc"]
1088veredicto = "pendiente"
1089sugerencia = "opcional?"
1090porque = "lo pide una sola receta (kcalc); mirá si es una feature opcional"
1091perfiles = ["escritorio-kde"]
1092piden = ["kcalc"]
1093
1094[candidato."libmpdclient"]
1095veredicto = "opcional"
1096porque = "yambar va con -Dplugin-mpd=disabled. ⚠ Y el otro que «la pide» NO es el cliente de MPD: recipes/mpc.toml es GNU MPC (aritmética compleja, --with-gmp --with-mpfr) — HOMÓNIMO, no el mismo paquete. Sin cliente de MPD en el catálogo no hay quién la enlace"
1097perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1098piden = ["mpc", "yambar"]
1099
1100[candidato."libmpg123"]
1101veredicto = "opcional"
1102sugerencia = "opcional?"
1103porque = "libsndfile va con --disable-mpeg, que apaga LAME y mpg123 juntos"
1104perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1105piden = ["libsndfile"]
1106
1107[candidato."libmysofa"]
1108veredicto = "opcional"
1109sugerencia = "opcional?"
1110porque = "la receta pasa -Dlibmysofa=disabled (meson_options.txt:229): son las funciones de transferencia HRTF para audio espacial en auriculares"
1111perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1112piden = ["pipewire"]
1113
1114[candidato."libnma"]
1115veredicto = "opcional"
1116sugerencia = "opcional?"
1117porque = "⚠ la etiqueta no es el hecho: gnome-shell 48.8 no nombra libnma en ningún sitio. Su camino de red es libnm + libsecret-1 (meson.build:106-108) y va apagado con -Dnetworkmanager=false. El candidato lo hereda el sembrador de la expresión de nixpkgs"
1118perfiles = ["escritorio-gnome"]
1119piden = ["gnome-shell"]
1120
1121[candidato."libopenmpt"]
1122veredicto = "opcional"
1123sugerencia = "opcional?"
1124porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libopenmpt: música de módulos (MOD/XM/S3M/IT). Capacidad ausente sin consumidor en el catálogo"
1125perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1126piden = ["ffmpeg"]
1127
1128[candidato."libopus"]
1129veredicto = "opcional"
1130porque = "lo piden 3 recetas"
1131perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1132piden = ["ffmpeg", "libsndfile", "pipewire"]
1133
1134[candidato."libpciaccess"]
1135veredicto = "opcional"
1136sugerencia = "opcional?"
1137porque = "X11 heredado: el escritorio es Wayland"
1138perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
1139piden = ["libdrm"]
1140
1141[candidato."libphonenumber"]
1142veredicto = "opcional"
1143sugerencia = "opcional?"
1144porque = "evolution-data-server va con -DWITH_PHONENUMBER=OFF explícito (receta:121): es la normalización de números de teléfono de Google en la libreta"
1145perfiles = ["escritorio-gnome"]
1146piden = ["evolution-data-server"]
1147
1148[candidato."libpq"]
1149veredicto = "opcional"
1150sugerencia = "opcional?"
1151porque = "conectores de base de datos: ninguna imagen los pide"
1152perfiles = ["escritorio-kde"]
1153piden = ["qtbase"]
1154
1155[candidato."libproxy"]
1156veredicto = "opcional"
1157sugerencia = "opcional?"
1158porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
1159perfiles = ["escritorio-kde"]
1160piden = ["qtbase"]
1161
1162[candidato."libpsl"]
1163veredicto = "opcional"
1164sugerencia = "opcional?"
1165porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
1166perfiles = ["cli"]
1167piden = ["curl"]
1168ausente = true # ya no aparece en el último barrido de la frontera
1169
1170[candidato."libpulseaudio"]
1171veredicto = "opcional"
1172sugerencia = "hueco?"
1173porque = "stack de audio/multimedia: decisión de producto pendiente, no un hueco de build"
1174perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1175piden = ["cosmic-settings-daemon", "ffmpeg", "gnome-shell", "libcanberra", "obs-studio", "phonon", "pipewire", "qtmultimedia", "wf-recorder"]
1176
1177[candidato."libqaccessibilityclient"]
1178veredicto = "opcional"
1179sugerencia = "opcional?"
1180porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
1181perfiles = ["escritorio-kde"]
1182piden = ["kwin"]
1183
1184[candidato."libqmi"]
1185veredicto = "opcional"
1186sugerencia = "opcional?"
1187porque = "modemmanager va con -Dqmi=false explícito"
1188perfiles = ["escritorio-kde"]
1189piden = ["modemmanager"]
1190
1191[candidato."libraw"]
1192veredicto = "opcional"
1193sugerencia = "opcional?"
1194porque = "la receta pasa -Draw=disabled explícito (fotos RAW de cámara)"
1195perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1196piden = ["swayimg"]
1197
1198[candidato."librist"]
1199veredicto = "opcional"
1200porque = "lo piden 2 recetas"
1201perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1202piden = ["ffmpeg", "obs-studio"]
1203
1204[candidato."libsecret"]
1205veredicto = "opcional"
1206sugerencia = "opcional?"
1207porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
1208perfiles = ["escritorio-kde"]
1209piden = ["kwallet"]
1210ausente = true # ya no aparece en el último barrido de la frontera
1211
1212[candidato."libselinux"]
1213veredicto = "opcional"
1214sugerencia = "hueco?"
1215porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
1216perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1217piden = ["glib", "networkmanager", "pipewire", "qtbase"]
1218
1219[candidato."libsepol"]
1220veredicto = "opcional"
1221sugerencia = "opcional?"
1222porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
1223perfiles = ["escritorio-kde"]
1224piden = ["qtbase"]
1225
1226[candidato."libsixel"]
1227veredicto = "opcional"
1228sugerencia = "opcional?"
1229porque = "la receta pasa -Dsixel=disabled explícito: es el back-end que pinta imágenes DENTRO de un terminal, no en el compositor"
1230perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1231piden = ["swayimg"]
1232
1233[candidato."libspectre"]
1234veredicto = "opcional"
1235sugerencia = "opcional?"
1236porque = "okular la declara OPCIONAL dos veces: entra en la lista FORCE_NOT_REQUIRED_DEPENDENCIES (CMakeLists.txt:37) y su find_package va con set_okular_optional_package_properties. Es el back-end de PostScript (.ps/.eps) ⇒ capacidad ausente dicha en voz alta: okular abre PDF, no PostScript"
1237perfiles = ["escritorio-kde"]
1238piden = ["okular"]
1239
1240[candidato."libssh"]
1241veredicto = "opcional"
1242porque = "ffmpeg va con --disable-autodetect y sin --enable-libssh (mismo criterio ya aplicado a srt/speex/soxr). Y konsole 25.04.3 no la nombra en ningún fichero: su plugin SSHManager —ON por defecto, y lo construimos— no enlaza libssh, administra ~/.ssh y lanza el binario ssh, que el corpus SÍ tiene (recipes/openssh.toml)"
1243perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1244piden = ["ffmpeg", "konsole"]
1245
1246[candidato."libstartup-notification"]
1247veredicto = "opcional"
1248sugerencia = "opcional?"
1249porque = "la receta pasa -Dstartup_notification=false contra un default true (meson.options:114). Es el protocolo X11 del cursor «ocupado» al lanzar una app; en Wayland lo reemplaza xdg-activation, que mutter implementa nativamente"
1250perfiles = ["escritorio-gnome"]
1251piden = ["mutter"]
1252
1253[candidato."libstemmer"]
1254veredicto = "opcional"
1255sugerencia = "opcional?"
1256porque = "la receta pasa -Dstemming=false explícito: es la raíz léxica para buscar «editor» y que encuentre «editores»"
1257perfiles = ["escritorio-gnome"]
1258piden = ["appstream"]
1259
1260[candidato."libsysprof-capture"]
1261veredicto = "opcional"
1262porque = "lo piden 3 recetas"
1263perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1264piden = ["gjs", "glib", "mutter"]
1265
1266[candidato."libsystemtap"]
1267veredicto = "opcional"
1268sugerencia = "opcional?"
1269porque = "lo mismo que systemtap: glib declara dtrace/systemtap como features 'auto' (meson.options:52 y :58) y ninguna está en [deps]"
1270perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1271piden = ["glib"]
1272
1273[candidato."libtasn1"]
1274veredicto = "pendiente"
1275sugerencia = "opcional?"
1276porque = "lo pide una sola receta (p11-kit); mirá si es una feature opcional"
1277perfiles = ["escritorio-gnome"]
1278piden = ["p11-kit"]
1279
1280[candidato."libthai"]
1281veredicto = "opcional"
1282porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
1283perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1284piden = ["pango", "qtbase"]
1285
1286[candidato."libtheora"]
1287veredicto = "opcional"
1288sugerencia = "opcional?"
1289porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libtheora, o sea el ENCODER; el decoder de Theora es nativo y está en el artefacto sellado (medido). Formato de 2004 sin nadie que lo pida"
1290perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1291piden = ["ffmpeg"]
1292
1293[candidato."libtirpc"]
1294veredicto = "opcional"
1295sugerencia = "opcional?"
1296porque = "la receta pasa -Dsecure-rpc=false y lo documenta: es el único camino por el que os/meson.build pediría tirpc"
1297perfiles = ["escritorio-kde"]
1298piden = ["xwayland"]
1299
1300[candidato."libunistring"]
1301veredicto = "opcional"
1302sugerencia = "opcional?"
1303porque = "libpsl va con --enable-runtime=libicu: la IDNA la resuelve ICU —icu4c ya está en [deps]— y no libidn2, que es quien arrastraría libunistring"
1304perfiles = ["escritorio-gnome"]
1305piden = ["libpsl"]
1306
1307[candidato."libunwind"]
1308veredicto = "opcional"
1309sugerencia = "hueco?"
1310porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
1311perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
1312piden = ["libplacebo", "mesa", "opencv", "qtmultimedia", "strace", "xwayland"]
1313
1314[candidato."libva-minimal"]
1315veredicto = "opcional"
1316sugerencia = "nix-ismo?"
1317porque = "stack de audio/multimedia: decisión de producto pendiente, no un hueco de build"
1318perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
1319piden = ["mesa"]
1320
1321[candidato."libvdpau"]
1322veredicto = "opcional"
1323sugerencia = "opcional?"
1324porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-vdpau, la aceleración por hardware de NVIDIA. Sin driver propietario en la distro no hay a quién hablarle"
1325perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1326piden = ["ffmpeg"]
1327
1328[candidato."libvlc"]
1329veredicto = "opcional"
1330sugerencia = "opcional?"
1331porque = "-DENABLE_VLC=OFF; la fuente de vídeo por VLC pide vlc entero, que no está en el catálogo"
1332perfiles = ["escritorio-kde"]
1333piden = ["obs-studio"]
1334
1335[candidato."libvpl"]
1336veredicto = "opcional"
1337sugerencia = "opcional?"
1338porque = "-DENABLE_QSV11=OFF: es la codificación por hardware Quick Sync de Intel. La codificación H.264 de la distro va por obs-x264.so, que SÍ está en el artefacto sellado y enlaza libx264.so.165 (medido)"
1339perfiles = ["escritorio-kde"]
1340piden = ["obs-studio"]
1341
1342[candidato."libvpx"]
1343veredicto = "opcional"
1344sugerencia = "opcional?"
1345porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libvpx. Igual que libaom: se pierde CODIFICAR VP8/VP9, no reproducirlos — los decoders nativos están (los bsf vp9_* aparecen en el artefacto sellado)"
1346perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1347piden = ["ffmpeg"]
1348
1349[candidato."libwacom"]
1350veredicto = "opcional"
1351porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
1352perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
1353piden = ["libinput", "mutter", "plasma-desktop"]
1354
1355[candidato."libxaw"]
1356veredicto = "opcional"
1357sugerencia = "opcional?"
1358porque = "no aparece en ningún meson del árbol: sólo en .appveyor.yml y en .gitlab-ci/debian-install.sh, que instalan las deps de TODOS los servidores del repo xserver (Xorg, Xnest, Xvfb). Xwayland no la enlaza"
1359perfiles = ["escritorio-kde"]
1360piden = ["xwayland"]
1361
1362[candidato."libxcb-cursor"]
1363veredicto = "provisto"
1364sugerencia = "opcional?"
1365provee = "xcb-util-cursor"
1366porque = "nixpkgs lo separa en un paquete propio; acá lo da la receta `xcb-util-cursor` (verificado en el store)"
1367perfiles = ["escritorio-kde"]
1368piden = ["qtbase"]
1369ausente = true # ya no aparece en el último barrido de la frontera
1370
1371[candidato."libxcb-errors"]
1372veredicto = "opcional"
1373porque = "las dos la apagan a mano y las dos recetas lo dejan escrito: wlroots -Dxcb-errors=disabled, yambar -Dbackend-x11=disabled (su comentario la nombra entre las xcb-* que evita). Es una librería de diagnóstico de XCB, no de dibujo"
1374perfiles = ["escritorio-sway"]
1375piden = ["wlroots", "yambar"]
1376
1377[candidato."libxcb-image"]
1378veredicto = "provisto"
1379provee = "xcb-util-image"
1380porque = "nixpkgs lo separa en un paquete propio; acá lo da la receta `xcb-util-image` (verificado en el store)"
1381perfiles = ["escritorio-kde"]
1382piden = ["qtbase", "xcb-util-cursor"]
1383ausente = true # ya no aparece en el último barrido de la frontera
1384
1385[candidato."libxcb-keysyms"]
1386veredicto = "provisto"
1387provee = "xcb-util-keysyms"
1388porque = "nixpkgs lo separa en un paquete propio; acá lo da la receta `xcb-util-keysyms` (verificado en el store)"
1389perfiles = ["escritorio-kde"]
1390piden = ["mesa", "qtbase"]
1391ausente = true # ya no aparece en el último barrido de la frontera
1392
1393[candidato."libxcb-render-util"]
1394veredicto = "provisto"
1395provee = "xcb-util-renderutil"
1396porque = "nixpkgs lo separa en un paquete propio; acá lo da la receta `xcb-util-renderutil` (verificado en el store)"
1397perfiles = ["escritorio-kde"]
1398piden = ["qtbase", "xcb-util-cursor"]
1399ausente = true # ya no aparece en el último barrido de la frontera
1400
1401[candidato."libxcb-util"]
1402veredicto = "provisto"
1403sugerencia = "opcional?"
1404provee = "xcb-util"
1405porque = "nixpkgs lo separa en un paquete propio; acá lo da la receta `xcb-util` (verificado en el store)"
1406perfiles = ["escritorio-kde"]
1407piden = ["qtbase"]
1408ausente = true # ya no aparece en el último barrido de la frontera
1409
1410[candidato."libxcb-wm"]
1411veredicto = "provisto"
1412sugerencia = "opcional?"
1413provee = "xcb-util-wm"
1414porque = "nixpkgs lo separa en un paquete propio; acá lo da la receta `xcb-util-wm` (verificado en el store)"
1415perfiles = ["escritorio-kde"]
1416piden = ["qtbase"]
1417ausente = true # ya no aparece en el último barrido de la frontera
1418
1419[candidato."libxcomposite"]
1420veredicto = "opcional"
1421porque = "X11 heredado: el escritorio es Wayland"
1422perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1423piden = ["gtk3", "mutter", "qtbase"]
1424
1425[candidato."libxcrypt"]
1426veredicto = "opcional"
1427sugerencia = "hueco?"
1428porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
1429perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
1430piden = ["linux-pam", "perl", "shadow", "util-linux"]
1431
1432[candidato."libxdamage"]
1433veredicto = "opcional"
1434porque = "lo piden 3 recetas"
1435perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1436piden = ["gtk3", "gtk4", "mutter"]
1437
1438[candidato."libxfont_2"]
1439veredicto = "provisto"
1440sugerencia = "opcional?"
1441provee = "libXfont2"
1442porque = "no falta: es el MISMO paquete con el nombre normalizado por el sembrador. recipes/incoming-kde/libXfont2.toml existe, se autoró en la misma tanda que xwayland y ya figura en su [deps].build. Alias de MAYÚSCULAS, primero de esa forma"
1443perfiles = ["escritorio-kde"]
1444piden = ["xwayland"]
1445
1446[candidato."libxft"]
1447veredicto = "opcional"
1448porque = "X11 heredado: el escritorio es Wayland"
1449perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1450piden = ["pango", "plasma-desktop", "plasma-workspace"]
1451
1452[candidato."libxinerama"]
1453veredicto = "opcional"
1454sugerencia = "hueco?"
1455porque = "lo piden 4 recetas de la imagen — difícil que sea accesorio"
1456perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1457piden = ["dunst", "gtk3", "gtk4", "mutter"]
1458
1459[candidato."libxmu"]
1460veredicto = "opcional"
1461sugerencia = "opcional?"
1462porque = "mismo caso que libxaw: sólo en los ficheros de CI del repo xserver, cero referencias en los meson que construyen Xwayland"
1463perfiles = ["escritorio-kde"]
1464piden = ["xwayland"]
1465
1466[candidato."libxpm"]
1467veredicto = "opcional"
1468sugerencia = "opcional?"
1469porque = "mismo caso que libxaw: sólo en los ficheros de CI del repo xserver, cero referencias en los meson que construyen Xwayland"
1470perfiles = ["escritorio-kde"]
1471piden = ["xwayland"]
1472
1473[candidato."libxrandr"]
1474veredicto = "opcional"
1475sugerencia = "hueco?"
1476porque = "X11 heredado: el escritorio es Wayland"
1477perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
1478piden = ["dunst", "gtk3", "gtk4", "mesa", "mutter", "qtmultimedia", "vulkan-loader"]
1479
1480[candidato."libxres"]
1481veredicto = "opcional"
1482sugerencia = "opcional?"
1483porque = "⚠ la etiqueta no es el hecho: lo que xwayland usa es `resourceproto` (meson.build:90), las CABECERAS del protocolo XRes, y vienen en xorgproto, que ya está en [deps]. libXres es la librería CLIENTE — el servidor IMPLEMENTA la extensión, no la consume"
1484perfiles = ["escritorio-kde"]
1485piden = ["xwayland"]
1486
1487[candidato."libxscrnsaver"]
1488veredicto = "opcional"
1489porque = "X11 heredado: el escritorio es Wayland"
1490perfiles = ["escritorio-kde", "escritorio-sway"]
1491piden = ["dunst", "kidletime"]
1492
1493[candidato."libxshmfence"]
1494veredicto = "opcional"
1495sugerencia = "opcional?"
1496porque = "X11 heredado: el escritorio es Wayland"
1497perfiles = ["escritorio-kde", "escritorio-mirada"]
1498piden = ["mesa"]
1499ausente = true # ya no aparece en el último barrido de la frontera
1500
1501[candidato."libxt"]
1502veredicto = "opcional"
1503sugerencia = "opcional?"
1504porque = "mismo caso que libxaw: sólo en los ficheros de CI del repo xserver. Es el toolkit intrínseco de las apps X11 clásicas, no del servidor"
1505perfiles = ["escritorio-kde"]
1506piden = ["xwayland"]
1507
1508[candidato."libxxf86vm"]
1509veredicto = "opcional"
1510sugerencia = "opcional?"
1511porque = "X11 heredado: el escritorio es Wayland"
1512perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
1513piden = ["mesa"]
1514
1515[candidato."lilv"]
1516veredicto = "opcional"
1517sugerencia = "opcional?"
1518porque = "es el host de plugins LV2 y la receta pasa -Dlv2=disabled (meson_options.txt:261). Sin plugins LV2 en el catálogo no hay qué cargar"
1519perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1520piden = ["pipewire"]
1521
1522[candidato."lksctp-tools"]
1523veredicto = "opcional"
1524sugerencia = "opcional?"
1525porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
1526perfiles = ["escritorio-kde"]
1527piden = ["qtbase"]
1528
1529[candidato."llhttp"]
1530veredicto = "opcional"
1531sugerencia = "opcional?"
1532porque = "nodejs la BUNDLEA: está en deps/ del tarball pineado (verificado listando el propio node-v24.18.1.tar.gz, no de memoria). La receta ya declara la decisión de fondo: acá Node es una herramienta de build del sandbox de Gecko, no software que la distro publique, así que gana el cierre chico. Está como deps/llhttp"
1533perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1534piden = ["nodejs"]
1535
1536[candidato."llvm"]
1537veredicto = "opcional"
1538sugerencia = "opcional?"
1539porque = "Vulkan / compilación de shaders / dispatch GL: no habilitado (mesa se construye sin ellos)"
1540perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
1541piden = ["mesa"]
1542
1543[candidato."lndir"]
1544veredicto = "nix-ismo"
1545sugerencia = "opcional?"
1546porque = "helper de nixpkgs para árboles de symlinks"
1547perfiles = ["escritorio-kde"]
1548piden = ["qtbase"]
1549ausente = true # ya no aparece en el último barrido de la frontera
1550
1551[candidato."lttng-ust"]
1552veredicto = "opcional"
1553sugerencia = "opcional?"
1554porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
1555perfiles = ["escritorio-kde"]
1556piden = ["qtbase"]
1557
1558[candidato."lua"]
1559veredicto = "opcional"
1560sugerencia = "opcional?"
1561porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
1562perfiles = ["escritorio-kde"]
1563piden = ["libinput"]
1564ausente = true # ya no aparece en el último barrido de la frontera
1565
1566[candidato."lvm2"]
1567veredicto = "opcional"
1568sugerencia = "opcional?"
1569porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
1570perfiles = ["base", "cli", "escritorio-sway"]
1571piden = ["parted"]
1572
1573[candidato."lzip"]
1574veredicto = "nix-ismo"
1575sugerencia = "opcional?"
1576porque = "es un COMPRESOR, andamiaje de empaquetado: nixpkgs lo usa para desempaquetar .tar.lz. El tarball que pinea la receta es .tar.gz"
1577perfiles = ["escritorio-gnome"]
1578piden = ["libpsl"]
1579
1580[candidato."lzo"]
1581veredicto = "opcional"
1582porque = "libarchive pasa --without-lzo2 explícito. cairo NO la apaga: meson.options:19 la declara feature 'auto' y meson.build:203 la tomaría si apareciera. ⚠ CORRECCIÓN de cómo lo dije al principio: eso NO es una escotilla del catálogo. El sandbox monta SÓLO las deps declaradas (docs/02-build-lab.md §3.4: raíz tmpfs + bind read-only de las deps) y agregarla a [deps] movería el ArtifactHash, o sea que se vería. La vía silenciosa sería que apareciera en el LAB, que no entra en hash_inputs. Sólo la usa util/cairo-script"
1583perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1584piden = ["cairo", "libarchive"]
1585
1586[candidato."mariadb-connector-c"]
1587veredicto = "opcional"
1588sugerencia = "opcional?"
1589porque = "conectores de base de datos: ninguna imagen los pide"
1590perfiles = ["escritorio-kde"]
1591piden = ["qtbase"]
1592
1593[candidato."mariadb-connector-odbc"]
1594veredicto = "opcional"
1595sugerencia = "opcional?"
1596porque = "conectores de base de datos: ninguna imagen los pide"
1597perfiles = ["escritorio-kde"]
1598piden = ["qtbase"]
1599
1600[candidato."md4c"]
1601veredicto = "opcional"
1602sugerencia = "opcional?"
1603porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
1604perfiles = ["escritorio-kde"]
1605piden = ["qtbase"]
1606
1607[candidato."merve"]
1608veredicto = "opcional"
1609sugerencia = "opcional?"
1610porque = "nodejs la BUNDLEA: está en deps/ del tarball pineado (verificado listando el propio node-v24.18.1.tar.gz, no de memoria). La receta ya declara la decisión de fondo: acá Node es una herramienta de build del sandbox de Gecko, no software que la distro publique, así que gana el cierre chico. Está como deps/merve"
1611perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1612piden = ["nodejs"]
1613
1614[candidato."mesa-gl-headers"]
1615veredicto = "provisto"
1616provee = "mesa"
1617porque = "no falta: es el split de cabeceras que hace nixpkgs. El artefacto de mesa instala usr/include/{GL,GLES2,GLES3,KHR,EGL} —verificado en el store, no deducido— que es lo que incluyen mutter y xwayland. El único hueco es GLES1, apagado a propósito en la receta (-Dgles1=disabled)"
1618perfiles = ["escritorio-gnome", "escritorio-kde"]
1619piden = ["mutter", "xwayland"]
1620
1621[candidato."mesa-libclc"]
1622veredicto = "opcional"
1623sugerencia = "opcional?"
1624porque = "libclc es para OpenCL (clover/rusticl) y nuestra mesa no lo compila: `-Dllvm=disabled -Dintel-clc=disabled -Dgallium-rusticl=false`. La propia cabecera de recipes/mesa.toml lo dice — «iris-only y sin Vulkan/rusticl, with_clc=FALSE ⇒ NO se pide libclc/LLVM». nixpkgs lo habilita, nosotros no."
1625perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
1626piden = ["mesa"]
1627
1628[candidato."mesa-libgbm"]
1629veredicto = "provisto"
1630provee = "mesa"
1631porque = "nixpkgs lo separa en un paquete propio; acá lo da la receta `mesa` (verificado en el store)"
1632perfiles = ["escritorio-kde"]
1633piden = ["kwin", "mesa", "qtbase"]
1634ausente = true # ya no aparece en el último barrido de la frontera
1635
1636[candidato."milou"]
1637veredicto = "opcional"
1638porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
1639perfiles = ["escritorio-kde"]
1640piden = ["kwin", "plasma-workspace"]
1641
1642[candidato."mobile-broadband-provider-info"]
1643veredicto = "opcional"
1644porque = "lo piden 2 recetas"
1645perfiles = ["escritorio-kde"]
1646piden = ["networkmanager", "plasma-nm"]
1647
1648[candidato."mpdecimal"]
1649veredicto = "opcional"
1650sugerencia = "opcional?"
1651porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
1652perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
1653piden = ["python3"]
1654
1655[candidato."mutest"]
1656veredicto = "pendiente"
1657sugerencia = "opcional?"
1658porque = "lo pide una sola receta (graphene); mirá si es una feature opcional"
1659perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-sway"]
1660piden = ["graphene"]
1661
1662[candidato."nanosvg"]
1663veredicto = "pendiente"
1664sugerencia = "opcional?"
1665porque = "lo pide una sola receta (fcft); mirá si es una feature opcional"
1666perfiles = ["escritorio-gnome", "escritorio-sway"]
1667piden = ["fcft"]
1668
1669[candidato."nbytes"]
1670veredicto = "opcional"
1671sugerencia = "opcional?"
1672porque = "nodejs la BUNDLEA: está en deps/ del tarball pineado (verificado listando el propio node-v24.18.1.tar.gz, no de memoria). La receta ya declara la decisión de fondo: acá Node es una herramienta de build del sandbox de Gecko, no software que la distro publique, así que gana el cierre chico. Está como deps/nbytes"
1673perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1674piden = ["nodejs"]
1675
1676[candidato."newt"]
1677veredicto = "opcional"
1678sugerencia = "opcional?"
1679porque = "es la dep de nmtui y el propio meson lo dice en el assert de meson.build:806 — «You must have libnewt installed to build nmtui. Use -Dnmtui=false to disable it»— que es exactamente lo que pasa la receta. Ojo: nmtui viene en TRUE por defecto (meson_options.txt:43)"
1680perfiles = ["escritorio-kde"]
1681piden = ["networkmanager"]
1682
1683[candidato."nghttp2"]
1684veredicto = "opcional"
1685sugerencia = "opcional?"
1686porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
1687perfiles = ["cli"]
1688piden = ["curl"]
1689ausente = true # ya no aparece en el último barrido de la frontera
1690
1691[candidato."nghttp3"]
1692veredicto = "opcional"
1693porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
1694perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1695piden = ["curl", "nodejs"]
1696
1697[candidato."ngtcp2"]
1698veredicto = "opcional"
1699porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
1700perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1701piden = ["curl", "nodejs"]
1702
1703[candidato."nlohmann_json"]
1704veredicto = "provisto"
1705sugerencia = "opcional?"
1706provee = "nlohmann-json"
1707porque = "no falta: es el MISMO paquete con el separador cambiado. recipes/nlohmann-json.toml está en el corpus y ya figura en [deps].build de obs-studio. Alias de puntuación, como libxcb-image→xcb-util-image"
1708perfiles = ["escritorio-kde"]
1709piden = ["obs-studio"]
1710
1711[candidato."nv-codec-headers"]
1712veredicto = "opcional"
1713porque = "lo piden 2 recetas"
1714perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1715piden = ["ffmpeg", "obs-studio"]
1716
1717[candidato."ocl-icd"]
1718veredicto = "opcional"
1719sugerencia = "opcional?"
1720porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-opencl, y el hueco está una capa MÁS ABAJO: mesa se construye con -Dllvm=disabled -Dgallium-rusticl=false ⇒ la distro no publica NINGÚN runtime de OpenCL. Un ICD loader sin ICD no filtra nada"
1721perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1722piden = ["ffmpeg"]
1723
1724[candidato."openapv"]
1725veredicto = "opcional"
1726sugerencia = "opcional?"
1727porque = "⚠ NO es una perilla que no encendimos: es DESFASE DE VERSIÓN. El candidato sale de la expresión de nixpkgs para ffmpeg 8.x; nuestra receta pinea 7.1 y su `configure` no nombra apv/openapv en ningún sitio (verificado en el tarball sellado). Vuelve a ser pregunta legítima el día que ffmpeg suba de major"
1728perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1729piden = ["ffmpeg"]
1730
1731[candidato."openblas"]
1732veredicto = "opcional"
1733sugerencia = "opcional?"
1734porque = "la receta pasa -DWITH_LAPACK=OFF explícito, que es por donde OpenCV toma un BLAS/LAPACK externo"
1735perfiles = ["escritorio-kde"]
1736piden = ["opencv"]
1737
1738[candidato."opencl-headers"]
1739veredicto = "opcional"
1740sugerencia = "opcional?"
1741porque = "mismo caso que ocl-icd: son las cabeceras de OpenCL y la distro no publica runtime (mesa va -Dllvm=disabled -Dgallium-rusticl=false), además de que ffmpeg iría con --disable-autodetect"
1742perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1743piden = ["ffmpeg"]
1744
1745[candidato."openconnect"]
1746veredicto = "opcional"
1747sugerencia = "opcional?"
1748porque = "plasma-nm va con -DBUILD_OPENCONNECT=OFF explícito, contra un default ON (CMakeLists.txt:20). Capacidad ausente: no hay cliente VPN de Cisco/AnyConnect"
1749perfiles = ["escritorio-kde"]
1750piden = ["plasma-nm"]
1751
1752[candidato."openexr"]
1753veredicto = "opcional"
1754porque = "lo piden 2 recetas"
1755perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1756piden = ["opencv", "swayimg"]
1757
1758[candidato."openjpeg"]
1759veredicto = "opcional"
1760sugerencia = "hueco?"
1761porque = "lo piden 5 recetas de la imagen — difícil que sea accesorio"
1762perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
1763piden = ["ffmpeg", "leptonica", "opencv", "poppler", "swayimg"]
1764
1765[candidato."openldap"]
1766veredicto = "opcional"
1767porque = "conectores de base de datos: ninguna imagen los pide"
1768perfiles = ["base", "cli", "escritorio-gnome", "escritorio-sway"]
1769piden = ["evolution-data-server", "gnupg"]
1770
1771[candidato."orc"]
1772veredicto = "opcional"
1773porque = "stack de audio/multimedia: decisión de producto pendiente, no un hueco de build"
1774perfiles = ["escritorio-kde"]
1775piden = ["opencv", "qtmultimedia"]
1776
1777[candidato."oxygen-icons"]
1778veredicto = "opcional"
1779sugerencia = "opcional?"
1780porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
1781perfiles = ["escritorio-kde"]
1782piden = ["frameworkintegration"]
1783
1784[candidato."packagekit-qt"]
1785veredicto = "opcional"
1786sugerencia = "hueco?"
1787porque = "formatos/paquetería ajenos; hammer tiene los suyos (.swm, Etapa F)"
1788perfiles = ["escritorio-kde"]
1789piden = ["dolphin", "frameworkintegration", "plasma-desktop", "plasma-workspace"]
1790
1791[candidato."pandoc-cli"]
1792veredicto = "opcional"
1793sugerencia = "opcional?"
1794porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
1795perfiles = ["cli", "escritorio-sway"]
1796piden = ["eza"]
1797
1798[candidato."plasma-nano"]
1799veredicto = "opcional"
1800sugerencia = "opcional?"
1801porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
1802perfiles = ["escritorio-kde"]
1803piden = ["plasma-workspace"]
1804
1805[candidato."plasma-sdk"]
1806veredicto = "opcional"
1807sugerencia = "opcional?"
1808porque = "cero referencias en el CMakeLists de plasma-desktop: son las herramientas de DESARROLLO de plasmoides (plasmoidviewer y compañía), un paquete aparte que el sembrador hereda de la expresión de nixpkgs"
1809perfiles = ["escritorio-kde"]
1810piden = ["plasma-desktop"]
1811
1812[candidato."plasma-systemmonitor"]
1813veredicto = "pendiente"
1814sugerencia = "opcional?"
1815porque = "lo pide una sola receta (kinfocenter); mirá si es una feature opcional"
1816perfiles = ["escritorio-kde"]
1817piden = ["kinfocenter"]
1818
1819[candidato."ply"]
1820veredicto = "opcional"
1821sugerencia = "opcional?"
1822porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
1823perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
1824piden = ["mesa"]
1825
1826[candidato."po4a"]
1827veredicto = "opcional"
1828sugerencia = "opcional?"
1829porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
1830perfiles = ["base", "cli", "escritorio-kde", "escritorio-sway"]
1831piden = ["util-linux"]
1832
1833[candidato."polkit-qt-1"]
1834veredicto = "provisto"
1835provee = "polkit-qt-1"
1836porque = "sin él Plasma no puede pedir autorización: montar discos, cambiar ajustes del sistema"
1837perfiles = ["escritorio-kde"]
1838piden = ["kauth", "plasma-workspace"]
1839ausente = true # ya no aparece en el último barrido de la frontera
1840
1841[candidato."pop-icon-theme"]
1842veredicto = "pendiente"
1843sugerencia = "opcional?"
1844porque = "lo pide una sola receta (cosmic-icons); mirá si es una feature opcional"
1845perfiles = ["escritorio-cosmic"]
1846piden = ["cosmic-icons"]
1847
1848[candidato."poppler-data"]
1849veredicto = "pendiente"
1850sugerencia = "opcional?"
1851porque = "lo pide una sola receta (poppler); mirá si es una feature opcional"
1852perfiles = ["escritorio-kde"]
1853piden = ["poppler"]
1854
1855[candidato."poppler-qt6"]
1856veredicto = "provisto"
1857sugerencia = "opcional?"
1858provee = "poppler"
1859porque = "nixpkgs lo separa en un paquete propio; acá lo da la receta `poppler` (verificado en el store)"
1860perfiles = ["escritorio-kde"]
1861piden = ["kfilemetadata"]
1862ausente = true # ya no aparece en el último barrido de la frontera
1863
1864[candidato."popt"]
1865veredicto = "opcional"
1866sugerencia = "opcional?"
1867porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
1868perfiles = ["base", "cli", "escritorio-sway"]
1869piden = ["rsync"]
1870
1871[candidato."ppp"]
1872veredicto = "opcional"
1873porque = "lo piden 2 recetas"
1874perfiles = ["escritorio-kde"]
1875piden = ["modemmanager", "networkmanager"]
1876
1877[candidato."protobuf"]
1878veredicto = "opcional"
1879porque = "lo piden 3 recetas"
1880perfiles = ["escritorio-gnome", "escritorio-kde"]
1881piden = ["evolution-data-server", "libei", "opencv"]
1882
1883[candidato."protobuf-c"]
1884veredicto = "pendiente"
1885sugerencia = "opcional?"
1886porque = "lo pide una sola receta (libei); mirá si es una feature opcional"
1887perfiles = ["escritorio-gnome"]
1888piden = ["libei"]
1889
1890[candidato."psqlodbc"]
1891veredicto = "opcional"
1892sugerencia = "opcional?"
1893porque = "conectores de base de datos: ninguna imagen los pide"
1894perfiles = ["escritorio-kde"]
1895piden = ["qtbase"]
1896
1897[candidato."publicsuffix-list"]
1898veredicto = "opcional"
1899sugerencia = "opcional?"
1900porque = "no falta: la lista VIENE en el tarball de libpsl y la receta la hornea en el .so con --enable-builtin=libicu, cosa que además la fija al ArtifactHash. Traerla por separado sería meter un dato mutable en un store direccionable por contenido"
1901perfiles = ["escritorio-gnome"]
1902piden = ["libpsl"]
1903
1904[candidato."purpose"]
1905veredicto = "provisto"
1906provee = "purpose"
1907porque = "lo piden 3 recetas"
1908perfiles = ["escritorio-kde"]
1909piden = ["gwenview", "okular", "spectacle"]
1910
1911[candidato."pycparser"]
1912veredicto = "opcional"
1913sugerencia = "opcional?"
1914porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
1915perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
1916piden = ["mesa"]
1917
1918[candidato."pygobject"]
1919veredicto = "opcional"
1920porque = "mismo caso que dbus-python: los mock-service de libsecret la importan por gi.repository y modemmanager va con -Dintrospection=false -Dtests=false. La introspección que sí queremos (libsecret -Dintrospection=true) la da gobject-introspection, no el binding de Python"
1921perfiles = ["escritorio-gnome", "escritorio-kde"]
1922piden = ["libsecret", "modemmanager"]
1923
1924[candidato."pyside6"]
1925veredicto = "opcional"
1926sugerencia = "hueco?"
1927porque = "bindings Python de Qt: ninguna imagen los pide"
1928perfiles = ["escritorio-kde"]
1929piden = ["kcoreaddons", "kguiaddons", "kjobwidgets", "knotifications", "kstatusnotifieritem", "kunitconversion", "kwidgetsaddons", "kxmlgui"]
1930
1931[candidato."python3-3.14.6-env"]
1932veredicto = "nix-ismo"
1933sugerencia = "nix-ismo?"
1934porque = "wrapper de entorno de nix, no un paquete"
1935perfiles = ["escritorio-kde"]
1936piden = ["kcoreaddons", "kguiaddons", "knotifications", "kstatusnotifieritem", "kwidgetsaddons", "kxmlgui", "libinput"]
1937ausente = true # ya no aparece en el último barrido de la frontera
1938
1939[candidato."python3-3.14.7-env"]
1940veredicto = "nix-ismo"
1941sugerencia = "nix-ismo?"
1942porque = "envoltorio de entorno de nixpkgs (python + paquetes en una derivación); hammer ya tiene la receta `python3` (3.12.10) y la libinput que lo pide YA la declara en sus deps de build. Mismo criterio que `git-minimal` unas líneas más arriba."
1943perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
1944piden = ["breeze-icons", "gnome-shell", "gobject-introspection", "kcoreaddons", "kguiaddons", "kjobwidgets", "knotifications", "kstatusnotifieritem", "kunitconversion", "kwidgetsaddons", "kxmlgui", "libei"] # …y 8 más
1945
1946[candidato."pyyaml"]
1947veredicto = "opcional"
1948sugerencia = "opcional?"
1949porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
1950perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
1951piden = ["mesa"]
1952
1953[candidato."qca"]
1954veredicto = "opcional"
1955sugerencia = "opcional?"
1956porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
1957perfiles = ["escritorio-kde"]
1958piden = ["kwallet"]
1959
1960[candidato."qqc2-breeze-style"]
1961veredicto = "provisto"
1962provee = "qqc2-breeze-style"
1963porque = "el estilo QML que Plasma usa de verdad; sin él los controles caen a un estilo genérico"
1964perfiles = ["escritorio-kde"]
1965piden = ["kscreenlocker", "plasma-workspace"]
1966ausente = true # ya no aparece en el último barrido de la frontera
1967
1968[candidato."qrcodegencpp"]
1969veredicto = "opcional"
1970sugerencia = "opcional?"
1971porque = "dep del plugin obs-websocket, que NO se construye: la receta lo neutraliza con `touch plugins/obs-websocket/CMakeLists.txt` y el artefacto sellado lo confirma — usr/lib/obs-plugins no tiene obs-websocket.so. qrcodegencpp sólo dibuja el QR con el que la app móvil se empareja"
1972perfiles = ["escritorio-kde"]
1973piden = ["obs-studio"]
1974
1975[candidato."qtimageformats"]
1976veredicto = "opcional"
1977sugerencia = "opcional?"
1978porque = "no aparece en ningún CMakeLists de gwenview: es un paquete de PLUGINS de Qt que se cargan en runtime para formatos extra. Sin él gwenview abre los formatos que trae qtbase; no falla nada al construir"
1979perfiles = ["escritorio-kde"]
1980piden = ["gwenview"]
1981
1982[candidato."qtquick3d"]
1983veredicto = "opcional"
1984porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
1985perfiles = ["escritorio-kde"]
1986piden = ["kwin", "qtmultimedia"]
1987
1988[candidato."qtsensors"]
1989veredicto = "opcional"
1990porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
1991perfiles = ["escritorio-kde"]
1992piden = ["kscreen", "kwin"]
1993
1994[candidato."qtserialport"]
1995veredicto = "opcional"
1996sugerencia = "opcional?"
1997porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
1998perfiles = ["escritorio-kde"]
1999piden = ["qtpositioning"]
2000
2001[candidato."qtvirtualkeyboard"]
2002veredicto = "opcional"
2003porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
2004perfiles = ["escritorio-kde"]
2005piden = ["kwin", "plasma-workspace"]
2006
2007[candidato."qtwebengine"]
2008veredicto = "opcional"
2009sugerencia = "opcional?"
2010porque = "⚠ hallazgo que abarata mucho: en plasma-nm, Qt6WebEngineWidgets se pide REQUIRED pero SÓLO dentro de `if(BUILD_OPENCONNECT)` (CMakeLists.txt:54-56), y la receta pasa -DBUILD_OPENCONNECT=OFF. O sea que un Chromium entero colgaba de la vista web de SSO de una VPN, y apagar la VPN lo saca del grafo"
2011perfiles = ["escritorio-kde"]
2012piden = ["plasma-nm"]
2013
2014[candidato."qtwebsockets"]
2015veredicto = "opcional"
2016sugerencia = "opcional?"
2017porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
2018perfiles = ["escritorio-kde"]
2019piden = ["qcoro"]
2020
2021[candidato."rdma-core"]
2022veredicto = "pendiente"
2023sugerencia = "opcional?"
2024porque = "lo pide una sola receta (libpcap); mirá si es una feature opcional"
2025perfiles = ["escritorio-kde"]
2026piden = ["libpcap"]
2027
2028[candidato."remove-references-to"]
2029veredicto = "nix-ismo"
2030sugerencia = "opcional?"
2031porque = "helper del stdenv de nixpkgs"
2032perfiles = ["cli"]
2033piden = ["jq"]
2034ausente = true # ya no aparece en el último barrido de la frontera
2035
2036[candidato."resvg"]
2037veredicto = "pendiente"
2038sugerencia = "opcional?"
2039porque = "lo pide una sola receta (fuzzel); mirá si es una feature opcional"
2040perfiles = ["escritorio-sway"]
2041piden = ["fuzzel"]
2042
2043[candidato."rhash"]
2044veredicto = "opcional"
2045sugerencia = "opcional?"
2046porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
2047perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2048piden = ["cmake"]
2049
2050[candidato."roc-toolkit"]
2051veredicto = "opcional"
2052sugerencia = "opcional?"
2053porque = "la receta pasa -Droc=disabled (meson_options.txt:237): es el transporte de audio en tiempo real por red"
2054perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2055piden = ["pipewire"]
2056
2057[candidato."rust-bindgen"]
2058veredicto = "opcional"
2059sugerencia = "opcional?"
2060porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
2061perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
2062piden = ["mesa"]
2063
2064[candidato."rust-cbindgen"]
2065veredicto = "opcional"
2066sugerencia = "opcional?"
2067porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
2068perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
2069piden = ["mesa"]
2070
2071[candidato."sane-backends"]
2072veredicto = "opcional"
2073sugerencia = "opcional?"
2074porque = "colord va con -Dsane=false explícito. ⚠ Capacidad ausente de fondo: la distro no tiene stack de escáner, así que no hay perfil de color de escáner que hacer"
2075perfiles = ["escritorio-gnome"]
2076piden = ["colord"]
2077
2078[candidato."sbc"]
2079veredicto = "opcional"
2080porque = "lo piden 2 recetas"
2081perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2082piden = ["pipewire", "pulseaudio"]
2083
2084[candidato."sdl2-compat"]
2085veredicto = "opcional"
2086porque = "lo piden 2 recetas"
2087perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2088piden = ["ffmpeg", "plasma-desktop"]
2089
2090[candidato."setxkbmap"]
2091veredicto = "opcional"
2092sugerencia = "opcional?"
2093porque = "X11 heredado: el escritorio es Wayland"
2094perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
2095piden = ["libxkbcommon"]
2096
2097[candidato."shaderc"]
2098veredicto = "opcional"
2099porque = "lo piden 2 recetas"
2100perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2101piden = ["gtk4", "libplacebo"]
2102
2103[candidato."shared-mime-info"]
2104veredicto = "provisto"
2105sugerencia = "opcional?"
2106provee = "shared-mime-info"
2107porque = "base de datos MIME: sin ella el escritorio no determina tipos de fichero (asociaciones, iconos, abrir-con). Gap de RUNTIME, no de build"
2108perfiles = ["escritorio-kde"]
2109piden = ["kcoreaddons"]
2110ausente = true # ya no aparece en el último barrido de la frontera
2111
2112[candidato."shiboken6"]
2113veredicto = "opcional"
2114sugerencia = "hueco?"
2115porque = "bindings Python de Qt: ninguna imagen los pide"
2116perfiles = ["escritorio-kde"]
2117piden = ["kcoreaddons", "kguiaddons", "kjobwidgets", "knotifications", "kstatusnotifieritem", "kunitconversion", "kwidgetsaddons", "kxmlgui"]
2118
2119[candidato."shiboken6-generator"]
2120veredicto = "opcional"
2121sugerencia = "hueco?"
2122porque = "lo piden 8 recetas de la imagen — difícil que sea accesorio"
2123perfiles = ["escritorio-kde"]
2124piden = ["kcoreaddons", "kguiaddons", "kjobwidgets", "knotifications", "kstatusnotifieritem", "kunitconversion", "kwidgetsaddons", "kxmlgui"]
2125
2126[candidato."simdjson"]
2127veredicto = "opcional"
2128sugerencia = "opcional?"
2129porque = "nodejs la BUNDLEA: está en deps/ del tarball pineado (verificado listando el propio node-v24.18.1.tar.gz, no de memoria). La receta ya declara la decisión de fondo: acá Node es una herramienta de build del sandbox de Gecko, no software que la distro publique, así que gana el cierre chico. Está como deps/simdjson, y la receta lo PARCHEA ahí mismo (apaga SIMDJSON_AVX512_ALLOWED en el .h y en el .cpp amalgamado)"
2130perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2131piden = ["nodejs"]
2132
2133[candidato."simdutf"]
2134veredicto = "opcional"
2135sugerencia = "opcional?"
2136porque = "nodejs la BUNDLEA: está en deps/ del tarball pineado (verificado listando el propio node-v24.18.1.tar.gz, no de memoria). La receta ya declara la decisión de fondo: acá Node es una herramienta de build del sandbox de Gecko, no software que la distro publique, así que gana el cierre chico. No está en deps/ de primer nivel sino DENTRO de V8: deps/v8/third_party/simdutf, que es exactamente el fichero que la receta parchea"
2137perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2138piden = ["nodejs"]
2139
2140[candidato."slang"]
2141veredicto = "opcional"
2142sugerencia = "opcional?"
2143porque = "es el back-end de pantalla de newt ⇒ cae con él: la receta pasa -Dnmtui=false"
2144perfiles = ["escritorio-kde"]
2145piden = ["networkmanager"]
2146
2147[candidato."soxr"]
2148veredicto = "opcional"
2149porque = "lo piden 2 recetas"
2150perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2151piden = ["ffmpeg", "pulseaudio"]
2152
2153[candidato."spandsp"]
2154veredicto = "opcional"
2155sugerencia = "opcional?"
2156porque = "mismo caso que libebur128: pipewire 1.2.7 no lo nombra en ningún fichero. Sale de la expresión de nixpkgs para una versión más nueva que la que pineamos"
2157perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2158piden = ["pipewire"]
2159
2160[candidato."speech-dispatcher"]
2161veredicto = "opcional"
2162sugerencia = "opcional?"
2163porque = "stack de audio/multimedia: decisión de producto pendiente, no un hueco de build"
2164perfiles = ["escritorio-kde"]
2165piden = ["qtspeech"]
2166
2167[candidato."speex"]
2168veredicto = "opcional"
2169porque = "lo piden 2 recetas"
2170perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2171piden = ["ffmpeg", "obs-studio"]
2172
2173[candidato."sphinx"]
2174veredicto = "opcional"
2175porque = "lo piden 2 recetas"
2176perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2177piden = ["libtiff", "mpc"]
2178
2179[candidato."spirv-tools"]
2180veredicto = "opcional"
2181porque = "Vulkan / compilación de shaders / dispatch GL: no habilitado (mesa se construye sin ellos)"
2182perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
2183piden = ["kdeclarative", "mesa", "plasma-workspace"]
2184
2185[candidato."sqlite-connector-odbc"]
2186veredicto = "opcional"
2187sugerencia = "opcional?"
2188porque = "conectores de base de datos: ninguna imagen los pide"
2189perfiles = ["escritorio-kde"]
2190piden = ["qtbase"]
2191
2192[candidato."srt"]
2193veredicto = "opcional"
2194porque = "lo piden 2 recetas"
2195perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2196piden = ["ffmpeg", "obs-studio"]
2197
2198[candidato."stb"]
2199veredicto = "opcional"
2200sugerencia = "opcional?"
2201porque = "sólo la usa example/CMakeLists.txt de zxing-cpp para leer PNG/JPEG en los programas de ejemplo, y la receta pasa -DZXING_EXAMPLES=OFF"
2202perfiles = ["escritorio-kde"]
2203piden = ["zxing-cpp"]
2204
2205[candidato."svt-av1"]
2206veredicto = "opcional"
2207sugerencia = "opcional?"
2208porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libsvtav1: el tercer encoder de AV1 que no tenemos. Reproducir AV1 no lo necesita (decoder nativo, medido en el artefacto)"
2209perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2210piden = ["ffmpeg"]
2211
2212[candidato."swig"]
2213veredicto = "opcional"
2214sugerencia = "opcional?"
2215porque = "-DENABLE_SCRIPTING=OFF, y la receta lo deja escrito: luajit está en el corpus pero swig no, así que el scripting quedó apagado en la primera vuelta"
2216perfiles = ["escritorio-kde"]
2217piden = ["obs-studio"]
2218
2219[candidato."syndication"]
2220veredicto = "opcional"
2221sugerencia = "opcional?"
2222porque = "módulo opcional de Qt/KDE: el escritorio construye sin él — revisá si lo querés para un Plasma completo"
2223perfiles = ["escritorio-kde"]
2224piden = ["knewstuff"]
2225
2226[candidato."sysprof"]
2227veredicto = "opcional"
2228sugerencia = "opcional?"
2229porque = "meson.build:453 lo pide `if have_profiler` y la receta pasa -Dprofiler=false, cosa que ya estaba escrita en sus comentarios. Es instrumentación de rendimiento del compositor, no funcionalidad de escritorio"
2230perfiles = ["escritorio-gnome"]
2231piden = ["mutter"]
2232
2233[candidato."systemd"]
2234veredicto = "opcional"
2235sugerencia = "hueco?"
2236porque = "hammer usa arje-zero como PID1; ninguna imagen quiere systemd"
2237perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2238piden = ["colord", "cosmic-comp", "dunst", "gnome-shell", "modemmanager", "networkmanager", "pulseaudio", "qtbase", "xwayland"]
2239
2240[candidato."systemd-minimal"]
2241veredicto = "opcional"
2242sugerencia = "nix-ismo?"
2243porque = "hammer usa arje-zero como PID1; ninguna imagen quiere systemd"
2244perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
2245piden = ["dbus", "mako", "xdg-desktop-portal"]
2246
2247[candidato."systemd-minimal-libs"]
2248veredicto = "opcional"
2249sugerencia = "nix-ismo?"
2250porque = "hammer usa arje-zero como PID1; ninguna imagen quiere systemd"
2251perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
2252piden = ["appstream", "at-spi2-core", "atk", "colord", "cosmic-applets", "cosmic-comp", "cosmic-osd", "cosmic-settings", "cosmic-settings-daemon", "cosmic-workspaces-epoch", "dhcpcd", "gnome-desktop"] # …y 16 más
2253
2254[candidato."systemtap"]
2255veredicto = "opcional"
2256sugerencia = "opcional?"
2257porque = "glib 2.88.1 declara `systemtap` como feature 'auto' (meson.options:58) y no está en el sandbox, que monta sólo las deps declaradas. Son sondas de trazado del runtime, no funcionalidad"
2258perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2259piden = ["glib"]
2260
2261[candidato."taglib"]
2262veredicto = "opcional"
2263sugerencia = "opcional?"
2264porque = "stack de audio/multimedia: decisión de producto pendiente, no un hueco de build"
2265perfiles = ["escritorio-kde"]
2266piden = ["kfilemetadata"]
2267
2268[candidato."tcb"]
2269veredicto = "opcional"
2270sugerencia = "opcional?"
2271porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
2272perfiles = ["base", "cli", "escritorio-sway"]
2273piden = ["shadow"]
2274
2275[candidato."tcl"]
2276veredicto = "pendiente"
2277sugerencia = "opcional?"
2278porque = "lo pide una sola receta (sqlite); mirá si es una feature opcional"
2279perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-sway"]
2280piden = ["sqlite"]
2281
2282[candidato."texinfo"]
2283veredicto = "opcional"
2284sugerencia = "hueco?"
2285porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
2286perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2287piden = ["e2fsprogs", "ffmpeg", "git", "gnupg"]
2288
2289[candidato."tinysparql"]
2290veredicto = "opcional"
2291porque = "lo piden 2 recetas"
2292perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2293piden = ["gtk3", "gtk4"]
2294
2295[candidato."tinyxxd"]
2296veredicto = "opcional"
2297sugerencia = "opcional?"
2298porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
2299perfiles = ["base", "cli", "escritorio-sway"]
2300piden = ["dosfstools"]
2301
2302[candidato."tpm2-tss"]
2303veredicto = "opcional"
2304sugerencia = "opcional?"
2305porque = "red/seguridad opcional: nixpkgs la habilita por defecto, hammer construye sin ella"
2306perfiles = ["base", "cli", "escritorio-sway"]
2307piden = ["gnupg"]
2308
2309[candidato."umockdev"]
2310veredicto = "opcional"
2311porque = "lo piden 2 recetas"
2312perfiles = ["escritorio-cosmic", "escritorio-gnome"]
2313piden = ["libgudev", "xdg-desktop-portal"]
2314
2315[candidato."uname"]
2316veredicto = "provisto"
2317sugerencia = "opcional?"
2318provee = "coreutils"
2319porque = "nixpkgs lo separa en un paquete propio; acá lo da la receta `coreutils` (verificado en el store)"
2320perfiles = ["cli"]
2321piden = ["git"]
2322ausente = true # ya no aparece en el último barrido de la frontera
2323
2324[candidato."unixodbc"]
2325veredicto = "opcional"
2326sugerencia = "opcional?"
2327porque = "conectores de base de datos: ninguna imagen los pide"
2328perfiles = ["escritorio-kde"]
2329piden = ["qtbase"]
2330
2331[candidato."unzip"]
2332veredicto = "opcional"
2333porque = "lo piden 2 recetas"
2334perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2335piden = ["opencv", "sqlite"]
2336
2337[candidato."uvwasi"]
2338veredicto = "opcional"
2339sugerencia = "opcional?"
2340porque = "nodejs la BUNDLEA: está en deps/ del tarball pineado (verificado listando el propio node-v24.18.1.tar.gz, no de memoria). La receta ya declara la decisión de fondo: acá Node es una herramienta de build del sandbox de Gecko, no software que la distro publique, así que gana el cierre chico. Está como deps/uvwasi"
2341perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2342piden = ["nodejs"]
2343
2344[candidato."v4l-utils"]
2345veredicto = "opcional"
2346porque = "stack de audio/multimedia: decisión de producto pendiente, no un hueco de build"
2347perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2348piden = ["ffmpeg", "libdisplay-info", "obs-studio"]
2349
2350[candidato."vala"]
2351veredicto = "opcional"
2352sugerencia = "hueco?"
2353porque = "lo piden 9 recetas de la imagen — difícil que sea accesorio"
2354perfiles = ["escritorio-gnome", "escritorio-kde"]
2355piden = ["appstream", "colord", "evolution-data-server", "libadwaita", "libgudev", "libical", "libsecret", "modemmanager", "networkmanager"]
2356
2357[candidato."valgrind"]
2358veredicto = "opcional"
2359porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
2360perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
2361piden = ["libdrm", "mesa", "pipewire"]
2362
2363[candidato."validate-pkg-config"]
2364veredicto = "pendiente"
2365sugerencia = "opcional?"
2366porque = "lo pide una sola receta (jansson); mirá si es una feature opcional"
2367perfiles = ["escritorio-kde"]
2368piden = ["jansson"]
2369
2370[candidato."vid.stab"]
2371veredicto = "opcional"
2372sugerencia = "opcional?"
2373porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libvidstab (configure:291), que sólo habilita dos filtros de estabilización de vídeo: vidstabdetect y vidstabtransform"
2374perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2375piden = ["ffmpeg"]
2376
2377[candidato."w3m"]
2378veredicto = "opcional"
2379sugerencia = "opcional?"
2380porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
2381perfiles = ["escritorio-kde", "escritorio-mirada", "escritorio-sway"]
2382piden = ["linux-pam"]
2383
2384[candidato."wayland-scanner"]
2385veredicto = "provisto"
2386sugerencia = "hueco?"
2387provee = "wayland"
2388porque = "nixpkgs lo separa en un paquete propio; acá lo da la receta `wayland` (verificado en el store)"
2389perfiles = ["escritorio-kde"]
2390piden = ["kscreenlocker", "libxkbcommon", "mako", "mesa", "qtbase", "wayland", "wayland-protocols"]
2391ausente = true # ya no aparece en el último barrido de la frontera
2392
2393[candidato."webkitgtk"]
2394veredicto = "opcional"
2395porque = "lo piden 2 recetas"
2396perfiles = ["escritorio-gnome"]
2397piden = ["evolution-data-server", "gnome-shell"]
2398
2399[candidato."webrtc-audio-processing"]
2400veredicto = "opcional"
2401porque = "lo piden 2 recetas"
2402perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2403piden = ["pipewire", "pulseaudio"]
2404
2405[candidato."websocket++"]
2406veredicto = "opcional"
2407sugerencia = "opcional?"
2408porque = "dep del plugin obs-websocket, que NO se construye: la receta lo neutraliza con `touch plugins/obs-websocket/CMakeLists.txt` y el artefacto sellado lo confirma — usr/lib/obs-plugins no tiene obs-websocket.so. websocket++ es su implementación del protocolo"
2409perfiles = ["escritorio-kde"]
2410piden = ["obs-studio"]
2411
2412[candidato."x265"]
2413veredicto = "opcional"
2414sugerencia = "opcional?"
2415porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libx265. ⚠ Se pierde CODIFICAR HEVC; el decoder nativo está en el artefacto sellado. Y la codificación H.264 del escritorio no pasa por acá: obs-studio enlaza x264 —que SÍ está en el catálogo— por su propio plugin obs-x264"
2416perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2417piden = ["ffmpeg"]
2418
2419[candidato."xapian"]
2420veredicto = "opcional"
2421sugerencia = "opcional?"
2422porque = "⚠ DESFASE DE VERSIÓN: AppStream 1.0.5 —la que pinea la receta— no la nombra en ningún meson (grep sobre el árbol entero). Sale de una expresión de nixpkgs más nueva"
2423perfiles = ["escritorio-gnome"]
2424piden = ["appstream"]
2425
2426[candidato."xclip"]
2427veredicto = "opcional"
2428sugerencia = "opcional?"
2429porque = "X11 heredado: el escritorio es Wayland"
2430perfiles = ["cli", "escritorio-sway"]
2431piden = ["gitui"]
2432
2433[candidato."xdg-desktop-portal-kde"]
2434veredicto = "pendiente"
2435sugerencia = "opcional?"
2436porque = "lo pide una sola receta (kinfocenter); mirá si es una feature opcional"
2437perfiles = ["escritorio-kde"]
2438piden = ["kinfocenter"]
2439
2440[candidato."xf86-input-evdev"]
2441veredicto = "opcional"
2442sugerencia = "opcional?"
2443porque = "el otro driver de entrada de Xorg, misma familia que xf86-input-libinput: son drivers del SERVIDOR X, y la distro no corre uno (Xwayland no carga drivers xf86-input)"
2444perfiles = ["escritorio-kde"]
2445piden = ["plasma-desktop"]
2446
2447[candidato."xf86-input-libinput"]
2448veredicto = "opcional"
2449sugerencia = "opcional?"
2450porque = "CMakeLists.txt:242 la busca por pkg-config (`xorg-libinput`) para encender HAVE_XORGLIBINPUT, que es el KCM de ratón/touchpad de X11. La distro es Wayland-only y plasma-desktop va con X11=OFF: la entrada la maneja kwin por libinput"
2451perfiles = ["escritorio-kde"]
2452piden = ["plasma-desktop"]
2453
2454[candidato."xkbcomp"]
2455veredicto = "opcional"
2456sugerencia = "opcional?"
2457porque = "X11 heredado: el escritorio es Wayland"
2458perfiles = ["escritorio-kde", "escritorio-mirada"]
2459piden = ["libxkbcommon"]
2460ausente = true # ya no aparece en el último barrido de la frontera
2461
2462[candidato."xmlto"]
2463veredicto = "opcional"
2464porque = "tooling de docs/tests/build que nixpkgs usa y nuestras recetas no"
2465perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
2466piden = ["appstream", "git", "wayland"]
2467
2468[candidato."xorg-server"]
2469veredicto = "opcional"
2470porque = "lo piden 2 recetas"
2471perfiles = ["escritorio-gnome", "escritorio-kde"]
2472piden = ["mutter", "plasma-desktop"]
2473
2474[candidato."xvfb"]
2475veredicto = "opcional"
2476sugerencia = "opcional?"
2477porque = "X11 heredado: el escritorio es Wayland"
2478perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
2479piden = ["libxkbcommon"]
2480
2481[candidato."xvfb-run"]
2482veredicto = "opcional"
2483sugerencia = "hueco?"
2484porque = "lo piden 4 recetas de la imagen — difícil que sea accesorio"
2485perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-sway"]
2486piden = ["girara", "gjs", "libadwaita", "mutter"]
2487
2488[candidato."xvidcore"]
2489veredicto = "opcional"
2490sugerencia = "opcional?"
2491porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libxvid, un encoder MPEG-4 ASP que además es REDUNDANTE: el artefacto sellado ya trae «MPEG4 encoder» nativo (medido)"
2492perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2493piden = ["ffmpeg"]
2494
2495[candidato."xwayland"]
2496veredicto = "provisto"
2497sugerencia = "opcional?"
2498provee = "xwayland"
2499porque = "sin él NINGUNA app X11 corre en el escritorio Wayland. Gap de RUNTIME"
2500perfiles = ["escritorio-kde"]
2501piden = ["kwin"]
2502ausente = true # ya no aparece en el último barrido de la frontera
2503
2504[candidato."xxhash"]
2505veredicto = "opcional"
2506sugerencia = "opcional?"
2507porque = "nixpkgs la habilita; ninguna receta de hammer la necesitó para construir (todas las que la piden ya están selladas)"
2508perfiles = ["cli"]
2509piden = ["rsync"]
2510ausente = true # ya no aparece en el último barrido de la frontera
2511
2512[candidato."yasm"]
2513veredicto = "pendiente"
2514sugerencia = "opcional?"
2515porque = "lo pide una sola receta (libass); mirá si es una feature opcional"
2516perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2517piden = ["libass"]
2518
2519[candidato."zimg"]
2520veredicto = "opcional"
2521sugerencia = "opcional?"
2522porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libzimg, que sólo agrega el filtro `zscale`. El escalado de la distro lo hace libswscale, que va compilada"
2523perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2524piden = ["ffmpeg"]
2525
2526[candidato."zint"]
2527veredicto = "opcional"
2528sugerencia = "opcional?"
2529porque = "zxing-cpp la BUNDLEA: CMakeLists.txt:7 declara ZXING_USE_BUNDLED_ZINT en ON por defecto y core/CMakeLists.txt:532 compila core/src/libzint. La externa sólo entraría apagando esa opción, cosa que la receta no hace"
2530perfiles = ["escritorio-kde"]
2531piden = ["zxing-cpp"]
2532
2533[candidato."zvbi"]
2534veredicto = "opcional"
2535sugerencia = "opcional?"
2536porque = "lo pide una sola receta (ffmpeg); mirá si es una feature opcional"
2537perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
2538piden = ["ffmpeg"]