+some DT_NEEDED unfinished scripts.
authorJan Kratochvil <jan.kratochvil@redhat.com>
Mon, 31 Aug 2020 09:09:09 +0000 (11:09 +0200)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Mon, 31 Aug 2020 09:09:09 +0000 (11:09 +0200)
dtneededsize [new file with mode: 0644]
unpack [new file with mode: 0755]
unpackone [new file with mode: 0755]

diff --git a/dtneededsize b/dtneededsize
new file mode 100644 (file)
index 0000000..1354bb8
--- /dev/null
@@ -0,0 +1,7 @@
+#! /bin/bash
+cd dtneeded.out || exit 1
+for bin in $(grep -rl ' (DEBUG) ' .);do
+  sed -n 's/^ *0x0000000000000001 *(NEEDED) *Shared library: \[\(.*\)\]$/\1/p' <$bin
+  rpath="$(sed -n 's/^.*(R\(\|UN\)PATH) *Library r\(\|un\)path: \[\(.*\)\]$/\1/p' <$bin):."
+  rpath="$(echo "$rpath"|sed 's#[$]ORIGIN#'"$(dirname $bin)"'#g')"
+done
diff --git a/unpack b/unpack
new file mode 100755 (executable)
index 0000000..eddb92c
--- /dev/null
+++ b/unpack
@@ -0,0 +1,10 @@
+#! /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/unpack.out
+rm -rf $d
+mkdir $d
+# 61970/192 = 322
+echo $all|xargs -P192 -n128 ./unpackone $repos $d
diff --git a/unpackone b/unpackone
new file mode 100755 (executable)
index 0000000..2530331
--- /dev/null
+++ b/unpackone
@@ -0,0 +1,27 @@
+#! /bin/bash
+set -ex
+repos=$1
+shift
+d=$1
+shift
+t=/tmp/unpack.$$
+rm -rf $t
+mkdir $t
+cd $t
+if ! dnf --disablerepo='*' --enablerepo=$repos download $@;then
+  echo $@ >>$d/error-dnf
+  exit 1
+fi
+for pkg in "$@";do
+  cd $t
+  if ! test -e $pkg.rpm;then
+    echo $pkg >>$d/error-e
+    continue
+  fi
+  rpm2archive $pkg.rpm
+  rm -f $pkg.rpm
+  cd $d
+  tar xzf $t/$pkg.rpm.tgz
+  rm -f $../pkg.rpm.tgz
+done
+rm -rf $t