Cannot build KMS 7.0 from sources

444 views
Skip to first unread message

jordan...@gmail.com

unread,
May 25, 2022, 7:59:01 PM5/25/22
to kurento
Good Evening,

I have a custom built version of KMS 7.0 which I build from sources. I haven't had cause to build the Docker image for a couple of months but for some reason the Dockerfile no longer work. Has something been changed?

My Dockerfile contains
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 5AFA7A83 \
&& echo "deb http://ubuntu.openvidu.io/bionic-gstreamer bionic kms6" >/etc/apt/sources.list.d/kurento.list

which gives the error:
Step 4/50 : RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 5AFA7A83  && echo "deb http://ubuntu.openvidu.io/bionic-gstreamer bionic kms6" >/etc/apt/sources.list.d/kurento.list
 ---> Running in d9be4712a245
Warning: apt-key output should not be parsed (stdout is not a terminal)
Executing: /tmp/apt-key-gpghome.luwnyy68GV/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 5AFA7A83
gpg: key FC8A16625AFA7A83: public key "Openvidu - Kurento TEAM <open...@gmail.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1
Removing intermediate container d9be4712a245
 ---> 612de079d37b
Step 5/50 : RUN apt-get update
 ---> Running in ae3030d59a29
Err:1 http://ubuntu.openvidu.io/bionic-gstreamer bionic InRelease
  403  Forbidden [IP: 52.218.45.112 80]
Hit:2 http://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu bionic InRelease
Hit:4 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease
Reading package lists...
E: Failed to fetch http://ubuntu.openvidu.io/bionic-gstreamer/dists/bionic/InRelease  403  Forbidden [IP: 52.218.45.112 80]
E: The repository 'http://ubuntu.openvidu.io/bionic-gstreamer bionic InRelease' is not signed.

The command '/bin/sh -c apt-get update' returned a non-zero code: 100

How do I get around this?

Jordan

Juan Navarro

unread,
May 27, 2022, 5:59:59 AM5/27/22
to kur...@googlegroups.com
Hi,

In preparation of a Release Candidate version that is almost ready now, everything related to the Kurento 7.0 build has been renamed from the old "bionic-gstreamer" names to simply "7.0.0". Also, some restructuring has been done to the way Docker images are published.

This changes several things:

* The git branches in all source code repos are now called "7.0.0"
* The apt-get repo is now "deb http://ubuntu.openvidu.io/dev-7.0.0 bionic kms6" (by the way that "kms6" will become "main" with the final release)
* The Docker images are now "kurento/kurento-media-server:dev-7.0.0"

Note however that right now, some of the Ubuntu apt-get repositories are broken (they fail when running apt-get), so we're currently unable to publish new versions of the Docker images, until Ubuntu fixes this issue in their debug packages repositories (ddeb). But if you'll be using our repo instead of the Docker images, this issue doesn't affect you.

--
Juan Navarro
Kurento developer
@j1elo at GitHub & Twitter
--
You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kurento/e12cc42d-adc0-47a3-8d8b-cd7fc8ebf8dcn%40googlegroups.com.

Juan Navarro

