summaryrefslogtreecommitdiff
path: root/community/icecast
diff options
context:
space:
mode:
Diffstat (limited to 'community/icecast')
-rw-r--r--community/icecast/PKGBUILD54
-rw-r--r--community/icecast/icecast.logrotate8
-rw-r--r--community/icecast/icecastd66
-rw-r--r--community/icecast/start-by-nobody.patch15
4 files changed, 143 insertions, 0 deletions
diff --git a/community/icecast/PKGBUILD b/community/icecast/PKGBUILD
new file mode 100644
index 000000000..bb6f410f9
--- /dev/null
+++ b/community/icecast/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 46955 2011-05-13 20:41:15Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Jason Chu <jchu@xentac.net>
+
+pkgname=icecast
+pkgver=2.3.2
+pkgrel=5
+pkgdesc="Streaming audio over the Internet"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.icecast.org/"
+depends=('libxslt' 'libvorbis' 'curl' 'speex' 'libtheora')
+backup=('etc/icecast.xml'
+ 'etc/logrotate.d/icecast')
+source=("http://downloads.us.xiph.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'icecastd' 'icecast.logrotate'
+ 'start-by-nobody.patch')
+md5sums=('ff516b3ccd2bcc31e68f460cd316093f'
+ 'e823c1fdb080aae3d0c54ef8be95f7cb'
+ '59c6552bcb1dd9fb542af8670dfabd3c'
+ 'd8e929d2214123a1954da4383bf16583')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ patch -Np1 -i ${srcdir}/start-by-nobody.patch
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # install man-page
+ sed -i -e 's/icecast2/icecast/g' debian/icecast2.1
+ install -Dm644 debian/icecast2.1 \
+ ${pkgdir}/usr/share/man/man1/icecast.1
+
+ # init file
+ install -Dm755 ${srcdir}/icecastd \
+ ${pkgdir}/etc/rc.d/icecast
+ # rotate the logs (taken from Fedora)
+ install -Dm644 ${srcdir}/icecast.logrotate \
+ ${pkgdir}/etc/logrotate.d/icecast
+
+ # install log dir
+ install -d -g99 -o99 ${pkgdir}/var/log/icecast
+}
diff --git a/community/icecast/icecast.logrotate b/community/icecast/icecast.logrotate
new file mode 100644
index 000000000..0fb014c06
--- /dev/null
+++ b/community/icecast/icecast.logrotate
@@ -0,0 +1,8 @@
+/var/log/icecast/*log {
+ missingok
+ notifempty
+ sharedscripts
+ postrotate
+ endscript
+}
+
diff --git a/community/icecast/icecastd b/community/icecast/icecastd
new file mode 100644
index 000000000..e6c91b08c
--- /dev/null
+++ b/community/icecast/icecastd
@@ -0,0 +1,66 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+timeo=30
+
+getPID() {
+ pgrep -u nobody icecast 2>/dev/null
+}
+
+case $1 in
+ start)
+ stat_busy "Starting Icecast Server"
+ if getPID >/dev/null; then
+ # already running
+ stat_fail
+ exit 1
+ else
+ /usr/bin/icecast -b -c /etc/icecast.xml &>/dev/null
+ while (( timeo > 0 )); do
+ if getPID >/dev/null; then
+ add_daemon icecast
+ stat_done
+ exit 0
+ fi
+ sleep 1
+ (( timeo-- ))
+ done
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping Icecast Server"
+ if ! getPID >/dev/null; then
+ # not running
+ stat_done
+ exit 1
+ fi
+ if ! kill $(getPID) &> /dev/null; then
+ stat_fail
+ exit 1
+ fi
+ while (( timeo > 0 )); do
+ if getPID >/dev/null; then
+ rm_daemon icecast
+ stat_done
+ exit 0
+ fi
+ sleep 1
+ (( timeo-- ))
+ done
+ stat_fail
+ exit 1
+ ;;
+
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/icecast/start-by-nobody.patch b/community/icecast/start-by-nobody.patch
new file mode 100644
index 000000000..d218e5afe
--- /dev/null
+++ b/community/icecast/start-by-nobody.patch
@@ -0,0 +1,15 @@
+--- icecast-2.3.2/conf/icecast.xml.in~ 2010-11-12 16:47:54.750000918 +0100
++++ icecast-2.3.2/conf/icecast.xml.in 2010-11-12 16:48:08.086667585 +0100
+@@ -164,11 +164,9 @@
+
+ <security>
+ <chroot>0</chroot>
+- <!--
+ <changeowner>
+ <user>nobody</user>
+- <group>nogroup</group>
++ <group>nobody</group>
+ </changeowner>
+- -->
+ </security>
+ </icecast>