Browse Source

alsa-utils package update

Signed-off-by: basebuilder_pel7x64builder0 <basebuilder@powerel.org>
master
basebuilder_pel7x64builder0 6 years ago
parent
commit
c152ca15d1
  1. 979
      SOURCES/alsa-delay
  2. 78
      SOURCES/alsa-delay.1
  3. 16
      SOURCES/alsa-restore.service
  4. 13
      SOURCES/alsa-state.service
  5. 36
      SOURCES/alsa-utils-1.1.6-post.patch
  6. 8
      SOURCES/alsa.rules
  7. 14
      SOURCES/alsactl.conf
  8. 6
      SOURCES/alsaunmute
  9. 28
      SOURCES/alsaunmute.1
  10. 523
      SPECS/alsa-utils.spec

979
SOURCES/alsa-delay

@ -0,0 +1,979 @@
#!/bin/bash

version=0.1.0
tmpdir=$TMPDIR
if test -z "$tmpdir"; then
tmpdir="/tmp"
fi
tmpdir=$tmpdir/alsa-delay-script

delay=
pcard=
pdev=
ccard=
cdev=

yes=
quiet=
clean=
remove=

pdevice="default:%s"
pdevice_set=
cdevice="plughw:%s,%s,%s"
pctl=
cctl=
one=
arg=
mix=
pa=

useprocfs=yes

fuser_prg=fuser
insmod_prg=insmod
rmmod_prg=rmmod
lsmod_prg=lsmod
modprobe_prg=modprobe
chkconfig_prg=chkconfig
systemctl_prg=systemctl
pidof_prg=pidof
alsaloop_prg=alsaloop
amixer_prg=amixer
test -x /sbin/fuser && fuser_prg=/sbin/fuser
test -x /sbin/insmod && insmod_prg=/sbin/insmod
test -x /sbin/rmmod && rmmod_prg=/sbin/rmmod
test -x /sbin/lsmod && lsmod_prg=/sbin/lsmod
test -x /sbin/modprobe && modprobe_prg=/sbin/modprobe
test -x /sbin/chkconfig && chkconfig_prg=/sbin/chkconfig
test -x /bin/systemctl && systemctl_prg=/bin/systemctl
test -x /sbin/pidof && pidof_prg=/sbin/pidof
test -x /usr/bin/alsaloop && alsaloop_prg=/usr/bin/alsaloop
test -x /usr/local/bin/alsaloop && alsaloop_prg=/usr/local/bin/alsaloop
test -x /usr/bin/amixer && amixer_prg=/usr/bin/amixer

modprobeconf=/etc/modprobe.d/alsa.conf
test -r /etc/modprobe.conf && modprobeconf=/etc/modprobe.conf && useprocfs=""
alsaloopconf=/etc/alsaloop.conf

test -r modprobe.work && modprobeconf=modprobe.work
test -r modprobe.work && alsaloopconf=alsaloop.conf

usage() {
echo "Usage: $0 [OPTION]... <requested_delay_in_ms> [<output_card>[,<device>]]"
cat <<EOF

This is a delay utility version $version. The snd-aloop ALSA driver is
used to send all PCM streams back to the user space and the alsaloop
utility is used to send this stream to a real hardware.

<output_card> is ALSA card index (number) or string card identifier
<device> is ALSA device number

Use 'aplay -l' to list available cards and devices.

Operation modes:
-h, --help print this help, then exit
-q, --quiet quiet mode
-y, --yes do not ask any questions - answer is always yes
-c, --clean clean temporary directory and exit
-r, --remove remove the alsa-delay config modifications and exit
--tmpdir=<DIR> set temporary directory
Alsaloop options:
--pdevice=<DEV> force playback device
--cdevice=<DEV> force capture device
--pctl=<DEV> force playback ctl device
--cctl=<DEV> force capture ctl device
--one=<ARG> pass this argument to last thread
--arg=<ARG> pass this argument to all threads
--mix=<ARG> redirect ALSA mixer controls to OSS mixer
(default is Master)
--pa Redirect PA to alsaloop

Note: For devices, the string %s is replaced with the card index
and second string %s is replaced with the device index
and third string %s is replaced the substream index (0-7).
Example: hw:%s,%s,%s (card, device, substream)
EOF
}

while :
do
case "$1" in
-h|--help)
usage
exit 0
;;
-q|--quiet)
quiet=true ;;
-y|--yes)
yes=true ;;
-c|--clean)
clean="full" ;;
-r|--remove)
remove="full" ;;
--tmpdir*)
case "$#,$1" in
*,*=*)
tmpdir=`expr "z$1" : 'z-[^=]*=\(.*\)'` ;;
1,*)
usage ;;
*)
tmpdir="$2"
shift ;;
esac
tmpdir="$tmpdir/alsa-compile-script"
;;
--pdevice*)
case "$#,$1" in
*,*=*)
pdevice=`expr "z$1" : 'z-[^=]*=\(.*\)'`
pdevice_set=yes ;;
1,*)
usage ;;
*)
pdevice="$2"
pdevice_set=yes
shift ;;
esac
;;
--cdevice*)
case "$#,$1" in
*,*=*)
cdevice=`expr "z$1" : 'z-[^=]*=\(.*\)'` ;;
1,*)
usage ;;
*)
cdevice="$2"
shift ;;
esac
;;
--pctl*)
case "$#,$1" in
*,*=*)
pctl=`expr "z$1" : 'z-[^=]*=\(.*\)'` ;;
1,*)
usage ;;
*)
pctl="$2"
shift ;;
esac
;;
--cctl*)
case "$#,$1" in
*,*=*)
cctl=`expr "z$1" : 'z-[^=]*=\(.*\)'` ;;
1,*)
usage ;;
*)
cctl="$2"
shift ;;
esac
;;
--one*)
case "$#,$1" in
*,*=*)
one1=`expr "z$1" : 'z-[^=]*=\(.*\)'` ;;
1,*)
usage ;;
*)
one1="$2"
shift ;;
esac
one="$one $one1"
;;
--arg*)
case "$#,$1" in
*,*=*)
arg1=`expr "z$1" : 'z-[^=]*=\(.*\)'` ;;
1,*)
usage ;;
*)
arg1="$2"
shift ;;
esac
arg="$arg $arg1"
;;
--mix*)
case "$#,$1" in
*,*=*)
mix=`expr "z$1" : 'z-[^=]*=\(.*\)'` ;;
1,*)
usage ;;
*)
mix="$2"
shift ;;
esac
arg="$arg $arg1"
;;
--pa)
pa=true
;;
*)
if test -n "$1"; then
ok=
if test -z "$delay"; then
delay="$1"
if test "$delay" -lt 1000; then
delay=$[$delay * 1000]
fi
ok=true
fi
if test -z "$ok" -a -z "$pcard"; then
pcard="$1"
ok=true
fi
if test -z "$ok"; then
echo "Unknown parameter '$1'"
break
fi
else
break
fi
;;
esac
shift
done

test -z "$pdevice_set" -a -n "$pa" && pdevice="plug:dmix:%s"
test -z "$delay" && delay="50000"
test -z "$pcard" && pcard="1"
pdev=$(echo $pcard | cut -s -d , -f 2)
pcard=$(echo $pcard | cut -d , -f 1)
test -z "$pdev" && pdev="0"
test -z "$ccard" && ccard="Loopback,1"
cdev=$(echo $ccard | cut -s -d , -f 2)
ccard=$(echo $ccard | cut -d , -f 1)
test -z "$cdev" && cdev="0"

