From 3545ea77fa71ed166fd15144fcf8c8ff25d0ffb2 Mon Sep 17 00:00:00 2001 From: sergio Date: Fri, 7 Aug 2026 21:39:24 -0400 Subject: [PATCH] =?UTF-8?q?fuzzel=20+=20yambar=20SELLADAS=20=E2=80=94=20y?= =?UTF-8?q?=20waybar=20queda=20fuera=20POR=20MEDICI=C3=93N,=20no=20por=20g?= =?UTF-8?q?usto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lanzador y barra de estado: las dos piezas que faltaban para que un WM ligero se use de verdad y no sólo arranque. El frente wlr suma 9 recetas y 11 binarios. WAYBAR NO ENTRA, Y CONVIENE QUE CONSTE POR QUÉ. Medidas sus dependencias reales (0.12.0): pide `gtkmm-3.0` — o sea GTK**3** *y además* sus bindings de C++ — más gtk-layer-shell, jsoncpp, fmt, spdlog, sigc++, date y libnl. Es el mismo muro de GTK3 que el frente GNOME aparcó a propósito, con ocho recetas nuevas encima. `yambar` es C puro, del mismo autor que foot/fcft/fuzzel, y **sus dependencias ya estaban selladas**: es el bar estándar de esa familia, no un sustituto pobre. Si algún día entra GTK3, waybar vuelve a estar sobre la mesa. FUENTE GIT POR COMMIT, no el archive de codeberg (ADR 0006). Es el criterio que ya usan foot y fcft, con la razón medida allí: el `/archive/.tar.gz` lo genera la forge AL VUELO, así que sus bytes dependen de la versión de git/gzip del servidor y el sha256 pineado se muere solo cuando codeberg actualiza su tooling. ⚠ Y los tags son ANOTADOS: el sha de `refs/tags/1.12.0` NO es el commit; hay que pinear el `^{}` desreferenciado. Lo verifiqué con `git ls-remote` antes de escribir, porque los dos shas aparecen juntos y es fácil copiar el equivocado. DOS DEPS DE BUILD-TIME QUE NO SE VEN EN EL BINARIO Y MATAN EL BUILD: · `scdoc` (las dos) — generan sus man pages con él y, a diferencia de sway/swaybg/grim, NO ofrecen `-Dman-pages` para saltárselo. Estaba en el corpus: la vía correcta es declararlo, no buscar cómo evitarlo. · `flex` + `bison` (yambar) — generan el parser de su lenguaje de partículas. Invisibles en el resultado, y del tipo que se olvida hasta que el build muere con «Program 'flex' not found». `-Dbackend-x11=disabled` en yambar evita SIETE dependencias de X11 (xcb-aux, xcb-cursor, xcb-errors, xcb-event, xcb-ewmh, xcb-randr, xcb-render) para un backend que en una distro Wayland pura no se usa nunca. Y en fuzzel, `-Dsvg-backend=nanosvg` (el default, vendorizado) evita librsvg, que arrastraría la cadena de GNOME/Rust por unos iconos. Co-Authored-By: Claude Opus 5 (1M context) --- recipes/incoming-wlr/fuzzel.toml | 42 +++++++++++++++++++++++++++++ recipes/incoming-wlr/yambar.toml | 45 ++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 recipes/incoming-wlr/fuzzel.toml create mode 100644 recipes/incoming-wlr/yambar.toml diff --git a/recipes/incoming-wlr/fuzzel.toml b/recipes/incoming-wlr/fuzzel.toml new file mode 100644 index 00000000..6818c622 --- /dev/null +++ b/recipes/incoming-wlr/fuzzel.toml @@ -0,0 +1,42 @@ +# fuzzel 1.12.0 — el lanzador de aplicaciones. Es lo que convierte «hay un compositor» en «puedo +# abrir programas sin escribirlos en una terminal». Del mismo autor que `foot` y `fcft`, así que +# encaja con lo que ya está sellado sin traer una familia nueva de dependencias. +# +# ── FUENTE GIT POR COMMIT, NO EL ARCHIVE DE CODEBERG (ADR 0006) ──────────────────────────────── +# Mismo criterio que `foot` y `fcft`, y con la misma razón medida allí: el `/archive/.tar.gz` +# lo genera la forge AL VUELO, así que sus bytes dependen de la versión de git/gzip del servidor y +# el sha256 pineado se muere solo cuando codeberg actualiza su tooling. Un commit es inmune. +# ⚠ El tag es ANOTADO: el sha de `refs/tags/1.12.0` (fbe69488…) NO es el commit. El de abajo es el +# `1.12.0^{}` desreferenciado, que es el que hay que pinear. +# +# `scdoc` en deps: fuzzel genera sus man pages con él y NO ofrece opción para saltárselo (a +# diferencia de sway/swaybg/grim, que sí tienen `-Dman-pages`). Como scdoc ya está en el corpus, la +# vía correcta es declararlo, no buscar cómo evitarlo. +# +# `-Dsvg-backend=nanosvg`: es el DEFAULT y va vendorizado en el árbol ⇒ evita `librsvg`, que +# arrastraría toda la cadena de GNOME/Rust por unos iconos. La alternativa `librsvg` queda ahí para +# el día que haga falta calidad de render SVG, que hoy no. +name = "fuzzel" +version = "1.12.0" +license = "MIT" + +[source] +repo = "https://codeberg.org/dnkl/fuzzel.git" +commit = "05270d0458310abecec94a65c6e96b90db70e47a" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "dynamic" +zig_version = "0.13.0" + +[build.phases] +configure = "meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Dwerror=false -Denable-cairo=enabled -Dpng-backend=libpng -Dsvg-backend=nanosvg -Dc_link_args=-lexpat" +compile = "ninja -C output" +install = "DESTDIR=/out ninja -C output install" + +[deps] +build = ["meson", "samurai", "python3", "pkgconf", "scdoc", "wayland", "wayland-protocols", "fcft", + "tllist", "utf8proc", "pixman", "cairo", "fontconfig", "freetype", "harfbuzz", "fribidi", + "libpng", "libxkbcommon", "expat", "libffi", "zlib", "glib", "pcre2"] +run = ["wayland", "fcft", "pixman", "cairo", "libxkbcommon"] diff --git a/recipes/incoming-wlr/yambar.toml b/recipes/incoming-wlr/yambar.toml new file mode 100644 index 00000000..57246555 --- /dev/null +++ b/recipes/incoming-wlr/yambar.toml @@ -0,0 +1,45 @@ +# yambar 1.11.0 — la barra de estado. Reemplaza a `waybar` en este catálogo POR MEDICIÓN, no por +# gusto: waybar 0.12 pide `gtkmm-3.0` (o sea GTK**3** *y además* sus bindings de C++), más +# `gtk-layer-shell`, `jsoncpp`, `fmt`, `spdlog`, `sigc++`, `date` y `libnl` — el muro de GTK3 que el +# frente GNOME aparcó a propósito, con ocho recetas nuevas encima. yambar es C puro, del mismo autor +# que `foot`/`fcft`/`fuzzel`, y sus dependencias YA están selladas. +# ⇒ Si algún día entra GTK3, waybar vuelve a estar sobre la mesa. Mientras tanto esto no es un +# sustituto pobre: yambar es el bar estándar del ecosistema de esa familia. +# +# `-Dbackend-x11=disabled`: sin esto pediría xcb-aux, xcb-cursor, xcb-errors, xcb-event, xcb-ewmh, +# xcb-randr y xcb-render — siete dependencias de X11 para un backend que en una distro Wayland pura +# no se usa nunca. Con el backend seleccionado, ninguna hace falta. +# +# Plugins con dependencias que aún no tenemos (alsa, mpd, pipewire, pulse) van apagados explícitos; +# el resto queda en `auto`, que resuelve con lo que hay. Es una decisión de alcance para el primer +# sellado, no un muro: cada uno se prende cuando entre su dep. +# +# `flex` y `bison` en deps: yambar genera con ellos el parser de su lenguaje de particulas (los +# «tags» de la barra). Es un generador de código en build-time, invisible en el binario final, y del +# tipo que se olvida hasta que el build muere con «Program 'flex' not found». +# +# Fuente git por commit y tag anotado desreferenciado, igual que fuzzel/foot/fcft (ADR 0006). +name = "yambar" +version = "1.11.0" +license = "MIT" + +[source] +repo = "https://codeberg.org/dnkl/yambar.git" +commit = "a2d30b96fbb026621ec11692272f0117f35a00fd" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "dynamic" +zig_version = "0.13.0" + +[build.phases] +configure = "meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Dwerror=false -Dbackend-x11=disabled -Dbackend-wayland=enabled -Dplugin-alsa=disabled -Dplugin-mpd=disabled -Dplugin-pipewire=disabled -Dplugin-pulse=disabled -Dc_link_args=-lexpat" +compile = "ninja -C output" +install = "DESTDIR=/out ninja -C output install" + +[deps] +build = ["meson", "samurai", "python3", "pkgconf", "scdoc", "flex", "bison", "wayland", "wayland-protocols", "fcft", + "tllist", "utf8proc", "pixman", "libyaml", "json-c", "libudev-zero", "fontconfig", + "freetype", "harfbuzz", "fribidi", "libxkbcommon", "expat", "libffi", "zlib", "libpng"] +run = ["wayland", "fcft", "pixman", "libyaml"]