#
# Please do not update/rebuild/touch this package before asking first
# to mikala and/or neoclust and/or daviddavid
# This package is part of the KDE Stack.
#

# comment out when non-git snapshot
%define gitver	git20190612
%define oname	kwin-lowlatency

%define rel 1
%define _cmake_skip_rpath -DCMAKE_SKIP_RPATH:BOOL=OFF
%define min_version %(echo %{version}|cut -d. -f1,2)

Summary:        Plasma 5 Window Manager
Name:           kwin
Version:        5.15.6.0.2
Release:        %mkrel %rel
License:        GPLv2+
Group:          System/Base
URL:            https://www.kde.org/
Source0:        https://github.com/tildearrow/kwin-lowlatency/archive/v%{version}/%{oname}-%{version}%{?gitver:-%gitver}.tar.xz
BuildRequires:  kf5-macros

BuildRequires:  pkgconfig(libcap)
BuildRequires:  pkgconfig(xcb)
BuildRequires:  pkgconfig(xcb-image)
BuildRequires:  pkgconfig(xi)
BuildRequires:  pkgconfig(xcb-icccm)
BuildRequires:  x11-server-xwayland

BuildRequires:  pkgconfig(Qt5Core)
BuildRequires:  pkgconfig(Qt5Gui)
BuildRequires:  qt5platformsupport-private-devel
BuildRequires:  qt5fontdatabasesupport-devel
BuildRequires:  qt5themesupport-devel
BuildRequires:  qt5eventdispatchersupport-devel

BuildRequires:  pkgconfig(xcursor)
BuildRequires:  pkgconfig(sm)
BuildRequires:  pkgconfig(epoxy)
BuildRequires:  pkgconfig(xkbcommon)
BuildRequires:  pkgconfig(xcb-cursor)
BuildRequires:  pkgconfig(wayland-egl)
BuildRequires:  pkgconfig(freetype2)
BuildRequires:  pkgconfig(fontconfig)
BuildRequires:  pkgconfig(libdrm)
BuildRequires:  pkgconfig(libinput) >= 0.10
BuildRequires:  pkgconfig(libudev)

BuildRequires:  pkgconfig(Qt5Core)
BuildRequires:  pkgconfig(Qt5Concurrent)
BuildRequires:  pkgconfig(Qt5Quick)
BuildRequires:  pkgconfig(Qt5Script)
BuildRequires:  pkgconfig(Qt5DBus)
BuildRequires:  pkgconfig(Qt5Multimedia)
BuildRequires:  pkgconfig(Qt5UiTools)
BuildRequires:  pkgconfig(Qt5Widgets)
BuildRequires:  pkgconfig(Qt5X11Extras)
BuildRequires:  pkgconfig(Qt5Test)
BuildRequires:  pkgconfig(Qt5QuickWidgets)

BuildRequires:  cmake(Qt5Sensors)

BuildRequires:  kactivities-devel
BuildRequires:  kdoctools-devel
BuildRequires:  kconfig-devel
BuildRequires:  kconfigwidgets-devel
BuildRequires:  kcoreaddons-devel
BuildRequires:  kcrash-devel
BuildRequires:  kglobalaccel-devel
BuildRequires:  ki18n-devel
BuildRequires:  kinit-devel
BuildRequires:  kservice-devel
BuildRequires:  plasma-framework-devel
BuildRequires:  knotifications-devel
BuildRequires:  kwidgetsaddons-devel
BuildRequires:  kwindowsystem-devel
BuildRequires:  kcmutils-devel
BuildRequires:  knewstuff-devel
BuildRequires:  plasma-framework-devel
BuildRequires:  kdecoration-devel >= %min_version
BuildRequires:  kwayland-devel >= 5.3.95
BuildRequires:  kscreenlocker-devel
BuildRequires:	kirigami-devel
BuildRequires:  cmake(Breeze)

# rutime dependencies
BuildRequires:  qtquickcontrols5
BuildRequires:  kdeclarative
BuildRequires:  plasma-framework
Requires:       qtquickcontrols5
Requires:       kdeclarative
Requires:       plasma-framework

Requires:       qtmultimedia5
Requires:       %name-common = %version-%release
Requires:       kscreenlocker
Requires:       kinit
Requires:       breeze

Conflicts:      kdebase4-workspace < 2:4.11.23

%description
Plasma 5 Window Manager.

This version includes the low-latency features from
https://github.com/tildearrow/kwin-lowlatency/.

