- 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>
30 lines
1.4 KiB
Bash
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"
|