Blob Blame History Raw
diff -ruP redhat-rpm-config-8.0.45/find-provides redhat-rpm-config-8.0.45-MOD/find-provides
--- redhat-rpm-config-8.0.45/find-provides	2006-07-30 13:57:59.000000000 -0500
+++ redhat-rpm-config-8.0.45-MOD/find-provides	2007-02-26 10:17:14.000000000 -0600
@@ -71,6 +71,14 @@
     echo $filelist | tr '[:blank:]' \\n | /usr/lib/rpm/redhat/find-provides.libtool | sort -u
 
 #
+# --- any other extra find-provides scripts
+for i in /usr/lib/rpm/redhat/find-provides.d/*.prov
+do
+    [ -x $i ] &&
+        (echo $filelist | tr '[:blank:]' \\n | $i | sort -u)
+done
+
+#
 # --- pkgconfig
 [ -x /usr/lib/rpm/redhat/find-provides.pkgconfig ] &&
     echo $filelist | tr '[:blank:]' \\n | /usr/lib/rpm/redhat/find-provides.pkgconfig | sort -u
diff -ruP redhat-rpm-config-8.0.45/find-provides.d/modalias.prov redhat-rpm-config-8.0.45-MOD/find-provides.d/modalias.prov
--- redhat-rpm-config-8.0.45/find-provides.d/modalias.prov	1969-12-31 18:00:00.000000000 -0600
+++ redhat-rpm-config-8.0.45-MOD/find-provides.d/modalias.prov	2007-02-26 10:19:18.000000000 -0600
@@ -0,0 +1,76 @@
+#! /bin/sh
+
+# heavily based upon find-suggests.ksyms by Andreas Gruenbacher <agruen@suse.de>.
+# with modifications by Michael Brown <Michael_E_Brown@dell.com>
+#
+# -- 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