3 SPECFILE=${RPMBUILD_SPECFILE:-/usr/src/packages/SOURCES/$1.spec}
8 kernel-module-*) ;; # Fedora kernel module package names start with
10 kernel*) is_kernel_package=1 ;;
13 if ! [ -z "$is_kernel_package" ]; then
19 declare class=$1 variants=$2 pos=$3
20 if [ -n "$variants" ]; then
21 echo "${class:0:pos}[$variants]${class:pos+1}"
23 [ -z "$class" ] || echo "$class"
27 combine_modaliases() {
28 declare tag class variants pos n
31 for ((n=0; n<${#class}; n++)); do
32 if [ "*" != "${class:n:1}" -a \
33 "${class:0:n}" = "${tag:0:n}" -a \
34 "${class:n+1}" = "${tag:n+1}" ] &&
35 ( [ -z "$pos" ] || [ $n = $pos ] ); then
36 variants="${variants:-${class:n:1}}${tag:n:1}"
41 if [ $n -eq ${#class} ]; then
42 print_modaliases "$class" "$variants" "$pos"
48 print_modaliases "$class" "$variants" "$pos"
51 # Encode all characters other than [*:a-zA-Z0-9] in stdin as %XX.
52 # (This includes the % character itself, which becomes %25.)
58 while [[ "$2" =~ ([*:a-zA-Z0-9]*)([^*:a-zA-Z0-9])(.*) ]]; do
59 hex=$(echo -n "${BASH_REMATCH[2]}" | hexdump -e '"%X"')
60 set -- "$1${BASH_REMATCH[1]}%$hex" "${BASH_REMATCH[3]}"
66 aliases_of_filelist() {
69 for module in $(grep -E '/lib/modules/.+\.ko$'); do
70 vermagic=$(/sbin/modinfo -F vermagic "$module")
72 if ! test -x /sbin/modinfo; then
73 echo "ERROR: add module-init-tools to BuildRequires" >&2
77 /sbin/modinfo -F alias "$module" \
79 | sed -nre "s,(.+:.+),modalias(kernel-${krel##*-}:\\1),p" | tee -a $modlist
81 if ! test -s "$modlist" && test $have_module = 0; then
82 echo "packageand(kernel-${krel##*-}:$PACKAGE)"
87 aliases_of_specfile_macro() {
92 set -- $(sed -ne 's:^%supplements_kernel_module[ \t]::p' \
94 while [ $# -ge 1 ]; do
96 | sed -e 's:[.]:\\.:g' \
101 [ $# -ge 2 ] && echo -n "|"
106 if [ -n "$regex" ]; then
108 $1 == "alias" && $3 ~ regex { print $2 }
109 ' regex="$regex" /lib/modules/*/modules.alias
113 ( aliases_of_filelist
114 aliases_of_specfile_macro "$1"