image=pld/cleanbuild
name=cleanbuild-$package
topdir=$dir/rpm
-cache=$dir/cache
home=/home/services/builder
buildsize="4G"
docker kill $name || :
docker rm $name || :
-install -d $topdir/bin $cache/poldek
+install -d $topdir/logs
# start the container
docker run --name=$name -d \
-v $topdir:$home/rpm \
-v $dir:$home/cleanbuild \
- -v $cache/poldek:/var/cache/poldek \
- -v $dir/ccache/$package:/home/services/builder/.ccache \
+ -v $dir/cache/poldek:/var/cache/poldek \
+ -v $dir/cache/ccache/$package:/home/services/builder/.ccache \
--tmpfs $home/rpm/BUILD:rw,exec,nosuid,size=$buildsize \
$image
-if [ ! -d $topdir/packages ]; then
- uid=$(docker exec $name id -u builder)
- gid=$(docker exec $name getgid builder)
- sudo chown $uid:$gid $topdir
- docker exec $name builder --init-rpm-dir
-fi
+# these paths need to be accessible for builder
+docker exec --user root $name chown builder:builder rpm/logs rpm/BUILD .ccache
# fetch sources
docker exec $name builder -g $package
git_tag=$(GIT_DIR=$topdir/packages/$package/.git git describe --tags --always)
-buildlog=${git_tag#auto/*/}.log
+buildlog=rpm/logs/${git_tag#auto/*/}.log
# remove .la dependencies
docker exec $name cleanbuild/cleanup-la
while true; do
- docker exec $name cleanbuild/teeboth cleanbuild/$buildlog builder -nn -bb -R $package && rc=$? || rc=$?
+ docker exec $name cleanbuild/teeboth $buildlog builder -nn -bb -R $package --define 'clean exit 0' && rc=$? || rc=$?
findbr=$package.findbr.log
-
- docker exec $name cleanbuild/findbr 'rpm/BUILD/*' cleanbuild/$buildlog > $findbr
+ builddir=$(docker exec $name sh -c 'test -d rpm/BUILD/* && echo rpm/BUILD/*')
+ docker exec $name cleanbuild/findbr $builddir $buildlog > $findbr
installed_something=false
while read pkg msg; do