SonicDE-rpmspecs/sonic-pipewire/sonic-pipewire.spec

126 lines
3.9 KiB
RPMSpec
Raw Normal View History

2026-08-25 01:26:42 +02:00
# Generated for SonicDE from Fedora's kpipewire.spec.
# SonicDE is a hard fork of KDE Plasma; the sources come from the
# https://github.com/Sonic-DE/sonic-pipewire fork, not from download.kde.org.
%define _disable_source_fetch 0
%define debug_package %{nil}
%global reponame sonic-pipewire
# Upstream KDE project: kpipewire
%global oldname kpipewire
#Name: kpipewire
Name: sonic-pipewire
Summary: Set of convenient classes to use PipeWire in Qt projects
Version: 6.7.4
Release: 1%{?dist}
License: BSD-3-Clause AND CC0-1.0 AND LGPL-2.1-only AND LGPL-3.0-only
#URL: https://invent.kde.org/plasma/%%{name}
URL: https://github.com/Sonic-DE/%{reponame}
#Source0: https://download.kde.org/%%{stable_kf6}/plasma/%%{version}/%%{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}/%%{name}-%%{version}.tar.xz.sig
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
# ffmpeg8 compat patch not needed; the fork works with ffmpeg 7.x in EPEL10
2026-08-25 01:26:42 +02:00
# Compile Tools
BuildRequires: cmake
BuildRequires: gcc-c++
# Fedora
BuildRequires: sonic-rpm-macros
Requires: kf6-filesystem
# KDE Frameworks
BuildRequires: sonic-frameworks-cmake-modules
BuildRequires: cmake(KF6CoreAddons)
BuildRequires: cmake(KF6I18n)
# Misc
BuildRequires: libdrm-devel
BuildRequires: libepoxy-devel
BuildRequires: mesa-libgbm-devel
BuildRequires: pipewire-devel
BuildRequires: wayland-devel
BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavfilter)
BuildRequires: pkgconfig(libavformat)
BuildRequires: pkgconfig(libavutil)
BuildRequires: pkgconfig(libswscale)
BuildRequires: pkgconfig(libva)
# Plasma
BuildRequires: plasma-wayland-protocols-devel
# Qt
BuildRequires: qt6-qtbase-devel
BuildRequires: qt6-qtbase-private-devel
BuildRequires: qt6-qtdeclarative-devel
BuildRequires: qt6-qtwayland-devel
Provides: kpipewire = %{version}-%{release}
Conflicts: kpipewire < %{version}-%{release}
%description
It is developed in C++ and it's main use target is QML components.
As it's what's been useful, this framework focuses on graphical PipeWire
features. If it was necessary, these could be included.
At the moment we offer two main components:
- KPipeWire: offers the main components to connect to and render
PipeWire into your app.
- KPipeWireRecord: using FFmpeg, helps to record a PipeWire video stream
into a file.
%package devel
Summary: Development files for %{name}
# This requires pipewire headers to be installed
Requires: pipewire-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
Provides: kpipewire-devel = %{version}-%{release}
Provides: kpipewire-devel%{?_isa} = %{version}-%{release}
Obsoletes: kpipewire-devel <= 1:5.2.0
Provides: kpipewire-devel = %{version}-%{release}
Conflicts: kpipewire-devel < %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%prep
%autosetup -p1 -n %{reponame}-%{version}
%build
%cmake_kf6
%cmake_build
%install
%cmake_install
%find_lang %{oldname} --with-qt --all-name
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
%files -f %{oldname}.lang
2026-08-25 01:26:42 +02:00
%license LICENSES/*
%{_libdir}/libKPipeWire.so.6
%{_libdir}/libKPipeWire.so.%{version}
%{_libdir}/libKPipeWireRecord.so.6
%{_libdir}/libKPipeWireRecord.so.%{version}
%{_libdir}/libKPipeWireDmaBuf.so.6
%{_libdir}/libKPipeWireDmaBuf.so.%{version}
%{_qt6_qmldir}/org/kde/pipewire/*
%{_kf6_datadir}/qlogging-categories6/*.categories
%files devel
%{_libdir}/libKPipeWire.so
%{_libdir}/libKPipeWireRecord.so
%{_libdir}/libKPipeWireDmaBuf.so
%dir %{_includedir}/KPipeWire
%{_includedir}/KPipeWire/*
%dir %{_libdir}/cmake/KPipeWire
%{_libdir}/cmake/KPipeWire/*.cmake
%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