dtneededone: +dtneeded.log.d
[massrebuild.git] / dtneededone
1 #! /bin/bash
2 set -ex
3 repos=$1
4 shift
5 d=$1
6 shift
7 t=/tmp/dtneeded.$$
8 rm -rf $t
9 mkdir $t
10 cd $t
11 if ! dnf --disablerepo='*' --enablerepo=$repos download $@;then
12   echo $@ >>$d/error-dnf
13   exit 1
14 fi
15 mkdir -p dtneeded.log.d
16 for pkg in "$@";do
17   exec >>dtneeded.log.d/"$pkg" 2>&1
18   cd $t
19   if ! test -e $pkg.rpm;then
20     echo $pkg >>$d/error-e
21     continue
22   fi
23   rpm2archive $pkg.rpm
24   rm -f $pkg.rpm
25   mkdir x
26   cd x
27   tar xzf ../$pkg.rpm.tgz
28   rm -f $../$pkg.rpm.tgz
29   find -type f|while read -r i;do
30     llvm-readelf --dynamic-table $i >xxx 2>/dev/null || :
31     if test -s xxx;then
32       mkdir -p $d/`dirname $i`
33       mv -f xxx $d/$i
34     fi
35   done
36   cd $t
37   rm -rf x
38 done
39 rm -rf $t