Skip to content

Instantly share code, notes, and snippets.

@mariogasparoni
Last active February 26, 2021 17:40
Show Gist options
  • Save mariogasparoni/0c43b6d40b6a586c6db19d5a9ec5f958 to your computer and use it in GitHub Desktop.
Save mariogasparoni/0c43b6d40b6a586c6db19d5a9ec5f958 to your computer and use it in GitHub Desktop.
Build Kurento Media Server on Bionic

Package generation for kms-core, kms-elements and kms-filters

  • OS: Ubuntu bionic
  • Kurento Version: 7.0+
  • branch: bionic-gstreamer
  • author: mariogasparoni

1 Install tools

sudo apt-get update && sudo apt-get install --no-install-recommends --yes \
    git gnupg devscripts equivs git-buildpackage

1.1 Install also these tools (needed for package generation)

PACKAGES=(
    build-essential
    debhelper
    curl
    fakeroot
    flex
    git openssh-client
    libcommons-validator-java
    python
    python-apt
    python-debian
    python-git
    python-requests
    python-yaml
    subversion
    wget
)

sudo apt-get update \
    && sudo apt-get install --no-install-recommends --yes \
        "${PACKAGES[@]}"

2 Add repos

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83
DISTRO="bionic"  # KMS for Ubuntu 18.04 (Bionic)

sudo tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <<EOF
# Kurento Media Server - Nightly packages
deb [arch=amd64] http://ubuntu.openvidu.io/dev $DISTRO kms6
deb [arch=amd64] http://ubuntu.openvidu.io/bionic-gstreamer $DISTRO kms6
EOF
sudo apt-get update

3 clone kms-core ("bionic-gstreamer" branch, change it if needed)

cd ~
git clone git@github.com:Kurento/kms-core.git -b bionic-gstreamer
cd kms-core
# Install build dependencies
sudo mk-build-deps --install --remove \
        --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' \
        "debian/control"

4 Generate core packages

env DEB_BUILD_OPTIONS="nocheck nodoc nostrip" gbp buildpackage -us -uc --git-debian-branch=bionic-gstreamer --git-ignore-new

5 Install generated packages (needed to build elements and filters)

sudo dpkg -i ~/kms-core_*.deb ~/kms-core-dev_*.deb
if you encounter dependency errors on the step above, run:
sudo apt-get -f install

6 clone kms-elements (bionic-gstreamer branch)

cd ~
git clone git@github.com:Kurento/kms-elements.git -b bionic-gstreamer
cd kms-elements

6.5 Install build dependencies

sudo mk-build-deps --install --remove \
        --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' \
        "debian/control"

7 Generate elements packages

env DEB_BUILD_OPTIONS="nocheck nodoc nostrip" gbp buildpackage -us -uc --git-debian-branch=bionic-gstreamer --git-ignore-new

8 Install generated packages (needed to build filters)

sudo dpkg -i ~/kms-elements_*.deb  ~/kms-elements-dev_*.deb

if you encounter dependency errors on the step above, run:
sudo apt-get -f install

9 clone kms-filters (bionic-gstreamer branch)

cd ~
git clone git@github.com:Kurento/kms-filters.git -b bionic-gstreamer
cd kms-filters

9.5 Install build dependencies

sudo mk-build-deps --install --remove \
        --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' \
        "debian/control"

10 Generate filters packages

env DEB_BUILD_OPTIONS="nocheck nodoc nostrip" gbp buildpackage -us -uc --git-debian-branch=bionic-gstreamer --git-ignore-new

11 Done!

Packages are generated in home folder. For production environments install only the binaries file for core, elements and filters. In this case, it is not needed to install "dev" and "dbg" packages (kms-core-dev*.deb, kms-core-dbg*.deb, kms-elements-dev*.deb e kms-elements-dbg*.deb, kms-filters-dev*.deb e kms-filters-dbg*.deb).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment