SonicDE-rpmspecs/sonic-breeze/sonic-breeze.spec

198 lines
5.6 KiB
RPMSpec
Raw Normal View History

2026-08-25 01:26:42 +02:00
# Generated for SonicDE from Fedora's plasma-breeze.spec.
# SonicDE is a hard fork of KDE Plasma; the sources come from the
# https://github.com/Sonic-DE/sonic-breeze fork, not from download.kde.org.
%define _disable_source_fetch 0
%define debug_package %{nil}
%global reponame sonic-breeze
# Upstream KDE project: breeze
%global oldname plasma-breeze
%global base_name breeze
Fix build failures across all 136 SonicDE specs for RHEL 10 The hard-forked specs inherited Fedora's Qt5/KF5 dual-build logic and upstream naming, but SonicDE is Qt6/KF6-only and renames many install paths. This resolves every build failure so all 136 packages build cleanly on AlmaLinux 10 (EPEL10). Major categories of fixes: - Qt5/KF5 bcond: force-disable kf5/qt5 in sonic-accounts-integration, sonic-breeze, sonic-qt-theme-bridge and sonic-crypto-library, since the forks are Qt6-only and no KF5 packages are shipped. - %find_lang / %files -f mismatch: 41 specs called %find_lang with the upstream name but referenced %{name}.lang in %files, so the .lang file was never found. Aligned %files -f to the same name %find_lang emits. - Fork-specific install paths: silver/silver-dark icon themes (sonic-frameworks-silver-icons), Silver GTK theme dir (sonic-gtk-theme-bridge), and glob-based wallpaper listing (sonic-workspace-wallpapers) replace the old breeze/hardcoded paths. - Library SOVERSION globs: sonic-frameworks-quick-ui and sonic-quick-image-editor shipped %{version} in .so paths, but the CMake project version differs from the spec version; switched to SOVERSION globs. - Distro compatibility: disable HEIF plugin in sonic-frameworks-image- formats (libheif 1.17 API break), drop missing ffmpeg8 patch from sonic-pipewire, always build X11 plugin in sonic-frameworks-idle- tracker, and remove unbuildable kf5-rpm-macros / version-pinned BuildRequires. - sonic-frameworks-sso: drop D-Bus interface XML install rule and fix sysconfdir path. - sonic-polkit: remove Qt5 build (fork is Qt6-only).
2026-08-25 12:14:17 +02:00
# SonicDE is a Qt6/KF6-only hard fork; no KF5 packages are shipped.
2026-08-25 01:26:42 +02:00
%bcond_with kf5
#Name: plasma-breeze
Name: sonic-breeze
Version: 6.7.4.3
Release: 1%{?dist}
Summary: Artwork, styles and assets for the Breeze visual style for the Plasma Desktop
License: BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND (GPL-2.0-only OR GPL-3.0-only) AND MIT
#URL: https://invent.kde.org/plasma/%%{base_name}.git
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
# Upstream Patches
# Use font metrics to only inset where the text can spare it
# https://invent.kde.org/plasma/breeze/-/commit/a74ad95349ec913f1042f5390dbd95a8341aea06
Patch0: a74ad95349ec913f1042f5390dbd95a8341aea06.patch
# Misc
BuildRequires: sonic-frameworks-cmake-modules
BuildRequires: gettext
%if %{with kf5}
# Qt5
BuildRequires: kf5-rpm-macros
BuildRequires: cmake(KF5Config)
BuildRequires: cmake(KF5CoreAddons)
BuildRequires: cmake(KF5FrameworkIntegration)
BuildRequires: cmake(KF5GuiAddons)
BuildRequires: cmake(KF5Kirigami2)
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(KF6Config)
BuildRequires: cmake(KF6CoreAddons)
BuildRequires: cmake(KF6FrameworkIntegration)
BuildRequires: cmake(KF6GuiAddons)
BuildRequires: cmake(KF6I18n)
BuildRequires: cmake(KF6KCMUtils)
BuildRequires: cmake(KF6KirigamiPlatform)
BuildRequires: cmake(KF6WindowSystem)
BuildRequires: cmake(Qt6Core)
BuildRequires: cmake(Qt6DBus)
BuildRequires: cmake(Qt6Quick)
BuildRequires: cmake(Qt6Widgets)
BuildRequires: cmake(Qt6Svg)
Requires: %{name}-qt6
# since we provide a cmake dev-like file
Provides: %{name}-devel = %{version}-%{release}
Provides: plasma-breeze = %{version}-%{release}
Conflicts: plasma-breeze < %{version}-%{release}
%description
%{summary}.
%package qt6
Summary: Breeze application style for Qt6
Requires: %{name}-common = %{version}-%{release}
Provides: plasma-breeze-qt6 = %{version}-%{release}
Conflicts: plasma-breeze-qt6 < %{version}-%{release}
%description qt6
%{summary}.
%if %{with kf5}
%package qt5
Summary: Breeze application style for Qt5
Requires: %{name}-common = %{version}-%{release}
Provides: plasma-breeze-qt5 = %{version}-%{release}
Conflicts: plasma-breeze-qt5 < %{version}-%{release}
%description qt5
%{summary}.
%endif
%package common
Summary: Common files shared between Plasma 5 and Plasma 6 versions of the Breeze style
BuildArch: noarch
Provides: plasma-breeze-common = %{version}-%{release}
Conflicts: plasma-breeze-common < %{version}-%{release}
%description common
%{summary}.
%package -n breeze-cursor-theme
Summary: Breeze cursor theme
BuildArch: noarch
Obsoletes: breeze-icon-theme < 5.17.0
Provides: breeze-cursor-themes = %{version}-%{release}
%description -n breeze-cursor-theme
%{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
%if %{with kf5}
pushd qt5build
%cmake_install
popd
%endif
pushd qt6build
%cmake_install
popd
%find_lang breeze --all-name
%files -f breeze.lang
%license LICENSES/*.txt
%{_bindir}/breeze-settings6
%{_bindir}/kcursorgen
%{_kf6_datadir}/applications/breezestyleconfig.desktop
%{_kf6_datadir}/applications/kcm_breezedecoration.desktop
%dir %{_kf6_qtplugindir}/kstyle_config/
%{_kf6_qtplugindir}/kstyle_config/breezestyleconfig.so
%{_kf6_qtplugindir}/org.kde.kdecoration3.kcm/kcm_breezedecoration.so
%{_kf6_qtplugindir}/org.kde.kdecoration3/org.kde.breeze.so
%{_libdir}/cmake/Breeze/
%if %{with kf5}
%files qt5
%{_kf5_qtplugindir}/styles/breeze5.so
%endif
%files qt6
%{_kf6_qtplugindir}/styles/breeze6.so
%files common
%{_datadir}/color-schemes/*.colors
%{_datadir}/kstyle/themes/breeze.themerc
%{_datadir}/icons/hicolor/*/apps/breeze-settings.*
%dir %{_datadir}/QtCurve/
%{_datadir}/QtCurve/Breeze.qtcurve
%{_datadir}/wallpapers/Next/
%files -n breeze-cursor-theme
%dir %{_kf6_datadir}/icons/Breeze_Light/
%{_kf6_datadir}/icons/Breeze_Light/cursors/
%{_kf6_datadir}/icons/Breeze_Light/cursors_scalable/
%{_kf6_datadir}/icons/Breeze_Light/index.theme
%dir %{_kf6_datadir}/icons/breeze_cursors/
%{_kf6_datadir}/icons/breeze_cursors/cursors/
%{_kf6_datadir}/icons/breeze_cursors/cursors_scalable/
%{_kf6_datadir}/icons/breeze_cursors/index.theme
%changelog
* Mon Aug 24 2026 Anders da Silva Rytter Hansen <andersrh@users.noreply.github.com> - 6.7.4.3-1
- SonicDE hard fork build for Enterprise Linux 10 and Fedora