Change *-cvs-bare cache dirs to *-cvs-master.
[nethome.git] / bin / mockupdate
1 #! /bin/bash
2 set -x
3
4 opts=
5 if [ "$1" = "-v" ];then
6         opts="-v"
7         shift
8 fi
9
10 quick=false
11 if [ "$1" = "-q" ];then
12         quick=true
13         shift
14 fi
15
16 if [ -z "$HOME" ];then
17         HOME=/root
18 fi
19
20 for i in "$@";do
21         if [ "$i" = "${i#/var/lib/mock/}" ];then
22                 echo >&2 "$i not /var/lib/mock/*"
23                 exit 1
24         fi
25         if [ "$i" != "${i#*/root}" ];then
26                 echo >&2 "$i contains /root"
27                 exit 1
28         fi
29         if [ "$i" != "${i%-intel}" ];then
30                 continue
31         fi
32         set +x
33         l=""
34         b=""
35         for p in /proc/*/root;do
36                 l="`readlink $p`"
37                 if [ "${l#$i/}" != "$l" ];then
38                         p="${p#/proc/}"
39                         p="${p%/root}"
40                         b="$b $p"
41                 fi
42         done
43         set -x
44         if [ -n "$b" ];then
45                 echo >&2 "$i has existing processes: $b"
46                 continue
47         fi
48
49         /usr/local/sbin/mocksetup -u `basename $i`
50         rm -f $i/root/var/lib/rpm/__db.*
51         if ! $quick;then
52                 mock $opts -r `basename $i` --update
53                 mock $opts -r `basename $i` --install `cat ~/src/INSTALL`
54         fi
55         # Run: yum groupinstall buildsys-build
56         # Cleaning would undo the changes above.
57         # 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
58         # rpmdb: Build signature doesn't match environment
59         # on: fedora-{11,12}-i386
60         #if [ "$i" = "${i#*/fedora-rawhide-}" ];then
61         #       mock $opts -r `basename $i` --no-clean --no-cleanup-after --rebuild /usr/local/share/empty-0.1-1.src.rpm
62         #fi
63         # Just rpmbuild would error with:
64         # error: cannot open Packages index using db3 - Invalid argument (22)
65         rpm -r $i/root --rebuilddb
66         # Leftover usually just removing vital system packages:
67         rm -f $i/root/var/lib/yum/transaction-*
68         # Print duplicates:
69         rpm -r $i/root --qf '%{name}.%{arch}\n' -qa|sort|uniq -d|sed -e '1s/^/ror duplicity:\n/' -e '1s/^/mockupdate er/'
70 done
71
72 echo done mockupdate "$*"