X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=triggers%2Fcommon;h=7749fd214a2f6c5e0e0cd7bdd893a355454f1f6e;hb=6beda758e2b8513e0a60bf439827e5cff4179737;hp=d48cbfc5dfe7eb5bf860645e2d7d8e62eace4ea2;hpb=e810b1094fa8c0f9fc4846d4121d079099b851a7;p=wannabuild.git diff --git a/triggers/common b/triggers/common index d48cbfc..7749fd2 100644 --- a/triggers/common +++ b/triggers/common @@ -7,11 +7,12 @@ PATH="/bin:/usr/bin:/org/wanna-build/bin:/org/buildd.debian.org/bin:/org/wanna-b 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" +ARCHS_squeeze="amd64 armel i386 ia64 mips mipsel powerpc s390 sparc kfreebsd-amd64 kfreebsd-i386" +ARCHS_wheezy="amd64 armel i386 ia64 mips mipsel powerpc s390 sparc kfreebsd-amd64 kfreebsd-i386" +ARCHS_sid="$ARCHS_squeeze hurd-i386 armhf s390x" # Creates a working environment within the corresponding archive # directory and jumps there. @@ -24,53 +25,17 @@ ensure_workdir() { 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 + if [ "$SUITE" = "lenny" -o "$SUITE" = "oldstable" ]; then echo $ARCHS_lenny + elif [ "$SUITE" = "squeeze" -o "$SUITE" = "stable" ]; then echo $ARCHS_squeeze + elif [ "$SUITE" = "wheezy" -o "$SUITE" = "testing" ]; then echo $ARCHS_wheezy + elif [ "$SUITE" = "unstable" -o "$SUITE" = "sid" ]; then echo $ARCHS_sid + elif [ "$SUITE" = "experimental" ]; then echo $ARCHS_sid else - echo "Unknown suite encountered, aborting." >2 + 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 - - if [ "$4" != "overlay" ] - then - wanna-build -v --merge-all --arch=$ARCH --dist=$WB_SUITE \ - Packages.$SUITE.$ARCH quinn-$SUITE.$ARCH Sources.$SUITE - else - wanna-build -v --merge-all --arch=$ARCH --dist=$WB_SUITE \ - Packages.$SUITE.$ARCH-all quinn-$SUITE.$ARCH Sources.$SUITE-all - fi -} - cleanup() { rm -rf "$LOCKFILE" } @@ -97,11 +62,22 @@ trigger_wb_update() { 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} - #for ARCH in ${ARCHS}; do - #trigger_wb_update_arch_loop "${SUITE}" "${ARCH}" "${SOURCES}" "${PACKAGES}" "${WB_SUITE}" - #done + keep-latest source $(eval echo ${SOURCES}) > Sources.${SUITE} + for ARCH in ${ARCHS}; do + keep-latest ${ARCH} $(eval echo $(echo ${PACKAGES} | sed -e 's/%ARCH%/${ARCH}/g')) > Packages.${SUITE}.${ARCH} + : > Packages.${SUITE}.${ARCH}.build-essential + for pkg in perl ; do + 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 + done + for pkg in make binutils dpkg-dev; do + 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 + done + 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 + 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 + done + [ -f Packages.${SUITE}.i386.non-free ] && PNF="Packages.${SUITE}.%ARCH%.non-free" || PNF="" + [ -f Sources.${SUITE}.non-free ] && SNF="Sources.${SUITE}.non-free" || SNF="" + 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 echo "`date`: ${ARCHIVE}/${SUITE} done" } @@ -123,14 +99,79 @@ trigger_wb_update_for_overlay() { 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 + keep-latest source $(eval echo ${SOURCES}) > Sources.${SUITE} + keep-latest source $(eval echo Sources.${SUITE} ${SOURCES_BASE}) > Sources.${SUITE}-all + for ARCH in ${ARCHS}; do + keep-latest ${ARCH} $(eval echo $(echo ${PACKAGES} | sed -e 's/%ARCH%/${ARCH}/g')) > Packages.${SUITE}.${ARCH} + keep-latest ${ARCH} Packages.${SUITE}.${ARCH} $(eval echo $(echo ${PACKAGES_BASE} | sed -e 's/%ARCH%/${ARCH}/g')) > Packages.${SUITE}.${ARCH}-all + done + [ -f Packages.${SUITE}.i386.non-free ] && PNF="Packages.${SUITE}.%ARCH%.non-free" || PNF="" + [ -f Sources.${SUITE}.non-free ] && SNF="Sources.${SUITE}.non-free" || SNF="" + echo 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%-all . Sources.${SUITE}-all $SNF -- ${ARCHS} + 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%-all . Sources.${SUITE}-all $SNF -- ${ARCHS} || true - parallel -l 5 -i trigger_wb_update_for_overlay_arch_loop "${SUITE}" "{}" "${SOURCES_BASE}" "${PACKAGES_BASE}" "${SOURCES}" "${PACKAGES}" "${WB_SUITE}" "${WHITELIST_FILE}" -- ${ARCHS} - #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} ..." + + keep-latest source $(eval echo ${SOURCES}) > Sources.${SUITE} + + for ARCH in ${ARCHS}; do + keep-latest ${ARCH} $(eval echo $(echo ${PACKAGES} | sed -e 's/%ARCH%/${ARCH}/g')) > Packages.${SUITE}.${ARCH} + ucat Packages.${SUITE}.${ARCH} $(eval echo $(echo ${PACKAGES_BASE} | sed -e 's/%ARCH%/${ARCH}/g')) > Packages.${SUITE}.${ARCH}-all + done + [ -f Packages.${SUITE}.i386.non-free ] && PNF="Packages.${SUITE}.%ARCH%.non-free" || PNF="" + [ -f Sources.${SUITE}.non-free ] && SNF="Sources.${SUITE}.non-free" || SNF="" + 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%-all -- ${ARCHS} || true echo "`date`: ${ARCHIVE}/${SUITE} done" } +ucat() { + for FILE in $*; do + if [ -f ${FILE} ]; then + case $FILE in + *.gz) + zcat $FILE + ;; + *.bz2) + bzcat $FILE + ;; + *) + cat $FILE + ;; + esac + fi + done +} + +filter_out_nonfree() { + INPUT="$1" + OUTPUT="$2" + + gunzip -c "$INPUT" | grep-dctrl -v -r -F Section 'non-free/.*' | gzip -c > "$OUTPUT" +} +