%global framework kwindowsystem Name: kf6-%{framework} Version: 6.29.0 Release: 4%{?dist} Summary: KDE access to window management License: LGPL-2.1-or-later URL: https://invent.kde.org/frameworks/%{framework} Source0: https://download.kde.org/%{stable_kf6}/frameworks/%{majmin_ver_kf6}/%{framework}-%{version}.tar.xz BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: extra-cmake-modules >= %{version} BuildRequires: kf6-rpm-macros BuildRequires: qt6-qtbase-devel BuildRequires: cmake(Qt6Qml) BuildRequires: cmake(Qt6LinguistTools) BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(xcb-icccm) BuildRequires: pkgconfig(xcb-keysyms) BuildRequires: pkgconfig(xkbcommon) BuildRequires: pkgconfig(xfixes) BuildRequires: pkgconfig(xrender) BuildRequires: pkgconfig(Qt6Core) BuildRequires: pkgconfig(Qt6Gui) BuildRequires: qt6-qtbase-private-devel %description KWindowSystem provides information about and allows interaction with the windowing system, X11/EWMH-based window management here. Built with KWINDOWSYSTEM_WAYLAND=OFF: same qt6-qtwayland gap as kguiaddons (real Qt Wayland client library, not just protocol headers, doesn't exist as a package on this target), and CMakeLists.txt also requires WaylandProtocols >=1.46 -- higher than the 1.45 we pinned for version compatibility with Azure Linux's wayland-scanner, so this would hit a second wall even if the first were solved. Core X11/EWMH window management is fully functional without this; only the native-Wayland backend plugin is skipped. KWaylandExtras (kwaylandextras.cpp/.h) is force-enabled with a %%prep sed even though it lives inside the KWINDOWSYSTEM_WAYLAND guard: it's pure Qt (QObject/QWindow/QTimer/QFuture) with zero real Wayland client library dependency, and degrades to graceful async no-ops at runtime when there's no live Wayland windowing backend. Downstream consumers (e.g. kauth's polkit-1 backend) #include it unconditionally, so disabling Wayland integration shouldn't also remove this harmless, library-independent utility class. %package devel Summary: Development files for %{name} Requires: %{name} = %{version}-%{release} %description devel Development files for %{name}. %prep %autosetup -n %{framework}-%{version} -p1 python3 - <<'EOF' import re p = "src/CMakeLists.txt" s = open(p).read() s = s.replace( "if (KWINDOWSYSTEM_WAYLAND)\n target_sources(KF6WindowSystem PRIVATE kwaylandextras.cpp)\nendif()", "target_sources(KF6WindowSystem PRIVATE kwaylandextras.cpp)" ) s = s.replace( "if (KWINDOWSYSTEM_WAYLAND)\n ecm_generate_headers(KWindowSystem_HEADERS\n HEADER_NAMES\n KWaylandExtras\n\n REQUIRED_HEADERS KWindowSystem_HEADERS\n )\nendif()", "ecm_generate_headers(KWindowSystem_HEADERS\n HEADER_NAMES\n KWaylandExtras\n\n REQUIRED_HEADERS KWindowSystem_HEADERS\n)" ) open(p, "w").write(s) EOF %build %cmake_kf6 -DKWINDOWSYSTEM_WAYLAND=OFF %cmake_build_kf6 %install %cmake_install_kf6 %files %exclude %{_datadir}/locale/*/LC_MESSAGES/*.qm %doc README.md %license LICENSES/*.txt %{_kf6_datadir}/qlogging-categories6/%{framework}.* %{_kf6_libdir}/libKF6WindowSystem.so.* %dir %{_kf6_plugindir}/kwindowsystem/ %{_kf6_plugindir}/kwindowsystem/KF6WindowSystemX11Plugin.so %{_kf6_qmldir}/org/kde/kwindowsystem %files devel %{_kf6_includedir}/KWindowSystem/ %{_kf6_libdir}/libKF6WindowSystem.so %{_kf6_libdir}/cmake/KF6WindowSystem/ %{_kf6_libdir}/pkgconfig/KF6WindowSystem.pc %changelog * Sat Aug 29 2026 Smech - 6.29.0-4 - Force-enable KWaylandExtras (pure Qt, no real Wayland lib dependency) despite WAYLAND=OFF; kauth's polkit-1 backend needs it unconditionally * Sat Aug 29 2026 Smech - 6.29.0-1 - Real upstream source, Wayland backend disabled (qt6-qtwayland gap), X11/EWMH intact