Blame upmpdcli.spec

ba951c
#
ba951c
# spec file for package upmpdcli
ba951c
#
fd1885
# Copyright (c) 2023 SUSE LLC
ba951c
#
ba951c
# All modifications and additions to the file contributed by third parties
ba951c
# remain the property of their copyright owners, unless otherwise agreed
ba951c
# upon. The license for this file, and modifications and additions to the
ba951c
# file, is the same license as for the pristine package itself (unless the
ba951c
# license for the pristine package is not an Open Source License, in which
ba951c
# case the license is the MIT License). An "Open Source License" is a
ba951c
# license that conforms to the Open Source Definition (Version 1.9)
ba951c
# published by the Open Source Initiative.
ba951c
ba951c
# Please submit bugfixes or comments via https://bugs.opensuse.org/
ba951c
#
ba951c
ba951c
ba951c
Name:           upmpdcli
Bernhard M. Wiedemann 541fcc
Version:        1.8.6
ba951c
Release:        0
Bernhard M. Wiedemann 541fcc
Summary:        UPnP AV and OpenHome Media Renderer front-end to MPD, the Music Player Daemon
ba951c
License:        GPL-2.0-or-later
ba951c
URL:            https://www.lesbonscomptes.com/updmpdcli
ba951c
Source0:        https://www.lesbonscomptes.com/upmpdcli/downloads/upmpdcli-%{version}.tar.gz
81c23c
Source1:        https://www.lesbonscomptes.com/upmpdcli/downloads/upmpdcli-%{version}.tar.gz.asc
81c23c
Source2:        https://www.lesbonscomptes.com/pages/jf-at-dockes.org.pub#/%{name}.keyring
72f8c9
Patch0:         harden_upmpdcli.service.patch
ba951c
BuildRequires:  gcc-c++
ba951c
BuildRequires:  pkgconfig
ba951c
BuildRequires:  systemd-rpm-macros
f32dfb
BuildRequires:  group(audio)
Bernhard M. Wiedemann 541fcc
BuildRequires:  pkgconfig(expat)
ba951c
BuildRequires:  pkgconfig(jsoncpp)
Bernhard M. Wiedemann 541fcc
BuildRequires:  pkgconfig(libcurl)
ba951c
BuildRequires:  pkgconfig(libmicrohttpd)
ba951c
BuildRequires:  pkgconfig(libmpdclient)
ba951c
BuildRequires:  pkgconfig(libnpupnp)
Bernhard M. Wiedemann 541fcc
BuildRequires:  pkgconfig(libupnpp) >= 0.24.1
Bernhard M. Wiedemann 541fcc
Requires:       python3-requests
ba951c
Requires(pre):  group(audio)
ba951c
Requires(pre):  shadow
Bernhard M. Wiedemann 541fcc
Suggests:       %{name}-bbc
Bernhard M. Wiedemann 541fcc
Suggests:       %{name}-hra
Bernhard M. Wiedemann 541fcc
Suggests:       %{name}-mother-earth-radio
Bernhard M. Wiedemann 541fcc
Suggests:       %{name}-radio-browser
Bernhard M. Wiedemann 541fcc
Suggests:       %{name}-radio-paradise
Bernhard M. Wiedemann 541fcc
Suggests:       %{name}-radios
Bernhard M. Wiedemann 541fcc
Suggests:       %{name}-subsonic
Bernhard M. Wiedemann 541fcc
Suggests:       %{name}-tidal
ba951c
%{?systemd_ordering}
ba951c
ba951c
%description
Bernhard M. Wiedemann 541fcc
Upmpdcli turns MPD, the Music Player Daemon into an UPnP AV and/or OpenHome Media Renderer
Bernhard M. Wiedemann 541fcc
remotely controllable by most UPnP/DLNA/OpenHome Control Point apps (notably on mobile devices).
Bernhard M. Wiedemann 541fcc
It can also operate as an UPnP/DLNA Media Server to give access to various online audio content via plugins available as optional packages.
ba951c
ba951c
%prep
9b719b
%autosetup -p1
ba951c
ba951c
%build
Bernhard M. Wiedemann 541fcc
export QMAKE=qmake-qt5
Bernhard M. Wiedemann 541fcc
%configure --enable-confgui
ba951c
%make_build
ba951c
ba951c
%install
ba951c
%make_install
ba951c
install -D -m 644 systemd/upmpdcli.service %{buildroot}%{_unitdir}/upmpdcli.service
ba951c
mkdir -p %{buildroot}/%{_sbindir}
ba951c
ln -s service %{buildroot}/%{_sbindir}/rcupmpdcli
ba951c
ba951c
%files
ba951c
%license COPYING
ba951c
%doc AUTHORS
ba951c
%{_bindir}/%{name}
ba951c
%{_bindir}/scctl
Bernhard M. Wiedemann 541fcc
%dir %{_datadir}/%{name}
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/AVTransport.xml
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/Analog-Input
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/ConnectionManager.xml
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/ContentDirectory.xml
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/MS-description.xml
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/OHCredentials.xml
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/OHInfo.xml
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/OHPlaylist.xml
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/OHProduct.xml
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/OHRadio.xml
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/OHReceiver.xml
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/OHTime.xml
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/OHVolume.xml
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/RenderingControl.xml
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/cdplugins/pycommon
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/description.xml
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/icon.png
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/presentation.html
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/protocolinfo.txt
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/radio_scripts
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/rdpl2stream
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/src_scripts
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/upmpdcli.conf-dist
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/upmpdcli.conf-xml
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/web
Bernhard M. Wiedemann 541fcc
%dir %{_datadir}/%{name}/cdplugins
Bernhard M. Wiedemann 541fcc
# don't package qobuz as plugin because it is also required for providing OpenHome Credentials Qobuz functionality
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/cdplugins/qobuz
ba951c
%{_mandir}/man1/%{name}.1%{?ext_man}
ba951c
%{_unitdir}/upmpdcli.service
ba951c
%{_sbindir}/rcupmpdcli
ba951c
%config(noreplace) %{_sysconfdir}/upmpdcli.conf
ba951c
ba951c
%pre
ba951c
getent passwd upmpdcli >/dev/null || useradd -r -g audio -d /nonexistent -s /sbin/nologin -c "user for upmpdcli" upmpdcli
ba951c
%service_add_pre upmpdcli.service
ba951c
ba951c
%post
ba951c
%service_add_post upmpdcli.service
ba951c
ba951c
%preun
ba951c
%service_del_preun upmpdcli.service
ba951c
ba951c
%postun
ba951c
%service_del_postun upmpdcli.service
ba951c
Bernhard M. Wiedemann 541fcc
####
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%package config
Bernhard M. Wiedemann 541fcc
Summary:        GUI configuration editor for upmpdcli
Bernhard M. Wiedemann 541fcc
BuildRequires:  pkgconfig
Bernhard M. Wiedemann 541fcc
BuildRequires:  pkgconfig(Qt5Widgets)
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%description config
Bernhard M. Wiedemann 541fcc
QT-based GUI for editing upmpdcli configuration files.
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%files config
Bernhard M. Wiedemann 541fcc
%{_bindir}/upmpdcli-config
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
########## MEDIA SERVER PLUGINS
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%package bbc
Bernhard M. Wiedemann 541fcc
Summary:        BBC radio media server plugin for upmpdcli
Bernhard M. Wiedemann 541fcc
Requires:       python3-beautifulsoup4
Bernhard M. Wiedemann 541fcc
Requires:       python3-dateutil
Bernhard M. Wiedemann 541fcc
Requires:       python3-feedparser
Bernhard M. Wiedemann 541fcc
Requires:       upmpdcli = %{version}
Bernhard M. Wiedemann 541fcc
BuildArch:      noarch
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%description bbc
Bernhard M. Wiedemann 541fcc
Media Server plugin providing access to BBC radio streams.
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%files bbc
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/cdplugins/bbc
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%package hra
Bernhard M. Wiedemann 541fcc
Summary:        HIGHRESAUDIO media server plugin for upmpdcli
Bernhard M. Wiedemann 541fcc
Requires:       python3-requests
Bernhard M. Wiedemann 541fcc
Requires:       upmpdcli = %{version}
Bernhard M. Wiedemann 541fcc
BuildArch:      noarch
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%description hra
Bernhard M. Wiedemann 541fcc
Media Server plugin providing access to the HIGHRESAUDIO
Bernhard M. Wiedemann 541fcc
music streaming service (https://www.highresaudio.com/en).
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%files hra
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/cdplugins/hra
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
####
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%package mother-earth-radio
Bernhard M. Wiedemann 541fcc
Summary:        Mother Earth Radio media server plugin for upmpdcli
Bernhard M. Wiedemann 541fcc
Requires:       python3-requests
Bernhard M. Wiedemann 541fcc
Requires:       upmpdcli = %{version}
Bernhard M. Wiedemann 541fcc
BuildArch:      noarch
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%description mother-earth-radio
Bernhard M. Wiedemann 541fcc
Media Server plugin providing access to Mother Earth Radio streams.
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%files mother-earth-radio
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/cdplugins/mother-earth-radio
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
####
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%package radio-browser
Bernhard M. Wiedemann 541fcc
Summary:        https://radio-browser.info media server plugin for upmpdcli
Bernhard M. Wiedemann 541fcc
Requires:       python3-requests
Bernhard M. Wiedemann 541fcc
Requires:       upmpdcli = %{version}
Bernhard M. Wiedemann 541fcc
BuildArch:      noarch
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%description radio-browser
Bernhard M. Wiedemann 541fcc
Media Server plugin providing access to the radio-browser site catalog
Bernhard M. Wiedemann 541fcc
(https://radio-browser.info)
Bernhard M. Wiedemann 541fcc
You will need to install the pyradios Python3 module with pip3.
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%files radio-browser
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/cdplugins/radio-browser
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
####
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%package radio-paradise
Bernhard M. Wiedemann 541fcc
Summary:        Radio Paradise media server plugin for upmpdcli
Bernhard M. Wiedemann 541fcc
Requires:       python3-requests
Bernhard M. Wiedemann 541fcc
Requires:       upmpdcli = %{version}
Bernhard M. Wiedemann 541fcc
BuildArch:      noarch
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%description radio-paradise
Bernhard M. Wiedemann 541fcc
Media Server plugin providing access to the Radio Paradise streams.
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%files radio-paradise
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/cdplugins/radio-paradise
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
####
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%package subsonic
Bernhard M. Wiedemann 541fcc
Summary:        Subsonic media server plugin for upmpdcli
Bernhard M. Wiedemann 541fcc
Requires:       upmpdcli = %{version}
Bernhard M. Wiedemann 541fcc
BuildArch:      noarch
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%description subsonic
Bernhard M. Wiedemann 541fcc
Media Server plugin providing access to a Subsonic or Navidrome server.
Bernhard M. Wiedemann 541fcc
It needs the installation of the subsonic-connector (version 0.3.1)
Bernhard M. Wiedemann 541fcc
and py-sonic (version 1.0.0) Python modules (not packaged, use Pypi).
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%files subsonic
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/cdplugins/subsonic
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
####
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%package tidal
Bernhard M. Wiedemann 541fcc
Summary:        TIDAL media server plugin for upmpdcli
Bernhard M. Wiedemann 541fcc
Requires:       python3-requests
Bernhard M. Wiedemann 541fcc
Requires:       upmpdcli = %{version}
Bernhard M. Wiedemann 541fcc
BuildArch:      noarch
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%description tidal
Bernhard M. Wiedemann 541fcc
Media Server plugin providing access to the TIDAL music streaming service.
Bernhard M. Wiedemann 541fcc
You will need to install the tidalapi Python3 module with pip3.
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%files tidal
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/cdplugins/tidal
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
####
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%package radios
Bernhard M. Wiedemann 541fcc
Summary:        OpenHome Radio Service media server plugin for upmpdcli
Bernhard M. Wiedemann 541fcc
Requires:       python3-requests
Bernhard M. Wiedemann 541fcc
Requires:       upmpdcli = %{version}
Bernhard M. Wiedemann 541fcc
BuildArch:      noarch
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%description radios
Bernhard M. Wiedemann 541fcc
Media Server plugin providing access to radios managed by the OpenHome Radio Service.
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%files radios
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/cdplugins/upradios
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
####
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%package uprcl
Bernhard M. Wiedemann 541fcc
Summary:        Recoll media server plugin for upmpdcli
Bernhard M. Wiedemann 541fcc
Requires:       python3-mutagen
Bernhard M. Wiedemann 541fcc
Requires:       python3-requests
Bernhard M. Wiedemann 541fcc
Requires:       python3-waitress
Bernhard M. Wiedemann 541fcc
Requires:       upmpdcli = %{version}
Bernhard M. Wiedemann 541fcc
BuildArch:      noarch
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%description uprcl
Bernhard M. Wiedemann 541fcc
Media Server plugin providing access to Recoll indexed media.
Bernhard M. Wiedemann 541fcc
For use with recoll package found in KDE:Extra
Bernhard M. Wiedemann 541fcc
Bernhard M. Wiedemann 541fcc
%files uprcl
Bernhard M. Wiedemann 541fcc
%{_datadir}/%{name}/cdplugins/uprcl
Bernhard M. Wiedemann 541fcc
ba951c
%changelog