blob: 4fc4d81a37018ba4aacd52240bcbbbf65403afd7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
#!/bin/bash
# all-rebuilder script.
# remote-agent. runs on remote machine and runs with master node.
# 2004 01 12
set -e
. buildd-config.sh
NOBUILDDEP=${BASEDIRECTORY}/FAILED/NOBUILDDEP
FAILED=${BASEDIRECTORY}/FAILED
DEPWAIT=${BASEDIRECTORY}/DEPWAIT
SUCCESS=${BASEDIRECTORY}/SUCCESS
DEPWAIT=${BASEDIRECTORY}/DEPWAIT
mkdir "$FAILED" || true
mkdir "$DEPWAIT" || true
mkdir "$SUCCESS" || true
mkdir "$DEPWAIT" || true
mkdir ${BASEDIRECTORY}/WORKING || true
mkdir ${BASEDIRECTORY}/STATUS || true
mkdir "$NOBUILDDEP" || true
BUILDRESULTDIR=${PWD}/RESULT-deb
mkdir "$BUILDRESULTDIR" || true
STATUSFILE=${BASEDIRECTORY}/STATUS/$(hostname)-$$
BUILDTMP=${BASEDIRECTORY}/tmp-b-$(hostname)-$$
function status () {
echo "$@" > $STATUSFILE
echo "$@"
}
function buildone() {
local PROGNAME="$1"
local LOGFILE=${BASEDIRECTORY}/WORKING/"$PROGNAME.log"
# this part needs to be atomic
status "considering $PROGNAME"
if grep "$PROGNAME" avoidlist; then
echo Skip.
return
fi
if echo "$PROGNAME" | grep "^kernel-image"; then
echo I hate kernel images.
return
fi
# end of atomic.
status "building $PROGNAME"
mkdir $BUILDTMP || true
(
cd $BUILDTMP
apt-get source -d $PROGNAME
if /usr/sbin/pbuilder build --hookdir "${HOOKDIR}" --buildresult . --logfile "$LOGFILE" *.dsc; then
scp "$LOGFILE" "$MASTER:$SUCCESS"
mv "$LOGFILE" "$SUCCESS"
echo Build successful
else
if grep "^E: pbuilder: Could not satisfy build-dependency." $LOGFILE > /dev/null; then
scp "$LOGFILE" "$MASTER:$DEPWAIT"
mv "$LOGFILE" "$DEPWAIT"
echo Dependency cannot be satisfied.
elif [ $(awk '/ -> Attempting to parse the build-deps/,/^ -> Finished parsing the build-deps/{print $0}' $LOGFILE | wc -l ) = "2" ]; then
echo "Missing build-deps"
scp "$LOGFILE" "$MASTER:$NOBUILDDEP"
mv "$LOGFILE" "$NOBUILDDEP"
elif grep '^E: Could not satisfy build-dependency' "$LOGFILE" > /dev/null ; then
echo "Build-dep wait"
scp "$LOGFILE" "$MASTER:$DEPWAIT"
mv "$LOGFILE" "$DEPWAIT"
else
cat "$LOGFILE" | fsh $MASTER mail -s "\"pbuilder-FTBFS [$(hostname)] $(basename $LOGFILE) \"" dancer-pbuildlog@netfort.gr.jp
scp "$LOGFILE" "$MASTER:$FAILED"
mv "$LOGFILE" "$FAILED"
echo Build failed
fi
fi
)
status "finished building $PROGNAME"
rm -rf $BUILDTMP;
}
$ROOTCOMMAND dselect update
$ROOTCOMMAND /usr/sbin/pbuilder update
#pbuilder-user-mode-linux update
while sleep 1s; do
A=$( ssh $MASTER /game/buildd/build-agent.sh $(hostname ) );
if [ $? = 1 ]; then
exit ;
fi
buildone $A
done
|