set -eu
LISTSDIR="/home/chroot/$distribution-$architecture/var/lib/apt/lists"
+BPODIR="/home/chroot/$distribution-$architecture/var/lib/apt/backports"
DISTSDIR="/home/jenkins/dists"
# main package list
PKG="$LISTSDIR/*_dists_${distribution}_main_binary-${architecture}_Packages"
+trap 'rm -f ${TMPPKG:-} ${MAINSRC:-} ${BPOSRC:-}' 0 2 3 15
+
# include universe on ubuntu
for FILE in $LISTSDIR/*_dists_${distribution}_universe_binary-${architecture}_Packages ; do
[ -f "$FILE" ] || continue
# work around dose-debcheck dying on a Python_ field
TMPPKG=$(mktemp ${distribution}_universe_binary-${architecture}_Packages.XXXXXX)
- trap "rm -f $TMPPKG" 0 2 3 15
sed -e 's/^Python_/Python-/' $FILE > $TMPPKG
PKG="$PKG $TMPPKG"
done
-# include backports on debian
-for FILE in $LISTSDIR/*_dists_${distribution}-backports_main_binary-${architecture}_Packages ; do
- [ -f "$FILE" ] || continue
- PKG="$PKG $FILE"
-done
+# packages not depending on backports
+MAINSRC=$(mktemp main_source_Sources.XXXXXX)
+zcat $DISTSDIR/$distribution-pgdg-testing/main/source/Sources.gz > $MAINSRC
+
+case $distribution in
+ squeeze|wheezy|jessie)
+ for pkg in $(cat packages.backports); do
+ grep-dctrl --not -S $pkg $MAINSRC > $MAINSRC.tmp
+ mv $MAINSRC.tmp $MAINSRC
+ done
+
+ # packages depending on backports
+ BPOSRC=$(mktemp bpo_source_Sources.XXXXXX)
+ for pkg in $(cat packages.backports); do
+ zcat $DISTSDIR/$distribution-pgdg-testing/main/source/Sources.gz | \
+ grep-dctrl -S $pkg >> $BPOSRC || :
+ done
+
+ # include backports on debian
+ for FILE in $BPODIR/*_dists_${distribution}-backports_main_binary-${architecture}_Packages ; do
+ [ -f "$FILE" ] || continue
+ BPO="$FILE"
+ done
+ ;;
+esac
# include pgdg dists
case $stage in
# run builddebcheck
dose-builddebcheck -v -f -e --deb-native-arch=$architecture \
- $PKG $DISTSDIR/$DIST/main/source/Sources.gz
+ $PKG $MAINSRC || EXIT=1
+test -s "${BPO:-}" && \
+dose-builddebcheck -v -f -e --deb-native-arch=$architecture \
+ $PKG $BPO $BPOSRC || EXIT=1
+
+exit ${EXIT:-0}
DISTSDIR="$HOMEDIR/dists"
PGAPTDIR="$HOMEDIR/apt.postgresql.org/jenkins"
+test -d $PGAPTDIR && cd $PGAPTDIR
+
case $stage in
production) DIST="$distribution-pgdg" ;;
testing) DIST="$distribution-pgdg-testing" ;;
# packages not depending on backports
MAINPKG=$(mktemp main_binary-${architecture}_Packages.XXXXXX)
cat $DISTSDIR/$DIST/main/binary-${architecture}/Packages > $MAINPKG
-for pkg in $(cat $PGAPTDIR/packages.backports); do
- grep-dctrl --not -S $pkg $MAINPKG > $MAINPKG.tmp
- mv $MAINPKG.tmp $MAINPKG
-done
# packages not tested in production
if [ "$stage" = "production" ]; then
done
fi
-# packages depending on backports
-BPOPKG=$(mktemp bpo_binary-${architecture}_Packages.XXXXXX)
-for pkg in $(cat $PGAPTDIR/packages.backports); do
- grep-dctrl -S $pkg $DISTSDIR/$DIST/main/binary-${architecture}/Packages >> $BPOPKG
-done
+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
+ ;;
+esac
set -x
# run debcheck on main
$DEBCHECK ${EXTRAFG:-} --fg $MAINPKG || EXIT=$?
-test -s $BPOPKG && \
-$DEBCHECK ${EXTRAFG:-} --bg $DISTSDIR/$DIST/main/binary-${architecture}/Packages --fg $BPOPKG || : # we need to pull the bpo packages file from somewhere ... || 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=$? ; }
# run debcheck on N.N components
for P in $DISTSDIR/$DIST/?.?/binary-${architecture}/Packages; do
- project:
name: pgbackman
git-url: https://github.com/rafaelma/pgbackman.git
+ # needs python-psycopg2 (>= 2.4.0) on squeeze
+ backports: 'BACKPORTS=yes '
jobs:
- git-packages
- project:
name: pgdg-buildenv
git-url: git://git.postgresql.org/git/pgapt.git
+ # needs dh 9 on squeeze
+ backports: 'BACKPORTS=yes '
jobs:
- git-packages
git-url: bzr::lp:~stub/ubuntu/trusty/python-azure/trunk
# needs dh-python
dist-filter: '(distribution!="squeeze") && (distribution!="precise")'
+ backports: 'BACKPORTS=yes '
jobs:
- git-packages
;;
esac
+# enable backports
+deb="http://deb/debian"
+case $(hostname) in
+ pgdg*) # use local cache on build host
+ deb="http://debian-approx:9999/debian" ;;
+esac
+case $distribution in
+ squeeze) BACKPORTS="deb $deb-backports/ $distribution-backports main" ;;
+ wheezy|jessie) BACKPORTS="deb $deb $distribution-backports main" ;;
+esac
+
PGDG_SH=$(mktemp /var/tmp/pgdg.XXXXXX.sh)
trap "rm -f $PGDG_SH" 0 2 3 15
cat < /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh > $PGDG_SH
chmod +x $PGDG_SH
echo yes | $PGDG_SH
fi
+
+ test -e /etc/dpkg/dpkg.cfg.d/01unsafeio || echo force-unsafe-io | tee /etc/dpkg/dpkg.cfg.d/01unsafeio
+ test -e /etc/apt/apt.conf.d/20norecommends || echo 'APT::Install-Recommends "false";' | tee /etc/apt/apt.conf.d/20norecommends
+ test -e /etc/apt/apt.conf.d/50i18n || echo 'Acquire::Languages { none; };' | tee /etc/apt/apt.conf.d/50i18n
+ rm -f /var/lib/apt/lists/*_Translation-*
+
+ # write sources lists
echo "deb $apt1 $distribution-pgdg main" > /etc/apt/sources.list.d/pgdg.list
echo "deb $apt2 $distribution-pgdg-testing main" >> /etc/apt/sources.list.d/pgdg.list
- rm -f /etc/apt/sources.list.d/backports.list
case $distribution in
precise|trusty|wily) # libossp-uuid is in universe on vivid+
echo "deb $ubuntu $distribution universe" > /etc/apt/sources.list.d/universe.list ;;
esac
- test -e /etc/dpkg/dpkg.cfg.d/01unsafeio || echo force-unsafe-io | tee /etc/dpkg/dpkg.cfg.d/01unsafeio
- test -e /etc/apt/apt.conf.d/20norecommends || echo 'APT::Install-Recommends "false";' | tee /etc/apt/apt.conf.d/20norecommends
- test -e /etc/apt/apt.conf.d/50i18n || echo 'Acquire::Languages { none; };' | tee /etc/apt/apt.conf.d/50i18n
- rm -f /var/lib/apt/lists/*_Translation-*
+ if [ "$BACKPORTS" ]; then
+ echo "$BACKPORTS" > /etc/apt/sources.list.d/backports.list
+ if [ -d /var/lib/apt/backports ]; then
+ cp -al /var/lib/apt/backports/* /var/lib/apt/lists
+ fi
+ fi
+
apt-get update
+
+ # save backports lists
+ rm -rf /var/lib/apt/backports /etc/apt/sources.list.d/backports.list.disabled
+ if [ "$BACKPORTS" ]; then
+ mv /etc/apt/sources.list.d/backports.list /etc/apt/sources.list.d/backports.list.disabled
+ mkdir -p /var/lib/apt/backports
+ mv /var/lib/apt/lists/*backports* /var/lib/apt/backports
+ fi
[ -x /usr/bin/eatmydata ] && eatmydata="eatmydata"
#case $distribution in