chore: sync all pending changes — kirigami platform headers, cookbook fix, docs, patches

Kirigami: remove stub .cpp, add Qt platform integration headers for
QML gate. Matches KDE src/pattern for direct header-only builds.

Cookbook: add --no-backup-if-mismatch to patch invocation (fetch.rs).

Kernel: consolidate patch chain, add debug-scheme-serial-fix.

Docs: archive old audit reports, add CHANGELOG and hardware validation
matrix. Update AGENTS.md with Linux reference source policy.

Scripts: add test-network-qemu.sh, test-storage-qemu.sh.

.gitignore: add local/reference/ exclusion.
This commit is contained in:
2026-05-04 11:57:48 +01:00
parent 11993af01f
commit ce0ac10b6d
66 changed files with 6623 additions and 90 deletions
+42 -3
View File
@@ -1,4 +1,7 @@
#TODO: Kirigami — build the real non-QML C++ core on Redox. Qt Quick, templates, examples, and autotests stay disabled until the Qt6 QML/Quick runtime surface is stronger.
#TODO: Kirigami — builds the C++ core with QML type registration macros as no-ops.
# Qt6's cmake generates QML_ATTACHED_OFF_OFF_OFF_OFF_OFF_OFF etc. when QML features are
# disabled at configure time. We define these as no-ops so the C++ code compiles without
# QML runtime registration. Full QML/Quick support requires the QML JIT gate resolution.
[source]
tar = "https://invent.kde.org/frameworks/kirigami/-/archive/v6.10.0/kirigami-v6.10.0.tar.gz"
blake3 = "d0964890aa6523f7067510bb7e6c784ba77611952d952bfdd6422a58a23664f6"
@@ -23,18 +26,54 @@ for qtdir in plugins mkspecs metatypes modules; do
fi
done
# Full QML/Quick build — qtdeclarative provides Qt6Qml/Qt6Quick with qml_jit=OFF
# Create a header that defines QML _OFF macros as no-ops.
# When Qt6 cmake disables QML features, it rewrites QML_ATTACHED(X) as
# QML_ATTACHED_OFF_OFF_OFF_OFF_OFF_OFF(X) in the source. These macros
# are never defined by Qt, causing build failures. We define them as empty
# so the C++ code compiles while QML type registration is silently skipped.
cat > "${COOKBOOK_BUILD}/qml_off_noop.h" << 'QMLEOF'
#ifndef REDBEAR_QML_OFF_NOOP_H
#define REDBEAR_QML_OFF_NOOP_H
#define QML_ELEMENT_OFF_OFF_OFF_OFF_OFF_OFF
#define QML_NAMED_ELEMENT_OFF_OFF_OFF_OFF_OFF_OFF(NAME)
#define QML_ATTACHED_OFF_OFF_OFF_OFF_OFF_OFF(ATTACHED_TYPE)
#define QML_UNCREATABLE_OFF_OFF_OFF_OFF_OFF_OFF(REASON)
#define QML_SINGLETON_OFF_OFF_OFF_OFF_OFF_OFF
#endif
QMLEOF
cat > "${COOKBOOK_BUILD}/shader_noop.cmake" << 'EOFCMAKE'
function(qt6_add_shaders)
endfunction()
function(qt_internal_add_shaders)
endfunction()
function(qt_add_shaders)
endfunction()
EOFCMAKE
# Disable translations (requires Qt6LinguistTools which is not in the build)
sed -i 's/^ecm_install_po_files_as_qm(poqm)/# ecm_install_po_files_as_qm(poqm) -- disabled for Redox cross-build/' "${COOKBOOK_SOURCE}/CMakeLists.txt"
# Disable qmllint (requires QML runtime we don't fully have)
sed -i 's/^configure_file(qmllint.ini.in/# configure_file(qmllint.ini.in -- disabled/' "${COOKBOOK_SOURCE}/CMakeLists.txt"
sed -i 's/^kde_configure_git_pre_commit_hook/# kde_configure_git_pre_commit_hook -- disabled/' "${COOKBOOK_SOURCE}/CMakeLists.txt"
cmake "${COOKBOOK_SOURCE}" \
-DCMAKE_TOOLCHAIN_FILE="${COOKBOOK_ROOT}/local/recipes/qt/redox-toolchain.cmake" \
-DQT_HOST_PATH="${HOST_BUILD}" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="-I${COOKBOOK_SYSROOT}/usr/include/QtQml -I${COOKBOOK_SYSROOT}/usr/include/QtQuick" \
-DCMAKE_CXX_FLAGS="-include ${COOKBOOK_BUILD}/qml_off_noop.h -I${COOKBOOK_SYSROOT}/usr/include/QtQml -I${COOKBOOK_SYSROOT}/usr/include/QtQuick" \
-DCMAKE_PREFIX_PATH="${COOKBOOK_SYSROOT}:${COOKBOOK_STAGE}/usr/lib/cmake" \
-DCMAKE_PROJECT_TOP_LEVEL_INCLUDES="${COOKBOOK_BUILD}/shader_noop.cmake" \
-DBUILD_TESTING=OFF \
-DBUILD_QCH=OFF \
-DBUILD_EXAMPLES=OFF \
-DUSE_DBUS=OFF \
-DECM_ENABLE_QT_TRANSLATIONS=OFF \
-DBUILD_TRANSLATIONS=OFF \
-Wno-dev
cmake --build . -j${COOKBOOK_MAKE_JOBS}