diff options
Diffstat (limited to 'community/icecast')
-rw-r--r-- | community/icecast/PKGBUILD | 54 | ||||
-rw-r--r-- | community/icecast/icecast.logrotate | 8 | ||||
-rw-r--r-- | community/icecast/icecastd | 66 | ||||
-rw-r--r-- | community/icecast/start-by-nobody.patch | 15 |
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> |