tawasuyu

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…

TOML 1572Shell 203Rust 109Markdown 993728 Definitions

⎇ 87b6c3020a5285cf1d41ccdf1c8070b53adbcb98 recipes/wf-recorder.toml TOML · 55 lines · 3.2 KB History raw

wf-recorder 0.6.0: la primera app que cobra la promoción de pipewire 39f5007cf · Sergio ·

1# wf-recorder 0.6.0 — grabador de pantalla para compositores Wayland (wlroots y compatibles).
2#
3# POR QUÉ ESTA Y NO OBS. El triaje de `docs/plan-apps-usuario-final.md` midió que OBS pide Qt6 —que
4# vive sólo en `incoming-kde`— más el stack X11 y veinte recetas nuevas, o sea que hoy sólo podría
5# ser una app DE KDE y no de las cuatro imágenes. Y el 80% de para qué se instala OBS es grabar la
6# pantalla. Esto lo cubre con UNA receta.
7#
8# ══ ESTUVO BLOQUEADA UNA NOCHE, Y VALE LA PENA QUE SE SEPA POR QUÉ ═════════════════════════════
9# El triaje la daba en «0 recetas faltantes» y era mentira, porque preguntaba lo que no era: **¿existe
10# la receta en el disco?** en vez de **¿la alcanza quien la usa?**. Sus dos backends de captura de
11# audio son `libpulse-simple` y `libpipewire-0.3`, los dos existían en las tres colas de escritorio
12# y en ninguna en el corpus, y una receta del corpus no alcanza una cola hermana. Construía, pero
13# grababa MUDO — y a diferencia de mpv no tiene backend ALSA con el que caerse.
14# Se destrabó promoviendo `pipewire` al corpus (2026-09-03). Ésta es la primera app que cobra esa
15# decisión.
16#
17# ══ PIPEWIRE Y NO PULSE, explícito ═════════════════════════════════════════════════════════════
18# `-Dpulse=disabled -Dpipewire=enabled` y `-Ddefault_audio_backend=pipewire`. Es el servidor de
19# audio decidido de la distro, y además `pulseaudio` NO se promovió al corpus a propósito (su
20# `libpulse-mainloop-glib` del corpus se traga la glib estática; ver `recipes/pulseaudio.toml`).
21# El `default_audio_backend` NO se deja en `auto`: su meson lo resuelve mirando qué encontró en el
22# sandbox (`meson.build:95-101`), que es la clase de perilla que hace depender el artefacto de lo
23# que quedó montado en el lab.
24#
25# gbm y libdrm salen de mesa: la captura pide el buffer al compositor por
26# `wlr-screencopy` y lo convierte en GPU antes de codificar.
27#
28# Fuente por commit git (ADR 0006): el `/archive/` de GitHub lo genera la forge al vuelo y su sha256
29# cambia cuando el servidor actualiza git/gzip. `v0.6.0` es un tag LIVIANO ⇒ éste es su commit.
30name    = "wf-recorder"
31version = "0.6.0"
32license = "MIT"
33
34[source]
35repo   = "https://github.com/ammen99/wf-recorder.git"
36commit = "ca103be2473db0983baf74e17b291385c3c79d79"
37
38[build]
39compiler = "zig-cc"
40target   = "x86_64-linux-musl"
41# Dinámico por el mismo cierre que mpv: ffmpeg va `--enable-shared`, mesa expone gbm/EGL como `.so`
42# y libpipewire también.
43link     = "dynamic"
44flags    = []
45
46[build.phases]
47configure = "PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release -Dpulse=disabled -Dpipewire=enabled -Ddefault_audio_backend=pipewire"
48compile   = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
49install   = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
50
51[deps]
52build = [
53  "meson", "samurai", "python3", "pkgconf", "scdoc", "linux-headers",
54  "ffmpeg", "pipewire", "mesa", "libdrm", "wayland", "wayland-protocols",
55]