3 # build/znc-1.8.1-2.fc33.src.rpm.rpms
4 which readelf >/dev/null
7 if [ "$rpms" = "$srcrpm" ];then
8 echo >&2 "$rpms is not *.rpms"
11 if [ "$srcrpm" != "${srcrpm%.dt5.rpm}" ];then
12 # The non-.dt5.rpm run will handle both.
15 if [ "$srcrpm" != "${srcrpm%.dt.rpm}" ];then
19 if [ ! -e $srcrpm.rpms ];then
20 echo >&2 "! $srcrpm.rpms"
23 if [ ! -e $srcrpm.dt5.rpm.rpms ];then
24 echo >&2 "! $srcrpm.dt5.rpm.rpms"
27 if [ -e $srcrpm.dtneeded ];then
30 if [ -e $srcrpm.rpms.d ];then
31 echo >&2 "! $srcrpm.rpms.d"
34 t=/tmp/dtneededsizerpms.$$
37 pushd $srcrpm.rpms.d >/dev/null
38 rpmsbase=../../`basename $srcrpm`
39 dwzrpms=$rpmsbase.rpms
40 dtrpms=$rpmsbase.dt5.rpm.rpms
43 if [ -z "$(find $dwzrpms $dtrpms -maxdepth 1 -type f)" ];then
51 for i in $1/*-debuginfo*.rpm;do
59 mkdir dwz;(cd dwz;extract $dwzrpms)
60 mkdir dt;(cd dt;extract $dtrpms)
61 dwzcommonname="$(find dwz/usr/lib/debug/.dwz/ -type f 2>/dev/null || :)"
62 if [ -z "$dwzcommonname" ];then
63 dwzcommonname="nodwzcommon"
66 dwzcommon="$(find "$dwzcommonname" -maxdepth 0 -printf "%s")"
67 dwzcommonname="/${dwzcommonname#dwz/}"
68 dwzcommonname2="$(echo "$dwzcommonname"|sed 's/-[^-]*-[^-]*$//')"
69 if [ "$dwzcommonname2" = "$dwzcommonname" ];then
70 echo >&2 "No VR dwzcommon suffix: $dwzcommonname"
73 dwzcommonname="$dwzcommonname2"
74 echo >>$t "$dwzcommonname isdwzcommon $dwzcommon NA"
77 for i in `find -type f -name "*.debug*"`;do
78 dwz=$(find $i -maxdepth 0 -printf "%s")
79 dt=$(find ../dt/$i -maxdepth 0 -printf "%s")
80 if readelf -WS $i 2>/dev/null|fgrep -q .gnu_debugaltlink;then
81 if [ $dwzcommon -eq 0 ];then
82 echo >&2 "Excessive .gnu_debugaltlink: $i"
87 i2="${i#/usr/lib/debug/}"
88 if [ "$i" = "$i2" ];then
89 echo >&2 "No /usr/lib/debug/ prefix: $i"
94 i2="$(echo "$i"|sed 's/-[^-]*-[^-]*$//')"
95 if [ "$i2" = "$i" ];then
96 echo >&2 "No VR suffix: $i"
99 echo "${i%.debug} $dwzcommonname $dwz $dt"|sed 's#^\./#/#' >>$t
103 rm -rf $srcrpm.rpms.d
104 mv $t $srcrpm.dtneeded