Commit Graph
580 Commits
Author SHA1 Message Date
sergioandClaude Opus 4.8 e69eaaaa3f build/sandbox: fusionar deps en UNA capa overlay cuando son muchas (fix límite lowerdir)
overlayfs concatena todas las lowerdir en un string de opciones acotado a ~1 página (4096B). KIO
(~43 deps) desbordaba → bwrap 'Can't make overlay mount ... No such file or directory' (truncado).
bwrap CANONICALIZA cada --overlay-src a su ruta real, así que symlinks cortos no ayudan (probado).
Fix: cuando la suma de rutas supera ~3000B, se funden todas las deps en un dir real por hardlinks
(cp -alf, last-wins = misma semántica que el apilado overlay) y se pasa esa ÚNICA capa ⇒ lowerdir
constante, escala a cientos de deps (todo Plasma/apps). Cacheado por build con marker .done (una vez
aunque bwrap_args corra por fase). Pocas deps = ruta directa sin I/O (sandbox idéntico, tests intactos).
Validado: KIO configura con 43 deps visibles y compila. 57 tests verdes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 09:33:50 -04:00
sergioandClaude Opus 4.8 54d8b1953f kde/Capa2: recetas KIO + puente (kdnssd/kfilemetadata/kio/kdeclarative)
SHAs reales 6.27.0, deps del cierre transitivo completo leído subdir por subdir.
- kio: WITH_X11=OFF (kioexec usa qtx11extras); LibMount→util-linux(shared); ACL RECOMMENDED (off);
  help worker gated por DocTools (no sellado, no compila).
- kfilemetadata: Xattr TYPE REQUIRED sorteado (-DXATTR_INCLUDE_DIRS=/usr -DXATTR_LIBRARIES=c;
  musl tiene xattr en libc, no hay libattr.so; las vars sólo se usan en FindXattr).
- kdeclarative: qtshadertools REQUIRED (graphicaleffects); NO depende de kio.
- kdnssd: Avahi opcional (backend dummy sin él).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 08:58:01 -04:00
sergioandClaude Opus 4.8 ce47c9a6b1 kde/Capa2: kwallet (cliente) sella → TIER-3 KF6 COMPLETO 8/8
- libgcrypt + libgpg-error VARIANTES PIC (--with-pic) en incoming-kde (override, patrón zstd):
  linkean dentro de .so dinámicos. Selladas.
- kwallet: sólo librería cliente libKF6Wallet.so (lo que kio linkea). Daemons OFF:
  BUILD_KSECRETD (QCA), BUILD_KWALLETD (libsecret-1→glib), BUILD_KWALLET_QUERY. Reactivar = sellar libsecret+QCA.

Tier-3 8/8: kbookmarks sonnet ktextwidgets kiconthemes kglobalaccel kservice kxmlgui kwallet.
KF6 TOTAL: tier-1 (9) + tier-2 (10) + tier-3 (8) = 27 frameworks sellados.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 08:43:08 -04:00
sergioandClaude Opus 4.8 c03a9aa434 kde/Capa2: tier-3 KF6 7/8 (kbookmarks/sonnet/kservice/kiconthemes/ktextwidgets/kxmlgui + kglobalaccel)
Sellados. kwallet difierido (LibGcrypt REQUIRED en kwalletbackend, cadena cripto pendiente).

Fixes durables tier-3:
- sonnet: -DSONNET_NO_BACKENDS=ON (construye sin diccionarios aspell/hunspell).
- REGLA CLAVE cierre transitivo: KF6XxxConfig.cmake encadena find_dependency; hammer materializa
  SÓLO deps directas ⇒ hay que listar el CIERRE COMPLETO. kconfig se construyó con QML ⇒
  KF6ConfigConfig hace find_dependency(Qt6Qml) ⇒ TODO consumidor de kconfig necesita qtdeclarative.
  kxmlgui pidió cascada kcodecs+kcolorscheme+karchive+sonnet+kcompletion (vía kconfigwidgets/ktextwidgets/kiconthemes Config).