unread,
May 27, 2022, 6:27:16 AM5/27/22
to kur...@googlegroups.com
Sorry, the apt-get repo line should be like this (it's a repo for Ubuntu Focal, not Bionic):

deb [arch=amd64] http://ubuntu.openvidu.io/dev-7.0.0 focal kms6

jordan...@gmail.com

unread,
May 28, 2022, 2:54:19 PM5/28/22
to kurento
Thanks Juan,

I'm going to presume that I'm going to be unable to build a custom version of KMS via Docker myself then?

Running a Dockerfile with:

RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 5AFA7A83 \
&& echo "deb http://ubuntu.openvidu.io/dev-7.0.0 focal kms6" >/etc/apt/sources.list.d/kurento.list

RUN apt-get update
RUN apt-get install --no-install-recommends --yes \
kurento-media-server-dev \
kurento-media-server

Causes a:
The following packages have unmet dependencies:
 kurento-media-server : Depends: kms-core (>= 7.0.0) but it is not going to be installed etc etc etc

Juan Navarro

unread,
May 30, 2022, 11:48:42 AM5/30/22
to kur...@googlegroups.com
Hi,

maybe you just caught the very first repo build after the rename from "bionic-gstreamer" to "7.0.0"; please try again now, as this should be fixed and all packages available as required. I just tried to install kurento-media-server-dev on a clean Docker container with Ubuntu 20.04 and it all worked fine, and the Kurento code compiled fine too.

Charchris Sloan

unread,
Feb 13, 2023, 9:14:40 AM2/13/23
to kurento
Hi Juan,

I have been trying to build from sources as of the past week, using KMS 7.0
I have a question regarding the gstreamer version used.

For the following repository is gstreamer 1.16 used?


deb [arch=amd64] http://ubuntu.openvidu.io/dev-7.0.0 focal kms6

I have also tried adding this repository for bionic. I assume this uses gstreamer 1.14?

deb [arch=amd64] http://ubuntu.openvidu.io/dev-7.0.0 bionic kms6

But it does not seem to work.

Do you still hold repositories that work with KMS 7.0 and bionic with gstreamer 1.14?

Thanks

Juan Navarro

unread,
Feb 21, 2023, 12:32:29 PM2/21/23
to kur...@googlegroups.com
Hi,


deb [arch=amd64] http://ubuntu.openvidu.io/dev-7.0.0 focal kms6

This repo is to be used with an Ubuntu 20.04 system or Docker image ("ubuntu:20.04"). The packages deployed in this repo have been generated with the branch "7.0.0" that exists in most (but not all) of the individual Kurento repositories. This includes a) some of the forked repos (like libsrtp, libnice, etc, but excluding the gstreamer repos) and the actual kurento repositories (kms-core and friends, kurento-module-creator, etc).

However, all these repos have been stalled and they will be archived soon.

Following a similar change made by GStreamer, Kurento is moving everything into a single monorepo:

https://github.com/Kurento/kurento

This way, almost _everything_ related to Kurento Media Server, Java / JavaScript clients, docs, docker images, etc... will reside in a single place. This will make maintenance much easier, now that the server is not undergoing too much development any more (apart from basic maintenance to keep it up to date).

A hidden but huge change also is that we're leaving our self-hosted Jenkins server for CI, and moving everything to Github Actions, to reduce the burden on server maintenance. And it just happens that _today_ we finished everything needed to build its first successful run and publish new Debian packages and Docker images.

So from now on, please use this repo:

deb [arch=amd64] http://ubuntu.openvidu.io/dev focal main

And you'll find corresponding Docker images published as

kurento/kurento-media-server:dev-7.0

