diff --git a/docs/state/build-state-cosmic.json b/docs/state/build-state-cosmic.json index e00ff0ea..f87f1792 100644 --- a/docs/state/build-state-cosmic.json +++ b/docs/state/build-state-cosmic.json @@ -1,15 +1,15 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 843, - "nodes": 844, - "sealed": 842, + "recipes": 844, + "nodes": 845, + "sealed": 843, "debt": 1, "ajeno": 1 }, "by_class": { "ajeno": 1, - "c": 191, + "c": 192, "go": 362, "gui": 34, "kernel": 6, @@ -20,7 +20,7 @@ }, "by_queue": { "corpus": { - "sealed": 803, + "sealed": 804, "ajeno": 1 }, "incoming-cosmic": { @@ -4253,7 +4253,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 3 + "dependientes_total": 4 }, "ffuf": { "iname": "ffuf", @@ -8526,7 +8526,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 140 + "dependientes_total": 141 }, "libelogind": { "iname": "libelogind", @@ -9356,7 +9356,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 30 + "dependientes_total": 31 }, "linux-metal": { "iname": "linux-metal", @@ -9927,7 +9927,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 138 + "dependientes_total": 139 }, "mesa-llvmpipe": { "iname": "mesa-llvmpipe", @@ -10017,7 +10017,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 116 + "dependientes_total": 117 }, "micro": { "iname": "micro", @@ -11554,7 +11554,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 9 + "dependientes_total": 10 }, "pixi": { "iname": "pixi", @@ -11620,7 +11620,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 371 + "dependientes_total": 372 }, "plow": { "iname": "plow", @@ -11992,7 +11992,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 285 + "dependientes_total": 286 }, "qrcp": { "iname": "qrcp", @@ -12547,7 +12547,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 249 + "dependientes_total": 250 }, "sassc": { "iname": "sassc", @@ -12635,7 +12635,7 @@ "perfiles": [ "escritorio-sway" ], - "dependientes_total": 2 + "dependientes_total": 3 }, "scorecard": { "iname": "scorecard", @@ -14799,7 +14799,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 149 + "dependientes_total": 150 }, "wayland-protocols": { "iname": "wayland-protocols", @@ -14826,7 +14826,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 48 + "dependientes_total": 49 }, "websocketd": { "iname": "websocketd", @@ -14845,6 +14845,36 @@ "perfiles": [], "dependientes_total": 0 }, + "wf-recorder": { + "iname": "wf-recorder", + "version": "0.6.0", + "link": "dynamic", + "compiler": "zig-cc", + "deps": [ + "meson", + "samurai", + "python3", + "pkgconf", + "scdoc", + "linux-headers", + "ffmpeg", + "pipewire", + "mesa", + "libdrm", + "wayland", + "wayland-protocols" + ], + "cls": "c", + "queue": "corpus", + "hash": "b3:25caa3596d6f679f2924248f0b4aa27da1474d2dd144ecaeaf6bb8cd48ae5fd8", + "state": "sealed", + "blocked_by": [], + "unblocks": 0, + "perfiles": [ + "escritorio-sway" + ], + "dependientes_total": 0 + }, "wget": { "iname": "wget", "version": "1.25.0", diff --git a/docs/state/build-state-gnome.json b/docs/state/build-state-gnome.json index ccd94682..f2422f89 100644 --- a/docs/state/build-state-gnome.json +++ b/docs/state/build-state-gnome.json @@ -1,14 +1,14 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 868, - "nodes": 869, - "sealed": 868, + "recipes": 869, + "nodes": 870, + "sealed": 869, "ajeno": 1 }, "by_class": { "ajeno": 1, - "c": 230, + "c": 231, "go": 362, "gui": 40, "kernel": 6, @@ -17,7 +17,7 @@ "debt_by_class": {}, "by_queue": { "corpus": { - "sealed": 794, + "sealed": 795, "ajeno": 1 }, "incoming-gnome": { @@ -3982,7 +3982,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 3 + "dependientes_total": 4 }, "ffuf": { "iname": "ffuf", @@ -8783,7 +8783,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 140 + "dependientes_total": 141 }, "libei": { "iname": "libei", @@ -10007,7 +10007,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 30 + "dependientes_total": 31 }, "linux-metal": { "iname": "linux-metal", @@ -10576,7 +10576,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 138 + "dependientes_total": 139 }, "mesa-llvmpipe": { "iname": "mesa-llvmpipe", @@ -10666,7 +10666,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 116 + "dependientes_total": 117 }, "micro": { "iname": "micro", @@ -12327,7 +12327,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 9 + "dependientes_total": 10 }, "pixi": { "iname": "pixi", @@ -12393,7 +12393,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 371 + "dependientes_total": 372 }, "plow": { "iname": "plow", @@ -12832,7 +12832,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 285 + "dependientes_total": 286 }, "qrcp": { "iname": "qrcp", @@ -13387,7 +13387,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 249 + "dependientes_total": 250 }, "sassc": { "iname": "sassc", @@ -13475,7 +13475,7 @@ "perfiles": [ "escritorio-sway" ], - "dependientes_total": 2 + "dependientes_total": 3 }, "scorecard": { "iname": "scorecard", @@ -15738,7 +15738,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 149 + "dependientes_total": 150 }, "wayland-protocols": { "iname": "wayland-protocols", @@ -15765,7 +15765,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 48 + "dependientes_total": 49 }, "websocketd": { "iname": "websocketd", @@ -15784,6 +15784,36 @@ "perfiles": [], "dependientes_total": 0 }, + "wf-recorder": { + "iname": "wf-recorder", + "version": "0.6.0", + "link": "dynamic", + "compiler": "zig-cc", + "deps": [ + "meson", + "samurai", + "python3", + "pkgconf", + "scdoc", + "linux-headers", + "ffmpeg", + "pipewire", + "mesa", + "libdrm", + "wayland", + "wayland-protocols" + ], + "cls": "c", + "queue": "corpus", + "hash": "b3:25caa3596d6f679f2924248f0b4aa27da1474d2dd144ecaeaf6bb8cd48ae5fd8", + "state": "sealed", + "blocked_by": [], + "unblocks": 0, + "perfiles": [ + "escritorio-sway" + ], + "dependientes_total": 0 + }, "wget": { "iname": "wget", "version": "1.25.0", diff --git a/docs/state/build-state-kde.json b/docs/state/build-state-kde.json index b73eb02e..c158fe4c 100644 --- a/docs/state/build-state-kde.json +++ b/docs/state/build-state-kde.json @@ -1,14 +1,14 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 987, - "nodes": 988, - "sealed": 987, + "recipes": 988, + "nodes": 989, + "sealed": 988, "ajeno": 1 }, "by_class": { "ajeno": 1, - "c": 354, + "c": 355, "go": 362, "gui": 36, "kernel": 6, @@ -17,7 +17,7 @@ "debt_by_class": {}, "by_queue": { "corpus": { - "sealed": 789 + "sealed": 790 }, "incoming-kde": { "sealed": 198, @@ -4157,7 +4157,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 3 + "dependientes_total": 4 }, "ffuf": { "iname": "ffuf", @@ -12265,7 +12265,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 140 + "dependientes_total": 141 }, "libepoxy": { "iname": "libepoxy", @@ -13492,7 +13492,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 30 + "dependientes_total": 31 }, "linux-metal": { "iname": "linux-metal", @@ -14064,7 +14064,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 138 + "dependientes_total": 139 }, "mesa-llvmpipe": { "iname": "mesa-llvmpipe", @@ -14154,7 +14154,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 116 + "dependientes_total": 117 }, "micro": { "iname": "micro", @@ -16009,7 +16009,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 9 + "dependientes_total": 10 }, "pixi": { "iname": "pixi", @@ -16075,7 +16075,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 371 + "dependientes_total": 372 }, "plasma-activities": { "iname": "plasma-activities", @@ -17427,7 +17427,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 285 + "dependientes_total": 286 }, "qcoro": { "iname": "qcoro", @@ -18571,7 +18571,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 249 + "dependientes_total": 250 }, "sassc": { "iname": "sassc", @@ -18659,7 +18659,7 @@ "perfiles": [ "escritorio-sway" ], - "dependientes_total": 2 + "dependientes_total": 3 }, "scorecard": { "iname": "scorecard", @@ -21227,7 +21227,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 149 + "dependientes_total": 150 }, "wayland-protocols": { "iname": "wayland-protocols", @@ -21254,7 +21254,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 48 + "dependientes_total": 49 }, "websocketd": { "iname": "websocketd", @@ -21273,6 +21273,36 @@ "perfiles": [], "dependientes_total": 0 }, + "wf-recorder": { + "iname": "wf-recorder", + "version": "0.6.0", + "link": "dynamic", + "compiler": "zig-cc", + "deps": [ + "meson", + "samurai", + "python3", + "pkgconf", + "scdoc", + "linux-headers", + "ffmpeg", + "pipewire", + "mesa", + "libdrm", + "wayland", + "wayland-protocols" + ], + "cls": "c", + "queue": "corpus", + "hash": "b3:25caa3596d6f679f2924248f0b4aa27da1474d2dd144ecaeaf6bb8cd48ae5fd8", + "state": "sealed", + "blocked_by": [], + "unblocks": 0, + "perfiles": [ + "escritorio-sway" + ], + "dependientes_total": 0 + }, "wget": { "iname": "wget", "version": "1.25.0", diff --git a/docs/state/build-state-wlr.json b/docs/state/build-state-wlr.json index 43743cb0..9787fbee 100644 --- a/docs/state/build-state-wlr.json +++ b/docs/state/build-state-wlr.json @@ -1,14 +1,14 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 817, - "nodes": 818, - "sealed": 817, + "recipes": 818, + "nodes": 819, + "sealed": 818, "ajeno": 1 }, "by_class": { "ajeno": 1, - "c": 188, + "c": 189, "go": 362, "gui": 32, "kernel": 6, @@ -17,7 +17,7 @@ "debt_by_class": {}, "by_queue": { "corpus": { - "sealed": 802, + "sealed": 803, "ajeno": 1 }, "incoming-wlr": { @@ -41,9 +41,9 @@ "sealed": 33 }, "escritorio-sway": { - "raices": 62, - "clausura": 145, - "sealed": 145 + "raices": 63, + "clausura": 146, + "sealed": 146 } }, "sin_perfil": 649, @@ -3782,7 +3782,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 3 + "dependientes_total": 4 }, "ffuf": { "iname": "ffuf", @@ -8011,7 +8011,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 140 + "dependientes_total": 141 }, "libepoxy": { "iname": "libepoxy", @@ -8799,7 +8799,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 30 + "dependientes_total": 31 }, "linux-metal": { "iname": "linux-metal", @@ -9350,7 +9350,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 138 + "dependientes_total": 139 }, "mesa-llvmpipe": { "iname": "mesa-llvmpipe", @@ -9440,7 +9440,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 116 + "dependientes_total": 117 }, "micro": { "iname": "micro", @@ -10938,7 +10938,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 9 + "dependientes_total": 10 }, "pixi": { "iname": "pixi", @@ -11004,7 +11004,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 371 + "dependientes_total": 372 }, "plow": { "iname": "plow", @@ -11334,7 +11334,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 285 + "dependientes_total": 286 }, "qrcp": { "iname": "qrcp", @@ -11889,7 +11889,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 249 + "dependientes_total": 250 }, "sassc": { "iname": "sassc", @@ -11977,7 +11977,7 @@ "perfiles": [ "escritorio-sway" ], - "dependientes_total": 2 + "dependientes_total": 3 }, "scorecard": { "iname": "scorecard", @@ -14339,7 +14339,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 149 + "dependientes_total": 150 }, "wayland-protocols": { "iname": "wayland-protocols", @@ -14366,7 +14366,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 48 + "dependientes_total": 49 }, "websocketd": { "iname": "websocketd", @@ -14385,6 +14385,36 @@ "perfiles": [], "dependientes_total": 0 }, + "wf-recorder": { + "iname": "wf-recorder", + "version": "0.6.0", + "link": "dynamic", + "compiler": "zig-cc", + "deps": [ + "meson", + "samurai", + "python3", + "pkgconf", + "scdoc", + "linux-headers", + "ffmpeg", + "pipewire", + "mesa", + "libdrm", + "wayland", + "wayland-protocols" + ], + "cls": "c", + "queue": "corpus", + "hash": "b3:25caa3596d6f679f2924248f0b4aa27da1474d2dd144ecaeaf6bb8cd48ae5fd8", + "state": "sealed", + "blocked_by": [], + "unblocks": 0, + "perfiles": [ + "escritorio-sway" + ], + "dependientes_total": 0 + }, "wget": { "iname": "wget", "version": "1.25.0", diff --git a/docs/state/build-state.json b/docs/state/build-state.json index b154ff5f..271d935d 100644 --- a/docs/state/build-state.json +++ b/docs/state/build-state.json @@ -1,14 +1,14 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 803, - "nodes": 804, - "sealed": 803, + "recipes": 804, + "nodes": 805, + "sealed": 804, "ajeno": 1 }, "by_class": { "ajeno": 1, - "c": 174, + "c": 175, "go": 362, "gui": 32, "kernel": 6, @@ -17,7 +17,7 @@ "debt_by_class": {}, "by_queue": { "corpus": { - "sealed": 803, + "sealed": 804, "ajeno": 1 } }, @@ -3757,7 +3757,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 3 + "dependientes_total": 4 }, "ffuf": { "iname": "ffuf", @@ -7873,7 +7873,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 140 + "dependientes_total": 141 }, "libepoxy": { "iname": "libepoxy", @@ -8661,7 +8661,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 30 + "dependientes_total": 31 }, "linux-metal": { "iname": "linux-metal", @@ -9212,7 +9212,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 138 + "dependientes_total": 139 }, "mesa-llvmpipe": { "iname": "mesa-llvmpipe", @@ -9302,7 +9302,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 116 + "dependientes_total": 117 }, "micro": { "iname": "micro", @@ -10800,7 +10800,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 9 + "dependientes_total": 10 }, "pixi": { "iname": "pixi", @@ -10866,7 +10866,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 371 + "dependientes_total": 372 }, "plow": { "iname": "plow", @@ -11196,7 +11196,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 285 + "dependientes_total": 286 }, "qrcp": { "iname": "qrcp", @@ -11751,7 +11751,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 249 + "dependientes_total": 250 }, "sassc": { "iname": "sassc", @@ -11839,7 +11839,7 @@ "perfiles": [ "escritorio-sway" ], - "dependientes_total": 2 + "dependientes_total": 3 }, "scorecard": { "iname": "scorecard", @@ -14003,7 +14003,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 149 + "dependientes_total": 150 }, "wayland-protocols": { "iname": "wayland-protocols", @@ -14030,7 +14030,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 48 + "dependientes_total": 49 }, "websocketd": { "iname": "websocketd", @@ -14049,6 +14049,36 @@ "perfiles": [], "dependientes_total": 0 }, + "wf-recorder": { + "iname": "wf-recorder", + "version": "0.6.0", + "link": "dynamic", + "compiler": "zig-cc", + "deps": [ + "meson", + "samurai", + "python3", + "pkgconf", + "scdoc", + "linux-headers", + "ffmpeg", + "pipewire", + "mesa", + "libdrm", + "wayland", + "wayland-protocols" + ], + "cls": "c", + "queue": "corpus", + "hash": "b3:25caa3596d6f679f2924248f0b4aa27da1474d2dd144ecaeaf6bb8cd48ae5fd8", + "state": "sealed", + "blocked_by": [], + "unblocks": 0, + "perfiles": [ + "escritorio-sway" + ], + "dependientes_total": 0 + }, "wget": { "iname": "wget", "version": "1.25.0", diff --git a/docs/state/targets.toml b/docs/state/targets.toml index 9683b22b..8a0c3af6 100644 --- a/docs/state/targets.toml +++ b/docs/state/targets.toml @@ -300,4 +300,11 @@ paquetes = [ # `-Dpipewire-alsa=disabled` en las pipewire (⇒ no suena con PipeWire vivo), sin Lua (⇒ sin OSC) # y sin vaapi (⇒ sin decodificación por hardware). "mpv", + # ── GRABADOR DE PANTALLA — sólo acá, y la razón es de PROTOCOLO, no de gusto ────────────────── + # `wf-recorder` captura por `wlr-screencopy`, que implementan los compositores wlroots. KWin y + # mutter NO lo implementan (usan el portal/ScreenCast), así que ponerlo en esas dos imágenes + # sería enviar una herramienta que no puede funcionar ahí — deuda fantasma con forma de app. + # En COSMIC habría que VERIFICAR si cosmic-comp expone el protocolo antes de listarlo. + # Es la app que cobra la promoción de pipewire al corpus (2026-09-03): antes grababa muda. + "wf-recorder", ] diff --git a/recipes/wf-recorder.toml b/recipes/wf-recorder.toml new file mode 100644 index 00000000..39175517 --- /dev/null +++ b/recipes/wf-recorder.toml @@ -0,0 +1,55 @@ +# wf-recorder 0.6.0 — grabador de pantalla para compositores Wayland (wlroots y compatibles). +# +# POR QUÉ ESTA Y NO OBS. El triaje de `docs/plan-apps-usuario-final.md` midió que OBS pide Qt6 —que +# vive sólo en `incoming-kde`— más el stack X11 y veinte recetas nuevas, o sea que hoy sólo podría +# ser una app DE KDE y no de las cuatro imágenes. Y el 80% de para qué se instala OBS es grabar la +# pantalla. Esto lo cubre con UNA receta. +# +# ══ ESTUVO BLOQUEADA UNA NOCHE, Y VALE LA PENA QUE SE SEPA POR QUÉ ═════════════════════════════ +# El triaje la daba en «0 recetas faltantes» y era mentira, porque preguntaba lo que no era: **¿existe +# la receta en el disco?** en vez de **¿la alcanza quien la usa?**. Sus dos backends de captura de +# audio son `libpulse-simple` y `libpipewire-0.3`, los dos existían en las tres colas de escritorio +# y en ninguna en el corpus, y una receta del corpus no alcanza una cola hermana. Construía, pero +# grababa MUDO — y a diferencia de mpv no tiene backend ALSA con el que caerse. +# Se destrabó promoviendo `pipewire` al corpus (2026-09-03). Ésta es la primera app que cobra esa +# decisión. +# +# ══ PIPEWIRE Y NO PULSE, explícito ═════════════════════════════════════════════════════════════ +# `-Dpulse=disabled -Dpipewire=enabled` y `-Ddefault_audio_backend=pipewire`. Es el servidor de +# audio decidido de la distro, y además `pulseaudio` NO se promovió al corpus a propósito (su +# `libpulse-mainloop-glib` del corpus se traga la glib estática; ver `recipes/pulseaudio.toml`). +# El `default_audio_backend` NO se deja en `auto`: su meson lo resuelve mirando qué encontró en el +# sandbox (`meson.build:95-101`), que es la clase de perilla que hace depender el artefacto de lo +# que quedó montado en el lab. +# +# gbm y libdrm salen de mesa: la captura pide el buffer al compositor por +# `wlr-screencopy` y lo convierte en GPU antes de codificar. +# +# Fuente por commit git (ADR 0006): el `/archive/` de GitHub lo genera la forge al vuelo y su sha256 +# cambia cuando el servidor actualiza git/gzip. `v0.6.0` es un tag LIVIANO ⇒ éste es su commit. +name = "wf-recorder" +version = "0.6.0" +license = "MIT" + +[source] +repo = "https://github.com/ammen99/wf-recorder.git" +commit = "ca103be2473db0983baf74e17b291385c3c79d79" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +# Dinámico por el mismo cierre que mpv: ffmpeg va `--enable-shared`, mesa expone gbm/EGL como `.so` +# y libpipewire también. +link = "dynamic" +flags = [] + +[build.phases] +configure = "PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release -Dpulse=disabled -Dpipewire=enabled -Ddefault_audio_backend=pipewire" +compile = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output" +install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild" + +[deps] +build = [ + "meson", "samurai", "python3", "pkgconf", "scdoc", "linux-headers", + "ffmpeg", "pipewire", "mesa", "libdrm", "wayland", "wayland-protocols", +]