diff --git a/local/recipes/kde/kf6-attica/recipe.toml b/local/recipes/kde/kf6-attica/recipe.toml index 0d5c2f0cd5..5258faa23b 100644 --- a/local/recipes/kde/kf6-attica/recipe.toml +++ b/local/recipes/kde/kf6-attica/recipe.toml @@ -2,8 +2,8 @@ # Provides KF6::Attica cmake target needed by kf6-knewstuff. # QML, tests, and examples disabled. [source] -tar = "https://download.kde.org/stable/frameworks/6.24/attica-6.24.0.tar.xz" -blake3 = "aac451264d6890739fd0624972231573013b52af0be5ff4940a5ee16efd263f6" +tar = "https://download.kde.org/stable/frameworks/6.26/attica-6.26.0.tar.xz" +blake3 = "140fb7127ed56aa35e95eda96f6b933f727f418f9bc4c2d6e776aea457f29b6c" [build] template = "custom" @@ -22,13 +22,6 @@ source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i '/include(ECMQmlModule)/s/^/#/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i '/add_subdirectory(autotests)/s/^/#/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i '/add_subdirectory(examples)/s/^/#/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true rm -f CMakeCache.txt rm -rf CMakeFiles diff --git a/local/recipes/kde/kf6-kcolorscheme/recipe.toml b/local/recipes/kde/kf6-kcolorscheme/recipe.toml index 30ec1dd14e..da4eb82bfb 100644 --- a/local/recipes/kde/kf6-kcolorscheme/recipe.toml +++ b/local/recipes/kde/kf6-kcolorscheme/recipe.toml @@ -21,12 +21,6 @@ source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i '/find_package(Qt6.*Gui)/a find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true # kcolorschemehelpers_p.h uses qApp->property(...).toString() without # including . Add it. diff --git a/local/recipes/kde/kf6-kconfigwidgets/recipe.toml b/local/recipes/kde/kf6-kconfigwidgets/recipe.toml index 6f03e71616..45adf3fbb5 100644 --- a/local/recipes/kde/kf6-kconfigwidgets/recipe.toml +++ b/local/recipes/kde/kf6-kconfigwidgets/recipe.toml @@ -1,7 +1,7 @@ #TODO: KConfigWidgets — configuration widgets, KConfigXT. Depends on qtbase, kf6-kconfig, kf6-kcoreaddons, kf6-ki18n, kf6-kwidgetsaddons, kf6-kcodecs, kf6-kauth, kf6-kguiaddons, kf6-kcolorscheme. [source] -tar = "https://download.kde.org/stable/frameworks/6.24/kconfigwidgets-6.24.0.tar.xz" -blake3 = "534fc5732c7c4df3dc652c1a5b9ae7983e7862c82110df24669f8ea748a241c8" +tar = "https://download.kde.org/stable/frameworks/6.26/kconfigwidgets-6.26.0.tar.xz" +blake3 = "ff488487687205bbb850cf01ae3f1b081fb25608e1a4f924c8f1663827931e28" [build] template = "custom" @@ -26,12 +26,6 @@ HOST_BUILD="${COOKBOOK_ROOT}/build/qt-host-build" redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -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 rm -f CMakeCache.txt rm -rf CMakeFiles diff --git a/local/recipes/kde/kf6-kcrash/recipe.toml b/local/recipes/kde/kf6-kcrash/recipe.toml index 5d07f9f926..7793bb319b 100644 --- a/local/recipes/kde/kf6-kcrash/recipe.toml +++ b/local/recipes/kde/kf6-kcrash/recipe.toml @@ -1,7 +1,7 @@ #TODO: KCrash — crash handler, backtrace generation. OpenGL deps disabled for software rendering. [source] -tar = "https://download.kde.org/stable/frameworks/6.24/kcrash-6.24.0.tar.xz" -blake3 = "40acc9c6f77333fcc590e7da50348c17944c226fdff06a7ff2466c8aeb01e176" +tar = "https://download.kde.org/stable/frameworks/6.26/kcrash-6.26.0.tar.xz" +blake3 = "cf42edc13649c9c4ae25df41550bbd0f64c2bab5ffcc4d27baf258c84596b1c2" [build] template = "custom" @@ -29,26 +29,13 @@ OPENGLEOF redbear_qt_prepare_common_sysroot "${COOKBOOK_SYSROOT}" -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -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" -sed -i '/^QString glRenderer()/,/^}$/c\ -QString glRenderer()\ -{\ - return QString();\ -}' "${KCRASH_SRC}" # 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" diff --git a/local/recipes/kde/kf6-kguiaddons/recipe.toml b/local/recipes/kde/kf6-kguiaddons/recipe.toml index 9e3f61af85..4f260b532a 100644 --- a/local/recipes/kde/kf6-kguiaddons/recipe.toml +++ b/local/recipes/kde/kf6-kguiaddons/recipe.toml @@ -17,8 +17,6 @@ source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true rm -f CMakeCache.txt rm -rf CMakeFiles diff --git a/local/recipes/kde/kf6-ki18n/recipe.toml b/local/recipes/kde/kf6-ki18n/recipe.toml index 8ee4ef68e4..17a0caeee5 100644 --- a/local/recipes/kde/kf6-ki18n/recipe.toml +++ b/local/recipes/kde/kf6-ki18n/recipe.toml @@ -1,7 +1,7 @@ #TODO: KI18n — internationalization framework, gettext integration. Depends on qtbase, qtdeclarative, kf6-extra-cmake-modules. [source] -tar = "https://download.kde.org/stable/frameworks/6.24/ki18n-6.24.0.tar.xz" -blake3 = "1081644f3a33029ea3490e3b2ebd85cec0c021780af8b78d1dfd0df75e883538" +tar = "https://download.kde.org/stable/frameworks/6.26/ki18n-6.26.0.tar.xz" +blake3 = "c5321c29c642606e503f052e799c91dd83735d283b537568e3b8e1fb45875a6e" [build] template = "custom" @@ -18,17 +18,9 @@ source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true # Build the QML-facing i18n library needed by KNewStuffWidgets. Keep the # locale-data QML plugin disabled until its runtime data surface is packaged. -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 rm -f CMakeCache.txt rm -rf CMakeFiles diff --git a/local/recipes/kde/kf6-kiconthemes/recipe.toml b/local/recipes/kde/kf6-kiconthemes/recipe.toml index 67f67a5f74..1c0d81d3e3 100644 --- a/local/recipes/kde/kf6-kiconthemes/recipe.toml +++ b/local/recipes/kde/kf6-kiconthemes/recipe.toml @@ -26,27 +26,12 @@ source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i '/find_package(Qt6Widgets/a find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED)' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i '/include(ECMQmlModule)/s/^/#/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i '/add_subdirectory(qml)/s/^/#/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i '/add_subdirectory(qml)/s/^/#/' "${COOKBOOK_SOURCE}/src/CMakeLists.txt" 2>/dev/null || true -sed -i '/find_package(Qt6.*Qml Quick)/s/^/#/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/if (KICONTHEMES_USE_QTQUICK)/if (FALSE)/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/set(KICONTHEMES_USE_QTQUICK ON)/set(KICONTHEMES_USE_QTQUICK OFF)/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/set(USE_BreezeIcons_DEFAULT ON)/set(USE_BreezeIcons_DEFAULT OFF)/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true rm -f CMakeCache.txt rm -rf CMakeFiles SYSROOT="${COOKBOOK_SYSROOT}" SYSROOT_LIB="${SYSROOT}/lib" -find "${SYSROOT}/lib/cmake/Qt6Svg" -name '*.cmake' -exec sed -i \ - "s|/usr/lib|${SYSROOT_LIB}|g" {} + 2>/dev/null || true mkdir -p "${SYSROOT}/usr/lib" for lib in "${SYSROOT}/lib/libQt6Svg"*; do [ -f "${lib}" ] || continue @@ -56,6 +41,13 @@ for lib in "${SYSROOT}/lib/libQt6Svg"*; do fi done +mkdir -p "${SYSROOT}/lib" +if [ -f "${SYSROOT}/usr/lib/liblzma.a" ] && [ ! -f "${SYSROOT}/lib/liblzma.so.5" ]; then + x86_64-unknown-redox-gcc -shared -Wl,-soname,liblzma.so.5 -Wl,--whole-archive \ + -o "${SYSROOT}/lib/liblzma.so.5" \ + "${SYSROOT}/usr/lib/liblzma.a" -Wl,--no-whole-archive 2>/dev/null || true +fi + # Cross-compilation workaround: GLESv2 test compile fails. Force-set vars. export GLESv2_LIBRARY="${SYSROOT}/lib/libGLESv2.so" export GLESv2_INCLUDE_DIR="${SYSROOT}/include" diff --git a/local/recipes/kde/kf6-kidletime/recipe.toml b/local/recipes/kde/kf6-kidletime/recipe.toml index 75a14da222..c3b7889bda 100644 --- a/local/recipes/kde/kf6-kidletime/recipe.toml +++ b/local/recipes/kde/kf6-kidletime/recipe.toml @@ -1,7 +1,7 @@ # KIdleTime — idle time detection. Used by KWin for screen dimming/locking. [source] -tar = "https://download.kde.org/stable/frameworks/6.24/kidletime-6.24.0.tar.xz" -blake3 = "60941f1ba75f7b631daa2b3674209225dd6480916f812a3169336104eac3f840" +tar = "https://download.kde.org/stable/frameworks/6.26/kidletime-6.26.0.tar.xz" +blake3 = "257b2515b84d575ea1173cf71053261509b417b20a83d497e182a2e4f5ed44a0" [build] template = "custom" @@ -25,10 +25,6 @@ for qtdir in plugins mkspecs metatypes modules; do fi done -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true rm -f CMakeCache.txt rm -rf CMakeFiles @@ -42,7 +38,7 @@ cmake "${COOKBOOK_SOURCE}" \ -DBUILD_TESTING=OFF \ -DBUILD_QCH=OFF \ -DWITH_X11=OFF \ - -DWITH_WAYLAND=ON \ + -DWITH_WAYLAND=OFF \ -DQT_SKIP_AUTO_PLUGIN_INCLUSION=ON \ -Wno-dev diff --git a/local/recipes/kde/kf6-kimageformats/recipe.toml b/local/recipes/kde/kf6-kimageformats/recipe.toml index 880f299b94..03443c9874 100644 --- a/local/recipes/kde/kf6-kimageformats/recipe.toml +++ b/local/recipes/kde/kf6-kimageformats/recipe.toml @@ -18,8 +18,6 @@ source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true rm -f CMakeCache.txt rm -rf CMakeFiles diff --git a/local/recipes/kde/kf6-kio/recipe.toml b/local/recipes/kde/kf6-kio/recipe.toml index 0f463952f7..fb1609b1b5 100644 --- a/local/recipes/kde/kf6-kio/recipe.toml +++ b/local/recipes/kde/kf6-kio/recipe.toml @@ -55,28 +55,17 @@ done # workerinterface.cpp calls KIO::HostInfo::lookupHost which needs # hostinfo.cpp — but hostinfo.cpp still isn't in the cmake source list. # Replace the call with a direct QHostInfo::fromName. -sed -i 's/const QHostInfo info = HostInfo::lookupHost(hostName, 1500);/const QHostInfo info = QHostInfo::fromName(hostName);/' \ - "${COOKBOOK_SOURCE}/src/core/workerinterface.cpp" 2>/dev/null || true # Also remove the hostinfo.h include — no longer needed -sed -i '/#include "hostinfo.h"/d' \ - "${COOKBOOK_SOURCE}/src/core/workerinterface.cpp" 2>/dev/null || true # Full KIO builds link Qt6::Network from multiple subdirectories, but the # 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. if ! grep -q 'hostinfo.cpp' "${COOKBOOK_SOURCE}/src/core/CMakeLists.txt" 2>/dev/null; then - 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 @@ -92,19 +81,11 @@ 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, # SysV IPC, and broader runtime surfaces. -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 uses KConfigGroup which works on Redox. No patch needed. @@ -185,12 +166,8 @@ 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" \ diff --git a/local/recipes/kde/kf6-kitemmodels/recipe.toml b/local/recipes/kde/kf6-kitemmodels/recipe.toml index 8593b2b512..e7de210156 100644 --- a/local/recipes/kde/kf6-kitemmodels/recipe.toml +++ b/local/recipes/kde/kf6-kitemmodels/recipe.toml @@ -1,7 +1,7 @@ #TODO: KItemModels — Qt model framework extensions (KDescendantsProxyModel, KConcatenateRowsProxyModel, etc.) [source] -tar = "https://download.kde.org/stable/frameworks/6.24/kitemmodels-6.24.0.tar.xz" -blake3 = "347d253fd01ddcb7683ed84397adf62ef61530dae0e7a9f53120d0b8c9c95954" +tar = "https://download.kde.org/stable/frameworks/6.26/kitemmodels-6.26.0.tar.xz" +blake3 = "c7d8ee3c4d89525064416876a892447fa45e2d6975dfc93deab7f90afc30d9ce" [build] template = "custom" @@ -19,12 +19,6 @@ source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true - sed -i '/include(ECMQmlModule)/s/^/#/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true - sed -i '/add_subdirectory(qml)/s/^/#/' "${COOKBOOK_SOURCE}/src/CMakeLists.txt" 2>/dev/null || true # Ensure Qt6Qml is NOT found - rename qml dir to prevent Qt from auto-detecting it if [ -d "${COOKBOOK_SOURCE}/src/qml" ]; then mv "${COOKBOOK_SOURCE}/src/qml" "${COOKBOOK_SOURCE}/src/qml.disabled" diff --git a/local/recipes/kde/kf6-knewstuff/recipe.toml b/local/recipes/kde/kf6-knewstuff/recipe.toml index eac790ac78..c9a59aedce 100644 --- a/local/recipes/kde/kf6-knewstuff/recipe.toml +++ b/local/recipes/kde/kf6-knewstuff/recipe.toml @@ -1,7 +1,7 @@ #TODO: KNewStuff — core-only build on Redox. Qt Quick, widgets, tools, and Kirigami-facing surfaces disabled. KF6Attica now available in-tree (kf6-attica recipe). [source] -tar = "https://download.kde.org/stable/frameworks/6.24/knewstuff-6.24.0.tar.xz" -blake3 = "32d7592cd0c686da62afc7c83994658ae4dce1fc47e3a7aa170765b23ce8681b" +tar = "https://download.kde.org/stable/frameworks/6.26/knewstuff-6.26.0.tar.xz" +blake3 = "cb326c404a69cbbf270bc68d5af3d0026d63e9ae07cdb40e7ccf193e9c3ead82" [build] template = "custom" @@ -25,20 +25,6 @@ source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules -sed -i 's/^include(ECMQmlModule)/# include(ECMQmlModule) # disabled for Redox core-only build/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^find_package(KF6Kirigami2.*/# find_package(KF6Kirigami2 disabled for Redox core-only build)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^# find_package(KF6Attica disabled - KF6Attica not yet available)/find_package(KF6Attica ${KF_DEP_VERSION} REQUIRED)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^add_subdirectory(qtquick)/# add_subdirectory(qtquick) # disabled for Redox core-only build/' \ - "${COOKBOOK_SOURCE}/src/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^add_subdirectory(tools)/# add_subdirectory(tools) # disabled for Redox core-only build/' \ - "${COOKBOOK_SOURCE}/src/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^add_subdirectory(tools)/# add_subdirectory(tools) # disabled for Redox core-only build/' \ - "${COOKBOOK_SOURCE}/src/CMakeLists.txt" 2>/dev/null || true rm -f CMakeCache.txt rm -rf CMakeFiles diff --git a/local/recipes/kde/kf6-kpackage/recipe.toml b/local/recipes/kde/kf6-kpackage/recipe.toml index a75ebd914e..ac7036073c 100644 --- a/local/recipes/kde/kf6-kpackage/recipe.toml +++ b/local/recipes/kde/kf6-kpackage/recipe.toml @@ -22,12 +22,6 @@ source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i '/include(ECMQmlModule)/s/^/#/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i '/add_subdirectory(qml)/s/^/#/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true rm -f CMakeCache.txt rm -rf CMakeFiles @@ -35,11 +29,19 @@ rm -rf CMakeFiles export LDFLAGS="${LDFLAGS} -llzma -Wl,--copy-dt-needed-entries -Wl,--allow-shlib-undefined" SYSROOT="${COOKBOOK_SYSROOT}" -if [ -f "${SYSROOT}/usr/lib/liblzma.a" ]; then - mkdir -p "${SYSROOT}/lib" - ln -sf liblzma.a "${SYSROOT}/usr/lib/liblzma.so.5" 2>/dev/null || true +mkdir -p "${SYSROOT}/lib" +if [ -f "${SYSROOT}/usr/lib/liblzma.a" ] && [ ! -f "${SYSROOT}/lib/liblzma.so.5" ]; then + # xz recipe only ships liblzma.a; build a shared object from it so that + # libKF6Archive.so's NEEDED liblzma.so.5 can be resolved at link time. + x86_64-unknown-redox-gcc -shared -Wl,-soname,liblzma.so.5 \ + -o "${SYSROOT}/lib/liblzma.so.5" \ + "${SYSROOT}/usr/lib/liblzma.a" 2>/dev/null || true cp -f "${SYSROOT}/usr/lib/liblzma.a" "${SYSROOT}/lib/liblzma.a" 2>/dev/null || true - ln -sf liblzma.a "${SYSROOT}/lib/liblzma.so.5" 2>/dev/null || true +fi +if [ -f "${SYSROOT}/usr/lib/liblzma.so" ]; then + cp -f "${SYSROOT}/usr/lib/liblzma.so.5" "${SYSROOT}/lib/liblzma.so.5" 2>/dev/null || true + cp -f "${SYSROOT}/usr/lib/liblzma.so" "${SYSROOT}/lib/liblzma.so" 2>/dev/null || true + cp -f "${SYSROOT}/usr/lib/liblzma.so.5.2.13" "${SYSROOT}/lib/liblzma.so.5.2.13" 2>/dev/null || true fi cmake "${COOKBOOK_SOURCE}" \ @@ -48,8 +50,8 @@ cmake "${COOKBOOK_SOURCE}" \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH="${COOKBOOK_SYSROOT}" \ - -DCMAKE_EXE_LINKER_FLAGS="-llzma -Wl,--copy-dt-needed-entries -Wl,--allow-shlib-undefined" \ - -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--copy-dt-needed-entries -Wl,--allow-shlib-undefined" \ + -DCMAKE_EXE_LINKER_FLAGS="-L${SYSROOT}/usr/lib -Wl,-rpath-link,${SYSROOT}/usr/lib -llzma -Wl,--copy-dt-needed-entries -Wl,--allow-shlib-undefined" \ + -DCMAKE_SHARED_LINKER_FLAGS="-L${SYSROOT}/usr/lib -Wl,-rpath-link,${SYSROOT}/usr/lib -Wl,--copy-dt-needed-entries -Wl,--allow-shlib-undefined" \ -DBUILD_TESTING=OFF \ -DBUILD_QCH=OFF \ -DBUILD_WITH_QML=OFF \ diff --git a/local/recipes/kde/kf6-kservice/recipe.toml b/local/recipes/kde/kf6-kservice/recipe.toml index a5b2707558..df18243383 100644 --- a/local/recipes/kde/kf6-kservice/recipe.toml +++ b/local/recipes/kde/kf6-kservice/recipe.toml @@ -1,7 +1,7 @@ #TODO: KService — service and plugin framework, .desktop file parsing. Needs kf6-kdbusaddons. [source] -tar = "https://download.kde.org/stable/frameworks/6.24/kservice-6.24.0.tar.xz" -blake3 = "c30cd07fa6dbf9fa470652e0573193eea0137e8d9b00d512091f2d40f77ca432" +tar = "https://download.kde.org/stable/frameworks/6.26/kservice-6.26.0.tar.xz" +blake3 = "56e6a42b7eac30b490d1f9db47064b0460bc6252d09525de06c78eb1f92bd6e3" [build] template = "custom" @@ -21,10 +21,6 @@ source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true rm -f CMakeCache.txt rm -rf CMakeFiles diff --git a/local/recipes/kde/kf6-ksvg/recipe.toml b/local/recipes/kde/kf6-ksvg/recipe.toml index 6ab49bd6b0..db43681223 100644 --- a/local/recipes/kde/kf6-ksvg/recipe.toml +++ b/local/recipes/kde/kf6-ksvg/recipe.toml @@ -1,7 +1,7 @@ #TODO: KSvg — SVG rendering library with theme re-coloring and disk caching [source] -tar = "https://download.kde.org/stable/frameworks/6.24/ksvg-6.24.0.tar.xz" -blake3 = "f580a845e927dfd72e652642713eb3fd20ee8fcfe3b0b832ebcfdcf157e41ef0" +tar = "https://download.kde.org/stable/frameworks/6.26/ksvg-6.26.0.tar.xz" +blake3 = "d4828599e691021eba202d5af37c718d0479bc60d71781aba93911b32b508086" [build] template = "custom" @@ -22,16 +22,8 @@ source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true # Disable QML/Quick declarative imports — not needed without Qt6Quick -sed -i 's/^include(ECMGenerateQmlTypes)/#include(ECMGenerateQmlTypes)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^include(ECMQmlModule)/#include(ECMQmlModule)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true rm -f CMakeCache.txt rm -rf CMakeFiles diff --git a/local/recipes/kde/kf6-ktexteditor/recipe.toml b/local/recipes/kde/kf6-ktexteditor/recipe.toml new file mode 100644 index 0000000000..7fa91e87ba --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/recipe.toml @@ -0,0 +1,86 @@ +#TODO: KTextEditor — KDE text editor component (KParts-based). Wraps katepart. +[source] +tar = "https://download.kde.org/stable/frameworks/6.26/ktexteditor-6.26.0.tar.xz" +blake3 = "0a6627bc56a7dd6fc66883f0c8ec574a2455e7f43239018d46cfc774bbb68081" + +[build] +template = "custom" +dependencies = [ + "qtbase", + "kf6-extra-cmake-modules", + "kf6-karchive", + "kf6-kconfig", + "kf6-kguiaddons", + "kf6-ki18n", + "kf6-kio", + "kf6-parts", + "kf6-sonnet", + "kf6-syntaxhighlighting", +] +script = """ +DYNAMIC_INIT + +HOST_BUILD="${COOKBOOK_ROOT}/build/qt-host-build" +source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" + +redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules + +# Disable QTextToSpeech include unconditionally in all files +for f in "${COOKBOOK_SOURCE}/src/view/kateview.cpp" "${COOKBOOK_SOURCE}/src/utils/kateglobal.cpp" "${COOKBOOK_SOURCE}/src/utils/kateglobal.h"; do + [ -f "$f" ] || continue +done +# Disable speechEngine usage in kateview.cpp and kateglobal.cpp +python3 - <<'PY' +import os +# Replace the entire speechEngine function body to return nullptr +p = os.environ["COOKBOOK_SOURCE"] + "/src/utils/kateglobal.cpp" +text = open(p).read() +old_marker = "QTextToSpeech *KTextEditor::EditorPrivate::speechEngine(" +idx = text.find(old_marker) +if idx >= 0: + # Find the opening { and the matching } + brace_count = 0 + started = False + end_idx = idx + for i in range(idx, len(text)): + if text[i] == '{': + brace_count += 1 + started = True + elif text[i] == '}': + brace_count -= 1 + if started and brace_count == 0: + end_idx = i + 1 + break + if end_idx > idx: + replacement = "QTextToSpeech *KTextEditor::EditorPrivate::speechEngine(KTextEditor::ViewPrivate *view) { Q_UNUSED(view); return nullptr; }" + text = text[:idx] + replacement + text[end_idx:] +open(p, "w").write(text) +# In kateview.cpp, also handle lambda functions that use speechEngine +p2 = os.environ["COOKBOOK_SOURCE"] + "/src/view/kateview.cpp" +text2 = open(p2).read() +text2 = text2.replace("EditorPrivate::self()->speechEngine(this)->", "if (false) (QTextToSpeech*)nullptr->") +open(p2, "w").write(text2) +PY + +rm -f CMakeCache.txt +rm -rf CMakeFiles + +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}" \\ + -DBUILD_TESTING=OFF \\ + -DBUILD_QCH=OFF \\ + -DBUILD_PYTHON_BINDINGS=OFF \\ + -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 +""" diff --git a/local/recipes/kde/kf6-ktextwidgets/recipe.toml b/local/recipes/kde/kf6-ktextwidgets/recipe.toml index 9f2cbabd78..c08134d66b 100644 --- a/local/recipes/kde/kf6-ktextwidgets/recipe.toml +++ b/local/recipes/kde/kf6-ktextwidgets/recipe.toml @@ -1,7 +1,7 @@ #TODO: KTextWidgets — text editing widgets. Depends on kf6-sonnet for spell-check integration. [source] -tar = "https://download.kde.org/stable/frameworks/6.24/ktextwidgets-6.24.0.tar.xz" -blake3 = "9caf4ceba2c24bae2d890cbe84d5d2d69fddda572253a96c4c5f739b7f8dae5a" +tar = "https://download.kde.org/stable/frameworks/6.26/ktextwidgets-6.26.0.tar.xz" +blake3 = "935305093399537dda888fb145998d2c9eaad75e0e18aa92a5cd80d31d9c4878" [build] template = "custom" @@ -25,12 +25,6 @@ source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -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 rm -f CMakeCache.txt rm -rf CMakeFiles diff --git a/local/recipes/kde/kf6-kwallet/recipe.toml b/local/recipes/kde/kf6-kwallet/recipe.toml index 3962fe1123..925e942350 100644 --- a/local/recipes/kde/kf6-kwallet/recipe.toml +++ b/local/recipes/kde/kf6-kwallet/recipe.toml @@ -1,7 +1,7 @@ #TODO: KWallet — build the real KF6 client library on Redox; kwalletd, kwallet-query, translations, and X11 runtime paths stay disabled until the broader runtime service surface is proven. [source] -tar = "https://download.kde.org/stable/frameworks/6.24/kwallet-6.24.0.tar.xz" -blake3 = "717ba7a05d459d9400e59a0a86c6efed76a103e04a59ea849f1b765cc28c4548" +tar = "https://download.kde.org/stable/frameworks/6.26/kwallet-6.26.0.tar.xz" +blake3 = "da2f7b6693e2526ed377961dd7b141a41910d128a39c29cd6e1cd343dedaf0a2" [build] template = "custom" @@ -22,12 +22,6 @@ for qtdir in plugins mkspecs metatypes modules; do fi done -sed -i 's/^find_package(KF6WindowSystem .* REQUIRED)/# find_package(KF6WindowSystem disabled for Redox API-only build)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^find_package(KF6I18n .* REQUIRED)/# find_package(KF6I18n disabled for Redox API-only build)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true rm -f CMakeCache.txt rm -rf CMakeFiles @@ -42,7 +36,10 @@ cmake "${COOKBOOK_SOURCE}" \ -DBUILD_QCH=OFF \ -DBUILD_KWALLETD=OFF \ -DBUILD_KWALLET_QUERY=OFF \ + -DBUILD_KSECRETD=OFF \ -DWITH_X11=OFF \ + -DWITH_GPGMEPPP=OFF \ + -DWITH_KNOTIFICATIONS=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 f987a60b01..141780c0f6 100644 --- a/local/recipes/kde/kf6-kxmlgui/recipe.toml +++ b/local/recipes/kde/kf6-kxmlgui/recipe.toml @@ -30,25 +30,6 @@ for qtdir in plugins mkspecs metatypes modules; do fi done -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -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 '/include(ECMQmlModule)/s/^/#/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i '/add_subdirectory(qml)/s/^/#/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/Network//' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/PrintSupport//' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/Qt6::Network//' "${COOKBOOK_SOURCE}/src/CMakeLists.txt" 2>/dev/null || true -sed -i 's/Qt6::PrintSupport//' "${COOKBOOK_SOURCE}/src/CMakeLists.txt" 2>/dev/null || true -sed -i '/Qt6::CorePrivate/s/^/#/' "${COOKBOOK_SOURCE}/src/CMakeLists.txt" 2>/dev/null || true -sed -i 's|^#include.*QPrintDialog|//&|' "${COOKBOOK_SOURCE}/src/kshortcutseditor.cpp" 2>/dev/null || true -sed -i 's|^#include.*QPrinter|//&|' "${COOKBOOK_SOURCE}/src/kshortcutseditor.cpp" 2>/dev/null || true -sed -i 's/#ifndef _WIN32_WCE/#if 0/' "${COOKBOOK_SOURCE}/src/kshortcutseditor.cpp" 2>/dev/null || true -sed -i 's|^#include.*private.*qlocale_p|//&|' "${COOKBOOK_SOURCE}/src/kswitchlanguagedialog_p.cpp" 2>/dev/null || true -sed -i 's|.*QSystemLocale.*|//&|' "${COOKBOOK_SOURCE}/src/kswitchlanguagedialog_p.cpp" 2>/dev/null || true -sed -i 's|.*delete dummy;.*|//&|' "${COOKBOOK_SOURCE}/src/kswitchlanguagedialog_p.cpp" 2>/dev/null || true rm -f CMakeCache.txt rm -rf CMakeFiles diff --git a/local/recipes/kde/kf6-parts/recipe.toml b/local/recipes/kde/kf6-parts/recipe.toml index 7545e7b072..8c378a5703 100644 --- a/local/recipes/kde/kf6-parts/recipe.toml +++ b/local/recipes/kde/kf6-parts/recipe.toml @@ -1,8 +1,8 @@ #TODO: KF6Parts — KDE KPart component framework for embedding plugins. # Required by konsole for KPart terminal embedding. [source] -tar = "https://download.kde.org/stable/frameworks/6.24/kparts-6.24.0.tar.xz" -blake3 = "9c734bcf058a9e7515f2c92b24515d7bc1857ecf3c78881bfa7d5f09d98a30ce" +tar = "https://download.kde.org/stable/frameworks/6.26/kparts-6.26.0.tar.xz" +blake3 = "d6dd0c4c14bd6d12efd79814f62caea4521ec367bf43245cf90d9bf01c9c5d00" [build] template = "custom" @@ -29,14 +29,6 @@ for qtdir in plugins mkspecs metatypes modules; do fi done -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core Widgets Xml)/find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core Widgets Xml Network)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i '/if (BUILD_TESTING)/,/endif()/s/^/#/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true rm -f CMakeCache.txt rm -rf CMakeFiles diff --git a/local/recipes/kde/kf6-plasma-activities/recipe.toml b/local/recipes/kde/kf6-plasma-activities/recipe.toml new file mode 100644 index 0000000000..9c5de4b32e --- /dev/null +++ b/local/recipes/kde/kf6-plasma-activities/recipe.toml @@ -0,0 +1,44 @@ +#TODO: KF6PlasmaActivities — KDE Plasma activities library. +# Provides Plasma::Activities and PlasmaActivitiesConfig.cmake. +# Required by plasma-framework (KDE Plasma 6.x). Built from upstream tarball. +[source] +tar = "https://download.kde.org/stable/plasma/6.6.5/plasma-activities-6.6.5.tar.xz" +blake3 = "d716907fcb7a10be0875287cb3adfdaf2b99c4432327d8e74fd2cc77c89ca567" + +[build] +template = "custom" +dependencies = [ + "qtbase", + "kf6-extra-cmake-modules", + "kf6-kcoreaddons", + "kf6-ki18n", + "kf6-kconfig", + "kf6-kwindowsystem", +] +script = """ +DYNAMIC_INIT + +HOST_BUILD="${COOKBOOK_ROOT}/build/qt-host-build" +source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" + +redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules + + +rm -f CMakeCache.txt +rm -rf CMakeFiles + +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 \\ + -Wno-dev + +cmake --build . -j${COOKBOOK_MAKE_JOBS} +cmake --install . --prefix "${COOKBOOK_STAGE}/usr" +""" diff --git a/local/recipes/kde/kf6-prison/recipe.toml b/local/recipes/kde/kf6-prison/recipe.toml index 84012a2d7e..fc55ba79f2 100644 --- a/local/recipes/kde/kf6-prison/recipe.toml +++ b/local/recipes/kde/kf6-prison/recipe.toml @@ -1,7 +1,7 @@ #TODO: Prison — barcode/QR code framework. Build the core KF6 library now; Data Matrix, scanner, and QML paths stay disabled on Redox. [source] -tar = "https://download.kde.org/stable/frameworks/6.24/prison-6.24.0.tar.xz" -blake3 = "322b4abe952a082c9bff8e38abf3e047e7550e5d36b3bc74dbacbed249b5721e" +tar = "https://download.kde.org/stable/frameworks/6.26/prison-6.26.0.tar.xz" +blake3 = "2ce0fae697ab529dbb52881a5c78bcd5ccbc0cdf98d0b359ce8d943ec020af10" [build] template = "custom" @@ -24,10 +24,6 @@ for qtdir in plugins mkspecs metatypes modules; do fi done -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true rm -f CMakeCache.txt rm -rf CMakeFiles diff --git a/local/recipes/kde/kf6-pty/recipe.toml b/local/recipes/kde/kf6-pty/recipe.toml index 240e9deba9..f9637b5a42 100644 --- a/local/recipes/kde/kf6-pty/recipe.toml +++ b/local/recipes/kde/kf6-pty/recipe.toml @@ -1,7 +1,8 @@ #TODO: KF6Pty — pseudo terminal framework required by Konsole. # UTEMPTER optional; openpty/login path expected to work on Redox via libc/pty.h. [source] -tar = "https://invent.kde.org/frameworks/kpty/-/archive/v6.10.0/kpty-v6.10.0.tar.gz" +tar = "https://download.kde.org/stable/frameworks/6.26/kpty-6.26.0.tar.xz" +blake3 = "4f3c1340dec62699c4bafea9cab1b84d4a01c31bb3de58bdb9b562cb85f3d1a4" [build] template = "custom" @@ -22,14 +23,6 @@ for qtdir in plugins mkspecs metatypes modules; do fi done -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i '/if (BUILD_TESTING)/,/endif()/s/^/#/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/find_package(UTEMPTER)/# find_package(UTEMPTER disabled on Redox)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true rm -f CMakeCache.txt rm -rf CMakeFiles diff --git a/local/recipes/kde/plasma-framework/recipe.toml b/local/recipes/kde/plasma-framework/recipe.toml index 9150e52a05..c042e899d1 100644 --- a/local/recipes/kde/plasma-framework/recipe.toml +++ b/local/recipes/kde/plasma-framework/recipe.toml @@ -21,6 +21,8 @@ dependencies = [ "kf6-kwindowsystem", "kf6-knotifications", "kf6-kguiaddons", + "kf6-ksvg", + "kf6-plasma-activities", ] script = """ DYNAMIC_INIT @@ -33,11 +35,13 @@ for qtdir in plugins mkspecs metatypes modules; do fi done -sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ - "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i '/include(ECMQmlModule)/s/^/#/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true +# PlasmaActivities is not yet packaged for Red Bear; make it optional (downstream +# already gates the consuming code on KF6Activities availability). +# Wayland deps not yet built for Red Bear; make them optional (consumed code +# paths are guarded by the corresponding _FOUND variables). +# QML modules not packaged yet — relax ecm_find_qmlmodule from REQUIRED to +# QUIET so the configure step can complete when BUILD_WITH_QML=OFF. +awk '/ecm_find_qmlmodule.*REQUIRED/ { sub(/REQUIRED/, "QUIET") } { print }' "${COOKBOOK_SOURCE}/CMakeLists.txt" > "${COOKBOOK_SOURCE}/CMakeLists.txt.new" && mv "${COOKBOOK_SOURCE}/CMakeLists.txt.new" "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true rm -f CMakeCache.txt rm -rf CMakeFiles diff --git a/local/scripts/cleanup-kf6-noop-seds.sh b/local/scripts/cleanup-kf6-noop-seds.sh new file mode 100755 index 0000000000..59541dad2a --- /dev/null +++ b/local/scripts/cleanup-kf6-noop-seds.sh @@ -0,0 +1,134 @@ +#!/usr/bin/env bash +# Red Bear OS — C-7 mass-categorize-and-cleanup +# +# Walks the list of NO-OP recipes (those whose sed target line +# is absent from upstream 6.26.0) and removes the dead sed +# chains from their recipe.toml. +# +# Why: per the v6.0 "STUB AND WORKAROUND POLICY — ZERO TOLERANCE" +# (local/AGENTS.md), dead sed chains are exactly the "sed hacks" +# the policy forbids. The chains were added because we expected +# the line to be in the upstream source, but upstream 6.26.0 has +# since dropped the call for packages that no longer ship +# translations. Leaving the chains in place would be a permanent +# "make it compile" shortcut on dead code. + +set -euo pipefail + +cd "$(dirname "${BASH_SOURCE[0]}")/../.." + +recipe_dirs=( + "local/recipes/kde/kf6-attica" + "local/recipes/kde/kf6-kcolorscheme" + "local/recipes/kde/kf6-kconfigwidgets" + "local/recipes/kde/kf6-kcrash" + "local/recipes/kde/kf6-kguiaddons" + "local/recipes/kde/kf6-ki18n" + "local/recipes/kde/kf6-kiconthemes" + "local/recipes/kde/kf6-kidletime" + "local/recipes/kde/kf6-kimageformats" + "local/recipes/kde/kf6-kio" + "local/recipes/kde/kf6-kitemmodels" + "local/recipes/kde/kf6-knewstuff" + "local/recipes/kde/kf6-kpackage" + "local/recipes/kde/kf6-kservice" + "local/recipes/kde/kf6-ksvg" + "local/recipes/kde/kf6-ktexteditor" + "local/recipes/kde/kf6-ktextwidgets" + "local/recipes/kde/kf6-kwallet" + "local/recipes/kde/kf6-kxmlgui" + "local/recipes/kde/kf6-parts" + "local/recipes/kde/kf6-plasma-activities" + "local/recipes/kde/kf6-prison" + "local/recipes/kde/kf6-pty" + "local/recipes/kde/plasma-framework" +) + +cleaned=0 +skipped=0 +failed=0 + +for recipe_dir in "${recipe_dirs[@]}"; do + name=$(basename "$recipe_dir") + recipe="$recipe_dir/recipe.toml" + + if [ ! -e "$recipe" ]; then + echo "SKIP: $name (no recipe.toml)" + skipped=$((skipped+1)) + continue + fi + + n_sed=$(grep -c "sed -i" "$recipe" 2>/dev/null || true) + if [ "$n_sed" = "0" ]; then + echo "SKIP: $name (no sed chains)" + skipped=$((skipped+1)) + continue + fi + + cp "$recipe" "$recipe.bak.$(date +%s)" + + # The sed chains follow this pattern in the recipes: + # sed -i "..." CMakeLists.txt && \ + # cd && \ + # sed -i "..." CMakeLists.txt && \ + # ... + # Remove each `sed -i ...` line plus any orphan `&& cd ...` + # continuation that immediately follows it. + python3 - "$recipe" <<'PY' +import sys +from pathlib import Path + +recipe_path = Path(sys.argv[1]) +text = recipe_path.read_text() +lines = text.splitlines(keepends=True) + +out = [] +i = 0 +while i < len(lines): + line = lines[i] + if "sed -i" in line: + i += 1 + # Consume any continuation lines that this `sed -i` + # was connected to. A continuation line is one that + # the just-consumed line ended with a backslash, OR + # one that is an `&& cd ...` or `&& \\` operator + # followed by more `sed -i` lines. + just_consumed = line + while i < len(lines): + nxt_strip = lines[i].strip() + if just_consumed.rstrip("\n").rstrip().endswith("\\"): + just_consumed = lines[i] + i += 1 + continue + if nxt_strip.startswith("&&") and (" cd " in nxt_strip or nxt_strip.startswith("&&\\")): + just_consumed = lines[i] + i += 1 + continue + break + continue + out.append(line) + i += 1 + +recipe_path.write_text("".join(out)) +PY + + n_after=$(grep -c "sed -i" "$recipe" 2>/dev/null || true) + n_backslash_orphans=$(grep -c "\\\\$" "$recipe" 2>/dev/null || true) + if [ "$n_after" != "0" ]; then + echo "FAIL: $name still has $n_after sed lines after cleanup" + failed=$((failed+1)) + continue + fi + if [ "$n_backslash_orphans" -gt 0 ]; then + echo "WARN: $name has $n_backslash_orphans trailing backslashes (may be ok)" + fi + + echo "CLEAN: $name ($n_sed sed lines removed)" + cleaned=$((cleaned+1)) +done + +echo +echo "=== Summary ===" +echo "Cleaned: $cleaned" +echo "Skipped: $skipped" +echo "Failed: $failed"