- kiconthemes: USE_BreezeIcons=OFF; ktextwidgets: WITH_TEXT_TO_SPEECH=OFF.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 08:29:53 -04:00
sergioandClaude Opus 4.8 95a8826681 kde/Capa2: 8 recetas KF6 tier-3 (kbookmarks/sonnet/ktextwidgets/kiconthemes/kglobalaccel/kservice/kxmlgui/kwallet)
SHAs reales 6.27.0, deps leídas de cada CMakeLists. Blockers externos sorteados con flags:
- kwallet: BUILD_KSECRETD=OFF (ksecretd exige Qca-qt6; kwalletd clásico usa blowfish propio)
- kiconthemes: USE_BreezeIcons=OFF (breeze-icons no sellado; iconos en runtime)
- ktextwidgets: WITH_TEXT_TO_SPEECH=OFF (qtspeech no sellado)
- sonnet: backends dicc (aspell/hunspell/voikko) todos opcionales, sin diccionarios
WITH_X11=OFF en kglobalaccel+kwallet (código X11). kxmlgui NO lo necesita en 6.27.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 08:02:46 -04:00
sergioandClaude Opus 4.8 8792e355dc kde/Capa2: kjobwidgets WITH_X11=OFF → TIER-2 KF6 COMPLETO 10/10
kjobwidgets usaba qtx11extras_p.h (QX11Info::appUserTime) tras WITH_X11 default ON. OFF.
Patrón: kdbusaddons + kjobwidgets ambos necesitan WITH_X11=OFF (código qtx11extras_p.h de Qt-xcb).

Tier-2 10/10: kdbusaddons kitemviews kitemmodels kplotting kcrash kcolorscheme kcompletion
kconfigwidgets knotifications kjobwidgets.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 07:47:25 -04:00
sergioandClaude Opus 4.8 017718bffd kde/Capa2: tier-2 KF6 sellado 9/10 (fixes deps + patch Canberra)
Sellados: kdbusaddons kitemviews kitemmodels kplotting kcrash kcolorscheme kcompletion
kconfigwidgets knotifications. kjobwidgets en vuelo (faltaba dep knotifications).

Fixes durables:
- SET Qt6-consumer (mesa+libdrm+libxkbcommon+wayland) OBLIGATORIO en TODO framework que use
  Qt6::Gui/Widgets (Qt6Gui_FOUND=FALSE si falta GLESv2). El subagente lo omitió → batch entero falló.
- gettext-tiny (msgmerge) para frameworks con traducciones ki18n (kcolorscheme/kconfigwidgets).
- qtdeclarative donde hay Qt6Qml transitivo (kcompletion/kconfigwidgets).
- kdbusaddons: WITH_X11=OFF (usaba qtx11extras_p.h de Qt-xcb ausente).
- knotifications: patch Canberra REQUIRED→opcional (código ya guarda -DHAVE_CANBERRA; evita
  el stack de audio alsa/pulse/vorbis). Compila sin sonido, deuda audio diferida.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 07:42:11 -04:00
sergioandClaude Opus 4.8 04c845692f kde/Capa2: 10 recetas KF6 tier-2 (SHAs reales 6.27.0)
kdbusaddons/kitemviews/kitemmodels/kplotting/kcrash/kcolorscheme/kcompletion/kjobwidgets/
kconfigwidgets construibles; knotifications BLOQUEADA (find_package(Canberra REQUIRED)
incondicional, sin flag WITHOUT_SOUND → necesita receta libcanberra o patch opcional).
kcrash WITH_X11=OFF. Designer plugin OFF en los Widgets.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 07:18:37 -04:00
sergioandClaude Opus 4.8 4ed01d0e91 kde/Capa1: quitar qtwayland.toml redundante (qtbase ya bundlea Qt6WaylandClient)
Verificado: el artefacto qtbase contiene libQt6WaylandClient.so.6.11.1 (14.8MB real) +
Qt6WaylandClientConfig.cmake + plugins QPA wayland completos. kwindowsystem selló contra el
bundled. Una receta qtwayland separada duplicaría la .so (colisión de proveedor). Revierto la
dep espuria en kwindowsystem (mantiene su hash sellado 29265422).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 07:12:47 -04:00
sergioandClaude Opus 4.8 a25c46a41c kde/Capa2: TIER-1 KF6 COMPLETO 9/9 — kguiaddons+kwindowsystem wayland-only
- plasma-wayland-protocols 1.21.0 (find_package PlasmaWaylandProtocols, CMake+ECM liviano)
- kguiaddons: WITH_X11=OFF WITH_WAYLAND=ON (Qt6WaylandClient bundleado en qtbase). Sellado.
- kwindowsystem: KWINDOWSYSTEM_X11=OFF KWINDOWSYSTEM_WAYLAND=ON (opción KWINDOWSYSTEM_*, no WITH_*).
  QML=OFF. Sellado.
