diff --git a/kwin-5.15.4.tar.xz b/kwin-5.15.4.tar.xz new file mode 100644 index 0000000..5a6a9ca Binary files /dev/null and b/kwin-5.15.4.tar.xz differ diff --git a/kwin.spec b/kwin.spec new file mode 100644 index 0000000..aa88c99 --- /dev/null +++ b/kwin.spec @@ -0,0 +1,299 @@ +# uncomment to enable bootstrap mode +#global bootstrap 1 + +%if !0%{?bootstrap} +# avoid slow arm arch for now +%ifnarch %{arm} +%global tests 1 +%endif +%endif + +Name: kwin +Version: 5.15.4 +Release: 1 +Summary: KDE Window manager + +# all sources are effectively GPLv2+, except for: +# scripts/enforcedeco/contents/code/main.js +# KDE e.V. may determine that future GPL versions are accepted +License: GPLv2 or GPLv3 +URL: https://userbase.kde.org/KWin +#URL: https://cgit.kde.org/%{name}.git + +%global revision %(echo %{version} | cut -d. -f3) +%if %{revision} >= 50 +%global majmin_ver %(echo %{version} | cut -d. -f1,2).50 +%global stable unstable +%else +%global majmin_ver %(echo %{version} | cut -d. -f1,2) +%global stable stable +%endif +Source0: http://download.kde.org/%{stable}/plasma/%{version}/%{name}-%{version}.tar.xz + +## upstream patches + +# Base +BuildRequires: extra-cmake-modules +BuildRequires: kf5-rpm-macros + +# Qt +BuildRequires: qt5-qtbase-devel +BuildRequires: qt5-qtbase-static +# KWinQpaPlugin (and others?) +BuildRequires: qt5-qtbase-private-devel +BuildRequires: qt5-qtsensors-devel +BuildRequires: qt5-qtscript-devel +BuildRequires: qt5-qttools-devel +BuildRequires: qt5-qttools-static +BuildRequires: qt5-qtx11extras-devel + +# X11/OpenGL +BuildRequires: mesa-libGL-devel +BuildRequires: mesa-libEGL-devel +BuildRequires: mesa-libgbm-devel +BuildRequires: libxkbcommon-devel +BuildRequires: libX11-devel +BuildRequires: libXi-devel +BuildRequires: libxcb-devel +BuildRequires: libICE-devel +BuildRequires: libSM-devel +BuildRequires: libXcursor-devel +BuildRequires: xcb-util-wm-devel +BuildRequires: xcb-util-image-devel +BuildRequires: xcb-util-keysyms-devel +BuildRequires: xcb-util-cursor-devel +BuildRequires: libepoxy-devel +BuildRequires: libcap-devel + +# Wayland +BuildRequires: kf5-kwayland-devel +BuildRequires: wayland-devel +BuildRequires: libxkbcommon-devel >= 0.4 +BuildRequires: pkgconfig(libinput) >= 0.10 +BuildRequires: pkgconfig(libudev) + +# KF5 +BuildRequires: kf5-kcompletion-devel +BuildRequires: kf5-kconfig-devel +BuildRequires: kf5-kconfigwidgets-devel +BuildRequires: kf5-kcoreaddons-devel +BuildRequires: kf5-kcrash-devel +BuildRequires: kf5-kglobalaccel-devel +BuildRequires: kf5-ki18n-devel +BuildRequires: kf5-kinit-devel >= 5.10.0-3 +BuildRequires: kf5-kio-devel +BuildRequires: kf5-knotifications-devel +BuildRequires: kf5-kservice-devel +BuildRequires: kf5-plasma-devel +BuildRequires: kf5-kwidgetsaddons-devel +BuildRequires: kf5-kwindowsystem-devel +BuildRequires: kf5-kdoctools-devel +BuildRequires: kf5-kcmutils-devel +BuildRequires: kf5-knewstuff-devel +BuildRequires: kf5-kactivities-devel +BuildRequires: kf5-kdoctools-devel +BuildRequires: kf5-kdeclarative-devel +BuildRequires: kf5-kiconthemes-devel +BuildRequires: kf5-kidletime-devel +BuildRequires: kf5-ktextwidgets-devel + +BuildRequires: kdecoration-devel >= %{majmin_ver} +BuildRequires: kscreenlocker-devel >= %{majmin_ver} +BuildRequires: plasma-breeze-devel >= %{majmin_ver} + +%if 0%{?tests} +BuildRequires: dbus-x11 +BuildRequires: openbox +BuildRequires: xorg-x11-server-Xvfb +%endif + +## Runtime deps +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: %{name}-common%{?_isa} = %{version}-%{release} +Requires: kdecoration%{?_isa} >= %{majmin_ver} +Requires: kscreenlocker%{?_isa} >= %{majmin_ver} + +# Runtime-only dependencies +%if ! 0%{?bootstrap} +BuildRequires: qt5-qtmultimedia-devel +BuildRequires: qt5-qtvirtualkeyboard +%endif +Requires: qt5-qtmultimedia%{?_isa} +Recommends: qt5-qtvirtualkeyboard%{?_isa} +# libkdeinit5_kwin* +%{?kf5_kinit_requires} + +# Before kwin was split out from kde-workspace into a subpackage +Conflicts: kde-workspace%{?_isa} < 4.11.14-2 + +Obsoletes: kwin-gles < 5 +Obsoletes: kwin-gles-libs < 5 + +# http://bugzilla.redhat.com/605675 +Provides: firstboot(windowmanager) = kwin_x11 +# and kwin too (#1197135), until initial-setup fixed +Provides: firstboot(windowmanager) = kwin + +%description +%{summary}. + +%package wayland +Summary: KDE Window Manager with experimental Wayland support +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: %{name}-common%{?_isa} = %{version}-%{release} +Requires: kwayland-integration%{?_isa} >= %{majmin_ver} +%if ! 0%{?bootstrap} +BuildRequires: xorg-x11-server-Xwayland +%endif +Requires: xorg-x11-server-Xwayland +# KWinQpaPlugin (and others?) +%{?_qt5:Requires: %{_qt5}%{?_isa} = %{_qt5_version}} +# libkdeinit5_kwin* +%{?kf5_kinit_requires} +%description wayland +%{summary}. + +%package common +Summary: Common files for KWin X11 and KWin Wayland +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: kf5-kwayland%{?_isa} +%description common +%{summary}. + +%package libs +Summary: KWin runtime libraries +# Before kwin-libs was split out from kde-workspace into a subpackage +Conflicts: kde-workspace-libs%{?_isa} < 4.11.14-2 +%description libs +%{summary}. + +%package devel +Summary: Development files for %{name} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: %{name}-common%{?_isa} = %{version}-%{release} +Requires: kf5-kconfig-devel +Requires: kf5-kservice-devel +Requires: kf5-kwindowsystem-devel +Conflicts: kde-workspace-devel < 5.0.0-1 +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%package doc +Summary: User manual for %{name} +Requires: %{name} = %{version}-%{release} +BuildArch: noarch +%description doc +%{summary}. + + +%prep +%autosetup -n %{name}-%{version} -p1 + +sed -i \ + -e 's|^find_package(Breeze ${PROJECT_VERSION} CONFIG)|find_package(Breeze 5.9 CONFIG)|' \ + CMakeLists.txt + + +%build +mkdir %{_target_platform} +pushd %{_target_platform} +%{cmake_kf5} .. \ + -DBUILD_TESTING:BOOL=%{?tests:ON}%{!?tests:OFF} +popd + +%make_build -C %{_target_platform} + + +%install +make install/fast DESTDIR=%{buildroot} -C %{_target_platform} + +%find_lang %{name} --with-html --all-name +grep "%{_kf5_docdir}" %{name}.lang > %{name}-doc.lang +cat %{name}.lang %{name}-doc.lang | sort | uniq -u > kwin5.lang + +# temporary(?) hack to allow initial-setup to use /usr/bin/kwin too +ln -s kwin_x11 %{buildroot}%{_bindir}/kwin + + +%check +%if 0%{?tests} +# using low timeout to avoid extending buildtimes too much for now -- rex +export CTEST_OUTPUT_ON_FAILURE=1 +xvfb-run -a \ +dbus-launch --exit-with-session \ +make test ARGS="--output-on-failure --timeout 10" -C %{_target_platform} ||: +%endif + +%files +%{_bindir}/kwin +%{_bindir}/kwin_x11 +%{_kf5_libdir}/libkdeinit5_kwin_x11.so + +%files common -f kwin5.lang +%{_kf5_libdir}/libkdeinit5_kwin_rules_dialog.so +%{_datadir}/kwin +%{_kf5_qtplugindir}/*.so +%{_kf5_qtplugindir}/kwin/ +%{_kf5_qtplugindir}/org.kde.kdecoration2/*.so +%{_kf5_qtplugindir}/org.kde.kwin.platforms/ +%{_kf5_qtplugindir}/kpackage/packagestructure/kwin_packagestructure*.so +%{_kf5_qtplugindir}/org.kde.kwin.scenes/*.so +%{_qt5_qmldir}/org/kde/kwin +%{_kf5_libdir}/kconf_update_bin/kwin5_update_default_rules +%{_libexecdir}/kwin_killer_helper +%{_libexecdir}/kwin_rules_dialog +%{_libexecdir}/org_kde_kwin_xclipboard_syncer +%{_datadir}/kwincompositing +%{_datadir}/kconf_update/kwin.upd +%{_kf5_datadir}/kservices5/*.desktop +%{_kf5_datadir}/kservices5/kwin +%{_kf5_datadir}/kservicetypes5/*.desktop +%{_kf5_datadir}/kpackage/kcms/kcm_kwin_virtualdesktops/* +%{_kf5_datadir}/knotifications5/kwin.notifyrc +%{_kf5_datadir}/config.kcfg/kwin.kcfg +%{_kf5_datadir}/config.kcfg/kwin_colorcorrect.kcfg +%{_datadir}/icons/hicolor/*/apps/kwin.* +# note: these are for reference (to express config defaults), they are +# not config files themselves (so don't use %%config tag) +%{_sysconfdir}/xdg/*.knsrc + +%files wayland +%{_kf5_bindir}/kwin_wayland +%{_kf5_qtplugindir}/platforms/KWinQpaPlugin.so +%{_kf5_qtplugindir}/org.kde.kglobalaccel5.platforms/KF5GlobalAccelPrivateKWin.so +%{_kf5_qtplugindir}/org.kde.kwin.waylandbackends/KWinWaylandDrmBackend.so +%{_kf5_qtplugindir}/org.kde.kwin.waylandbackends/KWinWaylandFbdevBackend.so +%{_kf5_qtplugindir}/org.kde.kwin.waylandbackends/KWinWaylandWaylandBackend.so +%{_kf5_qtplugindir}/org.kde.kwin.waylandbackends/KWinWaylandX11Backend.so +%{_kf5_qtplugindir}/org.kde.kwin.waylandbackends/KWinWaylandVirtualBackend.so +%{_kf5_plugindir}/org.kde.kidletime.platforms/KF5IdleTimeKWinWaylandPrivatePlugin.so + +%ldconfig_scriptlets libs + +%files libs +%{_sysconfdir}/xdg/org_kde_kwin.categories +%{_libdir}/libkwin.so.* +%{_libdir}/libkwinxrenderutils.so.* +%{_libdir}/libkwineffects.so.* +%{_libdir}/libkwinglutils.so.* +%{_libdir}/libkwin4_effect_builtins.so.* +%{_libdir}/libkcmkwincommon.so.* +%{_qt5_plugindir}/kcms/kcm_kwin_virtualdesktops.so + +%files devel +%{_datadir}/dbus-1/interfaces/*.xml +%{_libdir}/cmake/KWinDBusInterface +%{_libdir}/libkwinxrenderutils.so +%{_libdir}/libkwineffects.so +%{_libdir}/libkwinglutils.so +%{_libdir}/libkwin4_effect_builtins.so +%{_includedir}/kwin*.h + +%files doc -f %{name}-doc.lang +%license COPYING* + + +%changelog +* Fri Aug 7 2020 weidong - 5.15.4-1 +- Initial release for OpenEuler