#!/bin/bash # # Generate dependencies for KMPs defined in supported.conf. We look at each # modules 'depends' field in modinfo and use the $name-kmp-modules lists # in builddir to map dependencies to package names. We do it this way instead # of relying on the ksym() dependencies, because KMPs built from the kernel # spec file are not shared among kernel versions. package_name=$1 version_release=$2 builddir=$3 trap 'rm -f "$filelist"' EXIT filelist=$(mktemp -t ${0##*/}.XXXXXXXXXX) cat >"$filelist" # is this module part of any KMP? in_kmp() { local mod=${1//[-_]/[-_]} res for f in "$builddir"/*-kmp-modules; do if grep -q "/$mod\$" "$f"; then res=${f##*/} echo "${res%-modules}" fi done } grep '\.ko$' "$filelist" | while read f; do mod=${f##*/} kmp=$(in_kmp "$mod") if test -z "$kmp"; then continue fi for dep in $(IFS=,; set -- $(/sbin/modinfo -F depends "$f"); echo $*); do kmp2=$(in_kmp "$dep.ko") if test -n "$kmp2" -a "$kmp2" != "$kmp"; then # Needs another KMP echo "$kmp2-${package_name#kernel-} = $version_release" fi done done /usr/lib/rpm/find-requires "$package_name" <"$filelist"