summaryrefslogtreecommitdiffstats
path: root/abs/extra/community/squeezeboxserver
diff options
context:
space:
mode:
Diffstat (limited to 'abs/extra/community/squeezeboxserver')
-rw-r--r--abs/extra/community/squeezeboxserver/PKGBUILD34
-rw-r--r--abs/extra/community/squeezeboxserver/squeezeboxserver.conf.d7
-rw-r--r--abs/extra/community/squeezeboxserver/squeezeboxserver.install56
-rw-r--r--abs/extra/community/squeezeboxserver/squeezeboxserver.rc47
4 files changed, 144 insertions, 0 deletions
diff --git a/abs/extra/community/squeezeboxserver/PKGBUILD b/abs/extra/community/squeezeboxserver/PKGBUILD
new file mode 100644
index 0000000..45db11f
--- /dev/null
+++ b/abs/extra/community/squeezeboxserver/PKGBUILD
@@ -0,0 +1,34 @@
+# Contributor: Anton Prins <uar at prinsonline dot demon dot nl>
+
+pkgname=squeezeboxserver
+pkgver=7.4.1
+pkgrel=1
+pkgdesc="Powerful streaming audio server from Slim Devices"
+depends=(
+# unknown to me, default arch install + openssh handles it
+ )
+
+source=(http://downloads.slimdevices.com/SqueezeboxServer_v${pkgver}/squeezeboxserver-${pkgver}.tgz
+ $pkgname.rc
+ $pkgname.conf.d
+ )
+
+url="http://www.slimdevices.com/pi_features.html"
+license=('GPL')
+arch=('i686' 'x86_64')
+install=squeezeboxserver.install
+
+#not sure how to handle the build number -28947?
+build() {
+cd $startdir/src/squeezeboxserver-${pkgver}-28947 || return 1
+
+mkdir -p $startdir/pkg/home/squeezeboxserver || return 1
+cp -a * $startdir/pkg/home/squeezeboxserver || return 1
+install -D -m755 ../squeezeboxserver.rc $startdir/pkg/etc/rc.d/squeezeboxserver || return 1
+install -D -m644 ../squeezeboxserver.conf.d $startdir/pkg/etc/conf.d/squeezeboxserver || return 1
+mkdir $startdir/pkg/home/squeezeboxserver/prefs
+}
+
+md5sums=('fa65636e7df75ae7af884a2efa184639'
+ '5e57982c257797badbf72c2ae04994f7'
+ 'aa65896541958e119e63ee7c96be39af')
diff --git a/abs/extra/community/squeezeboxserver/squeezeboxserver.conf.d b/abs/extra/community/squeezeboxserver/squeezeboxserver.conf.d
new file mode 100644
index 0000000..d14a2e9
--- /dev/null
+++ b/abs/extra/community/squeezeboxserver/squeezeboxserver.conf.d
@@ -0,0 +1,7 @@
+# Configuration file for SqueezeCenter on Arch Linux.
+# Save this as /etc/conf.d/squeezeboxserver
+
+# Enter space-delimited options on the following line.
+# e.g. SQUEEZEBOXSERVER_OPTS="--diag --d_scan --d_command"
+# See "/home/squeezeboxserver/slimserver.pl --help" for a full list of possible options.
+SQUEEZEBOXSERVER_OPTS=""
diff --git a/abs/extra/community/squeezeboxserver/squeezeboxserver.install b/abs/extra/community/squeezeboxserver/squeezeboxserver.install
new file mode 100644
index 0000000..058de02
--- /dev/null
+++ b/abs/extra/community/squeezeboxserver/squeezeboxserver.install
@@ -0,0 +1,56 @@
+post_install() {
+echo -n "adding squeezeboxserver user... "
+useradd -c "SqueezeBoxServer" -g users -s /bin/false squeezeboxserver && echo "done."
+passwd -l squeezeboxserver &>/dev/null
+
+chown -R squeezeboxserver:users /home/squeezeboxserver
+
+install -o squeezeboxserver -d /var/cache/squeezeboxserver
+touch /var/log/squeezeboxserver.log
+chown squeezeboxserver:users /var/log/squeezeboxserver.log
+
+cat << 'EOM'
+
+==> SqueezeBoxServer uses MySQL instead of sqlite. If you have MySQL up and running
+==> you can configure SqueezeBoxServer to use that server as described here:
+==> http://wiki.slimdevices.com/index.php/ExistingMySQLInstance
+
+==> PLEASE NOTE: SqueezeBoxServer should always be run as the user 'squeezeboxserver'.
+==> This is easily done by adding squeezeboxserver to the DAEMONS array in rc.conf,
+==> after network and mysql.
+
+==> Additional run-time options can be added to /etc/conf.d/squeezeboxserver.
+==> Please refer to "/home/squeezeboxserver/slimserver.pl --help" for full details.
+
+EOM
+}
+
+post_upgrade() {
+chown -R squeezeboxserver:users /home/squeezeboxserver
+
+cat << 'EOM'
+
+==> SqueezeBoxServer uses MySQL instead of sqlite. If you have MySQL up and running
+==> you can configure SqueezeBoxServer to use that server as described here:
+==> http://wiki.slimdevices.com/index.php/ExistingMySQLInstance
+
+EOM
+}
+
+pre_remove() {
+# pre_remove gets called whenever post_remove is defined.
+true
+}
+
+post_remove() {
+# post_remove doesn't start at a newline like the other post_* functions,
+# so we'll have to make one for ourselves.
+echo -n -e "\nremoving squeezeboxserver user... "
+userdel squeezeboxserver && echo "done."
+
+rm -r /var/cache/squeezeboxserver /var/log/squeezeboxserver.log
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/extra/community/squeezeboxserver/squeezeboxserver.rc b/abs/extra/community/squeezeboxserver/squeezeboxserver.rc
new file mode 100644
index 0000000..d33db16
--- /dev/null
+++ b/abs/extra/community/squeezeboxserver/squeezeboxserver.rc
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+# source application-specific settings
+[ -f /etc/conf.d/squeezeboxserver ] && . /etc/conf.d/squeezeboxserver
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+squeezehome=/home/squeezeboxserver
+pidfile=/var/run/squeezeboxserver.pid
+logfile=/var/log/squeezeboxserver.log
+prefsdir=/home/squeezeboxserver/prefs
+cachedir=/var/cache/squeezeboxserver
+
+
+case "$1" in
+ start)
+ stat_busy "Starting SqueezeBoxServer"
+ cd $squeezehome
+ ./slimserver.pl --daemon --user squeezeboxserver --prefsdir $prefsdir \
+ --cachedir $cachedir --pidfile $pidfile --logfile $logfile $SQUEEZEBOXSERVER_OPTS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon squeezeboxserver
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping SqueezeBoxServer"
+ kill `cat $pidfile` &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon squeezeboxserver
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac