CasparCG Server 2.1.12 NRK for Ubuntu 20.04 and 18.04

Is anybody interested in trying out Server 2.1.12 NRK on Ubuntu 18.04 or 20.04?

I’ve built two versions, which can be found here:

I will post my build scripts for those not faint of heart who wish to build them on their own.

Merry Xmas to all and Happy New Year.

D-mo

PS: You might need to install a few dependencies for the Server to run, specifically:

  • For Ubuntu 18.04:
    sudo apt install libtbb2 libglew2.0 libsfml-graphics2.4 libsfml-network2.4 libsfml-system2.4 libsfml-window2.4 libfreetype6 ffmpeg libfreeimage3 libopenal1

  • For Ubuntu 20.04:
    sudo apt install libtbb2 libglew2.1 libsfml-graphics2.5 libsfml-network2.5 libsfml-system2.5 libsfml-window2.5 libfreetype6 ffmpeg libfreeimage3 libopenal1

3 Likes

Here are the scripts.

build-server:

#!/bin/bash

case "$1" in
    20.04) tag="2.1.12-nrk_ubuntu-20.04"
           image_tag="1.2-glvnd-devel-ubuntu20.04"
           ;;
    18.04) tag="2.1.12-nrk_ubuntu-18.04"
           image_tag="1.0-glvnd-devel-ubuntu18.04"
           ;;
        *) echo "Invalid or unsupported version"
           exit 1
           ;;
esac

docker build --tag casparcg/server:${tag} - <<EOF
    FROM nvidia/opengl:${image_tag}

    ENV DEBIAN_FRONTEND=noninteractive
    RUN apt-get update && apt-get dist-upgrade -yq

    # base
    RUN apt-get install -yq --no-install-recommends \
        build-essential \
        ca-certificates \
        cmake \
        g++ \
        git \
        libass-dev \
        libatk-bridge2.0-dev \
        libatspi2.0-dev \
        libbz2-dev \
        libcrypto++-dev \
        libfreeimage-dev \
        libfreetype6-dev \
        libgconf2-dev \
        libglew-dev \
        libgmp-dev \
        libjpeg-dev \
        liblzma-dev \
        libmp3lame-dev \
        libnspr4 \
        libnss3 \
        libopenal-dev \
        libopus-dev \
        librtmp-dev \
        libsfml-dev \
        libsndfile1-dev \
        libtbb-dev \
        libtheora-dev \
        libvpx-dev \
        libwebp-dev \
        libx264-dev \
        libx265-dev \
        libxcb-shm0-dev \
        libxcomposite1 \
        libxcursor-dev \
        libxi-dev \
        libxinerama-dev \
        libxtst6 \
        time

    # boost
    RUN apt-get install -yq --no-install-recommends \
        libboost-chrono-dev \
        libboost-coroutine-dev \
        libboost-date-time-dev \
        libboost-filesystem-dev \
        libboost-locale-dev \
        libboost-log-dev \
        libboost-regex-dev \
        libboost-system-dev \
        libboost-thread-dev

    # ffmpeg
    RUN apt-get install -yq --no-install-recommends \
        libavcodec-dev \
        libavdevice-dev \
        libavfilter-dev \
        libavformat-dev \
        libavutil-dev \
        libpostproc-dev \
        libswresample-dev \
        libswscale-dev

    # server
    WORKDIR /opt
    RUN git clone https://github.com/dimitry-ishenko-casparcg/tv-automation-casparcg-server.git -b linux --depth 1 server

    WORKDIR /opt/server/build-scripts
    ENV BUILD_ARCHIVE_NAME=server
    ENV BUILD_PARALLEL_THREADS=8
    RUN ./build-linux.sh
EOF

extract-server:

#!/bin/bash

case "$1" in
    20.04) tag="2.1.12-nrk_ubuntu-20.04"
           ;;
    18.04) tag="2.1.12-nrk_ubuntu-18.04"
           ;;
        *) echo "Invalid or unsupported version"
           exit 1
           ;;
esac

