+dtneeded*
authorJan Kratochvil <jan.kratochvil@redhat.com>
Fri, 28 Aug 2020 08:12:58 +0000 (10:12 +0200)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Fri, 28 Aug 2020 08:12:58 +0000 (10:12 +0200)
dtneeded [new file with mode: 0755]
dtneededone [new file with mode: 0755]

diff --git a/dtneeded b/dtneeded
new file mode 100755 (executable)
index 0000000..5048c5c
--- /dev/null
+++ b/dtneeded
@@ -0,0 +1,9 @@
+#! /bin/bash
+repos=rawhide
+all="$(dnf --refresh --disablerepo='*' --enablerepo=$repos repoquery -a --qf '%{name}-%{version}-%{release}.%{arch}')"
+all="bash-5.0.17-2.fc33.x86_64"
+set -ex
+d=$PWD/dtneeded.out
+rm -rf $d
+mkdir $d
+parallel -j16 -l32 ./dtneededone $repos $d -- $all
diff --git a/dtneededone b/dtneededone
new file mode 100755 (executable)
index 0000000..023338e
--- /dev/null
@@ -0,0 +1,32 @@
+#! /bin/bash
+set -ex
+repos=$1
+shift
+d=$1
+shift
+for pkg in "$@";do
+  t=/tmp/dtneeded.$$
+  rm -rf $t
+  mkdir $t
+  cd $t
+  if ! dnf --disablerepo='*' --enablerepo=$repos download $pkg;then
+    echo $pkg >>$d/error-dnf
+    continue
+  fi
+  if ! test -e $pkg.rpm;then
+    echo $pkg >>$d/error-e
+    continue
+  fi
+  rpm2archive $pkg.rpm
+  rm -f $pkg.rpm
+  tar xzf $pkg.rpm.tgz
+  rm -f $pkg.rpm.tgz
+  find -type f|while read -r i;do
+    llvm-readelf --dynamic-table $i >xxx 2>/dev/null || :
+    if test -s xxx;then
+      mkdir -p $d/`dirname $i`
+      mv -f xxx $d/$i
+    fi
+  done
+  rm -rf $t
+done