Files
sergioandClaude Opus 4.8 08510c0424 kde/Plasma: hito H-QML PASADO — hidratación FHS del cierre runtime + reproducer QML
- repo-selfcontain.py: work/repo-kde auto-contenido (alias qt-corto→qt6-* + cierre base
  desde dist/repo), re-firmado 884 pkgs, repo verify trusted.
- hydrate-fhs.sh: hidrata el cierre runtime instalando cada pkg del cierre en el mismo
  prefix (install --prefix sólo baja el pkg pedido); 32 pkgs → work/kde-rootfs, 455 .so
  (libQt6Core/Gui/Qml/Quick + QPA offscreen + mesa/xcb/wayland/openssl).
- h-qml-run.sh + h-qml-test.cpp: QQmlApplicationEngine carga QtQuick Window+Text, compila
  zig-cc/musl contra el FHS, corre offscreen rc=0 (engine instancia el árbol QML).
- ADR 0011: sección resultado H-QML + deudas (target_bin espurio en libs, cache-miss por
  re-resolución de deps → qtbase más completo con SSL, fuentes).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 22:22:54 -04:00

30 lines
1.4 KiB
Bash

#!/usr/bin/env bash
# h-qml-run.sh — VALIDA el hito H-QML (ADR 0011, Capa 1) contra el FHS hidratado desde el repo firmado.
# Compila scripts/kde/h-qml-test.cpp (QQmlApplicationEngine + QtQuick Window/Text) con zig-cc/musl
# contra work/kde-rootfs y lo corre con QT_QPA_PLATFORM=offscreen vía el loader musl del .dev-fs.
# Pensado para correr EN EL WORKER (host glibc + rootfs musl). Prerequisito: hydrate-fhs.sh ya hidrató
# el cierre runtime de qt6-qtdeclarative en work/kde-rootfs.
#
# Éxito = "H-QML: QML instanciado" + "event loop terminó rc=0".
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"; cd "$ROOT"
R="${RFS:-$ROOT/work/kde-rootfs}"
ZIG="${ZIG:-$ROOT/.dev-fs/tools/zig-x86_64-linux-0.13.0/zig}"
LOADER="${LOADER:-$ROOT/.dev-fs/alpine/lib/ld-musl-x86_64.so.1}"
A="$ROOT/.dev-fs/alpine"
BIN="${BIN:-/tmp/h-qml}"
I="$R/usr/include/qt6"
echo "==> compilando h-qml-test.cpp (zig-cc/musl) contra $R"
"$ZIG" c++ -std=c++17 -target x86_64-linux-musl -mcpu=baseline -fPIC \
scripts/kde/h-qml-test.cpp -o "$BIN" \
-I"$I" -I"$I/QtCore" -I"$I/QtGui" -I"$I/QtQml" \
-L"$R/usr/lib" -lQt6Qml -lQt6Gui -lQt6Core
echo "==> corriendo H-QML (offscreen)"
LIBS="$R/usr/lib:$R/usr/lib/qt6:$A/usr/lib:$A/lib"
QT_QPA_PLATFORM=offscreen QT_QUICK_BACKEND=software \
QT_PLUGIN_PATH="$R/usr/lib/qt6/plugins" \
QML_IMPORT_PATH="$R/usr/lib/qt6/qml" QML2_IMPORT_PATH="$R/usr/lib/qt6/qml" \
"$LOADER" --library-path "$LIBS" "$BIN"