From 4241a31b501a85fbfee2798c8657a0bb87de045b Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Apr 02 2014 07:42:10 +0000 Subject: Flatten the directory structure in preparation to merge --- diff --git a/find-provides.d/firmware.prov b/find-provides.d/firmware.prov deleted file mode 100644 index 3614369..0000000 --- a/find-provides.d/firmware.prov +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -# -# firmware.prov - Automatically extract any and all firmware dependencies from -# kernel object (.ko) files and add to RPM deps. - -IFS=$'\n' - -for module in $(grep -E '/lib/modules/.+\.ko$') $*; -do - for firmware in `/sbin/modinfo -F firmware $module`; - do - echo "firmware($firmware)" - done -done diff --git a/find-provides.d/modalias.prov b/find-provides.d/modalias.prov deleted file mode 100644 index e6e4bd6..0000000 --- a/find-provides.d/modalias.prov +++ /dev/null @@ -1,76 +0,0 @@ -#! /bin/sh - -# heavily based upon find-suggests.ksyms by Andreas Gruenbacher . -# with modifications by Michael Brown -# -# -- added module versioning info to modalias() symbols -# -- removed code which inspects spec files. - -IFS=$'\n' - -# -# Initially, dont generate modalias() lines for kernel package. This needs -# additional discussion. Would like to eventually add them for -# completeness, so that we can determine when drivers are folded into -# mainline kernel. -# -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" -} - -for module in $(grep -E '/lib/modules/.+\.ko$') $*; do - # | head -n1 because some modules have *two* version tags. *cough*b44*cough* - modver=$(/sbin/modinfo -F version "$module"| head -n1) - modver=${modver// /_} - - # only add version tag if it has a version - if [ -n "$modver" ]; then - /sbin/modinfo -F alias "$module" \ - | sed -nre "s,(.+),modalias(\\1) = $modver,p" - else - /sbin/modinfo -F alias "$module" \ - | sed -nre "s,(.+),modalias(\\1),p" - fi -done \ -| sort -u \ -| combine_modaliases diff --git a/firmware.prov b/firmware.prov new file mode 100644 index 0000000..3614369 --- /dev/null +++ b/firmware.prov @@ -0,0 +1,14 @@ +#!/bin/sh +# +# firmware.prov - Automatically extract any and all firmware dependencies from +# kernel object (.ko) files and add to RPM deps. + +IFS=$'\n' + +for module in $(grep -E '/lib/modules/.+\.ko$') $*; +do + for firmware in `/sbin/modinfo -F firmware $module`; + do + echo "firmware($firmware)" + done +done diff --git a/modalias.prov b/modalias.prov new file mode 100644 index 0000000..e6e4bd6 --- /dev/null +++ b/modalias.prov @@ -0,0 +1,76 @@ +#! /bin/sh + +# heavily based upon find-suggests.ksyms by Andreas Gruenbacher . +# with modifications by Michael Brown +# +# -- added module versioning info to modalias() symbols +# -- removed code which inspects spec files. + +IFS=$'\n' + +# +# Initially, dont generate modalias() lines for kernel package. This needs +# additional discussion. Would like to eventually add them for +# completeness, so that we can determine when drivers are folded into +# mainline kernel. +# +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" +} + +for module in $(grep -E '/lib/modules/.+\.ko$') $*; do + # | head -n1 because some modules have *two* version tags. *cough*b44*cough* + modver=$(/sbin/modinfo -F version "$module"| head -n1) + modver=${modver// /_} + + # only add version tag if it has a version + if [ -n "$modver" ]; then + /sbin/modinfo -F alias "$module" \ + | sed -nre "s,(.+),modalias(\\1) = $modver,p" + else + /sbin/modinfo -F alias "$module" \ + | sed -nre "s,(.+),modalias(\\1),p" + fi +done \ +| sort -u \ +| combine_modaliases