s3rj1k e622a02b33
[DOCS] Add guides for building FreeSWITCH build-dependencies
* [DOCS] Add guides for building FreeSWITCH build-dependencies

* Add `build-dependencies.sh` script
2025-03-17 17:54:01 +03:00
..

Building signalwire-c Debian Package

This guide explains how to build the signalwire-c Debian package.

Prerequisites:

  • Git
  • Debian-based system (native or Docker)
  • LibKS

Build Steps

Clone the repository:

git clone git@github.com:signalwire/signalwire-c.git

(Optionally) Use Docker to build packages for Debian Bookworm:

docker run -it -v $(pwd):/usr/src/ debian:bookworm bash -c "cd /usr/src/ && bash"

Set non-interactive frontend for APT:

export DEBIAN_FRONTEND=noninteractive

Install required build tools:

apt-get update \
&& apt-get -y upgrade \
&& apt-get -y install \
    build-essential \
    cmake \
    devscripts \
    lsb-release \
    docbook-xsl \
    pkg-config

Set build number (modify as needed):

export BUILD_NUMBER=42

Note: The build number (42) used in this guide is arbitrary. You can modify it as needed for your build process.

Set Debian codename:

export CODENAME=$(lsb_release -sc)

Configure git safety setting:

git config --global --add safe.directory '*'

Navigate to the source directory:

cd signalwire-c/

-- or --

cd /usr/src/signalwire-c/

Extract git hash:

export GIT_SHA=$(git rev-parse --short HEAD)

(Optionally) Use local file-based Debian repository to install libks dependency:

cd OUT/ \
&& dpkg-scanpackages . | tee OUT/Packages \
&& gzip -f OUT/Packages \
&& printf "deb [trusted=yes] file:$(realpath $(pwd)) ./\n" | tee /etc/apt/sources.list.d/local.list

-- or --

cd /usr/src/OUT/ \
&& dpkg-scanpackages . | tee /usr/src/OUT/Packages \
&& gzip -f /usr/src/OUT/Packages \
&& printf "deb [trusted=yes] file:/usr/src/OUT ./\n" | tee /etc/apt/sources.list.d/local.list

Install build dependencies:

apt-get update \
&& apt-get -y install \
    libks2

Build binary package:

PACKAGE_RELEASE="${BUILD_NUMBER}.${GIT_SHA}" cmake . \
    -DCMAKE_BUILD_TYPE=Debug \
    -DCMAKE_INSTALL_PREFIX="/usr" \
&& make package

Move built packages to the output directory:

mkdir -p OUT \
&& mv -v *.deb OUT/.

-- or --

mkdir -p /usr/src/OUT \
&& mv -v *.deb /usr/src/OUT/.

Output

After a successful build, the Debian packages will be available in the OUT directory.