1 # vim:set et ts=4 sw=4 ft=bash ai:
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 PAS_FILE="$PAS_BASE/$SUITE/Packages-arch-specific"
11 LOCKFILE="${ARCHIVE_BASE}/lock"
12 ARCHS_lenny="alpha amd64 arm armel hppa i386 ia64 mips mipsel powerpc s390 sparc"
13 ARCHS_squeeze="amd64 armel i386 ia64 mips mipsel powerpc s390 sparc kfreebsd-amd64 kfreebsd-i386"
14 ARCHS_wheezy="amd64 armel i386 ia64 mips mipsel powerpc s390 sparc kfreebsd-amd64 kfreebsd-i386"
15 ARCHS_sid="$ARCHS_squeeze hurd-i386"
17 # Creates a working environment within the corresponding archive
18 # directory and jumps there.
20 mkdir -p "${ARCHIVE_BASE}/workdir"
21 cd "${ARCHIVE_BASE}/workdir"
24 # Puts the list of architectures for a given suite onto stdout.
28 if [ "$SUITE" = "lenny" -o "$SUITE" = "oldstable" ]; then echo $ARCHS_lenny
29 elif [ "$SUITE" = "squeeze" -o "$SUITE" = "stable" ]; then echo $ARCHS_squeeze
30 elif [ "$SUITE" = "wheezy" -o "$SUITE" = "testing" ]; then echo $ARCHS_wheezy
31 elif [ "$SUITE" = "unstable" -o "$SUITE" = "sid" ]; then echo $ARCHS_sid
32 elif [ "$SUITE" = "experimental" ]; then echo $ARCHS_sid
34 echo "Unknown suite encountered, aborting." >&2
44 if lockfile -! -r 10 -l 6000 "$LOCKFILE"
46 echo "Cannot lock $LOCKFILE, aborting."
63 echo "`date`: Processing ${ARCHIVE}/${SUITE} ..."
65 keep-latest source $(eval echo ${SOURCES}) > Sources.${SUITE}
66 for ARCH in ${ARCHS}; do
67 keep-latest ${ARCH} $(eval echo $(echo ${PACKAGES} | sed -e 's/%ARCH%/${ARCH}/g')) > Packages.${SUITE}.${ARCH}
68 : > Packages.${SUITE}.${ARCH}.build-essential
70 grep-dctrl -S -s Package,Version,Priority,Section,Architecture -X $pkg < Packages.${SUITE}.${ARCH} | sed -e '/^Version/ s,$,+build-essential,' >> Packages.${SUITE}.${ARCH}.build-essential
72 for pkg in make binutils dpkg-dev; do
73 grep-dctrl -S -s Package,Version,Priority,Section,Architecture -X $pkg < Packages.${SUITE}.${ARCH} | sed -e '/^Version/ s,$,+build-essential,' >> Packages.${SUITE}.${ARCH}.build-essential
75 grep-dctrl -F Priority required -s Package,Version,Priority,Section,Architecture < Packages.${SUITE}.${ARCH} | sed -e '/^Version/ s,$,+build-essential,' >> Packages.${SUITE}.${ARCH}.build-essential
76 grep-dctrl -F Essential -i yes -s Package,Version,Priority,Section,Architecture < Packages.${SUITE}.${ARCH} | sed -e '/^Version/ s,$,+build-essential,' >> Packages.${SUITE}.${ARCH}.build-essential
78 [ -f Packages.${SUITE}.i386.non-free ] && PNF="Packages.${SUITE}.%ARCH%.non-free" || PNF=""
79 [ -f Sources.${SUITE}.non-free ] && SNF="Sources.${SUITE}.non-free" || SNF=""
80 parallel -l 5 -i wanna-build -v --Pas ${PAS_FILE} --merge-v3 -A "{}" --dist=$WB_SUITE Packages.${SUITE}.%ARCH% $PNF . Sources.${SUITE} $SNF . Packages.${SUITE}.%ARCH% Packages.${SUITE}.%ARCH%.build-essential -- ${ARCHS} || true
82 echo "`date`: ${ARCHIVE}/${SUITE} done"
85 trigger_wb_update_for_overlay() {
100 echo "`date`: Processing ${ARCHIVE}/${SUITE} ..."
102 keep-latest source $(eval echo ${SOURCES}) > Sources.${SUITE}
103 keep-latest source $(eval echo Sources.${SUITE} ${SOURCES_BASE}) > Sources.${SUITE}-all
104 for ARCH in ${ARCHS}; do
105 keep-latest ${ARCH} $(eval echo $(echo ${PACKAGES} | sed -e 's/%ARCH%/${ARCH}/g')) > Packages.${SUITE}.${ARCH}
106 keep-latest ${ARCH} Packages.${SUITE}.${ARCH} $(eval echo $(echo ${PACKAGES_BASE} | sed -e 's/%ARCH%/${ARCH}/g')) > Packages.${SUITE}.${ARCH}-all
108 [ -f Packages.${SUITE}.i386.non-free ] && PNF="Packages.${SUITE}.%ARCH%.non-free" || PNF=""
109 [ -f Sources.${SUITE}.non-free ] && SNF="Sources.${SUITE}.non-free" || SNF=""
110 echo parallel -l 5 -i wanna-build -v --Pas ${PAS_FILE} --merge-v3 -A "{}" --dist=$WB_SUITE Packages.${SUITE}.%ARCH% $PNF . Sources.${SUITE} $SNF . \
111 Packages.${SUITE}.%ARCH%-all . Sources.${SUITE}-all $SNF -- ${ARCHS}
112 parallel -l 5 -i wanna-build -v --Pas ${PAS_FILE} --merge-v3 -A "{}" --dist=$WB_SUITE Packages.${SUITE}.%ARCH% $PNF . Sources.${SUITE} $SNF . \
113 Packages.${SUITE}.%ARCH%-all . Sources.${SUITE}-all $SNF -- ${ARCHS} || true
115 echo "`date`: ${ARCHIVE}/${SUITE} done"
118 # This is for the case where you get also get packages from
119 # a secondary unrelated suite, the buildd's chroot also has
120 # those packages files in it.
121 # Examples are *-{volatile,backports,edu} and experimental
122 # This is not for something like stable and proposed-updates
123 trigger_wb_update_with_secondary() {
132 if [ -z "$WB_SUITE" ]
137 echo "`date`: Processing ${ARCHIVE}/${SUITE} ..."
139 keep-latest source $(eval echo ${SOURCES}) > Sources.${SUITE}
141 for ARCH in ${ARCHS}; do
142 keep-latest ${ARCH} $(eval echo $(echo ${PACKAGES} | sed -e 's/%ARCH%/${ARCH}/g')) > Packages.${SUITE}.${ARCH}
143 ucat Packages.${SUITE}.${ARCH} $(eval echo $(echo ${PACKAGES_BASE} | sed -e 's/%ARCH%/${ARCH}/g')) > Packages.${SUITE}.${ARCH}-all
145 [ -f Packages.${SUITE}.i386.non-free ] && PNF="Packages.${SUITE}.%ARCH%.non-free" || PNF=""
146 [ -f Sources.${SUITE}.non-free ] && SNF="Sources.${SUITE}.non-free" || SNF=""
147 parallel -l 5 -i wanna-build -v --Pas ${PAS_FILE} --merge-v3 -A "{}" --dist=$WB_SUITE Packages.${SUITE}.%ARCH% $PNF . Sources.${SUITE} $SNF . \
148 Packages.${SUITE}.%ARCH%-all -- ${ARCHS} || true
150 echo "`date`: ${ARCHIVE}/${SUITE} done"
155 if [ -f ${FILE} ]; then
171 filter_out_nonfree() {
175 gunzip -c "$INPUT" | grep-dctrl -v -r -F Section 'non-free/.*' | gzip -c > "$OUTPUT"