liquidsoap/liquidsoap.spec

349 lines
11 KiB
RPMSpec
Raw Normal View History

Name: liquidsoap
Version: 2.0.2
Release: 1mamba
Summary: Audio toolkit for streaming, aiming at complex Internet radio systems
Group: Applications/Multimedia
Vendor: openmamba
Distribution: openmamba
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: http://savonet.sourceforge.net/
Source0: https://github.com/savonet/liquidsoap.git/v%{version}/liquidsoap-%{version}.tar.bz2
Source1: liquidsoap.service
Source2: liquidsoap.tmpfilesd
License: GPL, LGPL
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: libX11-devel
BuildRequires: libalsa-devel
BuildRequires: libao-devel
BuildRequires: libavcodec-ffmpeg-devel
BuildRequires: libavdevice-ffmpeg-devel
BuildRequires: libavfilter-ffmpeg-devel
BuildRequires: libavformat-ffmpeg-devel
BuildRequires: libavutil-ffmpeg-devel
BuildRequires: libcurl-devel
BuildRequires: libfaad2-devel
BuildRequires: libflac-devel
BuildRequires: libgcc
BuildRequires: libglib-devel
BuildRequires: libgst-plugins-base-devel
BuildRequires: libgstreamer-devel
BuildRequires: liblame-devel
BuildRequires: libmad-devel
BuildRequires: libogg-devel
BuildRequires: libopenssl-devel
BuildRequires: libopus-devel
BuildRequires: libpcre-devel
BuildRequires: libpulseaudio-devel
BuildRequires: libsamplerate-devel
BuildRequires: libshine-devel
BuildRequires: libspeex-devel
BuildRequires: libsrt-devel
BuildRequires: libstdc++6-devel
BuildRequires: libswresample-ffmpeg-devel
BuildRequires: libswscale-ffmpeg-devel
BuildRequires: libtag-devel
BuildRequires: libtheora-devel
BuildRequires: libvorbis-devel
BuildRequires: libz-devel
## AUTOBUILDREQ-END
%ifnarch arm aarch64
BuildRequires: ghc-pandoc
%endif
BuildRequires: camlidl
BuildRequires: ocaml >= 4.00.1
BuildRequires: ocaml-findlib
BuildRequires: ocaml-dtools-devel
BuildRequires: ocaml-duppy-devel
BuildRequires: ocaml-camomile-devel
BuildRequires: ocaml-cry-devel
BuildRequires: ocaml-faad-devel
BuildRequires: ocaml-ffmpeg-devel
BuildRequires: ocaml-flac-devel
BuildRequires: ocaml-lame-devel
BuildRequires: ocaml-mad-devel
BuildRequires: ocaml-menhir-devel <= 20211128
BuildRequires: ocaml-mm-devel
BuildRequires: ocaml-pcre-devel
BuildRequires: ocaml-samplerate-devel
BuildRequires: ocaml-sdl-devel
BuildRequires: ocaml-sedlex-devel
BuildRequires: ocaml-shine-devel
BuildRequires: ocaml-speex-devel
BuildRequires: ocaml-srt-devel
BuildRequires: ocaml-taglib-devel
BuildRequires: ocaml-voaacenc-devel
BuildRequires: ocaml-vorbis-devel
BuildRequires: ocaml-xmlm-devel
BuildRequires: ocaml-xmlplaylist-devel
# note: festival provides text2wave
BuildRequires: festival
#BuildRequires: python-devel
#BuildRequires: pygtk
BuildRequires: sox
BuildRequires: dejavu-fonts-ttf
Requires: festival
Requires: sox
Requires: vorbis-tools
#Requires: mp3gain
#Requires: vorbisgain
Requires: ocaml-alsa
Requires: ocaml-ao
#Requires: ocaml-bjack
Requires: ocaml-camomile
Requires: ocaml-cry
#Requires: ocaml-dssi
Requires: ocaml-dtools
Requires: ocaml-duppy
Requires: ocaml-faad
#Requires: ocaml-fdkaac
Requires: ocaml-ffmpeg
Requires: ocaml-flac
#Requires: ocaml-frei0r
#Requires: ocaml-gavl
#Requires: ocaml-gd4o
Requires: ocaml-gstreamer
#Requires: ocaml-inotify
#Requires: ocaml-yojson
#Requires: ocaml-ladspa
Requires: ocaml-lame
Requires: ocaml-lastfm
#Requires: ocaml-lo
Requires: ocaml-mad
#Requires: ocaml-magic
Requires: ocaml-menhir <= 20211128
Requires: ocaml-mm
Requires: ocaml-ogg
Requires: ocaml-opus
Requires: ocaml-pulseaudio
Requires: ocaml-samplerate
Requires: ocaml-sdl
Requires: ocaml-sedlex
Requires: ocaml-shine
#Requires: ocaml-soundtouch
Requires: ocaml-speex
Requires: ocaml-taglib
Requires: ocaml-theora
Requires: ocaml-vorbis
Requires: ocaml-xmlplaylist
%description
Liquidsoap is a powerful and flexible language for describing your streams.
It offers a rich collection of operators that you can combine at will, giving you more power than you need for creating or transforming streams.
But liquidsoap is still very light and easy to use, in the Unix tradition of simple strong components working together.
Some examples of what you can do using Liquidsoap:
* static or dynamic playlists
* time-based selection of the audio source
* quota- or time-based insertions or mixes of jingles
* live DJ interventions
* interactive user requests
* fully-customizable transitions, e.g. crossfading
* speech-synthesis of track metadata
* simple access to remote files
* and much more!
%package -n liguidsoap
Group: Graphical Desktop/Applications/Multimedia
Summary: Control GUI for liguidsoap
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
Requires: python
Requires: pygtk
Requires: dejavu-fonts-ttf
%description -n liguidsoap
Liguidsoap is a GUI for controlling liquidsoap, using pyGTK.
%package docs
Group: Documentation
Summary: Documentation for Liquidsoap
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
%description docs
Liquidsoap is a powerful and flexible language for describing your streams.
This package contains documentation in HTML format.
%debug_package
%prep
%setup -q
#-D -T
#:<< _EOF
./bootstrap
%build
#:<< _EOF
./configure \
--prefix=%{_prefix} \
--localstatedir=%{_localstatedir} \
--sysconfdir=%{_sysconfdir} \
--without-user --without-group \
--with-bash-completion-dir="%{buildroot}%{_datadir}/bash-completion/completions" \
--with-default-font=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
# -or- /usr/share/fonts/truetype/ttf-liberation/LiberationSans-Regular.ttf
%make all
# FIXME: requires updating ghc-pandoc
%make doc || true
%install
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
export OCAMLFIND_DESTDIR=%{buildroot}$(ocamlfind printconf destdir)
export INSTALL_DAEMON=no
install -d $OCAMLFIND_DESTDIR
%makeinstall \
prefix=%{buildroot}%{_prefix} \
libdir=%{buildroot}%{_libdir} \
sysconfdir=%{buildroot}%{_sysconfdir}
# install the systemd service for liquidsoap
# NOTE: the at sign in the service is what makes SystemD so interesting for liquidsoap.
# It means that everything placed behind the @ sign is sent to liquidsoap as a parameter.
# starting liquidsoap@foo.service executes liquidsoap --quiet /etc/liquidsoap/foo.liq,
install -D -m 0644 %{S:1} %{buildroot}%{_unitdir}/%{name}@.service
install -D -m 0644 %{S:2} %{buildroot}%{_tmpfilesdir}/%{name}.conf
# create the required folders
install -d %{buildroot}%{_localstatedir}/log/liquidsoap
#install -d %{buildroot}%{_localstatedir}/run/liquidsoap
## remove unpackaged file
#rm -f %{buildroot}%{_sysconfdir}/liquidsoap/radio.liq.example
#rm -fr %{buildroot}%{_datadir}/doc
%clean
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
%pre
if ! getent group liquidsoap >/dev/null 2>&1; then
/usr/sbin/groupadd --system liquidsoap # >/dev/null 2>&1
fi
if ! id liquidsoap >/dev/null 2>&1; then
/usr/sbin/useradd --system -s /bin/false -d %{_localstatedir}/empty \
-c 'Liquidsoap user' -g liquidsoap liquidsoap # >/dev/null 2>&1
fi
:
%postun
if [ $1 -eq 0 ]; then
# /sbin/service <daemon_name> stop >/dev/null 2>&1
/usr/sbin/userdel liquidsoap # >/dev/null 2>&1
/usr/sbin/groupdel liquidsoap # >/dev/null 2>&1
fi
:
%files
%defattr(-,root,root)
%dir %{_sysconfdir}/liquidsoap
%{_sysconfdir}/liquidsoap/radio.liq.example
%{_sysconfdir}/logrotate.d/liquidsoap
%{_bindir}/liquidsoap
%dir %{_datadir}/liquidsoap
%dir %{_datadir}/liquidsoap/%{version}
%{_datadir}/liquidsoap/%{version}/*
#%dir %{_libdir}/liquidsoap
#%dir %{_libdir}/liquidsoap/%{version}
#%{_libdir}/liquidsoap/%{version}/externals.liq
#%{_libdir}/liquidsoap/%{version}/extract-replaygain
#%{_libdir}/liquidsoap/%{version}/flows.liq
#%{_libdir}/liquidsoap/%{version}/gstreamer.liq
#%{_libdir}/liquidsoap/%{version}/http.liq
#%{_libdir}/liquidsoap/%{version}/http_codes.liq
#%{_libdir}/liquidsoap/%{version}/lastfm.liq
#%{_libdir}/liquidsoap/%{version}/liquidtts
#%{_libdir}/liquidsoap/%{version}/pervasives.liq
#%{_libdir}/liquidsoap/%{version}/shoutcast.liq
#%{_libdir}/liquidsoap/%{version}/utils.liq
#%{_libdir}/liquidsoap/%{version}/video.liq
##%{_libdir}/liquidsoap/%{version}/video_text.liq
##
#%dir %{_libdir}/liquidsoap/%{version}/plugins
#%{_libdir}/liquidsoap/%{version}/plugins/alsa.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/ao.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/cry.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/faad.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/ffmpeg.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/flac.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/flac_ogg.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/graphics.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/gstreamer.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/lame.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/mad.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/oss.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/samplerate.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/schroedinger.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/sdl.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/shine.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/speex.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/taglib.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/theora.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/voaacenc.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/vorbis.cmxs
#%{_libdir}/liquidsoap/%{version}/plugins/xmlplaylist.cmxs
##
%{_datadir}/bash-completion/completions/liquidsoap
%dir %{_datadir}/emacs/site-lisp/liquidsoap-mode
%{_datadir}/emacs/site-lisp/liquidsoap-mode/liquidsoap-mode.el
%{_unitdir}/%{name}@.service
%{_tmpfilesdir}/%{name}.conf
%dir %attr(755,liquidsoap,liquidsoap) %{_localstatedir}/log/liquidsoap
%ifnarch arm aarch64
%{_mandir}/man1/liquidsoap.*
%endif
%doc examples
#%files -n liguidsoap
#%defattr(-,root,root)
#%{_bindir}/liguidsoap
#%dir %{python_sitearch}/liquidsoap
#%{python_sitearch}/liquidsoap/client.py
#%{python_sitearch}/liquidsoap/editable.py
#%{python_sitearch}/liquidsoap/liguidsoap.py
#%{python_sitearch}/liquidsoap/mix.py
#%{python_sitearch}/liquidsoap/output.py
#%{python_sitearch}/liquidsoap/playlist.py
#%{python_sitearch}/liquidsoap/queue.py
#%{python_sitearch}/liquidsoap/widgets.py
#%{_mandir}/man1/liguidsoap.*
#%files docs
#%defattr(-,root,root)
#%doc doc/html
%changelog
* Fri Feb 04 2022 Silvan Calarco <silvan.calarco@mambasoft.it> 2.0.2-1mamba
- update to 2.0.2
* Sat Jul 20 2013 openmamba WebBuild System <webbuild@openmamba.org> 1.1.1-8mamba
- do not require ocaml; liquidsoap is compiled with the OCaml native compiler
* Mon Jul 01 2013 Automatic Build System <autodist@mambasoft.it> 1.1.1-7mamba
- arm: rebuilt after fixing ocaml (rpi)
* Sat Jun 29 2013 Davide Madrisan <davide.madrisan@gmail.com> 1.1.1-6mamba
- build the dynamic ocaml plugins ffmpeg, samplerate, and taglib
* Thu Jun 27 2013 Davide Madrisan <davide.madrisan@gmail.com> 1.1.1-5mamba
- build ocaml shine and voaacenc as dynamic plugins
* Thu Jun 27 2013 Davide Madrisan <davide.madrisan@gmail.com> 1.1.1-4mamba
- requires festival, sox, and ocaml-camomile
- rebuild againt ocaml-shine and ocaml-voaacenc
* Wed Jun 26 2013 Davide Madrisan <davide.madrisan@gmail.com> 1.1.1-3mamba
- enable support for icecast/shoutcas
- package all the liquidsoap extensions as dynamic plugins
* Tue Jun 25 2013 Davide Madrisan <davide.madrisan@gmail.com> 1.1.1-2mamba
- add the subpackages liguidsoap and docs
* Sat Jun 22 2013 Davide Madrisan <davide.madrisan@gmail.com> 1.1.1-1mamba
- update to 1.1.1
* Fri Jan 11 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 1.0.1-1mamba
- package created by silvan using the webbuild interface