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…

TOML 815Rust 56Shell 37Markdown 291229 Definiciones

recetas: nushell y cmus — shell moderna y reproductor de música, sellados

  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.

3f2620f6b72c595ba68e312e053d5c899f351107 · por Sergio · (hace 1 mes) · padre b8738c6c3 · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

2 archivos · +63 −0

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"]