summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeonard de Ruijter2015-06-02 19:01:35 +0200
committerLeonard de Ruijter2015-06-09 08:43:13 +0200
commit45424e156f561eb3fdee22a81d07a02efb934d73 (patch)
treef7c2c95060951d7edbea5b1a593990f2950613c2
downloadaur-45424e156f561eb3fdee22a81d07a02efb934d73.tar.gz
Initial commit
-rw-r--r--.SRCINFO51
-rw-r--r--PACKAGES158
-rw-r--r--PKGBUILD44
-rw-r--r--liquidsoap.install34
-rw-r--r--liquidsoap.service15
-rw-r--r--liquidsoap.tmpfilesd1
6 files changed, 303 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..c3a6b43aa070
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,51 @@
+pkgbase = liquidsoap
+ pkgdesc = a swiss-army knife for multimedia streaming, notably used for netradios and webtvs
+ pkgver = 1.1.1
+ pkgrel = 4
+ url = http://savonet.sourceforge.net/
+ install = liquidsoap.install
+ arch = i686
+ arch = x86_64
+ license = GPL
+ makedepends = dssi
+ makedepends = frei0r-plugins
+ makedepends = ladspa
+ makedepends = libxml-perl
+ makedepends = ocaml-gd4o
+ makedepends = ocaml-includepatch
+ makedepends = ocaml-ocamlsdl
+ makedepends = ocaml-pcre
+ makedepends = ocaml-xmlm
+ makedepends = ocaml-yojson
+ makedepends = perl-xml-dom
+ depends = faad2
+ depends = ffmpeg
+ depends = gavl
+ depends = gd
+ depends = giflib
+ depends = gst-plugins-base-libs
+ depends = libao
+ depends = libfdk-aac
+ depends = liblo
+ depends = libmad
+ depends = libxpm
+ depends = ocaml-camomile
+ depends = portaudio
+ depends = sdl_image
+ depends = sdl_ttf
+ depends = soundtouch
+ depends = taglib
+ conflicts = liquidsoap-git
+ conflicts = liquidsoap-full
+ options = !makeflags
+ source = http://sourceforge.net/projects/savonet/files/liquidsoap/1.1.1/liquidsoap-1.1.1-full.tar.gz
+ source = PACKAGES
+ source = liquidsoap.service
+ source = liquidsoap.tmpfilesd
+ md5sums = db65ddb099526423cc19fb7283db8821
+ md5sums = 21d7e17ac7114edfd0a944c7773aa5af
+ md5sums = 762d6607ff0889e34b8c874970b38bc9
+ md5sums = f9106e5c42cabc21c4c8464d9b1ad63e
+
+pkgname = liquidsoap
+
diff --git a/PACKAGES b/PACKAGES
new file mode 100644
index 000000000000..2e2b73057b90
--- /dev/null
+++ b/PACKAGES
@@ -0,0 +1,158 @@
+# Edit this file by (un)commenting the libraries that you (don't) want to
+# build in order to get the corresponding features in liquidsoap.
+
+# The default file has every dependency enabled.
+# It is certain that you don't need everything.
+# If you don't know why you should have something, uncomment it,
+# especially if it does not build for some reason.
+
+# It is useless to add savonet packages that are not listed below,
+# like ocaml-fetch, ocaml-smbclient, etc. These are not dependencies of
+# liquidsoap.
+
+
+# ============================================================================
+# Input/output
+# ============================================================================
+
+# Cry is the lib for streaming to icecast and compatible servers.
+ocaml-cry
+
+# AO is portable and stable, but it does only output.
+ocaml-ao
+
+# Portaudio is a portable audio library with both input and output.
+ocaml-portaudio
+
+# ALSA is only for LINUX, and is sometimes not working.
+ocaml-alsa
+
+# PulseAudio is a cross-plateform audio sound server. It is intended to
+# be a single replacement for sound support under linux, windows or OSX.
+ocaml-pulseaudio
+
+# JACK is an audio connection kit, designed for low latency
+# and easy communication between audio applications.
+ocaml-bjack
+
+# Gstreamer is a library for constructing graphs of media-handling components.
+# It is currently used to provide audio and video encoding and decoding
+# as well as input and outputs such as V4l inputs.
+ocaml-gstreamer
+
+# ============================================================================
+# Codecs
+# ============================================================================
+
+# MAD is for MP3 decoding.
+ocaml-mad
+
+# TAGLIB is for MP3 ID3 tag reading
+ocaml-taglib
+
+# LAME is for MP3 encoding.
+ocaml-lame
+
+# SHINE is for fixed-point MP3 encoding.
+#ocaml-shine
+
+# AACPLUS is for AAC+ encoding.
+#ocaml-aacplus
+
+# OGG is for ogg/vorbis and ogg/theora encoding and decoding
+ocaml-ogg
+
+# VORBIS is for ogg/vorbis encoding and decoding.
+# you need ocaml-ogg to enable ocaml-vorbis.
+ocaml-vorbis
+
+# SPEEX is for ogg/speex encoding and decoding
+# you need ocaml-ogg to enable ocaml-speex
+ocaml-speex
+
+# THEORA is for ogg/theora encoding and decoding
+# you need ocaml-ogg to enable ocaml-theora
+ocaml-theora
+
+# OPUS is s a lossy audio compression format made especially
+# suitable for interactive real-time applications over the Internet.
+# you need ocaml-ogg to enable ocaml-opus
+ocaml-opus
+
+# SCHROEDINGER is for ogg/dirac encoding and decoding
+# you need ocaml-ogg to enable ocaml-schroedinger
+ocaml-schroedinger
+
+# VOAACENC is for AAC encoding.
+#ocaml-voaacenc
+
+# FDK-AAC is for AAC and AAC+ encoding
+ocaml-fdkaac
+
+# FAAD for AAC decoding.
+ocaml-faad
+
+# FLAC is for flac, native and/or ogg (if using ocaml-ogg)
+# format decoding and encoding.
+ocaml-flac
+
+# ============================================================================
+# Sound processing
+# ============================================================================
+
+# LADSPA are audio plugins providing sound effects
+ocaml-ladspa
+
+# SoundTouch is for changing pitch and tempo of sound
+ocaml-soundtouch
+
+# Samplerate is for having better quality resampling
+ocaml-samplerate
+
+# ============================================================================
+# Video processing
+# ============================================================================
+
+# GAVL converts from and to many formats,
+# is very efficient and has a quality setting for
+# tweaking load vs. quality of the conversion.
+# It is the recommended module to use with video
+ocaml-gavl
+
+# FFMPEG is currently only used to convert from
+# and to many formats.
+ocaml-ffmpeg
+
+# Frei0r is a minimalistic plugin API for video sources and filters.
+ocaml-frei0r
+
+# ============================================================================
+# Sound synthesis
+# ============================================================================
+
+# DSSI is a standard for synthesizer plugins
+ocaml-dssi
+
+# ============================================================================
+# Various modules
+# ============================================================================
+
+# Xmlplaylist allow support for various xml format, such as rss, podcast, etc..
+ocaml-xmlplaylist
+
+# Lastfm allow support for lastfm radios and the audioscrobbler protocol
+# It should be listed *after* ocaml-xmlplaylist in this file
+ocaml-lastfm
+
+# A library supporting the OSC protocol to have external controls
+# such as faders
+ocaml-lo
+
+# ============================================================================
+# Finally, the mandatory lib dtools, duppy and liquidsoap...
+# ============================================================================
+
+ocaml-dtools
+ocaml-duppy
+ocaml-mm
+liquidsoap
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..bcfe9a510a7a
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Leonard de Ruijter <leonard@aur.archlinux.org>
+pkgname=liquidsoap
+pkgver=1.1.1
+pkgrel=4
+pkgdesc="a swiss-army knife for multimedia streaming, notably used for netradios and webtvs"
+arch=('i686' 'x86_64')
+url="http://savonet.sourceforge.net/"
+license=('GPL')
+depends=('faad2' 'ffmpeg' 'gavl' 'gd' 'giflib' 'gst-plugins-base-libs' 'libao' 'libfdk-aac' 'liblo' 'libmad' 'libxpm'
+'ocaml-camomile' 'portaudio' 'sdl_image' 'sdl_ttf' 'soundtouch' 'taglib')
+makedepends=('dssi' 'frei0r-plugins' 'ladspa' 'libxml-perl' 'ocaml-gd4o' 'ocaml-includepatch' 'ocaml-ocamlsdl' 'ocaml-pcre' 'ocaml-xmlm' 'ocaml-yojson' 'perl-xml-dom')
+source=(http://sourceforge.net/projects/savonet/files/$pkgname/$pkgver/$pkgname-$pkgver-full.tar.gz
+PACKAGES
+$pkgname.service
+$pkgname.tmpfilesd)
+install=$pkgname.install
+options=(!makeflags)
+conflicts=('liquidsoap-git' 'liquidsoap-full')
+md5sums=('db65ddb099526423cc19fb7283db8821'
+ '21d7e17ac7114edfd0a944c7773aa5af'
+ '762d6607ff0889e34b8c874970b38bc9'
+ 'f9106e5c42cabc21c4c8464d9b1ad63e')
+
+prepare() {
+ cd $srcdir/$pkgname-$pkgver-full
+ cp $srcdir/PACKAGES PACKAGES
+}
+
+build() {
+ cd $srcdir/$pkgname-$pkgver-full
+ ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc --without-user --without-group
+ make all && make doc
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver-full
+ make DESTDIR="$pkgdir/" datadir="$pkgdir/usr/share/" mandir="$pkgdir/usr/share/man/" localstatedir="$pkgdir/var" bindir="$pkgdir/usr/bin/" libdir="$pkgdir/usr/lib/" sysconfdir="$pkgdir/etc/" install
+
+ # install systemd unit
+ install -Dm0644 "$srcdir/$pkgname.service" "$pkgdir/usr/lib/systemd/system/liquidsoap@.service"
+# Install the tmpfilesd file
+ install -Dm0644 $srcdir/$pkgname.tmpfilesd $pkgdir/usr/lib/tmpfiles.d/liquidsoap.conf
+}
+# vim:set ts=2 sw=2 et:
diff --git a/liquidsoap.install b/liquidsoap.install
new file mode 100644
index 000000000000..ac5bb3e8e186
--- /dev/null
+++ b/liquidsoap.install
@@ -0,0 +1,34 @@
+# arg 1: the new package version
+post_install() {
+ # Make sure the group and user "liquidsoap" exists on this system and have the correct values
+ if getent group liquidsoap &> /dev/null ; then
+ groupmod -g 140 -n liquidsoap liquidsoap &> /dev/null
+ else
+ groupadd -g 140 liquidsoap &> /dev/null
+ fi
+
+ if getent passwd liquidsoap &> /dev/null ; then
+ usermod -s /bin/false -c "liquidsoap user" -d /var/lib/liquidsoap -u 140 -g liquidsoap -G audio -a liquidsoap &> /dev/null
+ else
+ useradd -m -s /bin/false -c "liquidsoap user" -d /var/lib/liquidsoap -u 140 -g liquidsoap -G audio -r liquidsoap &> /dev/null
+ fi
+ # create the logs folder
+ install -do140 -g19 -m0755 /var/log/liquidsoap
+# Create /run/liquidsoap
+ if [[ ! -d run/liquidsoap ]]; then
+ usr/bin/systemd-tmpfiles --create liquidsoap.conf
+ fi
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+# arg 1: the old package version
+pre_remove() {
+ userdel liquidsoap &> /dev/null
+ groupdel liquidsoap &> /dev/null || /bin/true
+ rm -rf /var/log/liquidsoap/ &> /dev/null || /bin/true
+}
diff --git a/liquidsoap.service b/liquidsoap.service
new file mode 100644
index 000000000000..26eec12c616c
--- /dev/null
+++ b/liquidsoap.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Liquidsoap service for channel %I
+Documentation=man:liquidsoap(1)
+After=network.target
+ConditionPathExists=/etc/liquidsoap/%I.liq
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/liquidsoap --quiet /etc/liquidsoap/%I.liq
+User=liquidsoap
+Group=liquidsoap
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/liquidsoap.tmpfilesd b/liquidsoap.tmpfilesd
new file mode 100644
index 000000000000..dc3e02484ae6
--- /dev/null
+++ b/liquidsoap.tmpfilesd
@@ -0,0 +1 @@
+d /run/liquidsoap 755 liquidsoap liquidsoap -