4 if [ "$1" = "-u" ];then
10 # Do not rebuild the tree if it looks as already setup.
11 if [ "$1" = "-s" ];then
17 if [ "$1" = "-h" ];then
18 echo >&2 "$0 [/var/lib/mock/]<ROOTNAME>..."
22 l="`echo /var/lib/mock/*`"
27 trap 'echo >&2 FATAL ERROR' EXIT
30 r="`echo "$r"|tr -s /`"
31 r="${r#/var/lib/mock/}"
33 rpath="/var/lib/mock/$r/root"
34 if [ ! -d "$rpath" ];then
35 echo >&2 "$rpath does not exist"
39 echo >&2 -n "Locking $rpath/MOCK.mocksetup-lock ..."
40 lockfile -l 10 $rpath/MOCK.mocksetup-lock
43 if $soft && [ -f $rpath/MOCK ];then
44 rm -f $rpath/MOCK.mocksetup-lock
45 echo >&2 "Unlocked $rpath/MOCK.mocksetup-lock ."
51 for p in /proc/*/root;do
52 l="`readlink $p || :`"
53 if [ "${l#/var/lib/mock/$r/}" != "$l" ];then
60 echo >&2 "$rpath has existing processes: $b"
62 rm -f $rpath/MOCK.mocksetup-lock
63 echo >&2 "Unlocked $rpath/MOCK.mocksetup-lock ."
69 # It fails on already mounted /proc. But we do not need it.
70 # mock -q -r $r chroot true echo "$rpath lock check"
72 for n in passwd group;do
73 cat /etc/$n $rpath/etc/$n|perl -ne 'print if /^(?:[^:]*:){2}(5\d\d):/'|sort|uniq -u|tee -a $rpath/etc/$n
75 if [ ! -f $rpath/etc/mtab-orig ];then
76 c="mv -f $rpath/etc/mtab $rpath/etc/mtab-orig"
78 c="ln -s /proc/mounts $rpath/etc/mtab"
84 while $c 2>&1|grep -v ': not mounted$';do
88 for dir in /home /usr/local/bin /dev /proc /sys;do
90 while $c 2>&1|grep -v ': not mounted$';do
94 c="mount --bind $dir $rpath$dir"
101 c="mount --bind $dir $rpath$dir"
105 c="umount $rpath/var/cache/yum"
106 while $c 2>&1|grep -v ': not mounted$';do
110 if [ -d /var/cache/mock/$r/yum_cache ];then
113 cr=`echo $r|sed 's/-[^-]*$//'`
115 c="mount --bind /var/cache/mock/$cr/yum_cache $rpath/var/cache/yum"
119 rm -f $rpath/usr/local/lib/debug
121 ln -s ../../lib/debug $rpath/usr/local/lib/debug
124 rm -f $rpath/usr/local/src/debug
126 ln -s ../../src/debug $rpath/usr/local/src/debug
133 rm -f $rpath/MOCK.mocksetup-lock
134 echo >&2 "Unlocked $rpath/MOCK.mocksetup-lock ."
136 trap 'echo >&2 done' EXIT