Commit Graph
423 Commits
Author SHA1 Message Date
sergioandClaude Opus 4.8 80a9cacd07 Etapa G (GUI): fontconfig — agrega libpng+zlib a build-deps (dep transitiva de freetype2.pc)
freetype se compila --with-png ⇒ freetype2.pc trae `Requires: libpng` (y libpng→zlib).
Sin esos .pc en el sandbox, pkg-config no resuelve freetype2 y ./configure aborta con
"freetype2 >= 21.0.15 not met". Reproducible sólo al rebuildear freetype canónica (antes
tapado por cache-hit). fontconfig vuelve a construir desde fuente.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 15:00:54 -04:00
sergioandClaude Opus 4.8 6a33b41931 Etapa G (GUI): rescata los 3 patches huérfanos de freetype canónica
recipes/freetype.toml referencia pcf-family-names/subpixel/table-validation-modules.patch
pero vivían solo en incoming-clib/ (patch-huérfano) ⇒ freetype no packeaba y bloqueaba
toda la cadena GUI (pango/gtk4/... dependen de freetype). Copiados a recipes/.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 14:37:51 -04:00
sergioandClaude Opus 4.8 b67101a78a Etapa G (clib/GUI): gradúa 6 libs gráficas ya publicadas — libwebp/libepoxy/fontconfig/cairo/gdk-pixbuf/appstream
Sus deps foundational ya publicadas ⇒ el orden de dependencias resolvió y packean+firman.
Sin colisión con canónicas. Quedan en incoming-clib las 8 GUI meson pesadas (gtk4/pango/
libadwaita/gtksourceview + demos) y las 13 variantes colisionantes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 14:29:48 -04:00
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