For developing and building from source, please refer to the new version of the doc files (not yet deployed to ReadTheDocs because the CI job hasn't been migrated yet to GH Actions):

https://github.com/Kurento/kurento/blob/main/doc-kurento/source/dev/dev_guide.rst

We're just getting ready to make a full release, and soon before that we'll make an announcement in this mailing list in order to introduce all changes.

Other stuff that will also change is the bug repository (it will be the Issues section of the new monorepo) AND probably the mailing list itself (which will move to the Discussion section of the repository). As you see, the main target here is to unify every resource so all different parts of the project can be found under the same place.

Regards
-- 
Juan Navarro
Software Development Engineer
Kurento & OpenVidu WebRTC platforms | https://openvidu.io/

Neil Young

unread,
Feb 21, 2023, 1:34:39 PM2/21/23
to kurento
Great move. Can't wait to give it a try on the weekend :)

Thanks for sharing. Good news

Alejandro Sellero Rodríguez

unread,
Feb 22, 2023, 9:33:51 AM2/22/23
to kurento
Hi,

I got a bit worried about the sentence "now that the server is not undergoing too much development any more (apart from basic maintenance to keep it up to date)."

Does that mean that Kurento is in maintenance mode and will not get new features? Or does it mean only during this transisition phase to KMS 7 and the monorepo infrastructure?

Thanks
Alex

Juan Navarro

unread,
Feb 22, 2023, 12:06:16 PM2/22/23
to kur...@googlegroups.com
Kurento has been in what I'd call semi-maintenance mode since at least 2016. Still, it has been kept up to date and constantly fine tuned, with lots of bug fixes, security considerations, documentation improvements, etc. Tons of already existing features have been improved upon over time, but there are no major *big* new features planned for it (such as e.g. WebRTC insertable streams, or support for more than 1 video + 1 audio in the same WebRTC peer connection).

As such, Kurento works very well for whom it works, and it falls short for who needs all that newer stuff. It is not the fastest media server in existence, but it is mostly the only one able to seamlessly integrate OpenCV processing. Some people built their services on top of Kurento, others opted for lighter-weight alternatives like mediasoup, or higher-level platforms like OpenVidu that hides to some extent the complexity of WebRTC.

Note that OpenVidu is also built by us the same team, and it is itself built partly on top of Kurento, so the financial incentives to keep the engine running are there.


Regards
-- 
Juan Navarro
Software Development Engineer
Kurento & OpenVidu WebRTC platforms | https://openvidu.io/

Alejandro Sellero Rodríguez

unread,
Feb 23, 2023, 9:35:02 AM2/23/23
to kurento
Ok, now I feel like an idiot :D. But I don't remember seeing explicitly this info anywhere in the docs or the repos (maybe I missed it). Would it be ok for you if I create a PR in your new monorepo to add exactly this text in your README.md?

Juan Navarro

unread,
Feb 23, 2023, 3:40:58 PM2/23/23
to kur...@googlegroups.com
I think now that we're restructuring the whole project and creating a single point of truth for all resources and documentation, would also be a great time to make clarifications regarding the current state of the project and its future roadmap.

Better than a PR, I will talk about this with the team and decide on a text that could be seen in the project's readme and/or (probably "and") the documentation site. It's good that people know the current state of things and use that to decide; while we have been straightforward and honest in this regard whenever people asked us about it, it's true that I cannot see any clear-cut statement in the docs.


-- 
Juan Navarro
Software Development Engineer
Kurento & OpenVidu WebRTC platforms | https://openvidu.io/

Alejandro Sellero Rodríguez

unread,
Feb 24, 2023, 3:17:35 AM2/24/23
to kurento
Very nice to hear, thank you very much Juan!

Have a nice weekend :)

Neil Young

unread,
Feb 24, 2023, 6:20:04 AM2/24/23
to kurento
@Juan: I notice that the Installation guide pointed to from the new repo is still referring to 6.18. Not 7?

Neil Young

unread,
Feb 25, 2023, 5:47:48 AM2/25/23
to kurento
I'm a bit confused now. The repo, which is supposed to be "the future of KMS" is this https://github.com/Kurento/kurento (if I understand this correctly). In that repo there is a README, which describes the installation from source. This refers to 6.18 (which is maybe not 7) and requires Ubuntu 18.04. I thought the purpose of all that re-organization was to make it run on more recent versions of Ubuntu, namely 20.04 and to use the system installed GStreamer for this. Up to now I cannot see any trace of this.


There are now explicit instructions to build from source on Ubuntu 20.04. 

Could you please confirm, that this final gist is now the gist to follow to build KMS 7 from source on Ubuntu 20.04? Currently there is unnecessarily too much buzz in the air around this, IMHO. But I really would appreciate to have finally something built from source running on Ubuntu 20.04. Including my OpenCV plugins. Including all the new stuff (namely support for the request intra-frame)

Neil Young

unread,
Feb 25, 2023, 10:44:31 AM2/25/23
to kurento
@Juan: Install build dependencies, Option 1, quick setup is not going to work:

ubuntu@kms7:~$ sudo apt-get update ; sudo apt-get install --no-install-recommends \

>     kurento-media-server-dev

[sudo] password for ubuntu: 

