Commit Graph
100 Commits
Author SHA1 Message Date
sergioandClaude Opus 4.8 556a9cc7c3 Etapa G (clib): rescata patches huérfanos de json-c y libuv
Sus recetas canónicas referenciaban cmake-version.patch / fix-test-musl.patch pero los
ficheros habían quedado en tandas/staged-2026-06-26/ (patch-huérfano de una promoción
vieja) ⇒ pack fallaba. Movidos junto a su receta; ambos publican+firman ahora.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 14:27:16 -04:00
sergioandClaude Opus 4.8 7008d0446b Etapa G (clib): gradúa 15 libs C ya publicadas — incoming-clib → recipes/
Cierra el desfase receta/repo: 15 recetas que ya construyen y están publicadas+firmadas
en dist/repo pero seguían en la cola de staging. Sin colisión con canónicas (guarda de
build-farm). Los .patch viajan con su receta. Quedan en incoming-clib las 13 variantes
colisionantes (build-deps del stack GUI) y las 14 GUI deep-dep sin publicar aún.

brotli fribidi gettext-tiny giflib glib gperf graphene harfbuzz itstool
libjpeg-turbo libsass libtiff libxmlb lz4 sassc

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 09:47:15 -04:00
sergioandClaude Opus 4.8 4517a985c1 Etapa G (granja): promote más seguro — patches viajan con la receta + guarda de colisión
Dos bugs del promote de build-farm.sh, hallados al cosechar incoming-clib:
1. mv movía el .toml pero NO sus .patch (quedaban en la cola) ⇒ toda receta
   parcheada fallaba el pack ("leyendo patch ...: No such file or directory").
   Ahora mueve los patches referenciados junto al .toml.
2. mv sobrescribía a ciegas una receta canónica de recipes/ con una variante
   homónima de la cola (p.ej. curl 8.11 mínimo-para-appstream pisando el
   curl 8.20 full). Se agrega guarda: si ya existe recipes/<n>.toml, NO se
   promueve la variante (queda staged para triage) ni se re-publica.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 06:11:36 -04:00
sergioandClaude Opus 4.8 0c6290a0b6 Etapa G (clib): arregla brotli (cmake vía [deps].build, sin Ninja/wheel) + elimina bzip2 duplicado
brotli fallaba con 'cmake: not found' porque no declaraba cmake en [deps].build
(patrón libjpeg-turbo/libtiff que sí materializa el tool). bzip2 en incoming-clib
era un duplicado del ya-promovido recipes/bzip2.toml (sellado en dist/repo).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 05:24:44 -04:00
sergioandClaude Opus 4.8 957c6bc9de Etapa G (GUI): hammer-edit — editor de código REAL del distro (Adwaita+GtkSourceView)
Abrir/guardar/guardar-como (GtkFileDialog async), resaltado por extensión, números de línea, línea
actual, auto-indent, apertura de archivos desde CLI (G_APPLICATION_HANDLES_OPEN). Link 100% estático:
157MB ELF 'not a dynamic executable', --help responde. App instalable y usable, no una demo.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 20:25:48 -04:00
sergioandClaude Opus 4.8 f7582cfd24 Etapa G (GUI): arregla hojas giflib/xz/libwebp — deps espurias del import nix
giflib: quita xmlto (solo docs). xz: fuente release (trae ./configure; el archive del tag no) + quita
autoconf/automake/libtool. libwebp construye al destrabarse giflib. Limpia los fallos recurrentes del loop.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 15:31:02 -04:00
sergioandClaude Opus 4.8 0855015e51 Etapa G (GUI): sourceview-hello — editor de código (Adwaita + GtkSourceView, resaltado C + nums de línea)
Link 100% estático: gtk4+libadwaita+gtksourceview → 154MB ELF estático, corre. Esqueleto de un editor
real para el distro; valida los 3 stacks juntos.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 14:59:57 -04:00
sergioandClaude Opus 4.8 4cf2eb5f2e Etapa G (GUI): gtksourceview 5.16 ✓ — widget de edición de código sobre GTK4 (base de editores/IDEs)
meson static; introspection/vapi/docs/sysprof off; sed elimina subdir tests/testsuite (linkean gtk4
estático y fallan por privadas, pero la lib sí construye).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 14:57:02 -04:00
sergioandClaude Opus 4.8 3cb76892cb Etapa G (GUI): validación libadwaita — adwaita-hello (AdwApplicationWindow+ToolbarView+StatusPage)
Linkeado 100% estático contra libadwaita-1.a: binario 152MB, ELF 'not a dynamic executable', corre.
Prueba que el stack Adwaita del lab es usable por apps reales.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 13:01:08 -04:00
sergioandClaude Opus 4.8 34697bb34a Etapa G (GUI): 🎉 libadwaita 1.7.6 ✓ — widgets modernos GNOME (Adwaita) sobre GTK4, static-musl
libadwaita-1.a archive GORDO (meson library() normal, sin el split de GTK) + libadwaita-1.pc + adwaita.h.
Cierra el stack GUI de alto nivel del lab: ya se pueden construir apps Adwaita.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 12:59:00 -04:00
sergioandClaude Opus 4.8 ec68fbe6f3 Etapa G (GUI): cadena de soporte de libadwaita — libsass/sassc (C++), libyaml, curl(min), libxmlb, gettext-tiny, itstool(stub), appstream(lean)
appstream 1.0.5 lean (compose/svg/stemming/gir/systemd off) destrabado con: gettext-tiny (msgfmt
p/ i18n de meson), itstool stub (copia el join-source, sin traducciones), curl mínimo (sin TLS, solo
satisface el link), libxmlb+libyaml, y sed que elimina subdir('docs/') incondicional (xsltproc+docbook).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 12:56:44 -04:00
sergioandClaude Opus 4.8 dfdddf062a Etapa G (GUI): libsass 3.6.6 + sassc 3.6.2 (C++ vía zig c++) — compilador SCSS para los estilos de libadwaita
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 12:28:23 -04:00
sergioandClaude Opus 4.8 82dfbcebfe Etapa G (GUI): validación — gtk4-hello, app GTK4 linkeada 100% estática contra libgtk-4.a
- gtk4.toml: el merge ahora fusiona TODOS los convenience-libs bajo output/ (gtk/css, gdk/wayland,
  cursor, gsk…), no solo gtk/gdk/gsk — el .a queda monolítico y autocontenido.
