shim-unsigned-x64/SOURCES/shim-find-debuginfo.sh

91 lines
2.1 KiB
Bash
Raw Normal View History

2019-05-07 03:59:23 +00:00
#!/bin/bash
#
# shim-find-debuginfo.sh
# Copyright (C) 2017 Peter Jones <Peter Jones@random>
#
# Distributed under terms of the GPLv3 license.
#
set -e
set -u
mainarch=$1 && shift
if [ $# == 1 ]; then
altarch=$1 && shift
fi
if ! [ -v RPM_BUILD_ROOT ]; then
echo "RPM_BUILD_ROOT must be set" 1>&2
exit 1
fi
findsource()
{
(
2022-05-10 07:21:35 +00:00
cd ${RPM_BUILD_ROOT}
find usr/src/debug/ -type d | sed "s,^,%dir /,"
find usr/src/debug/ -type f | sed "s,^,/,"
2019-05-07 03:59:23 +00:00
)
}
finddebug()
{
arch=$1 && shift
declare -a dirs=()
declare -a files=()
declare -a excludes=()
2022-05-10 07:21:35 +00:00
pushd ${RPM_BUILD_ROOT} >/dev/null 2>&1
for x in $(find usr/lib/debug/ -type f -iname *.efi.debug); do
2019-05-07 03:59:23 +00:00
if ! [ -e "${x}" ]; then
break
fi
if [[ ${x} =~ ${arch}\.efi\.debug$ ]]; then
files[${#files[@]}]=${x}
else
excludes[${#excludes[@]}]=${x}
fi
done
for x in usr/lib/debug/.build-id/*/*.debug ; do
if ! [ -e "${x}" ]; then
break
fi
link=$(readlink "${x}")
if [[ ${link} =~ ${arch}\.efi\.debug$ ]]; then
files[${#files[@]}]=${x}
files[${#files[@]}]=${x%%.debug}
else
excludes[${#excludes[@]}]=${x}
excludes[${#excludes[@]}]=${x%%.debug}
fi
done
2022-05-10 07:21:35 +00:00
for x in ${files[@]} ; do
declare name=$(dirname /${x})
2019-05-07 03:59:23 +00:00
while [ "${name}" != "/" ]; do
case "${name}" in
"/usr/lib/debug"|"/usr/lib"|"/usr")
;;
*)
dirs[${#dirs[@]}]=${name}
;;
esac
2022-05-10 07:21:35 +00:00
name=$(dirname ${name})
2019-05-07 03:59:23 +00:00
done
done
popd >/dev/null 2>&1
2022-05-10 07:21:35 +00:00
for x in ${dirs[@]} ; do
2019-05-07 03:59:23 +00:00
echo "%dir ${x}"
done | sort | uniq
2022-05-10 07:21:35 +00:00
for x in ${files[@]} ; do
2019-05-07 03:59:23 +00:00
echo "/${x}"
done | sort | uniq
2022-05-10 07:21:35 +00:00
for x in ${excludes[@]} ; do
2019-05-07 03:59:23 +00:00
echo "%exclude /${x}"
done
}
2022-05-10 07:21:35 +00:00
findsource > build-${mainarch}/debugsource.list
finddebug ${mainarch} > build-${mainarch}/debugfiles.list
2019-05-07 03:59:23 +00:00
if [ -v altarch ]; then
2022-05-10 07:21:35 +00:00
finddebug ${altarch} > build-${altarch}/debugfiles.list
2019-05-07 03:59:23 +00:00
fi