]>
git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - debian/scripts/misc/getabis
5 if [ "$#" != "2" ]; then
6 echo "Usage: $0 <release> <revision>" 1>&2
10 if [ "$DEBIAN" = "" ]; then
16 abi
=$
(echo $revision |
sed -r -e 's/([^\+~]*)\.[^\.]+(~.*)?(\+.*)?$/\1/')
19 verfull
=$ver-$revision
21 WGET
="wget --tries=1 --timeout=10 --quiet -c"
23 abidir
="`pwd`/$DEBIAN/abi/$verfull"
24 tmpdir
="`pwd`/abi-tmp-$verfull"
28 test -d $tmpdir || mkdir
$tmpdir
31 __package_prefixes
="$@"
38 mkdir
-p $abidir/$arch
41 if [ -f $abidir/$arch/$sub ]; then
45 echo -n "Fetching $sub($arch)..."
49 for prefix
in $__package_prefixes
51 filename
=${prefix}-${verabi}-${sub}_${verfull}_${arch}.deb
52 for r
in "${repo_list[@]}"
54 if ! [ -f $filename ]; then
57 if [ -f $filename ]; then
58 prefixes
="$prefixes $prefix"
59 filenames
="$filenames $filename"
64 if [ "$filenames" != "" ]; then
65 echo -n "extracting$prefixes..."
66 for filename
in $filenames
68 dpkg-deb
--extract $filename tmp
70 find tmp
-name "*.ko" |
while read f
; do
71 modinfo
$f |
grep ^firmware
>> $fwinfo
73 if [ -f tmp
/boot
/abi-
* ]; then
74 mv tmp
/boot
/abi-
* $abidir/$arch/$sub
76 echo -n "NO ABI FILE..."
78 (cd tmp
; find lib
/modules
/$verabi-$sub/kernel
-name '*.ko') | \
79 sed -e 's/.*\/\([^\/]*\)\.ko/\1/' |
sort > \
80 $abidir/$arch/$sub.modules
83 # Prevent exposing some errors when called by python scripts. SIGPIPE seems to get
84 # exposed when using the `find ...` form of the command.
85 ko
=$
(find lib
/modules
/$verabi-$sub/kernel \
86 -name '*.ko' |
head -1)
87 readelf
-p .comment
"$ko" | gawk
'
90 for (n=4; n<=NF; n++) {
94 }' |
sort -u >$abidir/$arch/$sub.compiler
95 version
=`cat $abidir/$arch/$sub.compiler`
109 # Setup abi directory
111 echo $abi > $abidir/abiname
113 # NOTE: The flavours are hardcoded, because they may have changed from the
116 __package_prefixes
="linux-image"
118 .
$DEBIAN/etc
/getabis
120 # Extract compiler source package version from e.g.:
121 # GCC: (Ubuntu/Linaro 4.8.2-19ubuntu1) 4.8.2
122 compilers
=`sed 's/^.*(.* \(.*\)).*$/\1/' $abidir/*/*.compiler | sort -u | wc -l`
123 if [ "$compilers" != 1 ]; then
124 echo "WARNING: inconsistent compiler versions detected:" 1>&2
125 sort -u $abidir/*/*.compiler |
sed 's/^/WARNING: /' 1>&2
128 sort < $fwinfo |
uniq > fwinfo.tmp
129 mv fwinfo.tmp
$fwinfo
133 # If this is running in a git repo, add the new ABI directory, remove the old
134 if [ -d ".git" ]; then
136 find $DEBIAN/abi
/* -maxdepth 0 -type d |
grep -v $verfull |
while read f
; do git
rm -r $f;done