From 3f2620f6b72c595ba68e312e053d5c899f351107 Mon Sep 17 00:00:00 2001 From: Sergio Date: Sat, 12 Sep 2026 20:26:53 +0000 Subject: [PATCH] =?UTF-8?q?recetas:=20nushell=20y=20cmus=20=E2=80=94=20she?= =?UTF-8?q?ll=20moderna=20y=20reproductor=20de=20m=C3=BAsica,=20sellados?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit nushell b3:742c008b462930c6ee9c2af0646fe842e9e1bad7fe35277eddabdb15aa4fdae6 (41m17s de cargo) cmus b3:cae8d90b5c1c7e5864c708371b2bdefbbccaa3ef1248f165a20f2dc2ce481b8b - nushell entra como shell INTERACTIVA y va escrito en la receta que no es ni va a ser /bin/sh: su lenguaje no es POSIX y un script del sistema no corre ahí. El catálogo tenía tres shells (bash, busybox/ash, elvish) y ninguna era una alternativa moderna. compiler="gcc" por el patrón zellij/gitui/delta: hay crates *-sys con build-script en C y cc-rs invoca gcc; el linker sigue siendo zig-cc. - cmus cierra el hueco de audio: el catálogo había cerrado el vídeo con mpv y no tenía con qué escuchar música. Su configure NO es autotools — toma asignaciones clave=valor, no --flags — y eso importa: pasarle --prefix=/usr no da error, lo IGNORA, y el paquete acabaría en /usr/local sin que nada falle. CONFIG_PULSE=n a propósito: la salida ALSA desemboca en PipeWire por -Dpipewire-alsa, igual que hace mpv, y la libpulse del corpus es la variante con la glib ESTÁTICA adentro, que no se quiere en un cliente. --- recipes/cmus.toml | 35 +++++++++++++++++++++++++++++++++++ recipes/nushell.toml | 28 ++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 recipes/cmus.toml create mode 100644 recipes/nushell.toml diff --git a/recipes/cmus.toml b/recipes/cmus.toml new file mode 100644 index 00000000..f15289cf --- /dev/null +++ b/recipes/cmus.toml @@ -0,0 +1,35 @@ +# cmus 2.12.0 — reproductor de música en terminal. C, con un `configure` PROPIO (no autotools). +# +# ── POR QUÉ ENTRA ────────────────────────────────────────────────────────────────────────────── +# El catálogo cerró el vídeo con `mpv` y no tenía nada para escuchar música: ni reproductor ni +# gestor de biblioteca. cmus lo cubre en las cuatro imágenes sin tocar ninguna decisión de +# escritorio — es una TUI, no depende del compositor. +# +# ── EL `configure` NO ES AUTOTOOLS, Y ESO CAMBIA LA SINTAXIS ────────────────────────────────── +# Toma asignaciones `clave=valor`, no `--flags`: `prefix=/usr`, `CONFIG_ALSA=y`. Pasarle +# `--prefix=/usr` no da un error, lo IGNORA — y el paquete acabaría en /usr/local sin que nada +# falle. Es el modo de fallo silencioso de siempre, así que va anotado. +# +# `CONFIG_PULSE=n`: el corpus tiene `pipewire` (promovida el 2026-09-03) y su capa ALSA +# (`-Dpipewire-alsa=enabled`), así que la salida ALSA desemboca en PipeWire igual que hace `mpv`. +# `libpulse` del corpus es la variante con la glib ESTÁTICA adentro y no se quiere en un cliente. +name = "cmus" +version = "2.12.0" +license = "GPL-2.0-only" + +[source] +repo = "https://github.com/cmus/cmus" +commit = "58d34cf9db5c29e01a985a48a9b6947855cb6cc9" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" + +[build.phases] +configure = './configure prefix=/usr CONFIG_ALSA=y CONFIG_PULSE=n CONFIG_JACK=n CONFIG_AO=n CONFIG_SNDIO=n CONFIG_ROAR=n CONFIG_FFMPEG=y CONFIG_CDIO=n CONFIG_MPRIS=n' +compile = 'make' +install = 'make DESTDIR=/out install' + +[deps] +build = ["ncurses", "ffmpeg", "alsa-lib", "pkgconf"] diff --git a/recipes/nushell.toml b/recipes/nushell.toml new file mode 100644 index 00000000..030fd6c8 --- /dev/null +++ b/recipes/nushell.toml @@ -0,0 +1,28 @@ +# nushell 0.115.1 — shell estructurada (los comandos devuelven TABLAS, no texto). Rust puro. +# +# ── POR QUÉ ENTRA ────────────────────────────────────────────────────────────────────────────── +# El catálogo tiene TRES shells y ninguna es una alternativa moderna: `bash` (la de base), +# `busybox` (ash, la del rootfs) y `elvish`. nushell es la que la gente busca por nombre cuando +# dice «shell moderna», y encaja con la capa CLI en Rust que este corpus ya tiene entera. +# +# ⚠ NO ES LA SHELL DE `/bin/sh` NI LO VA A SER. Su lenguaje no es POSIX: un script del sistema NO +# corre acá. Entra como shell INTERACTIVA, junto a bash, no en su lugar. Ponerla de login shell por +# defecto rompería todo lo que `#!/bin/sh` asume — eso sería una decisión de distro, no una receta. +name = "nushell" +version = "0.115.1" +license = "MIT" + +[source] +repo = "https://github.com/nushell/nushell" +commit = "798c55d19505fd52f205d7eb32a571b9d06ec9e6" + +[build] +# `compiler = "gcc"` por el mismo motivo que zellij/gitui/delta: el árbol trae crates `*-sys` con +# build-script en C, y cc-rs invoca `gcc`. El LINKER sigue siendo zig-cc. +compiler = "gcc" +target = "x86_64-linux-musl" +link = "static" +flags = ["--bin", "nu"] + +[deps] +build = ["zlib", "openssl", "pkgconf"]