Files
takana/docs/state/build-state.html
T
sergioandClaude Opus 4.8 a27d9a94a4 catálogo objetivo P2: estado wanted + membresía de perfil en el grafo
El grafo cruza ahora el corpus con el manifiesto de objetivo:

· estado `wanted` — una raíz declarada sin receta se materializa como nodo de
  frontera. Se crea ANTES de buscar huérfanas a propósito: un objetivo declarado
  no es una arista colgando, así `--check` conserva su significado (verificado:
  exit 0, grafo CIERRA, topo OK). `wanted` ≠ `unhashable`.
· campo `perfiles[]` por nodo — qué imágenes lo alcanzan desde sus raíces.
· bloque `by_profile` — el "cuánto falta", POR IMAGEN.

Primeros números, derivados de raíces y no de listas a mano:
   base               51/51   listo
   cli                74/74   listo
   escritorio-mirada  27/31   (falta libinput, mesa-swrast, mirada-{compositor,greeter})
   escritorio-kde     85/162  faltan 77   ← de 7 raíces, antes ilegible
   674 recetas no las alcanza NINGUNA imagen (catálogo, no distro)

La clausura es COTA INFERIOR mientras haya nodos `wanted`: sus deps no se
conocen hasta construirlos (o sembrarlas, P3). Está documentado en el header.

`totals.recipes` sigue contando sólo recetas con fichero (los consumidores lo
leen como tamaño del corpus); `totals.nodes` incluye la frontera. La vista HTML
regenera sin cambios de contrato.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 17:43:40 -04:00

314 lines
40 KiB
HTML

