diff --git a/local/recipes/kde/kf6-kcrash/recipe.toml b/local/recipes/kde/kf6-kcrash/recipe.toml index 1b4b252faa..9907d27de5 100644 --- a/local/recipes/kde/kf6-kcrash/recipe.toml +++ b/local/recipes/kde/kf6-kcrash/recipe.toml @@ -1,4 +1,4 @@ -#TODO: KCrash — crash handler, backtrace generation. OpenGL deps disabled for software rendering. +# KCrash — crash handler, backtrace generation, with OpenGL renderer metadata. [source] tar = "https://download.kde.org/stable/frameworks/6.27/kcrash-6.27.0.tar.xz" blake3 = "dcdd52301351857c6479c8d56d17302dd5a532606a2acdd86b6b7758457fa612" @@ -16,48 +16,8 @@ DYNAMIC_INIT HOST_BUILD="${COOKBOOK_ROOT}/build/qt-host-build" source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" -STUB_OPENGL_DIR="${COOKBOOK_SYSROOT}/lib/cmake/Qt6OpenGL" -mkdir -p "${STUB_OPENGL_DIR}" -cat > "${STUB_OPENGL_DIR}/Qt6OpenGLConfig.cmake" << 'OPENGLEOF' -set(Qt6OpenGL_FOUND ON) -set(Qt6OpenGL_VERSION "6.6.0") -OPENGLEOF -cat > "${STUB_OPENGL_DIR}/Qt6OpenGLConfigVersion.cmake" << 'OPENGLEOF' -set(PACKAGE_VERSION "6.6.0") -set(PACKAGE_VERSION_COMPATIBLE TRUE) -OPENGLEOF - redbear_qt_prepare_common_sysroot "${COOKBOOK_SYSROOT}" -#DISABLED: sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -#DISABLED: sed -i "s/^ki18n_install(po)/#ki18n_install(po)/" "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i "/find_package(Qt6.*Widgets)/a find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)" "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i "s/find_package(Qt6.*REQUIRED Core Gui) OpenGL)/find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core Gui)/" "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i "s/target_link_libraries(KF6Crash PRIVATE Qt6::Gui Qt6::OpenGL/target_link_libraries(KF6Crash PRIVATE Qt6::Gui/" "${COOKBOOK_SOURCE}/src/CMakeLists.txt" 2>/dev/null || true -sed -i "s/find_package(Qt6Test.*REQUIRED)/#find_package(Qt6Test REQUIRED)/" "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true - -KCRASH_SRC="${COOKBOOK_SOURCE}/src/kcrash.cpp" -# OpenGL renderer query: keep the original glGetString-based -# implementation. Mesa (llvmpipe) provides libGL + GL/gl.h which -# exports glGetString. If a GL context is active, it returns the -# renderer string (e.g. "llvmpipe"); if no context, returns empty. -# Previous shortcut replaced the entire function body with -# `return QString()`, which silently lost crash-report metadata. -# restore original behavior now that Mesa is properly installed. -# No sed substitution needed — the upstream function compiles as-is -# on Redox with Mesa installed. - -# Stub out setgroups() call - Redox kernel lacks credential syscalls -sed -i 's/setgroups(0, nullptr);/\/\/ setgroups not available on Redox/' "${KCRASH_SRC}" - -if ! grep -q "" "${COOKBOOK_SOURCE}/src/kcrash.cpp"; then - printf "%s\n" "#include " "#include " "#include " > /tmp/wait_h.txt - sed -i "\\//{ - r /tmp/wait_h.txt - d - }" "${COOKBOOK_SOURCE}/src/kcrash.cpp" -fi - rm -f CMakeCache.txt rm -rf CMakeFiles diff --git a/local/recipes/kde/kf6-kcrash/source/src/CMakeLists.txt b/local/recipes/kde/kf6-kcrash/source/src/CMakeLists.txt index 85b6624521..eea6013e4e 100644 --- a/local/recipes/kde/kf6-kcrash/source/src/CMakeLists.txt +++ b/local/recipes/kde/kf6-kcrash/source/src/CMakeLists.txt @@ -45,7 +45,7 @@ ecm_generate_export_header(KF6Crash target_include_directories(KF6Crash INTERFACE "$") target_link_libraries(KF6Crash PUBLIC Qt6::Core) -target_link_libraries(KF6Crash PRIVATE Qt6::Gui KF6::CoreAddons) +target_link_libraries(KF6Crash PRIVATE Qt6::Gui Qt6::OpenGL KF6::CoreAddons) if (HAIKU) target_link_libraries(KF6Crash PRIVATE network) diff --git a/local/recipes/kde/kf6-kcrash/source/src/kcrash.cpp b/local/recipes/kde/kf6-kcrash/source/src/kcrash.cpp index 8f62372016..80c241bd0f 100644 --- a/local/recipes/kde/kf6-kcrash/source/src/kcrash.cpp +++ b/local/recipes/kde/kf6-kcrash/source/src/kcrash.cpp @@ -741,7 +741,7 @@ static pid_t startDirectly(const char *argv[]) fprintf(stderr, "KCrash failed to fork(), errno = %d\n", errno); return 0; case 0: - // setgroups not available on Redox // Remove any extraneous groups + setgroups(0, nullptr); // Remove any extraneous groups if (setgid(getgid()) < 0 || setuid(getuid()) < 0) { _exit(253); // This cannot happen. Theoretically. } diff --git a/local/recipes/kde/kwin/recipe.toml b/local/recipes/kde/kwin/recipe.toml index a0df71ed94..82fe5a7e9f 100644 --- a/local/recipes/kde/kwin/recipe.toml +++ b/local/recipes/kde/kwin/recipe.toml @@ -5,9 +5,8 @@ # Provides epoxy::epoxy cmake target with real EGL/GLES function pointer # dispatch, replacing the hardcoded-zero stub. # - KF6Svg: built by local/recipes/kde/kf6-ksvg and consumed by KWin. -# - Sensors / UiTools: removed from CMakeLists.txt (these components -# are not yet in-tree for Redox; sed-removal keeps the cmake build -# bounded). +# - UiTools: not yet in-tree for Redox; sed-removal keeps the cmake build +# bounded until qttools is ported. # - QML/Quick: cmake config tries to enable QML; the recipe tolerates # a partial KWin build (kdecoration-style core libs) until full # QML is wired. @@ -68,7 +67,6 @@ sed -i '/include(ECMQmlModule)/s/^/#/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/de # Remove Qt components not available in cross-build sed -i '/^ UiTools$/d' "${COOKBOOK_SOURCE}/CMakeLists.txt" -sed -i '/^ Sensors$/d' "${COOKBOOK_SOURCE}/CMakeLists.txt" rm -f CMakeCache.txt rm -rf CMakeFiles diff --git a/local/recipes/kde/kwin/source/CMakeLists.txt b/local/recipes/kde/kwin/source/CMakeLists.txt index 67ea327610..685a95dd46 100644 --- a/local/recipes/kde/kwin/source/CMakeLists.txt +++ b/local/recipes/kde/kwin/source/CMakeLists.txt @@ -68,6 +68,7 @@ find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS WaylandClient Widgets Svg + Sensors ) if (Qt6Gui_VERSION VERSION_GREATER_EQUAL "6.10.0")