dtneededone: +dtneeded.log.d
[massrebuild.git] / dtneededsizerpmsone
index bda8644..6427d91 100755 (executable)
@@ -10,12 +10,27 @@ for rpms in "$@";do
   fi
   if [ "$srcrpm" != "${srcrpm%.dt5.rpm}" ];then
     # The non-.dt5.rpm run will handle both.
-    exit 0
+    continue
+  fi
+  if [ "$srcrpm" != "${srcrpm%.dt.rpm}" ];then
+    # Ignore.
+    continue
+  fi
+  if [ ! -e $srcrpm.rpms ];then
+    echo >&2 "! $srcrpm.rpms"
+    continue
+  fi
+  if [ ! -e $srcrpm.dt5.rpm.rpms ];then
+    echo >&2 "! $srcrpm.dt5.rpm.rpms"
+    continue
+  fi
+  if [ -e $srcrpm.dtneeded ];then
+    continue
+  fi
+  if [ -e $srcrpm.rpms.d ];then
+    echo >&2 "! $srcrpm.rpms.d"
+    continue
   fi
-  test -e $srcrpm.rpms
-  test -e $srcrpm.dt5.rpm.rpms
-  test ! -e $srcrpm.dtneeded
-  test ! -e $srcrpm.rpms.d
   t=/tmp/dtneededsizerpms.$$
   rm -f $t
   mkdir $srcrpm.rpms.d
@@ -28,7 +43,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 +64,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 +79,24 @@ 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"
+       i="${i#.}"
+       i2="${i#/usr/lib/debug/}"
+       if [ "$i" = "$i2" ];then
+         echo >&2 "No /usr/lib/debug/ prefix: $i"
+         i="$i2"
+       else
+         i="/$i2"
+       fi
+       i2="$(echo "$i"|sed 's/-[^-]*-[^-]*$//')"
+       if [ "$i2" = "$i" ];then
+         echo >&2 "No VR suffix: $i"
+       fi
+       i="$i2"
+       echo "${i%.debug} $dwzcommonname $dwz $dt"|sed 's#^\./#/#' >>$t
       done
     popd >/dev/null
   popd >/dev/null