production)
DIST="$distribution-pgdg"
PKG="$PKG $DISTSDIR/$DIST/main/binary-${architecture}/Packages"
+ # -pgdg packages may use -pgdg -testing for building
PKG="$PKG $DISTSDIR/$DIST-testing/main/binary-${architecture}/Packages"
;;
testing)
*) error "Bad stage $stage" ;;
esac
-set -x
-
# run builddebcheck
-dose-builddebcheck -v -f -e --deb-native-arch=$architecture \
- $PKG $MAINSRC || EXIT=1
-test -s "${BPO:-}" && { \
-dose-builddebcheck -v -f -e --deb-native-arch=$architecture \
- $PKG $BPO $BPOSRC || EXIT=1 ; }
+BUILDDEBCHECK="dose-builddebcheck -v -f -e --deb-native-arch=$architecture"
+
+echo "### Running builddebcheck: main, packages not needing backports"
+( set -x; $BUILDDEBCHECK $PKG $MAINSRC ) || EXIT=1
+echo
+
+if test -s "${BPO:-}"; then
+ echo "### Running builddebcheck: main, packages needing backports"
+ grep '^Package:' $BPOSRC
+ ( set -x; $BUILDDEBCHECK $PKG $BPO $BPOSRC ) || EXIT=1
+ echo
+fi
+
+for component in $DISTSDIR/$DIST/?.?/source/Sources.gz; do
+ [ $(zcat $component | wc -c) = 0 ] && continue # skip empty file
+ echo "### Running builddebcheck: $component"
+ zcat $component | grep '^Package:'
+ ( set -x; $BUILDDEBCHECK $PKG $component ) || EXIT=1
+ echo
+done
exit ${EXIT:-0}
# expected directories: chroots in /home/chroot
# needs dose3 >= 4
+# when set, will check matching packages in main against this extra component
+BETA="9.6"
+
set -eu
error () {
exit 2
}
+fold () {
+ local r
+ for i in "$@"; do
+ r="${r:+$r,}$i"
+ done
+ echo "$r"
+}
+
: ${distribution:=sid} ${architecture:=amd64} ${stage:=testing}
LISTSDIR="/home/chroot/$distribution-$architecture/var/lib/apt/lists"
*) error "Bad stage $stage" ;;
esac
-trap 'rm -f ${MAINPKG:-} ${BPOPKG:-}' 0 2 3 15
-
# include universe on ubuntu
for FILE in $LISTSDIR/*_dists_${distribution}_universe_binary-${architecture}_Packages ; do
[ -f "$FILE" ] || continue
EXTRABG="--bg $FILE"
done
-# include latest N.N components on sid
-case $distribution in
- sid)
- C=$(ls -d $DISTSDIR/$DIST/?.? | tail -n 1)
- test -s $C/binary-${architecture}/Packages && \
- EXTRAFG="--fg $C/binary-${architecture}/Packages"
- ;;
-esac
-
-DEBCHECK="dose-debcheck -v -f -e ${EXTRABG:-} --bg $LISTSDIR/*_dists_${distribution}_main_binary-${architecture}_Packages"
-
-# packages not depending on backports
-MAINPKG=$(mktemp main_binary-${architecture}_Packages.XXXXXX)
-cat $DISTSDIR/$DIST/main/binary-${architecture}/Packages > $MAINPKG
+# list of all packages
+MAINPKG=$(awk '/^Package:/ { print $2 }' $DISTSDIR/$DIST/main/binary-${architecture}/Packages)
# packages not tested in production
if [ "$stage" = "production" ]; then
for pkg in cl-pgloader; do
- grep-dctrl --not -P $pkg $MAINPKG > $MAINPKG.tmp
- mv $MAINPKG.tmp $MAINPKG
+ MAINPKG=$(echo "$MAINPKG" | grep -v "$pkg")
done
fi
+# run debcheck
+DEBCHECK="dose-debcheck -v -f -e ${EXTRABG:-} --bg $LISTSDIR/*_dists_${distribution}_main_binary-${architecture}_Packages"
+
+# bpo
case $distribution in
squeeze|wheezy|jessie)
- for pkg in $(cat packages.backports); do
- grep-dctrl --not -S $pkg $MAINPKG > $MAINPKG.tmp
- mv $MAINPKG.tmp $MAINPKG
- done
-
- # packages depending on backports
- BPOPKG=$(mktemp bpo_binary-${architecture}_Packages.XXXXXX)
- for pkg in $(cat packages.backports); do
- grep-dctrl -S $pkg $DISTSDIR/$DIST/main/binary-${architecture}/Packages >> $BPOPKG || :
- done
- ;;
+ echo "### Running debcheck: main, packages needing backports"
+ [ -f packages.backports ] || error "packages.backports not found"
+ pkg=$(fold $(cat packages.backports))
+ ( set -x; $DEBCHECK \
+ --bg $LISTSDIR/../backports/*_dists_${distribution}-backports_main_binary-${architecture}_Packages \
+ --fg $DISTSDIR/$DIST/main/binary-${architecture}/Packages \
+ --checkonly $pkg ) || EXIT=$?
+ echo
+
+ # exclude packages from further testing
+ MAINPKG=$(echo "$MAINPKG" | fgrep -v -f packages.backports)
+ ;;
esac
-set -x
+# beta
+if [ "${BETA:-}" ]; then
+ echo "### Running debcheck: main, packages matching '$BETA'"
+ pkg=$(fold $(echo "$MAINPKG" | fgrep "$BETA"))
+ ( set -x; $DEBCHECK \
+ --bg $DISTSDIR/$DIST/$BETA/binary-${architecture}/Packages \
+ --fg $DISTSDIR/$DIST/main/binary-${architecture}/Packages \
+ --checkonly $pkg ) || EXIT=$?
+ echo
+
+ # exclude packages from further testing
+ MAINPKG=$(echo "$MAINPKG" | fgrep -v "$BETA")
+fi
-# run debcheck on main
-$DEBCHECK ${EXTRAFG:-} --fg $MAINPKG || EXIT=$?
-test -s "${BPOPKG:-}" && { \
-$DEBCHECK ${EXTRAFG:-} --bg $DISTSDIR/$DIST/main/binary-${architecture}/Packages \
- --bg $LISTSDIR/../backports/*_dists_${distribution}-backports_main_binary-${architecture}_Packages \
- --fg $BPOPKG || EXIT=$? ; }
+# main
+echo "### Running debcheck: main, remaining packages"
+pkg=$(fold $MAINPKG)
+( set -x; $DEBCHECK \
+ --fg $DISTSDIR/$DIST/main/binary-${architecture}/Packages \
+ --checkonly $pkg ) || EXIT=$?
+echo
-# run debcheck on N.N components
+# other components
for P in $DISTSDIR/$DIST/?.?/binary-${architecture}/Packages; do
- test -s $P && PKG="${PKG:-} $P"
+ test -s $P || continue
+ PKG="${PKG:-} $P"
done
if [ "${PKG:-}" ]; then
- $DEBCHECK \
+ echo "### Running debcheck: other components"
+ ( set -x; $DEBCHECK \
--bg $DISTSDIR/$DIST/main/binary-${architecture}/Packages \
- --fg $PKG || EXIT=$?
+ --fg $PKG ) || EXIT=$?
fi
exit ${EXIT:-0}