summaryrefslogtreecommitdiff
path: root/libre/xmms2
diff options
context:
space:
mode:
authorOmar Vega Ramos <ovruni@gnu.org.pe>2015-10-22 12:34:03 -0500
committerOmar Vega Ramos <ovruni@gnu.org.pe>2015-10-22 12:34:03 -0500
commit908b7c065638f1431cffbedf4dd3fe77bf8816cc (patch)
treef126ea2d4849cefadc8af2ab7a7012944bdc9799 /libre/xmms2
parent388247147d50b30ad39c7716d1d815f1439c1d9b (diff)
xmms2: add new package to [libre]
Diffstat (limited to 'libre/xmms2')
-rw-r--r--libre/xmms2/PKGBUILD119
-rw-r--r--libre/xmms2/install.sh10
-rw-r--r--libre/xmms2/system.service17
-rw-r--r--libre/xmms2/tmpfiles.conf2
-rw-r--r--libre/xmms2/user.service13
5 files changed, 161 insertions, 0 deletions
diff --git a/libre/xmms2/PKGBUILD b/libre/xmms2/PKGBUILD
new file mode 100644
index 000000000..81515551a
--- /dev/null
+++ b/libre/xmms2/PKGBUILD
@@ -0,0 +1,119 @@
+# Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: (Arch) Storm Dragon <stormdragon2976@gmail.com>
+# Contributor (Arch): Aaron 'venisonslurpee' Laursen <venisonslurpee@gmail.com>
+# Contributor (Arch): Christopher Rosell <chrippa@tanuki.se>
+# Contributor (Arch): lh <jarryson@gmail.com>
+# Contributor (Arch): Sebastian Schwarz <seschwar@gmail.com>
+# Contributor (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor (Arch): Xilon <xilon@gmail.com>
+# Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>
+
+pkgname=xmms2
+pkgver=0.8DrO_o.882.g942b17f
+pkgrel=2.parabola1
+pkgdesc="X-platform Music Multiplexing System 2, without nonfree mac recommendation"
+arch=(i686 x86_64)
+url="https://xmms2.org/"
+license=(GPL LGPL)
+_depends=('alsa-lib: ALSA output'
+ 'avahi: announce xmms2d via bonjour/mDNS/zeroconf'
+ 'boost: C++ bindings'
+ 'curl: play HTTP streams'
+ 'cython: Python bindings'
+ 'faad2: AAC support'
+ 'ffmpeg: WMA, avcodec & avformat support'
+ 'fftw: visualization'
+ 'flac: FLAC support'
+ 'fluidsynth: MIDI support'
+ 'jack: JACK output'
+ 'libao: libao output'
+ 'libcdio-paranoia: CDDA support'
+ 'libdiscid: CDDA support'
+ 'libgme: support for various video game music formats'
+ 'libmad: MP3 support'
+ 'libmms: play MMS streams'
+ 'libmodplug: MOD support'
+ 'libmpcdec: Musepack support'
+ 'libofa: MusicDNS fingerprinting'
+ 'libsamplerate: vocoder support'
+ 'libshout: Icecast output'
+ 'libvorbis: Ogg Vorbis support'
+ 'libxml2: XSPF and podcast support'
+ 'mpg123: alternative MP3 support'
+ 'opusfile: Opus support'
+ 'perl: Perl bindings'
+ 'ruby: Ruby bindings'
+# 'sidplay2-libs: support for C64 music files'
+# we do not have sidplay 2 series in repos; also it's
+# somehow connected with resid i guess(not in repos also)
+ 'smbclient: direct CIFS/SMB access'
+ 'speex: Speex support'
+ 'wavpack: WavPack support')
+depends=(glib2 readline)
+makedepends=("${_depends[@]%%:*}" libpulse python2 git)
+optdepends=("${_depends[@]}" 'oss: OSS output' 'pulseaudio: PulseAudio output')
+provides=(xmms2)
+conflicts=(xmms2 xmms2-devel)
+install=install.sh
+source=(git://git.xmms2.org/xmms2/xmms2-devel.git
+ tmpfiles.conf
+ system.service
+ user.service)
+md5sums=('SKIP'
+ 'd3ab09ed8d1cf982468d1ceb141d4a9d'
+ '4b026ab80e853f24b5cf13b310afb83c'
+ 'f773f674882946065c02e36e9548eb00')
+
+pkgver() {
+ cd "$srcdir/xmms2-devel"
+ git describe --always | sed 's/-/./g'
+}
+
+prepare() {
+ cd "$srcdir/xmms2-devel"
+ git submodule update --init
+ sed -i '$a#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 /* 1 second of 48kHz 32bit audio */' src/plugins/avcodec/avcodec_compat.h
+ sed -i 's,#include <cdio/cdda.h>,#include <cdio/paranoia/cdda.h>,' src/plugins/cdda/cdda.c
+ sed -i 's,libsmbclient.h,samba-4.0/libsmbclient.h,' src/plugins/samba/{samba.c,wscript}
+ sed -i 's|Werror|Wno-error|g' waftools/*.py
+}
+
+build() {
+ cd "$srcdir/xmms2-devel"
+ CXXFLAGS="-Wall" CFLAGS="-Wall" ./waf configure --prefix=/usr --sbindir=/usr/bin --without-ldconfig \
+ --with-ruby-archdir=`ruby -e 'puts RbConfig::CONFIG["vendorarchdir"]'` \
+ --with-ruby-libdir=`ruby -e 'puts RbConfig::CONFIG["vendorlibdir"]'` \
+ --with-perl-archdir=`perl -V:installvendorarch | cut -f2 -d\'` \
+ --with-optionals=launcher,xmmsclient++,xmmsclient++-glib,perl,ruby,nycli,pixmaps,et,mdns,medialib-updater,sqlite2s4 \
+ --without-optionals=python
+ ./waf build
+}
+
+package() {
+ cd "$srcdir/xmms2-devel"
+ ./waf --destdir="$pkgdir" install
+ install -d -o46 -g46 "$pkgdir/var/lib/xmms2"
+ install -Dm0644 "$srcdir/tmpfiles.conf" \
+ "$pkgdir/usr/lib/tmpfiles.d/xmms2.conf"
+ install -Dm0644 "$srcdir/system.service" \
+ "$pkgdir/usr/lib/systemd/system/xmms2d.service"
+ install -Dm0644 "$srcdir/user.service" \
+ "$pkgdir/usr/lib/systemd/user/xmms2d.service"
+
+ [ -d $pkgdir/usr/lib64 ] && \
+ { mv $pkgdir/usr/lib64/* $pkgdir/usr/lib/; rmdir $pkgdir/usr/lib64; } || \
+ true
+
+ # also install python2 bindings
+ #./waf distclean
+ #PYTHON=/usr/bin/python2 ./waf configure --prefix=/usr --with-optionals=python --without-xmms2d
+ #./waf build
+ #./waf --destdir="$pkgdir" install
+# template start; name=perl-binary-module-dependency; version=1;
+if [[ $(find "$pkgdir/usr/lib/perl5/" -name "*.so") ]]; then
+_perlver_min=$(perl -e '$v = $^V->{version}; print $v->[0].".".($v->[1]);')
+_perlver_max=$(perl -e '$v = $^V->{version}; print $v->[0].".".($v->[1]+1);')
+depends+=("perl>=$_perlver_min" "perl<$_perlver_max")
+fi
+# template end;
+}
diff --git a/libre/xmms2/install.sh b/libre/xmms2/install.sh
new file mode 100644
index 000000000..ca4e13f14
--- /dev/null
+++ b/libre/xmms2/install.sh
@@ -0,0 +1,10 @@
+post_install() {
+ getent group xmms2 > /dev/null || groupadd -r -g 46 xmms2
+ getent passwd xmms2 > /dev/null || useradd -r -u 46 -g xmms2 -d /var/lib/xmms2 -s /bin/false -G audio xmms2
+ usr/bin/systemd-tmpfiles --create xmms2.conf
+ true
+}
+
+post_upgrade() {
+ post_install
+} \ No newline at end of file
diff --git a/libre/xmms2/system.service b/libre/xmms2/system.service
new file mode 100644
index 000000000..f3e524d4e
--- /dev/null
+++ b/libre/xmms2/system.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=XMMS2 daemon
+Documentation=man:xmms2-launcher(1) man:xmms2d(1)
+Wants=fluidsynth.service
+After=fluidsynth.service network.target sound.target
+
+[Service]
+Type=forking
+User=xmms2
+# Trick xmms2d into correctly using /var/lib/xmms2 for its configuration
+Environment=XDG_CONFIG_HOME=/var/lib
+PIDFile=%t/xmms2/xmms2d.pid
+ExecStart=/usr/bin/xmms2-launcher -l /var/log/xmms2d.log -P %t/xmms2/xmms2d.pid
+ExecStop=/usr/bin/xmms2 server shutdown
+
+[Install]
+WantedBy=multi-user.target
diff --git a/libre/xmms2/tmpfiles.conf b/libre/xmms2/tmpfiles.conf
new file mode 100644
index 000000000..61cd6a797
--- /dev/null
+++ b/libre/xmms2/tmpfiles.conf
@@ -0,0 +1,2 @@
+d /run/xmms2 0755 xmms2 xmms2
+f /var/log/xmms2d.log 0644 xmms2 xmms2
diff --git a/libre/xmms2/user.service b/libre/xmms2/user.service
new file mode 100644
index 000000000..dc27ad150
--- /dev/null
+++ b/libre/xmms2/user.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=XMMS2 daemon
+Documentation=man:xmms2-launcher(1) man:xmms2d(1)
+After=network.target sound.target
+
+[Service]
+Type=forking
+PIDFile=%t/xmms2d.pid
+ExecStart=/usr/bin/xmms2-launcher -P %t/xmms2d.pid
+ExecStop=/usr/bin/xmms2 server shutdown
+
+[Install]
+WantedBy=default.target