AndrzejL

fixed /usr/lib/rpm/mandriva/kmod.prov

Aug 15th, 2012
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. provideslist=`sed "s/['\"]/\\\&/g"`
  4. modulelist=$(echo "$provideslist" | egrep '^.*(/lib/modules/|/var/lib/dkms/).*\.ko(\.gz)?$')
  5. echo $modulelist | xargs -r /sbin/modinfo | \
  6. perl -lne '
  7. $name = $1 if m!^filename:\s*(?:.*/)?([^/]+)\.k?o!;
  8. $ver = $1 if /^version:\s*[a-zA-Z]{0,6}\-?(\d+[\.\:\-\[\]]?\d*[\.\:\-\[\]]?\d*[\.\:\-\[\]]?\d*[\.\:\-\[\]]?\d*-?[a-zA-Z]{0,6}\d?).*/;
  9. $ver=~tr/][/../;
  10. if (/^vermagic:/) {
  11. print "kmod\($name\)" . ($ver ? " = $ver" : "") if $name;
  12. undef $name; undef $ver;
  13. }
  14. ' | tr "\[\]" ".."
  15. # the above 'tr' is a workaround by AS to avoid find-provides failure while building kernels
  16. dkmslist=$(echo "$provideslist" | egrep '(/var/lib/dkms-binary/[^/]+/[^/]+|/usr/src)/[^/]+/dkms.conf$')
  17. [ -n "$dkmslist" ] && for d in $dkmslist; do
  18. VERSION=`sed -rne 's/^PACKAGE_VERSION="?([^"]+)"?$/\1/;T;p' $d`
  19. [ -z "$VERSION" ] && continue
  20. PACKAGE_NAME=`sed -rne 's/^PACKAGE_NAME="?([^"]+)"?$/\1/;T;p' $d`
  21. MODULES=`sed -rne 's/^DEST_MODULE_NAME\[[0-9]+\]="?([^"]+)"?$/\1/;T;p' $d`
  22. [ -z "$MODULES" ] && MODULES=`sed -rne 's/^BUILT_MODULE_NAME\[[0-9]+\]="?([^"]+)"?$/\1/;T;p' $d`
  23. # default on PACKAGE_NAME if no BUILT_MODULE_NAME is specified
  24. [ -z "$MODULES" ] && MODULES=$PACKAGE_NAME
  25. echo "$MODULES" | sed -re "s/\\\$PACKAGE_NAME/$PACKAGE_NAME/" | while read m; do
  26. echo "kmod($m) = $VERSION"
  27. done
  28. done
Advertisement
Add Comment
Please, Sign In to add comment