busybox 69 → 64: psmisc y bc, las dos piezas que el plan marcaba TRAER
psmisc 23.7 (killall pstree fuser prtstat pslog) y gavinhoward/bc 7.0.3 (bc Y dc del mismo árbol). Ninguna estaba en el corpus, y lo de psmisc es lo que el plan daba por cubierto sin estarlo: procps-ng NO trae killall ni pstree ni fuser — procps-ng es ps/top/free/kill/pgrep/pkill/pidof/uptime/vmstat/w/watch. bc es el de gavinhoward y no el de GNU por la cadena: C99 sin dependencias, bc y dc en un árbol, y es el bc de sistema de Alpine y FreeBSD. El de GNU arrastra ed y flex, y su dc va en otro paquete. ⚠ killall5 NO lo trae psmisc: es de sysvinit. Acá lo cubre arje-zero por FUNCIÓN (es PID 1 y apaga él) ⇒ se retira con los indultos, no se reemplaza. Son 3 de los 4 que la tabla prometía, dicho así para que no vuelva a prometer lo que no hay. Dos pisones de psmisc, los dos escritos en la receta para no repetirlos: 1. `-lncurses` no existe acá (la nuestra es widec ⇒ libncursesw.a). No sirve LIBS=-lncursesw —el AC_CHECK_LIB compila un programa de prueba CON -lncurses, no pregunta si el símbolo resuelve— ni la variable de caché con `make TERMCAP_LIB=…`, porque src_pstree_LDADD = @TERMCAP_LIB@ se sustituye en tiempo de configure y el Makefile queda con -lncurses LITERAL. Lo que funciona es un enlace libncurses.a → libncursesw.a en el scratch y un -L. 2. Y ese -L se comió el -static. El harness inyecta LDFLAGS=-static para las recetas link="static" (takana-build/src/lib.rs:285); reemplazar LDFLAGS lo pierde. Los seis binarios sellaron DINÁMICOS sin que nada fallara: killall respondía bien y sólo pstree moría en ejecución con `Error relocating /lib/libncursesw.so.6`, tomando la librería del anfitrión. Un `file` lo dice en un segundo; ninguna prueba del build lo iba a decir. Los dos van a `base` en targets.toml, y el censo baja de 69 a 64. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1215,3 +1215,40 @@ repo que escribe la EXPECTATIVA (este applet debería venir de este paquete) con
|
||||
Es la misma forma que [[subcomando-sin-driver]]: el problema no se ve mirando el artefacto, se ve
|
||||
cruzándolo con lo que alguien prometió que tendría.
|
||||
|
||||
|
||||
## Segunda tanda: las dos piezas que el plan marcaba TRAER (2026-09-21)
|
||||
|
||||
> **64 applets** sólo-busybox, desde 79. Cinco más, y otra vez sin escribir userland.
|
||||
|
||||
| receta | applets | sello |
|
||||
|---|---|---|
|
||||
| `recipes/psmisc.toml` (23.7) | `killall pstree fuser` (+`prtstat pslog`) | `b3:b361bd04…` |
|
||||
| `recipes/bc.toml` (gavinhoward/bc 7.0.3) | `bc dc` | `b3:050efb84…` |
|
||||
|
||||
**`bc` es gavinhoward/bc y no el de GNU**, y la razón es de cadena: C99 sin dependencias, `bc` **y**
|
||||
`dc` del mismo árbol, y es el bc de sistema de Alpine y FreeBSD. El de GNU arrastra `ed` y `flex`
|
||||
como build-deps y su `dc` va en otro paquete.
|
||||
|
||||
⚠ **`killall5` NO lo trae psmisc** — es de sysvinit. Acá lo cubre `arje-zero` por FUNCIÓN (es PID 1
|
||||
y apaga él), así que el applet se retira con los indultos en vez de reemplazarse. Son 3 de los 4 que
|
||||
la tabla prometía, y decirlo así evita que vuelva a prometer lo que no hay.
|
||||
|
||||
### Los dos pisones de psmisc, que enseñan más que el resultado
|
||||
|
||||
**1 · `-lncurses` no existe en este corpus, y hay dos formas de no arreglarlo.** El `configure` de
|
||||
psmisc busca `tgetent` por NOMBRE de librería (`-ltinfo`, `-lncurses`, `-ltermcap`) y la nuestra es
|
||||
`--enable-widec`, o sea `libncursesw.a`. Falló primero con `LIBS=-lncursesw` —el `AC_CHECK_LIB` no
|
||||
pregunta si el símbolo resuelve, **compila un programa de prueba con `-lncurses`**— y falló después
|
||||
con `ac_cv_lib_ncurses_tgetent=yes` + `make TERMCAP_LIB=-lncursesw`, porque
|
||||
`src_pstree_LDADD = @TERMCAP_LIB@` se sustituye **en tiempo de configure** y el Makefile queda con
|
||||
`-lncurses` literal, no con una referencia a la variable. Lo que funciona es darle el nombre que
|
||||
busca: un enlace `libncurses.a → libncursesw.a` en el scratch y un `-L` a ese directorio.
|
||||
|
||||
**2 · Y ese `-L` se comió el `-static`.** Primera versión: `LDFLAGS="-L$PWD/.compat-ncurses"`. El
|
||||
harness inyecta `LDFLAGS=-static` para las recetas `link = "static"`
|
||||
(`takana-build/src/lib.rs:285`), así que reemplazarlo lo pierde. **Los seis binarios sellaron
|
||||
DINÁMICOS y nada falló**: `killall --version` contestaba bien, y sólo `pstree` —el único que enlaza
|
||||
ncurses— moría en ejecución con `Error relocating /lib/libncursesw.so.6`, tomando la librería del
|
||||
anfitrión. Un `file` sobre los binarios lo dice en un segundo; ninguna prueba del build lo iba a
|
||||
decir. Es [[cgo-sin-baseline-sigill]] otra vez: **redefinir una variable que el harness ya puebla
|
||||
pierde en silencio lo que el harness había puesto**, y el síntoma aparece lejos.
|
||||
|
||||
@@ -15,7 +15,7 @@ awk awk-DECISION — n/a DECIDIR — gawk (C) y goawk (Go) sellados sin perfil;
|
||||
base32 uutils sellada SIN perfil sin-verificar construida y no viaja en ninguna imagen BASE32 sigue coreutils,uutils 2026-09-21 coreutils,uutils 2026-09-21
|
||||
base64 uutils sellada SIN perfil sin-verificar construida y no viaja en ninguna imagen BASE64 sigue coreutils,uutils 2026-09-21 coreutils,uutils 2026-09-21
|
||||
basename uutils sellada SIN perfil sin-verificar construida y no viaja en ninguna imagen BASENAME sigue coreutils,uutils 2026-09-21 coreutils,uutils 2026-09-21
|
||||
bc bc-TRAER — n/a TRAER — no hay receta bc BC sigue SOLO-BUSYBOX 2026-09-21 SOLO-BUSYBOX 2026-09-21
|
||||
bc bc-TRAER — n/a TRAER — no hay receta bc BC sigue bc 2026-09-21 bc 2026-09-21
|
||||
beep BORRAR — n/a BORRAR — sale del defconfig, no se reemplaza BEEP RETIRADO n/a (retirado) n/a (retirado)
|
||||
blkdiscard util-linux sellada+perfil sin-verificar base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor BLKDISCARD sigue util-linux 2026-09-21 util-linux 2026-09-21
|
||||
blkid util-linux sellada+perfil sin-verificar base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor BLKID sigue e2fsprogs,util-linux 2026-09-21 e2fsprogs,util-linux 2026-09-21
|
||||
@@ -51,7 +51,7 @@ cryptpw shadow sellada+perfil NO-drop-in shadow no lo trae CRYPTPW sigue SOLO-BU
|
||||
cttyhack getty-ESCRIBIR — n/a ESCRIBIR — hoy la card de getty ejecuta /bin/busybox (lib.rs:429) CTTYHACK sigue SOLO-BUSYBOX 2026-09-21 SOLO-BUSYBOX 2026-09-21
|
||||
cut uutils sellada SIN perfil sin-verificar construida y no viaja en ninguna imagen CUT sigue coreutils,uutils 2026-09-21 coreutils,uutils 2026-09-21
|
||||
date uutils sellada SIN perfil sin-verificar construida y no viaja en ninguna imagen DATE sigue coreutils,uutils 2026-09-21 coreutils,uutils 2026-09-21
|
||||
dc bc-TRAER — n/a TRAER — no hay receta bc DC sigue SOLO-BUSYBOX 2026-09-21 SOLO-BUSYBOX 2026-09-21
|
||||
dc bc-TRAER — n/a TRAER — no hay receta bc DC sigue bc 2026-09-21 bc 2026-09-21
|
||||
dd uutils sellada SIN perfil sin-verificar construida y no viaja en ninguna imagen DD sigue coreutils,uutils 2026-09-21 coreutils,uutils 2026-09-21
|
||||
deallocvt kbd sellada+perfil sin-verificar base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor DEALLOCVT sigue kbd 2026-09-21 kbd 2026-09-21
|
||||
delgroup shadow sellada+perfil NO-drop-in shadow da groupdel DELGROUP sigue SOLO-BUSYBOX 2026-09-21 SOLO-BUSYBOX 2026-09-21
|
||||
@@ -107,7 +107,7 @@ fsync BORRAR — n/a BORRAR — sale del defconfig, no se reemplaza FSYNC RETIRA
|
||||
ftpd BORRAR — n/a BORRAR — sale del defconfig, no se reemplaza FTPD RETIRADO n/a (retirado) n/a (retirado)
|
||||
ftpget BORRAR — n/a BORRAR — sale del defconfig, no se reemplaza FTPGET RETIRADO n/a (retirado) n/a (retirado)
|
||||
ftpput BORRAR — n/a BORRAR — sale del defconfig, no se reemplaza FTPPUT RETIRADO n/a (retirado) n/a (retirado)
|
||||
fuser psmisc-TRAER — n/a TRAER — no hay receta psmisc; procps-ng NO trae killall/pstree FUSER sigue SOLO-BUSYBOX 2026-09-21 SOLO-BUSYBOX 2026-09-21
|
||||
fuser psmisc-TRAER — n/a TRAER — no hay receta psmisc; procps-ng NO trae killall/pstree FUSER sigue psmisc 2026-09-21 psmisc 2026-09-21
|
||||
getopt util-linux sellada+perfil sin-verificar base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor GETOPT sigue util-linux 2026-09-21 util-linux 2026-09-21
|
||||
getty getty-ESCRIBIR — n/a ESCRIBIR — hoy la card de getty ejecuta /bin/busybox (lib.rs:429) GETTY sigue SOLO-BUSYBOX 2026-09-21 SOLO-BUSYBOX 2026-09-21
|
||||
grep grep-posix — n/a ESCRIBIR — CLI POSIX sobre grep-searcher/grep-regex de ripgrep; `grep` GNU (sellado, sin perfil) como puente GREP sigue grep 2026-09-21 grep 2026-09-21
|
||||
@@ -154,7 +154,7 @@ iprule iproute2 sellada+perfil sin-verificar base,cli,escritorio-cosmic,escritor
|
||||
iptunnel iproute2 sellada+perfil sin-verificar base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor IPTUNNEL sigue SOLO-BUSYBOX 2026-09-21 SOLO-BUSYBOX 2026-09-21
|
||||
kbd_mode kbd sellada+perfil sin-verificar base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor KBD_MODE sigue kbd 2026-09-21 kbd 2026-09-21
|
||||
kill uutils sellada SIN perfil sin-verificar construida y no viaja en ninguna imagen KILL sigue coreutils,procps-ng,util-linux,uutils 2026-09-21 coreutils,procps-ng,util-linux,uutils 2026-09-21
|
||||
killall psmisc-TRAER — n/a TRAER — no hay receta psmisc; procps-ng NO trae killall/pstree KILLALL sigue SOLO-BUSYBOX 2026-09-21 SOLO-BUSYBOX 2026-09-21
|
||||
killall psmisc-TRAER — n/a TRAER — no hay receta psmisc; procps-ng NO trae killall/pstree KILLALL sigue psmisc 2026-09-21 psmisc 2026-09-21
|
||||
killall5 psmisc-TRAER — n/a TRAER — no hay receta psmisc; procps-ng NO trae killall/pstree KILLALL5 sigue SOLO-BUSYBOX 2026-09-21 SOLO-BUSYBOX 2026-09-21
|
||||
klogd hammerd sellada SIN perfil sin-verificar construida y no viaja en ninguna imagen KLOGD RETIRADO n/a (retirado) n/a (retirado)
|
||||
last util-linux sellada+perfil sin-verificar base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor LAST sigue util-linux 2026-09-21 util-linux 2026-09-21
|
||||
@@ -247,7 +247,7 @@ printenv uutils sellada SIN perfil sin-verificar construida y no viaja en ningun
|
||||
printf uutils sellada SIN perfil sin-verificar construida y no viaja en ninguna imagen PRINTF sigue coreutils,uutils 2026-09-21 coreutils,uutils 2026-09-21
|
||||
ps procps-ng sellada+perfil sin-verificar base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor PS sigue procps-ng 2026-09-21 procps-ng 2026-09-21
|
||||
pscan BORRAR — n/a BORRAR — sale del defconfig, no se reemplaza PSCAN RETIRADO n/a (retirado) n/a (retirado)
|
||||
pstree psmisc-TRAER — n/a TRAER — no hay receta psmisc; procps-ng NO trae killall/pstree PSTREE sigue SOLO-BUSYBOX 2026-09-21 SOLO-BUSYBOX 2026-09-21
|
||||
pstree psmisc-TRAER — n/a TRAER — no hay receta psmisc; procps-ng NO trae killall/pstree PSTREE sigue psmisc 2026-09-21 psmisc 2026-09-21
|
||||
pwd uutils sellada SIN perfil sin-verificar construida y no viaja en ninguna imagen PWD sigue coreutils,uutils 2026-09-21 coreutils,uutils 2026-09-21
|
||||
pwdx procps-ng sellada+perfil sin-verificar base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor PWDX sigue procps-ng 2026-09-21 procps-ng 2026-09-21
|
||||
raidautorun BORRAR — n/a BORRAR — sale del defconfig, no se reemplaza RAIDAUTORUN RETIRADO n/a (retirado) n/a (retirado)
|
||||
|
||||
|
@@ -134,6 +134,13 @@ paquetes = [
|
||||
# así que el único `xz` de la imagen era el applet de busybox. Ampliar la canónica re-hashearía
|
||||
# a sus 14 consumidores; va como variante, igual que `zstd-cli`.
|
||||
"xz-tools",
|
||||
# `psmisc` y `bc` (2026-09-21): las dos piezas que el censo marcaba como TRAER, y ninguna estaba
|
||||
# en el corpus. `psmisc` da `killall pstree fuser prtstat pslog` — y esto es lo que el plan daba
|
||||
# por cubierto y no lo estaba: **`procps-ng` NO los trae**. procps-ng es `ps top free kill pgrep
|
||||
# pkill pidof uptime vmstat w watch`; matar por NOMBRE y el árbol de procesos son de psmisc.
|
||||
# `bc` es gavinhoward/bc: `bc` Y `dc` del mismo árbol, C99 sin dependencias, el que usan Alpine y
|
||||
# FreeBSD. La alternativa de GNU arrastra `ed` y `flex`, y su `dc` va en otro paquete.
|
||||
"psmisc", "bc",
|
||||
]
|
||||
|
||||
[perfil.cli]
|
||||
|
||||
Reference in New Issue
Block a user