tawasuyu

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 1534Shell 199Rust 109Markdown 993713 Sutichaykuna

⎇ 98edf488bbffd2dae507a6317a78bb61d5a9c07a recipes/logrotate.toml TOML · 52 siq'ikuna · 3.0 KB Ñawpa willay ch'uya

busybox sale de las 24 build-deps: ya no viaja en NINGUNA imagen b53d91edf · Sergio ·

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