[arch-commits] Commit in icecast/trunk (4 files)
Andrea Scarpino
andrea at archlinux.org
Fri Nov 12 15:51:27 UTC 2010
Date: Friday, November 12, 2010 @ 10:51:27
Author: andrea
Revision: 98661
upgpkg: icecast 2.3.2-4
implement a loop to check if icecast is running (FS#18823); remove useless line in logrotate script (FS#20336)
Added:
icecast/trunk/start-by-nobody.patch
Modified:
icecast/trunk/PKGBUILD
icecast/trunk/icecast.logrotate
icecast/trunk/icecastd
-----------------------+
PKGBUILD | 28 +++++++++++++++----------
icecast.logrotate | 1
icecastd | 53 ++++++++++++++++++++++++++++++++++++++----------
start-by-nobody.patch | 15 +++++++++++++
4 files changed, 74 insertions(+), 23 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2010-11-12 14:38:47 UTC (rev 98660)
+++ PKGBUILD 2010-11-12 15:51:27 UTC (rev 98661)
@@ -1,12 +1,12 @@
# $Id$
# Maintainer: Andrea Scarpino <andrea at archlinux.org>
# Contributor: Andreas Radke <andyrtr at archlinux.org>
-# Contributer: Jason Chu <jchu at xentac.net>
+# Contributor: Jason Chu <jchu at xentac.net>
# Contributor: dorphell <dorphell at archlinux.org>
pkgname=icecast
pkgver=2.3.2
-pkgrel=3
+pkgrel=4
pkgdesc="Streaming audio over the Internet"
arch=('i686' 'x86_64')
license=('GPL')
@@ -15,34 +15,40 @@
backup=('etc/icecast.xml'
'etc/logrotate.d/icecast')
source=("http://downloads.us.xiph.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz"
- 'icecastd' 'icecast.logrotate')
+ 'icecastd' 'icecast.logrotate'
+ 'start-by-nobody.patch')
md5sums=('ff516b3ccd2bcc31e68f460cd316093f'
- '2cf9bb562e764ff451ed557711883978'
- '8fad3bf3283fa2bd651b71fdf505eae9')
+ '464ef7e110d32998f60e5bea293acc92'
+ '59c6552bcb1dd9fb542af8670dfabd3c'
+ 'd8e929d2214123a1954da4383bf16583')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
+
+ patch -Np1 -i ${srcdir}/start-by-nobody.patch
+
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var
- make || return 1
+ make
}
package() {
cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install || return 1
+ 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 || return 1
+ ${pkgdir}/usr/share/man/man1/icecast.1
# init file
install -Dm755 ${srcdir}/icecastd \
- ${pkgdir}/etc/rc.d/icecast || return 1
+ ${pkgdir}/etc/rc.d/icecast
# rotate the logs (taken from Fedora)
install -Dm644 ${srcdir}/icecast.logrotate \
- ${pkgdir}/etc/logrotate.d/icecast || return 1
+ ${pkgdir}/etc/logrotate.d/icecast
+
# install log dir
- install -d ${pkgdir}/var/log/icecast || return 1
+ install -d -g99 -o99 ${pkgdir}/var/log/icecast
}
Modified: icecast.logrotate
===================================================================
--- icecast.logrotate 2010-11-12 14:38:47 UTC (rev 98660)
+++ icecast.logrotate 2010-11-12 15:51:27 UTC (rev 98661)
@@ -3,7 +3,6 @@
notifempty
sharedscripts
postrotate
- /bin/kill -HUP `cat /var/run/icecast/icecast.pid 2>/dev/null` 2> /dev/null || true
endscript
}
Modified: icecastd
===================================================================
--- icecastd 2010-11-12 14:38:47 UTC (rev 98660)
+++ icecastd 2010-11-12 15:51:27 UTC (rev 98661)
@@ -3,31 +3,62 @@
. /etc/rc.conf
. /etc/rc.d/functions
-PID=`pidof -o %PPID /usr/bin/icecast`
+getPID() {
+ echo $(pgrep -u nobody icecast 2>/dev/null);
+}
+
case "$1" in
start)
stat_busy "Starting Icecast Server"
- [ -z "$PID" ] && /usr/bin/icecast -b -c /etc/icecast.xml &>/dev/null
- if [ $? -gt 0 ]; then
- stat_fail
+ if [ -z "$(getPID)" ]; then
+ /usr/bin/icecast -b -c /etc/icecast.xml &>/dev/null
+ timeo=30
+ while [ $timeo -gt 0 ]; do
+ [ ! -z "$(getPID)" ] && break
+ sleep 1
+ let timeo=${timeo}-1
+ done
+ if [ $timeo -eq 0 ]; then
+ stat_fail
+ exit 1
+ else
+ add_daemon icecast
+ stat_done
+ fi
else
- add_daemon icecast
- stat_done
+ stat_fail
+ exit 1
fi
;;
+
stop)
stat_busy "Stopping Icecast Server"
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
+ if [ ! -z "$(getPID)" ]; then
+ timeo=30
+ kill $(getPID) &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ fi
+ while [ ! -z "$(getPID)" -a $timeo -gt 0 ]; do
+ sleep 1
+ let timeo=${timeo}-1
+ done
+ if [ -z "$(getPID)" ]; then
+ rm_daemon icecast
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
else
- rm_daemon icecast
stat_done
+ exit 1
fi
;;
+
restart)
$0 stop
- sleep 3
$0 start
;;
*)
Added: start-by-nobody.patch
===================================================================
--- start-by-nobody.patch (rev 0)
+++ start-by-nobody.patch 2010-11-12 15:51:27 UTC (rev 98661)
@@ -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>
More information about the arch-commits
mailing list