Etapa G: debug wayland-scanner — genera headers vacíos (input vacío a expat)
El build de libwayland falla: wayland-scanner produce headers de protocolo vacíos → wl_*/WL_SHM_FORMAT_* undeclared. Diagnóstico documentado en la receta y en docs/14-mesa-stack.md §Estado: el scanner sale 0 sin emitir; por stdin expat dice 'no element found at line 1 col 0' (input vacío). Descartado samurai-ordering (-j1 falla igual) y libexpat (estático, sin símbolos glibc-only). Resultados inconsistentes entre corridas (wayland.xml 165KB vs vacío) → sospecha de extracción .tar.xz no determinista, lectura de input miscompilada, o estado tocado por el farm. Siguiente: corrida aislada que verifique el tamaño del wayland.xml extraído. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Semantic delta
No definition changed: this change is text, documentation or data.
2 files · +11 −1
- docs/14-mesa-stack.md +1 −1
- recipes/wayland.toml +10 −0
diff --git a/docs/14-mesa-stack.md b/docs/14-mesa-stack.md
index 3ce17548..cd8187fd 100644
--- a/docs/14-mesa-stack.md
+++ b/docs/14-mesa-stack.md
@@ -66,7 +66,7 @@ Construidas y selladas en el store (`hammer --store store build recipes/<x>.toml
| `meson` | 🟢 **built** | Python puro: copia `mesonbuild/`+wrapper, sin wheel/gpep517; `python3` runtime-dep |
| `libdrm` | 🟢 **built** | core-only (todas las GPU helper disabled) → evita libpciaccess; iris usa libdrm core |
| `seatd` | 🟢 **built** | `-Dwerror=false` (musl `CMSG_NXTHDR` dispara `-Wsign-compare`); logind disabled, backend seatd |
-| `wayland` | 🟡 **WIP** | falla: `wl_callback_add_listener`/`wl_registry_interface` undeclared → los headers que genera `wayland-scanner` no aparecen al compilar libwayland. (Descartado: no es libexpat — en hammer es estático `libexpat.a`, el scanner lo linkea estático.) Falta debug con el `meson-log` del sandbox: ¿el custom_target del scanner corre antes del compile?, ¿el include dir generado está en el `-I`? Probar sin `-Ddefault_library=both`. |
+| `wayland` | 🔴 **bloqueada** | `wayland-scanner` genera headers de protocolo **vacíos** → `wl_*`/`WL_SHM_FORMAT_*` undeclared al compilar libwayland. Debug (2026-06-27): el scanner corre, **sale 0, no emite nada**; por stdin, expat reporta «no element found at line 1 col 0» = recibe **input vacío**. Descartado: ordenamiento de samurai (falla con `-j1`), libexpat (estático, sin símbolos glibc-only). Resultados **inconsistentes** entre corridas (una vez `protocol/wayland.xml`=165 KB, otra vacío). Hipótesis vivas: (a) extracción del tarball `.tar.xz` truncada/no determinista en el lab, (b) scanner musl con lectura de input miscompilada, (c) estado compartido tocado por una corrida previa del farm (borró `recipes/incoming/`). **Siguiente paso:** corrida aislada (sin farm) que verifique el tamaño de `protocol/wayland.xml` extraído y trace la lectura del scanner. |
| `wayland-protocols` | ⏸ **bloqueada** | build-depende de wayland (necesita wayland-scanner) |
| `mesa` | 🟡 **pendiente** | recortar a iris-only (sin LLVM/Vulkan/X11); depende de libdrm✓+wayland+wayland-protocols+expat✓+zlib✓+zstd✓+python3✓+mako(⚪) |
diff --git a/recipes/wayland.toml b/recipes/wayland.toml
index 592f9883..2471d27d 100644
--- a/recipes/wayland.toml
+++ b/recipes/wayland.toml
@@ -2,6 +2,16 @@
# (plataforma wayland). Proyecto meson. Sin docs/tests; sin dtd_validation para no arrastrar
# libxml2. Core enlaza libffi; wayland-scanner usa expat (ambos ya en hammer). zig 0.13.0 por el
# patrón musl (evita miscompilación del zig default). link=dynamic: shared libs.
+#
+# ⚠ BLOQUEADA (2026-06-27): el build de libwayland falla porque wayland-scanner genera
+# headers de protocolo VACÍOS (`wl_callback_add_listener`, `WL_SHM_FORMAT_ARGB8888`, …
+# undeclared). Diagnóstico: el scanner corre y sale 0 pero no emite nada; alimentado por stdin
+# expat reporta «no element found at line 1 col 0» = recibe input vacío. Resultados
+# INCONSISTENTES entre corridas (una vez protocol/wayland.xml medía 165 KB, otra parecía vacío)
+# + un proceso de la granja concurrente que muta el área de build compartida (ya borró
+# recipes/incoming/ y mete ruido en los logs). Falta una corrida AISLADA (farm detenido) para
+# discriminar: (a) extracción de fuente truncada, (b) scanner musl con lectura de input
+# miscompilada, (c) interferencia del farm. Ver docs/14-mesa-stack.md §Estado de build.
name = "wayland"
version = "1.25.0"