4 abort
() { local x
=$1; shift; for i
in "$@"; do echo >&2 "$0: abort: $i"; done; exit "$x"; }
6 if [ "$(basename "$PWD")" != "build" ]; then
7 abort
1 "This script is only meant to be run from the build/ directory."
10 if [ -n "$DEBCARGO" ]; then
12 elif which debcargo
>/dev
/null
; then
13 DEBCARGO
=$
(which debcargo
)
14 elif [ -f "$HOME/.cargo/bin/debcargo" ]; then
15 DEBCARGO
="$HOME/.cargo/bin/debcargo"
17 abort
1 "debcargo not found, run \`cargo install debcargo\` or set DEBCARGO to point to it"
22 if test -z "$VER" -o -f "$VER"; then
28 DISTRIBUTION
="${DISTRIBUTION:-unstable}"
30 PKGNAME
=$
($DEBCARGO deb-src-name
"$CRATE" $VER || abort
1 "couldn't find crate $CRATE")
31 DEBVER
=$
(dpkg-parsechangelog
-l $PKGNAME/debian
/changelog
-SVersion)
32 DEBSRC
=$
(dpkg-parsechangelog
-l $PKGNAME/debian
/changelog
-SSource)
33 DEBDIST
=$
(dpkg-parsechangelog
-l $PKGNAME/debian
/changelog
-SDistribution)
34 DEB_HOST_ARCH
=$
(dpkg-architecture
-q DEB_HOST_ARCH
)
35 if [ -z "$CHROOT" ] && schroot
-i -c "debcargo-unstable-${DEB_HOST_ARCH}-sbuild" >/dev
/null
2>&1; then
36 CHROOT
="debcargo-unstable-${DEB_HOST_ARCH}-sbuild"
42 test ! -e "$dst" -o "$src" -nt "$dst"
45 if shouldbuild
${DEBSRC}_
${DEBVER}.dsc
"$PKGNAME/debian/changelog" ]; then
46 ( cd "$PKGNAME" && dpkg-buildpackage
-d -S --no-sign )
47 if [ "$REUSE_EXISTING_ORIG_TARBALL" = 1 ]; then
49 mv "${DEBSRC}_${UPSVER}.orig.tar.gz" "${DEBSRC}_${UPSVER}.orig.tar.gz.new"
50 apt-get
-t unstable
source "${DEBSRC}" # "=${DEBVER}"
51 # check that old tarball contains same contents as new tarball
52 diff -q <(zcat
"${DEBSRC}_${UPSVER}.orig.tar.gz.new") <(zcat "${DEBSRC}_${UPSVER}.orig.tar.gz")
53 ( cd "$PKGNAME" && dpkg-buildpackage
-d -S --no-sign )
55 # sign if not UNRELEASED
56 if echo "$DEBDIST" |
grep -qv UNRELEASED-FIXME-AUTOGENERATED-DEBCARGO
; then
57 debsign
${DEBSRC}_
${DEBVER}_source.changes
63 if shouldbuild dpkg-dummy
/status
/var
/cache
/apt
/pkgcache.bin
; then
64 # pretend dpkg status file that marks all packages as installed
65 # this is because dpkg-checkbuilddeps only works on installed pkgs
66 apt-cache dumpavail
-o APT
::Default-Release
=unstable | \
67 sed -e 's/Package: .*/\0\nStatus: install ok installed/g' > dpkg-dummy
/status
69 ( cd "$PKGNAME" && dpkg-checkbuilddeps
--admindir=..
/dpkg-dummy
)
72 if ! check_build_deps
; then
73 if [ "$IGNORE_MISSING_BUILD_DEPS" != 1 ]; then
74 abort
1 "Missing build-dependencies, but maybe try '{apt,cargo} update'"
78 if [ "$SOURCEONLY" = 1 ]; then
82 sbuild
--no-source --arch-any --arch-all \
83 ${CHROOT:+-c $CHROOT} \
84 ${DISTRIBUTION:+-d $DISTRIBUTION} \
85 ${@/#/--extra-package=} \
86 ${DEBSRC}_
${DEBVER}.dsc
87 changestool
${DEBSRC}_${DEBVER}_${DEB_HOST_ARCH}.changes adddsc ${DEBSRC}_${DEBVER}.dsc
89 # sign if not UNRELEASED
90 if echo "$DEBDIST" |
grep -qv UNRELEASED-FIXME-AUTOGENERATED-DEBCARGO
; then
91 debsign
${DEBSIGN_KEYID:+-k $DEBSIGN_KEYID }--no-re-sign ${DEBSRC}_${DEBVER}_${DEB_HOST_ARCH}.changes