diff --git a/recipes/btop.toml b/recipes/btop.toml new file mode 100644 index 00000000..879a4981 --- /dev/null +++ b/recipes/btop.toml @@ -0,0 +1,35 @@ +# btop 1.4.7 — monitor de recursos en TUI (CPU/mem/disco/red/procesos). C++20, Makefile. +# +# ── POR QUÉ ENTRA SI YA ESTÁ `bottom` ────────────────────────────────────────────────────────── +# No se solapan del todo: `bottom` (Rust) es el monitor de la cola CLI y btop es el que la gente +# busca por nombre. Pesa un binario y cero deps de runtime — el corpus ya tiene `ncurses`, pero +# btop NO la usa: dibuja con secuencias ANSI propias. +# +# ── C++20 CON LA libc++ DE ZIG, Y POR QUÉ ESO NO ES GRATIS ──────────────────────────────────── +# btop es C++20 (``, ``) y upstream compila con g++. Acá el compilador es zig-cc, +# que trae **libc++** (`std::__1::`), no la libstdc++ de GNU — ver [[cxx-runtime-debe-coincidir]]. +# Eso es seguro porque btop NO enlaza ninguna librería C++ del corpus: todo su C++ es suyo. Si +# algún día pidiera una, habría que decidir el runtime primero y la receta después. +name = "btop" +version = "1.4.7" +license = "Apache-2.0" + +[source] +repo = "https://github.com/aristocratos/btop" +commit = "6e39144aaf5a6bc01b9f795010b0914431067183" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" + +[build.phases] +# ⚠ `configure = "true"` NO ES RELLENO. btop 1.4.x trae CMakeLists.txt **y** Makefile, y el +# autodetector del lab ve el primero ⇒ generaba un `cmake -S . -B _build` que muere con +# `cmake: not found` (cmake es una receta del corpus, no una herramienta del lab). La vía +# soportada por upstream es el Makefile; apagar la fase de configure es lo que la elige. +configure = 'true' +# STATIC=true es la perilla de upstream para el binario estático; el `LDFLAGS=-static` del lab no +# alcanza porque el Makefile arma su propia línea de enlace. +compile = 'make STATIC=true VERBOSE=true' +install = 'make install DESTDIR=/out PREFIX=/usr'