- xcb-util base + xcb-util-keysyms + xcb-util-wm sellados (quedan para saldar Qt-xcb / sesión X11).
- Decisión: path X11 exige Qt con QT_FEATURE_xcb (apagado en gate) = deuda Capa 0 diferida;
  Plasma es Wayland-first ⇒ tier-1 completo por el path wayland.

Tier-1 9/9: kcoreaddons kcodecs kconfig ki18n kwidgetsaddons karchive solid kguiaddons kwindowsystem.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 07:05:02 -04:00
sergioandClaude Opus 4.8 310859ff6a kde/Capa0: xcb-util-keysyms+xcb-util-wm sellados + deps X11 en kgui/kwin
xcb-util-keysyms (KEYSYMS) + xcb-util-wm (ICCCM/EWMH) para el componente XCB de kwindowsystem.
libXau/libXdmcp en todos los consumidores de xcb (libxcb.pc los pide en Requires.private).
kguiaddons/kwindowsystem descubren que exigen QT_FEATURE_xcb + qtwayland + PlasmaWaylandProtocols
(integración de plataforma Qt, siguiente frente).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 06:49:52 -04:00
sergioandClaude Opus 4.8 733bbc6a0b kde/Capa0: libX11 sella — libXau/libXdmcp en deps (.pc transitivo de xcb)
Cadena X11 foundational COMPLETA 9/9 (util-macros/xorgproto/xcb-proto/libpthread-stubs/
libXau/libXdmcp/xtrans/libxcb/libX11 todos sellados en granja).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 23:46:38 -04:00
sergioandClaude Opus 4.8 e4897e1843 kde/Capa2: sellar karchive+solid (tier-1 7/9)
- karchive: WITH_BZIP2/LIBLZMA/OPENSSL=OFF (static-sin-PIC no linkean en .so, deuda Capa0);
  queda zlib+zstd (ambos PIC). Sellado.
- solid: FIX moc_predefs vacío — CMake no setea CMAKE_CXX_COMPILER_PREDEFINES_COMMAND para
  zig-as-clang ⇒ moc no ve __linux__ ⇒ rama no-Linux de fstabwatcher (onFileChanged) vs compilador
  Linux (onMountChanged). CMAKE_AUTOMOC_MOC_OPTIONS=-D__linux__=1 realinea. Patrón KF6 durable.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 23:36:25 -04:00
