aboutsummaryrefslogtreecommitdiffstats
path: root/main/alsa-utils
diff options
context:
space:
mode:
authorSören Tempel <soeren+git@soeren-tempel.net>2015-08-14 14:30:41 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2015-08-14 15:05:15 +0200
commitf2f7f861ea7bff46c7497cba87d0796868a7ea53 (patch)
treec69fd1f29a6041d5f764bffb9e164eb0a8e9465d /main/alsa-utils
parent009d29ba1f11b72991cfd64c0da2b0ae1c340cb5 (diff)
downloadaports-f2f7f861ea7bff46c7497cba87d0796868a7ea53.tar.bz2
aports-f2f7f861ea7bff46c7497cba87d0796868a7ea53.tar.xz
main/alsa-utils: update openrc service
Use the latest and greatest OpenRC ALSA service from the Gentoo portage tree. This new service no longer supports any modular auto(un)loading of ALSA core modules, which shouldn't be a problem since the load_modules() function didn't even work before.
Diffstat (limited to 'main/alsa-utils')
-rw-r--r--main/alsa-utils/APKBUILD14
-rw-r--r--main/alsa-utils/alsa.confd18
-rw-r--r--main/alsa-utils/alsa.initd160
3 files changed, 23 insertions, 169 deletions
diff --git a/main/alsa-utils/APKBUILD b/main/alsa-utils/APKBUILD
index d08c9215c1..f3d5bfa93c 100644
--- a/main/alsa-utils/APKBUILD
+++ b/main/alsa-utils/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=alsa-utils
pkgver=1.0.29
-pkgrel=1
+pkgrel=2
pkgdesc="Advanced Linux Sound Architecture Utils (alsactl, alsamixer, etc.)"
url="http://www.alsa-project.org"
arch="all"
@@ -59,13 +59,13 @@ alsaconf() {
md5sums="6b289bf874c4c9a63f4b3973093dd404 alsa-utils-1.0.29.tar.bz2
5e65f278b5a77e3ee2821ad955c4cd91 alsaconf.patch
-ff93a603ff716af6bcb79bba0b6beecd alsa.initd
-85b1f1e759fe5953eca329237f4ac256 alsa.confd"
+858fbe7efba5c7e08c90c8e3f7f9a66b alsa.initd
+415adf8d230c3ac9871b16d8ab176193 alsa.confd"
sha256sums="5160058f3e14483ced5de919dd473f93932059454530a9b7ef97dcabd6833e9b alsa-utils-1.0.29.tar.bz2
b99468473fe20de4fac3aeae833612837ff1cb576e68674463fe1efd0aed6d19 alsaconf.patch
-921c5a12bdf6fb683f2ebff1414b19472febae09567b66c6c5ce0b7b5fda5c02 alsa.initd
-e5d26a6ea993540ca2d67aee4b40f1351b13f2c8023d53cb67c22cb3707e72de alsa.confd"
+bd0d4cdbb4cf9deb3aa773320a3089e86117505a8d835e9ac1e3d9edf9055a4d alsa.initd
+a3383d2aa7af1b2725c1167f1f6d5f86505de653fed3c2b8cc8fb3fd5c0d4c5c alsa.confd"
sha512sums="0d83805aa7b1c975524cc5ecd4aa6eb36126bc434458f9e9475e4bd1b14bbb4bf9691096ca7973342a3798e97a361451c078f4595f8f4275db64d6b443ca5928 alsa-utils-1.0.29.tar.bz2
bc9f1297574fe4d5bd9baa3f299d68684182f1e6eeb51c862cd6236563516f57a160a00d6607540830aebbb8c4352faf416a981edc878e8a256cbbcc95648614 alsaconf.patch
-99be21e6d07d5ba5a1c379eff0716568fd7c36164f4cb1871fa9dcaabba4b17353c511b82a310c792cf585951c989eac2b838da7ac8c268b62d6500000bc6e13 alsa.initd
-a2ae4d3f7e7bbd799d69ede7e1f052147ebbf2763d8ef6c061832208e330aebe72b112cd36f227645b4543c5388a45db8c0a534a9ec4b6351cfad6584ad6922c alsa.confd"
+79567a4bfda1e73034fcac655f49f34e00054cba183ffb0578a9122fb36fff74378852d2a2385ec1bf9f6f530fc68655766af0f6dc5c259e7abee4005ddc87d3 alsa.initd
+6e716e6230fd3d2c33e3cb2dbf572d632c9ac6452c1768388bea7d3ca22f7c72cf6bcd702580f45cb9089983582011c8b04cbdb4420d14fb988167b1391ea547 alsa.confd"
diff --git a/main/alsa-utils/alsa.confd b/main/alsa-utils/alsa.confd
index 0a5d58fc1f..d47edb1243 100644
--- a/main/alsa-utils/alsa.confd
+++ b/main/alsa-utils/alsa.confd
@@ -1,10 +1,3 @@
-# ENABLE_OSS_EMUL:
-# Do you want to enable in-kernel oss emulation?
-# no - Do not load oss emul drivers
-# yes - Load oss emul drivers if they're found
-
-ENABLE_OSS_EMUL="yes"
-
# RESTORE_ON_START:
# Do you want to restore your mixer settings? If not, your cards will be
# muted.
@@ -15,17 +8,8 @@ RESTORE_ON_START="yes"
# SAVE_ON_STOP:
# Do you want to save changes made to your mixer volumes when alsasound
-# stops?
+# stops?
# no - Do not save state
# yes - Save state
SAVE_ON_STOP="yes"
-
-# LOAD_ON_START:
-# Do you want to load sound modules when alsasound starts?
-# Note: The Gentoo ALSA developers encourage you to build your sound
-# drivers into the kernel unless the device is hotpluggable or
-# you need to supply specific options (such as model= to HD-Audio).
-# no - Do not load modules
-# yes - Load modules
-LOAD_ON_START="yes"
diff --git a/main/alsa-utils/alsa.initd b/main/alsa-utils/alsa.initd
index 059c08b57b..9a68a27161 100644
--- a/main/alsa-utils/alsa.initd
+++ b/main/alsa-utils/alsa.initd
@@ -1,140 +1,24 @@
-#!/sbin/openrc-run
-# $Header: /var/cvsroot/gentoo-x86/media-sound/alsa-utils/files/alsasound.initd-r4,v 1.1 2009/08/02 11:27:26 ssuominen Exp $
-# Copyright 2007 Gentoo Foundation
+#!/sbin/runscript
+# $Id$
+# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
alsastatedir=/var/lib/alsa
alsascrdir=/etc/alsa.d
+alsahomedir=/var/run/alsasound
extra_commands="save restore"
depend() {
need localmount
- after bootmisc modules isapnp coldplug hotplug hwdrivers
-}
-
-load_modules() {
- # List of drivers for each card.
- local DRIVERS="$(modprobe | sed -n -e 's/^alias \(snd-card-[[:digit:]]\+\) .*/\1/p')"
-
- # Fall back on the automated aliases if we don't have ALSA configured properly...
- if [ -z "${DRIVERS}" ] && \
- ( [ ! -r /proc/asound/cards ] || grep -q ' no soundcards ' /proc/asound/cards 2>/dev/null ) ; then
- ewarn "Could not detect custom ALSA settings. Loading all detected alsa drivers."
- DRIVERS="$(modprobe | sed -n -e '/^alias pci:.* snd.*/ s/^alias pci:[^ ]* \(.*\)/\1/p' | sort | uniq)"
- if [ -z "${DRIVERS}" ] ; then
- eerror "Unable to find any ALSA drivers. Have you compiled alsa-drivers correctly?"
- fi
- fi
-
- if [ "${ENABLE_OSS_EMUL}" = "yes" ] ; then
- DRIVERS="${DRIVERS} $(modprobe -l | sed -n -e '/snd.*oss/ s:.*\/\([[:alnum:]_-]\+\).ko:\1:p')"
- fi
-
- # We want to ensure snd-seq is loaded as it is needed for things like
- # timidity even if we don't use a real sequencer.
- DRIVERS="${DRIVERS} $(modprobe -l | sed -n -e '/snd.seq\./ s:.*\/\([[:alnum:]_-]\+\).ko:\1:p')"
-
- # We want to ensure snd-ioctl32 is loaded as it is needed for 32bit
- # compatibility
- DRIVERS="${DRIVERS} $(modprobe -l | sed -n -e '/snd.ioctl32\./ s:.*\/\([[:alnum:]_-]\+\).ko:\1:p')"
-
- local DRIVER= DMOD=
- for DRIVER in ${DRIVERS} ; do
- [ "${DRIVER}" = "off" ] && continue
- DMOD="$(echo "${DRIVER}" | sed -e 's/-/_/g')"
- if ! grep -q "^${DMOD} " /proc/modules ; then
- ebegin "Loading: ${DRIVER}"
- modprobe ${DRIVER}
- eend $?
- fi
- done
-
- if [ -f /proc/asound/seq/drivers ] ; then
- local SEQUENCERS="$(sed -n -e 's/\([^,]*\),empty,.*/\1/p' /proc/asound/seq/drivers)"
- local SEQUENCER
- for SEQUENCER in ${SEQUENCERS} ; do
- DMOD="$(echo "${SEQUENCER}" | sed -e 's/-/_/g')"
- if ! grep -q "^${DMOD} " /proc/modules ; then
- ebegin "Loading: ${SEQUENCER}"
- modprobe ${SEQUENCER}
- eend $?
- fi
- done
- fi
-
- for DRIVER in ${DRIVERS}
- do
- local TMP=${DRIVER##snd-}
- TMP=${TMP##snd_}
- if [ -x "${alsascrdir}/${TMP}" ] ; then
- ebegin "Running: ${alsascrdir}/${TMP}"
- "${alsascrdir}/${TMP}"
- eend $?
- fi
- done
-
- if [ ! -d /proc/asound ] || grep -q ' no soundcards ' /proc/asound/cards ; then
- eerror "ERROR: Failed to load necessary drivers"
- return 1
- fi
-}
-
-unload_modules_24() {
- local LOADED_MODULES="$(lsmod | sed -n -e 's/^\(snd[^ ]*\) .*/\1/p')"
- local MODULE
- for MODULE in ${LOADED_MODULES} ; do
- rmmod "${MODULE}"
- done
- rmmod soundcore 2>/dev/null
- rmmod gameport 2>/dev/null
-
- lsmod | grep -vq '^snd'
-}
-
-unload_modules_recursive() {
- local revdeps="$(lsmod | sed -n -e "s/,/ /g" -e "s/^$1 *[0-9]* *[0-9]* \(.*\)/\1/p")"
-
- for module in ${revdeps} ; do
- unload_modules_recursive "${module}"
- done
-
- vebegin "Unloading: $1"
- rmmod --wait "$1"
- veend $?
-}
-
-unload_modules_26() {
- # First of all, remove the snd module and all the modules depending
- # on it, this should remove already most of ALSA modules.
- lsmod | grep -q "^snd[[:space:]]" && unload_modules_recursive snd
-
- # Then find the remaining ones, and handle them too.
- for module in $(lsmod | sed -n -e 's/^\(snd[^ ]*\) .*/\1/p'); do
- unload_modules_recursive "${module}"
- done
-
- lsmod | grep -vq "^snd"
-}
-
-terminate() {
- #
- # Kill processes holding open sound devices
- #
- # DEVS=`find /dev/ -follow -type c -maxdepth 1 -print 2>/dev/null | xargs ls -dils | grep "1*1[46]," | cut -d: -f2 | cut -d" " -f2; echo /proc/asound/dev/*`
- local ossdevs="/dev/admmidi* /dev/adsp* /dev/amidi* /dev/audio* /dev/dmfm* \
- /dev/dmmidi* /dev/dsp* /dev/dspW* /dev/midi0* /dev/mixer* /dev/music \
- /dev/patmgr* /dev/sequencer* /dev/sndstat"
- local alsadevs="/proc/asound/dev/* /dev/sound/* /dev/snd/*"
- fuser -k ${ossdevs} ${alsadevs} >/dev/null 2>/dev/null
-
- # remove all sequencer connections if any
- [ -f /proc/asound/seq/clients ] && type aconnect >/dev/null 2>/dev/null && aconnect --removeall
+ after bootmisc modules isapnp coldplug hotplug
}
restore() {
ebegin "Restoring Mixer Levels"
+ checkpath -q -d -m 0700 -o root:root ${alsahomedir} || return 1
+
if [ ! -r "${alsastatedir}/asound.state" ] ; then
ewarn "No mixer config in ${alsastatedir}/asound.state, you have to unmute your card!"
eend 0
@@ -148,7 +32,7 @@ restore() {
[ -e /dev/snd/controlC${cardnum} ] || sleep 2
[ -e /dev/snd/controlC${cardnum} ] || sleep 2
[ -e /dev/snd/controlC${cardnum} ] || sleep 2
- alsactl -f "${alsastatedir}/asound.state" restore ${cardnum} \
+ alsactl -E HOME="${alsahomedir}" -I -f "${alsastatedir}/asound.state" restore ${cardnum} \
|| ewarn "Errors while restoring defaults, ignoring"
done
@@ -158,7 +42,7 @@ restore() {
local procfile=${ossfile##${alsastatedir}/oss}
procfile="$(echo "${procfile}" | sed -e 's,_,/,g')"
if [ -e /proc/asound/"${procfile}"/oss ] ; then
- cat "${ossfile}" > /proc/asound/"${procfile}"/oss
+ cat "${ossfile}" > /proc/asound/"${procfile}"/oss
fi
done
@@ -168,8 +52,10 @@ restore() {
save() {
ebegin "Storing ALSA Mixer Levels"
+ checkpath -q -d -m 0700 -o root:root ${alsahomedir} || return 1
+
mkdir -p "${alsastatedir}"
- if ! alsactl -f "${alsastatedir}/asound.state" store; then
+ if ! alsactl -E HOME="${alsahomedir}" -f "${alsastatedir}/asound.state" store; then
eerror "Error saving levels."
eend 1
return 1
@@ -187,19 +73,7 @@ save() {
}
start() {
- if [ -f /proc/modules ] && [ "${LOAD_ON_START}" = "yes" ]; then
- ebegin "Loading ALSA modules"
- eindent
- load_modules
- eoutdent
- eend $? || return 1
- fi
-
- if [ ! -d /proc/asound ]; then
- eerror "ALSA failed to load."
- eend 1
- return 1
- elif [ "${RESTORE_ON_START}" = "yes" ]; then
+ if [ "${RESTORE_ON_START}" = "yes" ]; then
restore
fi
@@ -207,12 +81,8 @@ start() {
}
stop() {
- if [ ! -d /proc/asound ] ; then
- eerror "ALSA is not loaded"
- return 0
+ if [ "${SAVE_ON_STOP}" = "yes" ]; then
+ save
fi
-
- [ "${SAVE_ON_STOP}" = "yes" ] && save
-
return 0
}