From a2ee6a6b2b1bb5bc44df4c91858c3f68e99f6c19 Mon Sep 17 00:00:00 2001 From: Olivier Blin Date: Sat, 25 Aug 2007 18:23:04 +0000 Subject: add automatic kmod provides (based on work from Danny Tholen) --- Makefile.am | 1 + find-provides.in | 5 +++++ kmod.prov | 13 +++++++++++++ 3 files changed, 19 insertions(+) create mode 100755 kmod.prov diff --git a/Makefile.am b/Makefile.am index 31bc3fd..32b8587 100644 --- a/Makefile.am +++ b/Makefile.am @@ -25,6 +25,7 @@ pkg_scripts = \ http.req \ magic.prov \ magic.req \ + kmod.prov \ perl.prov \ perl.req \ php.prov \ diff --git a/find-provides.in b/find-provides.in index 105af38..d45d44a 100755 --- a/find-provides.in +++ b/find-provides.in @@ -63,6 +63,11 @@ done | sort -u [ -x @RPMVENDORDIR@/php.prov ] && echo "$filelist" | tr '[:blank:]' \\n | @RPMVENDORDIR@/php.prov | sort -u +# +# --- Kernel modules. +[ -x @RPMVENDORDIR@/php.prov ] && + echo "$filelist" | tr '[:blank:]' \\n | @RPMVENDORDIR@/kmod.prov | sort -u + # # --- Pkgconfig deps [ -x @RPMVENDORDIR@/pkgconfigdeps.sh ] && diff --git a/kmod.prov b/kmod.prov new file mode 100755 index 0000000..f378ec3 --- /dev/null +++ b/kmod.prov @@ -0,0 +1,13 @@ +#!/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; +} +' -- cgit v1.2.1