# logrotate 3.22.0 — la rotación de logs. Es la última de las tres raíces que `targets.toml` declara # para el perfil `servidor` y que no tenían receta: el grafo las contaba como `wanted` y la deuda del # perfil era exactamente ésa. El motivo escrito allí sigue valiendo: en una caja que sirve, el log de # acceso crece hasta llenar el disco, y Caddy rota el suyo por configuración pero nada más lo hace. # # DOS DEFAULTS DE `configure` QUE SE PINEAN A PROPÓSITO, y no por prolijidad: # # 1. **`--with-selinux=no --with-acl=no`.** Los dos vienen con `[default=check]`, o sea que el # contenido del binario depende de si el LAB tiene `libselinux`/`libacl` instaladas. El lab NO # entra en `hash_inputs` (deuda conocida del repo): dos labs distintos sellarían bytes distintos # en la MISMA dirección del store y nada lo notaría. Fijarlo en `no` lo vuelve una decisión de la # receta —que sí entra en el hash— en vez de un accidente del entorno. Y `no` es lo correcto acá: # la distro no lleva SELinux ni ACLs POSIX. # # 2. **`--with-compress-command` / `--with-uncompress-command`.** `configure.ac` elige la ruta por # sistema operativo y en Linux fija `/usr/bin/gzip`, que en esta distro NO EXISTE: el `gzip` y el # `gunzip` los provee busybox y quedan en `/bin` (comprobado en el artefacto sellado de busybox). # Un logrotate con `compress` en la config fallaría en runtime buscando un binario ausente, y el # error sería «no se pudo comprimir», no «la ruta está mal». Se pinean a `/bin/…`. # # **Lo que NO se pinea, y por qué se deja anotado:** el `mail command` queda en su default # `/bin/mail`, que en esta distro NO existe — busybox provee `sendmail`, no `mail`. No se cambia a # `/bin/sendmail` porque no es un reemplazo: logrotate lo invoca como `mail -s ` y # la interfaz de busybox es otra. Sólo afecta a configuraciones que usen la directiva `mail`, que la # distro hoy no tiene; queda dicho para que se descubra leyendo y no en runtime. # # `--with-state-file-path` se deja en su default (`/var/lib/logrotate.status`): es ruta de ESTADO en # la máquina viva, no algo que la imagen deba decidir. # # `link = "static"`: binario monolítico, como el resto de las herramientas de sistema. popt publica # sólo `.a` justo para que acá no aparezca un NEEDED colgante. name = "logrotate" version = "3.22.0" license = "GPL-2.0-or-later" [source] tarball = "https://github.com/logrotate/logrotate/releases/download/3.22.0/logrotate-3.22.0.tar.xz" sha256 = "42b4080ee99c9fb6a7d12d8e787637d057a635194e25971997eebbe8d5e57618" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" flags = [] [build.phases] configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr --with-selinux=no --with-acl=no --with-compress-command=/bin/gzip --with-uncompress-command=/bin/gunzip' compile = 'make -j"$(nproc)"' install = "make install DESTDIR=/out && find /out -name '*.la' -delete" [deps] build = ["binutils", "busybox", "make", "pkgconf", "popt"]