<style>
:root{
--bg:#eef0f3; --panel:#ffffff; --panel-2:#f6f7f9; --ink:#1b1e24; --ink-2:#5b636f;
--line:#dce0e6; --steel:#4a7291; --ember:#dd6b3d;
--sealed:#3f8f61; --debt:#bf922f; --never:#8f6234; --unhashable:#bb443c;
--sealed-bg:#e7f1eb; --debt-bg:#f6efdc; --never-bg:#efe6da; --unhashable-bg:#f4e2e0;
}
@media (prefers-color-scheme:dark){:root{
--bg:#12151a; --panel:#1a1e25; --panel-2:#20252e; --ink:#e7eaef; --ink-2:#98a1af;
--line:#2a303a; --steel:#7aa6c8; --ember:#e97d4f;
--sealed:#59b483; --debt:#d8b054; --never:#b98a54; --unhashable:#d76258;
--sealed-bg:#182a20; --debt-bg:#2a2617; --never-bg:#271f16; --unhashable-bg:#2c1a19;
}}
:root[data-theme="light"]{
--bg:#eef0f3; --panel:#ffffff; --panel-2:#f6f7f9; --ink:#1b1e24; --ink-2:#5b636f;
--line:#dce0e6; --steel:#4a7291; --ember:#dd6b3d;
--sealed:#3f8f61; --debt:#bf922f; --never:#8f6234; --unhashable:#bb443c;
--sealed-bg:#e7f1eb; --debt-bg:#f6efdc; --never-bg:#efe6da; --unhashable-bg:#f4e2e0;
}
:root[data-theme="dark"]{
--bg:#12151a; --panel:#1a1e25; --panel-2:#20252e; --ink:#e7eaef; --ink-2:#98a1af;
--line:#2a303a; --steel:#7aa6c8; --ember:#e97d4f;
--sealed:#59b483; --debt:#d8b054; --never:#b98a54; --unhashable:#d76258;
--sealed-bg:#182a20; --debt-bg:#2a2617; --never-bg:#271f16; --unhashable-bg:#2c1a19;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;line-height:1.5;
-webkit-font-smoothing:antialiased}
.mono{font-family:ui-monospace,"SF Mono","JetBrains Mono","Cascadia Code",Menlo,monospace}
.wrap{max-width:1180px;margin:0 auto;padding:clamp(20px,4vw,48px)}
header{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 20px;margin-bottom:28px}
h1{font-size:clamp(1.5rem,3vw,2.1rem);margin:0;font-weight:680;letter-spacing:-.02em}
h1 .mark{color:var(--ember)}
.sub{color:var(--ink-2);font-size:.9rem}
.sub .mono{color:var(--ink)}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:650;
color:var(--ink-2);margin:0 0 10px}
section{margin-bottom:34px}
/* progress */
.progress{height:34px;display:flex;border-radius:8px;overflow:hidden;border:1px solid var(--line);
background:var(--panel)}
.seg{display:block;height:100%}
.s-sealed{background:var(--sealed)} .s-debt{background:var(--debt)}
.s-never{background:var(--never)} .s-unhashable{background:var(--unhashable)}
.legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px;font-size:.82rem;color:var(--ink-2)}
.legend b{color:var(--ink);font-weight:600}
.legend .k{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;
vertical-align:baseline}
/* tiles */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:640px){.tiles{grid-template-columns:repeat(2,1fr)}}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px 18px;
border-top:3px solid var(--line)}
.tile.s-sealed{border-top-color:var(--sealed)} .tile.s-debt{border-top-color:var(--debt)}
.tile.s-never{border-top-color:var(--never)} .tile.s-unhashable{border-top-color:var(--unhashable)}
.tile-n{font-size:2rem;font-weight:680;font-family:ui-monospace,monospace;line-height:1;
font-variant-numeric:tabular-nums}
.tile-l{font-size:.82rem;color:var(--ink-2);margin-top:6px}
.tile-p{font-size:.78rem;color:var(--ink-2);margin-top:2px;font-family:ui-monospace,monospace}
/* class grid */
.cls-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.cls{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:15px 16px}
.cls-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.cls-name{font-weight:620} .cls-tot{font-family:ui-monospace,monospace;color:var(--ink-2);
font-variant-numeric:tabular-nums}
.bar{height:9px;display:flex;border-radius:5px;overflow:hidden;background:var(--panel-2)}
.cls-foot{display:flex;justify-content:space-between;margin-top:9px;font-size:.78rem}
.cls-foot .ok{color:var(--sealed)} .cls-foot .warn{color:var(--debt)}
.cls-foot .muted{color:var(--ink-2)}
/* debt table */
.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.controls input{background:var(--panel);border:1px solid var(--line);color:var(--ink);
padding:8px 12px;border-radius:8px;font-size:.9rem;min-width:200px;font-family:ui-monospace,monospace}
.controls input:focus{outline:2px solid var(--steel);outline-offset:1px}
.fbtn{background:var(--panel);border:1px solid var(--line);color:var(--ink-2);padding:7px 13px;
border-radius:999px;font-size:.8rem;cursor:pointer;font-weight:550}
.fbtn[aria-pressed="true"]{background:var(--steel);border-color:var(--steel);color:#fff}
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
table{border-collapse:collapse;width:100%;font-size:.88rem}
th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);
font-weight:600;padding:11px 14px;border-bottom:1px solid var(--line);background:var(--panel-2);
position:sticky;top:0}
td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.drow:last-child td{border-bottom:none}
.c-name{font-family:ui-monospace,monospace;font-weight:550;white-space:nowrap}
.c-name .ver{color:var(--ink-2);font-weight:400;font-size:.82em;margin-left:5px}
.s-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;
vertical-align:middle}
.tag{font-size:.72rem;padding:2px 8px;border-radius:999px;font-weight:600;white-space:nowrap}
.t-c{background:var(--panel-2);color:var(--ink-2)} .t-go{background:#1f3a4d33;color:var(--steel)}
.t-rust{background:#dd6b3d22;color:var(--ember)} .t-gui{background:#8f623422;color:var(--never)}
.t-kernel{background:#bb443c22;color:var(--unhashable)}
.ready{color:var(--sealed);font-weight:600;font-size:.8rem}
.impact{display:inline-block;background:var(--ember);color:#fff;font-family:ui-monospace,monospace;
font-size:.72rem;font-weight:650;padding:1px 6px;border-radius:999px;margin-left:4px}
.blocked{color:var(--debt);font-weight:600;font-size:.8rem;font-family:ui-monospace,monospace}
.c-deps{max-width:560px}
.chip{display:inline-block;font-family:ui-monospace,monospace;font-size:.74rem;padding:2px 7px;
border-radius:5px;margin:2px 3px 2px 0;border:1px solid transparent}
.chip.s-sealed{background:var(--sealed-bg);color:var(--sealed)}
.chip.s-debt{background:var(--debt-bg);color:var(--debt);border-color:var(--debt)}
.chip.s-never{background:var(--never-bg);color:var(--never);border-color:var(--never)}
.chip.s-unhashable{background:var(--unhashable-bg);color:var(--unhashable);border-color:var(--unhashable)}
.chip.empty{color:var(--ink-2);font-style:italic}
.hint{color:var(--ink-2);font-size:.82rem;margin:0 0 14px}
.count{color:var(--ink-2);font-size:.82rem;margin-left:auto;font-family:ui-monospace,monospace}
footer{color:var(--ink-2);font-size:.78rem;margin-top:36px;padding-top:16px;
border-top:1px solid var(--line);line-height:1.7}
footer .mono{color:var(--ink)}
@media(prefers-reduced-motion:no-preference){.seg,.fbtn{transition:.15s}}
</style>
<div class="wrap">
<header>
<h1>estado del build <span class="mark">·</span> <span class="mono">hammer</span></h1>
<div class="sub">768 recetas · grafo cierra sin ciclos · grafo cerrado · <span class="mono">2026-07-22 21:43 UTC</span></div>
</header>
<section>
<p class="eyebrow">avance del corpus</p>
<div class="progress"><span class="seg s-sealed" style="width:97.91666666666667%" title="sellado al día: 752"></span><span class="seg s-debt" style="width:1.8229166666666667%" title="deuda de rebuild: 14"></span><span class="seg s-never" style="width:0.2604166666666667%" title="nunca construida: 2"></span></div>
<div class="legend">
<span><span class="k s-sealed"></span><b>752</b> sellado al día</span>
<span><span class="k s-debt"></span><b>14</b> deuda de rebuild</span>
<span><span class="k s-never"></span><b>2</b> nunca construida</span>
</div>
</section>
<section>
<div class="tiles"><div class="tile s-sealed">
<div class="tile-n">752</div>
<div class="tile-l">sellado al día</div>
<div class="tile-p">97.9%</div>
</div><div class="tile s-debt">
<div class="tile-n">14</div>
<div class="tile-l">deuda de rebuild</div>
<div class="tile-p">1.8%</div>
</div><div class="tile s-never">
<div class="tile-n">2</div>
<div class="tile-l">nunca construida</div>
<div class="tile-p">0.3%</div>
</div><div class="tile s-unhashable">
<div class="tile-n">0</div>
<div class="tile-l">ilegible</div>
<div class="tile-p">0.0%</div>
</div></div>
</section>
<section>
<p class="eyebrow">dónde está la deuda</p>
<div class="cls-grid"><div class="cls">
<div class="cls-head"><span class="cls-name">Go</span>
<span class="cls-tot">362</span></div>
<div class="bar"><span class="seg s-sealed" style="width:100.0%"></span></div>
<div class="cls-foot"><span class="ok">362 al día</span>
<span class="muted">0 en deuda</span></div>
</div><div class="cls">
<div class="cls-head"><span class="cls-name">Rust</span>
<span class="cls-tot">226</span></div>
<div class="bar"><span class="seg s-sealed" style="width:99.5575221238938%"></span><span class="seg s-debt" style="width:0.4424778761061947%"></span></div>
<div class="cls-foot"><span class="ok">225 al día</span>
<span class="warn">1 en deuda</span></div>
</div><div class="cls">
<div class="cls-head"><span class="cls-name">C</span>
<span class="cls-tot">143</span></div>
<div class="bar"><span class="seg s-sealed" style="width:97.9020979020979%"></span><span class="seg s-debt" style="width:0.6993006993006993%"></span><span class="seg s-never" style="width:1.3986013986013985%"></span></div>
<div class="cls-foot"><span class="ok">140 al día</span>
<span class="warn">3 en deuda</span></div>
</div><div class="cls">
<div class="cls-head"><span class="cls-name">GUI</span>
<span class="cls-tot">31</span></div>
<div class="bar"><span class="seg s-sealed" style="width:61.29032258064516%"></span><span class="seg s-debt" style="width:38.70967741935484%"></span></div>
<div class="cls-foot"><span class="ok">19 al día</span>
<span class="warn">12 en deuda</span></div>
</div><div class="cls">
<div class="cls-head"><span class="cls-name">kernel</span>
<span class="cls-tot">6</span></div>
<div class="bar"><span class="seg s-sealed" style="width:100.0%"></span></div>
<div class="cls-foot"><span class="ok">6 al día</span>
<span class="muted">0 en deuda</span></div>
</div></div>
</section>
<section>
<p class="eyebrow">huecos, en orden de ataque</p>
<p class="hint">Cada receta en deuda con sus deps de build coloreadas por estado. Una fila
<b style="color:var(--sealed)">lista</b> tiene todas sus deps al día ⇒ se puede construir ya;
el pastilla <span class="impact">↑N</span> es cuántas otras en deuda desbloquea (ordenadas por
ahí: construí primero las de más impacto). Una <b style="color:var(--debt)">espera N</b> depende
de N recetas que también están en deuda. 8 listas ahora.</p>
<div class="controls">
<button class="fbtn" data-cls="all" aria-pressed="true">todas</button><button class="fbtn" data-cls="rust" aria-pressed="false">Rust (1)</button><button class="fbtn" data-cls="c" aria-pressed="false">C (3)</button><button class="fbtn" data-cls="gui" aria-pressed="false">GUI (12)</button>
<button class="fbtn" id="ready" data-ready aria-pressed="false">sólo listas</button>
<input id="q" placeholder="buscar receta…" spellcheck="false" aria-label="buscar receta">
<span class="count" id="count">16 en deuda</span>
</div>
<div class="tbl-wrap">
<table>
<thead><tr><th>receta</th><th>clase</th><th>estado</th><th>deps de build</th></tr></thead>
<tbody><tr class="drow" data-cls="gui" data-ready="1" data-name="gtk4" data-unblocks="6">
<td class="c-name"><span class="s-dot s-debt"></span>gtk4 <span class="ver">4.18.6</span></td>
<td class="c-cls"><span class="tag t-gui">GUI</span></td>
<td class="c-badge"><span class="ready">lista</span> <span class="impact" title="desbloquea 6 recetas en deuda">↑6</span></td>
<td class="c-deps"><span class="chip s-sealed" title="sellado al día">meson</span><span class="chip s-sealed" title="sellado al día">samurai</span><span class="chip s-sealed" title="sellado al día">python3</span><span class="chip s-sealed" title="sellado al día">pkgconf</span><span class="chip s-sealed" title="sellado al día">glib</span><span class="chip s-sealed" title="sellado al día">cairo</span><span class="chip s-sealed" title="sellado al día">pango</span><span class="chip s-sealed" title="sellado al día">gdk-pixbuf</span><span class="chip s-sealed" title="sellado al día">graphene</span><span class="chip s-sealed" title="sellado al día">libepoxy</span><span class="chip s-sealed" title="sellado al día">wayland</span><span class="chip s-sealed" title="sellado al día">wayland-protocols</span><span class="chip s-sealed" title="sellado al día">libxkbcommon</span><span class="chip s-sealed" title="sellado al día">libdrm</span><span class="chip s-sealed" title="sellado al día">fontconfig</span><span class="chip s-sealed" title="sellado al día">harfbuzz</span><span class="chip s-sealed" title="sellado al día">fribidi</span><span class="chip s-sealed" title="sellado al día">libpng</span><span class="chip s-sealed" title="sellado al día">pixman</span><span class="chip s-sealed" title="sellado al día">freetype</span><span class="chip s-sealed" title="sellado al día">expat</span><span class="chip s-sealed" title="sellado al día">libffi</span><span class="chip s-sealed" title="sellado al día">pcre2</span><span class="chip s-sealed" title="sellado al día">zlib</span><span class="chip s-sealed" title="sellado al día">libjpeg-turbo</span><span class="chip s-sealed" title="sellado al día">libtiff</span><span class="chip s-sealed" title="sellado al día">mesa</span></td>
</tr><tr class="drow" data-cls="gui" data-ready="1" data-name="fcft" data-unblocks="1">
<td class="c-name"><span class="s-dot s-debt"></span>fcft <span class="ver">3.3.3</span></td>
<td class="c-cls"><span class="tag t-gui">GUI</span></td>
<td class="c-badge"><span class="ready">lista</span> <span class="impact" title="desbloquea 1 recetas en deuda">↑1</span></td>
<td class="c-deps"><span class="chip s-sealed" title="sellado al día">tllist</span><span class="chip s-sealed" title="sellado al día">utf8proc</span><span class="chip s-sealed" title="sellado al día">freetype</span><span class="chip s-sealed" title="sellado al día">fontconfig</span><span class="chip s-sealed" title="sellado al día">harfbuzz</span><span class="chip s-sealed" title="sellado al día">pixman</span><span class="chip s-sealed" title="sellado al día">libpng</span><span class="chip s-sealed" title="sellado al día">zlib</span><span class="chip s-sealed" title="sellado al día">expat</span><span class="chip s-sealed" title="sellado al día">meson</span><span class="chip s-sealed" title="sellado al día">samurai</span><span class="chip s-sealed" title="sellado al día">python3</span><span class="chip s-sealed" title="sellado al día">pkgconf</span><span class="chip s-sealed" title="sellado al día">linux-headers</span></td>
</tr><tr class="drow" data-cls="gui" data-ready="1" data-name="libinput" data-unblocks="1">
<td class="c-name"><span class="s-dot s-debt"></span>libinput <span class="ver">1.27.1</span></td>
<td class="c-cls"><span class="tag t-gui">GUI</span></td>
<td class="c-badge"><span class="ready">lista</span> <span class="impact" title="desbloquea 1 recetas en deuda">↑1</span></td>
<td class="c-deps"><span class="chip s-sealed" title="sellado al día">meson</span><span class="chip s-sealed" title="sellado al día">samurai</span><span class="chip s-sealed" title="sellado al día">python3</span><span class="chip s-sealed" title="sellado al día">pkgconf</span><span class="chip s-sealed" title="sellado al día">libudev-zero</span><span class="chip s-sealed" title="sellado al día">libevdev</span><span class="chip s-sealed" title="sellado al día">mtdev</span></td>
</tr><tr class="drow" data-cls="c" data-ready="1" data-name="dwarves" data-unblocks="0">
<td class="c-name"><span class="s-dot s-never"></span>dwarves <span class="ver">1.30</span></td>
<td class="c-cls"><span class="tag t-c">C</span></td>
<td class="c-badge"><span class="ready">lista</span></td>
<td class="c-deps"><span class="chip s-sealed" title="sellado al día">busybox</span><span class="chip s-sealed" title="sellado al día">make</span><span class="chip s-sealed" title="sellado al día">cmake</span><span class="chip s-sealed" title="sellado al día">elfutils</span><span class="chip s-sealed" title="sellado al día">zlib</span></td>
</tr><tr class="drow" data-cls="c" data-ready="1" data-name="llimphi-counter" data-unblocks="0">
<td class="c-name"><span class="s-dot s-never"></span>llimphi-counter <span class="ver">0.1.0</span></td>
<td class="c-cls"><span class="tag t-c">C</span></td>
<td class="c-badge"><span class="ready">lista</span></td>
<td class="c-deps"><span class="chip empty">sin deps de build</span></td>
</tr><tr class="drow" data-cls="gui" data-ready="1" data-name="mesa-llvmpipe" data-unblocks="0">
<td class="c-name"><span class="s-dot s-debt"></span>mesa-llvmpipe <span class="ver">24.0.9</span></td>
<td class="c-cls"><span class="tag t-gui">GUI</span></td>
<td class="c-badge"><span class="ready">lista</span></td>
<td class="c-deps"><span class="chip s-sealed" title="sellado al día">llvm18</span><span class="chip s-sealed" title="sellado al día">meson</span><span class="chip s-sealed" title="sellado al día">samurai</span><span class="chip s-sealed" title="sellado al día">python3</span><span class="chip s-sealed" title="sellado al día">pkgconf</span><span class="chip s-sealed" title="sellado al día">flex</span><span class="chip s-sealed" title="sellado al día">bison</span><span class="chip s-sealed" title="sellado al día">mako</span><span class="chip s-sealed" title="sellado al día">markupsafe</span><span class="chip s-sealed" title="sellado al día">packaging</span><span class="chip s-sealed" title="sellado al día">libdrm</span><span class="chip s-sealed" title="sellado al día">wayland</span><span class="chip s-sealed" title="sellado al día">wayland-protocols</span><span class="chip s-sealed" title="sellado al día">expat</span><span class="chip s-sealed" title="sellado al día">zlib</span><span class="chip s-sealed" title="sellado al día">zstd</span><span class="chip s-sealed" title="sellado al día">libffi</span></td>
</tr><tr class="drow" data-cls="gui" data-ready="1" data-name="mesa-swrast" data-unblocks="0">
<td class="c-name"><span class="s-dot s-debt"></span>mesa-swrast <span class="ver">24.0.9</span></td>
<td class="c-cls"><span class="tag t-gui">GUI</span></td>
<td class="c-badge"><span class="ready">lista</span></td>
<td class="c-deps"><span class="chip s-sealed" title="sellado al día">meson</span><span class="chip s-sealed" title="sellado al día">samurai</span><span class="chip s-sealed" title="sellado al día">python3</span><span class="chip s-sealed" title="sellado al día">pkgconf</span><span class="chip s-sealed" title="sellado al día">flex</span><span class="chip s-sealed" title="sellado al día">bison</span><span class="chip s-sealed" title="sellado al día">mako</span><span class="chip s-sealed" title="sellado al día">markupsafe</span><span class="chip s-sealed" title="sellado al día">packaging</span><span class="chip s-sealed" title="sellado al día">libdrm</span><span class="chip s-sealed" title="sellado al día">wayland</span><span class="chip s-sealed" title="sellado al día">wayland-protocols</span><span class="chip s-sealed" title="sellado al día">expat</span><span class="chip s-sealed" title="sellado al día">zlib</span><span class="chip s-sealed" title="sellado al día">zstd</span><span class="chip s-sealed" title="sellado al día">libffi</span></td>
</tr><tr class="drow" data-cls="rust" data-ready="1" data-name="mirada-greeter" data-unblocks="0">
<td class="c-name"><span class="s-dot s-debt"></span>mirada-greeter <span class="ver">0.0.1</span></td>
<td class="c-cls"><span class="tag t-rust">Rust</span></td>
<td class="c-badge"><span class="ready">lista</span></td>
<td class="c-deps"><span class="chip s-sealed" title="sellado al día">mesa</span><span class="chip s-sealed" title="sellado al día">wayland</span><span class="chip s-sealed" title="sellado al día">wayland-protocols</span><span class="chip s-sealed" title="sellado al día">libdrm</span><span class="chip s-sealed" title="sellado al día">expat</span><span class="chip s-sealed" title="sellado al día">zlib</span><span class="chip s-sealed" title="sellado al día">zstd</span><span class="chip s-sealed" title="sellado al día">libffi</span><span class="chip s-sealed" title="sellado al día">pkgconf</span><span class="chip s-sealed" title="sellado al día">linux-pam</span></td>
</tr><tr class="drow" data-cls="gui" data-ready="0" data-name="libadwaita" data-unblocks="3">
<td class="c-name"><span class="s-dot s-debt"></span>libadwaita <span class="ver">1.7.6</span></td>
<td class="c-cls"><span class="tag t-gui">GUI</span></td>
<td class="c-badge"><span class="blocked">espera 1</span></td>
<td class="c-deps"><span class="chip s-sealed" title="sellado al día">meson</span><span class="chip s-sealed" title="sellado al día">samurai</span><span class="chip s-sealed" title="sellado al día">python3</span><span class="chip s-sealed" title="sellado al día">pkgconf</span><span class="chip s-sealed" title="sellado al día">sassc</span><span class="chip s-sealed" title="sellado al día">appstream</span><span class="chip s-sealed" title="sellado al día">libyaml</span><span class="chip s-sealed" title="sellado al día">curl</span><span class="chip s-sealed" title="sellado al día">openssl</span><span class="chip s-sealed" title="sellado al día">libxmlb</span><span class="chip s-sealed" title="sellado al día">libxml2</span><span class="chip s-sealed" title="sellado al día">zstd</span><span class="chip s-debt" title="deuda de rebuild">gtk4</span><span class="chip s-sealed" title="sellado al día">pango</span><span class="chip s-sealed" title="sellado al día">gdk-pixbuf</span><span class="chip s-sealed" title="sellado al día">cairo</span><span class="chip s-sealed" title="sellado al día">graphene</span><span class="chip s-sealed" title="sellado al día">glib</span><span class="chip s-sealed" title="sellado al día">harfbuzz</span><span class="chip s-sealed" title="sellado al día">fribidi</span><span class="chip s-sealed" title="sellado al día">fontconfig</span><span class="chip s-sealed" title="sellado al día">freetype</span><span class="chip s-sealed" title="sellado al día">pixman</span><span class="chip s-sealed" title="sellado al día">libpng</span><span class="chip s-sealed" title="sellado al día">expat</span><span class="chip s-sealed" title="sellado al día">libjpeg-turbo</span><span class="chip s-sealed" title="sellado al día">libtiff</span><span class="chip s-sealed" title="sellado al día">libepoxy</span><span class="chip s-sealed" title="sellado al día">wayland</span><span class="chip s-sealed" title="sellado al día">wayland-protocols</span><span class="chip s-sealed" title="sellado al día">libxkbcommon</span><span class="chip s-sealed" title="sellado al día">libdrm</span><span class="chip s-sealed" title="sellado al día">pcre2</span><span class="chip s-sealed" title="sellado al día">libffi</span><span class="chip s-sealed" title="sellado al día">zlib</span><span class="chip s-sealed" title="sellado al día">mesa</span></td>
</tr><tr class="drow" data-cls="gui" data-ready="0" data-name="gtksourceview" data-unblocks="2">
<td class="c-name"><span class="s-dot s-debt"></span>gtksourceview <span class="ver">5.16.0</span></td>
<td class="c-cls"><span class="tag t-gui">GUI</span></td>
<td class="c-badge"><span class="blocked">espera 1</span></td>
<td class="c-deps"><span class="chip s-sealed" title="sellado al día">meson</span><span class="chip s-sealed" title="sellado al día">samurai</span><span class="chip s-sealed" title="sellado al día">python3</span><span class="chip s-sealed" title="sellado al día">pkgconf</span><span class="chip s-sealed" title="sellado al día">gettext-tiny</span><span class="chip s-debt" title="deuda de rebuild">gtk4</span><span class="chip s-sealed" title="sellado al día">pango</span><span class="chip s-sealed" title="sellado al día">gdk-pixbuf</span><span class="chip s-sealed" title="sellado al día">cairo</span><span class="chip s-sealed" title="sellado al día">graphene</span><span class="chip s-sealed" title="sellado al día">glib</span><span class="chip s-sealed" title="sellado al día">harfbuzz</span><span class="chip s-sealed" title="sellado al día">fribidi</span><span class="chip s-sealed" title="sellado al día">fontconfig</span><span class="chip s-sealed" title="sellado al día">freetype</span><span class="chip s-sealed" title="sellado al día">pixman</span><span class="chip s-sealed" title="sellado al día">libpng</span><span class="chip s-sealed" title="sellado al día">expat</span><span class="chip s-sealed" title="sellado al día">libxml2</span><span class="chip s-sealed" title="sellado al día">libjpeg-turbo</span><span class="chip s-sealed" title="sellado al día">libtiff</span><span class="chip s-sealed" title="sellado al día">libepoxy</span><span class="chip s-sealed" title="sellado al día">wayland</span><span class="chip s-sealed" title="sellado al día">wayland-protocols</span><span class="chip s-sealed" title="sellado al día">libxkbcommon</span><span class="chip s-sealed" title="sellado al día">libdrm</span><span class="chip s-sealed" title="sellado al día">pcre2</span><span class="chip s-sealed" title="sellado al día">libffi</span><span class="chip s-sealed" title="sellado al día">zlib</span><span class="chip s-sealed" title="sellado al día">mesa</span></td>
</tr><tr class="drow" data-cls="gui" data-ready="0" data-name="foot" data-unblocks="0">
<td class="c-name"><span class="s-dot s-debt"></span>foot <span class="ver">1.27.0</span></td>
<td class="c-cls"><span class="tag t-gui">GUI</span></td>
<td class="c-badge"><span class="blocked">espera 1</span></td>
<td class="c-deps"><span class="chip s-debt" title="deuda de rebuild">fcft</span><span class="chip s-sealed" title="sellado al día">tllist</span><span class="chip s-sealed" title="sellado al día">utf8proc</span><span class="chip s-sealed" title="sellado al día">fontconfig</span><span class="chip s-sealed" title="sellado al día">freetype</span><span class="chip s-sealed" title="sellado al día">harfbuzz</span><span class="chip s-sealed" title="sellado al día">libxkbcommon</span><span class="chip s-sealed" title="sellado al día">ncurses</span><span class="chip s-sealed" title="sellado al día">pixman</span><span class="chip s-sealed" title="sellado al día">wayland</span><span class="chip s-sealed" title="sellado al día">wayland-protocols</span><span class="chip s-sealed" title="sellado al día">libffi</span><span class="chip s-sealed" title="sellado al día">libpng</span><span class="chip s-sealed" title="sellado al día">zlib</span><span class="chip s-sealed" title="sellado al día">expat</span><span class="chip s-sealed" title="sellado al día">meson</span><span class="chip s-sealed" title="sellado al día">samurai</span><span class="chip s-sealed" title="sellado al día">python3</span><span class="chip s-sealed" title="sellado al día">pkgconf</span><span class="chip s-sealed" title="sellado al día">linux-headers</span></td>
</tr><tr class="drow" data-cls="gui" data-ready="0" data-name="gtk4-hello" data-unblocks="0">
<td class="c-name"><span class="s-dot s-debt"></span>gtk4-hello <span class="ver">4.18.6</span></td>
<td class="c-cls"><span class="tag t-gui">GUI</span></td>
<td class="c-badge"><span class="blocked">espera 1</span></td>
<td class="c-deps"><span class="chip s-sealed" title="sellado al día">pkgconf</span><span class="chip s-debt" title="deuda de rebuild">gtk4</span><span class="chip s-sealed" title="sellado al día">pango</span><span class="chip s-sealed" title="sellado al día">gdk-pixbuf</span><span class="chip s-sealed" title="sellado al día">cairo</span><span class="chip s-sealed" title="sellado al día">graphene</span><span class="chip s-sealed" title="sellado al día">glib</span><span class="chip s-sealed" title="sellado al día">harfbuzz</span><span class="chip s-sealed" title="sellado al día">fribidi</span><span class="chip s-sealed" title="sellado al día">fontconfig</span><span class="chip s-sealed" title="sellado al día">freetype</span><span class="chip s-sealed" title="sellado al día">pixman</span><span class="chip s-sealed" title="sellado al día">libpng</span><span class="chip s-sealed" title="sellado al día">expat</span><span class="chip s-sealed" title="sellado al día">libjpeg-turbo</span><span class="chip s-sealed" title="sellado al día">libtiff</span><span class="chip s-sealed" title="sellado al día">libepoxy</span><span class="chip s-sealed" title="sellado al día">wayland</span><span class="chip s-sealed" title="sellado al día">libxkbcommon</span><span class="chip s-sealed" title="sellado al día">libdrm</span><span class="chip s-sealed" title="sellado al día">pcre2</span><span class="chip s-sealed" title="sellado al día">libffi</span><span class="chip s-sealed" title="sellado al día">zlib</span><span class="chip s-sealed" title="sellado al día">mesa</span></td>
</tr><tr class="drow" data-cls="gui" data-ready="0" data-name="mirada-compositor" data-unblocks="0">
<td class="c-name"><span class="s-dot s-debt"></span>mirada-compositor <span class="ver">0.0.1</span></td>
<td class="c-cls"><span class="tag t-gui">GUI</span></td>
<td class="c-badge"><span class="blocked">espera 1</span></td>
<td class="c-deps"><span class="chip s-sealed" title="sellado al día">mesa</span><span class="chip s-sealed" title="sellado al día">wayland</span><span class="chip s-sealed" title="sellado al día">wayland-protocols</span><span class="chip s-sealed" title="sellado al día">libdrm</span><span class="chip s-sealed" title="sellado al día">seatd</span><span class="chip s-sealed" title="sellado al día">linux-pam</span><span class="chip s-debt" title="deuda de rebuild">libinput</span><span class="chip s-sealed" title="sellado al día">libudev-zero</span><span class="chip s-sealed" title="sellado al día">libevdev</span><span class="chip s-sealed" title="sellado al día">mtdev</span><span class="chip s-sealed" title="sellado al día">libxkbcommon</span><span class="chip s-sealed" title="sellado al día">pixman</span><span class="chip s-sealed" title="sellado al día">expat</span><span class="chip s-sealed" title="sellado al día">zlib</span><span class="chip s-sealed" title="sellado al día">zstd</span><span class="chip s-sealed" title="sellado al día">libffi</span><span class="chip s-sealed" title="sellado al día">pkgconf</span></td>
</tr><tr class="drow" data-cls="gui" data-ready="0" data-name="adwaita-hello" data-unblocks="0">
<td class="c-name"><span class="s-dot s-debt"></span>adwaita-hello <span class="ver">1.7.6</span></td>
<td class="c-cls"><span class="tag t-gui">GUI</span></td>
<td class="c-badge"><span class="blocked">espera 2</span></td>
<td class="c-deps"><span class="chip s-sealed" title="sellado al día">pkgconf</span><span class="chip s-debt" title="deuda de rebuild">libadwaita</span><span class="chip s-sealed" title="sellado al día">appstream</span><span class="chip s-sealed" title="sellado al día">libyaml</span><span class="chip s-sealed" title="sellado al día">curl</span><span class="chip s-sealed" title="sellado al día">openssl</span><span class="chip s-sealed" title="sellado al día">libxmlb</span><span class="chip s-sealed" title="sellado al día">libxml2</span><span class="chip s-sealed" title="sellado al día">zstd</span><span class="chip s-debt" title="deuda de rebuild">gtk4</span><span class="chip s-sealed" title="sellado al día">pango</span><span class="chip s-sealed" title="sellado al día">gdk-pixbuf</span><span class="chip s-sealed" title="sellado al día">cairo</span><span class="chip s-sealed" title="sellado al día">graphene</span><span class="chip s-sealed" title="sellado al día">glib</span><span class="chip s-sealed" title="sellado al día">harfbuzz</span><span class="chip s-sealed" title="sellado al día">fribidi</span><span class="chip s-sealed" title="sellado al día">fontconfig</span><span class="chip s-sealed" title="sellado al día">freetype</span><span class="chip s-sealed" title="sellado al día">pixman</span><span class="chip s-sealed" title="sellado al día">libpng</span><span class="chip s-sealed" title="sellado al día">expat</span><span class="chip s-sealed" title="sellado al día">libjpeg-turbo</span><span class="chip s-sealed" title="sellado al día">libtiff</span><span class="chip s-sealed" title="sellado al día">libepoxy</span><span class="chip s-sealed" title="sellado al día">wayland</span><span class="chip s-sealed" title="sellado al día">libxkbcommon</span><span class="chip s-sealed" title="sellado al día">libdrm</span><span class="chip s-sealed" title="sellado al día">pcre2</span><span class="chip s-sealed" title="sellado al día">libffi</span><span class="chip s-sealed" title="sellado al día">zlib</span><span class="chip s-sealed" title="sellado al día">mesa</span></td>
</tr><tr class="drow" data-cls="c" data-ready="0" data-name="hammer-edit" data-unblocks="0">
<td class="c-name"><span class="s-dot s-debt"></span>hammer-edit <span class="ver">1.0.0</span></td>
<td class="c-cls"><span class="tag t-c">C</span></td>
<td class="c-badge"><span class="blocked">espera 3</span></td>
<td class="c-deps"><span class="chip s-sealed" title="sellado al día">pkgconf</span><span class="chip s-debt" title="deuda de rebuild">gtksourceview</span><span class="chip s-debt" title="deuda de rebuild">libadwaita</span><span class="chip s-sealed" title="sellado al día">appstream</span><span class="chip s-sealed" title="sellado al día">libyaml</span><span class="chip s-sealed" title="sellado al día">curl</span><span class="chip s-sealed" title="sellado al día">openssl</span><span class="chip s-sealed" title="sellado al día">libxmlb</span><span class="chip s-sealed" title="sellado al día">libxml2</span><span class="chip s-sealed" title="sellado al día">zstd</span><span class="chip s-debt" title="deuda de rebuild">gtk4</span><span class="chip s-sealed" title="sellado al día">pango</span><span class="chip s-sealed" title="sellado al día">gdk-pixbuf</span><span class="chip s-sealed" title="sellado al día">cairo</span><span class="chip s-sealed" title="sellado al día">graphene</span><span class="chip s-sealed" title="sellado al día">glib</span><span class="chip s-sealed" title="sellado al día">harfbuzz</span><span class="chip s-sealed" title="sellado al día">fribidi</span><span class="chip s-sealed" title="sellado al día">fontconfig</span><span class="chip s-sealed" title="sellado al día">freetype</span><span class="chip s-sealed" title="sellado al día">pixman</span><span class="chip s-sealed" title="sellado al día">libpng</span><span class="chip s-sealed" title="sellado al día">expat</span><span class="chip s-sealed" title="sellado al día">libjpeg-turbo</span><span class="chip s-sealed" title="sellado al día">libtiff</span><span class="chip s-sealed" title="sellado al día">libepoxy</span><span class="chip s-sealed" title="sellado al día">wayland</span><span class="chip s-sealed" title="sellado al día">libxkbcommon</span><span class="chip s-sealed" title="sellado al día">libdrm</span><span class="chip s-sealed" title="sellado al día">pcre2</span><span class="chip s-sealed" title="sellado al día">libffi</span><span class="chip s-sealed" title="sellado al día">zlib</span><span class="chip s-sealed" title="sellado al día">mesa</span></td>
</tr><tr class="drow" data-cls="gui" data-ready="0" data-name="sourceview-hello" data-unblocks="0">
<td class="c-name"><span class="s-dot s-debt"></span>sourceview-hello <span class="ver">5.16.0</span></td>
<td class="c-cls"><span class="tag t-gui">GUI</span></td>
<td class="c-badge"><span class="blocked">espera 3</span></td>
<td class="c-deps"><span class="chip s-sealed" title="sellado al día">pkgconf</span><span class="chip s-debt" title="deuda de rebuild">gtksourceview</span><span class="chip s-debt" title="deuda de rebuild">libadwaita</span><span class="chip s-sealed" title="sellado al día">appstream</span><span class="chip s-sealed" title="sellado al día">libyaml</span><span class="chip s-sealed" title="sellado al día">curl</span><span class="chip s-sealed" title="sellado al día">openssl</span><span class="chip s-sealed" title="sellado al día">libxmlb</span><span class="chip s-sealed" title="sellado al día">libxml2</span><span class="chip s-sealed" title="sellado al día">zstd</span><span class="chip s-debt" title="deuda de rebuild">gtk4</span><span class="chip s-sealed" title="sellado al día">pango</span><span class="chip s-sealed" title="sellado al día">gdk-pixbuf</span><span class="chip s-sealed" title="sellado al día">cairo</span><span class="chip s-sealed" title="sellado al día">graphene</span><span class="chip s-sealed" title="sellado al día">glib</span><span class="chip s-sealed" title="sellado al día">harfbuzz</span><span class="chip s-sealed" title="sellado al día">fribidi</span><span class="chip s-sealed" title="sellado al día">fontconfig</span><span class="chip s-sealed" title="sellado al día">freetype</span><span class="chip s-sealed" title="sellado al día">pixman</span><span class="chip s-sealed" title="sellado al día">libpng</span><span class="chip s-sealed" title="sellado al día">expat</span><span class="chip s-sealed" title="sellado al día">libjpeg-turbo</span><span class="chip s-sealed" title="sellado al día">libtiff</span><span class="chip s-sealed" title="sellado al día">libepoxy</span><span class="chip s-sealed" title="sellado al día">wayland</span><span class="chip s-sealed" title="sellado al día">libxkbcommon</span><span class="chip s-sealed" title="sellado al día">libdrm</span><span class="chip s-sealed" title="sellado al día">pcre2</span><span class="chip s-sealed" title="sellado al día">libffi</span><span class="chip s-sealed" title="sellado al día">zlib</span><span class="chip s-sealed" title="sellado al día">mesa</span></td>
</tr></tbody>
</table>
</div>
</section>
<footer>
Derivado de <span class="mono">recipes/*.toml</span> + <span class="mono">hammer hash</span> + el store,
por <span class="mono">scripts/build-state.py</span>. La fuente firme es
<span class="mono">docs/state/build-state.json</span> (versionada: su <span class="mono">git diff</span> es el avance).
Regenerar: <span class="mono">scripts/build-state.py && scripts/build-state-view.py</span>.
</footer>
</div>
<script>
const rows=[...document.querySelectorAll('.drow')];
const q=document.getElementById('q');
let cls='all',onlyReady=false;
function apply(){
const t=(q.value||'').toLowerCase();let shown=0;
for(const r of rows){
const okC=cls==='all'||r.dataset.cls===cls;
const okR=!onlyReady||r.dataset.ready==='1';
const okT=!t||r.dataset.name.includes(t);
const v=okC&&okR&&okT;r.style.display=v?'':'none';if(v)shown++;
}
document.getElementById('count').textContent=shown+' en deuda';
}
document.querySelectorAll('.fbtn[data-cls]').forEach(b=>b.onclick=()=>{
document.querySelectorAll('.fbtn[data-cls]').forEach(x=>x.setAttribute('aria-pressed','false'));
b.setAttribute('aria-pressed','true');cls=b.dataset.cls;apply();});
const rb=document.getElementById('ready');
rb.onclick=()=>{onlyReady=!onlyReady;rb.setAttribute('aria-pressed',onlyReady);apply();};
q.oninput=apply;
</script>