catálogo: wl-clipboard sube al corpus — cerraba el único orphan_dep de cuatro grafos

Estaba sólo en `recipes/incoming-wlr/`, o sea inalcanzable desde las otras
cuatro colas. `cliphist` vive en el CORPUS y la pide en `[deps] run`, así que
corpus, gnome, kde y cosmic la reportaban como `orphan_deps: ["wl-clipboard"]`.

No era cosmético: `escritorio-cosmic` declara `cliphist` de raíz, y la imagen
se habría armado con el demonio de historial y SIN `wl-copy`/`wl-paste` — el
modo de fallo silencioso que la propia receta de cliphist advierte (el binario
corre y no hace nada). La clausura no lo podía ver: decía `falta=0` en los
cinco perfiles, porque una dep que no resuelve no se cuenta, desaparece.

Solución = la que el catálogo ya usó con `mpv` y `atuq`: subirla al corpus, de
donde las colas la alcanzan (sibling-first y después el catálogo padre).

Medido antes de mover: ninguna de sus 9 deps tenía variante hermana en
`incoming-wlr`, así que el ArtifactHash no podía cambiar — y no cambió
(`b3:fc2ab7b7…` a los dos lados, comprobado con `takana hash`). Cero re-sellos.

Tras regenerar los cinco grafos: `orphan_deps: []` en los cinco, y la clausura
de `escritorio-cosmic` pasa de 273 a 274, sellada.
This commit is contained in:
Sergio
2026-09-14 13:54:28 +00:00
parent d2187fda11
commit 5cb6e568d6
6 changed files with 165 additions and 38 deletions
+37 -10
View File
@@ -1,14 +1,14 @@
{ {
"schema": "hammer-build-state/1", "schema": "hammer-build-state/1",
"totals": { "totals": {
"recipes": 935, "recipes": 936,
"nodes": 937, "nodes": 938,
"sealed": 935, "sealed": 936,
"ajeno": 2 "ajeno": 2
}, },
"by_class": { "by_class": {
"ajeno": 2, "ajeno": 2,
"c": 266, "c": 267,
"go": 366, "go": 366,
"gui": 41, "gui": 41,
"kernel": 7, "kernel": 7,
@@ -17,7 +17,7 @@
"debt_by_class": {}, "debt_by_class": {},
"by_queue": { "by_queue": {
"corpus": { "corpus": {
"sealed": 907, "sealed": 908,
"ajeno": 2 "ajeno": 2
}, },
"incoming-cosmic": { "incoming-cosmic": {
@@ -37,8 +37,8 @@
}, },
"escritorio-cosmic": { "escritorio-cosmic": {
"raices": 132, "raices": 132,
"clausura": 273, "clausura": 274,
"sealed": 273 "sealed": 274
}, },
"escritorio-mirada": { "escritorio-mirada": {
"raices": 17, "raices": 17,
@@ -52,9 +52,7 @@
} }
}, },
"sin_perfil": 617, "sin_perfil": 617,
"orphan_deps": [ "orphan_deps": [],
"wl-clipboard"
],
"topo_ok": true, "topo_ok": true,
"nodes": { "nodes": {
"abseil-cpp": { "abseil-cpp": {
@@ -18739,6 +18737,35 @@
"perfiles": [], "perfiles": [],
"dependientes_total": 0 "dependientes_total": 0
}, },
"wl-clipboard": {
"iname": "wl-clipboard",
"version": "2.2.1",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"expat",
"libffi",
"meson",
"pkgconf",
"python3",
"samurai",
"wayland",
"wayland-protocols",
"zlib"
],
"cls": "c",
"queue": "corpus",
"foreign": false,
"hash": "b3:fc2ab7b7469f31fc351b0fdcf6a4fe836fa86ef9b06986bd9dec1e4f9a7147f9",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-sway"
],
"dependientes_total": 1
},
"wlr-randr": { "wlr-randr": {
"iname": "wlr-randr", "iname": "wlr-randr",
"version": "0.5.0", "version": "0.5.0",
+35 -8
View File
@@ -1,14 +1,14 @@
{ {
"schema": "hammer-build-state/1", "schema": "hammer-build-state/1",
"totals": { "totals": {
"recipes": 961, "recipes": 962,
"nodes": 963, "nodes": 964,
"sealed": 961, "sealed": 962,
"ajeno": 2 "ajeno": 2
}, },
"by_class": { "by_class": {
"ajeno": 2, "ajeno": 2,
"c": 302, "c": 303,
"go": 366, "go": 366,
"gui": 51, "gui": 51,
"kernel": 7, "kernel": 7,
@@ -17,7 +17,7 @@
"debt_by_class": {}, "debt_by_class": {},
"by_queue": { "by_queue": {
"corpus": { "corpus": {
"sealed": 895, "sealed": 896,
"ajeno": 2 "ajeno": 2
}, },
"incoming-gnome": { "incoming-gnome": {
@@ -52,9 +52,7 @@
} }
}, },
"sin_perfil": 616, "sin_perfil": 616,
"orphan_deps": [ "orphan_deps": [],
"wl-clipboard"
],
"topo_ok": true, "topo_ok": true,
"nodes": { "nodes": {
"abseil-cpp": { "abseil-cpp": {
@@ -19787,6 +19785,35 @@
"perfiles": [], "perfiles": [],
"dependientes_total": 0 "dependientes_total": 0
}, },
"wl-clipboard": {
"iname": "wl-clipboard",
"version": "2.2.1",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"expat",
"libffi",
"meson",
"pkgconf",
"python3",
"samurai",
"wayland",
"wayland-protocols",
"zlib"
],
"cls": "c",
"queue": "corpus",
"foreign": false,
"hash": "b3:fc2ab7b7469f31fc351b0fdcf6a4fe836fa86ef9b06986bd9dec1e4f9a7147f9",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-sway"
],
"dependientes_total": 1
},
"wlr-randr": { "wlr-randr": {
"iname": "wlr-randr", "iname": "wlr-randr",
"version": "0.5.0", "version": "0.5.0",
+35 -8
View File
@@ -1,14 +1,14 @@
{ {
"schema": "hammer-build-state/1", "schema": "hammer-build-state/1",
"totals": { "totals": {
"recipes": 1086, "recipes": 1087,
"nodes": 1088, "nodes": 1089,
"sealed": 1086, "sealed": 1087,
"ajeno": 2 "ajeno": 2
}, },
"by_class": { "by_class": {
"ajeno": 2, "ajeno": 2,
"c": 434, "c": 435,
"go": 366, "go": 366,
"gui": 44, "gui": 44,
"kernel": 7, "kernel": 7,
@@ -17,7 +17,7 @@
"debt_by_class": {}, "debt_by_class": {},
"by_queue": { "by_queue": {
"corpus": { "corpus": {
"sealed": 889, "sealed": 890,
"ajeno": 1 "ajeno": 1
}, },
"incoming-kde": { "incoming-kde": {
@@ -54,9 +54,7 @@
} }
}, },
"sin_perfil": 624, "sin_perfil": 624,
"orphan_deps": [ "orphan_deps": [],
"wl-clipboard"
],
"topo_ok": true, "topo_ok": true,
"nodes": { "nodes": {
"abseil-cpp": { "abseil-cpp": {
@@ -25582,6 +25580,35 @@
"perfiles": [], "perfiles": [],
"dependientes_total": 0 "dependientes_total": 0
}, },
"wl-clipboard": {
"iname": "wl-clipboard",
"version": "2.2.1",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"expat",
"libffi",
"meson",
"pkgconf",
"python3",
"samurai",
"wayland",
"wayland-protocols",
"zlib"
],
"cls": "c",
"queue": "corpus",
"foreign": false,
"hash": "b3:fc2ab7b7469f31fc351b0fdcf6a4fe836fa86ef9b06986bd9dec1e4f9a7147f9",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-sway"
],
"dependientes_total": 1
},
"wlr-randr": { "wlr-randr": {
"iname": "wlr-randr", "iname": "wlr-randr",
"version": "0.5.0", "version": "0.5.0",
+5 -4
View File
@@ -17,11 +17,11 @@
"debt_by_class": {}, "debt_by_class": {},
"by_queue": { "by_queue": {
"corpus": { "corpus": {
"sealed": 909, "sealed": 910,
"ajeno": 2 "ajeno": 2
}, },
"incoming-wlr": { "incoming-wlr": {
"sealed": 12 "sealed": 11
} }
}, },
"by_profile": { "by_profile": {
@@ -18540,16 +18540,17 @@
"zlib" "zlib"
], ],
"cls": "c", "cls": "c",
"queue": "incoming-wlr", "queue": "corpus",
"foreign": false, "foreign": false,
"hash": "b3:fc2ab7b7469f31fc351b0fdcf6a4fe836fa86ef9b06986bd9dec1e4f9a7147f9", "hash": "b3:fc2ab7b7469f31fc351b0fdcf6a4fe836fa86ef9b06986bd9dec1e4f9a7147f9",
"state": "sealed", "state": "sealed",
"blocked_by": [], "blocked_by": [],
"unblocks": 0, "unblocks": 0,
"perfiles": [ "perfiles": [
"escritorio-cosmic",
"escritorio-sway" "escritorio-sway"
], ],
"dependientes_total": 0 "dependientes_total": 1
}, },
"wlr-randr": { "wlr-randr": {
"iname": "wlr-randr", "iname": "wlr-randr",
+35 -8
View File
@@ -1,14 +1,14 @@
{ {
"schema": "hammer-build-state/1", "schema": "hammer-build-state/1",
"totals": { "totals": {
"recipes": 910, "recipes": 911,
"nodes": 912, "nodes": 913,
"sealed": 910, "sealed": 911,
"ajeno": 2 "ajeno": 2
}, },
"by_class": { "by_class": {
"ajeno": 2, "ajeno": 2,
"c": 261, "c": 262,
"go": 366, "go": 366,
"gui": 41, "gui": 41,
"kernel": 7, "kernel": 7,
@@ -17,7 +17,7 @@
"debt_by_class": {}, "debt_by_class": {},
"by_queue": { "by_queue": {
"corpus": { "corpus": {
"sealed": 910, "sealed": 911,
"ajeno": 2 "ajeno": 2
} }
}, },
@@ -44,9 +44,7 @@
} }
}, },
"sin_perfil": 617, "sin_perfil": 617,
"orphan_deps": [ "orphan_deps": [],
"wl-clipboard"
],
"topo_ok": true, "topo_ok": true,
"nodes": { "nodes": {
"abseil-cpp": { "abseil-cpp": {
@@ -18206,6 +18204,35 @@
"perfiles": [], "perfiles": [],
"dependientes_total": 0 "dependientes_total": 0
}, },
"wl-clipboard": {
"iname": "wl-clipboard",
"version": "2.2.1",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"expat",
"libffi",
"meson",
"pkgconf",
"python3",
"samurai",
"wayland",
"wayland-protocols",
"zlib"
],
"cls": "c",
"queue": "corpus",
"foreign": false,
"hash": "b3:fc2ab7b7469f31fc351b0fdcf6a4fe836fa86ef9b06986bd9dec1e4f9a7147f9",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-sway"
],
"dependientes_total": 1
},
"wlr-randr": { "wlr-randr": {
"iname": "wlr-randr", "iname": "wlr-randr",
"version": "0.5.0", "version": "0.5.0",
@@ -3,6 +3,24 @@
# media docena de flujos (capturas con grim, selección con slurp) dependen de poder pegar el # media docena de flujos (capturas con grim, selección con slurp) dependen de poder pegar el
# resultado en algún lado. # resultado en algún lado.
# #
# ── POR QUÉ VIVE EN EL CORPUS Y NO EN `incoming-wlr` (movida el 2026-09-14) ────────────────────
# Estaba SÓLO en la cola de wlr, y eso la hacía inalcanzable desde las otras cuatro. El problema no
# era teórico: `cliphist` vive en el CORPUS y la pide en `[deps] run`, así que en los grafos de
# corpus, gnome, kde y cosmic aparecía como **orphan_dep** — una dep que nadie resuelve. Y el
# perfil `escritorio-cosmic` declara `cliphist` de raíz: la imagen de COSMIC se habría armado con
# el demonio de historial y SIN `wl-copy`/`wl-paste`, que es exactamente el modo de fallo silencioso
# que la propia receta de cliphist advierte (el binario corre y no hace nada). La clausura NO lo
# veía: `falta=0` en los cinco perfiles, porque una dep que no resuelve no se cuenta, desaparece.
#
# La solución es la que este catálogo ya usó con `mpv` y `atuq`: subirla al corpus, desde donde las
# colas la alcanzan (resuelven sibling-first y después el catálogo padre). `escritorio-sway` la
# sigue declarando de raíz y la sigue encontrando.
#
# ⚠ El ArtifactHash NO cambió al mover (`b3:fc2ab7b7…` antes y después): la ruta del fichero no
# entra en `hash_inputs`, y ninguna de sus 9 deps tenía variante hermana en `incoming-wlr` que la
# mudanza pudiera cambiar. Comprobado con `takana hash` a los dos lados; el artefacto sellado sigue
# valiendo y no hubo que re-sellar nada.
#
# ── FUENTE GIT POR COMMIT, y una diferencia con codeberg que conviene notar ──────────────────── # ── FUENTE GIT POR COMMIT, y una diferencia con codeberg que conviene notar ────────────────────
# GitHub genera sus `archive/refs/tags/*.tar.gz` al vuelo igual que codeberg, así que se pinea el # GitHub genera sus `archive/refs/tags/*.tar.gz` al vuelo igual que codeberg, así que se pinea el
# commit (ADR 0006). PERO: este tag es **LIGERO**, no anotado — `git ls-remote` devuelve UN solo # commit (ADR 0006). PERO: este tag es **LIGERO**, no anotado — `git ls-remote` devuelve UN solo