# uncomment to enable bootstrap mode #global bootstrap 1 %if !0%{?bootstrap} # avoid slow arm arch for now %ifnarch %{arm} %global tests 1 %endif # Whether to build experimental Wayland support # NOTE: Does not build on F20 due to too old Wayland and requires kf5-kwayland, # which is not available in Fedora yet %if 0%{?fedora} > 21 %global wayland 1 %endif %endif Name: kwin Version: 5.12.0 Release: 1%{?dist} 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 # Wayland (optional) %if 0%{?wayland} BuildRequires: kf5-kwayland-devel BuildRequires: libwayland-client-devel BuildRequires: libwayland-server-devel BuildRequires: libwayland-cursor-devel BuildRequires: mesa-libwayland-egl-devel BuildRequires: libxkbcommon-devel >= 0.4 BuildRequires: pkgconfig(libinput) >= 0.10 BuildRequires: pkgconfig(libudev) %endif # 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 dependency for effect video playback %if ! 0%{?bootstrap} BuildRequires: qt5-qtmultimedia-devel %endif Requires: qt5-qtmultimedia%{?_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}. %if 0%{?wayland} %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}. %endif %package common Summary: Common files for KWin X11 and KWin Wayland Requires: %{name}-libs%{?_isa} = %{version}-%{release} %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 %{?_smp_mflags} -C %{_target_platform} %install make install/fast DESTDIR=%{buildroot} -C %{_target_platform} %find_lang %{name} --with-html --with-qt --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_prefix}/qml/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 %{_kf5_datadir}/kservices5/*.desktop %{_kf5_datadir}/kservices5/kwin %{_kf5_datadir}/kservicetypes5/*.desktop %{_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 %if 0%{?wayland} %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 %endif %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig %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.* %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 %doc COMPLIANCE HACKING README %license COPYING* %changelog * Fri Feb 02 2018 Jan Grulich - 5.12.0-1 - 5.12.0 * Thu Jan 18 2018 Igor Gnatenko - 5.11.95-2 - Remove obsolete scriptlets * Mon Jan 15 2018 Jan Grulich - 5.11.95-1 - 5.11.95 * Tue Jan 02 2018 Rex Dieter - 5.11.5-1 - 5.11.5 * Wed Dec 20 2017 Jan Grulich - 5.11.4-2 - rebuild (qt5) * Thu Nov 30 2017 Martin Kyral - 5.11.4-1 - 5.11.4 * Mon Nov 27 2017 Rex Dieter - 5.11.3-2 - rebuild (qt5) * Wed Nov 08 2017 Rex Dieter - 5.11.3-1 - 5.11.3 * Wed Oct 25 2017 Martin Kyral - 5.11.2-1 - 5.11.2 * Tue Oct 17 2017 Rex Dieter - 5.11.1-1 - 5.11.1 * Wed Oct 11 2017 Martin Kyral - 5.11.0-1 - 5.11.0 * Wed Oct 11 2017 Rex Dieter - 5.10.5-3 - confirmed only -wayland uses private api * Tue Oct 10 2017 Jan Grulich - 5.10.5-2 - rebuild (qt5) * Thu Aug 24 2017 Rex Dieter - 5.10.5-1 - 5.10.5 * Thu Aug 03 2017 Fedora Release Engineering - 5.10.4-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Wed Jul 26 2017 Fedora Release Engineering - 5.10.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Thu Jul 20 2017 Rex Dieter - 5.10.4-1 - 5.10.4 * Wed Jul 19 2017 Rex Dieter - 5.10.3.1-2 - rebuild (qt5) * Mon Jul 03 2017 Rex Dieter - 5.10.3.1-1 - kwin-5.10.3.1 * Mon Jul 03 2017 Rex Dieter - 5.10.3-3 - respin * Sun Jul 02 2017 Rex Dieter - 5.10.3-2 - enable tests, support %%bootstrap, update URL * Tue Jun 27 2017 Rex Dieter - 5.10.3-1 - 5.10.3 * Thu Jun 15 2017 Rex Dieter - 5.10.2-1 - 5.10.2 * Tue Jun 06 2017 Rex Dieter - 5.10.1-1 - 5.10.1 * Wed May 31 2017 Jan Grulich - 5.10.0-1 - 5.10.0 * Thu May 11 2017 Rex Dieter - 5.9.5-3 - rebuild (qt5) * Wed Apr 26 2017 Rex Dieter - 5.9.5-2 - -doc: use %%find_lang --with-html * Wed Apr 26 2017 Rex Dieter - 5.9.5-1 - 5.9.5 * Fri Mar 31 2017 Rex Dieter - 5.9.4-2 - rebuild (qt5), update URL * Thu Mar 23 2017 Rex Dieter - 5.9.4-1 - 5.9.4 * Sat Mar 04 2017 Rex Dieter - 5.9.3-2 - rebuild * Wed Mar 01 2017 Jan Grulich - 5.9.3-1 - 5.9.3 * Tue Feb 21 2017 Rex Dieter - 5.8.6-1 - 5.8.6 * Fri Feb 10 2017 Fedora Release Engineering - 5.8.5-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Wed Dec 28 2016 Rex Dieter - 5.8.5-1 - 5.8.5 * Thu Dec 15 2016 Rex Dieter - 5.8.4-3 - rebuild (qt5) * Sat Dec 03 2016 Rex Dieter - 5.8.4-2 - rebuild (qt5) * Tue Nov 22 2016 Rex Dieter - 5.8.4-1 - 5.8.4 * Thu Nov 17 2016 Rex Dieter - 5.8.3-2 - release++ * Thu Nov 17 2016 Rex Dieter - 5.8.3-1.2 - branch rebuild (qt5) * Tue Nov 01 2016 Rex Dieter - 5.8.3-1 - 5.8.3 * Mon Oct 31 2016 Rex Dieter - 5.8.2-2 - pull in upstream fixes * Tue Oct 18 2016 Rex Dieter - 5.8.2-1 - 5.8.2 * Tue Oct 11 2016 Rex Dieter - 5.8.1-1 - 5.8.1 * Thu Sep 29 2016 Rex Dieter - 5.8.0-1 - 5.8.0 * Thu Sep 22 2016 Rex Dieter - 5.7.95-1 - 5.7.95 * Tue Sep 13 2016 Rex Dieter - 5.7.5-1 - 5.7.5 * Tue Aug 23 2016 Rex Dieter - 5.7.4-1 - 5.7.4 * Tue Aug 02 2016 Rex Dieter - 5.7.3-2 - patch-n-relax breeze verision * Tue Aug 02 2016 Rex Dieter - 5.7.3-1 - 5.7.3 * Fri Jul 22 2016 Rex Dieter - 5.7.2-2 - BR: plasma-breeze-devel * Tue Jul 19 2016 Rex Dieter - 5.7.2-1 - 5.7.2 * Tue Jul 19 2016 Rex Dieter - 5.7.1-5 - rebuild (qt5) * Fri Jul 15 2016 Rex Dieter - 5.7.1-4 - add versioned qt5 dep in main pkg too * Thu Jul 14 2016 Rex Dieter - 5.7.1-3 - -wayland: Requires: xorg-x11-server-Xwayland * Thu Jul 14 2016 Rex Dieter - 5.7.1-2 - -wayland: KWinQpaPlugin uses private Qt5 apis, BR: qt5-qtbase-private-devel * Tue Jul 12 2016 Rex Dieter - 5.7.1-1 - 5.7.1 * Thu Jun 30 2016 Rex Dieter - 5.7.0-1 - 5.7.0 * Sat Jun 25 2016 Rex Dieter - 5.6.95-1 - 5.6.95 * Tue Jun 14 2016 Rex Dieter - 5.6.5-1 - 5.6.5 * Sat May 14 2016 Rex Dieter - 5.6.4-1 - 5.6.4 * Wed Apr 20 2016 Rex Dieter - 5.6.3-2 - tighten kscreenlocker, kdecoration runtime deps (#1328942) - -wayland: relax kwayland-integration runtime dep * Tue Apr 19 2016 Rex Dieter - 5.6.3-1 - 5.6.3 * Sat Apr 09 2016 Rex Dieter - 5.6.2-1 - 5.6.2 * Fri Apr 08 2016 Rex Dieter - 5.6.1-1 - 5.6.1 * Tue Mar 01 2016 Daniel Vrátil - 5.5.5-1 - Plasma 5.5.5 * Thu Feb 04 2016 Fedora Release Engineering - 5.5.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Wed Jan 27 2016 Daniel Vrátil - 5.5.4-1 - Plasma 5.5.4 * Thu Jan 14 2016 Rex Dieter 5.5.3-2 - -BR: cmake, use %%license * Thu Jan 07 2016 Daniel Vrátil - 5.5.3-1 - Plasma 5.5.3 * Thu Dec 31 2015 Rex Dieter 5.5.2-2 - update URL, use %%majmin_ver for more plasma-related deps * Thu Dec 31 2015 Rex Dieter - 5.5.2-1 - 5.5.2 * Fri Dec 18 2015 Daniel Vrátil - 5.5.1-1 - Plasma 5.5.1 * Thu Dec 03 2015 Daniel Vrátil - 5.5.0-1 - Plasma 5.5.0 * Wed Nov 25 2015 Daniel Vrátil - 5.4.95-1 - Plasma 5.4.95 * Thu Nov 05 2015 Daniel Vrátil - 5.4.3-1 - Plasma 5.4.3 * Sat Oct 24 2015 Rex Dieter 5.4.2-4 - respin (rawhide) * Fri Oct 23 2015 Rex Dieter 5.4.2-3 - latest batch of upstream fixes (kde#344278,kde#354164,kde#351763,kde#354090) * Tue Oct 20 2015 Rex Dieter 5.4.2-2 - .spec cosmetics, backport kwin/aurorae crasher fix (kde#346857) * Thu Oct 01 2015 Rex Dieter - 5.4.2-1 - 5.4.2 * Thu Oct 01 2015 Rex Dieter 5.4.1-3 - tigthen kdecorration-devel dep * Thu Oct 01 2015 Rex Dieter 5.4.1-2 - -devel: move dbus xml interface files here * Wed Sep 09 2015 Rex Dieter - 5.4.1-1 - 5.4.1 * Wed Sep 02 2015 Rex Dieter 5.4.0-4 - versioned kf5-kwayland dep too - make kwayland-integration dep arch'd * Wed Sep 02 2015 Rex Dieter 5.4.0-3 - add versioned Requires: kwin-libs dep to main pkg * Tue Aug 25 2015 Daniel Vrátil - 5.4.0-2 - add upstream patch to fix crash - make sure kwayland-integration is installed for kwin-wayland * Fri Aug 21 2015 Daniel Vrátil - 5.4.0-1 - Plasma 5.4.0 * Thu Aug 13 2015 Daniel Vrátil - 5.3.95-1 - Plasma 5.3.95 * Thu Jun 25 2015 Daniel Vrátil - 5.3.2-1 - Plasma 5.3.2 * Wed Jun 17 2015 Rex Dieter 5.3.1-4 - BR: kf5-kcompletion-devel kf5-kiconthemes-devel kf5-kio-devel * Wed Jun 17 2015 Fedora Release Engineering - 5.3.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Tue May 26 2015 Daniel Vrátil - 5.3.1-1 - Plasma 5.3.1 * Tue May 19 2015 Rex Dieter 5.3.0-5 - move dbus xml files to -libs (so present for -devel) * Sun May 17 2015 Rex Dieter - 5.3.0-4 - followup SM fix, discard support (kde#341930) - note qt5-qtmultimedia dep is runtime-only * Thu May 14 2015 Rex Dieter - 5.3.0-3 - test candidate SM fixes (reviewboard#123580,kde#341930) - move libkdeinit bits out of -libs - move dbus interface xml to runtime pkg - drop %%config from knsrc files - enable wayland support (f21+) - .spec cosmetics * Wed Apr 29 2015 Jan Grulich - 5.3.0-2 - BR xcb-util-cursor-devel * Mon Apr 27 2015 Daniel Vrátil - 5.3.0-1 - Plasma 5.3.0 * Wed Apr 22 2015 Daniel Vrátil - 5.2.95-1 - Plasma 5.2.95 * Tue Apr 07 2015 Rex Dieter 5.2.2-2 - tarball respin * Fri Mar 20 2015 Daniel Vrátil - 5.2.2-1 - Plasma 5.2.2 * Fri Feb 27 2015 Daniel Vrátil - 5.2.1-4 - Rebuild (GCC 5) * Fri Feb 27 2015 Rex Dieter - 5.2.1-3 - Provide /usr/bin/kwin too (#1197135) - bump plasma_version macro * Fri Feb 27 2015 Rex Dieter 5.2.1-2 - Provides: firstboot(windowmanager) = kwin_x11 (#605675) * Tue Feb 24 2015 Daniel Vrátil - 5.2.1-1 - Plasma 5.2.1 * Sun Feb 08 2015 Daniel Vrátil - 5.2.0.1-2 - Obsoletes: kwin-gles, kwin-gles-libs * Wed Jan 28 2015 Daniel Vrátil - 5.2.0.1-1 - Update to upstream hotfix release 5.2.0.1 (kwindeco KCM bugfix) * Wed Jan 28 2015 Daniel Vrátil - 5.2.0-3 - add upstream patch for bug #341971 - fixes Window decorations KCM * Tue Jan 27 2015 Daniel Vrátil - 5.2.0-2 - -doc: Don't require arch-specific kwin in noarch package * Mon Jan 26 2015 Daniel Vrátil - 5.2.0-1 - Plasma 5.2.0 * Mon Jan 12 2015 Daniel Vrátil - 5.1.95-1.beta - Plasma 5.1.95 Beta * Wed Dec 17 2014 Daniel Vrátil - 5.1.2-2 - Plasma 5.1.2 * Tue Nov 18 2014 Daniel Vrátil - 5.1.1-3 - Fixed license - Fixed scriptlets - Fixed Conflicts in -devel - -docs is noarch * Wed Nov 12 2014 Daniel Vrátil - 5.1.1-2 - added optional Wayland support * Fri Nov 07 2014 Daniel Vrátil - 5.1.1-1 - Plasma 5.1.1 * Tue Oct 14 2014 Daniel Vrátil - 5.1.0.1-1 - Plasma 5.1.0.1 * Thu Oct 09 2014 Daniel Vrátil - 5.1.0-1 - Plasma 5.1.0 * Tue Sep 16 2014 Daniel Vrátil - 5.0.2-1 - Plasma 5.0.2 * Sun Aug 10 2014 Daniel Vrátil - 5.0.1-1 - Plasma 5.0.1 * Wed Jul 16 2014 Daniel Vrátil 5.0.0-1 - Plasma 5.0.0 * Wed May 14 2014 Daniel Vrátil 4.96.0-1.20140514git61c631c - Update to latest upstream git snapshot * Fri Apr 25 2014 Daniel Vrátil 4.95.0-1.20140425gitb92f4a6 - Initial package