# vim:set et ts=4 sw=4 ft=bash ai: set -eE LANG=C PATH="/bin:/usr/bin:/org/wanna-build/bin:/org/buildd.debian.org/bin:/org/wanna-build/triggers" ARCHIVE_MAIN="/org/wanna-build/tmp/archive/debian" ARCHIVE_BASE="/org/wanna-build/tmp/archive/${ARCHIVE}" PAS_BASE="/org/buildd.debian.org/web/quinn-diff" LOCKFILE="${ARCHIVE_BASE}/lock" ARCHS_etch="alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc" ARCHS_lenny="alpha amd64 arm armel hppa i386 ia64 mips mipsel powerpc s390 sparc" ARCHS_squeeze="amd64 armel hppa i386 ia64 mips mipsel powerpc s390 sparc kfreebsd-amd64 kfreebsd-i386" ARCHS_unstable="$ARCHS_squeeze alpha hurd-i386" # Creates a working environment within the corresponding archive # directory and jumps there. ensure_workdir() { mkdir -p "${ARCHIVE_BASE}/workdir" cd "${ARCHIVE_BASE}/workdir" } # Puts the list of architectures for a given suite onto stdout. get_architectures() { SUITE="$1" if [ "$SUITE" = "etch" -o "$SUITE" = "oldstable" ]; then echo $ARCHS_etch elif [ "$SUITE" = "lenny" -o "$SUITE" = "stable" ]; then echo $ARCHS_lenny elif [ "$SUITE" = "squeeze" -o "$SUITE" = "testing" ]; then echo $ARCHS_squeeze elif [ "$SUITE" = "unstable" -o "$SUITE" = "sid" ]; then echo $ARCHS_unstable elif [ "$SUITE" = "experimental" ]; then echo $ARCHS_unstable else echo "Unknown suite encountered, aborting." >2 exit 1 fi } # Runs quinn-diff with the right arguments. do_quinn() { SUITE="$1" ARCH="$2" quinn-diff \ -A $ARCH \ -a "$PAS_BASE/$SUITE/Packages-arch-specific" \ -s Sources.$SUITE \ -p Packages.$SUITE.$ARCH \ > quinn-$SUITE.$ARCH 2>/dev/null } # Call wanna-build's importing function. WB_SUITE might differ from SUITE # for other archives than the main one. do_wb_merge_all() { SUITE="$1" ARCH="$2" WB_SUITE="$3" OPTIONS="$4" if [ -z "$WB_SUITE" ] then WB_SUITE="$SUITE" fi echo "do_wb_merge_all $SUITE/$ARCH started" if test "$4" != "overlay" && test "$4" != "secondary" then wanna-build -v --merge-all --arch=$ARCH --dist=$WB_SUITE \ Packages.$SUITE.$ARCH quinn-$SUITE.$ARCH Sources.$SUITE fi if [ "$4" = "overlay" ] then wanna-build -v --merge-all --arch=$ARCH --dist=$WB_SUITE \ Packages.$SUITE.$ARCH-all quinn-$SUITE.$ARCH Sources.$SUITE-all fi if [ "$4" = "secondary" ] then wanna-build -v --merge-all-secondary --arch=$ARCH --dist=$WB_SUITE \ Packages.$SUITE.$ARCH quinn-$SUITE.$ARCH Sources.$SUITE Packages.$SUITE.$ARCH-all fi echo "do_wb_merge_all $SUITE/$ARCH done" } cleanup() { rm -rf "$LOCKFILE" } ensure_lock() { if lockfile -! -r 10 -l 6000 "$LOCKFILE" then echo "Cannot lock $LOCKFILE, aborting." exit 1 fi } trigger_wb_update() { SUITE="$1" ARCHS="$2" SOURCES="$3" PACKAGES="$4" WB_SUITE="$5" if [ -z "$WB_SUITE" ] then WB_SUITE="${SUITE}" fi echo "`date`: Processing ${ARCHIVE}/${SUITE} ..." new-keep-latest source $(eval echo ${SOURCES}) > Sources.${SUITE}.full for ARCH in ${ARCHS}; do new-keep-latest ${ARCH} $(eval echo $(echo ${PACKAGES} | sed -e 's/%ARCH%/${ARCH}/g')) > Packages.${SUITE}.${ARCH}.full done filter-nonfree .full /org/wanna-build/etc/non-free-include-list Sources.${SUITE}.full $(for ARCH in ${ARCHS}; do echo Packages.${SUITE}.${ARCH}.full; done) for ARCH in ${ARCHS}; do do_quinn ${SUITE} ${ARCH} do_wb_merge_all ${SUITE} ${ARCH} ${WB_SUITE} done echo "`date`: ${ARCHIVE}/${SUITE} done" } trigger_wb_update_for_overlay() { SUITE="$1" ARCHS="$2" SOURCES_BASE="$3" PACKAGES_BASE="$4" SOURCES="$5" PACKAGES="$6" WB_SUITE="$7" WHITELIST_FILE="$8" if [ -z "$WB_SUITE" ] then WB_SUITE="${SUITE}" fi echo "`date`: Processing ${ARCHIVE}/${SUITE} ..." new-keep-latest source $(eval echo ${SOURCES}) > Sources.${SUITE}.full new-keep-latest source $(eval echo Sources.${SUITE} ${SOURCES_BASE}) > Sources.${SUITE}-all for ARCH in ${ARCHS}; do new-keep-latest ${ARCH} $(eval echo $(echo ${PACKAGES} | sed -e 's/%ARCH%/${ARCH}/g')) > Packages.${SUITE}.${ARCH}.full new-keep-latest ${ARCH} Packages.${SUITE}.${ARCH} $(eval echo $(echo ${PACKAGES_BASE} | sed -e 's/%ARCH%/${ARCH}/g')) > Packages.${SUITE}.${ARCH}-all.full done filter-nonfree .full /org/wanna-build/etc/non-free-include-list Sources.${SUITE}.full $(for ARCH in ${ARCHS}; do echo Packages.${SUITE}.${ARCH}.full; done) for ARCH in ${ARCHS}; do do_quinn ${SUITE} ${ARCH} do_wb_merge_all ${SUITE} ${ARCH} ${WB_SUITE} overlay done echo "`date`: ${ARCHIVE}/${SUITE} done" } # This is for the case where you get also get packages from # a secondary unrelated suite, the buildd's chroot also has # those packages files in it. # Examples are *-{volatile,backports,edu} and experimental # This is not for something like stable and proposed-updates trigger_wb_update_with_secondary() { SUITE="$1" ARCHS="$2" PACKAGES_BASE="$3" SOURCES="$4" PACKAGES="$5" WB_SUITE="$6" WHITELIST_FILE="$7" if [ -z "$WB_SUITE" ] then WB_SUITE="${SUITE}" fi echo "`date`: Processing ${ARCHIVE}/${SUITE} ..." new-keep-latest source $(eval echo ${SOURCES}) > Sources.${SUITE}.full for ARCH in ${ARCHS}; do new-keep-latest ${ARCH} $(eval echo $(echo ${PACKAGES} | sed -e 's/%ARCH%/${ARCH}/g')) > Packages.${SUITE}.${ARCH}.full new-keep-latest ${ARCH} Packages.${SUITE}.${ARCH} $(eval echo $(echo ${PACKAGES_BASE} | sed -e 's/%ARCH%/${ARCH}/g')) > Packages.${SUITE}.${ARCH}-all.full done filter-nonfree .full /org/wanna-build/etc/non-free-include-list Sources.${SUITE}.full $(for ARCH in ${ARCHS}; do echo Packages.${SUITE}.${ARCH}.full Packages.${SUITE}.${ARCH}-all.full; done) for ARCH in ${ARCHS}; do do_quinn ${SUITE} ${ARCH} do_wb_merge_all ${SUITE} ${ARCH} ${WB_SUITE} secondary done echo "`date`: ${ARCHIVE}/${SUITE} done" }