%files
%_kf5_bindir/kwin_x11
%_kf5_libdir/libkdeinit5_kwin_x11.so
%_libexecdir/org_kde_kwin_xclipboard_syncer
%_qt5_plugindir/org.kde.kwin.platforms/KWinX11Platform.so
%_kf5_datadir/config.kcfg/kwin_colorcorrect.kcfg

#--------------------------------------------------------------------

%package        common
Summary:        Common files for KWin X11 and KWin Wayland

Conflicts:      %name < 5.6.5

%description    common
Common files for KWin X11 and KWin Wayland.

%files common -f %{name}.lang
%_kf5_libdir/libkdeinit5_kwin_rules_dialog.so
%_kf5_datadir/kwin
%_kf5_datadir/dbus-1/interfaces/*.xml
%_kf5_iconsdir/*/*/apps/*
%_kf5_knotificationsdir/kwin.notifyrc
%_kf5_services/*.desktop
%_kf5_services/kwin
%_kf5_servicetypes/*.desktop
%_kf5_datadir/kwincompositing
%_kf5_qmldir/org/kde/kwin
%_qt5_plugindir/*.so
%_qt5_plugindir/kwin
%_libexecdir/kwin_killer_helper
%_libexecdir/kwin_rules_dialog
%_kf5_datadir/config.kcfg/kwin.kcfg
%_kf5_datadir/kconf_update/kwin.upd
%_kf5_sysconfdir/xdg/*.knsrc
%_kf5_sysconfdir/xdg/org_kde_kwin.categories
%_kf5_libdir/kconf_update_bin/kwin5_update_default_rules
%_qt5_plugindir/kcms/kcm_kwin_virtualdesktops.so
%_qt5_plugindir/org.kde.kdecoration2/kwin5_aurorae.so
%_qt5_plugindir/org.kde.kglobalaccel5.platforms/
%_qt5_plugindir/org.kde.kwin.scenes/
%_qt5_plugindir/platforms/KWinQpaPlugin.so
%_qt5_plugindir/kpackage/packagestructure/kwin_packagestructure_aurorae.so
%_qt5_plugindir/kpackage/packagestructure/kwin_packagestructure_decoration.so
%_qt5_plugindir/kpackage/packagestructure/kwin_packagestructure_scripts.so
%_qt5_plugindir/kpackage/packagestructure/kwin_packagestructure_windowswitcher.so
%_qt5_plugindir/kpackage/packagestructure/kwin_packagestructure_effect.so
%_kf5_datadir/kpackage/kcms/kcm_kwin_virtualdesktops/

#--------------------------------------------------------------------

%define kwin4_effect_builtins_major 1
%define libkwin4_effect_builtins %mklibname kwin4_effect_builtins %{kwin4_effect_builtins_major}

%package -n %libkwin4_effect_builtins
Summary:      Plasma 5 Window Manager
Group:        System/Libraries


%description -n %libkwin4_effect_builtins
Plasma 5 Window Manager.

%files -n %libkwin4_effect_builtins
%_kf5_libdir/libkwin4_effect_builtins.so.%{kwin4_effect_builtins_major}{,.*}

#--------------------------------------------------------------------

%define kwineffects_major 5
%define libkwineffects %mklibname kwineffects %{kwineffects_major}

%package -n %libkwineffects
Summary:      Plasma 5 Window Manager
Group:        System/Libraries


%description -n %libkwineffects
Plasma 5 Window Manager.

%files -n %libkwineffects
%_kf5_libdir/libkwineffects.so.%{kwineffects_major}{,.*}
%_kf5_libdir/libkwineffects.so.12

#--------------------------------------------------------------------

%define kwinglutils_major 5
%define libkwinglutils %mklibname kwinglutils %{kwinglutils_major}

%package -n %libkwinglutils
Summary:      Plasma 5 Window Manager
Group:        System/Libraries


%description -n %libkwinglutils
Plasma 5 Window Manager.

%files -n %libkwinglutils
%_kf5_libdir/libkwinglutils.so.%{kwinglutils_major}{,.*}
%_kf5_libdir/libkwinglutils.so.12

#--------------------------------------------------------------------

%define kwinxrenderutils_major 5
%define libkwinxrenderutils %mklibname kwinxrenderutils %{kwinxrenderutils_major}

%package -n %libkwinxrenderutils
Summary:      Plasma 5 Window Manager
Group:        System/Libraries


%description -n %libkwinxrenderutils
Plasma 5 Window Manager.

%files -n %libkwinxrenderutils
%_kf5_libdir/libkwinxrenderutils.so.%{kwinxrenderutils_major}{,.*}
%_kf5_libdir/libkwinxrenderutils.so.12

#--------------------------------------------------------------------

%define kwin_major 5
%define libkwin %mklibname kwin %{kwin_major}

%package -n %libkwin
Summary:      Plasma 5 Window Manager
Group:        System/Libraries


%description -n %libkwin
Plasma 5 Window Manager.

%files -n %libkwin
%_kf5_libdir/libkwin.so.%{kwin_major}{,.*}

#--------------------------------------------------------------------

%define kcmkwincommon_major 5
%define libkcmkwincommon %mklibname kcmkwincommon %{kcmkwincommon_major}

%package -n %libkcmkwincommon
Summary:      Plasma 5 Window Manager
Group:        System/Libraries


%description -n %libkcmkwincommon
Plasma 5 Window Manager.

%files -n %libkcmkwincommon
%_kf5_libdir/libkcmkwincommon.so.%{kcmkwincommon_major}{,.*}

#--------------------------------------------------------------------

%package        wayland
Summary:        KDE Window Manager with experimental Wayland support
Requires:       %{name}-common%{?_isa} = %{version}-%{release}
Requires:       kwayland-integration%{?_isa}
Requires:       qtwayland5
Requires:       x11-server-xwayland

%description    wayland
KDE Window Manager with experimental Wayland support.

%files wayland
%_kf5_bindir/kwin_wayland
%_qt5_plugindir/platforms/KWinQpaPlugin.so
%_qt5_plugindir/org.kde.kglobalaccel5.platforms/KF5GlobalAccelPrivateKWin.so
%_qt5_plugindir/org.kde.kwin.waylandbackends/
%_kf5_plugindir/org.kde.kidletime.platforms/KF5IdleTimeKWinWaylandPrivatePlugin.so

#--------------------------------------------------------------------

%define kwin_devel %mklibname kwin -d

%package -n %kwin_devel
Summary:        Devel stuff for %name
Group:          Development/KDE and Qt
Requires:       %libkwinxrenderutils = %version-%release
Requires:       %libkwinglutils = %version-%release
Requires:       %libkwineffects = %version-%release
Requires:       %libkwin4_effect_builtins = %version-%release
Requires:       %libkwin = %version-%release
Requires:       %libkcmkwincommon = %version-%release
Requires:       %name = %version-%release
Provides:       %name-devel = %{version}-%{release}

%description -n %kwin_devel
This package contains header files needed if you wish to build applications
based on %name.

%files -n %kwin_devel
%_kf5_prefix/include/*.h
%_kf5_libdir/libkwin4_effect_builtins.so
%_kf5_libdir/libkwineffects.so
%_kf5_libdir/libkwinglutils.so
%_kf5_libdir/libkwinxrenderutils.so
%_kf5_libdir/cmake/KWinDBusInterface

#--------------------------------------------------------------------

%package handbook
Summary: %{name} Handbook
BuildArch: noarch

%description handbook
This package provides %{name} Handbook.

%files handbook
%doc %_kf5_docdir/HTML/*/kcontrol/windowspecific/
%doc %_kf5_docdir/HTML/*/kcontrol/desktop/
%doc %_kf5_docdir/HTML/*/kcontrol/kwindecoration/
%doc %_kf5_docdir/HTML/*/kcontrol/kwinscreenedges/
%doc %_kf5_docdir/HTML/*/kcontrol/kwintabbox/
%doc %_kf5_docdir/HTML/*/kcontrol/windowbehaviour/
%doc %_kf5_docdir/HTML/*/kcontrol/kwineffects/

#------------------------------------------------


%prep
%setup -q -n %{oname}-%{version}%{?gitver:-%gitver}
%autopatch -p1

%build
%cmake_kf5 \
        -DSYSCONF_INSTALL_DIR="%_kf5_sysconfdir" \
        -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON

%make_build

%install
%make_install -C build

%find_lang %{name} --all-name

%changelog
* Thu Jun 13 2019 ghibo <ghibo> 5.15.6.2-1.mga7
- Update to release 5.15.6.2.

* Tue May 28 2019 ghibo <ghibo> 5.15.6-1.mga7
- initial release based on Nicolas Lécureuil's kwin SPEC file.