#!/usr/bin/env bash set -euo pipefail ROOT=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/../.." && pwd) VERSION=22.10.1 PKG="$ROOT/deploys/packages" SRC_ARCHIVE="$PKG/asterisk-$VERSION-source.tar.gz" SRC_SHA="$PKG/asterisk-$VERSION-source.sha256" DEPS="$PKG/asterisk-$VERSION-deps" OUT=${OUT_DIR:-"$PKG/asterisk-$VERSION-native"} JOBS=${JOBS:-1} WORK=${WORK_DIR:-"$ROOT/.local/asterisk-build-$VERSION"} [[ -f "$SRC_ARCHIVE" && -f "$SRC_SHA" ]] || { echo 'Asterisk source archive/checksum missing' >&2; exit 1; } [[ -d "$DEPS" ]] || { echo 'Asterisk dependency cache missing' >&2; exit 1; } command -v make >/dev/null || { echo 'make is required; install deploys/cell/debian-build-packages.lock' >&2; exit 1; } sha256sum -c "$SRC_SHA" rm -rf -- "$WORK" "$OUT" mkdir -p "$WORK" "$OUT/cache" cp "$DEPS"/*.tar.bz2 "$OUT/cache/" tar -xzf "$SRC_ARCHIVE" -C "$WORK" SRC="$WORK/asterisk-$VERSION" cd "$SRC" EXTERNALS_CACHE_DIR="$OUT/cache" ./configure --with-pjproject-bundled --with-jansson-bundled EXTERNALS_CACHE_DIR="$OUT/cache" make -j"$JOBS" STAGE="$WORK/stage" rm -rf -- "$STAGE" mkdir -p "$STAGE" EXTERNALS_CACHE_DIR="$OUT/cache" make install DESTDIR="$STAGE" # Cell configuration is management-owned and must not be overwritten by this # binary package. rm -rf -- "$STAGE/etc/asterisk" tar -C "$STAGE" -cpf "$OUT/asterisk-$VERSION-native-stage.tar" . cp "$ROOT/deploys/cell/asterisk.service" "$OUT/asterisk.service" cp "$ROOT/deploys/cell/install-asterisk-native.sh" "$OUT/install-asterisk-native.sh" chmod 0755 "$OUT/install-asterisk-native.sh" ( cd "$OUT" sha256sum "asterisk-$VERSION-native-stage.tar" > "asterisk-$VERSION-native-stage.tar.sha256" ) printf 'native_stage=%s\nservice=%s\n' "$OUT/asterisk-$VERSION-native-stage.tar" "$OUT/asterisk.service"