id=$(docker create casparcg/server:${tag})
docker cp $id:/opt/server/build/server.tar.gz ./server-${tag}.tar.gz
docker rm -v $id

Hi, sorry can you please explain this fix? I have casparcg_server made and extracted from docker but if I run : sudo ./run.sh

error:
symbol lookup error: lib/libpthread.so.0: undefined symbol: __libc_vfork, version GLIBC_PRIVATE

Which OS and version are you on?

Ubuntu 20.04.3 LTS Focal Fossa Got casparCG via
git clone --single-branch --branch master https://github.com/CasparCG/server casparcg-server-master … changelog.md states CasparCG 2.3.2 Beta.

Should I be running Ubuntu 18.04 and
CasparCG Server 2.1.0 Beta 2 for Linux.tar.gz
? Thanks!

Did you ever solve this issue? I have the same problem. Trying to install the server on Ubuntu 18.04

@asperi and @santonivich I am planning to upgrade our servers to Ubuntu 22.04 at some point soon and will post new instructions.

In the meantime, you get grab pre-compiled versions for 18.04 and 20.04 from my GitHub page:

Hi Dimitry,

Did you ever find the time to make it work on 22.04? I just recently started to try and get the server to work on 20.04 but having massive issues with X11 display not being available, since it is an ubuntu server. How did you get around this in your version?

Would love to see some in depth knowledge. It is something NRK has done that is unique to make it work on a server?

Best Regards
Simon

Sorry, not yet.

Blood, sweat and tears :wink: Honestly, I don’t remember. It’s been too long.

Not sure I understand the question. NRK version is based on the older CasparCG version. We are using it because we need more than 8 channels of audio, which the current CCG version can’t do.

The official 2.4 builds provide scripting for building for 22.04

I don’t expect there to be any more work on 2.1nrk, we are moving across to 2.4. We also didn’t try it on Linux, so I can’t help on getting that building or running.

Thank you all for the replies. I will continue tinkering with X11. My question about NRK was if Dimitry had done some amazing discovery in his build of ccg.

And I am aware that NRK Sofies upgrades are merged with the main branch.

Thank you all.

Slightly off topic, but what about the pre-build versions in the “builds” folder?
https://builds.casparcg.com

I see both ubuntu20 and very recent ubuntu22 (along with windows)

I’m not familiar with the development, I wonder if those versions are stable and usable or something more like a beta, so not suitable for production

The files on the build server are the results of adding a commit to the code base. These may be minor bug fixes or new functionality. The new functions may not have been through the rigourous testing applied to a stable release versions on the project releases page, but they can be as stable as such a release, but with extra features/functionality added to the base code.

The builds server means you can access a casparcg server version that has extra capabilities, but the end user is responsible for checking the stability of the version before releasing that version into day-to-day use - just as we should do with any software.

You can find out more about one of the files in the builds server through the commit history for the project. At the time I typed this note one of the files near the top of the builds for the server master branch is named:

 casparcg-server-d386856e1dd6ef21c6934ddb7c616112a7cf72ad-ubuntu22.zip

The first 7 characters of the long string after “casparcg-server-” are a hook into more information. So in the above example the significant characters are d386856.

We now look at the project code home page, https://github.com/CasparCG/server, in this instance. A screen grab from part of this page this is shown below.

There is a tick mark towrds the right of the lower line, followed by 7 letters - in this instance the same letters that we see in the file name (d386856). Clicking the 7 characters switches the display to show the code changes applied to the source files. There is more detail from the commit process, in this instance the headline of the change (feat: Artnet Consumer) and a link to the discussion page about this feat (#1491). The has number is the Issues reference number.

If the build of interest is not at the top of the code page, you can click on the number of project commits (as displayed at the lower right of the screenshot above). This links to the list of commits for the project. You then need to find the 7 character value from the file name in the list of commits. The usual browser search can help locate on a page. The build data on the builds server can assist in finding the correct page in the commits history.

Hope this helps you find more information about the builds.

1 Like

I actually got the server running on 22.04. I now know what you mean with blood sweat and tears. Using xorg, blackbox and rxvt-unicode as per your tips here:

Thank you Dimitry.