copr-andersrh/SonicDE/sonic-win.spec
Anders da Silva Rytter Hansen 4b339bf99a Initial commit
2026-03-11 20:02:12 -03:00

161 lines
4.3 KiB
RPMSpec

%define _disable_source_fetch 0
%define debug_package %{nil}
Name: sonic-win
Version: 6.4.5
Release: 1%{?dist}
Summary: KWin window manager for SonicDE (fork of kwin)
License: GPL-2.0-or-later
URL: https://github.com/Sonic-DE/sonic-win
Source0: %{url}/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz
BuildRequires: extra-cmake-modules
BuildRequires: kf6-rpm-macros
BuildRequires: systemd-rpm-macros
# Qt
BuildRequires: cmake(QAccessibilityClient6)
BuildRequires: qt6-qtbase-devel
BuildRequires: qt6-qtbase-private-devel
BuildRequires: qt6-qtsensors-devel
BuildRequires: qt6-qttools-devel
BuildRequires: qt6-qtwayland-devel
BuildRequires: cmake(Qt6Core5Compat)
BuildRequires: cmake(Qt6Svg)
BuildRequires: cmake(Qt6Multimedia)
# X11/OpenGL
BuildRequires: pkgconfig(libxcvt)
BuildRequires: mesa-libGL-devel
BuildRequires: mesa-libEGL-devel
BuildRequires: mesa-libgbm-devel
BuildRequires: libxkbcommon-devel
BuildRequires: libxkbcommon-x11-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: xcb-util-devel
BuildRequires: libepoxy-devel
BuildRequires: libcap-devel
BuildRequires: lcms2-devel
BuildRequires: glib2-devel
BuildRequires: pipewire-devel
# Wayland
BuildRequires: wayland-devel >= 1.22.0
BuildRequires: wayland-protocols-devel
BuildRequires: pkgconfig(libinput) >= 0.10
BuildRequires: pkgconfig(libudev)
%if 0%{?rhel} == 10
# Integrate with Xlibre on EL10
BuildRequires: xlibre-xserver-devel
Requires: xlibre-xserver
Requires: xlibre-xf86-input-libinput
%else
BuildRequires: pkgconfig(xwayland)
%endif
# KF6
BuildRequires: cmake(KF6Completion)
BuildRequires: cmake(KF6Config)
BuildRequires: cmake(KF6ConfigWidgets)
BuildRequires: cmake(KF6CoreAddons)
BuildRequires: cmake(KF6Crash)
BuildRequires: cmake(KF6DBusAddons)
BuildRequires: cmake(KF6GlobalAccel)
BuildRequires: cmake(KF6GuiAddons)
BuildRequires: cmake(KF6I18n)
BuildRequires: cmake(KF6KIO)
BuildRequires: cmake(KF6Notifications)
BuildRequires: cmake(KF6Service)
BuildRequires: cmake(KF6WidgetsAddons)
BuildRequires: cmake(KF6WindowSystem)
BuildRequires: cmake(KF6DocTools)
BuildRequires: cmake(KF6KCMUtils)
BuildRequires: cmake(KF6NewStuff)
BuildRequires: cmake(KF6Declarative)
BuildRequires: cmake(KF6IconThemes)
BuildRequires: cmake(KF6IdleTime)
BuildRequires: cmake(KF6TextWidgets)
BuildRequires: cmake(KF6Kirigami2)
BuildRequires: cmake(KF6Runner)
BuildRequires: cmake(KF6Svg)
# Workspace components
BuildRequires: cmake(KDecoration3)
BuildRequires: kscreenlocker-devel
BuildRequires: plasma-breeze-devel
BuildRequires: plasma-wayland-protocols-devel
BuildRequires: cmake(KGlobalAccelD)
BuildRequires: libdisplay-info-devel
BuildRequires: cmake(KWayland)
BuildRequires: cmake(Plasma)
BuildRequires: cmake(PlasmaActivities)
BuildRequires: libeis-devel
BuildRequires: pkgconfig(libcanberra)
# Conflicts with standard kwin
Conflicts: kwin
%description
Sonic Win is a fork of KWin, the window manager and compositor for SonicDE,
focusing on an optimized X11 experience.
%package libs
Summary: KWin libraries for SonicDE
Conflicts: kwin-libs
%description libs
Shared libraries for sonic-win.
%package devel
Summary: Development files for %{name}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Conflicts: kwin-devel
%description devel
Development files for sonic-win.
%prep
%autosetup -p1
%build
%cmake_kf6
%cmake_build
%install
%cmake_install
%find_lang %{name} --all-name
%files -f %{name}.lang
%license LICENSES/*
%{_bindir}/sonic-win
%{_libdir}/qt6/plugins/org.kde.kwin.*
%{_datadir}/sonic-win/
%{_datadir}/qlogging-categories6/sonic-win.categories
%files libs
%{_libdir}/libSonicWin*.so.*
%files devel
%{_includedir}/SonicWin/
%{_libdir}/libSonicWin*.so
%{_libdir}/cmake/SonicWin/
%changelog
* Wed Mar 11 2026 Anders Rh <andersrh@example.com> - 6.4.5-1
- Downgrade to 6.4.5 for EL 10.1 compatibility
- Sync with epel10.1 spec base
- Preserve Xlibre integration