Etapa G: wayland root cause CONFIRMADO — scanner musl lee input vacío
Verificado que la fuente extraída protocol/wayland.xml está completa (165075 B) y
expat OK ⇒ el wayland-scanner compilado static-musl recibe el XML completo pero
emite headers vacíos y sale 0 (bug de runtime, falla con zig default y 0.13.0). FIX
recomendado: construir el scanner NATIVO (build-time only, no se shippea) y apuntar
libwayland al scanner externo; libwayland-{client,server} sí con musl/zig.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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` | 🔴 **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` | 🔴 **bloqueada — root cause confirmado** | `wayland-scanner` genera headers de protocolo **vacíos** → `WL_SHM_FORMAT_*`/`wl_*` undeclared. **Confirmado (2026-06-27):** la fuente extraída `work/sources/wayland-*/protocol/wayland.xml` está COMPLETA (165075 B), expat OK, no es ordenamiento de samurai (`-j1` falla igual). El scanner recibe el XML completo pero **emite vacío, sale 0** (por stdin expat: «no element found» = lee 0 bytes). ⇒ **bug de runtime del wayland-scanner compilado static-musl** (falla con zig default Y 0.13.0). **FIX:** el scanner es herramienta de build-time (no se shippea) ⇒ construirlo **nativo (host/glibc)** y apuntar libwayland al scanner externo; construir sólo libwayland-{client,server} con musl/zig. Alt: patchear la lectura de input del scanner para musl. |
|
||||
| `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(⚪) |
|
||||
|
||||
|
||||
+12
-9
@@ -3,15 +3,18 @@
|
||||
# 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.
|
||||
# ⚠ BLOQUEADA (2026-06-27) — ROOT CAUSE CONFIRMADO: el build de libwayland falla porque
|
||||
# wayland-scanner genera headers de protocolo VACÍOS (`WL_SHM_FORMAT_ARGB8888`, … undeclared).
|
||||
# Verificado: la fuente extraída `work/sources/wayland-*/protocol/wayland.xml` está COMPLETA
|
||||
# (165075 bytes), expat está OK (estático, sin símbolos glibc-only), y NO es ordenamiento de
|
||||
# samurai (-j1 falla igual). El scanner recibe el XML completo pero emite vacío y sale 0; por
|
||||
# stdin expat dice «no element found» = lee 0 bytes. ⇒ es un BUG DE RUNTIME del wayland-scanner
|
||||
# compilado static-musl en el lab (falla con zig default Y 0.13.0 — no es la regresión de zig).
|
||||
#
|
||||
# FIX recomendado: wayland-scanner es herramienta de BUILD-TIME (no se shippea al rootfs) ⇒
|
||||
# construirlo NATIVO (host/glibc) y apuntar el build de libwayland al scanner externo
|
||||
# (`find_program('wayland-scanner')` / wrap de meson), construyendo sólo libwayland-{client,server}
|
||||
# con musl/zig. Alternativa: patchear la lectura de input del scanner para musl. Ver docs/14 §Estado.
|
||||
name = "wayland"
|
||||
version = "1.25.0"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user