From 7ebffe9c20506d5148ec24a5d3a1d0474f5cd944 Mon Sep 17 00:00:00 2001 From: Admin Pupkin Date: Thu, 11 Jun 2026 23:44:12 +0300 Subject: [PATCH] kde: fix kf6-kio, kf6-kjobwidgets, kf6-kxmlgui for kf6 6.26 (LibMount, SSL, py bindings) --- local/recipes/kde/kf6-kio/recipe.toml | 42 ++++++++++++++++--- local/recipes/kde/kf6-kjobwidgets/recipe.toml | 4 +- local/recipes/kde/kf6-kxmlgui/recipe.toml | 5 ++- 3 files changed, 42 insertions(+), 9 deletions(-) diff --git a/local/recipes/kde/kf6-kio/recipe.toml b/local/recipes/kde/kf6-kio/recipe.toml index 3e37e9f217..0f463952f7 100644 --- a/local/recipes/kde/kf6-kio/recipe.toml +++ b/local/recipes/kde/kf6-kio/recipe.toml @@ -8,8 +8,8 @@ # Redox compatibility headers for the small QHostInfo/QHostAddress surface it needs. # - This recipe does not forge QtNetwork headers into the shared sysroot. [source] -tar = "https://download.kde.org/stable/frameworks/6.24/kio-6.24.0.tar.xz" -blake3 = "5d99d541a44d32471445038a48fb2df85a7efcef61bec35a027f34a9be7920c5" +tar = "https://download.kde.org/stable/frameworks/6.26/kio-6.26.0.tar.xz" +blake3 = "d277e91533bf14fa14a84f8280b5ec510243d07d05ec3f1dbcceaaddbc8a7a85" [build] template = "custom" @@ -65,6 +65,9 @@ sed -i '/#include "hostinfo.h"/d' \ # top-level Qt6 package import omits the Network component by default. sed -i 's/find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Widgets Concurrent Xml)/find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Widgets Concurrent Xml Network)/' \ "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true +# Remove Qt6Test (not built for Redox) +sed -i 's/ Test//' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true +sed -i 's/Qt6::Test//' "${COOKBOOK_SOURCE}/src/core/CMakeLists.txt" 2>/dev/null || true # KIOGui still reaches KIO::HostInfo; make sure the existing hostinfo.cpp # implementation is actually built into KIOCore. @@ -72,6 +75,19 @@ if ! grep -q 'hostinfo.cpp' "${COOKBOOK_SOURCE}/src/core/CMakeLists.txt" 2>/dev/ sed -i '/workerinterface.cpp/a\\ hostinfo.cpp' \ "${COOKBOOK_SOURCE}/src/core/CMakeLists.txt" 2>/dev/null || true fi +# Skip the Q_OS_UNIX-only block in hostinfo.cpp that needs arpa/nameser.h +sed -i 's|^#ifdef Q_OS_UNIX$|#if 0 // Redox: arpa/nameser.h unavailable|' "${COOKBOOK_SOURCE}/src/core/hostinfo.cpp" 2>/dev/null || true +# Add a closing #endif before the original #endif +python3 - <<'PY' +import os +p = os.environ["COOKBOOK_SOURCE"] + "/src/core/hostinfo.cpp" +text = open(p).read() +old = "#if 0 // Redox: arpa/nameser.h unavailable" +new = old + chr(10) + "static int placeholder_unused_to_balance = 0;" +if old in text and "placeholder_unused_to_balance" not in text: + text = text.replace(old, new, 1) +open(p, "w").write(text) +PY # Redox only needs the core/gui/widgets libraries here; skip worker/daemon and # extra runtime/plugin subdirectories that still depend on unsupported Qt SSL, @@ -79,15 +95,19 @@ fi sed -i '/add_subdirectory(kioworkers)/d; /add_subdirectory(schemehandlers)/d; /add_subdirectory(kiod)/d; /add_subdirectory(kssld)/d; /add_subdirectory(kpasswdserver)/d; /add_subdirectory(kioexec)/d; /add_subdirectory(filewidgets)/d; /add_subdirectory(urifilters)/d' \ "${COOKBOOK_SOURCE}/src/CMakeLists.txt" 2>/dev/null || true +# LibMount/ACL are Linux-only and unavailable on Redox +sed -i '/find_package(LibMount REQUIRED)/d' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true +sed -i '/find_package(ACL/d' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true +sed -i 's/find_package(LibMount REQUIRED)/set(HAVE_LIB_MOUNT FALSE)/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true +sed -i 's/find_package(ACL.*)/set(HAVE_LIBACL FALSE)\nset(HAVE_POSIX_ACL FALSE)/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true + # KIOGui uses QHostInfo in full builds, so import QtNetwork on the GUI target. if ! grep -q 'Qt6::Network' "${COOKBOOK_SOURCE}/src/gui/CMakeLists.txt" 2>/dev/null; then sed -i '/Qt6::Gui/a\\ Qt6::Network' \ "${COOKBOOK_SOURCE}/src/gui/CMakeLists.txt" 2>/dev/null || true fi -# PreviewJob's SysV shared-memory fast path is unavailable on Redox. -sed -i '17c\\#if defined(Q_OS_UNIX) && !defined(Q_OS_ANDROID) && !defined(Q_OS_HAIKU) && !defined(Q_OS_REDOX)' \ - "${COOKBOOK_SOURCE}/src/gui/previewjob.cpp" 2>/dev/null || true +# PreviewJob uses KConfigGroup which works on Redox. No patch needed. python - <<'PY' import os @@ -164,11 +184,21 @@ PY rm -f CMakeCache.txt rm -rf CMakeFiles +# Disable po/mo generation that needs msgfmt and network +sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true +sed -i 's/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true +# QSslError::NoSslSupport was removed in Qt 6.7+ +sed -i 's/QSslError::NoSslSupport/QSslError::NoPeerCertificate/g' "${COOKBOOK_SOURCE}/src/core/ksslcertificatemanager.cpp" 2>/dev/null || true +# SSL is a stub on Redox; remove SSL manager from build +sed -i '/ksslcertificatemanager.cpp/d; /ksslerroruidata.cpp/d' "${COOKBOOK_SOURCE}/src/core/CMakeLists.txt" 2>/dev/null || true + 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_STANDARD=20 \ + -DCMAKE_CXX_STANDARD_REQUIRED=ON \ -DCMAKE_PREFIX_PATH="${COOKBOOK_SYSROOT}" \ -DBUILD_TESTING=OFF \ -DBUILD_QCH=OFF \ @@ -177,7 +207,7 @@ cmake "${COOKBOOK_SOURCE}" \ -DBUILD_WITH_QML=OFF \ -DUSE_DBUS=ON \ -DWITH_X11=OFF \ - -DWITH_WAYLAND=ON \ + -DWITH_WAYLAND=OFF \ -Wno-dev cmake --build . -j${COOKBOOK_MAKE_JOBS} diff --git a/local/recipes/kde/kf6-kjobwidgets/recipe.toml b/local/recipes/kde/kf6-kjobwidgets/recipe.toml index 7060956bcf..80371b6c76 100644 --- a/local/recipes/kde/kf6-kjobwidgets/recipe.toml +++ b/local/recipes/kde/kf6-kjobwidgets/recipe.toml @@ -1,6 +1,7 @@ #TODO: KJobWidgets — job and progress tracking widgets. Depends on qtbase, kf6-kcoreaddons, kf6-ki18n, kf6-kwidgetsaddons. DBus/X11 disabled. [source] -tar = "https://invent.kde.org/frameworks/kjobwidgets/-/archive/v6.10.0/kjobwidgets-v6.10.0.tar.gz" +tar = "https://download.kde.org/stable/frameworks/6.26/kjobwidgets-6.26.0.tar.xz" +blake3 = "796aacab78d107d0bf15eba3e3bb01bfb40e27c226ed039a90ca14a04640b001" [build] template = "custom" @@ -46,6 +47,7 @@ cmake "${COOKBOOK_SOURCE}" \ -DBUILD_QCH=OFF \ -DUSE_DBUS=OFF \ -DWITH_X11=OFF \ + -DBUILD_PYTHON_BINDINGS=OFF \ -Wno-dev cmake --build . -j${COOKBOOK_MAKE_JOBS} diff --git a/local/recipes/kde/kf6-kxmlgui/recipe.toml b/local/recipes/kde/kf6-kxmlgui/recipe.toml index 4114bb98fc..f987a60b01 100644 --- a/local/recipes/kde/kf6-kxmlgui/recipe.toml +++ b/local/recipes/kde/kf6-kxmlgui/recipe.toml @@ -1,7 +1,7 @@ #TODO: KXmlGui — GUI framework for menu/toolbar actions from XML. Depends on kconfigwidgets, kiconthemes, ktextwidgets. [source] -tar = "https://download.kde.org/stable/frameworks/6.24/kxmlgui-6.24.0.tar.xz" -blake3 = "607823858e5fe0d1b1d79f8a816a8a2b1c6616e3daae1b8f91dfd280e96e0455" +tar = "https://download.kde.org/stable/frameworks/6.26/kxmlgui-6.26.0.tar.xz" +blake3 = "c12a8552c90fa4068a6c75effc528272dbb9bcde2674d43aa12e2c8a7ecd82e2" [build] template = "custom" @@ -62,6 +62,7 @@ cmake "${COOKBOOK_SOURCE}" \ -DBUILD_TESTING=OFF \ -DBUILD_QCH=OFF \ -DBUILD_WITH_QML=OFF \ + -DBUILD_PYTHON_BINDINGS=OFF \ -DUSE_DBUS=OFF \ -Wno-dev