Files
go-sip/deploys/cell/build-asterisk-native.sh

42 lines
1.7 KiB
Bash

#!/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"