SonicDE-rpmspecs/sonic-oxygen/sonic-oxygen.spec
test a88703e93e
Some checks failed
Build RPMs / build (push) Has been cancelled
Add EPEL apps at latest versions and fix all EPEL dependency conflicts
Add 8 new packages built from upstream KDE sources at versions matching
the rest of SonicDE (Gear 26.04.3, Plasma 6.7.4):
- colord-kde 26.04.3
- dolphin-plugins 26.04.3
- filelight 26.04.3
- kde-gtk-config 6.7.4
- kde-inotify-survey 26.04.3
- ksanecore 26.04.3 (dependency for skanpage)
- plasma-discover 6.7.4 (with snap backend disabled)
- skanpage 26.04.3

These packages replace the EPEL versions and use SonicDE dependencies
instead of kf6-*/plasma-* packages, ensuring they are upgraded (not
removed) when SonicDE is installed alongside EPEL KDE.

Fix EPEL dependencies in existing SonicDE packages that caused packages
to be removed during dnf upgrade --allowerasing:
- sonic-desktop-interface: kde-cli-tools -> sonic-terminal-tools,
  kmenuedit -> sonic-launcher-menu-edit, kwrited -> sonic-write-daemon,
  signon-plugin-oauth2 and plasma-systemsettings changed to Recommends
- sonic-workspace: kio-fuse -> sonic-frameworks-io-fuse,
  polkit-kde -> sonic-polkit-agent,
  xdg-desktop-portal-kde -> xdg-desktop-portal-sonicde,
  plasma-keyboard and kde-settings-plasma changed to Recommends
- sonic-workspace-addons: kf6-plasma -> sonic-interface-libraries
- kde-gtk-config: breeze-gtk-common -> sonic-silver-gtk-common
- sonic-login-manager: kde-settings-plasma changed to Recommends
- kcm-soniclogin: plasma-systemsettings changed to Recommends
- sonic-rpm-macros: kde-qdoc-common changed to Recommends
- sonic-welcome-center: add Obsoletes for plasma-welcome

Also includes Obsoletes/Provides fixes across all spec files for proper
EPEL package replacement, and Conflicts tag removal from spec files.

Result: dnf upgrade --allowerasing from standard EPEL KDE removes 0
packages. dnf install of SonicDE packages installs 195 packages with
0 removals.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-08-27 17:11:06 +00:00

205 lines
5.8 KiB
RPMSpec

