42 lines
1.7 KiB
Bash
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"
|