# Echo "true" or "false", depending on $yes and user response to prompt
# $1 is prompt message
question_bool() {
if test "$yes" = "yes"; then
echo "true"
else
echo >&2 -n "$1 (Y/ ) "
read i
local i=${i:0:1}
if test "$i" = "Y" -o "$i" = "y"; then
echo "true"
else
echo "false"
fi
fi
}

# Safe exit
safe_exit() {
if test -r /etc/pulse/client.conf ; then
if grep "# alsa-delay-line-to-be-removed-1234" /etc/pulse/client.conf 2> /dev/null > /dev/null ; then
grep -v alsa-delay-line-to-be-removed-1234 /etc/pulse/client.conf > /etc/pulse/client.conf.new
if test -s /etc/pulse/client.conf.new; then
mv /etc/pulse/client.conf.new /etc/pulse/client.conf
fi
fi
fi
exit $1
}

# Log and execute $@ and check success
do_cmd() {
if test -z "$quiet"; then
echo "> $@"
fi
$@ || safe_exit 1
}

# Cache or restore $protocol and $url and $package in $tmpdir
check_environment() {
if ! test -d $tmpdir ; then
mkdir -p $tmpdir
if ! test -d $tmpdir; then
echo >&2 "Unable to create directory $tmpdir."
exit 1
fi
fi
echo "Using temporary tree: $tmpdir"
test -x /bin/depmod && depmodbin=/bin/depmod
test -x /sbin/depmod && depmodbin=/sbin/depmod
if test -z "$depmodbin"; then
echo >&2 "Unable to find depmod utility."
exit 1
fi
test -x /bin/modinfo && modinfobin=/bin/modinfo
test -x /sbin/modinfo && modinfobin=/sbin/modinfo
if test -z "$modinfobin"; then
echo >&2 "Unable to find modinfo utility."
exit 1
fi
}

