diff --git a/local/patches/kf6-ki18n/P1-strtold-include.patch b/local/patches/kf6-ki18n/P1-strtold-include.patch deleted file mode 100644 index b30944a107..0000000000 --- a/local/patches/kf6-ki18n/P1-strtold-include.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/src/i18n/common_helpers_p.h -+++ b/src/i18n/common_helpers_p.h -@@ -7,6 +7,10 @@ - #ifndef COMMON_HELPERS_P_H - #define COMMON_HELPERS_P_H - -+// Ensure C99 stdlib declarations (strtold etc.) are visible before -+// Qt headers pull in . relibc declares strtold via cbindgen -+// trailer; GCC needs it in :: scope. -+#include - #include - - // Standalone (pure Qt) functionality needed internally in more than diff --git a/local/recipes/kde/kf6-ki18n/P1-strtold-include.patch b/local/recipes/kde/kf6-ki18n/P1-strtold-include.patch deleted file mode 120000 index 0bee9f7356..0000000000 --- a/local/recipes/kde/kf6-ki18n/P1-strtold-include.patch +++ /dev/null @@ -1 +0,0 @@ -../../../../local/patches/kf6-ki18n/P1-strtold-include.patch \ No newline at end of file diff --git a/local/recipes/kde/kf6-ki18n/recipe.toml b/local/recipes/kde/kf6-ki18n/recipe.toml index 1e8ad91de8..71f1808673 100644 --- a/local/recipes/kde/kf6-ki18n/recipe.toml +++ b/local/recipes/kde/kf6-ki18n/recipe.toml @@ -1,9 +1,6 @@ #TODO: KI18n — internationalization framework, gettext integration. Depends on qtbase, qtdeclarative, kf6-extra-cmake-modules. [source] tar = "https://invent.kde.org/frameworks/ki18n/-/archive/v6.10.0/ki18n-v6.10.0.tar.gz" -patches = [ - "P1-strtold-include.patch", -] [build] template = "custom" @@ -20,30 +17,42 @@ source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules -# Build a minimal cmake-only package. Actual i18n library blocked by -# strtold visibility (GCC ::strtold not found in relibc). -# This provides KF6I18nConfig.cmake so dependents can configure. +# ECMGenerateQDoc requires Qt6Tools which we don't build. Remove. +find "${COOKBOOK_SOURCE}" -name "CMakeLists.txt" -exec sed -i '/include(ECMGenerateQDoc)/d; /ecm_generate_qdoc/d' {} + +# ki18n_install(po) tries to build translation files; skip for cross-compile. +sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ + "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true +# i18n-qml is needed by KNewStuffWidgets. Disable localedata-qml (runtime data unpackage). +sed -i 's/^# add_subdirectory(i18n-qml)/ add_subdirectory(i18n-qml)/' \ + "${COOKBOOK_SOURCE}/src/CMakeLists.txt" 2>/dev/null || true +sed -i 's/^ add_subdirectory(localedata-qml)/# add_subdirectory(localedata-qml)/' \ + "${COOKBOOK_SOURCE}/src/CMakeLists.txt" 2>/dev/null || true -mkdir -p "${COOKBOOK_STAGE}/usr/lib/cmake/KF6I18n" -cat > "${COOKBOOK_STAGE}/usr/lib/cmake/KF6I18n/KF6I18nConfig.cmake" << 'CMEOF' -set(KF6I18n_VERSION "6.10.0") -set(KF6I18n_FOUND TRUE) -include("${CMAKE_CURRENT_LIST_DIR}/KF6I18nTargets.cmake") -CMEOF -cat > "${COOKBOOK_STAGE}/usr/lib/cmake/KF6I18n/KF6I18nTargets.cmake" << 'CMEOF' -if(NOT TARGET KF6::I18n) - add_library(KF6::I18n SHARED IMPORTED) - set_target_properties(KF6::I18n PROPERTIES - IMPORTED_LOCATION "${CMAKE_CURRENT_LIST_DIR}/../../libKF6I18n.so" - ) -endif() -CMEOF -cat > "${COOKBOOK_STAGE}/usr/lib/cmake/KF6I18n/KF6I18nConfigVersion.cmake" << 'CMEOF' -set(PACKAGE_VERSION "6.10.0") -set(PACKAGE_VERSION_COMPATIBLE TRUE) -set(PACKAGE_VERSION_EXACT TRUE) -CMEOF -# Create a stub .so for package dependency resolution -mkdir -p "${COOKBOOK_STAGE}/usr/lib" -touch "${COOKBOOK_STAGE}/usr/lib/libKF6I18n.so" -""" +rm -f CMakeCache.txt +rm -rf CMakeFiles + +export LDFLAGS+=" -liconv" + +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_PREFIX_PATH="${COOKBOOK_SYSROOT}" \ + -DCMAKE_C_STANDARD_LIBRARIES="-liconv" \ + -DCMAKE_CXX_STANDARD_LIBRARIES="-liconv" \ + -DCMAKE_SHARED_LINKER_FLAGS="-liconv" \ + -DCMAKE_EXE_LINKER_FLAGS="-liconv" \ + -DBUILD_TESTING=OFF \ + -DBUILD_QCH=OFF \ + -DBUILD_WITH_QML=ON \ + -Wno-dev + +cmake --build . -j${COOKBOOK_MAKE_JOBS} +cmake --install . --prefix "${COOKBOOK_STAGE}/usr" + +for lib in "${COOKBOOK_STAGE}/usr/lib/"libKF6*.so.*; do + [ -f "${lib}" ] || continue + patchelf --remove-rpath "${lib}" 2>/dev/null || true +done +""" \ No newline at end of file diff --git a/local/recipes/qt/redox-toolchain.cmake b/local/recipes/qt/redox-toolchain.cmake index cae3527408..1ee4dbb1e5 100644 --- a/local/recipes/qt/redox-toolchain.cmake +++ b/local/recipes/qt/redox-toolchain.cmake @@ -42,13 +42,10 @@ set(CMAKE_SYSTEM_VERSION 1) # Redox userspace currently must not emit CET/IBT entry instructions (endbr64), # because they trap as invalid opcode in the current runtime stack. -set(CMAKE_C_FLAGS "-fcf-protection=none -march=x86-64 -include strings.h -include stdlib.h" CACHE STRING "" FORCE) -set(CMAKE_CXX_FLAGS "-fcf-protection=none -march=x86-64 -fpermissive -include strings.h -include stdlib.h -I${COOKBOOK_SYSROOT}/usr/include/QtQml -I${COOKBOOK_SYSROOT}/usr/include/QtQuick" CACHE STRING "" FORCE) -set(CMAKE_C_FLAGS_RELEASE "-fcf-protection=none -march=x86-64 -include strings.h -include stdlib.h" CACHE STRING "" FORCE) -set(CMAKE_CXX_FLAGS_RELEASE "-fcf-protection=none -march=x86-64 -fpermissive -include strings.h -include stdlib.h" CACHE STRING "" FORCE) -# Disable precompiled headers — PCH compiles without -include flags, -# missing C99 stdlib declarations (strtold) needed by GCC . -set(CMAKE_DISABLE_PRECOMPILE_HEADERS ON CACHE BOOL "" FORCE) +set(CMAKE_C_FLAGS "-fcf-protection=none -march=x86-64 -include strings.h" CACHE STRING "" FORCE) +set(CMAKE_CXX_FLAGS "-fcf-protection=none -march=x86-64 -fpermissive -include strings.h -I${COOKBOOK_SYSROOT}/usr/include/QtQml -I${COOKBOOK_SYSROOT}/usr/include/QtQuick" CACHE STRING "" FORCE) +set(CMAKE_C_FLAGS_RELEASE "-fcf-protection=none -march=x86-64 -include strings.h" CACHE STRING "" FORCE) +set(CMAKE_CXX_FLAGS_RELEASE "-fcf-protection=none -march=x86-64 -fpermissive -include strings.h" CACHE STRING "" FORCE) # Flag for redox.patch: enables REDOX-specific CMake code paths (mkspec, QPA plugin). # QtPlatformSupport.cmake checks this variable. Set as CACHE INTERNAL so it persists diff --git a/local/recipes/system/redbear-greeter/source/ui/greeter_backend.cpp b/local/recipes/system/redbear-greeter/source/ui/greeter_backend.cpp index d6770fc8c8..996d453944 100644 --- a/local/recipes/system/redbear-greeter/source/ui/greeter_backend.cpp +++ b/local/recipes/system/redbear-greeter/source/ui/greeter_backend.cpp @@ -1,4 +1,3 @@ -#include #include "greeter_backend.h" #include diff --git a/local/recipes/system/redbear-greeter/source/ui/main.cpp b/local/recipes/system/redbear-greeter/source/ui/main.cpp index 3bd0799687..b99da0d7e2 100644 --- a/local/recipes/system/redbear-greeter/source/ui/main.cpp +++ b/local/recipes/system/redbear-greeter/source/ui/main.cpp @@ -1,4 +1,3 @@ -#include #include #include #include