bin/mocksetup: /var/cache/mock: -u: Fix.
[nethome.git] / bin / mockupdate
index 0f23872..fc22ef6 100755 (executable)
@@ -13,6 +13,10 @@ if [ "$1" = "-q" ];then
        shift
 fi
 
+if [ -z "$HOME" -o "$HOME" = "/" ];then
+       export HOME=/root
+fi
+
 for i in "$@";do
        if [ "$i" = "${i#/var/lib/mock/}" ];then
                echo >&2 "$i not /var/lib/mock/*"
@@ -42,12 +46,28 @@ for i in "$@";do
                continue
        fi
 
+       r="$(basename $i|sed 's/\(-x86_64\|-i.86\)-.*$/\1/')"
+       r="$r$(basename $i|sed -n 's/^.*\(-x86_64\|-i.86\)-\(.*\)$/ --uniqueext=\2/p')"
        /usr/local/sbin/mocksetup -u `basename $i`
-       rm -f $i/root/var/lib/rpm/__db.*
        if ! $quick;then
-               mock $opts -r `basename $i` --update
-               mock $opts -r `basename $i` --install `cat ~/src/INSTALL`
+               rm -f $i/root/var/lib/rpm/__db.*
+               mock $opts -r $r --update
+               mock $opts -r $r --install `cat $HOME/src/INSTALL`
+               # Otherwise: error: cannot open Packages index using db3 - Invalid argument (22)
+               if [ "${i#*/epel-[45]-}" = "$i" ];then
+                       rm -f $i/root/var/lib/rpm/__db.*
+                       mock $opts -r $r --shell 'package-cleanup --cleandupes'
+                       rm -f $i/root/var/lib/rpm/__db.*
+                       mock $opts -r $r --update
+                       mock $opts -r $r --install `cat $HOME/src/INSTALL`
+               fi
+       fi
+       # Otherwise: error: cannot open Packages index using db3 - Invalid argument (22)
+       if [ "${i#*/epel-[45]-}" = "$i" ];then
+               rm -f $i/root/var/lib/rpm/__db.*
+               mock $opts -r $r --shell 'package-cleanup --cleandupes'
        fi
+       rm -f $i/root/var/lib/rpm/__db.*
        # Run: yum groupinstall buildsys-build
        # Cleaning would undo the changes above.
        # file /lib/libnssutil3.so conflicts between attempted installs of nss-3.12.3.99.3-10.fc12.i686 and nss-util-3.12.3.99.3-9.fc12.i686
@@ -61,6 +81,8 @@ for i in "$@";do
        rpm -r $i/root --rebuilddb
        # Leftover usually just removing vital system packages:
        rm -f $i/root/var/lib/yum/transaction-*
+       # Print duplicates:
+       rpm -r $i/root --qf '%{name}.%{arch}\n' -qa|sort|uniq -d|grep -v '^kernel\.'|sed -e '1s/^/ror duplicity:\n/' -e '1s/^/mockupdate er/'
 done
 
 echo done mockupdate "$*"