Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/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:\s*(?:.*/)?([^/]+)\.k?o!;
- $ver = $1 if /^version:\s*[a-zA-Z]{0,6}\-?(\d+[\.\:\-\[\]]?\d*[\.\:\-\[\]]?\d*[\.\:\-\[\]]?\d*[\.\:\-\[\]]?\d*-?[a-zA-Z]{0,6}\d?).*/;
- $ver=~tr/][/../;
- if (/^vermagic:/) {
- print "kmod\($name\)" . ($ver ? " = $ver" : "") if $name;
- undef $name; undef $ver;
- }
- ' | tr "\[\]" ".."
- # the above 'tr' is a workaround by AS to avoid find-provides failure while building kernels
- dkmslist=$(echo "$provideslist" | egrep '(/var/lib/dkms-binary/[^/]+/[^/]+|/usr/src)/[^/]+/dkms.conf$')
- [ -n "$dkmslist" ] && for d in $dkmslist; do
- VERSION=`sed -rne 's/^PACKAGE_VERSION="?([^"]+)"?$/\1/;T;p' $d`
- [ -z "$VERSION" ] && continue
- PACKAGE_NAME=`sed -rne 's/^PACKAGE_NAME="?([^"]+)"?$/\1/;T;p' $d`
- MODULES=`sed -rne 's/^DEST_MODULE_NAME\[[0-9]+\]="?([^"]+)"?$/\1/;T;p' $d`
- [ -z "$MODULES" ] && MODULES=`sed -rne 's/^BUILT_MODULE_NAME\[[0-9]+\]="?([^"]+)"?$/\1/;T;p' $d`
- # default on PACKAGE_NAME if no BUILT_MODULE_NAME is specified
- [ -z "$MODULES" ] && MODULES=$PACKAGE_NAME
- echo "$MODULES" | sed -re "s/\\\$PACKAGE_NAME/$PACKAGE_NAME/" | while read m; do
- echo "kmod($m) = $VERSION"
- done
- done
Advertisement
Add Comment
Please, Sign In to add comment