# 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" PAS_FILE="$PAS_BASE/$SUITE/Packages-arch-specific" 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" WHITELIST_FILE="$3" quinn-diff \ -A $ARCH \ -a "$PAS_BASE/$SUITE/Packages-arch-specific" \ -s Sources.$SUITE \ -p Packages.$SUITE.$ARCH \ | filter-q-d "${WHITELIST_FILE}" > 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 wanna-build -v --Pas ${PAS_FILE} --merge-v3 --arch=$ARCH --dist=$WB_SUITE Packages.$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 # this currently makes the packages unknown to wanna-build. Perhaps we should keep them in pseudo-installed or so. Hm. wanna-build -v --Pas ${PAS_FILE} --merge-v3 --arch=$ARCH --dist=$WB_SUITE Packages.$SUITE.$ARCH . Sources.$SUITE . Packages.$SUITE.$ARCH-all . 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 wanna-build -v --Pas ${PAS_FILE} --merge-v3 --arch=$ARCH --dist=$WB_SUITE Packages.$SUITE.$ARCH . Sources.$SUITE . Packages.$SUITE.$ARCH-all . Sources.$SUITE-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} parallel -l 5 -i trigger_wb_update_arch_loop "${SUITE}" "{}" "${SOURCES}" "${PACKAGES}" "${WB_SUITE}" -- ${ARCHS} || true #for ARCH in ${ARCHS}; do #trigger_wb_update_arch_loop "${SUITE}" "${ARCH}" "${SOURCES}" "${PACKAGES}" "${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} new-keep-latest source $(eval echo Sources.${SUITE} ${SOURCES_BASE}) > Sources.${SUITE}-all parallel -l 5 -i trigger_wb_update_for_overlay_arch_loop "${SUITE}" "{}" "${SOURCES_BASE}" "${PACKAGES_BASE}" "${SOURCES}" "${PACKAGES}" "${WB_SUITE}" "${WHITELIST_FILE}" -- ${ARCHS} || true #for ARCH in ${ARCHS}; do #trigger_wb_update_for_overlay_arch_loop "${SUITE}" "${ARCH}" "${SOURCES_BASE}" "${PACKAGES_BASE}" "${SOURCES}" "${PACKAGES}" "${WB_SUITE}" "${WHITELIST_FILE}" #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} parallel -l 5 -i trigger_wb_update_arch_loop_with_secondary "${SUITE}" "{}" "${PACKAGES_BASE}" "${SOURCES}" "${PACKAGES}" "${WB_SUITE}" "${WHITELIST_FILE}" -- ${ARCHS} || true #for ARCH in ${ARCHS}; do #trigger_wb_update_arch_loop_with_secondary "${SUITE}" "${ARCH}" "${PACKAGES_BASE}" "${SOURCES}" "${PACKAGES}" "${WB_SUITE}" "${WHITELIST_FILE}" #done echo "`date`: ${ARCHIVE}/${SUITE} done" }