]> git.donarmstrong.com Git - wannabuild.git/blob - triggers/common
Revert "add non-free files to quinn-diff (and to wanna-build)"
[wannabuild.git] / triggers / common
1 # vim:set et ts=4 sw=4 ft=bash ai:
2
3 set -eE
4
5 LANG=C
6 PATH="/bin:/usr/bin:/org/wanna-build/bin:/org/buildd.debian.org/bin:/org/wanna-build/triggers"
7 ARCHIVE_MAIN="/org/wanna-build/tmp/archive/debian"
8 ARCHIVE_BASE="/org/wanna-build/tmp/archive/${ARCHIVE}"
9 PAS_BASE="/org/buildd.debian.org/web/quinn-diff"
10 LOCKFILE="${ARCHIVE_BASE}/lock"
11 ARCHS_etch="alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc"
12 ARCHS_lenny="alpha amd64 arm armel hppa i386 ia64 mips mipsel powerpc s390 sparc"
13 ARCHS_squeeze="amd64 armel hppa i386 ia64 mips mipsel powerpc s390 sparc kfreebsd-amd64 kfreebsd-i386"
14 ARCHS_unstable="$ARCHS_squeeze alpha hurd-i386"
15
16 # Creates a working environment within the corresponding archive
17 # directory and jumps there.
18 ensure_workdir() {
19     mkdir -p "${ARCHIVE_BASE}/workdir"
20     cd "${ARCHIVE_BASE}/workdir"
21 }
22
23 # Puts the list of architectures for a given suite onto stdout.
24 get_architectures() {
25     SUITE="$1"
26
27     if [ "$SUITE" = "etch" -o "$SUITE" = "oldstable" ]; then echo $ARCHS_etch
28     elif [ "$SUITE" = "lenny" -o "$SUITE" = "stable" ]; then echo $ARCHS_lenny
29     elif [ "$SUITE" = "squeeze" -o "$SUITE" = "testing" ]; then echo $ARCHS_squeeze
30     elif [ "$SUITE" = "unstable" -o "$SUITE" = "sid" ]; then echo $ARCHS_unstable
31     elif [ "$SUITE" = "experimental" ]; then echo $ARCHS_unstable
32     else
33         echo "Unknown suite encountered, aborting." >2
34         exit 1
35     fi
36 }
37
38 # Runs quinn-diff with the right arguments.
39 do_quinn() {
40     SUITE="$1"
41     ARCH="$2"
42     WHITELIST_FILE="$3"
43     quinn-diff \
44         -A $ARCH \
45         -a "$PAS_BASE/$SUITE/Packages-arch-specific" \
46         -s Sources.$SUITE \
47         -p Packages.$SUITE.$ARCH \
48         | filter-q-d "${WHITELIST_FILE}" > quinn-$SUITE.$ARCH 2>/dev/null
49 }
50
51 # Call wanna-build's importing function.  WB_SUITE might differ from SUITE
52 # for other archives than the main one.
53 do_wb_merge_all() {
54     SUITE="$1"
55     ARCH="$2"
56     WB_SUITE="$3"
57     OPTIONS="$4"
58
59     if [ -z "$WB_SUITE" ]
60     then
61         WB_SUITE="$SUITE"
62     fi
63
64     echo "do_wb_merge_all $SUITE/$ARCH started"
65     if test "$4" != "overlay" && test "$4" != "secondary"
66     then
67         wanna-build -v --merge-all --arch=$ARCH --dist=$WB_SUITE \
68             Packages.$SUITE.$ARCH quinn-$SUITE.$ARCH Sources.$SUITE
69     fi
70     if [ "$4" = "overlay" ]
71     then
72         wanna-build -v --merge-all --arch=$ARCH --dist=$WB_SUITE \
73             Packages.$SUITE.$ARCH-all quinn-$SUITE.$ARCH Sources.$SUITE-all
74     fi
75     if [ "$4" = "secondary" ]
76     then
77         wanna-build -v --merge-all-secondary --arch=$ARCH --dist=$WB_SUITE \
78             Packages.$SUITE.$ARCH quinn-$SUITE.$ARCH Sources.$SUITE Packages.$SUITE.$ARCH-all
79     fi
80     echo "do_wb_merge_all $SUITE/$ARCH done"
81 }
82
83 cleanup() {
84     rm -rf "$LOCKFILE"
85 }
86
87 ensure_lock() {
88     if lockfile -! -r 10 -l 6000 "$LOCKFILE"
89     then
90         echo "Cannot lock $LOCKFILE, aborting."
91         exit 1
92     fi
93 }
94
95 trigger_wb_update() {
96     SUITE="$1"
97     ARCHS="$2"
98     SOURCES="$3"
99     PACKAGES="$4"
100     WB_SUITE="$5"
101
102     if [ -z "$WB_SUITE" ]
103     then
104         WB_SUITE="${SUITE}"
105     fi
106
107     echo "`date`: Processing ${ARCHIVE}/${SUITE} ..."
108
109     new-keep-latest source $(eval echo ${SOURCES}) > Sources.${SUITE}
110     parallel -l 5 -i trigger_wb_update_arch_loop "${SUITE}" "{}" "${SOURCES}" "${PACKAGES}" "${WB_SUITE}" -- ${ARCHS} || true
111     #for ARCH in ${ARCHS}; do
112     #trigger_wb_update_arch_loop "${SUITE}" "${ARCH}" "${SOURCES}" "${PACKAGES}" "${WB_SUITE}"
113     #done
114
115     echo "`date`: ${ARCHIVE}/${SUITE} done"
116 }
117
118 trigger_wb_update_for_overlay() {
119     SUITE="$1"
120     ARCHS="$2"
121     SOURCES_BASE="$3"
122     PACKAGES_BASE="$4"
123     SOURCES="$5"
124     PACKAGES="$6"
125     WB_SUITE="$7"
126     WHITELIST_FILE="$8"
127
128     if [ -z "$WB_SUITE" ]
129     then
130         WB_SUITE="${SUITE}"
131     fi
132
133     echo "`date`: Processing ${ARCHIVE}/${SUITE} ..."
134
135     new-keep-latest source $(eval echo ${SOURCES}) > Sources.${SUITE}
136     new-keep-latest source $(eval echo Sources.${SUITE} ${SOURCES_BASE}) > Sources.${SUITE}-all
137
138     parallel -l 5 -i trigger_wb_update_for_overlay_arch_loop "${SUITE}" "{}" "${SOURCES_BASE}" "${PACKAGES_BASE}" "${SOURCES}" "${PACKAGES}" "${WB_SUITE}" "${WHITELIST_FILE}" -- ${ARCHS} || true
139     #for ARCH in ${ARCHS}; do
140     #trigger_wb_update_for_overlay_arch_loop "${SUITE}" "${ARCH}" "${SOURCES_BASE}" "${PACKAGES_BASE}" "${SOURCES}" "${PACKAGES}" "${WB_SUITE}" "${WHITELIST_FILE}"
141     #done
142
143     echo "`date`: ${ARCHIVE}/${SUITE} done"
144 }
145
146 # This is for the case where you get also get packages from
147 # a secondary unrelated suite, the buildd's chroot also has
148 # those packages files in it.
149 # Examples are *-{volatile,backports,edu} and experimental
150 # This is not for something like stable and proposed-updates
151 trigger_wb_update_with_secondary() {
152     SUITE="$1"
153     ARCHS="$2"
154     PACKAGES_BASE="$3"
155     SOURCES="$4"
156     PACKAGES="$5"
157     WB_SUITE="$6"
158     WHITELIST_FILE="$7"
159
160     if [ -z "$WB_SUITE" ]
161     then
162         WB_SUITE="${SUITE}"
163     fi
164
165     echo "`date`: Processing ${ARCHIVE}/${SUITE} ..."
166
167     new-keep-latest source $(eval echo ${SOURCES}) > Sources.${SUITE}
168
169     parallel -l 5 -i trigger_wb_update_arch_loop_with_secondary "${SUITE}" "{}" "${PACKAGES_BASE}" "${SOURCES}" "${PACKAGES}" "${WB_SUITE}" "${WHITELIST_FILE}" -- ${ARCHS} || true
170     #for ARCH in ${ARCHS}; do
171     #trigger_wb_update_arch_loop_with_secondary "${SUITE}" "${ARCH}" "${PACKAGES_BASE}" "${SOURCES}" "${PACKAGES}" "${WB_SUITE}" "${WHITELIST_FILE}"
172     #done
173
174     echo "`date`: ${ARCHIVE}/${SUITE} done"
175 }
176