- gtk4-hello.toml: hello.c propio (GtkApplication+ventana), link estático vía pkg-config --static gtk4
  + privadas de gdk/gsk que gtk4.pc no declara (harfbuzz-subset/epoxy/xkbcommon/wayland/tiff/jpeg/
  cairo-script-interpreter). Binario: 134MB, ELF 'not a dynamic executable', corre (exit 0).

Prueba de que el toolkit de GUI del lab es USABLE por apps reales, no solo que compila.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 10:52:48 -04:00
sergioandClaude Opus 4.8 6ccd1c3846 Etapa G (GUI): 🎉 GTK4 4.18.6 ✓ — el toolkit de GUI completo, static-musl/zig-cc
Backend solo wayland (GL renderer vía libepoxy, vulkan off), todo lo opcional off.
Cierre .pc transitivo completo (24 deps). Parches: tools→libgtk_static_dep (la .so no
linkea con -static); instala libgtk-4.a además de la .so (apps static-musl). Corona el
stack gráfico C: glib/cairo/pango/gdk-pixbuf/graphene/libepoxy/wayland/mesa/harfbuzz/…

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 10:22:05 -04:00
sergioandClaude Opus 4.8 71e0769968 Etapa G (GUI): harfbuzz glib=enabled (hb-glib.h p/ GTK4) + cierre .pc transitivo (glib/pcre2/libffi/zlib) + PKG_CONFIG_PATH
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 10:06:26 -04:00
sergioandClaude Opus 4.8 6d7ab24fea Etapa G (GUI): libjpeg-turbo instala en /usr/lib (no lib64) — destraba pkg-config de libtiff→libjpeg y GTK4
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 09:56:02 -04:00
sergioandClaude Opus 4.8 a1b88d1735 Etapa G (GUI): libtiff ✓ — loader TIFF que gdk de GTK4 exige hard; cmake static, solo target tiff (esquiva helper mkg3states shared)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 09:51:49 -04:00
sergioandClaude Opus 4.8 c1a7370e6d Etapa G (GUI): gdk-pixbuf ✓ — esquiva shared-mime-info/glycin (gio_sniffing=false + builtin_loaders=png); último eslabón de deps GTK4
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 09:46:08 -04:00
sergio 61e1b7fe5c Etapa G: libepoxy recuperado — dep mesa (provee headers EGL/GL); mesa SÍ está en el repo 2026-06-30 07:54:45 -04:00
sergio ee3481b693 Etapa G: ncurses fallbacks built-in + install solo libs/includes (el tic de la DB terminfo es patológicamente lento) 2026-06-30 06:50:16 -04:00
sergio f109946eef Etapa G: sqlite/ncurses/readline (libs C foundational static) — destraban apps downstream 2026-06-30 06:10:56 -04:00
sergio 60c813cf06 Etapa G: zstd ✓ (Makefile no-asm); difiere gdk-pixbuf/libepoxy/gettext (bloqueados: shared-mime-info/mesa-EGL/gettext-roto) 2026-06-30 05:02:40 -04:00
sergio 223e614e95 Etapa G: zstd vía Makefile ZSTD_NO_ASM=1 (zig rechaza el .S de huf_decompress) 2026-06-30 05:01:30 -04:00
sergio c500470dbe Etapa G: libjpeg-turbo/zstd (cmake static) + lz4 (make static) — leaves imagen/compresión 2026-06-30 04:40:07 -04:00
sergio 5e68c03d94 Etapa G: libepoxy URL al github archive (la de releases daba 404) 2026-06-30 04:37:26 -04:00
sergio 87cc683765 Etapa G: graphene/libepoxy/libxkbcommon limpias (deps GTK4, meson static) 2026-06-30 04:31:40 -04:00
sergio 1db3ef0a5c Etapa G: gdk-pixbuf limpia (meson static, PNG, cierre transitivo) — carga de imágenes GUI 2026-06-30 00:42:32 -04:00
sergio 8335457e84 Etapa G: stack texto/2D+glib COMPLETO (16 libs C static) — base GTK/GUI + patrones de-Alpinización en memoria 2026-06-30 00:41:49 -04:00
sergio d40caecd4c Etapa G: pango cierre transitivo de .pc + c_args date-time 2026-06-30 00:40:38 -04:00
sergio d1134dc4bd Etapa G: cairo -Dc_args=-Wno-error=date-time (util cairo-script usa __DATE__) 2026-06-30 00:39:40 -04:00
sergio 01a58f253c Etapa G: cairo deps libffi+pcre2 (glib.pc Requires.private; pkg-config static transitivo) 2026-06-30 00:38:27 -04:00
sergio 91c708f8a5 Etapa G: cairo dep expat (fontconfig.pc Requires.private expat; pkg-config static lo exige) 2026-06-30 00:37:46 -04:00
sergio 6117ccd6e5 Etapa G: cairo/pango --wrap-mode=nodownload + PKG_CONFIG_PATH (usar deps del sistema, no bajar subproyectos) 2026-06-30 00:36:50 -04:00
sergio 97af53d737 Etapa G: cairo + pango limpias (meson static --prefer-static) — capstone texto/2D GUI 2026-06-30 00:29:57 -04:00
sergio 2c23b1a0b4 Etapa G: fontconfig dep python3 (su configure lo exige) 2026-06-30 00:28:05 -04:00
sergio fcd36fc2fc Etapa G: gperf -std=c++14 (3.1 usa 'register', prohibido en C++17) 2026-06-30 00:23:41 -04:00
sergio 205302afbb Etapa G: gperf (build-tool fontconfig) + glib --prefer-static (linkea .a no .so del base Alpine) 2026-06-30 00:17:24 -04:00
sergio f40af6718f Etapa G: expat/libxml2/fontconfig/glib limpias (static, sha256 computados, nls off en glib) 2026-06-30 00:10:04 -04:00
sergio dc5fd6701c Etapa G: pcre2/libpng/harfbuzz reescritas limpias (static, bottom-up GUI) 2026-06-30 00:00:10 -04:00
sergio 7c3ffef8eb Etapa G: nota frontera C/GUI (bases freetype/pixman/fribidi static + patrones de-Alpinización) 2026-06-29 23:31:35 -04:00
sergio 6e28cd9566 Etapa G: freetype/pixman/fribidi reescritas LIMPIAS (meson static mínimo, sin abuild) — bases GUI 2026-06-29 23:26:35 -04:00
sergio b32f3a0174 Etapa G: libs C autotools (expat/pcre2/libffi/libpng/fontconfig/gettext) a static (--disable-shared --enable-static) 2026-06-29 23:11:42 -04:00
sergio 1138c8981f Etapa G: zlib static (sin --shared, make libz.a) — lab static-musl rechaza el test shared 2026-06-29 23:09:46 -04:00
sergio 031535823f Etapa G: siembra 24 libs C de toolkit en incoming-clib (zlib/freetype/fontconfig/harfbuzz/cairo/pango/glib/...) — llenador de horas + ladrillos GUI 2026-06-29 23:02:57 -04:00
sergio 27fb9d4812 Etapa G: worker muele 3ª cola recipes/incoming-clib (libs C toolkit; el cron-go la ignora) 2026-06-29 22:56:01 -04:00
sergio de3ab6e427 Etapa G: cosecha-go finde (auto) — promovidos: gh-ost git-chglog gopass hostctl lefthook svu | review: temporal-cli(bin=gen-commands) 2026-06-29 22:52:37 -04:00
sergio 199ce9b9dd Etapa G: harvest lock STALE-AWARE (PID; roba si el dueño murió) — un lock huérfano bloqueó el cron 16h
+ dolt: corregido, necesita ICU4C (go-icu-regex), no oniguruma. oniguruma queda en el corpus (útil p/ otros regex).
2026-06-29 22:52:24 -04:00
sergio 15690d72c6 Etapa G: dolt full (subdir=go + cgo=true + oniguruma) — destrabado el regex cgo-externa 2026-06-29 15:58:07 -04:00
sergio 3f9121798f Etapa G: fetch extrae tarballs con tar --no-same-owner (fix de clase)
Como root (granja), tar preservaba el uid del tarball → el sandbox (userns) no podía chmod/escribir
esos ficheros → configure autotools fallaba (oniguruma: Permission denied creando Makefile). Extraer
como root sin preservar owner lo arregla para TODO tarball. oniguruma vuelve a configure plano.
2026-06-29 15:54:46 -04:00
sergio 533ed500c7 Etapa G: oniguruma — chmod -R u+w antes de configure (tarball extrae src/ sin escritura) 2026-06-29 15:49:27 -04:00
sergio 87016ad173 Etapa G: receta oniguruma 6.9.10 (lib C regex, autotools) — prerequisito cgo p/ dolt y jq-likes 2026-06-29 15:46:10 -04:00
sergio b249cda7a1 Etapa G: gocryptfs PROMOVIDO con openssl (cgo-lib-externa validado: libcrypto linkeado vía overlay+pkg-config, estático) 2026-06-29 15:43:44 -04:00
sergio 6e5dc54686 Etapa G: gocryptfs cgo+openssl (caso cgo-lib-externa: linkea libcrypto vía pkg-config) 2026-06-29 15:38:23 -04:00
sergio dfaca62f03 Etapa G: csvtk PROMOVIDO (v0.33.0; nota 'subdir' era vieja, go.mod en raíz) + dolt subdir=go validado (queda por cgo+oniguruma externa) 2026-06-29 15:14:10 -04:00
sergio c583c4d679 Etapa G: frontera go.mod-en-subdir — knob [build] subdir (vendor/detect/compile en src/<subdir>)
Destraba proyectos Go cuyo módulo no está en la raíz (dolt→go, csvtk→subdir): vendor_go_deps corre en
el subdir, detect_build_system/detect_go_main operan ahí, y el compile hace 'cd <subdir>' primero.
Test go_subdir_compiles_in_subdir.
2026-06-29 15:06:35 -04:00
sergio 49ce5cf051 Etapa G: granja — siembra +8 Go (gopass/lefthook/gh-ost/gocryptfs/temporal-cli/svu/git-chglog/hostctl)
flyctl no en nixpkgs; viddy dropeado (es Rust ahora, no Go). gocryptfs puede pedir CGO+openssl externa.
2026-06-29 14:56:18 -04:00
sergio b01d133994 Handoff → agente tawasuyu: tareas mesa-nouveau/NVK + firmware GSP + USB live para el tester NVIDIA
El kernel linux-generic 7.1.2 (b3:fded43c0…, nouveau KMS) está listo en el store. Faltan, de su frente:
mesa con nouveau/NVK (la actual es iris-only), firmware nouveau GSP en /lib/firmware, y el armado del
USB. mirada en NVIDIA necesita los tres además del kernel.
2026-06-29 14:49:58 -04:00
sergio 89c94e4435 Etapa G: linux-generic — excluye amd/ del Makefile drm (sledgehammer; amdgpu ICE en 7.1+gcc gueto)
syncconfig re-activaba amdgpu pese a kconfig -d (DRM_AMD_DC default-y), y amdgpu_userq_fence.c hace
ICE sin mensaje con el gcc del gueto. Borro las líneas obj-$(CONFIG_DRM_AMDGPU)+= amd/ del Makefile
del drm: amd nunca se compila, garantizado. i915+radeon+nouveau intactos. amdgpu (AMD moderno) = v2.
2026-06-29 13:04:34 -04:00
sergio 348b5ebe42 Etapa G: linux-generic — patrón probado (bzImage directo, amdgpu+DC+HSA off en config principal)
Revierte el make-prepare separado (disparaba syncconfig que re-activaba amdgpu). Como linux-metal:
-d DRM_AMDGPU -d DRM_AMD_DC -d HSA_AMD antes de olddefconfig + bzImage directo. Single clean build.
2026-06-29 12:52:58 -04:00
sergio 743b943861 Etapa G: linux-generic — disablea amdgpu + TODOS sus dependientes (DC/DC_FP/HSA_AMD/SI/CIK)
El -d solo-amdgpu dejaba DRM_AMD_DC/HSA_AMD =y → syncconfig (make prepare) re-activaba amdgpu para
satisfacerlos. Disablearlos juntos elimina la inconsistencia.
2026-06-29 12:47:35 -04:00
sergio 9fa01e50f9 Etapa G: linux-generic — fuerza amdgpu OFF tras olddefconfig (defconfig lo dejaba =y pese al -d previo) 2026-06-29 12:29:20 -04:00
sergio eeaf946265 Etapa G: linux-generic — 'make prepare' serie antes del bzImage paralelo + amdgpu OFF (-d)
El -j$(nproc) arrancaba a compilar antes de que prepare generara asm-generic/*.h + include/generated/*
→ cascada de 'fatal error: No such file'. prepare serie primero lo resuelve. amdgpu deshabilitado bien
(defconfig lo dejaba =y).
2026-06-29 12:16:19 -04:00
sergio 26ccce9ad7 Etapa G: linux-generic v1 sin amdgpu (i915+radeon+nouveau) — el más grande/riesgoso, a v2 2026-06-29 12:02:31 -04:00
sergio f70993ef5a Etapa G: kernel GENÉRICO 7.1.2 para testers (linux-generic.toml) — i915+amdgpu+nouveau
Un bzImage que bootea hardware variado (Intel/AMD/NVIDIA), no clavado a un laptop. GPU built-in las
3 familias + simpledrm fallback; squashfs+overlay (live USB); storage/USB/input/EFI/VFAT/ISO9660
amplios; monolítico (arje-zero PID1, sin módulos). NVIDIA: el kernel da KMS por nouveau, pero mirada
en NVIDIA necesita ADEMÁS firmware GSP en la imagen + mesa con nouveau/NVK (frente del otro agente).
linux.toml (6.16, baseline selfhost) y linux-metal NO se tocan.
2026-06-29 11:35:46 -04:00
sergio d47be16a8b Etapa G: frontera CGO — knob 'cgo=true' (CC=zig cc + static) destraba sqlite bundled-C
vendor_go_deps/BuildSys::Go por defecto compila CGO_ENABLED=0 (Go puro estático). Nuevo campo
[build] cgo=true ⇒ CGO_ENABLED=1 CC="zig cc" (musl nativo del sandbox) + -linkmode=external
-extldflags=-static. Validado: usql + sq (driver sqlite3 mattn, bundled-C) → estáticos y CORREN
(usql 0.0.0-dev, sq v0.0.0-dev). Tests go_cgo_knob_switches_compile_env. cgo contra libs C EXTERNAS
(gpgme/libvirt en werf/minikube/skopeo) aún requiere esas recetas; esto cubre la clase bundled-C.
2026-06-29 11:04:27 -04:00
sergio 4bb5e67e82 Etapa G: harvest-go sale temprano si la cola está vacía (evita rsync del store de GB en balde) 2026-06-29 10:35:19 -04:00
sergio b9a3e55dd7 Etapa G: promueve envconsul/levant/pgweb/steampipe (reseed lunes); glooctl diferido (monorepo gloo) 2026-06-29 10:34:26 -04:00
sergio 73212b72d1 Etapa G: consul-template (cosecha cron, commit trunco por colisión con sesión activa) 2026-06-29 10:17:32 -04:00
sergio efd670a666 Etapa G: git-town PROMOVIDO (go.work, Git Town 23.0.3) + kustomize flags=./kustomize + gate alias go-mockery→mockery 2026-06-29 10:13:16 -04:00
sergio c2ebf15b6b Etapa G: frontera go.work — go-mockery(mockery)+k3d CONSTRUYEN con 'go work vendor'
Validados estáticos (k3d v5-dev, mockery corre). Primeros frutos del soporte go.work multimódulo.
2026-06-29 10:07:27 -04:00
sergio f5880331ed Etapa G: soporte go.work multimódulo (vendor_go_deps usa 'go work vendor')
Destraba la clase workspace (go-mockery/k3d/git-town/csvtk): con go.work, GOWORK=off + 'go mod
vendor' sólo vendoreaba el módulo raíz → 'inconsistent vendoring' en el build. Ahora si hay go.work
se usa 'go work vendor' (go 1.22+, vendor consistente de todo el workspace); el trigger y
detect_build_system también reconocen go.work (workspace sin go.mod raíz). Test detect_go_when_only_go_work.
2026-06-29 09:57:06 -04:00
sergio 388bf9b89c Etapa G: reseed lunes (+6 Go: steampipe/pgweb/consul-template/envconsul/levant/glooctl)
Dropeados re-imports ya-en-corpus (rqlite/octosql/trufflehog/cosign/gptscript/cue), grype/syft
(Alpine NOGO, ya en hold-nongo) y dolt/kustomize (diferidos: multimódulo).
2026-06-29 09:15:58 -04:00
sergio 169b02d1c8 Etapa G: cosecha-go finde (auto) — promovidos: soft-serve tfsec | review: 2026-06-29 09:14:02 -04:00
sergio 237f9796e7 Etapa G: gate alias soft-serve→soft (charmbracelet) + re-encola soft-serve (falso-rechazo) 2026-06-29 09:12:45 -04:00
sergio bcf70dcd32 Etapa G: cosecha-go finde (auto) — promovidos: charm gdu gobgp gotty k6 kube-linter melt mods nerdctl pop scc skate velero wishlist yj | review: soft-serve(bin=soft) 2026-06-29 09:10:41 -04:00
sergio a853fe6be8 Etapa G: lunes — revisión finde + reseed.
Review resuelto: richgo PROMOVIDO (falso-rechazo: envuelve 'go', el gate lo probó sin go en PATH);
tfsec flags=./cmd/tfsec (era tfsec-docs); diferidos kics (cmd/console≠name), terrascan (panic proto
dup gnostic), sq (CGO sqlite), gotop (go.mod lang 1.16<1.17). Reseed: +16 Go (charm suite pop/
wishlist/soft-serve/skate/melt/mods/charm + scc/kube-linter/velero/gobgp/yj/k6/gotty/gdu/nerdctl).
Misimports dropeados: freeze=optiv/Freeze (ofensiva, no charmbracelet), rekor (tarball alpine).
2026-06-29 09:02:01 -04:00
sergio d63c20e0ee Etapa G: cosecha-go finde (auto) — promovidos: argo-rollouts curlie dnscrypt-proxy dockle duplicacy go-junit-report gowitness ktunnel kubefwd kubeshark shuffledns step-cli tflint tparse vendir | review: richgo(smoke) terrascan(smoke) tfsec(bin=tfsec-docs) 2026-06-27 08:05:32 -04:00
sergioandClaude Opus 4.8 673bdde69f Etapa G: mirada-compositor CONSTRUIDO — stack de sesión gráfica COMPLETO
mirada-compositor sellado (store/d8fd9ca…): el compositor Wayland teselante sobre smithay 0.7,
que maneja DRM/GBM/EGL/libseat/libinput directo y hospeda a mirada-greeter como cliente.
Compila ~255 crates incl. smithay para musl; PIE dinámico.

Cierra la cadena de sesión gráfica de tawasuyu sobre hammer: Mesa(iris) + wayland + stack de
entrada + compositor + greeter, todo sellado.

smithay (default features) enlaza por -sys: drm-sys→libdrm, gbm-sys→mesa, libseat-sys→seatd,
input-sys→libinput, libudev-sys→libudev-zero, + xkbcommon→libxkbcommon y pixman (link directo).
Dos libs nuevas para cerrar el link:
- libxkbcommon 1.7.0 (meson, sin x11/wayland/docs/tools): smithay la enlaza, no sólo dlopen.
- pixman 0.44.2 (meson, sin tests/demos): composición CPU de smithay.

foreign-av NO enlaza ffmpeg (spawnea el binario en runtime) ⇒ no hizo falta construir ffmpeg.
NEEDED del binario: libgbm/libseat/libudev/libinput/libpixman-1/libxkbcommon + musl (libdrm/EGL/
wayland se dlopen-ean).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 07:06:41 -04:00
sergio 254c5a9cc7 Etapa G: ronda 2 pre-siembra finde (+18 Go) + alias gate argo-rollouts/step-cli
terrascan/tfsec/tflint/tparse/richgo/curlie/dockle/vendir/kubefwd/kubeshark/ktunnel/duplicacy/
go-junit-report/argo-rollouts/gowitness/shuffledns/dnscrypt-proxy/step-cli. Dropeados ssh-vault
(sin marca Go) y skopeo (CGO gpgme). Gate: argo-rollouts→kubectl-argo-rollouts, step-cli→step.
2026-06-27 07:04:38 -04:00
sergio b1525ec203 Etapa G: harvest-go fija GIT_SSH_COMMAND (clave github5/tawasuyu) p/ push desde cron sin agente 2026-06-27 07:00:23 -04:00
sergio 0f4f13b318 Etapa G: cosecha-go finde (auto) — promovidos: act bazelisk gitbatch git-lfs hub kube-capacity kubent osv-scanner qsreplace umoci unfurl | review: kics(bin=builder) 2026-06-27 06:59:01 -04:00
sergio fa2f812a90 Etapa G: fix buf/gosec/katana/naabu — instalaban un main helper (functional-test/gosecutil/protoc-gen-buf-lint); flags=./cmd/<tool> 2026-06-27 06:50:17 -04:00
sergio b544ad3d59 Etapa G: harvest gate exige binario == nombre esperado (no solo que 'corra')
La 1ª corrida promovió+FIRMÓ binarios equivocados que pasaban el smoke por solo 'correr':
katana/naabu→functional-test, gosec→gosecutil, buf→protoc-gen-buf-lint (detect_go_main eligió un
main helper). El gate ahora localiza el binario cuyo nombre == receta (o alias conocido tofu/mc/
nats/dlv/flux/ct/kubeseal/node_exporter/...); si instaló otro → a needs-review-weekend con el motivo,
NO se firma. Lección eksctl aplicada al gate.
2026-06-27 06:50:03 -04:00
sergio 63f088da46 Etapa G: cosecha-go finde (auto) — promovidos: buf dyff ffuf gau gci gh-dash gitsign gobuster gofumpt gojq golangci-lint golines gosec gotests helmsman kail katana kubeconform kube-score mockgen naabu nuclei popeye stern subfinder vals waybackurls | review: 2026-06-27 06:47:11 -04:00
sergio 0e8d436812 Etapa G: pre-siembra cola finde (41 Go vetadas) en incoming-go/ para el worker 24/7
k8s (stern/kail/popeye/kube-score/kubeconform/kubent/polaris-no/kube-capacity/vals/helmsman),
recon projectdiscovery+tomnomnom (subfinder/naabu/katana/nuclei/gau/waybackurls/gobuster/ffuf/anew/
qsreplace/unfurl), dev (golangci-lint/gofumpt/gci/gotests/mockgen/golines/buf/bazelisk/act/gojq/sq),
security (gosec/nancy/osv-scanner/scorecard/kics/gitsign), git (git-lfs/hub/gitbatch/gotop/gh-dash),
OCI (umoci), inlets, dyff. Misimports dropeados: gf(C)/polaris(rust)/gitlab-runner+traefik(tarball).
2026-06-27 06:45:03 -04:00
sergio c381e1b0c7 Etapa G: modo finde desatendido — worker muele incoming-go/ + harvest-go.sh (cosecha-only gated)
- farm-worker-loop.sh: construye QUEUES='recipes/incoming recipes/incoming-go' (en serie por vuelta;
  la cola Go aislada se muele 24/7 sin pisar el incoming/ del otro agente).
- scripts/farm/harvest-go.sh: cosecha determinista sin IA (cron del laptop). Baja el store sellado,
  y por cada receta SELLADA (cache-hit bajo timeout, NO compila en el hub) hace SMOKE-TEST del binario
  (existe + corre version/--help sin panic/segfault) antes de promover+firmar. Lo que falla el smoke va
  a tandas/needs-review-weekend/ para el lunes. add explícito (nunca -A), push con reintento.
2026-06-27 06:41:28 -04:00
sergio 7545fc635d Etapa G: detect_go_main prefiere cmd/<nombre-receta> entre varios mains
eksctl tiene cmd/eksctl (CLI) + cmd/schema (helper de codegen que panica); detect elegía
arbitrariamente y selló el binario equivocado (schema) — un fallo SILENCIOSO (sella OK pero envía
la herramienta incorrecta). Ahora, a igual clase, el dir cuyo file_name == recipe.name gana. Test
detect_go_main_prefers_cmd_matching_recipe_name. Lección: smoke-testear que el binario instalado es
el ESPERADO, no solo que selló.
2026-06-27 06:28:41 -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
sergio fccd622a39 Etapa G: fix eksctl — instalaba 'schema' (codegen, panica); fuerza flags=./cmd/eksctl
detect_go_main elegía cmd/schema entre los varios mains del repo. Con flags=./cmd/eksctl instala el
CLI real (eksctl version OK). Re-sellado + re-promovido al repo firmado.
2026-06-27 06:25:16 -04:00
sergio 4fb275e233 Etapa G: cosecha go-16 (11) — k8s-ecosystem/carvel/load-testing/TUI Go
cassowary/chart-testing/devspace/eksctl/helm-docs/kapp/kbld/kubectl-tree/kubeseal/peco/plow.
Queue aislado. Diferidos: k3d (go.work), minikube (CGO libvirt), werf (CGO gpgme), fluxcd (go:embed
manifests generados). kubetail dropeado (bash). sealed-secrets→kubeseal.
2026-06-27 06:18:07 -04:00
sergio e2f038e88d Etapa G: manda go-16 al VPS (k8s-ecosystem/carvel/load-testing/TUI Go) — queue AISLADO
15 Go: peco/cassowary/chart-testing/devspace/eksctl/helm-docs/k3d/kapp/kbld/kubectl-tree/plow/
kubeseal/fluxcd(flux)/werf/minikube. kubetail dropeado (script bash, no Go); sealed-secrets→kubeseal.
2026-06-27 06:05:15 -04:00
sergioandClaude Opus 4.8 11386c0a59 Etapa G: mirada-greeter CONSTRUIDO — primera app gráfica tawasuyu sobre el stack
mirada-greeter sellado (store/41fdd015…): el greeter/login de mirada (runtime Elm Llimphi
sobre winit + wgpu) compila ENTERO para musl — 314 crates incl. wgpu/winit/naga/smithay/
llimphi-* — y enlaza dinámico. Valida la cadena completa: stack gráfico (wayland+mesa) →
app GUI tawasuyu real.

Binario: PIE dinámico, DT_NEEDED = sólo libpam.so.0 + musl; EGL/GLES/GBM/wayland/iris se
dlopen-ean en runtime (wgpu/winit), así que el rootfs debe tenerlas (mesa+wayland ya selladas).

Dos blockers resueltos en el camino:
- atspi/accesskit (a11y, vía accesskit_winit): zbus-lockstep-macros #[validate] PANICA
  («File has no extension.») al escanear xml/ de atspi-common y hacer .extension().expect()
  sobre el SUBDIR xml/schemas/ (lib.rs:147). Fix: fase compile custom (réplica de la fase
  Cargo de hammer) que setea LOCKSTEP_XML_PATH a un dir con sólo los .xml.
- PAM: auth-core → pam/pam-sys hace bindgen sobre security/pam_appl.h ⇒ nueva receta
  linux-pam 1.6.1 (libpam.so + headers; build limpio en musl con gcc de Alpine).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 03:45:48 -04:00
sergio 53bc5b3734 Etapa G: cosecha go-15 (12) — messaging/storage/web-services/infra Go
natscli(nats)/centrifugo/consul/nomad/vault/telegraf/harbor-cli/pocketbase/miniflux/filebrowser/
websocketd/minio-client(mc). Queue aislado. telegraf/vault sellaron tras los fixes (GOCACHE→/src +
watchdog robusto). Diferido wuzz (go.sum incompleto). mc=MidnightCommander/etcd misimports dropeados.
2026-06-27 03:42:26 -04:00
sergio c270edade7 Etapa G: watchdog no purga caches Go con CUALQUIER hammer build en vuelo (no solo vendor)
vault (go-15) falló en 'go mod vendor' con '~/.cache/go-build/...: no such file': durante el compile
de telegraf el disco cruzó DISK_HIGH, el watchdog corrió 'go clean -cache', y el vendor de vault (que
usa esa cache) arrancó en la ventana siguiente sin ficheros. El guard anterior solo miraba 'go mod
vendor' activo en ese instante; ahora difiere la purga si hay cualquier 'hammer build' en vuelo.
2026-06-27 03:30:50 -04:00
sergio b3be6c8e3c Etapa G: Go compile usa GOCACHE/GOTMPDIR en /src (disk), no en el tmpfs /tmp
telegraf/vault (binarios Go gigantes) fallaban en el LINK con 'mapping output file failed: no space
left on device': el sandbox monta --tmpfs /tmp (~½ RAM) y el GOCACHE + temp del linker desbordan ese
tmpfs aunque el disco tenga 18G libres. Ahora GOCACHE/GOTMPDIR van a /src (árbol de fuentes bind-
montado, en disco, per-build, lo limpia el watchdog; no se sella). No entra al hash de input (fase
generada) ⇒ no re-sella el corpus Go.
2026-06-27 03:17:50 -04:00
sergio 55b47709d4 Etapa G: manda go-15 al VPS (messaging/storage/web-services/infra Go) — queue AISLADO
13 Go: natscli/centrifugo/harbor-cli/consul/nomad/vault/telegraf/pocketbase/miniflux/filebrowser/
websocketd/wuzz/minio-client(bin mc). Misimports descartados: mc=Midnight Commander (C), etcd
(tarball multimódulo). chartmuseum/jb no en nixpkgs.
2026-06-27 02:46:44 -04:00
sergio d5a58a305d Etapa G: renombra recipes node/blackbox_exporter al name real (pname nixpkgs ≠ attr)
El attr nix era prometheus-{node,blackbox}-exporter pero el pname/binario es {node,blackbox}_exporter;
el fichero ahora coincide con el campo name (convención del corpus).
2026-06-27 02:31:59 -04:00
sergio c84804754e Etapa G: cosecha go-14 (12) — cloud-native/observability/sigstore/data Go
minio/cloudflared/node_exporter/blackbox_exporter/gops/datree/cmctl/tbls/trdsql/dsq/gobetween/
woodpecker-cli. Queue aislado incoming-go/. Diferidos kustomize (multimódulo make→red) y trivy
(encoding/json/v2 tras GOEXPERIMENT). krew/pint/rekor-cli/golang-migrate no en nixpkgs.
2026-06-27 02:30:53 -04:00
sergio c3a4323bdc Etapa G: manda go-14 al VPS (cloud-native/observability/sigstore/data Go) — queue AISLADO
14 Go: kustomize/cloudflared/gobetween/trdsql/dsq/trivy/woodpecker-cli/node_exporter/
blackbox_exporter/gops/tbls/minio/datree/cmctl. krew/pint/rekor-cli/golang-migrate no en nixpkgs.
2026-06-27 02:19:30 -04:00
sergioandClaude Opus 4.8 7131cd4269 Etapa G: MESA iris-only CONSTRUIDA (24.0.9, sin LLVM) — stack gráfico COMPLETO
Mesa sellada: store/607a513c…-mesa con dri/iris_dri.so + libEGL/libgbm/libGLESv2/
libglapi + egl/gbm/glesv2.pc. El stack gráfico para el escritorio tawasuyu (Iris Xe)
queda completo: libdrm✓ wayland✓ wayland-protocols✓ seatd✓ mesa✓.

Decisiones/fixes clave:
- PIN 24.0.9 (no 26.1.1): desde Mesa 24.1 iris REQUIERE intel-clc (kernels OpenCL-C
  internos) ⇒ libclc + clang/LLVM, lo que rompe el plan iris-sin-LLVM. Bisección: 24.0.9
  es el último donde with_clc=FALSE con iris-only sin Vulkan/rusticl. (Decisión del usuario:
  pinear Mesa viejo en vez de construir LLVM.)
- recorte iris-only: -Dllvm=disabled -Dintel-clc=disabled, sin Vulkan/glx/rusticl/codecs/tools.
- packaging (módulo Python puro): el chequeo de versión de mako usa packaging.version y
  Python 3.12 ya no trae distutils ⇒ sin packaging fallaba con el engañoso «mako required».
- PYTHONPATH al site-packages en configure Y compile (el codegen mako corre en ninja).
- libffi en deps: lo pide wayland-client.pc (Requires: libffi) al resolver cflags.
- mesa-version-script-comma.patch: el target DRI emitía «-Wl,--version-script dri.sym»
  (token separado) que zig cc reordena ⇒ «cannot find version script --end-group» al ligar
  libgallium_dri.so. La forma coma «-Wl,--version-script,dri.sym» (un token) lo arregla.

Runtime pendiente (ensamblado de rootfs): iris_dri.so/libEGL necesitan libz.so.1, libzstd.so.1
(de la base), libdrm.so.2, wayland .so. mirada-greeter (Cargo, link dinámico a Mesa) ya desbloqueado.

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