dtneededsizerpmsone: Fix.
authorJan Kratochvil <jan.kratochvil@redhat.com>
Wed, 2 Sep 2020 21:16:51 +0000 (23:16 +0200)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Wed, 2 Sep 2020 21:16:51 +0000 (23:16 +0200)
dtneededsizerpmsone

index bda8644..56e6a44 100755 (executable)
@@ -10,12 +10,18 @@ for rpms in "$@";do
   fi
   if [ "$srcrpm" != "${srcrpm%.dt5.rpm}" ];then
     # The non-.dt5.rpm run will handle both.
   fi
   if [ "$srcrpm" != "${srcrpm%.dt5.rpm}" ];then
     # The non-.dt5.rpm run will handle both.
-    exit 0
+    continue
   fi
   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
   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
       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
       fi
     cd ..
     function extract
@@ -49,6 +55,13 @@ for rpms in "$@";do
       dwzcommon=0
     else
       dwzcommon="$(find "$dwzcommonname" -maxdepth 0 -printf "%s")"
       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
       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
        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
            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
       done
     popd >/dev/null
   popd >/dev/null