File my-find-supplements.ksyms of Package ati-fglrxG02

#! /bin/sh

PCI_ID_FILE=/usr/src/packages/SOURCES/pci_ids-8.818
SPECFILE=${RPMBUILD_SPECFILE:-/usr/src/packages/SOURCES/$1.spec}
IFS=$'\n'
PACKAGE=$1

case "$1" in
kernel-module-*)    ;; # Fedora kernel module package names start with
		       # kernel-module.
kernel*)	   is_kernel_package=1 ;;
esac

if ! [ -z "$is_kernel_package" ]; then
    cat > /dev/null
    exit 0
fi

print_modaliases() {
    declare class=$1 variants=$2 pos=$3
    if [ -n "$variants" ]; then
	echo "${class:0:pos}[$variants]${class:pos+1}"
    else
	[ -z "$class" ] || echo "$class"
    fi
}

combine_modaliases() {
    declare tag class variants pos n
    read class
    while read tag; do
	for ((n=0; n<${#class}; n++)); do
	    if [ "*" != "${class:n:1}" -a \
		 "${class:0:n}" = "${tag:0:n}" -a \
		 "${class:n+1}" = "${tag:n+1}" ] &&
	       ( [ -z "$pos" ] || [ $n = $pos ] ); then
		variants="${variants:-${class:n:1}}${tag:n:1}"
		pos=$n
		break
	    fi
	done
	if [ $n -eq ${#class} ]; then
	    print_modaliases "$class" "$variants" "$pos"
	    variants=
	    pos=
	    class=$tag
	fi
    done
    print_modaliases "$class" "$variants" "$pos"
}

aliases_of_filelist() {
    modlist=$(mktemp)
    have_module=1
    for module in $(grep -E '/lib/modules/.+\.ko$'); do
	vermagic=$(/sbin/modinfo -F vermagic "$module")
	krel=${vermagic%% *}
	if ! test -x /sbin/modinfo; then
		echo "ERROR: add module-init-tools to BuildRequires" >&2
		exit 1
	fi
	have_module=0
        for id in $(cat ${PCI_ID_FILE} | cut -d " " -f 1|sed 's/0x//g'); do
          echo "modalias(kernel-${krel##*-}:pci:v00001002d0000${id}sv*sd*bc*sc*i*)"
        done | tee -a $modlist
    done
    if ! test -s "$modlist" && test $have_module = 0; then
        echo "packageand(kernel-${krel##*-}:$PACKAGE)"
    fi
    rm -f $modlist
}

aliases_of_specfile_macro() {
    declare regex

    regex=$(
	set -o noglob
	set -- $(sed -ne 's:^%supplements_kernel_module[ \t]::p' \
		     $SPECFILE)
	while [ $# -ge 1 ]; do
	    regex=$(echo "$1" \
		    | sed -e 's:[.]:\\.:g' \
			  -e 's:?:.:g' \
			  -e 's:\*:.*:g' \
			  -e 's:\\:\\\\:g')
	    echo -n "^$regex\$"
	    [ $# -ge 2 ] && echo -n "|"
	    shift
	done
    )

    if [ -n "$regex" ]; then
	awk '
	$1 == "alias" && $3 ~ regex { print $2 }
	' regex="$regex" /lib/modules/*/modules.alias
    fi
}

(   aliases_of_filelist
    aliases_of_specfile_macro "$1"
) \
| sort -u
openSUSE Build Service is sponsored by