diff options
Diffstat (limited to 'find-requires')
-rwxr-xr-x | find-requires | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/find-requires b/find-requires new file mode 100755 index 0000000..3e61e59 --- /dev/null +++ b/find-requires @@ -0,0 +1,38 @@ +#!/bin/bash + +# +# Auto-generate requirements for executables (both ELF and a.out) and library +# sonames, script interpreters, and perl modules. +# + +ulimit -c 0 + +filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"` + +[ -x /usr/lib/rpm/rpmdeps -a -n "$filelist" ] && \ + echo $filelist | tr '[:blank:]' \\n | /usr/lib/rpm/rpmdeps --requires + +# +# --- 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. +# + +unset is_kmod + +for f in $filelist; do + if [ $(echo "$f" | sed -r -ne 's:^.*/lib/modules/(.*)/(.*)\.ko(\.gz|\.bz2|\.xz)?$:\2:p') ] + then + is_kmod=1; + elif [ $(echo "$f" | sed -r -ne 's:^.*/boot/(.*):\1:p') ] + then + unset is_kmod; + break; + fi +done + +[ -x /usr/lib/rpm/@VENDOR@/find-requires.ksyms ] && [ "$is_kmod" ] && + printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/@VENDOR@/find-requires.ksyms + +exit 0 |