Commit Graph
4 Commits
Author SHA1 Message Date
sergioandClaude Opus 4.8 4e9b6327ed recetas: libinput, fcft y foot sellan — mtdev con -fPIC y fuente git en la familia foot
Las tres estaban en deuda por TRES causas distintas, encadenadas de modo que cada una tapaba a la
siguiente:

1. libinput moría con "no suitable Python interpreter found", un mensaje de AUTOTOOLS siendo libinput
   meson puro: el que fallaba era su dep `libevdev` (arreglado en el commit anterior declarando
   make/python3).
2. Destapado eso, el muro real de libinput era
   "relocation R_X86_64_32S ... recompile with -fPIC" apuntando a `libmtdev.a`: libinput enlaza ese
   archivo estático DENTRO de libinput.so, y libtool sólo compila los objetos estáticos con -fPIC si
   se lo pedís. `mtdev` ahora configura con `--with-pic`.
3. fcft y foot fallaban con sha256 mismatch: el `/archive/<tag>.tar.gz` de codeberg lo genera la
   forge AL VUELO, así que sus bytes dependen de la versión de git/gzip del servidor. El pin se
   murió solo cuando codeberg actualizó su tooling — no es corrupción: hoy baja de forma estable,
   pero con OTRO hash (esperado c0d8d485…, real b0c0f4a5…). Re-pinear arreglaría hoy y volvería a
   romperse; pasan a fuente GIT por commit, que es inmune (ADR 0006).
   OJO: los dos tags son ANOTADOS ⇒ el sha que devuelve `git ls-remote <tag>` es el objeto tag, no
   el commit. Van los `^{}`.

Verificado: las seis (libinput, fcft, foot, mtdev, libevdev, utf8proc) SELLADAS, y el binario de
foot es ELF dinámico con NEEDED = sólo libc.so, sin fugas del rootfs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 18:15:07 -04:00
sergioandClaude Opus 4.8 87634f3196 matar-gcc: libevdev + mtdev migradas a zig-cc (generan la lib con zig)
Las 2 'sin confirmar' del balance: el smoke-test no las verificaba por ser libs
sin binario, pero generan la lib con zig (libevdev.so, libmtdev.a). Migradas.

mtdev queda COMPLETAMENTE de-Alpinizado: config.sub soberano (patch de esta
sesión) + zig compiler ⇒ cero dependencia de Alpine. Era la única deuda de
soberanía del barrido harkaq y ahora está cerrada por entero.

Total matar-gcc: 29 recetas C migradas. Quedan 18 compiler=gcc (4 matraca-C
dura + 11 Rust + 3 no medidas).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 15:33:50 -04:00
sergioandClaude Opus 4.8 a1ab8774c5 harkaq: mtdev — deuda de config.sub CERRADA con patch soberano (+ límite del modelo descubierto)
El único caso de deuda de soberanía del barrido: mtdev copiaba el config.sub/guess
del autoconf de ALPINE (/usr/share/autoconf/build-aux/) porque el suyo (1.1.6) no
conoce *-musl. harkaq lo cazó como lectura no declarada del rootfs.

CERRADO con recipes/mtdev-config-sub-musl.patch: 11 líneas, +`-musl*` a la
whitelist de OS del config.sub DEL PROPIO TARBALL. Ahora es input soberano
(hasheado con la receta), sin leer Alpine. Se quitó el `cp /usr/share/autoconf/...`
del configure. Verificado: mtdev construye (b3:47708e40) sin tocar /usr/share/autoconf.

Método (con un tropiezo honesto): casi afirmo que el `cp` era espurio porque el
config.sub en work/sources/mtdev daba exit 0 con musl — pero ese source estaba
MUTADO por un build previo (el cp lo había reemplazado por el de Alpine). El
tarball ORIGINAL fresco NO conoce musl (exit 1). Casi valido sobre un source
contaminado; me salvó chequear el exit code, no el output.

DESCUBIERTO AL CERRARLO: mtdev tenía DOS deudas de Alpine, no una. También usa
`compiler = "gcc"` (gcc de Alpine, no zig). Bajo la jaula la política deniega
/usr/bin/gcc (sonda esperada) y el configure da "C compiler cannot create
executables". Es parte de matar-gcc (kernel, cmake, mtdev), frente aparte.

LÍMITE DEL MODELO (nuevo, documentado en needs-review): harkaq clasifica gcc como
"sonda esperada" SIEMPRE, así que marca la fase Hermetico — pero para una receta
compiler=gcc, gcc es ESENCIAL y el build no compila sin él. harkaq no distingue
"gcc sondeado (ignorable)" de "gcc = el compilador". Caso límite real del
clasificador; no invalida el cierre de config.sub (producción no usa la jaula).

make declarado en mtdev (deuda declarable restante). config.sub fuera de
needs-review; queda anotado el gcc-compilador.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 08:04:03 -04:00
sergioandClaude Opus 4.8 7f11f2ed53 Etapa G: stack de entrada para mirada-compositor — libinput + libudev-zero + libevdev + mtdev
mirada-compositor (smithay, default features) enlaza en build input-sys/libudev-sys/drm-sys/
gbm-sys/libseat-sys. drm/gbm/libseat ya están (libdrm/mesa/seatd). Faltaban:

- libudev-zero 1.0.4: libudev SIN udevd (lee /sys y /dev directo) — encaja con la filosofía
  no-systemd de tawasuyu (arje es el init). Alternativa pesada: eudev.
- mtdev 1.1.6: multitouch. config.sub viejo no conoce *-musl ⇒ se reemplaza por el moderno del
  sandbox (autoconf build-aux) antes de configurar.
- libevdev 1.13.4: wrapper de ioctls evdev.
- libinput 1.27.1 (meson): -Dlibwacom=false (sin tablets Wacom), sin debug-gui/tests/docs.

Los cuatro sellados. xkbcommon NO hace falta como build-dep (smithay usa xkbcommon-dl = dlopen);
sí en runtime.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 06:26:34 -04:00