From 75f6ddcd3a01c2a920fd801a6e88e97422274fd1 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Wed, 2 Sep 2020 23:16:51 +0200 Subject: [PATCH] dtneededsizerpmsone: Fix. --- dtneededsizerpmsone | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/dtneededsizerpmsone b/dtneededsizerpmsone index bda8644..56e6a44 100755 --- a/dtneededsizerpmsone +++ b/dtneededsizerpmsone @@ -10,12 +10,18 @@ for rpms in "$@";do fi if [ "$srcrpm" != "${srcrpm%.dt5.rpm}" ];then # The non-.dt5.rpm run will handle both. - exit 0 + continue fi - test -e $srcrpm.rpms - test -e $srcrpm.dt5.rpm.rpms - test ! -e $srcrpm.dtneeded - test ! -e $srcrpm.rpms.d + if [ "$srcrpm" != "${srcrpm%.dt.rpm}" ];then + # Ignore. + continue + fi + test -e $srcrpm.rpms || (echo >&2 "! $srcrpm.rpms";exit 1) + test -e $srcrpm.dt5.rpm.rpms || (echo >&2 "! $srcrpm.dt5.rpm.rpms";exit 1) + if [ -e $srcrpm.dtneeded ];then + continue + fi + test ! -e $srcrpm.rpms.d || (echo >&2 "$srcrpm.rpms.d";exit 1) t=/tmp/dtneededsizerpms.$$ rm -f $t mkdir $srcrpm.rpms.d @@ -28,7 +34,7 @@ for rpms in "$@";do if [ -z "$(find $dwzrpms $dtrpms -maxdepth 1 -type f)" ];then popd >/dev/null rm -rf $srcrpm.rpms.d - exit 0 + continue fi cd .. function extract @@ -49,6 +55,13 @@ for rpms in "$@";do dwzcommon=0 else dwzcommon="$(find "$dwzcommonname" -maxdepth 0 -printf "%s")" + dwzcommonname="/${dwzcommonname#dwz/}" + dwzcommonname2="$(echo "$dwzcommonname"|sed 's/-[^-]*-[^-]*$//')" + if [ "$dwzcommonname2" = "$dwzcommonname" ];then + echo >&2 "No VR dwzcommon suffix: $dwzcommonname" + exit 1 + fi + dwzcommonname="$dwzcommonname2" echo >>$t "$dwzcommonname isdwzcommon $dwzcommon NA" fi pushd dwz >/dev/null @@ -57,11 +70,22 @@ for rpms in "$@";do dt=$(find ../dt/$i -maxdepth 0 -printf "%s") if readelf -WS $i 2>/dev/null|fgrep -q .gnu_debugaltlink;then if [ $dwzcommon -eq 0 ];then - echo >&2 Excessive .gnu_debugaltlink: $i + echo >&2 "Excessive .gnu_debugaltlink: $i" exit 1 fi fi - echo >>$t "$(echo "$i"|sed 's/\.debug$//') $dwzcommonname $dwz $dt" + i2="${i#./usr/lib/debug/}" + if [ "$i" = "$i2" ];then + echo >&2 "No ./usr/lib/debug/ prefix: $i" + fi + i="/$i2" + i2="$(echo "$i"|sed 's/-[^-]*-[^-]*$//')" + if [ "$i2" = "$i" ];then + echo >&2" No VR suffix: $i" + exit 1 + fi + i="$i2" + echo "${i%.debug} $dwzcommonname $dwz $dt"|sed 's#^\./#/#' >>$t done popd >/dev/null popd >/dev/null -- 1.8.3.1