#!/bin/sh provideslist=`sed "s/['\"]/\\\&/g"` modulelist=$(echo "$provideslist" | egrep '^.*(/lib/modules/|/var/lib/dkms/).*\.ko(\.gz)?$') echo $modulelist | xargs -r /sbin/modinfo | \ perl -lne ' $name = $1 if m!^filename:.*\b([^/]+)\.k?o!; $ver = $1 if /^version:\s*[a-zA-Z]{0,6}\-?(\d+[\.\:\-\[\]]?\d*[\.\:\-\[\]]?\d*[\.\:\-\[\]]?\d*[\.\:\-\[\]]?\d*-?[a-zA-Z]{0,6}\d?).*/; if (/^srcversion:/) { print "kmod\($name\) = $ver" if $name && $ver; undef $name, $ver; } ' dkmslist=$(echo "$provideslist" | egrep '/usr/src/[^/]*/dkms.conf$') echo $dkmslist | while read d; do BUILT=`sed -rne 's/^BUILT_MODULE_NAME\[[0-9]+\]="?([^"]+)"?$/kmod(\1)/;T;p' $d` if [ -n "$BUILT" ]; then echo "$BUILT" else # default on PACKAGE_NAME if no BUILT_MODULE_NAME is specified sed -rne 's/^PACKAGE_NAME="?([^"]+)"?$/kmod(\1)/;T;p' $d fi done