]> git.pld-linux.org Git - packages/rpm-pld-macros.git/blame - kmod-deps.sh
explicitly set CMAKE_SYSTEM_{NAME,PROCESSOR} in %cmake; rel 2
[packages/rpm-pld-macros.git] / kmod-deps.sh
CommitLineData
74f36968
JR
1#!/bin/sh
2
3# Kernel module dependency extractor.
4#
5# Author(s): Danny Tholen <obiwan@mandriva.org>
b6c3f478 6# Olivier Blin <blino@mandriva.org>
74f36968
JR
7# Per Øyvind Karlsen <peroyvind@mandriva.org>
8#
9
10provides=0
11requires=0
12modinfo=/sbin/modinfo
13
14while [ "$#" -ne 0 ]; do
15 case $1 in
16 -P|--provides)
17 provides=1
18 ;;
19 -R|--requires)
20 requires=1
21 ;;
22 --modinfo)
23 shift
24 modinfo=$1
25 ;;
26 esac
27 shift
28done
29
30if [ $requires -eq 1 ]; then
31 echo "--requires not implemented!" 1>&2
32 exit 1
33fi
34
35if [ $provides -eq 1 ]; then
36 provideslist=`sed "s/['\"]/\\\&/g"`
b6c3f478 37 modulelist=$(echo "$provideslist" | grep -E '^.*(/lib/modules/|/var/lib/dkms/).*\.ko(\.gz|\.xz)?$')
74f36968
JR
38 echo $modulelist | xargs -r $modinfo | \
39 perl -lne '
40 $name = $1 if m!^filename:\s*(?:.*/)?([^/]+)\.k?o!;
41 $ver = $1 if /^version:\s*[a-zA-Z]{0,6}\-?(\d+[\.\:\-\[\]]?\d*[\.\:\-\[\]]?\d*[\.\:\-\[\]]?\d*[\.\:\-\[\]]?\d*-?[a-zA-Z]{0,6}\d?).*/;
42 $ver =~ s/(\:|-)/_/;
43 if (/^vermagic:/) {
44 print "kmod\($name\)" . ($ver ? " = $ver" : "") if $name;
45 undef $name; undef $ver;
46 }
47 '
b6c3f478 48 dkmslist=$(echo "$provideslist" | grep -E '(/var/lib/dkms-binary/[^/]+/[^/]+|/usr/src)/[^/]+/dkms.conf$')
74f36968
JR
49 [ -n "$dkmslist" ] && for d in $dkmslist; do
50 VERSION=`sed -rne 's/^PACKAGE_VERSION="?([^"]+)"?$/\1/;T;p' $d`
51 [ -z "$VERSION" ] && continue
52 PACKAGE_NAME=`sed -rne 's/^PACKAGE_NAME="?([^"]+)"?$/\1/;T;p' $d`
53 MODULES=`sed -rne 's/^DEST_MODULE_NAME\[[0-9]+\]="?([^"]+)"?$/\1/;T;p' $d`
54 [ -z "$MODULES" ] && MODULES=`sed -rne 's/^BUILT_MODULE_NAME\[[0-9]+\]="?([^"]+)"?$/\1/;T;p' $d`
55 # default on PACKAGE_NAME if no BUILT_MODULE_NAME is specified
56 [ -z "$MODULES" ] && MODULES=$PACKAGE_NAME
57 echo "$MODULES" | sed -re "s/\\\$PACKAGE_NAME/$PACKAGE_NAME/" | while read m; do
58 echo "kmod($m) = $VERSION"
59 done
60 done
61fi
This page took 0.083828 seconds and 4 git commands to generate.