+dtneededtwo: Speedup.
[massrebuild.git] / dtneededtwo
diff --git a/dtneededtwo b/dtneededtwo
new file mode 100755 (executable)
index 0000000..bd2a656
--- /dev/null
@@ -0,0 +1,48 @@
+#! /bin/bash
+set -ex
+repos=$1
+shift
+d=$1
+shift
+pkg=$1
+shift
+exec >>$d-log.d/"$(basename "$pkg")" 2>&1
+[ $# -eq 0 ]
+t=/tmp/dtneededtwo.$$
+rm -rf $t
+mkdir $t
+cd $t
+if ! test -e "$pkg.rpm";then
+  echo "$pkg" >>$d/error-e
+  exit 1
+fi
+rpm2archive "$pkg.rpm"
+rm -f "$pkg.rpm"
+mkdir x
+cd x
+tar xzf "$pkg.rpm.tgz"
+rm -f "$pkg.rpm.tgz"
+pkg="$(basename "$pkg")"
+find -type f|while read -r i;do
+  llvm-readelf --dynamic-table "$i" >xxx 2>/dev/null || :
+  if test -s xxx;then
+    if test -e "$d/$i";then
+      echo "$pkg:$i" >>$d/error-conflict
+      rm -f xxx
+    else
+      mkdir -p "$(dirname "$d/$i")"
+      mv -f xxx "$d/$i"
+    fi
+  fi
+done
+find -type l|while read -r i;do
+  if test -e "$d/$i";then
+    echo "$pkg:$i" >>$d/error-conflict-l
+  else
+    mkdir -p "$(dirname "$d/$i")"
+    mv -f $i "$d/$i"
+  fi
+done
+cd
+rm -rf $t
+echo donetwo:"$pkg"