# Kill processes currently accessing the audio devices
kill_audio_apps() {
local pids0=$($fuser_prg /dev/snd/* 2> /dev/null)
local pids1=$($fuser_prg /dev/mixer* 2> /dev/null)
local pids2=$($fuser_prg /dev/sequencer* 2> /dev/null)
local pids=
for pid in $pids0 $pids1 $pids2; do
local pids="$pids $pid"
done
if ! test -z "$pids"; then
echo
echo "WARNING! An audio application uses ALSA driver:"
echo
for pid in $pids; do
ps --no-headers -p $pids || safe_exit 1
done
echo
if test $(question_bool "Would you like to kill these apps?") = "true"; then
if test -w /etc/pulse/client.conf ; then
echo "autospawn = no # alsa-delay-line-to-be-removed-1234" >> /etc/pulse/client.conf
fi
for pid in $pids; do
do_cmd kill $pid
done
sleep 2
local killed=
for pid in $pids; do
local a=$(ps --no-headers -p $pids)
if test -n "$a"; then
do_cmd kill -9 $pid
local killed="true"
fi
done
if test "$killed" = "true"; then
sleep 2
for pid in $pids; do
local a=$(ps --no-headers -p $pids)
if test -n "$a"; then
echo >&2 "Unable to kill application:"
echo >&2 " $a"
safe_exit 1
fi
done
fi
else
echo >&2 "Cannot continue with running audio applications."
safe_exit 1
fi
fi
}

# Echo the list of configured sound modules
configured_modules() {
if test -z "$useprocfs"; then
cat $modprobeconf | grep -E "^alias snd-card-" | cut -d ' ' -f 3
else
cat /proc/asound/modules | colrm 1 3
fi
}

# Echo the list of loaded sound modules
current_modules() {
$lsmod_prg | cut -d ' ' -f 1 | grep -E "^(snd[_-])"
}

# The loopback kernel driver detection
aloop_present() {
if test -r /proc/asound/card0/id; then
local id=$(cat /proc/asound/card0/id)
else
local id=""
fi
if test "$id" = "Loopback"; then
echo "yes"
fi
}

# Remove kernel modules, using two phases
# $@ is module names
my_rmmod() {
local phase2=
while test -n "$1"; do
if ! $rmmod_prg $1 2> /dev/null > /dev/null; then
local phase2="$phase2 $1"
else
echo "> rmmod $1"
fi
shift
done
for mod in $phase2; do
echo "> rmmod $mod"
if ! $rmmod_prg $mod ; then
echo >&2 "Unable to remove kernel module $mod."
safe_exit 1
fi
done
}

# Reload kernel modules
kernel_modules() {
kill_audio_apps
if test "$1" = "unload"; then
local present=$(aloop_present)
if test "$present" = "yes"; then
if ! $rmmod_prg snd-aloop; then
echo >&2 "Unable to remove kernel module snd-aloop."
safe_exit 1
fi
fi
fi
local curmods=$(current_modules)
local usermods=$(configured_modules)
my_rmmod $curmods
$modprobe_prg soundcore || safe_exit 1
if test "$1" = "load"; then
if ! $modprobe_prg snd-aloop; then
echo >&2 "Unable to install kernel module snd-aloop."
safe_exit 1
fi
fi
for mod in $usermods; do
if ! $modprobe_prg $mod; then
echo >&2 "Unable to install kernel module $mod."
safe_exit 1
fi
done
echo "Kernel modules ready:"
cat /proc/asound/cards
sleep 0.5
}

# If $package is alsa-driver then remove current modules
kernel_modules_remove() {
local curmods=$(current_modules)
if test -z "$curmods"; then
echo "No ALSA kernel modules to remove."
safe_exit 0
fi
kill_audio_apps
my_rmmod $curmods
echo "ALSA kernel modules removed."
}

function clean() {
echo -n "Removing tree $tmpdir:"
if test -d "$tmpdir"; then
if ! rm -rf "$tmpdir"; then
echo " failed"
safe_exit 1
fi
fi
echo " success"
}

function reindex_modprobe_conf() {
if test -z "$useprocfs"; then
cat > $tmpdir/run.awk <<EOF
function rewrite_line(line, res, c, i, j) {
split(line, l, " ")
if (l[1] == "alias") {
printf(l[1])
c = int(substr(l[2], 9)) + 1
printf(" snd-card-%i %s\n", c, l[3])
} else if (l[1] == "options") {
printf(l[1])
for (i = 2; i <= length(l); i++) {
c = substr(l[i], 0, 9)
if (c == "snd-card-") {
c = int(substr(l[i], 9)) + 1
printf(" snd-card-%i", c)
continue
}
c = substr(l[i], 0, 6)
if (c == "index=") {
printf(" index=")
c = substr(l[i], 6)
split(c, y, ",")
for (j = 1; j <= length(y); j++) {
c = int(y[j]) + 1
if (j > 1)
printf(",")
printf("%i", c)
}
continue
}
printf(" %s", l[i])
}
printf("\n")
} else if (l[1] == "remove") {
printf(l[1])
flag = 0
for (i = 2; i <= length(l); i++) {
if (l[i] == "/usr/sbin/alsactl" || l[i] == "store") {
flag++;
printf(" %s", l[i]);
continue;
}
if (flag == 2) {
c = int(l[i]) + 1;
printf(" %i", c);
flag = 0;
continue;
}
flag = 0;
printf(" %s", l[i]);
}
printf("\n")
} else {
print line
}
}

BEGIN { aloop=0; }
/alias snd-card-0 snd-aloop/ { aloop=1; next; }
/options snd-card-0 index=0/ { if (aloop) next; }
/options snd-aloop/ { next; }
/alias snd-card-/ { rewrite_line(\$0); next; }
/options snd-/ { rewrite_line(\$0); next; }
/remove snd-/ { rewrite_line(\$0); next; }
{ print \$0; }
EOF
cat $modprobeconf | awk -f $tmpdir/run.awk > $modprobeconf.new
rm $tmpdir/run.awk || safe_exit 1
else
local index=1
echo -n "" > $modprobeconf.new
declare -a modules printed
for mod in $(cat /proc/asound/modules | grep -Ev "^2[6789]" | colrm 1 3); do
if test "$mod" != "snd_aloop" -a "$mod" != "snd-aloop"; then
if test -z ${modules[$mod]}; then
modules[$mod]=$index
else
modules[$mod]="${modules[mod]},$index"
fi
echo "alias snd-card-$index $mod" >> $modprobeconf.new
echo "options snd-card-$index index=$index" >> $modprobeconf.new
fi
index=$(expr $index + 1)
done
for mod in $(cat /proc/asound/modules | grep -Ev "^2[6789]" | colrm 1 3); do
if test "$mod" != "snd_aloop" -a "$mod" != "snd-aloop"; then
if test -z ${printed[$mod]}; then
echo "options $mod index=${modules[$mod]}" >> $modprobeconf.new
printed[$mod]=yes
fi
fi
done
fi
cat >> $modprobeconf.new <<EOF
alias snd-card-0 snd-aloop
options snd-card-0 index=0
options snd-aloop index=0
EOF
if ! test -f $modprobeconf.alsa-delay.save ; then
if ! test -f $modprobeconf ; then
touch $modprobeconf.alsa-delay.save
else
cp $modprobeconf $modprobeconf.alsa-delay.save
fi
fi
mv $modprobeconf.new $modprobeconf || safe_exit 1
}

function modify_modprobe_conf() {
local check=$(cat $modprobeconf 2> /dev/null | grep -E "^alias snd-card-0 snd-aloop")
local present=$(aloop_present)
if test -n "$check"; then
echo "Module snd-aloop is already installed."
if ! test "$present" = "yes"; then
kernel_modules load
fi
else
reindex_modprobe_conf
if ! test "$present" = "yes"; then
kernel_modules load
else
kernel_modules
fi
fi
}

function myprintf() {
local cnt=$(echo "$1" | grep -o "%" | wc -l)
if test $cnt -eq 1; then
printf "$1" "$2"
else if test $cnt -eq 2; then
printf "$1" "$2" "$3"
else
printf "$1" "$2" "$3" "$4"
fi
fi
}

function check_ctl_name() {
$amixer_prg -D "$1" contents | grep "name='$2'"
}

function check_oss_mixer() {
grep ": mixer" /proc/asound/oss/devices
}

function get_card_id() {
$amixer_prg -D "$1" info | head -1 | cut -d '/' -f 1 | cut -d ' ' -f 3- | awk '{ print substr($0, 2, length($0)-2) }'
}

function generate_alsaloop_line() {
local file="$1"
local idx="$2"
local carg=$(myprintf "$cdevice" $ccard $cdev $idx)
local parg=$(myprintf "$pdevice" $pcard $pdev $idx)
local res="-C $carg -P $parg -T $idx -t $delay"
if test -n "$cctl"; then
local carg=$(myprintf "$cctl" $pcard $cdev $idx)
local res="$res -Y $carg"
fi
if test -n "$pctl"; then
local parg=$(myprintf "$pctl" $pcard $pdev $idx)
local res="$res -X $parg"
fi
if test -n "$arg"; then
local res="$res $arg"
fi
if test $idx -eq 7; then
if test -n "$one"; then
local res="$res $one"
fi
if test -z "$pctl"; then
local res="$res -X hw:$pcard"
fi
local mymix="$mix"
if test -z "$mymix"; then
local mymix="Master"
for mymix in Master "Master Mono" Headphone Headphone2 PCM Speaker \
"Desktop Speaker" Beep Front Rear Center LFE Side \
Surround ; do
local check=$(check_ctl_name hw:$pcard "$mymix Playback Switch")
if test -n "$check"; then
local res="$res -m \"name='$mymix Playback Switch'\""
fi
local check=$(check_ctl_name hw:$pcard "$mymix Playback Volume")
if test -n "$check"; then
local res="$res -m \"name='$mymix Playback Volume'\""
fi
done
else
local check=$(check_ctl_name hw:$pcard "$mymix Playback Switch")
if test -n "$check"; then
local res="$res -m \"name='$mymix Playback Switch'\""
fi
local check=$(check_ctl_name hw:$pcard "$mymix Playback Volume")
if test -n "$check"; then
local res="$res -m \"name='$mymix Playback Volume'\""
fi
fi
local check=$(check_oss_mixer)
if test -n "$check"; then
local res="$res -O \"$mymix@VOLUME\""
fi
fi
echo $res >> $file
}

function generate_alsaloop_conf() {
local idx=0
rm -f $alsaloopconf.new
while test $idx -lt 8; do
generate_alsaloop_line $alsaloopconf.new $idx
idx=$(expr $idx + 1)
done
mv $alsaloopconf.new $alsaloopconf || safe_exit 1
}

function kill_alsaloop() {
local pid=$($pidof_prg alsaloop)
if test -n "$pid"; then
echo "Killing alsaloop..."
fi
while test -n "$pid"; do
kill $pid
sleep 0.01
pid=$($pidof_prg alsaloop)
done
}

function restart_alsaloop() {
echo "Restarting alsaloop: delay $delay us."
if test -d /etc/systemd/system; then
systemctl start alsaloop.service
else
/etc/init.d/alsaloop start
fi
sleep 0.4
local pid=$($pidof_prg alsaloop)
if test -z "$pid"; then
echo "ERROR: Not started, check /var/log/messages for details"
else
if test -d /etc/systemd/system; then
systemctl status alsaloop.service
else
ps -p $pid
fi
fi
}

function create_systemd_service() {
if test -r /etc/systemd/system/alsaloop.service; then
echo "/etc/systemd/system/alsaloop.service exists"
else
cat >> /etc/systemd/system/alsaloop.service <<EOF
# This file was created by the alsa-delay utility

[Unit]
Description=The alsaloop daemon service
After=alsa-restore.service
Before=shutdown.target
Conflicts=shutdown.target

[Service]
Type=simple
ExecPre=-/sbin/modprobe snd-aloop
ExecStart=-/usr/bin/alsaloop --syslog --config $alsaloopconf
EOF
ln -sf ../alsaloop.service /etc/systemd/system/basic.target.wants/alsaloop.service
fi
}

function create_initd() {
if test -x /etc/init.d/alsaloop; then
echo "/etc/init.d/alsaloop exists"
else
cat >> /etc/init.d/alsaloop <<EOF
#! /bin/sh

# alsaloop init file
# Copyright (C) 2010 Jaroslav Kysela <jkysela@redhat.com>

# For RedHat and cousins:
# chkconfig: 2345 99 01
# description: Start alsaloop daemon
# processname: alsaloop

### BEGIN INIT INFO
# Provides: alsaloop
# Required-Start: \$local_fs
# Required-Stop: \$local_fs
# Should-Start:
# Short-Description: ALSALOOP
# Description: ALSALOOP
### END INIT INFO

# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2, or (at your option) any later
# version.
# You should have received a copy of the GNU General Public License (for
# example COPYING); if not, write to the Free Software Foundation, Inc., 675
# Mass Ave, Cambridge, MA 02139, USA.
# This code was originally developed as a Senior Thesis by Michael Cornwell
# at the Concurrent Systems Laboratory (now part of the Storage Systems
# Research Center), Jack Baskin School of Engineering, University of
# California, Santa Cruz. http://ssrc.soe.ucsc.edu/.

alsaloop_opts="--daemonize --workaround serialopen --config $alsaloopconf"

ALSALOOP_BIN=/usr/bin/alsaloop
test -x /usr/local/bin/alsaloop && ALSALOOP_BIN=/usr/local/bin/alsaloop

# Source function library
. /etc/rc.d/init.d/functions

RETVAL=0
prog=alsaloop
pidfile=/var/lock/subsys/alsaloop

start()
{
modprobe snd-aloop
echo -n \$"Starting \$prog: "
daemon \$ALSALOOP_BIN \$alsaloop_opts
RETVAL=\$?
echo
[ \$RETVAL = 0 ] && touch \$pidfile
return \$RETVAL
}

stop()
{
echo -n \$"Shutting down \$prog: "
killproc \$ALSALOOP_BIN
RETVAL=\$?
echo
rm -f \$pidfile
return \$RETVAL
}

case "\$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
try-restart)
if [ -f \$pidfile ]; then
stop
start
fi
;;
status)
status $prog
RETVAL=$?
;;
*)
echo \$"Usage: \$0 {start|stop|restart|try-restart}"
RETVAL=3
esac

exit \$RETVAL
EOF
chmod 755 /etc/init.d/alsaloop || safe_exit 1
$chkconfig_prg --add alsaloop
$chkconfig_prg alsaloop on
fi
}

function modify_pa_conf() {

if grep Loopback /etc/pulse/default.pa > /dev/null; then
echo "/etc/pulse/default.pa already modified"
else
if test -f /etc/pulse/default.pa; then
local pcardid=$(get_card_id "hw:$pcard")
if ! test -f /etc/pulse/default.pa.alsa-delay.save ; then
cp /etc/pulse/default.pa /etc/pulse/default.pa.alsa-delay.save
fi
cat /etc/pulse/default.pa | \
sed -e 's/^load-module module-udev-detect/#load-module module-udev-detect # commented by alsa-delay/' \
-e 's/^load-module module-detect/#load-module module-detect # commented by alsa-delay/' \
-e "s/^### Automatically load driver modules for Bluetooth hardware/load-module module-alsa-card device_id=Loopback\nload-module module-alsa-card device_id=$pcardid\n\n### Automatically load driver modules for Bluetooth hardware/" > /etc/pulse/default.pa.new
if test -s /etc/pulse/default.pa.new; then
mv /etc/pulse/default.pa.new /etc/pulse/default.pa
echo "/etc/pulse/default.pa changed"
fi
fi
fi

local file=
local asoundconf=
if test -d /etc/alsa -a -f /etc/alsa/pulse-default.conf; then
file=/etc/alsa/alsaloop-default.conf
asoundconf=yes
fi
if test -f /usr/share/alsa/alsa.conf.d/99-pulseaudio-default.conf ; then
file=/usr/share/alsa/alsa.conf.d/A0-alsaloop-default.conf
fi
if test -z "$file"; then
echo "unknown PulseAudio setup (asound.conf)"
elif test -f $file; then
echo "$file exists"
else
cat >> $file <<EOF
pcm.!default {
@args [ CARD ]
@args.CARD {
type string
}
type asym
playback.pcm "plughw:Loopback"
capture.pcm {
type pulse
}
}
EOF
if test -n "$asoundconf"; then
cat /etc/asound.conf | sed 's/pulse-default.conf/alsaloop-default.conf/g' > /etc/asound.conf.new
if test -s /etc/asound.conf.new; then
mv /etc/asound.conf.new /etc/asound.conf
fi
fi
fi
}

function remove() {
if test -f /etc/pulse/default.pa.alsa-delay.save ; then
echo "Restoring /etc/pulse/default.pa"
mv /etc/pulse/default.pa.alsa-delay.save /etc/pulse/default.pa
fi
if test -f /etc/init.d/alsaloop ; then
echo "Removing /etc/init.d/alsaloop service"
$chkconfig_prg alsaloop off
$chkconfig_prg --del alsaloop
rm /etc/init.d/alsaloop
fi
if test -f /etc/systemd/system/alsaloop.service ; then
echo "Removing /etc/systemd/system/alsaloop.service"
$systemctl_prg disable alsaloop.service
rm /etc/systemd/system/alsaloop.service
fi
if test -f $alsaloopconf ; then
echo "Removing $alsaloopconf"
rm $alsaloopconf
fi
if test -f /etc/alsa/alsaloop-default.conf ; then
echo "Removing /etc/alsa/alsaloop-default.conf"
rm /etc/alsa/alsaloop-default.conf
fi
if test -f /usr/share/alsa/alsa.conf.d/A0-alsaloop-default.conf ; then
echo "Removing /usr/share/alsa/alsa.conf.d/A0-alsaloop-default.conf"
rm /usr/share/alsa/alsa.conf.d/A0-alsaloop-default.conf
fi
if grep "alsaloop-default.conf" /etc/asound.conf > /dev/null 2> /dev/null ; then
echo "Modifying /etc/asound.conf"
cat /etc/asound.conf | sed 's/alsaloop-default.conf/pulse-default.conf/g' > /etc/asound.conf.new
if test -s /etc/asound.conf.new; then
mv /etc/asound.conf.new /etc/asound.conf
fi
fi
if test -f $modprobeconf.alsa-delay.save ; then
echo "Restoring $modprobeconf"
if test -s $modprobeconf.alsa-delay.save ; then
mv $modprobeconf.alsa-delay.save $modprobeconf
else
rm $modprobeconf.alsa-delay.save
rm $modprobeconf
fi
fi
if test $(aloop_present) = "yes"; then
kernel_modules unload
fi
}

rundir=$(pwd)
export LC_ALL=C
export LANGUAGE=C

check_environment

if test -n "$clean"; then
clean
safe_exit 0
fi

if test -n "$remove"; then
kill_alsaloop
remove
clean
safe_exit 0
fi

kill_alsaloop
if test -d /etc/systemd/system ; then
create_systemd_service
else
create_initd
fi
modify_modprobe_conf
generate_alsaloop_conf
if test -n "$pa"; then
modify_pa_conf
fi
restart_alsaloop

clean

safe_exit 0

78
SOURCES/alsa-delay.1

@ -0,0 +1,78 @@
.TH ALSA-DELAY 1 "6 Jane 2016"
.SH NAME
alsadelay \- a command to (re)initialize sound hardware

.SH SYNOPSIS
\fBalsa-delay\fP \fI[options]\fP \fIrequested_delay_in_ms\fP [\fIoutput_card\fP[,\fIdevice\fP]]

.SH DESCRIPTION
\fBalsa-delay\fP is a command\-line utility to setup an audio
delay. The snd-aloop ALSA driver is used to send all PCM streams
back to the user space and the alsaloop utility is used to send
this stream to a real hardware.

The parameter \fIoutput_card\fP is ALSA card index (number) or
string card identifier. The parameter \fIdevice\fP is ALSA device number.

Use \fIaplay -l\fP to list available cards and devices.


.SH OPTIONS
.TP
\fI\-\-h,\-\-help\fP
Print help.
.TP
\fI\-\-q,\-\-quiet\fP
Quiet mode.
.TP
\fI\-\-y,\-\-yes\fP
Do not ask any questions - answer is always yes.
.TP
\fI\-\-c,\-\-clean\fP
Clean temporary directory.
.TP
\fI\-\-r,\-\-remove\fP
Remove the alsa-delay config modifications (modprobe, pulse-audio).
.TP
\fI\-\-tmpdir=<DIR>\fP
Set temporary directory.

.SH OPTIONS (for alsaloop daemon)
.TP
\fI\-\-pdevice=<DEV>\fP
Force playback device.
.TP
\fI\-\-cdevice=<DEV>\fP
Force capture device.
.TP
\fI\-\-pctl=<DEV>\fP
Force playback control device.
.TP
\fI\-\-cctl=<DEV>\fP
Force capture control device.
.TP
\fI\-\-one=<ARG>\fP
Pass this argument to last thread.
.TP
\fI\-\-arg=<ARG>\fP
Pass this argument to all threads.
.TP
\fI\-\-mix=<ARG>\fP
Redirect ALSA mixer controls to OSS mixer (default is Master).
.TP
\fI\-\-pa\fP
Redirect pulse-audio to alsaloop.

.SH NOTE

For devices, the string %s is replaced with the card index
and second string %s is replaced with the device index
and third string %s is replaced the substream index (0-7).

Example: hw:%s,%s,%s (card, device, substream)

.SH SEE ALSO
\fB
alsaloop(1)
amixer(1)
alsamixer(1)

16
SOURCES/alsa-restore.service

@ -0,0 +1,16 @@
#
# Note that two different ALSA card state management schemes exist and they
# can be switched using a file exist check - /etc/alsa/state-daemon.conf .
#

[Unit]
Description=Save/Restore Sound Card State
ConditionPathExists=!/etc/alsa/state-daemon.conf
ConditionPathExistsGlob=/dev/snd/control*
ConditionPathExists=/var/lib/alsa/asound.state

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=-/sbin/alsactl -E ALSA_CONFIG_PATH=/etc/alsa/alsactl.conf --initfile=/lib/alsa/init/00main restore
ExecStop=/sbin/alsactl -E ALSA_CONFIG_PATH=/etc/alsa/alsactl.conf store

13
SOURCES/alsa-state.service

@ -0,0 +1,13 @@
#
# Note that two different ALSA card state management schemes exist and they
# can be switched using a file exist check - /etc/alsa/state-daemon.conf .
#

[Unit]
Description=Manage Sound Card State (restore and store)
ConditionPathExists=/etc/alsa/state-daemon.conf

[Service]
Type=simple
ExecStart=-/usr/sbin/alsactl -s -n 19 -c -E ALSA_CONFIG_PATH=/etc/alsa/alsactl.conf --initfile=/lib/alsa/init/00main rdaemon
ExecStop=-/usr/sbin/alsactl -s kill save_and_quit

36
SOURCES/alsa-utils-1.1.6-post.patch

@ -0,0 +1,36 @@
From da4d5bd53a1a57d1b39318b83d3280fbcd78e9f6 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Tue, 15 May 2018 22:17:01 +0200
Subject: [PATCH] aplay: Fix invalid file size check for non-regular files

aplay tries to check the file size via fstat() at parsing the format
headers and avoids parsing when the size is shorter than the given
size. This works fine for regular files, but when a special file like
pipe is passed, it fails, eventually leading to the fallback mode
wrongly.

A proper fix is to do this sanity check only for a regular file.

Reported-by: Jay Foster <jay@systech.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
aplay/aplay.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/aplay/aplay.c b/aplay/aplay.c
index bbd7fff..63ec9ef 100644
--- a/aplay/aplay.c
+++ b/aplay/aplay.c
@@ -2821,7 +2821,8 @@ static int read_header(int *loaded, int header_size)
/* don't be adventurous, get out if file size is smaller than
* requested header size */
- if (buf.st_size < header_size)
+ if ((buf.st_mode & S_IFMT) == S_IFREG &&
+ buf.st_size < header_size)
return -1;
if (*loaded < header_size) {
--
2.13.6

8
SOURCES/alsa.rules

@ -0,0 +1,8 @@
ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", GOTO="alsa_restore_go"
GOTO="alsa_restore_end"

LABEL="alsa_restore_go"
TEST!="/etc/alsa/state-daemon.conf", RUN+="/sbin/alsactl -E ALSA_CONFIG_PATH=/etc/alsa/alsactl.conf --initfile=/lib/alsa/init/00main restore /dev/$name"
TEST=="/etc/alsa/state-daemon.conf", RUN+="/sbin/alsactl -E ALSA_CONFIG_PATH=/etc/alsa/alsactl.conf --initfile=/lib/alsa/init/00main nrestore /dev/$name"

LABEL="alsa_restore_end"

14
SOURCES/alsactl.conf

@ -0,0 +1,14 @@
#
# ALSA library configuration file for alsactl tool
# (/usr/share/alsa tree is not necessary for alsactl)
#

ctl.hw {
@args [ CARD ]
@args.CARD {
type string
default "0"
}
type hw
card $CARD
}

6
SOURCES/alsaunmute

@ -0,0 +1,6 @@
#!/bin/sh

exec /sbin/alsactl \
-E ALSA_CONFIG_PATH=/etc/alsa/alsactl.conf \
--initfile=/lib/alsa/init/00main \
init

28
SOURCES/alsaunmute.1

@ -0,0 +1,28 @@
.TH ALSAUNMUTE 1 "21 April 2010"
.SH NAME
alsaunmute \- a simple script to initialize ALSA sound devices

.SH DESCRIPTION
\fBalsaunmute\fP is a shell script which runs the \fBalsactl(1)\fP
utility with \fIinit\fP argument (see the script for details).

.SH OPTIONS
None

.SS
Example:
\fBalsaunmute\fR

.SH SEE ALSO
\fB
alsactl(1),
alsamixer(1),
amixer(1)
\fP

.SH BUGS
None known.

.SH AUTHOR
\fBalsaunmute\fP is by Jaroslav Kysela <perex@perex.cz>

523
SPECS/alsa-utils.spec

@ -0,0 +1,523 @@
%define baseversion 1.1.6
#define fixversion .1

Summary: Advanced Linux Sound Architecture (ALSA) utilities
Name: alsa-utils
Version: %{baseversion}%{?fixversion}
Release: 1%{?dist}
License: GPLv2+
Group: Applications/Multimedia
URL: http://www.alsa-project.org/
Source: ftp://ftp.alsa-project.org/pub/utils/alsa-utils-%{version}.tar.bz2
Source4: alsaunmute
Source5: alsaunmute.1
Source7: alsa-delay
Source8: alsa-delay.1
Source10: alsa.rules
Source11: alsactl.conf
Source20: alsa-restore.service
Source22: alsa-state.service
Patch0: alsa-utils-1.1.6-post.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: alsa-lib-devel >= %{baseversion}
BuildRequires: libsamplerate-devel
BuildRequires: ncurses-devel
BuildRequires: gettext-devel
BuildRequires: xmlto python-docutils
BuildRequires: systemd-units >= 39-2
Conflicts: udev <= 179-2
# use latest alsa-lib - the executables in this package requires latest API
Requires: alsa-lib%{?_isa} >= %{baseversion}, systemd-units >= 39-2
Conflicts: filesystem < 3

%description
This package contains command line utilities for the Advanced Linux Sound
Architecture (ALSA).

%prep
%setup -q -n %{name}-%{version}
%patch0 -p1 -b .post

%build
%configure CFLAGS="$RPM_OPT_FLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" --disable-alsaconf \
--with-udev-rules-dir=%{_prefix}/lib/udev/rules.d \
--with-systemdsystemunitdir=%{_unitdir}
%{__make} %{?_smp_mflags}
%{__cp} %{SOURCE4} .

%install
make install DESTDIR=$RPM_BUILD_ROOT
%find_lang %{name}

# Install ALSA udev rules
mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/udev/rules.d
install -p -m 644 %{SOURCE10} $RPM_BUILD_ROOT/%{_prefix}/lib/udev/rules.d/90-alsa-restore.rules
mkdir -p $RPM_BUILD_ROOT/%{_unitdir}
install -p -m 644 %{SOURCE20} $RPM_BUILD_ROOT/%{_unitdir}/alsa-restore.service
install -p -m 644 %{SOURCE22} $RPM_BUILD_ROOT/%{_unitdir}/alsa-state.service

# Install support utilities
mkdir -p -m755 $RPM_BUILD_ROOT/%{_bindir}
install -p -m 755 alsaunmute %{buildroot}/%{_bindir}
mkdir -p -m755 $RPM_BUILD_ROOT/%{_mandir}/man1
install -p -m 644 %{SOURCE5} %{buildroot}/%{_mandir}/man1/alsaunmute.1

# Move /usr/share/alsa/init to /usr/lib/alsa/init
mkdir -p -m 755 %{buildroot}/%{_prefix}/lib/alsa
mv %{buildroot}%{_datadir}/alsa/init %{buildroot}/%{_prefix}/lib/alsa

# Link /usr/lib/alsa/init to /usr/share/alsa/init back
ln -s ../../lib/alsa/init %{buildroot}%{_datadir}/alsa/init

# Create a place for global configuration
mkdir -p -m 755 %{buildroot}/etc/alsa
install -p -m 644 %{SOURCE11} %{buildroot}/etc/alsa

# Create /var/lib/alsa tree
mkdir -p -m 755 %{buildroot}/var/lib/alsa

# Install alsa-info.sh script
rm -f %{buildroot}/usr/sbin/alsa-info.sh
install -p -m 755 $RPM_BUILD_DIR/%{name}-%{version}/alsa-info/alsa-info.sh %{buildroot}/usr/sbin/alsa-info
ln -s alsa-info %{buildroot}/usr/sbin/alsa-info.sh

# Install alsa-delay script
install -p -m 755 %{SOURCE7} %{buildroot}/usr/bin/alsa-delay
install -p -m 644 %{SOURCE8} %{buildroot}/%{_mandir}/man1/alsa-delay.1

%files -f %{name}.lang
%defattr(-,root,root,-)
%doc COPYING ChangeLog README TODO
%config /etc/alsa/*
%{_prefix}/lib/udev/rules.d/*
%{_unitdir}/*
%{_unitdir}/sound.target.wants/*
%{_prefix}/lib/alsa/init/*
%{_bindir}/*
%{_sbindir}/*
%{_datadir}/alsa/
%{_datadir}/sounds/*
%{_mandir}/man?/*
%dir /etc/alsa/
%dir %{_prefix}/lib/alsa/
%dir %{_prefix}/lib/alsa/init/
%dir /var/lib/alsa/

%pre
if [ ! -r /lib/systemd/system/alsa-state.service ]; then
[ -d /etc/alsa ] || mkdir -m 0755 /etc/alsa
echo "# Remove this file to disable the alsactl daemon mode" > \
/etc/alsa/state-daemon.conf
fi

%post
if [ -s /etc/alsa/asound.state -a ! -s /etc/asound.state ] ; then
mv /etc/alsa/asound.state /etc/asound.state
fi
if [ -s /etc/asound.state -a ! -s /var/lib/alsa/asound.state ] ; then
mv /etc/asound.state /var/lib/alsa/asound.state
fi

%changelog
* Tue May 22 2018 Jaroslav Kysela <jkysela@redhat.com> - 1.1.6-1
- Updated to 1.1.6
- Resolves: rhbz#1578685

* Fri Mar 24 2017 Jaroslav Kysela <jkysela@redhat.com> - 1.1.3-2
- Updated to 1.1.3
- Resolves: rhbz#1399509

* Mon Jun 6 2016 Jaroslav Kysela <jkysela@redhat.com> - 1.1.1-1
- Updated to 1.1.1
- Add alsa-delay man page
- Resolves: rhbz#1264129

* Fri Dec 12 2014 Jaroslav Kysela <jkysela@redhat.com> - 1.0.28-4
- Fixed aplay -d regression
- Resolves: rhbz#1172189

* Wed Sep 24 2014 Jaroslav Kysela <jkysela@redhat.com> - 1.0.28-3
- alsactl locking fixes, coverity fixes

* Tue Sep 23 2014 Jaroslav Kysela <jkysela@redhat.com> - 1.0.28-2
- Fixes for alsa-info.sh

* Mon Sep 15 2014 Jaroslav Kysela <jkysela@redhat.com> - 1.0.28-1
- Updated to 1.0.28
- Resolves: rhbz#1112206

* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 1.0.27.2-5
- Mass rebuild 2014-01-24

* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 1.0.27.2-4
- Mass rebuild 2013-12-27

* Tue Jul 30 2013 Jaroslav Kysela <jkysela@redhat.com> - 1.0.27.2-3
- Added an updated alsa-delay script from RHEL 6

* Fri Jul 19 2013 Jaroslav Kysela <jkysela@redhat.com> - 1.0.27.2-2
- Fix alsa-state.service (rkill -> kill) - rhbz#986141

* Wed Jul 10 2013 Jaroslav Kysela <jkysela@redhat.com> - 1.0.27.2-1
- Updated to 1.0.27.2

* Tue May 21 2013 Jaroslav Kysela <jkysela@redhat.com> - 1.0.27.1-1
- Updated to 1.0.27.1
- Updated alsa-info.sh to 0.4.61
- Remove dependency on the dialog package (it is optional for alsa-info.sh)

* Mon Apr 15 2013 Jaroslav Kysela <jkysela@redhat.com> - 1.0.27-2
- Fix the new udev rules (missing GOTO) - bug#951750
- Fix the string size in alsactl (underflow)

* Fri Apr 12 2013 Jaroslav Kysela <jkysela@redhat.com> - 1.0.27-1
- Updated to 1.0.27, activated the alsactl daemon mode
- Updated alsa-info.sh to 0.4.61

* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.26-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Thu Sep 6 2012 Jaroslav Kysela <jkysela@redhat.com> - 1.0.26-1
- Updated to 1.0.26

* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.25-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Tue Apr 3 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 1.0.25-8
- bump Release to be larger than F-16

* Tue Jan 31 2012 Jaroslav Kysela <perex@perex.cz> 1.0.25-1
- update to 1.0.25 final

* Wed Jan 25 2012 Harald Hoyer <harald@redhat.com> 1.0.24.1-8
- install everything in /usr
https://fedoraproject.org/wiki/Features/UsrMove

* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.24.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Fri Jan 6 2012 Lennart Poettering <lpoetter@redhat.com> - 1.0.24.1-6
- Always build with systemd support

* Fri Jan 6 2012 Lennart Poettering <lpoetter@redhat.com> - 1.0.24.1-5
- When installing the Fedora service files make sure to override the
actual service files with them instead of the symlinks to them
- Drop StandardOutput=syslog since that is the default now and we
don't want to needlessly override the default

* Mon Oct 31 2011 Bastien Nocera <bnocera@redhat.com> 1.0.24.1-4
- Add patch to unmute MacBookAir4,1 speakers

* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.24.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Fri Jan 28 2011 Jaroslav Kysela <jkysela@redhat.com> 1.0.24.1-2
- add missing systemd files, add dependency on systemd-units
- use own udev rule file for /lib/udev/rules.d
- create /var/lib/alsa directory for asound.state

* Fri Jan 28 2011 Jaroslav Kysela <jkysela@redhat.com> 1.0.24.1-1
- updated to 1.0.24.1 final (new automake/autoconf)

* Fri Jan 28 2011 Jaroslav Kysela <jkysela@redhat.com> 1.0.24-1
- updated to 1.0.24 final
- updated alsa-info.sh script to 0.4.60

* Thu Jan 13 2011 Ville Skyttä <ville.skytta@iki.fi> - 1.0.23-4
- Fix alsaunmute man page permissions, let rpmbuild compress it.

* Mon Jun 28 2010 Jaroslav Kysela <jkysela@redhat.com> 1.0.23-3
- add requires line (bug#526492) for specific alsa-lib package
- add requires line for dialog package (bug#561988)
- added man page for alsaunmute (bug#526174)
- updated alsa-info.sh script to 0.4.59

* Mon Jun 28 2010 Jaroslav Kysela <jkysela@redhat.com> 1.0.23-1
- updated to 1.0.23 final

* Sun Apr 18 2010 Thomas Spura <tomspur@fedoraproject.org> 1.0.22-2
- don't own %%{_datadir}/sounds (#569425)

* Fri Jan 1 2010 Jaroslav Kysela <jkysela@redhat.com> 1.0.22-1
- updated to 1.0.22 final

* Thu Sep 3 2009 Jaroslav Kysela <jkysela@redhat.com> 1.0.21-2
- added missing patch file

* Thu Sep 3 2009 Jaroslav Kysela <jkysela@redhat.com> 1.0.21-1
- updated to 1.0.21 final
- updated alsa-info.sh script to 0.4.58

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.20-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Fri May 15 2009 Jaroslav Kysela <jkysela@redhat.com> 1.0.20-3
- added missing Headphone Volume patch

* Fri May 15 2009 Jaroslav Kysela <jkysela@redhat.com> 1.0.20-2
- fixed Headphone Volume issue (bz#500956)

* Wed May 06 2009 Jaroslav Kysela <jkysela@redhat.com> 1.0.20-1
- updated to 1.0.20 final
- updated alsa-info.sh script to 0.4.56

* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.19-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Mon Feb 09 2009 Jaroslav Kysela <jkysela@redhat.com> 1.0.19-3
- fixed volume initialization for some HDA codecs
- updated alsa-info.sh to 0.4.54

* Wed Feb 04 2009 Jaroslav Kysela <jkysela@redhat.com> 1.0.19-2
- add dir directive for /lib/alsa and /lib/alsa/init directories (bz#483324)

* Tue Jan 20 2009 Jaroslav Kysela <jkysela@redhat.com> 1.0.19-1
- updated to 1.0.19 final

* Tue Nov 04 2008 Jaroslav Kysela <jkysela@redhat.com> 1.0.18-5
- fixed building

* Tue Nov 04 2008 Jaroslav Kysela <jkysela@redhat.com> 1.0.18-4
- updated to 1.0.18 final
- updated alsa-info.sh script

* Thu Sep 18 2008 Jaroslav Kysela <jkysela@redhat.com> 1.0.18-3.rc3
- fixed alsa-info.sh link

* Thu Sep 18 2008 Jaroslav Kysela <jkysela@redhat.com> 1.0.18-2.rc3
- fixed /lib/alsa/init path for x86_64 (was /lib64/alsa/init)
- added /etc/alsa/asound.state -> /etc/asound.state shift to post section
- fix udev rules (ommited /dev/ prefix for the alsactl utility)
- added --ignore option for alsactl (added also to upstream)

* Thu Sep 11 2008 Jaroslav Kysela <jkysela@redhat.com> 1.0.18-1.rc3
- updated to 1.0.18rc3
- updated alsa-info.sh script to 0.4.51
- removed alsacard utility
- removed salsa utility
- changed alsaunmute to use 'alsactl init' now
- updated ALSA udevd rules to use alsactl
- moved /etc/alsa/asound.state back to /etc/asound.state

* Mon Jul 21 2008 Jaroslav Kysela <jkysela@redhat.com> 1.0.17-1
- updated to 1.0.17 final
- updated alsa-info.sh script to 0.4.48

* Mon Apr 28 2008 Martin Stransky <stransky@redhat.com> 1.0.16-3
- Added alsa-info.sh script to /usr/bin/alsa-info

* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.0.16-2
- Autorebuild for GCC 4.3

* Mon Feb 18 2008 Martin Stransky <stransky@redhat.com> 1.0.16-1
- updated to 1.0.16 final

* Tue Jan 15 2008 Mikel Ward <mikel@mikelward.com>
- add salsa man page

* Mon Oct 29 2007 Martin Stransky <stransky@redhat.com> 1.0.15-1
- updated to 1.0.15 final

* Mon Oct 1 2007 Martin Stransky <stransky@redhat.com> 1.0.15-0.4.rc1
- moved saved volume settings back to /etc/alsa
(per discussion at #293301)

* Mon Sep 24 2007 Martin Stransky <stransky@redhat.com> 1.0.15-0.3.rc1
- fixed #303151 - wrong salsa dir in /etc/udev/rules.d/90-alsa.rules

* Thu Sep 20 2007 Matthias Saou <http://freshrpms.net/> 1.0.15-0.2.rc1
- Update License field.
- Mark udev rule as config.
- Use find_lang macro again to include translations (why was it removed?).

* Wed Sep 19 2007 Martin Stransky <stransky@redhat.com> 1.0.15-0.1.rc1
- new upstream
- moved saved volume settings to /var/lib (#293301)
- patched alsactl for that (#255421)

* Thu Aug 16 2007 Martin Stransky <stransky@redhat.com> 1.0.14-2
- added an entry to alsaunmute for HP xw4550 (#252171)

* Wed Jul 25 2007 Martin Stransky <stransky@redhat.com> 1.0.14-1
- release bump

* Thu Jun 7 2007 Martin Stransky <stransky@redhat.com> 1.0.14-0.8
- new upstream

* Wed May 30 2007 Martin Stransky <stransky@redhat.com> 1.0.14-0.7.rc2
- updated alsanumute for Siemens Lifebook S7020 (#241639)
- unmute Master Mono for all drivers

* Wed May 2 2007 Martin Stransky <stransky@redhat.com> 1.0.14-0.6.rc2
- added fix for #238442 (unmute Mono channel for w4550,
xw4600, xw6600, and xw8600)

* Wed Apr 18 2007 Martin Stransky <stransky@redhat.com> 1.0.14-0.5.rc2
- added more funcionality to salsa (save/load sound settings),
moved volume settings to /etc/alsa/

* Tue Apr 10 2007 Martin Stransky <stransky@redhat.com> 1.0.14-0.4.rc2
- added support for large files
- minor fix in alsaunmute
- fixed #209239 - alsaconf: Stale language-dependent files
- fixed #233765 - alsa-utils : unowned directories

* Fri Jan 19 2007 Martin Stransky <stransky@redhat.com> 1.0.14-0.3.rc2
- new upstream

* Wed Jan 10 2007 Martin Stransky <stransky@redhat.com> 1.0.14-0.2.rc1
- added a config line for hda-intel driver

* Mon Dec 11 2006 Martin Stransky <stransky@redhat.com> 1.0.14-0.1.rc1
- new upstream

* Mon Oct 2 2006 Martin Stransky <stransky@redhat.com> 1.0.12-3
- fix for #207384 - Audio test fails during firstboot

* Fri Aug 25 2006 Martin Stransky <stransky@redhat.com> 1.0.12-2
- new upstream

* Mon Aug 07 2006 Martin Stransky <stransky@redhat.com> 1.0.12-1.rc2
- new upstream

* Thu Jul 20 2006 Martin Stransky <stransky@redhat.com> 1.0.12-1.rc1
- new upstream

* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - sh: line 0: fg: no job control
- rebuild

* Tue May 30 2006 Martin Stransky <stransky@redhat.com> 1.0.11-7
- new upstream

* Wed May 3 2006 Martin Stransky <stransky@redhat.com> 1.0.11-6.rc2
- removed HW specific switch - it should be set by driver

* Thu Apr 6 2006 Martin Stransky <stransky@redhat.com> 1.0.11-5.rc2
- fixed rules file (#186494)
- fixed Audigi mixer switch (#187807)

* Mon Feb 20 2006 Martin Stransky <stransky@redhat.com> 1.0.11-3.rc2
- removed autoreconf

* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 1.0.11-2.rc2.2
- bump again for double-long bug on ppc(64)

* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 1.0.11-2.rc2.1
- rebuilt for new gcc4.1 snapshot and glibc changes

* Wed Jan 25 2006 Martin Stransky <stransky@redhat.com> 1.0.11-2.rc2
- added volume option to alsaunmute utility (for s-c-s)

* Thu Jan 12 2006 Martin Stransky <stransky@redhat.com> 1.0.11-1.rc2
- new upstream

* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
- rebuilt

* Thu Nov 24 2005 Martin Stransky <stransky@redhat.com> 1.0.10rf-1
- new upstream version
- added alias for snd-azx

* Wed Nov 9 2005 Martin Stransky <stransky@redhat.com> 1.0.10rc1-2
- fix for #169292 - RHEL4U2 xw4300 IntelHD internal speakers muted by default

* Tue Sep 27 2005 Martin Stransky <stransky@redhat.com> 1.0.10rc1-1
- new upstream version

* Tue Aug 23 2005 Martin Stransky <stransky@redhat.com> 1.0.9-5
- unmute External Amplifier by default (#166153)

* Wed Jul 13 2005 Bill Nottingham <notting@redhat.com> 1.0.9-4
- migrate the alsa restore program to a udev rule, not a dev.d program
- conflict with appropriate udev
- move alsaunmute, alsacard to /bin

* Mon Jul 11 2005 Martin Stransky <stransky@redhat.com> 1.0.9-3
- New alsaunmute utility
- Add autoconf to BuildRequires (#162483)

* Thu Jun 16 2005 Martin Stransky <stransky@redhat.com> 1.0.9-2
- New upstream version

* Mon May 30 2005 Martin Stransky <stransky@redhat.com> 1.0.9-1
- New upstream version.
- moved alsacard utility from alsa-lib to alsa-tools

* Mon May 16 2005 Bill Nottingham <notting@redhat.com> 1.0.9rc2-2
- make sure 'Wave' playback channel isn't muted (#157850)

* Mon Apr 25 2005 Martin Stransky <stransky@redhat.com> 1.0.9rc2-1
- New upstream version
- add %%find_lang macro (#155719)

* Fri Apr 1 2005 Bill Nottingham <notting@redhat.com> 1.0.8-4
- replace the dev.d script with a program that calls alsactl to
restore the volume if there is a saved config, and just unmutes
the playback channels if there isn't one (#132575)

* Mon Mar 7 2005 Martin Stransky <stransky@redhat.com>
- rebuilt

* Wed Feb 16 2005 Martin Stransky <stransky@redhat.com> 1.0.8-2
- fix #148011 (add gettext-devel to BuildRequires)
- add $RPM_OPT_FLAGS to CFLAGS

* Wed Jan 26 2005 Martin Stransky <stransky@redhat.com> 1.0.8-1
- update to 1.0.8
- temporarily removed alsa-lauch.patch

* Sat Jan 08 2005 Colin Walters <walters@redhat.com> 1.0.7-2
- New patch alsa-utils-1.0.7-alsa-launch.patch, adds the
alsa-launch command.
- New source file xinit-alsa-launch.sh, integrates alsa-launch
into X startup
- BR xorg-x11-devel

* Thu Jan 06 2005 Colin Walters <walters@redhat.com> 1.0.7-1
- New upstream version

* Tue Oct 19 2004 Bill Nottingham <notting@redhat.com> 1.0.6-3
- tweak dev.d sound restore script (#133535, revisited)

* Thu Oct 14 2004 Bill Nottingham <notting@redhat.com> 1.0.6-2
- move alsactl to /sbin
- include a dev.d script for mixer restoring (#133535)

* Mon Aug 30 2004 Bill Nottingham <notting@redhat.com> 1.0.6-1
- update to 1.0.6

* Fri Jul 2 2004 Bill Nottingham <notting@redhat.com> 1.0.5-1
- update to 1.0.5

* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Thu Mar 11 2004 Bill Nottingham <notting@redhat.com> 1.0.3-1
- update to 1.0.3

* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Wed Jan 28 2004 Bill Nottingham <notting@redhat.com> 1.0.2-1
- update to 1.0.2

* Wed Dec 17 2003 Bill Nottingham <notting@redhat.com> 1.0.0-0.rc2
- import fedora.us RPM, take out save-alsamixer & alsaconf for now

* Thu Dec 11 2003 Thorsten Leemhuis <fedora[AT]leemhuis.info> 1.0.0-0.fdr.0.4.rc2
- rename alsamixer-saver save-alsamixer

* Mon Dec 8 2003 Thorsten Leemhuis <fedora[AT]leemhuis.info> 1.0.0-0.fdr.0.3.rc2
- Integrate Michael Schwendt's script alsamixer-saver; Still not quite sure if
this script is the right way -- but mine didn't work...

* Sat Dec 6 2003 Thorsten Leemhuis <fedora[AT]leemhuis.info> 1.0.0-0.fdr.0.2.rc2
- Update to 1.0.0rc2
- added alsamixer Script -- stores settings on shutdown, does nothing on startup
- some minor corrections in spec-file style

* Wed Dec 3 2003 Thorsten Leemhuis <fedora[AT]leemhuis.info> 1.0.0-0.fdr.0.1.rc1
- Update to 1.0.0rc1

* Wed Aug 6 2003 Dams <anvil[AT]livna.org> 0:utils-0.fdr.1
- Initial build.
Loading…
Cancel
Save