# fastfetch — la tarjeta de presentación del sistema: qué distro, qué kernel, qué CPU, qué RAM. # # Pedido por el usuario (2026-09-14). No es adorno: en una distro propia es la primera herramienta # que contesta «¿qué estoy corriendo?» sin leerse tres ficheros de `/proc`, y en una caja recién # instalada es lo que distingue «arrancó» de «arrancó lo que yo creía». # # ══ CMake + zig: la línea que no se puede olvidar ══════════════════════════════════════════════ # `-DCMAKE_LINK_DEPENDS_USE_LINKER=OFF`. Sin eso, el `lld` de zig **segfaultea** al recibir # `--dependency-file` y el error no menciona a zig ni a lld — dice `Error running link command: # Segmentation fault`. Cinco de las quince recetas CMake barridas estaban selladas Y rotas por esto. # # ══ LO QUE SE APAGA, Y POR QUÉ ═════════════════════════════════════════════════════════════════ # fastfetch detecta MUCHO por `dlopen` de librerías opcionales (X11, Vulkan, DConf, ImageMagick…). # Con `link = "static"` eso no aplica: el binario no abre nada en runtime. Se apagan explícitamente # los módulos que traerían dependencias que esta distro no tiene —o que las tiene por otra vía— para # que el build no dependa de qué haya en el lab **el día que se construya**: una detección que entra # «porque estaba» es un artefacto distinto en cada máquina, con el mismo nombre. name = "fastfetch" version = "2.68.1" license = "MIT" [source] repo = "https://github.com/fastfetch-cli/fastfetch" commit = "1c1136ebd1e943d6d2ba7c204a11deee3e948dd8" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" flags = [] [deps] build = ["cmake", "linux-headers"] [build.phases] # ⚠ `-Wno-error=date-time`: `version.c` usa `__DATE__`/`__TIME__` y el lab compila con # `-Werror=date-time` —la política de reproducibilidad del sandbox, que aquí hizo exactamente su # trabajo y paró el build—. Desactivarlo es SEGURO **porque el sandbox exporta `SOURCE_DATE_EPOCH`**: # con esa variable definida, clang hace que `__DATE__`/`__TIME__` rindan esa fecha fija en vez de la # del reloj, así que el binario sigue siendo determinista. Sin `SOURCE_DATE_EPOCH` esto sería # hornear la hora del build dentro del artefacto, que es justo lo que el warning previene. configure = "cmake -S . -B build -DCMAKE_C_FLAGS=-Wno-error=date-time -DCMAKE_LINK_DEPENDS_USE_LINKER=OFF -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DENABLE_SYSTEM_YYJSON=OFF -DENABLE_VULKAN=OFF -DENABLE_OPENCL=OFF -DENABLE_X11=OFF -DENABLE_XRANDR=OFF -DENABLE_WAYLAND=OFF -DENABLE_DCONF=OFF -DENABLE_IMAGEMAGICK7=OFF -DENABLE_CHAFA=OFF -DENABLE_DBUS=OFF -DENABLE_PULSE=OFF -DENABLE_DDCUTIL=OFF -DENABLE_SQLITE3=OFF -DENABLE_RPM=OFF -DENABLE_LIBNM=OFF -DENABLE_LIBZFS=OFF -DENABLE_EGL=OFF -DENABLE_GLX=OFF -DENABLE_OSMESA=OFF -DENABLE_DRM=OFF -DENABLE_ELF=OFF -DENABLE_LIBCJSON=OFF" compile = "cmake --build build" install = "DESTDIR=/out cmake --install build"