]>
Commit | Line | Data |
---|---|---|
ce96f77c ER |
1 | #!/bin/sh |
2 | set -e | |
3 | ||
4 | package=$1 | |
5 | image=pld/cleanbuild | |
6 | ||
7 | name=cleanbuild-$package | |
8 | ||
9 | # cleanup | |
10 | docker kill $name && docker rm $name || : | |
11 | ||
12 | #topdir=$(rpm -E %_topdir) | |
13 | dir=$(pwd) | |
14 | topdir=$dir/rpm | |
15 | cache=$dir/cache | |
16 | install -d $topdir/bin $cache/poldek | |
17 | ||
18 | # start the container | |
19 | docker run --name=$name -d \ | |
20 | -v $topdir:/home/services/builder/rpm \ | |
21 | -v $cache/poldek:/var/cache/poldek \ | |
40ae7102 | 22 | --tmpfs /home/services/builder/rpm/BUILD:rw,noexec,nosuid,size=2G \ |
ce96f77c ER |
23 | $image |
24 | ||
25 | if [ ! -d $topdir/packages ]; then | |
26 | uid=$(docker exec $name id -u builder) | |
27 | gid=$(docker exec $name getgid builder) | |
28 | sudo chown $uid:$gid $topdir | |
29 | docker exec $name builder --init-rpm-dir | |
30 | fi | |
31 | ||
32 | # fetch sources | |
33 | docker exec $name builder -g $package | |
34 | ||
35 | git_tag=$(GIT_DIR=$topdir/packages/$package/.git git describe --tags --always) | |
36 | buildlog=${git_tag#auto/*/}.log | |
37 | ||
38 | # remove .la dependencies | |
39 | cat > $topdir/bin/cleanup-la <<'EOF' | |
40 | #!/bin/sh | |
41 | find /usr/lib{,64} -name "*.la" -print0 | xargs -0 grep -El "dependency_libs='.+'" | |
42 | exit 0 | |
43 | EOF | |
44 | chmod +x $topdir/bin/cleanup-la | |
45 | docker exec $name sh -xc '~/rpm/bin/cleanup-la' | |
46 | ||
47 | while true; do | |
48 | ./teeboth $buildlog docker exec $name builder -nn -bb -R $package && rc=$? || rc=$? | |
49 | ||
50 | findbr=$package.findbr.log | |
51 | ||
52 | export DOCKER_CONTAINER=$name | |
53 | ./findbr rpm/BUILD/$package $buildlog > $findbr | |
54 | ||
55 | installed_something=false | |
56 | while read pkg msg; do | |
57 | ./addbr $package "$pkg" "$msg" | |
58 | installed_something=true | |
59 | done < $findbr | |
60 | rm -f $findbr | |
61 | ||
62 | # go for another try | |
63 | $installed_something && continue | |
64 | ||
65 | # finished | |
66 | if [ $rc -eq 0 ]; then | |
67 | break | |
68 | fi | |
69 | done | |
70 | ||
71 | # cleanup | |
72 | #docker kill $name && docker rm $name || : |