5 mock="mock -v -r fedora-rawhide-x86_64 --uniqueext=mass$$ --no-bootstrap-chroot --disable-plugin=yum_cache"
6 # https://bugzilla.redhat.com/show_bug.cgi?id=1869030 glibc 2.32.9000-1 snapshot build in rawhide breaks systemd-nspawn based chroots
7 mock="$mock --isolation=simple"
8 # (1) inaccessible plugin file plugin/annobin.so expanded from short plugin name annobin
10 mock="$mock --disable-plugin=root_cache"
14 #dnf --disablerepo='*' --enablerepo=$repos repoquery --requires "$pkg"|egrep '^(gcc|clang)' || continue
16 if [ -e "$srcrpm" ];then
20 exec >>$srcrpm.log 2>&1
21 dnf --disablerepo='*' --enablerepo=$repos download --source "$pkg"
22 if [ ! -e $srcrpm ];then
23 touch $srcrpm.downloadfail
26 #rpm -q --requires -p $srcrpm|egrep '^(gcc|clang)' || continue
32 tar xzf ../$srcrpm.tgz
34 name=$(echo "$pkg"|sed 's/-[^-]*-[^-]*$//')
35 if [ ! -e $name.spec ];then
36 touch ../$srcrpm.specfail
39 (echo '%global _find_debuginfo_dwz_opts %{nil}'
40 # It removes -fcommon, use redhat-rpm-config.patch instead.
41 # echo '%global optflags %(echo %{optflags}|sed "s/ -g / -g -fdebug-types-section /")'
42 sed 's/^%\(\(define\|global\) *_find_debuginfo_dwz_opts\)/\1/'
43 ) <$name.spec >$name.spec.new
44 cp -p $name.spec ../$srcrpm.spec
45 cp -p $name.spec.new ../$srcrpm.spec.new
46 diff -u $name.spec $name.spec.new || :
47 mv -f $name.spec.new $name.spec
48 if ! $mock --resultdir=$PWD/resultdir --buildsrpm --spec $name.spec --sources $PWD;then
49 touch ../$srcrpm.bsmockfail
52 if [ $[$(find resultdir -name "*.src.rpm"|wc -l)] -ne 1 ];then
53 touch ../$srcrpm.bsmockefail
56 # if not pkg.endswith('.rpm'): log.error("%s doesn't appear to be an rpm - skipping", pkg)
57 mv -f resultdir/*.src.rpm ../$srcrpm.nc.rpm
59 test -e $srcrpm.nc.rpm
62 ln $srcrpm $srcrpm.nc.rpm
64 for ext in "" ".nc.rpm";do
65 resultdir=$PWD/$srcrpm$ext.resultdir
68 # --chain instead of --rebuild as otherwise -a does not work
69 $mock --resultdir=$resultdir --nocheck $(
70 if [ "$ext" = ".nc.rpm" ];then echo -a https://www.jankratochvil.net/t/nocommon/;fi
71 if [ "$ext" = ".dt.rpm" ];then echo -a https://www.jankratochvil.net/t/rpmdts/ ;fi
72 if [ "$ext" = ".dt5.rpm" ];then echo -a https://www.jankratochvil.net/t/rpmdts5/ ;fi
73 ) --chain $srcrpm$ext &>$srcrpm$ext.mocklog
78 # --chain ignores --resultdir
79 resultdirsrc="$(sed -n 's/^INFO: Results out to: //p' $srcrpm$ext.mocklog)"
80 if [ ! -e $resultdirsrc/*/root.log ];then
81 touch $srcrpm$ext.mockfail
84 # With --chain $resultdir contains just some small *.log files.
86 mv `dirname $resultdirsrc/*/root.log` $resultdir
87 if [ $mockrc -ne 0 ];then
88 touch $srcrpm$ext.mockfail
91 echo >$srcrpm$ext.rpmsize $(du -sbc /dev/null $resultdir/*-debuginfo*.rpm|tail -n1|awk '{print $1}')
93 for i in $resultdir/*-debuginfo*.rpm;do
95 sizethis="$(rpm -q --qf '%{longsize}' -p $i)"
96 [[ "$sizethis" =~ ^[0-9]+$ ]]
97 size=$[$size+$sizethis]
100 echo >$srcrpm$ext.filesize $size
101 mkdir $srcrpm$ext.rpms
102 mv -f $resultdir/*-debuginfo*.rpm $srcrpm$ext.rpms || :