kde: fix kf6-kio, kf6-kjobwidgets, kf6-kxmlgui for kf6 6.26 (LibMount, SSL, py bindings)
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user