Commit Graph
564 Commits
Author SHA1 Message Date
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
sergio 0bc8dd9487 foot-chain: tllist/utf8proc/scdoc construyen (libs hoja para fcft/foot)
tllist b3:43171202 (header-only, meson), utf8proc b3:db4ac2c7 (Unicode, libutf8proc.a), scdoc
b3:5194cf5b (man-gen). utf8proc/scdoc buildearon sin editar; tllist migrado al patrón meson.
Leaf libs de la cadena que destraba el terminal Wayland foot.
2026-07-11 00:49:02 -04:00
sergio 0a03e1c579 producto: base-system en el userland curado del producto (integración front c)
product-userland-from-repo.sh ahora hidrata el userland foundational C (bash/git/sudo/util-linux/
shadow/red/disco/TLS/gpg/…) además de la capa CLI Rust, todo desde el repo firmado con
--require-signed (verifica firma → reproduce del .swm → hidrata FHS). BASE_SYSTEM_PKGS + CLI_RUST_PKGS.
2026-07-11 00:43:26 -04:00
sergio ecf05e1b9d base-system-3: promover cadena crypto + libusb/usbutils + gnupg (índice 743)
6 recetas → canónicas + índice firmado: libusb, npth, libassuan, libksba (libs), usbutils (lsusb),
gnupg (gpg 2.4.9). Cierra las 2 mini-chains que quedaban bloqueadas. + zlib re-packeado limpio en el
repo (hash b3:2623a403 sin ubsan). Sólo foot queda staged (Wayland). Frente (b) COMPLETO.
2026-07-11 00:36:55 -04:00
sergio 411382829a base-system-3: gnupg construye — gpg 2.4.9 (firma/cifrado), cierra la cadena crypto
b3:f9de6d2a. deps = cadena canónica sellada (libgpg-error/libgcrypt/libassuan/libksba/npth/zlib).
Fase configure explícita --disable-{tofu,scdaemon,dirmngr,doc,bzip2} + --with-*-prefix=/usr. gpg+gpgv
estáticos; round-trip cifrado simétrico -c/-d + --print-md SHA512 verificados. Nota: NO apareció el
ubsan de libz.a (el zlib limpio de este mismo commit-set ya se materializa). base-system-3 completo.
2026-07-11 00:34:41 -04:00
sergio a3801afef6 base-system-3: usbutils construye — lsusb 019 estático (destrabado por libusb)
b3:a141de41. Patrón meson -Dprefer_static=true (sin él meson enlaza libudev.so → link estático falla).
deps: libusb (nueva) + libudev-zero (stub del catálogo, satisface la dep dura de libudev>=196 en
meson.build; hwdb name-lookup queda stub pero lsusb corre). Cierra el chain libusb→usbutils.
2026-07-11 00:32:14 -04:00
sergio 8bbd8b2968 base-system-3: libksba construye — X.509/CMS de GnuPG (libksba.a)
b3:14ab12e0. Lib 3/3 de la cadena gnupg. Fase configure explícita --with-libgpg-error-prefix=/usr
--enable-static. deps: libgpg-error+linux-headers+pkgconf. La cadena crypto de gnupg está completa.
2026-07-11 00:20:54 -04:00
sergio 58b66bfdd5 base-system-3: libassuan construye — IPC de GnuPG (libassuan.a)
b3:a7ca8de2. Lib 2/3 de la cadena gnupg. compiler=gcc (como libgpg-error), fase configure explícita
--with-libgpg-error-prefix=/usr --enable-static. deps: libgpg-error+linux-headers+pkgconf.
2026-07-11 00:20:34 -04:00
sergio 03b81beb2b base-system-3: libusb construye — libusb-1.0.a (destraba usbutils)
b3:f6a4fa5f. Fase configure explícita --disable-udev (backend netlink/sysfs) --enable-static.
Deja libusb-1.0.a + .pc + header para que usbutils la halle.
2026-07-11 00:20:24 -04:00
sergio bc1d270a0d base-system-3: npth construye — nPth de GnuPG (libnpth.a)
b3:6d841c6a. Lib 1/3 de la cadena que faltaba para gnupg. Autotools limpio, fase configure explícita
--enable-static, sin deps.
2026-07-11 00:19:55 -04:00
sergio d239dc7287 zlib: libz.a limpio sin UBSan (-O2 -fno-sanitize=undefined)
b3:2623a403 (antes tenía 77 refs __ubsan_handle_*). Sin -O explícito, zig cc emite el runtime UBSan
que el .a estático arrastra → rompía el link estático de todo lo que enlaza -lz (git/curl/mandoc/
pciutils…). Fix de raíz: -O2 (apropiado para lib de compresión) + opt-out explícito. No está en el
camino de reproducibilidad selfhost/rust (verificado); los ~45 dependientes sellados siguen cacheados,
los rebuilds futuros toman el libz.a limpio y ya no necesitan workarounds ad-hoc.
2026-07-11 00:17:46 -04:00
sergio 8d37d4576f base-system-2: promover 7 tier-2 a canónicas + repo firmado
shadow (useradd/passwd), kbd (loadkeys/setfont), procps-ng (ps/top/free), pciutils (lspci),
lsof, strace, mandoc (man) → recipes/ canónicas + índice firmado. usbutils (falta libusb) y
gnupg (falta libassuan/libksba/npth) quedan staged/bloqueados; foot diferido (Wayland).
Segunda tanda del userland foundational: usuarios + teclado + proceso + hardware + docs + debug.
2026-07-10 23:51:48 -04:00
sergio d4cdd64f99 base-system-2: strace construye — trazador de syscalls 6.19 estático
b3:d4aa8f26. deps→linux-headers; fase configure explícita --enable-mpers=no --without-{libunwind,
libdw,libselinux}; make -C src (tests/ rompe con zig cc -E - por -mcpu= vacío). Deuda menor: zig
FUERZA sus headers UAPI por delante de -I (io_uring zcrx tiene 2 campos más nuevos que zig) → quité
esas 2 líneas de decode; strace traza todo lo demás igual.
2026-07-10 23:51:17 -04:00
sergio ebf0ba22d5 base-system-2: shadow construye — useradd/passwd/groupadd (gestión de usuarios)
b3:a07b7b14. Suite completa estática. Fase configure explícita --without-{libbsd,libpam,fcaps}
(libbsd ausente→usa readpassphrase de fábrica; fcaps→setcap falla en sandbox); make LDFLAGS=-all-static
(libtool ignora -static, gotcha util-linux); limpié install de pam.d de aports. Habilita usuarios
reales (antes sólo root).
2026-07-10 23:30:40 -04:00
sergio aa08272f9c base-system-2: mandoc construye — man/mandoc 1.14.6 estático
b3:a7b8a634. Quité shared-libmandoc.patch (forzaba .so); fase configure explícita que escribe
configure.local (PREFIX=/usr, LDFLAGS=-static, CC='zig cc'). 3er caso del libz.a-UBSan: acá se
resuelve fijando CC=zig cc (su compiler-rt trae __ubsan_handle_*). TODO durable: rebuildear zlib
sin instrumentación UBSan (afecta a todo lo que linkee libz.a estático).
2026-07-10 23:30:26 -04:00
sergio ec3dc21fcb base-system-2: lsof construye — ficheros abiertos 4.99.7 estático
b3:b87f0307. deps→linux-headers (perl/bash eran el fallo de carga). El tarball trae el Configure
viejo (sh, no autotools) → ./Configure -n linux + make CC='cc -static' (Configure genera su propia
línea de link que ignora los LDFLAGS del lab).
2026-07-10 23:30:04 -04:00
sergio 35bc0fc9f7 base-system-2: procps-ng construye — ps/top/free/kill/uptime/vmstat
b3:e6f71fc4 (procps-ng 4.0.6). compiler=gcc gueto + ncursesw + -no-pie (patrón vim), fase configure
explícita --without-systemd --enable-static. Gotcha: patch a un .am dispara regeneración automake
(ausente) → reordené timestamps de fuentes en configure para saltarla. Herramientas de proceso base.
2026-07-10 23:28:36 -04:00