0 | 0 |
#!/bin/bash
|
1 | 1 |
set -e
|
2 | 2 |
|
|
3 |
SCRIPTDIR="$(dirname $(readlink -f "$0"))"
|
|
4 |
|
3 | 5 |
abort() { local x=$1; shift; for i in "$@"; do echo >&2 "$0: abort: $i"; done; exit "$x"; }
|
|
6 |
report() { for i in "$@"; do echo >&2 "debcargo-conf builder: $i"; done; }
|
4 | 7 |
|
5 | 8 |
if [ "$(basename "$PWD")" != "build" ]; then
|
6 | 9 |
abort 1 "This script is only meant to be run from the build/ directory."
|
|
31 | 34 |
DEBSRC=$(dpkg-parsechangelog -l $PKGNAME/debian/changelog -SSource)
|
32 | 35 |
DEBDIST=$(dpkg-parsechangelog -l $PKGNAME/debian/changelog -SDistribution)
|
33 | 36 |
DEB_HOST_ARCH=$(dpkg-architecture -q DEB_HOST_ARCH)
|
|
37 |
SRCNAME="${DEBSRC}_${DEBVER}"
|
|
38 |
BUILDNAME="${DEBSRC}_${DEBVER}_${DEB_HOST_ARCH}"
|
34 | 39 |
if [ -z "$CHROOT" ] && schroot -i -c "debcargo-unstable-${DEB_HOST_ARCH}-sbuild" >/dev/null 2>&1; then
|
35 | 40 |
CHROOT="debcargo-unstable-${DEB_HOST_ARCH}-sbuild"
|
36 | 41 |
fi
|
|
41 | 46 |
test ! -e "$dst" -o "$src" -nt "$dst"
|
42 | 47 |
}
|
43 | 48 |
|
44 | |
if shouldbuild ${DEBSRC}_${DEBVER}.dsc "$PKGNAME/debian/changelog" ]; then
|
|
49 |
if shouldbuild "$SRCNAME.dsc" "$PKGNAME/debian/changelog" ]; then
|
45 | 50 |
if [ "$REUSE_EXISTING_ORIG_TARBALL" = 1 ]; then
|
46 | 51 |
UPSVER="${DEBVER%-*}"
|
47 | 52 |
mv "${DEBSRC}_${UPSVER}.orig.tar.gz" "${DEBSRC}_${UPSVER}.orig.tar.gz.new"
|
|
61 | 66 |
( cd "$PKGNAME" && dpkg-buildpackage -d -S --no-sign )
|
62 | 67 |
# sign if not UNRELEASED
|
63 | 68 |
if echo "$DEBDIST" | grep -qv UNRELEASED-FIXME-AUTOGENERATED-DEBCARGO; then
|
64 | |
debsign ${DEBSRC}_${DEBVER}_source.changes
|
|
69 |
debsign "${SRCNAME}_source.changes"
|
65 | 70 |
fi
|
66 | 71 |
fi
|
67 | 72 |
|
|
73 | 78 |
apt-cache dumpavail -o APT::Default-Release=unstable | \
|
74 | 79 |
sed -e 's/Package: .*/\0\nStatus: install ok installed/g' > dpkg-dummy/status
|
75 | 80 |
if ! test -s dpkg-dummy/status; then
|
76 | |
echo >&2 "couldn't generate dpkg-dummy/status, is Debian unstable in your APT sources?"
|
77 | |
exit 1
|
|
81 |
abort 1 "couldn't generate dpkg-dummy/status, is Debian unstable in your APT sources?"
|
78 | 82 |
fi
|
79 | 83 |
fi
|
80 | 84 |
( cd "$PKGNAME" && dpkg-checkbuilddeps --admindir=../dpkg-dummy )
|
|
90 | 94 |
exit
|
91 | 95 |
fi
|
92 | 96 |
|
93 | |
AUTOPKGTEST_OPTS=()
|
94 | |
if [ "$RUN_AUTOPKGTEST" = 1 ]; then
|
95 | |
AUTOPKGTEST_OPTS=(--run-autopkgtest --autopkgtest-root-arg= --autopkgtest-opts="-- schroot ${CHROOT}")
|
|
97 |
AUTOPKGTEST_OPTS=(--run-autopkgtest --autopkgtest-root-arg= --autopkgtest-opts="-- schroot ${CHROOT}")
|
|
98 |
if [ "$SKIP_AUTOPKGTEST" = 1 ]; then
|
|
99 |
AUTOPKGTEST_OPTS=()
|
96 | 100 |
fi
|
97 | 101 |
|
98 | 102 |
sbuild --no-source --arch-any --arch-all \
|
|
100 | 104 |
${DISTRIBUTION:+-d $DISTRIBUTION} \
|
101 | 105 |
${@/#/--extra-package=} \
|
102 | 106 |
"${AUTOPKGTEST_OPTS[@]}" \
|
103 | |
${DEBSRC}_${DEBVER}.dsc
|
104 | |
changestool ${DEBSRC}_${DEBVER}_${DEB_HOST_ARCH}.changes adddsc ${DEBSRC}_${DEBVER}.dsc
|
|
107 |
"$SRCNAME.dsc"
|
|
108 |
if [ "$SKIP_AUTOPKGTEST" != 1 ]; then
|
|
109 |
report "analyzing autopkgtest log: $BUILDNAME.test.log"
|
|
110 |
# this is a bit of a hack but works OK for now, until sbuild supports %SBUILD_BUILD_DIR in --autopkgtest-opt
|
|
111 |
sed -ne '/autopkgtest .*: testing package .* version .*/,$p' "$BUILDNAME.build" > "$BUILDNAME.test.log"
|
|
112 |
"$SCRIPTDIR/dev/rust-regressions.sh" "$BUILDNAME.test.log"
|
|
113 |
fi
|
|
114 |
changestool "$BUILDNAME.changes" adddsc "$SRCNAME.dsc"
|
|
115 |
report "build complete: $BUILDNAME.changes"
|
105 | 116 |
|
106 | 117 |
# sign if not UNRELEASED
|
107 | 118 |
if echo "$DEBDIST" | grep -qv UNRELEASED-FIXME-AUTOGENERATED-DEBCARGO; then
|
108 | |
debsign ${DEBSIGN_KEYID:+-k $DEBSIGN_KEYID }--no-re-sign ${DEBSRC}_${DEBVER}_${DEB_HOST_ARCH}.changes
|
|
119 |
debsign ${DEBSIGN_KEYID:+-k $DEBSIGN_KEYID }--no-re-sign "$BUILDNAME.changes"
|
109 | 120 |
fi
|