Hit:1 http://de.archive.ubuntu.com/ubuntu focal InRelease

Get:2 http://de.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]

Get:3 http://de.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]

Get:4 http://de.archive.ubuntu.com/ubuntu focal-security InRelease [114 kB]

Get:5 http://de.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [2,405 kB]

Fetched 2,741 kB in 11s (245 kB/s) 

Reading package lists... Done

Reading package lists... Done

Building dependency tree       

Reading state information... Done

E: Unable to locate package kurento-media-server-dev

ubuntu@kms7:~$ 


Option2 is also not going to work (or I didn't understand how to use it):

ubuntu@kms7:~$ sudo apt-get update ; sudo mk-build-deps --install --remove \

>     --tool="apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --no-remove" \

>     debian/control

Hit:1 http://de.archive.ubuntu.com/ubuntu focal InRelease

Hit:2 http://de.archive.ubuntu.com/ubuntu focal-updates InRelease

Hit:3 http://de.archive.ubuntu.com/ubuntu focal-backports InRelease

Hit:4 http://de.archive.ubuntu.com/ubuntu focal-security InRelease

Reading package lists... Done

mk-build-deps: You must have equivs installed to use this program.

ubuntu@kms7:~$ 


After sudo apt-get install -y equivs and re-run:

    E: You must put some 'deb-src' URIs in your sources.list


After this:

sudo cp /etc/apt/sources.list /etc/apt/sources.list~
    sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
    sudo apt-get update


finally 

W: Unable to locate package debian/control

mk-build-deps: Unable to find package name in `apt-cache showsrc debian/control'


And I gave up :)


Neil Young

unread,
Feb 25, 2023, 11:04:00 AM2/25/23
to kurento
System is a fresh Ubtuntu 20.04.5 server VM

I'm missing statements like 

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83 echo "deb [arch=amd64] http://ubuntu.openvidu.io/6.13.0 bionic kms6" \ | tee /etc/apt/sources.list.d/kurento.list

in the gist

Neil Young

unread,
Feb 25, 2023, 11:05:38 AM2/25/23
to kurento
And finally: The ":ref:" in the gist are not working either.

I will be patient then
Nice weekend

Juan Navarro

unread,
Feb 27, 2023, 5:44:36 AM2/27/23
to kur...@googlegroups.com
Hi, yes I can confirm that https://github.com/Kurento/kurento/blob/main/doc-kurento/source/dev/dev_guide.rst is the guide to build Kurento from source code. I cannot confirm that it's _final_, because it is not. Kurento 7 has not been released, thus everything is just to be considered as an in-progress development preview. As such, there are broken things, and links to doc-kurento.readthedocs.io will still point to docs in the Read The Docs server, which contains info for Kurento 6.x; we don't even yet have the CI jobs to upload new content to ReadTheDocs, much less to build new doc versions in that site.

Neil Young

unread,
Mar 6, 2023, 12:42:36 PM3/6/23
to kurento
Well,  I'm only interested in this https://github.com/Kurento/kurento/blob/main/doc-kurento/source/dev/dev_guide.rst#build-from-sources

Isn't it possible to have a gist, which works for just this?

Juan Navarro

unread,
Mar 7, 2023, 1:14:48 PM3/7/23
to kur...@googlegroups.com
Just today I've finished the CI workflow that builds the docs, so you should now be able to see the latest version of the text:

https://doc-kurento.readthedocs.io/en/latest/dev/dev_guide.html#build-from-sources

For now, when the text mentions to install or configure Kurento repositories, make sure to use the development option, as the release doesn't exist yet for version 7.0.0.

Regards,


-- 
Juan Navarro
Software Development Engineer
Kurento & OpenVidu WebRTC platforms | https://openvidu.io/

Neil Young

unread,
Mar 7, 2023, 1:15:46 PM3/7/23
to kur...@googlegroups.com
Thanks.

For now, when the text mentions to install or configure Kurento repositories, make sure to use the development option

Means what?

Neil Young

unread,
Mar 9, 2023, 7:24:20 AM3/9/23
to kurento
OK, hoping I figured out what you meant.

Did this so far:

sudo apt-get update
sudo apt-get install --no-install-recommends build-essential ca-certificates cmake git gnupg pkg-config
source /etc/upstream-release/lsb-release 2>/dev/null || source /etc/lsb-release

# Note: adapted key server URL, other didn't work
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80  --recv-keys 234821A61B67740F89BFD669FC8A16625AFA7A83

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 $DISTRIB_CODENAME main
EOF

sudo apt-get update ; sudo apt-get install --no-install-recommends kurento-media-server

git clone https://github.com/Kurento/kurento.git
cd kurento/
git submodule update --init --recursive
cd server
export MAKEFLAGS="-j$(nproc)"
bin/build-run.sh

# First attempt failed, since mvn was missing so I installed maven:

sudo apt install maven

# and re-run the build script
bin/build-run.sh

It ran a while then

-- Try GNU SanitizerBlacklist flag = [-fsanitize-blacklist=/home/ubuntu/kurento/server/bin/sanitizers/blacklist.txt]
-- Performing Test SanBlist_FLAG_DETECTED
-- Performing Test SanBlist_FLAG_DETECTED - Failed
CMake Warning at cmake-utils/3rdparty/sanitizers-cmake/cmake/sanitize-helpers.cmake:150 (message):
  SanitizerBlacklist is not available for GNU compiler.  Targets using this
  compiler will be compiled without SanitizerBlacklist.
Call Stack (most recent call first):
  cmake-utils/3rdparty/sanitizers-cmake/cmake/FindSanitizers.cmake:51 (sanitizer_check_compiler_flags)
  CMakeLists.txt:98 (sanitizer_add_blacklist_file)


-- CMake project: kurento-jsonrpc
-- Found KurentoUtils: 7.0.0~.gf1665e4f1 (found version "7.0.0~.gf1665e4f1")
-- [FindKurentoUtils.cmake] Found: /home/ubuntu/kurento/server/build-Debug/cmake-utils
fatal: ambiguous argument '6.18.0..HEAD': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
-- Version info from git: 7.0.0~.gf1665e4f1
-- Project version: kurento-jsonrpc-7.0.0~.gf1665e4f1
-- Checking for module 'jsoncpp>=1.7.2'
--   No package 'jsoncpp' found
CMake Error at /usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:463 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:643 (_pkg_check_modules_internal)
  jsonrpc/CMakeLists.txt:39 (pkg_check_modules)


-- Configuring incomplete, errors occurred!
See also "/home/ubuntu/kurento/server/build-Debug/CMakeFiles/CMakeOutput.log".
See also "/home/ubuntu/kurento/server/build-Debug/CMakeFiles/CMakeError.log".
[build-run.sh] ERROR (1)
ubuntu@kms7:~/kurento/server$

Stopped here

Juan Navarro

unread,
Mar 10, 2023, 4:53:51 AM3/10/23
to kur...@googlegroups.com
Hi, let's see if we can solve the build issues.

For starters, my recommendation for verifying that Kurento builds on our supported base system (Ubuntu 20.04 Focal), is to use a pristine, clean system, where past installations or user customizations won't affect the result. For this, a new virtual machine would do, but I find it more handy to use Docker containers.

As long as the following script runs successfully, I would be confident that the whole process is healthy and any issue or error is caused by external factors not related with Kurento itself. Please check it out and see if you can reproduce the same set of steps and commands in your system; otherwise you'd need to clean up your system or better yet, please use a disposable environment that can guarantee a clean system without remains from previous installs or other projects.

If Docker is installed in your machine, you should be able to copy-paste and run this whole block (between the BEGIN and END lines) in one single go; I just did before sending this email and it finished successfully:

# In-place Docker container commands BEGIN
docker run --rm -i ubuntu:20.04 /bin/bash <<'DOCKERCOMMANDS'

# Bash options for strict error checking
set -o errexit -o errtrace -o pipefail -o nounset

# Trace all commands
set -o xtrace

# Run apt-get/dpkg without interactive dialogue.
export DEBIAN_FRONTEND=noninteractive

# Get DISTRIB_* env vars.

source /etc/upstream-release/lsb-release 2>/dev/null || source /etc/lsb-release



echo "# Install required tools"

apt-get update ; apt-get install --no-install-recommends --yes \
    build-essential \
    ca-certificates \
    cmake \
    git \
    pkg-config



echo "# Install Kurento Media Server"

apt-get update ; apt-get install --no-install-recommends --yes \
    gnupg

# Add Kurento repository key for apt-get.
apt-key adv \
    --keyserver keyserver.ubuntu.com \
    --recv-keys 234821A61B67740F89BFD669FC8A16625AFA7A83

# Add Kurento repository line for apt-get.
tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <<EOF

deb [arch=amd64] http://ubuntu.openvidu.io/dev $DISTRIB_CODENAME main
EOF

# Install Kurento Media Server development packages.
apt-get update ; apt-get install --no-install-recommends --yes \
    kurento-media-server-dev



echo "# Download Kurento source code"


git clone https://github.com/Kurento/kurento.git

cd kurento/

git submodule update --init --recursive



echo "# Build and run Kurento"

cd server/

export MAKEFLAGS="-j$(nproc)"
bin/build-run.sh --build-only

echo "Done! Everything got installed and built successfully"

DOCKERCOMMANDS
# In-place Docker container commands END


Regards,
-- 
Juan Navarro
Software Development Engineer
Kurento & OpenVidu WebRTC platforms | https://openvidu.io/

Neil Young

unread,
Mar 10, 2023, 5:46:01 AM3/10/23
to kurento
Hehe. Thanks for dealing with this, Juan. But I abysmally hate docker and there is no way to make me use it :)

Anyway, it _should_ be possible to run the DOCKERCOMMANDS on a fresh VM as is. I thought I did this, but I will give it another try now

Neil Young

unread,
Mar 10, 2023, 5:53:50 AM3/10/23
to kurento
But anyway, I see no _major_ difference to my commands, and I was missing maven. Can't see how you install this.

Neil Young

unread,
Mar 10, 2023, 6:40:55 AM3/10/23
to kurento
Yepp, this time it worked. Maybe my previous VM wasn't that "clean" as I thought it would be. There was just one little issue, which I could overcome. Also - no maven post-installation required as for the first time. Strange, anyway.

For those, who would like to follow, these are the steps:

I was starting from a fresh Ubuntu Server 20.04.5 instance in a VirtualBox VM, 4 cores, 8 GB RAM, 60 GB HD, LAN connection.

1)

source /etc/upstream-release/lsb-release 2>/dev/null || source /etc/lsb-release

2)
sudo apt-get update
sudo apt-get install --no-install-recommends --yes build-essential ca-certificates cmake git pkg-config gnupg

3)
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 234821A61B67740F89BFD669FC8A16625AFA7A83

Step 3 fails (I already reported), but this is not uncommon (can be googled):

ubuntu@kms7:~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 234821A61B67740F89BFD669FC8A16625AFA7A83
Executing: /tmp/apt-key-gpghome.cOtG38DRDG/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 234821A61B67740F89BFD669FC8A16625AFA7A83
gpg: keyserver receive failed: Server indicated a failure

This is an alternative Step 3, which works:

ubuntu@kms7:~$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80  --recv-keys 234821A61B67740F89BFD669FC8A16625AFA7A83
Executing: /tmp/apt-key-gpghome.nzMOsh5XQv/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 234821A61B67740F89BFD669FC8A16625AFA7A83

gpg: key FC8A16625AFA7A83: public key "Openvidu - Kurento TEAM <open...@gmail.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1


4)

sudo tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <<EOF

deb [arch=amd64] http://ubuntu.openvidu.io/dev $DISTRIB_CODENAME main
EOF

5)
sudo apt-get update
sudo apt-get install --no-install-recommends --yes kurento-media-server-dev


git clone https://github.com/Kurento/kurento.git
cd kurento/
git submodule update --init --recursive
cd server/
export MAKEFLAGS="-j$(nproc)"
bin/build-run.sh --build-only


After successful build KMS is started (check with "sudo service kurento-media-server status")

Check versions:

kurento-media-server --version
Kurento Media Server version: 7.0.0-dev
Found modules:
   'core' version 7.0.0-dev
   'elements' version 7.0.0-dev
   'filters' version 7.0.0-dev

That's it. 
Thanks.

Juan Navarro

unread,
Mar 10, 2023, 8:25:29 AM3/10/23
to kur...@googlegroups.com
Glad to hear it worked!

Maven should not need to be installed explicitly, as it is already a dependency of Kurento. If it wasn't installed in your system that's a very weird state that the package manager was in, because the dependencies go like this:

kurento-media-server-dev -> kurento-module-creator -> maven

you can check them yourself with:

$ apt-cache depends kurento-media-server-dev
kurento-media-server-dev
  Depends: kurento-module-creator

$ apt-cache depends kurento-module-creator
kurento-module-creator
  Depends: maven

So I'm curious about how you managed to apt-get install kurento-media-server-dev but not get maven installed.

In any case it's good you made it work.

I'd say that Docker is a _very_ good tool to create environments where you have 100% certainty of it being a clean slate, in a 1) very easy and fast way, and which are 2) ephemeral and disposable. Those two things proved to be extremely valuable for development, and were worth the learning curve. For me anyways :)

Regards

Neil Young

unread,
Mar 10, 2023, 8:30:16 AM3/10/23
to kurento
So I'm curious about how you managed to apt-get install kurento-media-server-dev but not get maven installed.

I would like to know that too, but it is too late. The VM is dead. It maybe have been "infected" by a previous installation I tried some days ago (the one I reported earlier in this thread)

I'd say that Docker is a _very_ good tool to create environments where you have 100% certainty of it being a clean slate, in a 1) very easy and fast way, and which are 2) ephemeral and disposable. Those two things proved to be extremely valuable for development, and were worth the learning curve. For me anyways :)

I have no doubts. I don't like it. I'm more for the straight approach. And this one I have now is fine. When I need a clean state I fire up a VM, well mostly at least :)

Neil Young

unread,
Mar 11, 2023, 3:47:15 AM3/11/23
to kurento
Good, now I'm having a running KMS instance on that box.

But I still seem not to be fully setup as I was with previous versions. Especially w.r.t. compiling my own plugins on that box.

In the past I was used to find some CMake "plugins" (?) like so for instance (here I was patching an opencv4 dependency into the file in question):

sed -i 's/set (REQUIRED_LIBS "opencv")/set (REQUIRED_LIBS "opencv4")/' /usr/share/"`cmake --version | awk '{split($0,a," "); split($a[3],a,"."); print "cmake-"a[1]"."a[2];exit}'`"/Modules/FindKMSFILTERS.cmake

whereas the path resolves to:

/usr/share/cmake-3.16/Modules/FindKMSFILTERS.cmake

Now - there is no such "Modules" directory anymore. In fact, all the little helpers, like this one or "FindKurentoModules.cmake" are not there. I suppose (not tried yet) I will not be able to compile my modules anymore

What am I missing?


Neil Young

unread,
Mar 11, 2023, 3:53:57 AM3/11/23
to kurento
To be more specific: Maybe I'm not forced to patch any opencv4 dependency anymore, but during the cmake build process I was requiring these modules like so:

cmake \
-DCMAKE_MODULE_PATH=/usr/local/share/"`cmake --version | awk '{split($0,a," "); split($a[3],a,"."); print "cmake-"a[1]"."a[2];exit}'`"/Modules \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
..

Did that change now?

So the general question is: What do I need to do in order to compile a 6.x custom module for KMS7?

Neil Young

unread,
Mar 11, 2023, 4:00:38 AM3/11/23
to kurento
Found this