2cbbbb322e
- Use rpmdeps to generate any "normal" dependencies even for the kernel module stuff, drop all other unnecessary duplication like elf, libtool and pkgconfig deps.
53 lines
1.2 KiB
Bash
Executable File
53 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# This script reads filenames from STDIN and outputs any relevant provides
|
|
# information that needs to be included in the package.
|
|
|
|
if [ "$1" ]
|
|
then
|
|
package_name="$1"
|
|
fi
|
|
|
|
filelist=`sed "s/['\"]/\\\&/g"`
|
|
|
|
#
|
|
# --- libtool
|
|
[ -x /usr/lib/rpm/rpmdeps -a -n "$filelist" ] &&
|
|
echo $filelist | tr '[:blank:]' \\n | /usr/lib/rpm/rpmdeps --provides
|
|
|
|
#
|
|
# --- any other extra find-provides scripts
|
|
for i in /usr/lib/rpm/redhat/find-provides.d/*.prov
|
|
do
|
|
[ -x $i ] &&
|
|
(echo $filelist | tr '[:blank:]' \\n | $i | sort -u)
|
|
done
|
|
|
|
#
|
|
# --- Kernel module imported symbols
|
|
#
|
|
# Since we don't (yet) get passed the name of the package being built, we
|
|
# cheat a little here by looking first for a kernel, then for a kmod.
|
|
#
|
|
|
|
is_kmod=1
|
|
for f in $filelist; do
|
|
if [ $(echo "$f" | sed -r -ne 's:^.*/lib/modules/(.*)/(.*).ko$:\2:p') ]
|
|
then
|
|
is_kernel=1;
|
|
fi
|
|
if [ $(echo "$f" | sed -r -ne 's:^.*/boot/(.*):\1:p') ]
|
|
then
|
|
unset is_kmod;
|
|
fi
|
|
done
|
|
if [ ! "$is_kernel" ] || [ "$package_name" == "kernel" ]
|
|
then
|
|
unset is_kmod
|
|
fi
|
|
|
|
[ -x /usr/lib/rpm/redhat/find-provides.ksyms ] && [ "$is_kmod" ] &&
|
|
printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/redhat/find-provides.ksyms
|
|
|
|
exit 0
|