Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.2:Staging:N
rpm
find-requires.ksyms
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File find-requires.ksyms of Package rpm
#! /bin/bash IFS=$'\n' case "$1" in kernel-module-*) ;; # Fedora kernel module package names start with # kernel-module. kernel*) is_kernel_package=1 ;; esac is_tumbleweed=false if test "$1" = "--tumbleweed"; then if test "$2" -gt 0; then is_tumbleweed=true fi shift 2 fi if [ -n "$is_kernel_package" ] || ! test -e /sbin/modprobe || ! test -e /sbin/modinfo ; then cat > /dev/null exit 0 fi modules=($(grep -E '/lib/modules/.+\.ko$')) if $is_tumbleweed; then for module in "${modules[@]}"; do flavor=${module#*/lib/modules/} flavor=${flavor%%/*} flavor=${flavor##*-} echo "kernel-uname-r = $flavor" done exit 0 fi all_provides() { for module in "${modules[@]}"; do nm "$module" done \ | sed -r -ne 's:^0*([0-9a-f]+) A __crc_(.+):\1\t\2:p' \ | sort -t $'\t' -k2 -u } all_requires() { for module in "${modules[@]}"; do set -- $(/sbin/modinfo -F vermagic "$module" | sed -e 's: .*::' -e q) /sbin/modprobe --dump-modversions "$module" \ | sed -r -e 's:^0x0*::' -e 's:$:\t'"$1"':' done \ | sort -t $'\t' -k2 -u } if [ ${#modules[@]} -gt 0 ]; then symset_table=$(mktemp -t ${0##*/}.XXXXX) /usr/lib/rpm/symset-table | sort -t $'\t' -k 1,1 > $symset_table join -t $'\t' -j 1 -a 2 $symset_table <( # Filter out requirements that we fulfill ourself. join -t $'\t' -j 2 -v 1 \ <(all_requires "${modules[@]}") \ <(all_provides "${modules[@]}") \ | awk ' BEGIN { FS = "\t" ; OFS = "\t" } { print $3 "/" $2 "/" $1 } ' \ | sort -t $'\t' -k 1,1 -u) \ | sort -u \ | awk ' { FS = "\t" ; OFS = "\t" } { split($1, arr, "/") flavor = gensub(/.*-/, "", "", arr[1]) } NF == 3 { print "kernel(" flavor ":" $2 ") = " $3 next } { print "ksym(" flavor ":" arr[3] ") = " arr[2] } ' fi
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor