gioser

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…

⎇ main recipes/wl-clipboard.toml TOML · 61 lines · 3.7 KB History raw

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

1# wl-clipboard 2.2.1 — `wl-copy` y `wl-paste`: el portapapeles por línea de comandos. Diminuto y
2# desproporcionadamente útil: en Wayland no hay forma de copiar/pegar desde un script sin esto, y
3# media docena de flujos (capturas con grim, selección con slurp) dependen de poder pegar el
4# resultado en algún lado.
5#
6# ── POR QUÉ VIVE EN EL CORPUS Y NO EN `incoming-wlr` (movida el 2026-09-14) ────────────────────
7# Estaba SÓLO en la cola de wlr, y eso la hacía inalcanzable desde las otras cuatro. El problema no
8# era teórico: `cliphist` vive en el CORPUS y la pide en `[deps] run`, así que en los grafos de
9# corpus, gnome, kde y cosmic aparecía como **orphan_dep** — una dep que nadie resuelve. Y el
10# perfil `escritorio-cosmic` declara `cliphist` de raíz: la imagen de COSMIC se habría armado con
11# el demonio de historial y SIN `wl-copy`/`wl-paste`, que es exactamente el modo de fallo silencioso
12# que la propia receta de cliphist advierte (el binario corre y no hace nada). La clausura NO lo
13# veía: `falta=0` en los cinco perfiles, porque una dep que no resuelve no se cuenta, desaparece.
14#
15# La solución es la que este catálogo ya usó con `mpv` y `atuq`: subirla al corpus, desde donde las
16# colas la alcanzan (resuelven sibling-first y después el catálogo padre). `escritorio-sway` la
17# sigue declarando de raíz y la sigue encontrando.
18#
19# ⚠ El ArtifactHash NO cambió al mover (`b3:fc2ab7b7…` antes y después): la ruta del fichero no
20# entra en `hash_inputs`, y ninguna de sus 9 deps tenía variante hermana en `incoming-wlr` que la
21# mudanza pudiera cambiar. Comprobado con `takana hash` a los dos lados; el artefacto sellado sigue
22# valiendo y no hubo que re-sellar nada.
23#
24# ── FUENTE GIT POR COMMIT, y una diferencia con codeberg que conviene notar ────────────────────
25# GitHub genera sus `archive/refs/tags/*.tar.gz` al vuelo igual que codeberg, así que se pinea el
26# commit (ADR 0006). PERO: este tag es **LIGERO**, no anotado — `git ls-remote` devuelve UN solo
27# sha y ése ES el commit. En fuzzel/yambar/foot los tags son ANOTADOS y aparecen dos shas, donde el
28# bueno es el `^{}`. Comprobar de qué tipo es el tag antes de copiar el sha evita pinear el objeto
29# del tag en lugar del commit, que es un error silencioso: la receta valida y luego no encuentra el
30# árbol.
31#
32# ── `subprojects/` CON WRAPS QUE BAJAN DE LA RED ───────────────────────────────────────────────
33# Trae wraps de expat, libffi, wayland y wayland-protocols que meson descargaría. `--wrap-mode=
34# nodownload` es justamente lo que lo impide y lo obliga a usar las del sistema — o sea nuestros
35# artefactos, vía pkg-config. Sin esa flag el build intentaría salir a internet DENTRO del sandbox
36# hermético y moriría; con ella, los wraps son inertes. Por eso las cuatro van declaradas en deps.
37#
38# Los XML de protocolo (incluido `wlr-data-control-unstable-v1.xml`) van vendorizados en
39# `src/protocol/`, así que no hace falta un paquete de protocolos wlr aparte.
40name    = "wl-clipboard"
41version = "2.2.1"
42license = "GPL-3.0-or-later"
43
44[source]
45repo   = "https://github.com/bugaevc/wl-clipboard.git"
46commit = "3eb912c274042cd5deed6b478b39908a12f37498"
47
48[build]
49compiler    = "zig-cc"
50target      = "x86_64-linux-musl"
51link        = "dynamic"
52zig_version = "0.13.0"
53
54[build.phases]
55configure = "meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Dwerror=false"
56compile   = "ninja -C output"
57install   = "DESTDIR=/out ninja -C output install"
58
59[deps]
60build = ["meson", "samurai", "python3", "pkgconf", "wayland", "wayland-protocols", "expat", "libffi", "zlib"]
61run   = ["wayland"]