Blob Blame History Raw
#!/bin/bash +x
#
# kabi.sh - Automatically extract any kernel symbol checksum from the
#           symvers file and add to RPM deps.  This is used to move the
#           checksum checking from modprobe to rpm install for 3rd party
#           modules (so they can fail during install and not at load).

IFS=$'\n'

for symvers in $(grep -E '(/boot/symvers-.*|/lib/modules/[1-9].*/symvers)\.(gz|xz)') "$@";
do
	cat_prog="cat"
	case "$symvers" in
	*.gz) cat_prog="zcat" ;;
	*.xz) cat_prog="xzcat" ;;
	esac

	# We generate dependencies only for symbols exported by vmlinux itself
	# and not for kmods here as they are spread across subpackages,
	# so Provides: generation for kmods is handled by find-provides.ksyms.
	"$cat_prog" "$symvers" | awk '/[^	]*	[^	]*	vmlinux	.*/ { print "kernel(" $2 ") = " $1 }'
done