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 armhf i386 ia64 mips mipsel powerpc s390 s390x sparc kfreebsd-amd64 kfreebsd-i386"
+ARCHS_sid="$ARCHS_wheezy hurd-i386"
# Creates a working environment within the corresponding archive
# directory and jumps there.
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"
- 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"
}
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)
+ keep-latest source $(eval echo ${SOURCES}) > Sources.${SUITE}
for ARCH in ${ARCHS}; do
- do_quinn ${SUITE} ${ARCH}
- do_wb_merge_all ${SUITE} ${ARCH} ${WB_SUITE}
+ 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"
}
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)
+ 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
- do_quinn ${SUITE} ${ARCH}
- do_wb_merge_all ${SUITE} ${ARCH} ${WB_SUITE} overlay
+ 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
echo "`date`: ${ARCHIVE}/${SUITE} done"
}
echo "`date`: Processing ${ARCHIVE}/${SUITE} ..."
- new-keep-latest source $(eval echo ${SOURCES}) > Sources.${SUITE}.full
+ keep-latest source $(eval echo ${SOURCES}) > Sources.${SUITE}
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
+ 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"
+}
+