diff --git a/.cvsignore b/.cvsignore index 6a94f7e..a8f9d6f 100644 --- a/.cvsignore +++ b/.cvsignore @@ -20,3 +20,4 @@ alsa-utils-1.0.17.tar.bz2 alsa-utils-1.0.18rc3.tar.bz2 alsa-utils-1.0.18.tar.bz2 alsa-utils-1.0.19.tar.bz2 +alsa-utils-1.0.20.tar.bz2 diff --git a/alsa-info.sh b/alsa-info.sh index dc8bacc..f1660f8 100644 --- a/alsa-info.sh +++ b/alsa-info.sh @@ -1,6 +1,6 @@ #!/bin/bash -SCRIPT_VERSION=0.4.54 +SCRIPT_VERSION=0.4.56 CHANGELOG="http://www.alsa-project.org/alsa-info.sh.changelog" ################################################################################# @@ -102,7 +102,9 @@ update() { } cleanup() { - rm -r $TEMPDIR 2>/dev/null + if [ -n "$TEMPDIR" -a "$KEEP_FILES" != "yes" ]; then + rm -r "$TEMPDIR" 2>/dev/null + fi } @@ -212,6 +214,67 @@ then fi } +withsysfs() { + local i f + local printed="" + for i in /sys/class/sound/*; do + case "$i" in + */hwC?D?) + if [ -f $i/init_pin_configs ]; then + if [ -z "$printed" ]; then + echo "!!Sysfs Files" >> $FILE + echo "!!-----------" >> $FILE + echo "" >> $FILE + fi + for f in init_pin_configs driver_pin_configs user_pin_configs init_verbs; do + echo "$i/$f:" >> $FILE + cat $i/$f >> $FILE + echo >> $FILE + done + printed=yes + fi + ;; + esac + done + if [ -n "$printed" ]; then + echo "" >> $FILE + fi +} + +get_alsa_library_version() { + ALSA_LIB_VERSION=`grep VERSION_STR /usr/include/alsa/version.h 2>/dev/null|awk {'print $3'}|sed 's/"//g'` + + if [ -z "$ALSA_LIB_VERSION" ]; then + if [ -f /etc/lsb-release ]; then + . /etc/lsb-release + case "$DISTRIB_ID" in + Ubuntu) + if which dpkg > /dev/null ; then + ALSA_LIB_VERSION=`dpkg -l libasound2 | tail -1 | awk '{print $3}' | cut -f 1 -d -` + fi + + if [ "$ALSA_LIB_VERSION" = "" ]; then + ALSA_LIB_VERSION="" + fi + return + ;; + *) + return + ;; + esac + elif [ -f /etc/debian_version ]; then + if which dpkg > /dev/null ; then + ALSA_LIB_VERSION=`dpkg -l libasound2 | tail -1 | awk '{print $3}' | cut -f 1 -d -` + fi + + if [ "$ALSA_LIB_VERSION" = "" ]; then + ALSA_LIB_VERSION="" + fi + return + fi + fi +} + #Run checks to make sure the programs we need are installed. LSPCI=$(which lspci 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null); @@ -248,6 +311,12 @@ case "$1" in REPEAT="" shift ;; + --stdout) + DIALOG="" + NOUPLOAD="yes" + QUESTION="no" + TOSTDOUT="yes" + ;; esac done @@ -300,12 +369,14 @@ TEMPDIR=`mktemp -p /tmp -d alsa-info.XXXXXXXXXX` FILE="$TEMPDIR/alsa-info.txt" NFILE="/tmp/alsa-info.txt" +trap cleanup 0 + if [ "$PROCEED" = "yes" ]; then if [[ -z "$LSPCI" ]] - then +then echo "This script requires lspci. Please install it, and re-run this script." -exit 0 + exit 0 fi #Create the temporary work dir. @@ -319,7 +390,7 @@ KERNEL_MACHINE=`uname -m` KERNEL_OS=`uname -o` [[ `uname -v |grep SMP` ]] && KERNEL_SMP="Yes" || KERNEL_SMP="No" ALSA_DRIVER_VERSION=`cat /proc/asound/version |head -n1|awk {'print $7'} |sed 's/\.$//'` -ALSA_LIB_VERSION=`grep VERSION_STR /usr/include/alsa/version.h 2>/dev/null|awk {'print $3'}|sed 's/"//g'` +get_alsa_library_version ALSA_UTILS_VERSION=`amixer -v |awk {'print $3'}` VENDOR_ID=`lspci -vn |grep 040[1-3] | awk -F':' '{print $3}'|awk {'print substr($0, 2);}' >$TEMPDIR/vendor_id.tmp` DEVICE_ID=`lspci -vn |grep 040[1-3] | awk -F':' '{print $4}'|awk {'print $1'} >$TEMPDIR/device_id.tmp` @@ -328,6 +399,7 @@ LAST_CARD=$((`grep "]: " /proc/asound/cards | wc -l` - 1 )) ESDINST=$(which esd 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null) PAINST=$(which pulseaudio 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null) ARTSINST=$(which artsd 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null) +JACKINST=$(which jackd 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null) cat /proc/asound/modules 2>/dev/null|awk {'print $2'}>$TEMPDIR/alsamodules.tmp cat /proc/asound/cards >$TEMPDIR/alsacards.tmp @@ -387,27 +459,34 @@ echo "!!Sound Servers on this system" >> $FILE echo "!!----------------------------" >> $FILE echo "" >> $FILE if [[ -n $PAINST ]];then -[[ `pgrep $PAINST` ]] && PARUNNING="Yes" || PARUNNING="No" +[[ `pgrep '^(.*/)?pulseaudio$'` ]] && PARUNNING="Yes" || PARUNNING="No" echo "Pulseaudio:" >> $FILE echo " Installed - Yes ($PAINST)" >> $FILE echo " Running - $PARUNNING" >> $FILE echo "" >> $FILE fi if [[ -n $ESDINST ]];then -[[ `pgrep $ESDINST` ]] && ESDRUNNING="Yes" || ESDRUNNING="No" +[[ `pgrep '^(.*/)?esd$'` ]] && ESDRUNNING="Yes" || ESDRUNNING="No" echo "ESound Daemon:" >> $FILE echo " Installed - Yes ($ESDINST)" >> $FILE echo " Running - $ESDRUNNING" >> $FILE echo "" >> $FILE fi if [[ -n $ARTSINST ]];then -[[ `pgrep $ARTSINST` ]] && ARTSRUNNING="Yes" || ARTSRUNNING="No" +[[ `pgrep '^(.*/)?artsd$'` ]] && ARTSRUNNING="Yes" || ARTSRUNNING="No" echo "aRts:" >> $FILE echo " Installed - Yes ($ARTSINST)" >> $FILE echo " Running - $ARTSRUNNING" >> $FILE echo "" >> $FILE fi -if [[ -z "$PAINST" && -z "$ESDINST" && -z "$ARTSINST" ]];then +if [[ -n $JACKINST ]];then +[[ `pgrep '^(.*/)?jackd$'` ]] && JACKRUNNING="Yes" || JACKRUNNING="No" +echo "Jack:" >> $FILE +echo " Installed - Yes ($JACKINST)" >> $FILE +echo " Running - $JACKRUNNING" >> $FILE +echo "" >> $FILE +fi +if [[ -z "$PAINST" && -z "$ESDINST" && -z "$ARTSINST" && -z "$JACKINST" ]];then echo "No sound servers found." >> $FILE echo "" >> $FILE fi @@ -510,6 +589,7 @@ then withamixer withalsactl withlsmod + withsysfs pbcheck ;; --update) @@ -518,13 +598,13 @@ then ;; --no-upload) NOUPLOAD="yes" - KEEP_FILES="yes" withdevices withconfigs withaplay withamixer withalsactl withlsmod + withsysfs ;; --debug) echo "Debugging enabled. $FILE and $TEMPDIR will not be deleted" @@ -536,6 +616,7 @@ then withamixer withalsactl withlsmod + withsysfs ;; --with-all) withdevices @@ -544,6 +625,7 @@ then withamixer withalsactl withlsmod + withsysfs ;; --with-aplay) withaplay @@ -585,6 +667,17 @@ then fi fi ;; + --stdout) + NOUPLOAD="yes" + withdevices + withconfigs + withaplay + withamixer + withalsactl + withlsmod + cat $FILE + rm $FILE + ;; --about) echo "Written/Tested by the following users of #alsa on irc.freenode.net:" echo "" @@ -593,7 +686,7 @@ then echo " gnubien - Various script ideas / Testing" echo " GrueMaster - HDA Intel specific items / Testing" echo " olegfink - Script update function" - cleanup + echo " TheMuso - display to stdout functionality" exit 0 ;; *) @@ -611,10 +704,11 @@ then echo " --no-upload (do not upload contents to remote server)" echo " --pastebin (use http://pastebin.ca) as remote server" echo " instead www.alsa-project.org" + echo " --stdout (print alsa information to standard output" + echo " instead of a file)" echo " --about (show some information about the script)" echo " --debug (will run the script as normal, but will not" echo " delete $FILE)" - cleanup exit 0 ;; esac @@ -622,126 +716,123 @@ then done fi -if [ "$PROCEED" = "yes" ]; then +if [ "$PROCEED" = "no" ]; then + exit 1 +fi + +if [ -n "$NOUPLOAD" ]; then + + if [ -z "$TOSTDOUT" ]; then + mv $FILE $NFILE || exit 1 + fi + + if [[ -n $DIALOG ]] + then + if [[ -n $PBERROR ]]; then + dialog --backtitle "$BGTITLE" --title "Information collected" --msgbox "An error occurred while contacting the $WWWSERVICE. Your information was NOT automatically uploaded.\n\nYour ALSA information can be seen by looking in $NFILE" 10 100 + else + dialog --backtitle "$BGTITLE" --title "Information collected" --msgbox "You requested that your information was NOT automatically uploaded to the $WWWSERVICE\n\nYour ALSA information can be seen by looking in $NFILE" 10 100 + fi + else + echo + + if [[ -n $PBERROR ]]; then + echo "An error occurred while contacting the $WWWSERVICE. Your information was NOT automatically uploaded." + echo "" + echo "Your ALSA information can be seen by looking in $NFILE" + echo "" + else + if [ -z "$TOSTDOUT" ]; then + echo "You requested that your information was NOT automatically uploaded to the $WWWSERVICE" + echo "" + echo "Your ALSA information can be seen by looking in $NFILE" + echo "" + fi + fi + fi + + exit + +fi # noupload #Test that wget is installed, and supports --post-file. Upload $FILE if it does, and prompt user to upload file if it doesnt. if WGET=$(which wget 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null); [[ -n "${WGET}" ]] && [[ -x "${WGET}" ]] && [[ `wget --help |grep post-file` ]] then -if [[ -n "$DIALOG" ]] + +if [[ -n $DIALOG ]] then - if [[ -z $NOUPLOAD ]]; then - if [[ -z $PASTEBIN ]]; then + +if [[ -z $PASTEBIN ]]; then wget -O - --tries=5 --timeout=60 --post-file=$FILE "http://www.alsa-project.org/cardinfo-db/" &>$TEMPDIR/wget.tmp || echo "Upload failed; exit" { for i in 10 20 30 40 50 60 70 80 90; do echo $i sleep 0.2 done echo; } |dialog --backtitle "$BGTITLE" --guage "Uploading information to www.alsa-project.org ..." 6 70 0 - else +else wget -O - --tries=5 --timeout=60 --post-file=$FILE "http://pastebin.ca/quiet-paste.php?api=$PASTEBINKEY&encrypt=t&encryptpw=blahblah" &>$TEMPDIR/wget.tmp || echo "Upload failed; exit" { for i in 10 20 30 40 50 60 70 80 90; do echo $i sleep 0.2 done echo; } |dialog --backtitle "$BGTITLE" --guage "Uploading information to www.pastebin.ca ..." 6 70 0 - fi - fi +fi + +dialog --backtitle "$BGTITLE" --title "Information uploaded" --yesno "Would you like to see the uploaded information?" 5 100 +DIALOG_EXIT_CODE=$? +if [ $DIALOG_EXIT_CODE = 0 ]; then + grep -v "alsa-info.txt" $FILE >$TEMPDIR/uploaded.txt + dialog --backtitle "$BGTITLE" --textbox $TEMPDIR/uploaded.txt 0 0 +fi + +clear + +# no dialog else - if [[ -z $NOUPLOAD ]]; then - if [[ -z $PASTEBIN ]]; then +if [[ -z $PASTEBIN ]]; then echo -n "Uploading information to www.alsa-project.org ... " wget -O - --tries=5 --timeout=60 --post-file=$FILE http://www.alsa-project.org/cardinfo-db/ &>$TEMPDIR/wget.tmp & - else +else echo -n "Uploading information to www.pastebin.ca ... " wget -O - --tries=5 --timeout=60 --post-file=$FILE http://pastebin.ca/quiet-paste.php?api=$PASTEBINKEY &>$TEMPDIR/wget.tmp & - fi - fi -fi -#Progess spinner for wget transfer. -if [[ -z "$DIALOG" ]] -then - i=1 - sp="/-\|" - echo -n ' ' - while pgrep wget &>/dev/null - do - echo -en "\b${sp:i++%${#sp}:1}" - done fi +#Progess spinner for wget transfer. +i=1 +sp="/-\|" +echo -n ' ' +while pgrep wget &>/dev/null +do + echo -en "\b${sp:i++%${#sp}:1}" +done + +echo -e "\b Done!" +echo "" + +fi #dialog + #See if tput is available, and use it if it is. -if [[ -z $NOUPLOAD ]]; then - if [[ -n "$TPUT" ]] - then - if [[ -z $PASTEBIN ]]; then - FINAL_URL=`tput setaf 1; grep "SUCCESS:" $TEMPDIR/wget.tmp | cut -d ' ' -f 2 ; tput sgr0` - else - FINAL_URL=`tput setaf 1; grep "SUCCESS:" $TEMPDIR/wget.tmp |sed -n 's/.*\:\([0-9]\+\).*/http:\/\/pastebin.ca\/\1/p';tput sgr0` - fi +if [[ -n "$TPUT" ]] +then + if [[ -z $PASTEBIN ]]; then + FINAL_URL=`tput setaf 1; grep "SUCCESS:" $TEMPDIR/wget.tmp | cut -d ' ' -f 2 ; tput sgr0` else - if [[ -z $PASTEBIN ]]; then - FINAL_URL=`grep "SUCCESS:" $TEMPDIR/wget.tmp | cut -d ' ' -f 2` - else - FINAL_URL=`grep "SUCCESS:" $TEMPDIR/wget.tmp |sed -n 's/.*\:\([0-9]\+\).*/http:\/\/pastebin.ca\/\1/p'` - fi + FINAL_URL=`tput setaf 1; grep "SUCCESS:" $TEMPDIR/wget.tmp |sed -n 's/.*\:\([0-9]\+\).*/http:\/\/pastebin.ca\/\1/p';tput sgr0` + fi +else + if [[ -z $PASTEBIN ]]; then + FINAL_URL=`grep "SUCCESS:" $TEMPDIR/wget.tmp | cut -d ' ' -f 2` + else + FINAL_URL=`grep "SUCCESS:" $TEMPDIR/wget.tmp |sed -n 's/.*\:\([0-9]\+\).*/http:\/\/pastebin.ca\/\1/p'` fi fi + #Output the URL of the uploaded file. -if [[ -z $DIALOG ]] -then - echo -e "\b Done!" - echo "" - if [[ -z $NOUPLOAD ]]; then - echo "Your ALSA information is located at $FINAL_URL" - echo "Please inform the person helping you." - echo "" - fi -fi -if [[ -n $DIALOG ]] -then - if [[ -n $NOUPLOAD ]]; then - mv $FILE $NFILE || exit 1 - if [[ -n $PBERROR ]]; then - dialog --backtitle "$BGTITLE" --title "Information collected" --msgbox "An error occured while contacting the $WWWSERVICE. Your information was NOT automatically uploaded.\n\nYour ALSA information can be seen by looking in $NFILE" 10 100 - else - dialog --backtitle "$BGTITLE" --title "Information collected" --msgbox "You requested that your information was NOT automatically uploaded to the $WWWSERVICE\n\nYour ALSA information can be seen by looking in $NFILE" 10 100 - fi - else - dialog --backtitle "$BGTITLE" --title "Information uploaded" --yesno "Would you like to see the uploaded information?" 5 100 - DIALOG_EXIT_CODE=$? - if [ $DIALOG_EXIT_CODE = 0 ]; then - grep -v "alsa-info.txt" $FILE >$TEMPDIR/uploaded.txt - dialog --backtitle "$BGTITLE" --textbox $TEMPDIR/uploaded.txt 0 0 - fi - fi -fi -clear -if [[ -n $NOUPLOAD ]]; then - mv $FILE $NFILE || exit 1 - if [[ -n $PBERROR ]]; then - echo "An error occured while contacting the $WWWSERVICE. Your information was NOT automatically uploaded." - echo "" - echo "Your ALSA information can be seen by looking in $NFILE" - echo "" - else - echo "You requested that your information was NOT automatically uploaded to the $WWWSERVICE" - echo "" - echo "Your ALSA information can be seen by looking in $NFILE" - echo "" - fi -fi -if [[ -z $NOUPLOAD ]]; then echo "Your ALSA information is located at $FINAL_URL" echo "Please inform the person helping you." echo "" -fi - #We posted the file , so we dont need it anymore. delete it. - if [ -z $KEEP_FILES ] - then - rm $FILE - fi #We couldnt find a suitable wget, so tell the user to upload manually. else @@ -767,9 +858,7 @@ else echo "Please manually upload $NFILE to http://www.pastebin.ca/upload.php and submit your post." echo "" fi - fi - if [[ -n $DIALOG ]] - then + else if [[ -z $PASTEBIN ]]; then dialog --backtitle "$BGTITLE" --msgbox "Could not automatically upload output to http://www.alsa-project.org.\nPossible reasons are:\n\n 1. Couldn't find 'wget' in your PATH\n 2. Your version of wget is less than 1.8.2\n\nPlease manually upload $NFILE to http://www.alsa-project,org/cardinfo-db/ and submit your post." 25 100 else @@ -777,10 +866,5 @@ else fi fi fi -#Clean up the temp files -if [ -z $KEEP_FILES ] -then - cleanup -fi -fi # proceed + diff --git a/alsa-utils-1.0.18-alsaconf.patch b/alsa-utils-1.0.18-alsaconf.patch deleted file mode 100644 index 5031831..0000000 --- a/alsa-utils-1.0.18-alsaconf.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- alsa-utils-1.0.18rc3/Makefile.am.orig 2008-09-09 19:50:28.000000000 +0200 -+++ alsa-utils-1.0.18rc3/Makefile.am 2008-09-11 11:18:01.000000000 +0200 -@@ -4,7 +4,7 @@ ALSAMIXER_DIR=alsamixer - else - ALSAMIXER_DIR= - endif --SUBDIRS= include alsactl alsaconf $(ALSAMIXER_DIR) amidi amixer aplay iecset seq speaker-test utils m4 po -+SUBDIRS= include alsactl $(ALSAMIXER_DIR) amidi amixer aplay iecset seq speaker-test utils m4 po - EXTRA_DIST= config.rpath TODO gitcompile - AUTOMAKE_OPTIONS=foreign - ACLOCAL_AMFLAGS = -I m4 ---- alsa-utils-1.0.18rc3/Makefile.in.orig 2008-09-11 11:17:52.000000000 +0200 -+++ alsa-utils-1.0.18rc3/Makefile.in 2008-09-11 11:17:52.000000000 +0200 -@@ -65,7 +65,7 @@ RECURSIVE_TARGETS = all-recursive check- - uninstall-recursive - ETAGS = etags - CTAGS = ctags --DIST_SUBDIRS = include alsactl alsaconf alsamixer amidi amixer aplay \ -+DIST_SUBDIRS = include alsactl alsamixer amidi amixer aplay \ - iecset seq speaker-test utils m4 po - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - distdir = $(PACKAGE)-$(VERSION) -@@ -197,7 +197,7 @@ target_alias = @target_alias@ - INCLUDES = -I$(top_srcdir)/include - @ALSAMIXER_FALSE@ALSAMIXER_DIR = - @ALSAMIXER_TRUE@ALSAMIXER_DIR = alsamixer --SUBDIRS = include alsactl alsaconf $(ALSAMIXER_DIR) amidi amixer aplay iecset seq speaker-test utils m4 po -+SUBDIRS = include alsactl $(ALSAMIXER_DIR) amidi amixer aplay iecset seq speaker-test utils m4 po - EXTRA_DIST = config.rpath TODO gitcompile - AUTOMAKE_OPTIONS = foreign - ACLOCAL_AMFLAGS = -I m4 diff --git a/alsa-utils.spec b/alsa-utils.spec index fcd0483..889a328 100644 --- a/alsa-utils.spec +++ b/alsa-utils.spec @@ -3,8 +3,8 @@ Summary: Advanced Linux Sound Architecture (ALSA) utilities Name: alsa-utils -Version: 1.0.19 -Release: 4%{?prever_dot}%{?dist} +Version: 1.0.20 +Release: 1%{?prever_dot}%{?dist} License: GPLv2+ Group: Applications/Multimedia URL: http://www.alsa-project.org/ @@ -13,7 +13,6 @@ Source4: alsaunmute Source6: alsa-info.sh Source10: alsa.rules Source11: alsactl.conf -Patch1: alsa-utils-1.0.19-init.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: alsa-lib-devel >= %{version} BuildRequires: ncurses-devel @@ -27,7 +26,6 @@ Architecture (ALSA). %prep %setup -q -n %{name}-%{version}%{?prever} -%patch1 -p1 -b .init %build %configure CFLAGS="$RPM_OPT_FLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" --sbindir=/sbin --disable-alsaconf @@ -94,6 +92,10 @@ if [ -s /etc/alsa/asound.state -a ! -s /etc/asound.state ] ; then fi %changelog +* Wed May 06 2009 Jaroslav Kysela 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 - 1.0.19-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild diff --git a/sources b/sources index 58fc91d..ad6f8d1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5ff0379c707c1a29083233edc9ab4e06 alsa-utils-1.0.19.tar.bz2 +6837e673ef19da96d8bd2f9e18cd9574 alsa-utils-1.0.20.tar.bz2