diff --git a/local/scripts/build-redbear.sh b/local/scripts/build-redbear.sh index cb39be8a1f..0beff86b51 100755 --- a/local/scripts/build-redbear.sh +++ b/local/scripts/build-redbear.sh @@ -912,7 +912,15 @@ bash "$PROJECT_ROOT/local/scripts/sync-versions.sh" --check || { # llvm21 is a Mesa (graphics) dep — only needed when the Mesa chain is in scope. echo ">>> Pre-cooking critical packages..." if [ "$CONFIG" = "redbear-full" ]; then - PRECOOK_PKGS="relibc icu llvm21 mesa libdrm libepoxy redox-drm lcms2 libdisplay-info libxcvt sddm qtbase kwin" + # The Qt stack has a strict internal build order (qtbase -> qtshadertools -> + # qtdeclarative -> qtsvg -> qtwayland) and downstream consumers (sddm, the + # kf6 modules pulled by kwin) do find_package(Qt6Qml)/find_package(Qt6Quick). + # If these are only resolved transitively during the parallel `make live` + # graph, a consumer can be cooked before qtdeclarative publishes Qt6Qml and + # configure fails ("Could not find a package configuration file provided by + # Qt6Qml"), aborting the whole build. Pre-cook the Qt stack IN ORDER, before + # sddm/kwin, so every Qt6 CMake package is cached in the sysroot first. + PRECOOK_PKGS="relibc icu llvm21 mesa libdrm libepoxy redox-drm lcms2 libdisplay-info libxcvt qtbase qtshadertools qtdeclarative qtsvg qtwayland sddm kwin" else PRECOOK_PKGS="relibc icu" fi