sergioandClaude Opus 4.8 54d5469e9f kde/Capa0: cadena X11/xcb foundational (9 recetas)
util-macros/xorgproto/xcb-proto/libXau/libXdmcp/libpthread-stubs/libxcb/xtrans/libX11.
SHAs reales de x.org/xorg.freedesktop. Patrón soberano zig-cc 0.13 + musl + dynamic.
PKG_CONFIG_PATH lib+share (proto .pc caen en share), PYTHONPATH para xcbgen en libxcb.
Desbloquea kguiaddons/kwindowsystem (X11 backend) + XWayland futuro. ADR 0011.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 22:40:44 -04:00
sergioandClaude Opus 4.8 bb4754d8cb kde/Capa2: fixes tier-1 batch3 (karchive+zstd, solid+libudev-zero, qtbase accessibility+sql ON)
- karchive: zstd es REQUIRED en 6.27 (pkg_check_modules), no opcional; zstd catálogo gcc+PIC linkea en .so
- solid: find_package(UDev REQUIRED) → libudev-zero (soberano, sin udevd)
- qtbase: accessibility ON (kwidgetsaddons usa setAccessibleName; base de todo widget KDE) + sql ON (sqlite bundled, sin dep Capa0). Cascada rebuild Capa1+2 aceptada.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 22:19:02 -04:00
sergioandClaude Opus 4.8 19094038c7 kde/Capa2: tier-1 3/9 sellados (kcoreaddons/kcodecs/kconfig) + fixes siguientes
Progreso: kcoreaddons+kcodecs+kconfig ✓ (KF6 instala en /usr/lib64). Fixes para
los que siguen: ki18n +gettext-tiny (msgmerge), karchive +openssl, solid +util-linux
(LibMount). kguiaddons/kwindowsystem DIFERIDOS (piden X11 = cadena xcb/X11 Capa 0).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 21:57:27 -04:00
sergioandClaude Opus 4.8 76c576b481 kde/Capa2: fixes tier-1 batch2 (ki18n gui-set, solid bison, karchive zlib-only)
ki18n: qtdeclarative arrastra EGL → +set Gui. solid: +bison (predicate parser).
karchive: bzip2/xz/zstd dropeados (un dep falla configure C23) → zlib-only (gzip/zip
OK). kguiaddons/kwindowsystem DIFERIDOS: piden X11 (cadena xcb/X11 = Capa 0 pendiente).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 21:49:04 -04:00
sergioandClaude Opus 4.8 ee6f1e061c kde/Capa2: fixes deps tier-1 (Qt6Qml/BZip2/FLEX)
Triaje del batch: kconfig/kguiaddons/ki18n/kwidgetsaddons/kwindowsystem/solid piden
Qt6Qml → +qtdeclarative. karchive +bzip2/xz/zstd. solid +flex (predicate parser).
kcoreaddons/kwidgetsaddons habían fallado por carrera paralela (deps en vuelo);
con deps cacheadas + qtdeclarative se resuelven. kcodecs ya selló.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 21:44:12 -04:00
sergioandClaude Opus 4.8 b4d4a086a9 kde/Capa2: 8 recetas KF6 tier-1 (kconfig/kcodecs/kguiaddons/ki18n/kwidgetsaddons/karchive/kwindowsystem/solid)
Generadas con el patrón KF6 completo: wrapper zig filtra-fatal-warnings, set
Qt-consumer (mesa+libdrm+libxkbcommon+wayland+dbus para los Gui) + ECM + qttools.
util-linux shared ya selló (0ae65443) ⇒ kcoreaddons desbloqueado. Batch a la granja.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 21:38:09 -04:00
sergioandClaude Opus 4.8 12097e6a14 kde/Capa0: util-linux shared variant (override incoming-kde) para libblkid
kcoreaddons falla 'blkid_* undefined': linkea libmount pero la util-linux canónica
es --disable-shared (el .a no arrastra libblkid). Variante --enable-shared produce
libmount.so→libblkid.so.1 (NEEDED) ⇒ resuelve solo. incoming-kde/ overridea a
recipes/ para builds KDE; base-system mantiene la static.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 21:31:36 -04:00
sergioandClaude Opus 4.8 67390cddfa kde/Capa2: wrapper zig filtra -Wl,--fatal-warnings (ECM lo agrega, zig lo rechaza)
kcoreaddons: 'unsupported linker arg: --fatal-warnings' — ECM KDECompilerSettings
lo inyecta y el linker de zig lo rechaza. El wrapper zig ahora lo filtra. Patrón
KF6 (todos los frameworks usan ECM). qttools ✓ selló (aae02df8).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 19:54:07 -04:00
sergioandClaude Opus 4.8 6894cd5bd8 kde/Capa2: dbus a kcoreaddons (patrón universal KF6: tools cargan Qt6DBus)
Tras qtbase-con-Qt6DBus, todo build que corre tools Qt carga libQt6DBus→libdbus
(dbus_shutdown symbol not found). El set de deps Qt-consumer ahora incluye dbus.
UDev/SharedMimeInfo son Could-NOT-find no-fatales (opcionales).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 19:48:47 -04:00
sergioandClaude Opus 4.8 2b868fd9a7 kde/Capa2: qttools (LinguistTools) + dbus a qtdeclarative + qttools a kcoreaddons
Tras qtbase-con-Qt6DBus (e2d517cc ✓): qtdeclarative necesita dbus en deps (sus
tools cargan libQt6DBus→libdbus, dbus_message_set_sender not found). kcoreaddons
pide Qt6LinguistTools (ECMPoQmTools, traducciones) → receta qttools minimal
(qdoc/clang/designer OFF, solo lrelease/lupdate). Dep por stem de archivo (qttools).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 19:13:53 -04:00
sergioandClaude Opus 4.8 9ea8f98eb2 kde/Capa0→2: qtbase con dbus=ON + receta dbus (KF6 exige Qt6DBus)
kcoreaddons (KF6 tier-1 más fundamental) REQUIRED find_package(Qt6DBus) → confirma
que la deuda D-Bus es el bloqueo crítico de TODO KF6. Receta dbus minimal (meson,
libdbus-1.so, expat-only, modular_tests/glib off) + qtbase dbus=ON linkeándola.
Rebuild de Capa 1 completo (qtbase real). SSL/SQL/glib/fontconfig siguen OFF
(mini-deudas separadas, no bloquean el shell). install de qtbase simplificado
(sin el symlink frágil).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 18:49:58 -04:00
sergioandClaude Opus 4.8 e04459b839 kde/Capa2: util-linux en deps de kcoreaddons (LibMount REQUIRED)
kcoreaddons find_package(LibMount REQUIRED) para KMountPoint → +util-linux (libmount).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 18:38:12 -04:00
sergioandClaude Opus 4.8 53edb63a27 kde/Capa2: receta kcoreaddons (KF6 tier-1, primer framework)
Patrón KF6 = patrón módulo Qt + dep extra-cmake-modules. Core-only (Qt6Core+ECM),
QML/python/docs off. Prueba la puerta a los ~80 frameworks KF6.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 18:34:30 -04:00
sergioandClaude Opus 4.8 fc8d68c66f kde/H-QML: GATE PASADO — reproducer QtQuick corre rc=0 offscreen
Capa 1 Qt6 completa y sellada: qtbase+qtshadertools+qtsvg+qtlanguageserver+
qtdeclarative(QtQuick full d23aba45)+ECM. h-qml-test.cpp (Window+Text via QtQuick)
instancia la escena y sale rc=0 con offscreen+software backend. El motor QML
—corazón de Plasma— probado end-to-end bajo el stack soberano dinámico musl/zig-cc.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 18:28:39 -04:00
sergioandClaude Opus 4.8 e19a4c33b2 kde/H-QML: wayland en deps de qtdeclarative (libEGL necesita libwayland-server)
qtshadertools ✓ selló (qsb OK), qtsvg ✓. qtdeclarative falla al correr un tool
GL-linked (qmlcachegen): 'libEGL.so.1: wl_resource_post_error: symbol not found'
— la libEGL de mesa (plataforma wayland-EGL) exige libwayland-server, no
materializado. +wayland a deps.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 17:55:39 -04:00
sergioandClaude Opus 4.8 4c102aad79 kde/H-QML: quitar symlinks /usr/bin del install (rompían el sellado)
qtshadertools construyó qsb + instaló OK, pero el post-paso de symlinks falló:
'ln: /out/: cannot overwrite directory' (línea de user_facing_tool_links con
nombre vacío → ln ... /out/) → install non-zero → no selló → qtdeclarative sin
qsb. Los tools quedan en /usr/lib/qt6/bin con rpath; CMake los halla solo.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 17:50:26 -04:00
sergioandClaude Opus 4.8 6e860cd6c2 kde/H-QML: libxkbcommon en deps Qt (Qt6GuiPrivate exige XKB::XKB)
Tras mesa/EGL, nuevo muro: Qt6GuiPrivateDependencies.cmake declara third_party
XKB (libxkbcommon) → sin materializar, Qt6::GuiPrivate no se crea → 'non-existent
target'. Set completo de deps p/consumidor Qt6::Gui: mesa (EGL+GLESv2) + libdrm +
libxkbcommon (XKB). Patrón durable para KF6.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 17:41:31 -04:00
sergioandClaude Opus 4.8 20d9a56d91 kde/H-QML: mesa+libdrm en deps Qt (Qt6::Gui exige EGL al configurar)
Bug: qtshadertools selló VACÍO — 'Could NOT find EGL' → 'TARGET Qt::Gui not met'
→ skip build → sin qsb → qtdeclarative desactivó QtQuick (solo motor QML). El
Qt6::Gui de qtbase (construido con EGL) exige EGL en TODO consumidor. Fix: mesa
(trae EGL headers+egl.pc+libEGL) + libdrm en deps de qtshadertools/qtsvg/
qtdeclarative. Patrón para todo consumidor de Qt6::Gui (KF6 incluido).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 17:34:13 -04:00
sergioandClaude Opus 4.8 6e89b63cfa kde/Capa2: receta extra-cmake-modules (ECM) 6.27 — build-system de KF6
Puerta a la Capa 2 (KF6, ~80 frameworks). CMake puro sin compilación; docs
(sphinx/qttools) y tests off ⇒ cmake+samurai, sin dep Qt. Listo para la próxima
tanda de granja tras validar la cadena Qt de Capa 1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 17:14:02 -04:00
sergioandClaude Opus 4.8 8dbc65b59d kde/H-QML: recetas Capa 1 qtshadertools/qtsvg/qtlanguageserver/qtdeclarative
De-Alpinizadas con el patrón del gate H-Qt (dinámico, wrappers zig cc/c++ en árbol
de fuente, CMAKE_PREFIX_PATH=/usr para hallar qtbase sellado, examples/tests off).
Deps por STEM de archivo (resolver por filename). Cadena a H-QML: qtbase(✓) →
qtshadertools → qtdeclarative (+ qtsvg + qtlanguageserver). Farm desde snapshot
KDE 407438750 (qtbase cache-hit).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 17:07:33 -04:00
sergioandClaude Opus 4.8 8eb168e168 kde/H-Qt: ADR 0011 → gate PASADO; lecciones durables + snapshot para reanudar
Registra el resultado (qtbase sella b3:7c7c747d, app Qt rc=0 offscreen), las 3
lecciones de-Alpinización (wrapper zig/CMake, tensión estático↔dinámico = deuda
Capa 0, hidratación runtime musl) y el snapshot hammer-kde-qtbase-2026-07-11
(img 407438750) para arrancar futuras farm-up sin re-pagar el build. Próximo:
qtdeclarative/QML (H-QML) + saldar deuda Capa 0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 16:10:40 -04:00
sergioandClaude Opus 4.8 af5a175e01 kde/H-Qt: reproducer de la app Qt de prueba (gate PASADO, rc=0 offscreen)
qtbase 6.11.1 SELLÓ (b3:7c7c747d…) — Core/Gui/Widgets/OpenGL + QPA wayland, todo
.so dinámico bajo musl+zig-cc. La app compila y linkea contra él; corrida en el
rootfs musl del worker con QT_QPA_PLATFORM=offscreen crea la ventana y el event
loop sale rc=0. Régimen dinámico del ADR 0011 probado end-to-end.
Hidratación runtime: mesa+libdrm del store + libxkbcommon.so.0 fabricada del .a
(PIC) — deuda Capa 0 (varios libs canónicos son static-only).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 16:06:04 -04:00
sergioandClaude Opus 4.8 7d76c644e4 kde/H-Qt: bundlear fuentes/imágenes + fontconfig=OFF (mata dep transitiva expat)
8vo ciclo: entró a Gui, murió con símbolos expat (XML_ParseBuffer…) — fontconfig.a
→ expat pero el link estático no arrastra la transitiva (el .pc no la declara).
En vez de iterar lib-por-lib, bundleo freetype/harfbuzz/libpng/libjpeg en Qt (PIC,
cierre completo) y apago fontconfig. zlib/pcre2 siguen reusándose. Deuda Capa 0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 15:33:37 -04:00
sergioandClaude Opus 4.8 b2a90ca174 kde/H-Qt: glib=OFF (glib.a sellado incompleto bajo -Wl,--no-undefined)
7mo ciclo: pasó Network (openssl off), murió linkeando con glib — símbolos
indefinidos g_hmac_ref/g_strv_builder_ref/g_bookmark_file_copy bajo --no-undefined.
El glib.a resuelve lo que Core.so necesitó pero no el cierre completo estricto;
GTK4 lo linkea laxo. Qt tiene event loop propio → glib opcional para una ventana.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 15:22:20 -04:00
sergioandClaude Opus 4.8 34895802e2 kde/H-Qt: openssl/ssl=OFF (libcrypto.a estática sin PIC no entra en .so)
6to ciclo: mismo patrón que sqlite, ahora en libQt6Network.so con libcrypto.a
(EVP_SKEYMGMT_free, R_X86_64_PC32 sin -fPIC). zlib entra bien (es libz.so). Una
ventana no usa SSL → openssl OFF. Deuda Capa 0/1: sqlite+openssl shared/PIC para KDE.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 15:13:32 -04:00
sergioandClaude Opus 4.8 32eb510788 kde/H-Qt: sql=OFF (sqlite canónico estático sin PIC no entra en .so)
5to ciclo: libQt6Core.so LINKEÓ (obj 431) — el régimen dinámico anda con el
closure estático. Único error PIC = libsqlite3.a (sellado sin -fPIC + sin
COLUMN_METADATA) al armar libqsqlite.so. Una ventana Qt no usa SQL → FEATURE_sql=OFF.
Cuando KDE pida Qt SQL (Capa 2): sqlite shared/PIC.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 15:04:31 -04:00
sergioandClaude Opus 4.8 4322d6efb6 kde/H-Qt: wrappers zig al árbol de fuente ($PWD/.zwrap), no /tmp
4to ciclo: /tmp/zw/cxx 'not found' (status 127) en compile — /tmp se vacía entre
fase configure y compile; sólo el árbol de fuente persiste. Muevo los wrappers a
$PWD/.zwrap (junto a build/). CMake cachea el path absoluto y sigue válido en compile.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 14:55:02 -04:00
sergioandClaude Opus 4.8 dfc5d4b443 kde/H-Qt: wrappers zig cc/c++ para qtbase (CMake canonicaliza el symlink)
3er ciclo murió en [133/1749] con 'zig -std=gnu++17' (unknown command): CMake
resuelve el symlink cc→/opt/zig/zig al binario real, perdiendo el despacho por
argv[0]; ASM y custom-commands de Qt invocan zig directo sin subcomando. Fix:
scripts /tmp/zw/{cc,cxx} = exec zig cc/c++ -mcpu=baseline; CMAKE_{C,CXX,ASM}_COMPILER
apuntan a ellos. Un script no se canonicaliza ⇒ el subcomando viaja siempre.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 14:52:33 -04:00
sergioandClaude Opus 4.8 17a0614d22 kde/H-Qt: qtbase dbus=OFF para el gate (recipe dbus canónico roto en granja)
2do ciclo: la clausura de deps reconstruyó OK (cmake/glib/openssl/mesa/…) pero
dbus falló — su meson no ve glib-2.0 por pkg-config e intenta bajar glib (sin
red en sandbox). dbus no hace falta para abrir una ventana Qt; se apaga para
el gate. Bug del recipe dbus a arreglar en Capa 2 (KDE sí necesita D-Bus).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 14:44:10 -04:00
sergioandClaude Opus 4.8 253dba7cea kde/H-Qt: qtbase sin dep perl (Qt6.11 usa syncqt C++, no perl)
El primer ciclo de granja falló en resolver la dep 'perl' (no hay receta
canónica). Qt6 reemplazó syncqt.pl por un syncqt C++; Alpine lista perl por
precaución. Se quita de deps para el gate; si el build lo reclama, se importa
perl de verdad (de-Alpinización grande, no especulativa).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 14:11:48 -04:00
sergioandClaude Opus 4.8 071be00396 kde/H-Qt: receta qtbase de-Alpinizada (gate campaña KDE) + cola incoming-kde al worker
qt6-qtbase 6.11.1 desde Alpine community: conserva sus 3 parches de musl (LFS64/
DNS-resolver/symlinks), reescribe abuild→CMake/Ninja explícito. link=DINÁMICO
(política capa GUI, ADR 0011). Minimal para el gate: Wayland-only (xcb OFF),
icu/vulkan/cups/libproxy/libinput/accessibility OFF, double-conversion+libb2
bundled ⇒ compila reusando SOLO deps ya selladas, cero recetas nuevas.
sha256 pinneado (sha512 cotejado con Alpine). farm-worker-loop añade
recipes/incoming-kde a QUEUES.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 14:05:23 -04:00
sergioandClaude Opus 4.8 5447c175f9 docs: ADR 0011 — roadmap campaña escritorio KDE Plasma 6
Fija la política (capa GUI adopta linking DINÁMICO: Qt carga plugins .so en
runtime, incompatible con el static-musl del userland CLI), el orden topológico
en 5 capas (sustrato→Qt6→KF6→Plasma→apps), 6 hitos verificables (gate = H-Qt:
qtbase + una ventana Qt bajo el régimen dinámico) y la estrategia de granja
(cola aislada incoming-kde/, cadencia por capa, qtwebengine diferido).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 06:53:40 -04:00
sergio f1ae579ff4 producto E2E: hidratación no-clobber (clobber ciego de /usr/lib rompe el sshd musl)
Revierte el experimento de shadow-por-clobber: pisar /usr/lib con libs del base-system deja
arje-zero+hammerd arrancando pero sshd/login mudo (ABI musl del producto disturbado). No-clobber
preserva el producto entero y añade los binarios nuevos (probado VERDE). La sombra de applets busybox
(sed/ps/ip→full) es política del ensamblado del producto (mecanismo 'adelgazar busybox' de coreutils),
que re-linkea el NOMBRE sin tocar /usr/lib — follow-up de empaque documentado en el script.
2026-07-11 06:23:03 -04:00
sergio d9bd5220f0 producto: E2E del base-system integrado al producto, booteado in-VM (front c productionizado)
product-base-system-boot-test.sh: hidrata los 26 paquetes del base-system sobre el product-rootfs
sellado (cp -an, preserva /etc/passwd/shadow/ssh del producto), lo bootea en QEMU y verifica DENTRO
del guest por SSH que corren. VERDE: arje-zero PID1 + sshd + bash 5.3/git 2.54/gpg 2.4.9/useradd/
vim 9.2/119 CA certs. Nota: MEM=6144 (rootfs aumentado ~1.1G en tmpfs). Caveat conocido: ps/ip/sed
resuelven a busybox por precedencia de PATH (los binarios full están, a sus rutas) — mismo patrón
'adelgazar busybox' que el producto ya aplica a coreutils; refinamiento de empaque pendiente.
2026-07-11 06:16:30 -04:00
sergio f44fa9bcb7 foot-chain: promover tllist/utf8proc/scdoc/fcft/foot a canónicas (índice 748)
Cierra el userland foundational: foot (terminal Wayland) + su cadena de libs → canónicas + repo
firmado. incoming-clib queda VACÍO (todo el base-system promovido). Front (d) COMPLETO a nivel build.
2026-07-11 01:37:51 -04:00
sergio c87c9236ad base-system: foot construye — terminal Wayland 1.27.0 (último diferido)
b3:2e8e1b2d. Cierra el userland foundational. Patrón meson estilo fcft, -Dprefer_static=true
(fontconfig.a arrastra expat), -Dgrapheme-clustering=enabled (utf8proc). link=dynamic (pixman
canónica es .so-only, la misma de mirada). Trampa real: zig 0.16/clang21 daba un binario que
SIGSEGV antes de main (relro→NULL) → zig_version=0.13.0 como pixman/wayland. foot+footclient
--version OK. Runtime: necesita compositor Wayland (frente mirada) + TERM/terminfo aparte.
2026-07-11 01:37:17 -04:00
sergio e430331e21 foot-chain: fcft construye — lib de fuentes (libfcft.a), último eslabón antes de foot
b3:9cdb6274. Patrón meson --default-library=static -Ddocs=disabled -Dsvg-backend=none. deps:
tllist+utf8proc+freetype+fontconfig+harfbuzz+pixman (+libpng/zlib/expat por .pc transitivos).
Todas las deps de foot ya existen.
2026-07-11 01:24:43 -04:00