Jon Masters 97a3288
#! /bin/sh
Jon Masters 97a3288
Jon Masters 97a3288
# Create a table of all symbol sets defined in all /boot/symsets*.tar.gz
Jon Masters 97a3288
# files.
Jon Masters 97a3288
#
Jon Masters 97a3288
# Format:
Jon Masters 97a3288
#   kernelrelease/modver/symbol <tab> symset <tab> symset_hash
Jon Masters 97a3288
#
Jon Masters 97a3288
# This table is needed for computing the appropriate Requires: tags for
Jon Masters 97a3288
# kernel module packages.
Jon Masters 97a3288
Jon Masters 97a3288
tmpdir=$(mktemp -t -d ${0##*/}.XXXXXX)
Jon Masters 97a3288
trap "cd / ; rm -rf $tmpdir" EXIT
Jon Masters 97a3288
cd $tmpdir
Jon Masters 97a3288
Jon Masters 97a3288
shopt -s nullglob
Jon Masters 97a3288
for symsets in /boot/symsets-*.tar.gz; do
Jon Masters 97a3288
    zcat $symsets \
Jon Masters 97a3288
    | tar xf -
Jon Masters 97a3288
done
Jon Masters 97a3288
Jeremy Katz 48c39c9
for symsets in /usr/src/kernels/*/symsets-*.tar.gz; do
Jeremy Katz 48c39c9
    zcat $symsets \
Jeremy Katz 48c39c9
    | tar xf -
Jeremy Katz 48c39c9
done
Jeremy Katz 48c39c9
Jon Masters 97a3288
for symsets in *; do
Jon Masters 97a3288
    krel=${symsets#symsets-}
Jon Masters 97a3288
    for symset in $symsets/*; do
Jon Masters 97a3288
	class=${symset##*/} ; class=${class%.*}
Jon Masters 97a3288
	hash=${symset##*.}
Jon Masters 97a3288
	awk '
Jon Masters 97a3288
	BEGIN { FS = "\t" ; OFS = "\t" }
Jon Masters 97a3288
	{ sub(/0x0*/, "", $1)
Jon Masters 97a3288
	  print krel "/" $1 "/" $2, class, hash }
Jon Masters 97a3288
	' krel="$krel" class="$class" hash="$hash" $symset
Jon Masters 97a3288
    done
Jon Masters 97a3288
done
Jon Masters 97a3288
Jon Masters 97a3288
# vim:shiftwidth=4 softtabstop=4