File ctune.spec of Package ctune
#
# spec file for package ctune
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: ctune
Version: @SERVICE@
Release: 0
Summary: NCurses internet radio player for Linux
License: AGPL-3.0-or-later
Group: Productivity/Multimedia/Sound/Players
URL: https://github.com/An7ar35/ctune
Source0: %{name}-%{version}.tar.xz
Patch0: disable_git_clone_json-c.patch
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: hicolor-icon-theme
BuildRequires: ninja
BuildRequires: pandoc
BuildRequires: pkgconfig
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(json-c)
#uildRequires: pkgconfig(lame)
BuildRequires: libmp3lame-devel
BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavdevice)
BuildRequires: pkgconfig(libavfilter)
BuildRequires: pkgconfig(libavformat)
BuildRequires: pkgconfig(libavutil)
BuildRequires: pkgconfig(libbsd)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libpipewire-0.3)
BuildRequires: pkgconfig(libpostproc)
BuildRequires: pkgconfig(libspa-0.2)
BuildRequires: pkgconfig(libswresample)
BuildRequires: pkgconfig(libswscale)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libvlc)
BuildRequires: pkgconfig(ncurses)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(sdl2)
#uildRequires: pkgconfig(sndio)
BuildRequires: sndio-devel
BuildRequires: pkgconfig(uuid)
Requires: %{name}-plugin-ffmpeg
Requires: %{name}-plugin-lame
Requires: %{name}-plugin-pulse
Suggests: %{name}-plugin-vlc
Suggests: %{name}-plugin-alsa
Suggests: %{name}-plugin-pipewire
Suggests: %{name}-plugin-sdl
Suggests: %{name}-plugin-sndio
Suggests: %{name}-plugin-wave
%description
cTune is a ncurses based internet radio player written in C for Linux.
Aside from playing a radio stream you can search and browse stations as
well as keep a list of favourites.
It uses the RadioBrowser API to search and get radio stream information.
Features
* Play/search/browse radio stations using the RadioBrowser API
* Favourite stations from search/browse results
* Add/Edit custom local-only stations to favourites
* Sort favourites based on name/country/bitrate/codec/source/etc...
* Context-based help for key bindings (F1 key).
* Plugin system for playback (demuxing/resampling) and sound output (PCM)
* UI Themes
* Mouse support
%package plugin-ffmpeg
Summary: Ffmpeg input plugin for %{name}
Requires: %{name} = %{version}-%{release}
%description plugin-ffmpeg
This package provides FFmpeg input support for the cTune.
%package plugin-vlc
Summary: VLC input plugin for %{name}
Requires: %{name} = %{version}-%{release}
%description plugin-vlc
This package provides VLC input support for the cTune.
%package plugin-alsa
Summary: ALSA output plugin for %{name}
Requires: %{name} = %{version}-%{release}
%description plugin-alsa
This package provides ALSA output support for the cTune.
%package plugin-lame
Summary: LAME MP3 encoder plugin for %{name}
Requires: %{name} = %{version}-%{release}
%description plugin-lame
This package provides plugin for recording currently played streams to mp3.
%package plugin-pipewire
Summary: PipeWire output plugin for %{name}
Requires: %{name} = %{version}-%{release}
%description plugin-pipewire
This package provides PipeWire output support for the cTune.
%package plugin-pulse
Summary: PulseAudio output plugin for %{name}
Requires: %{name} = %{version}-%{release}
%description plugin-pulse
This package provides PulseAudio output support for the cTune.
%package plugin-sdl
Summary: SDL output plugin for %{name}
Requires: %{name} = %{version}-%{release}
%description plugin-sdl
This package provides SDL output support for the cTune.
%package plugin-sndio
Summary: Sndio output plugin for %{name}
Requires: %{name} = %{version}-%{release}
%description plugin-sndio
Sndio is the default output for FreeBSD and is optional on Linux.
This package provides sndio output support for the cTune.
%package plugin-wave
Summary: WAV encoder plugin for %{name}
Requires: %{name} = %{version}-%{release}
%description plugin-wave
This package provides plugin for recording currently played streams to wav.
%package plugins-all
Summary: Installs all remaining %{name} plugins
Group: Productivity/Multimedia/Sound/Players
Requires: %{name} = %{version}-%{release}
Requires: %{name}-plugin-vlc = %{version}-%{release}
Requires: %{name}-plugin-alsa = %{version}-%{release}
Requires: %{name}-plugin-pipewire = %{version}-%{release}
Requires: %{name}-plugin-sdl = %{version}-%{release}
Requires: %{name}-plugin-sndio = %{version}-%{release}
Requires: %{name}-plugin-wave = %{version}-%{release}
BuildArch: noarch
%description plugins-all
This package pulls in all remaining the plugins for the cTune.
%prep
%autosetup -p1
%build
%define __builder ninja
%cmake
%cmake_build
%install
%cmake_install
install -dm 0755 %{buildroot}%{_mandir}/man1
mv %{buildroot}%{_mandir}/%{name}.1%{?ext_man} %{buildroot}%{_mandir}/man1/%{name}.1%{?ext_man}
%files
%doc README.md
%{_bindir}/%{name}
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/logger.so
%{_mandir}/man?/%{name}.?%{?ext_man}
%license LICENSE
%files plugin-ffmpeg
%dir %{_libdir}/%{name}/plugins
%dir %{_libdir}/%{name}/plugins/input
%{_libdir}/%{name}/plugins/input/ffmpeg.so
%files plugin-vlc
%dir %{_libdir}/%{name}/plugins
%dir %{_libdir}/%{name}/plugins/input
%{_libdir}/%{name}/plugins/input/vlc.so
%files plugin-alsa
%dir %{_libdir}/%{name}/plugins
%dir %{_libdir}/%{name}/plugins/output
%{_libdir}/%{name}/plugins/output/alsa.so
%files plugin-lame
%dir %{_libdir}/%{name}/plugins
%dir %{_libdir}/%{name}/plugins/output
%{_libdir}/%{name}/plugins/output/mp3lame.so
%files plugin-pipewire
%dir %{_libdir}/%{name}/plugins
%dir %{_libdir}/%{name}/plugins/output
%{_libdir}/%{name}/plugins/output/pipewire.so
%files plugin-pulse
%dir %{_libdir}/%{name}/plugins
%dir %{_libdir}/%{name}/plugins/output
%{_libdir}/%{name}/plugins/output/pulse.so
%files plugin-sdl
%dir %{_libdir}/%{name}/plugins
%dir %{_libdir}/%{name}/plugins/output
%{_libdir}/%{name}/plugins/output/sdl.so
%files plugin-sndio
%dir %{_libdir}/%{name}/plugins
%dir %{_libdir}/%{name}/plugins/output
%{_libdir}/%{name}/plugins/output/sndio.so
%files plugin-wave
%dir %{_libdir}/%{name}/plugins
%dir %{_libdir}/%{name}/plugins/output
%{_libdir}/%{name}/plugins/output/wave.so
%files plugins-all
%changelog