/usr/src/linux-source-3.13.0/debian/scripts/misc/getabis is in linux-source-3.13.0 3.13.0-93.140.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | #!/bin/bash
if [ "$#" != "2" ]; then
echo "Usage: $0 <release> <revision>" 1>&2
exit 1
fi
if [ "$DEBIAN" = "" ]; then
. debian/debian.env
fi
ver=$1
revision=$2
abi=$(echo $revision | sed -r -e 's/([^\+]*)\.[^\.]+(\+.*)?$/\1/')
verabi=$ver-$abi
verfull=$ver-$revision
WGET="wget --tries=1 --timeout=10 --quiet -c"
abidir="`pwd`/$DEBIAN/abi/$verfull"
tmpdir="`pwd`/abi-tmp-$verfull"
origdir="`pwd`"
fwinfo=$abidir/fwinfo
test -d $tmpdir || mkdir $tmpdir
package_prefixes() {
__package_prefixes="$@"
}
getall() {
arch=$1
shift
mkdir -p $abidir/$arch
for sub in $@; do
if [ -f $abidir/$arch/$sub ]; then
echo "Exists: $sub"
continue
fi
echo -n "Fetching $sub($arch)..."
prefixes=""
filenames=""
cd $tmpdir
for prefix in $__package_prefixes
do
filename=${prefix}-${verabi}-${sub}_${verfull}_${arch}.deb
for r in "${repo_list[@]}"
do
if ! [ -f $filename ]; then
$WGET $r/$filename
fi
if [ -f $filename ]; then
prefixes="$prefixes $prefix"
filenames="$filenames $filename"
break
fi
done
done
if [ "$filenames" != "" ]; then
echo -n "extracting$prefixes..."
for filename in $filenames
do
dpkg-deb --extract $filename tmp
done
find tmp -name "*.ko" | while read f; do
modinfo $f | grep ^firmware >> $fwinfo
done
if [ -f tmp/boot/abi-* ]; then
mv tmp/boot/abi-* $abidir/$arch/$sub
else
echo -n "NO ABI FILE..."
fi
(cd tmp; find lib/modules/$verabi-$sub/kernel -name '*.ko') | \
sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > \
$abidir/$arch/$sub.modules
(
cd tmp;
# Prevent exposing some errors when called by python scripts. SIGPIPE seems to get
# exposed when using the `find ...` form of the command.
ko=$(find lib/modules/$verabi-$sub/kernel \
-name '*.ko' | head -1)
readelf -p .comment "$ko" | gawk '
($1 == "[") {
printf("%s", $3);
for (n=4; n<=NF; n++) {
printf(" %s", $n);
}
print ""
}' | sort -u >$abidir/$arch/$sub.compiler
version=`cat $abidir/$arch/$sub.compiler`
echo -n "$version..."
)
rm -rf tmp $filenames
echo "done."
else
echo "FAILED."
fi
cd $origdir
done
}
# MAIN
# Setup abi directory
mkdir -p $abidir
echo $abi > $abidir/abiname
# NOTE: The flavours are hardcoded, because they may have changed from the
# current build.
__package_prefixes="linux-image"
. $DEBIAN/etc/getabis
# Extract compiler source package version from e.g.:
# GCC: (Ubuntu/Linaro 4.8.2-19ubuntu1) 4.8.2
compilers=`sed 's/^.*(.* \(.*\)).*$/\1/' $abidir/*/*.compiler | sort -u | wc -l`
if [ "$compilers" != 1 ]; then
echo "WARNING: inconsistent compiler versions detected:" 1>&2
sort -u $abidir/*/*.compiler | sed 's/^/WARNING: /' 1>&2
fi
sort < $fwinfo | uniq > fwinfo.tmp
mv fwinfo.tmp $fwinfo
rmdir $tmpdir
# If this is running in a git repo, add the new ABI directory, remove the old
if [ -d ".git" ]; then
git add $abidir
find $DEBIAN/abi/* -maxdepth 0 -type d | grep -v $verfull | while read f; do git rm -r $f;done
fi
|