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 if [ "$REUSE_EXISTING_ORIG_TARBALL" = 1 ]; then
48 mv "${DEBSRC}_${UPSVER}.orig.tar.gz" "${DEBSRC}_${UPSVER}.orig.tar.gz.new"
49 apt-get
-t unstable
source --download-only "${DEBSRC}" # "=${DEBVER}"
50 # check that old tarball contains same contents as new tarball
52 --label "${DEBSRC}_${UPSVER}.orig.tar.gz.new" \
53 <(zcat
"${DEBSRC}_${UPSVER}.orig.tar.gz.new" |
tar -tvvf-) \
54 --label "${DEBSRC}_${UPSVER}.orig.tar.gz" \
55 <(zcat
"${DEBSRC}_${UPSVER}.orig.tar.gz" |
tar -tvvf-); then
56 read -p "contents differ, continue with old tarball or abort? [y/N] " x
57 if [ "$x" != "y" ]; then exit 1; fi
59 # extract old tarball into new directory, to avoid "modified files" problems with dpkg-source later
60 ( cd "$PKGNAME" && dpkg-source
--after-build .
&& tar --strip-components=1 -xf "../${DEBSRC}_${UPSVER}.orig.tar.gz" )
62 ( cd "$PKGNAME" && dpkg-buildpackage
-d -S --no-sign )
63 # sign if not UNRELEASED
64 if echo "$DEBDIST" |
grep -qv UNRELEASED-FIXME-AUTOGENERATED-DEBCARGO
; then
65 debsign
${DEBSRC}_
${DEBVER}_source.changes
71 if shouldbuild dpkg-dummy
/status
/var
/cache
/apt
/pkgcache.bin
; then
72 # pretend dpkg status file that marks all packages as installed
73 # this is because dpkg-checkbuilddeps only works on installed pkgs
74 apt-cache dumpavail
-o APT
::Default-Release
=unstable | \
75 sed -e 's/Package: .*/\0\nStatus: install ok installed/g' > dpkg-dummy
/status
76 if ! test -s dpkg-dummy
/status
; then
77 echo >&2 "couldn't generate dpkg-dummy/status, is Debian unstable in your APT sources?"
81 ( cd "$PKGNAME" && dpkg-checkbuilddeps
--admindir=..
/dpkg-dummy
)
84 if ! check_build_deps
; then
85 if [ "$IGNORE_MISSING_BUILD_DEPS" != 1 ]; then
86 abort
1 "Missing build-dependencies, but maybe try '{apt,cargo} update'"
90 if [ "$SOURCEONLY" = 1 ]; then
94 sbuild
--no-source --arch-any --arch-all \
95 ${CHROOT:+-c $CHROOT} \
96 ${DISTRIBUTION:+-d $DISTRIBUTION} \
97 ${@/#/--extra-package=} \
98 ${DEBSRC}_
${DEBVER}.dsc
99 changestool
${DEBSRC}_${DEBVER}_${DEB_HOST_ARCH}.changes adddsc ${DEBSRC}_${DEBVER}.dsc
101 # sign if not UNRELEASED
102 if echo "$DEBDIST" |
grep -qv UNRELEASED-FIXME-AUTOGENERATED-DEBCARGO
; then
103 debsign
${DEBSIGN_KEYID:+-k $DEBSIGN_KEYID }--no-re-sign ${DEBSRC}_${DEBVER}_${DEB_HOST_ARCH}.changes