File radiotray-ng.spec of Package radiotray-ng
%define dont_strip 1
%define __strip /bin/true
Name: radiotray-ng
Version: 0.2.9
Release: Stan8
Summary: Internet radio player
License: GPL-3.0-or-later
URL: https://github.com/ebruck/radiotray-ng
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
Source2: http://rosalinux.cba.pl/store/%{name}/logos.tar.gz
Source3: bookmarks.json
# radiotray-ng-0.2.9/include/radiotray-ng/i_radiotray_ng.hpp:76:37:
# error: ‘uint32_t’ has not been declared
Patch0: radiotray-ng-0.2.9-include_cstdint.patch
# appindicator patch
Patch1: 0001-Fix-appindicator-deprecations.patch
BuildRequires: git-core
BuildRequires: cmake
BuildRequires: curl-devel
BuildRequires: gcc-c++
BuildRequires: lsb-release
BuildRequires: libboost_filesystem-devel
BuildRequires: libboost_log-devel
BuildRequires: libboost_program_options-devel
BuildRequires: libboost_system-devel
BuildRequires: libboost_thread-devel
BuildRequires: pkgconfig
BuildRequires: wxWidgets-devel
BuildRequires: pkgconfig(appindicator3-0.1)
BuildRequires: pkgconfig(giomm-2.4)
BuildRequires: pkgconfig(glibmm-2.4)
BuildRequires: pkgconfig(gstreamer-1.0)
BuildRequires: pkgconfig(jsoncpp)
BuildRequires: pkgconfig(libbsd)
BuildRequires: pkgconfig(libnotify)
BuildRequires: pkgconfig(libxdg-basedir)
BuildRequires: desktop-file-utils
BuildRequires: appstream-glib
Requires: hicolor-icon-theme
Obsoletes: radiotray < 0.2.8
Provides: radiotray
%description
%{summary}.
%prep
%autosetup -p 1
# Correct build flags
sed -i 's|-Wall -Wextra -Werror -Wpedantic|%{optflags}|' CMakeLists.txt
sed -i '/execute_process(COMMAND lsb_release/d' package/CMakeLists.txt
# Fix build with GCC 13
# https://github.com/ebruck/radiotray-ng/pull/193
sed -i "s|#include <string>|#include <string>\n#include <cstdint>|" include/radiotray-ng/i_config.hpp
%build
%cmake \
-DLSB_RELEASE_EXECUTABLE="lsb_release" \
-DDISTRIBUTOR_ID="fedora"
%cmake_build
%install
%cmake_install
# Remove autostart
# rm %{buildroot}%{_sysconfdir}/xdg/autostart/%{name}.desktop
# Remove themes
# rm -rf %{buildroot}%{_datadir}/icons/Yaru
# rm -rf %{buildroot}%{_datadir}/icons/breeze
# Remove self-installed license file
# rm %{buildroot}%{_datadir}/licences/%{name}/COPYING
#Remove unneeded script
# rm %{buildroot}%{_bindir}/rt2rtng
mkdir -p %{buildroot}%{_datadir}/%{name}/logos
tar -xf %{SOURCE2} -C %{buildroot}%{_datadir}/%{name}
rm %{buildroot}%{_datadir}/%{name}/bookmarks.json
install -m 0644 %{SOURCE3} %{buildroot}%{_datadir}/%{name}/bookmarks.json
# fix .desktop file
desktop-file-edit %{buildroot}%{_datadir}/applications/radiotray-ng.desktop \
--set-comment="Internet Radio Player" \
--set-icon=radiotray-ng-on
# another .desktop file with bad icon
desktop-file-edit %{buildroot}%{_datadir}/applications/rtng-bookmark-editor.desktop \
--set-icon=radiotray-ng-on
# yet another .desktop file with bad icon
desktop-file-edit %{buildroot}%{_sysconfdir}/xdg/autostart/radiotray-ng.desktop \
--set-icon=radiotray-ng-on
# install better app icons from ubuntu-mono-light
rm -rf %{buildroot}%{_iconsdir}/hicolor/*/apps/radiotray-ng-{on,off}.png
install -Dpm644 data/themes/ubuntu-mono-light/apps/24/radiotray-ng-off.svg \
%{buildroot}%{_iconsdir}/hicolor/scalable/apps/radiotray-ng-off.svg
install -Dpm644 data/themes/ubuntu-mono-light/apps/24/radiotray-ng-on.svg \
%{buildroot}%{_iconsdir}/hicolor/scalable/apps/radiotray-ng-on.svg
# we don't want these
rm -rf %{buildroot}%{_iconsdir}/ubuntu*
# handle docs in files section
rm -rf %{buildroot}%{_docdir}
rm -rf %{buildroot}%{_datadir}/licences
%check
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/%{name}.appdata.xml
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
desktop-file-validate %{buildroot}%{_datadir}/applications/rtng-bookmark-editor.desktop
%files
%license COPYING
%doc AUTHORS README.md
%{_datadir}/doc/radiotray-ng/
%{_datadir}/doc/radiotray-ng/*
%{_bindir}/%{name}
%{_bindir}/rt2rtng
%{_bindir}/rtng-bookmark-editor
%{_datadir}/applications/%{name}.desktop
%{_datadir}/applications/rtng-bookmark-editor.desktop
#{_datadir}/icons/hicolor/*/apps/*
%{_sysconfdir}/xdg/autostart/radiotray-ng.desktop
%{_iconsdir}/{hicolor,Yaru}/
%{_iconsdir}/{hicolor,Yaru}/*/
%{_iconsdir}/{hicolor,Yaru}/*/apps/
%{_iconsdir}/{hicolor,Yaru}/*/apps/radiotray-ng*.{png,svg}
%{_iconsdir}/breeze/
%{_iconsdir}/breeze/apps/
%{_iconsdir}/breeze/apps/*/
%{_iconsdir}/breeze/apps/*/radiotray-ng*.{png,svg}
%{_datadir}/metainfo/%{name}.appdata.xml
%{_datadir}/%{name}
%changelog