# Generated for SonicDE from Fedora's plasma-oxygen.spec.
# SonicDE is a hard fork of KDE Plasma; the sources come from the
# https://github.com/Sonic-DE/sonic-oxygen fork, not from download.kde.org.
%define _disable_source_fetch 0
%define debug_package %{nil}
%global reponame sonic-oxygen
# Upstream KDE project: oxygen
%global oldname plasma-oxygen
%global base_name oxygen
# Disable kf5 support for RHEL 10+
%bcond kf5 %[%{undefined rhel} || 0%{?rhel} < 10]
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}
#Name: plasma-%%{base_name}
Name: sonic-oxygen
Version: 6.7.4
Release: 3%{?dist}
Summary: Plasma and Qt widget style and window decorations for Plasma
License: CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND GPL-3.0-or-later AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-3.0-only AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only) AND MIT
#URL: https://invent.kde.org/plasma/%%{base_name}
URL: https://github.com/Sonic-DE/%{reponame}
#Source0: https://download.kde.org/%%{stable_kf6}/plasma/%%{version}/%%{base_name}-%%{version}.tar.xz
Source0: %{url}/archive/refs/tags/%{version}.tar.gz#/%{reponame}-%{version}.tar.gz
#Source1: https://download.kde.org/%%{stable_kf6}/plasma/%%{version}/%%{base_name}-%%{version}.tar.xz.sig
# Misc
BuildRequires: sonic-frameworks-cmake-modules
BuildRequires: gettext
BuildRequires: libxcb-devel
BuildRequires: cmake(Plasma)
%if %{with kf5}
# Qt5
BuildRequires: kf5-rpm-macros
BuildRequires: cmake(KF5Completion)
BuildRequires: cmake(KF5Config)
BuildRequires: cmake(KF5FrameworkIntegration)
BuildRequires: cmake(KF5GuiAddons)
BuildRequires: cmake(KF5I18n)
BuildRequires: cmake(KF5Service)
BuildRequires: cmake(KF5WidgetsAddons)
BuildRequires: cmake(KF5WindowSystem)
BuildRequires: cmake(Qt5DBus)
BuildRequires: cmake(Qt5Quick)
BuildRequires: cmake(Qt5Widgets)
BuildRequires: cmake(Qt5X11Extras)
Requires: (%{name}-qt5 if qt5-qtbase-gui)
%endif
# Qt6
BuildRequires: sonic-rpm-macros
BuildRequires: cmake(KDecoration3)
BuildRequires: cmake(KF6ColorScheme)
BuildRequires: cmake(KF6Completion)
BuildRequires: cmake(KF6Config)
BuildRequires: cmake(KF6CoreAddons)
BuildRequires: cmake(KF6FrameworkIntegration)
BuildRequires: cmake(KF6GuiAddons)
BuildRequires: cmake(KF6I18n)
BuildRequires: cmake(KF6KCMUtils)
BuildRequires: cmake(KF6WindowSystem)
BuildRequires: cmake(KF6KirigamiPlatform)
BuildRequires: cmake(Qt6Core)
BuildRequires: cmake(Qt6DBus)
BuildRequires: cmake(Qt6Quick)
BuildRequires: cmake(Qt6Widgets)
BuildRequires: qt6-qtbase-private-devel
Requires: kf6-filesystem
Requires: %{name}-qt6
Requires: oxygen-cursor-themes >= %{version}
Requires: oxygen-sound-theme
# for oxygen look-and-feel
Requires: sonic-oxygen-icons
# kwin-oxygen was removed in 5.1.95
Obsoletes: kwin-oxygen < 5.1.95-1
Obsoletes: sonic-oxygen < 5.1.1-2
Conflicts: sonic-desktop-interface < 5.16.90
Provides: plasma-oxygen%{?_isa} = %{version}-%{release}
Obsoletes: plasma-oxygen < %{version}-%{release}
%description
%{summary}.
%if %{with kf5}
%package qt5
Summary: Oxygen widget style for Qt 5
Obsoletes: qt5-style-oxygen < %{version}-%{release}
Provides: qt5-style-oxygen = %{version}-%{release}
Provides: plasma-oxygen-qt5%{?_isa} = %{version}-%{release}
Obsoletes: plasma-oxygen-qt5 < %{version}-%{release}
%description qt5
%{summary}.
%endif
%package qt6
Summary: Oxygen widget style for Qt 6
Provides: plasma-oxygen-qt6%{?_isa} = %{version}-%{release}
Obsoletes: plasma-oxygen-qt6 < %{version}-%{release}
%description qt6
%{summary}.
%package -n oxygen-cursor-themes
Summary: Oxygen cursor themes
BuildArch: noarch
Obsoletes: plasma-oxygen-common < 5.1.1-2
%description -n oxygen-cursor-themes
%{summary}.
%prep
%autosetup -p1 -n %{reponame}-%{version}
%build
mkdir -p qt6build
pushd qt6build
%cmake_kf6 -S .. -DBUILD_QT6=ON -DBUILD_QT5=OFF
%cmake_build
popd
%if %{with kf5}
mkdir -p qt5build
pushd qt5build
%cmake_kf5 -S .. -DBUILD_QT6=OFF -DBUILD_QT5=ON
%cmake_build
popd
%endif
%install
pushd qt6build
%cmake_install
popd
%if %{with kf5}
pushd qt5build
%cmake_install
popd
%endif
%find_lang oxygen --with-qt --all-name
%files -f oxygen.lang
%license LICENSES/*
%{_bindir}/oxygen-settings6
%{_kf6_datadir}/applications/kcm_oxygendecoration.desktop
%{_kf6_datadir}/color-schemes/Oxygen.colors
%{_kf6_datadir}/color-schemes/OxygenCold.colors
%{_kf6_datadir}/color-schemes/OxygenDark.colors
%{_kf6_datadir}/icons/hicolor/*/apps/oxygen-settings.*
%{_kf6_datadir}/kstyle/themes/oxygen.themerc
%{_kf6_datadir}/plasma/look-and-feel/org.kde.oxygen/
%{_kf6_datadir}/plasma/look-and-feel/org.kde.oxygenlight/
%{_kf6_datadir}/plasma/desktoptheme/oxygen/
%{_kf6_qtplugindir}/kstyle_config/kstyle_oxygen_config.so
%{_kf6_qtplugindir}/org.kde.kdecoration3.kcm/kcm_oxygendecoration.so
%{_kf6_qtplugindir}/org.kde.kdecoration3/org.kde.oxygen.so
%{_kf6_datadir}/wallpapers/Horos/
%{_kf6_datadir}/plasma/desktoptheme/air/
%{_kf6_datadir}/plasma/look-and-feel/org.kde.air/
%{_kf6_datadir}/wallpapers/Air/
%if %{with kf5}
%files qt5
%{_bindir}/oxygen-demo5
%{_libdir}/liboxygenstyle5.so.*
%{_libdir}/liboxygenstyleconfig5.so.*
%{_kf5_qtplugindir}/styles/oxygen5.so
%endif
%files qt6
%{_bindir}/oxygen-demo6
%{_libdir}/liboxygenstyle6.so.*
%{_libdir}/liboxygenstyleconfig6.so.*
%{_kf6_qtplugindir}/styles/oxygen6.so
%files -n oxygen-cursor-themes
%{_datadir}/icons/KDE_Classic/
%{_datadir}/icons/Oxygen_Black/
%{_datadir}/icons/Oxygen_Blue/
%{_datadir}/icons/Oxygen_White/
%{_datadir}/icons/Oxygen_Yellow/
%{_datadir}/icons/Oxygen_Zion/
%changelog
* Mon Aug 24 2026 Anders da Silva Rytter Hansen <andersrh@users.noreply.github.com> - 6.7.4-1
- SonicDE hard fork build for Enterprise Linux 10 and Fedora