Date: Thursday, October 13, 2011 @ 15:41:56 Author: schiv Revision: 140417
upgpkg: jack 0.121.3-2 implement FS#26343; remove changelog Added: jack/trunk/40-hpet-permissions.rules jack/trunk/99-realtime.conf jack/trunk/jack.install Modified: jack/trunk/PKGBUILD Deleted: jack/trunk/jack.changelog ---------------------------+ 40-hpet-permissions.rules | 2 + 99-realtime.conf | 2 + PKGBUILD | 18 +++++++++++--- jack.changelog | 21 ---------------- jack.install | 56 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 74 insertions(+), 25 deletions(-) Added: 40-hpet-permissions.rules =================================================================== --- 40-hpet-permissions.rules (rev 0) +++ 40-hpet-permissions.rules 2011-10-13 19:41:56 UTC (rev 140417) @@ -0,0 +1,2 @@ +KERNEL=="rtc0", GROUP="realtime" +KERNEL=="hpet", GROUP="realtime" Added: 99-realtime.conf =================================================================== --- 99-realtime.conf (rev 0) +++ 99-realtime.conf 2011-10-13 19:41:56 UTC (rev 140417) @@ -0,0 +1,2 @@ +@realtime - rtprio 99 +@realtime - memlock unlimited Modified: PKGBUILD =================================================================== --- PKGBUILD 2011-10-13 18:13:21 UTC (rev 140416) +++ PKGBUILD 2011-10-13 19:41:56 UTC (rev 140417) @@ -6,7 +6,7 @@ pkgname=jack _longname=jack-audio-connection-kit pkgver=0.121.3 -pkgrel=1 +pkgrel=2 pkgdesc="A low-latency audio server" arch=('i686' 'x86_64') license=('GPL' 'LGPL') @@ -15,13 +15,15 @@ optdepends=('libffado: FireWire support' 'celt: NetJACK driver') url="http://jackaudio.org/" +backup=(etc/security/limits.d/99-realtime.conf) options=('!libtool') provides=("$_longname=$pkgver") conflicts=("$_longname") replaces=("$_longname") -changelog=$pkgname.changelog -source=("http://jackaudio.org/downloads/$_longname-$pkgver.tar.gz") -md5sums=('35f470f7422c37b33eb965033f7a42e8') +install=$pkgname.install +source=("http://jackaudio.org/downloads/$_longname-$pkgver.tar.gz" + "99-realtime.conf" + "40-hpet-permissions.rules") build() { cd "$srcdir/$_longname-$pkgver" @@ -35,6 +37,14 @@ cd "$srcdir/$_longname-$pkgver" make DESTDIR="$pkgdir" install + + # configure realtime access/scheduling + # see https://bugs.archlinux.org/task/26343 + install -Dm644 "$srcdir/99-realtime.conf" \ + "$pkgdir/etc/security/limits.d/99-realtime.conf" + + install -Dm644 "$srcdir/40-hpet-permissions.rules" \ + "$srcdir/lib/udev/rules.d/40-hpet-permissions.rules" } # vim:set ts=2 sw=2 et: Deleted: jack.changelog =================================================================== --- jack.changelog 2011-10-13 18:13:21 UTC (rev 140416) +++ jack.changelog 2011-10-13 19:41:56 UTC (rev 140417) @@ -1,21 +0,0 @@ -29 Jul 2011 (GMT+8) Ray Rashif <sc...@archlinux.org> - - * 0.121.2-2: - Added celt support with celt-0.7 from community - Will not bring celt to extra as it's very unstable - -8 Aug 2010 (GMT+8) Ray Rashif <sc...@archlinux.org> - - * 0.118.0-4 : - Built against libffado - - for FireWire support (see FS#19626) - Removed init scripts (no longer in tarball; unsupported). - - * PKGBUILD : - URL updated. - Licenses now GPL, LGPL according to 2-or-later convention - - removed custom installation (both are common) - - * jack.changelog : - Added this changelog. - Only important changes will be logged. Added: jack.install =================================================================== --- jack.install (rev 0) +++ jack.install 2011-10-13 19:41:56 UTC (rev 140417) @@ -0,0 +1,56 @@ +_addgroup() { + # _addgroup $GROUPNAME $GID + [ ${#@} -ne 2 ] && return 1 + + echo -n " > Checking if '$1' group exists..." + if ! getent group $1 > /dev/null; then + echo "no" + echo " > Add '$1' group" + echo -n " >> checking if GID is in use..." + # no other package or user is supposed to use this gid + # delete the group and re-add it at the end without static gid + if getent group $2 > /dev/null; then + echo "yes" + firstgroup=$(getent group $2 | sed 's/:.*//') + firstusers=$(getent group $2 | sed 's/.*://') + echo " >> delete group '$firstgroup'" + groupdel $firstgroup + else + echo "no" + fi + + echo " >> add our group with proper GID" + groupadd -g $2 $1 + + if [ -n "$firstgroup" ]; then + echo " >> restore group '$firstgroup' with dynamic GID" + groupadd $firstgroup + [ -n "$firstusers" ] && gpasswd -M $firstusers $firstgroup + fi + else + echo "yes (all good)" + fi +} + +post_install() { + _addgroup realtime 112 + echo + echo " * You must be part of the 'realtime' group to use RT scheduling" + echo " * You don't need an 'RT kernel' to use RT scheduling" + echo " * If you don't need RT start jack with '--no-realtime'" + echo " * If you don't record or sequence audio you don't need RT" +} + +post_upgrade() { + _addgroup realtime 112 + echo + echo " * Configuring RT through limits.conf has been deprecated" + echo " * See /etc/security/limits.d/99-realtime.conf instead" +} + +post_remove() { + [ "$(getent group realtime | cut -d ':' -f 3)" = '112' ] && \ + groupdel realtime || true +} + +# vim:set ts=2 sw=2 et: