basebuilder_pel7x64builder0
6 years ago
10 changed files with 1701 additions and 0 deletions
@ -0,0 +1,979 @@
@@ -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 |
@ -0,0 +1,78 @@
@@ -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) |
@ -0,0 +1,16 @@
@@ -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 |
@ -0,0 +1,13 @@
@@ -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 |
@ -0,0 +1,36 @@
@@ -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 |
||||
|
@ -0,0 +1,8 @@
@@ -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" |
@ -0,0 +1,14 @@
@@ -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 |
||||
} |
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh |
||||
|
||||
exec /sbin/alsactl \ |
||||
-E ALSA_CONFIG_PATH=/etc/alsa/alsactl.conf \ |
||||
--initfile=/lib/alsa/init/00main \ |
||||
init |
@ -0,0 +1,28 @@
@@ -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> |
||||
|
@ -0,0 +1,523 @@
@@ -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…
Reference in new issue