]> git.proxmox.com Git - debcargo-conf.git/blobdiff - build.sh
package tinyvec_macros
[debcargo-conf.git] / build.sh
index 11581552533749be42ab655d54f3225f667f0127..53e2ccb089030b41907fd621b76556619e838722 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -14,6 +14,8 @@
 #     Release to something other than unstable, e.g. experimental
 # CHROOT=$chroot
 #     Build using another schroot than debcargo-unstable-amd64-sbuild
+# SBUILD_OPTS=
+#     will pass to sbuild; for example SBUILD_OPTS=--arch=i386
 set -e
 
 SCRIPTDIR="$(dirname $(readlink -f "$0"))"
@@ -27,8 +29,8 @@ fi
 
 if [ -n "$DEBCARGO" ]; then
        true
-elif which debcargo >/dev/null; then
-       DEBCARGO=$(which debcargo)
+elif type -p debcargo >/dev/null 2>&1; then
+       DEBCARGO=$(type -p debcargo)
 elif [ -f "$HOME/.cargo/bin/debcargo" ]; then
        DEBCARGO="$HOME/.cargo/bin/debcargo"
 else
@@ -93,20 +95,28 @@ if shouldbuild "$SRCNAME.dsc" "$PKGNAME/debian/changelog" ]; then
        ( cd "$PKGNAME" && dpkg-buildpackage -d -S --no-sign )
        # sign if not UNRELEASED
        if echo "$DEBDIST" | grep -qv UNRELEASED-FIXME-AUTOGENERATED-DEBCARGO; then
-               debsign "${SRCNAME}_source.changes"
+               debsign ${DEBSIGN_KEYID:+-k $DEBSIGN_KEYID} "${SRCNAME}_source.changes"
        fi
 fi
 
+EXTRA_DEBS=( "$@" )
+if [ -n "$*" -a -z "$IGNORE_MISSING_BUILD_DEPS" ]; then
+       IGNORE_MISSING_BUILD_DEPS=1
+       echo >&2 "Given non-empty extra debs; defaulting IGNORE_MISSING_BUILD_DEPS=1"
+fi
+
 check_build_deps() {
        mkdir -p dpkg-dummy
        if shouldbuild dpkg-dummy/status /var/cache/apt/pkgcache.bin; then
                # pretend dpkg status file that marks all packages as installed
                # this is because dpkg-checkbuilddeps only works on installed pkgs
-               apt-cache dumpavail -o APT::Default-Release=unstable | \
-               sed -e 's/Package: .*/\0\nStatus: install ok installed/g' > dpkg-dummy/status
-               if ! test -s dpkg-dummy/status; then
+               ( apt-cache dumpavail -o APT::Default-Release=$DISTRIBUTION && \
+                       for i in ${EXTRA_DEBS[*]}; do apt-cache show $(echo $i | cut -d_ -f1); done ) | \
+               sed -e 's/Package: .*/\0\nStatus: install ok installed/g' > dpkg-dummy/status.tmp
+               if ! test -s dpkg-dummy/status.tmp; then
                        abort 1 "couldn't generate dpkg-dummy/status, is Debian unstable in your APT sources?"
                fi
+               mv dpkg-dummy/status{.tmp,}
        fi
        ( cd "$PKGNAME" && dpkg-checkbuilddeps --admindir=../dpkg-dummy )
 }
@@ -121,7 +131,6 @@ if [ "$SOURCEONLY" = 1 ]; then
        exit
 fi
 
-EXTRA_DEBS=( "$@" )
 if [ -n "${EXTRA_DEBS[*]}" ]; then
     EXTRA_DEBS_SBUILD=("${EXTRA_DEBS[@]/#/--extra-package=}")
     EXTRA_DEBS_REPO_TMP=$(mktemp -d "${SRCNAME}_REPO_XXXXXXXX")
@@ -152,6 +161,7 @@ SBUILD_CONFIG="$SCRIPTDIR/dev/sbuildrc" sbuild --no-source --arch-any --arch-all
   "${EXTRA_DEBS_AUTOPKGTEST_OPTS[@]}" \
   "${AUTOPKGTEST_OPTS[@]}" \
   "${LINTIAN_OPTS[@]}" \
+   ${SBUILD_OPTS} \
   "$SRCNAME.dsc"
 if [ "$SKIP_AUTOPKGTEST" != 1 ]; then
        report "analyzing autopkgtest log: $BUILDNAME.test.log"
@@ -163,7 +173,11 @@ fi
 changestool "$BUILDNAME.changes" adddsc "$SRCNAME.dsc"
 report "build complete: $BUILDNAME.changes"
 
+if grep -q "unknown-section FIXME" "$BUILDNAME.build"; then
+    abort 1 "Please fix the SECTION, found FIXME"
+fi
+
 # sign if not UNRELEASED
 if echo "$DEBDIST" | grep -qv UNRELEASED-FIXME-AUTOGENERATED-DEBCARGO; then
-       debsign ${DEBSIGN_KEYID:+-k $DEBSIGN_KEYID }--no-re-sign "$BUILDNAME.changes"
+       debsign ${DEBSIGN_KEYID:+-k $DEBSIGN_KEYID--no-re-sign "$BUILDNAME.changes"
 fi