Letâs postpone issue 3 for the time being. After I know that CEF stands for âChromium Embedded Frameworkâ, I am going to look into that later. Maybe Gentoo has already a package for that. I am going to check that out.
I have been able to fix the compilation errors by applying to patch files locally. One of them is the fix: boost 1.85/1.86 (#1584)
. Thank you for the pointer. The other patch is even more trivial, it only adds some missing headers to the appropriate source files.
Patch which adds one missing header to each out of four source files
diff -ur a/common/filesystem.cpp b/common/filesystem.cpp
--- a/common/filesystem.cpp 2025-02-26 17:19:21.000000000 +0100
+++ b/common/filesystem.cpp 2025-04-22 19:24:09.239048365 +0200
@@ -26,6 +26,7 @@
#include <boost/algorithm/string.hpp>
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/path.hpp>
+#include <boost/filesystem/directory.hpp>
namespace caspar {
diff -ur a/common/log.cpp b/common/log.cpp
--- a/common/log.cpp 2025-02-26 17:19:21.000000000 +0100
+++ b/common/log.cpp 2025-04-22 19:33:03.111473653 +0200
@@ -26,6 +26,7 @@
#include <boost/algorithm/string/replace.hpp>
#include <boost/core/null_deleter.hpp>
#include <boost/filesystem/operations.hpp>
+#include <boost/lexical_cast.hpp>
#include <boost/locale.hpp>
#include <boost/log/attributes/function.hpp>
#include <boost/log/core.hpp>
diff -ur a/modules/decklink/consumer/config.h b/modules/decklink/consumer/config.h
--- a/modules/decklink/consumer/config.h 2025-02-26 17:19:21.000000000 +0100
+++ b/modules/decklink/consumer/config.h 2025-04-22 19:51:01.990662754 +0200
@@ -21,6 +21,7 @@
#pragma once
+#include <boost/property_tree/ptree.hpp>
#include <core/video_format.h>
namespace caspar { namespace decklink {
@@ -101,4 +102,4 @@
configuration parse_amcp_config(const std::vector<std::wstring>& params,
const core::video_format_repository& format_repository);
-}} // namespace caspar::decklink
\ Kein Zeilenumbruch am Dateiende.
+}} // namespace caspar::decklink
diff -ur a/modules/ffmpeg/consumer/ffmpeg_consumer.cpp b/modules/ffmpeg/consumer/ffmpeg_consumer.cpp
--- a/modules/ffmpeg/consumer/ffmpeg_consumer.cpp 2025-02-26 17:19:21.000000000 +0100
+++ b/modules/ffmpeg/consumer/ffmpeg_consumer.cpp 2025-04-22 19:43:38.374445458 +0200
@@ -73,6 +73,7 @@
#include <tbb/parallel_invoke.h>
#include <memory>
+#include <optional>
#include <thread>
namespace caspar { namespace ffmpeg {
So, compilation phase succeeds now, but linking phase fails. I paste the entire error here, maybe someone can make some sense out of it
Linking error
FAILED: shell/casparcg
: && /usr/bin/x86_64-pc-linux-gnu-g++ -O2 -march=znver3 -mshstk --param=l1-cache-line-size=64 --param=l1-cache-size=32 --param=l2-cache-size=512 -pipe -Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--dependency-file=shell/CMakeFiles/casparcg.dir/link.d shell/CMakeFiles/casparcg.dir/main.cpp.o shell/CMakeFiles/casparcg.dir/server.cpp.o shell/CMakeFiles/casparcg.dir/linux_specific.cpp.o -o shell/casparcg -Wl,-rpath,/var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/protocol:/var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/modules/image:/var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/modules/oal:/var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/modules/decklink:/var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/modules/screen:/var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/modules/newtek:/var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/modules/artnet:/var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/accelerator:/var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/modules/ffmpeg:/var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/core:/var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/common protocol/libprotocol.so modules/image/libimage.so modules/oal/liboal.so modules/decklink/libdecklink.so modules/screen/libscreen.so modules/newtek/libnewtek.so modules/artnet/libartnet.so /usr/lib64/libboost_system.so.1.85.0 /usr/lib64/libboost_log_setup.so.1.85.0 /usr/lib64/libboost_log.so.1.85.0 /usr/lib64/libboost_locale.so.1.85.0 /usr/lib64/libboost_regex.so.1.85.0 /usr/lib64/libboost_date_time.so.1.85.0 /usr/lib64/libboost_coroutine.so.1.85.0 /usr/lib64/libtbb.so /usr/lib64/libsfml-graphics.so /usr/lib64/libsfml-window.so /usr/lib64/libsfml-system.so /usr/lib64/libGLEW.so /usr/lib64/libSM.so /usr/lib64/libICE.so /usr/lib64/libX11.so /usr/lib64/libXext.so -lavcodec -lavformat -lavutil -lavdevice -lavfilter -lpostproc -lswscale -lswresample -ldl -licui18n -licuuc -lz -lpthread -lfreeimage -lopenal accelerator/libaccelerator.so modules/ffmpeg/libffmpeg.so core/libcore.so common/libcommon.so /usr/lib64/libboost_filesystem.so.1.85.0 /usr/lib64/libboost_atomic.so.1.85.0 /usr/lib64/libboost_thread.so.1.85.0 /usr/lib64/libboost_chrono.so.1.85.0 /usr/lib64/libboost_context.so.1.85.0 -lavcodec -lavformat -lavutil -lavdevice -lavfilter -lpostproc -lswscale -lswresample /usr/lib64/libGLX.so /usr/lib64/libOpenGL.so && cd /var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/shell && /usr/bin/cmake -E copy /var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/shell/casparcg /var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/staging/bin/casparcg && cd /var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/shell && /usr/bin/cmake -E copy /var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src/shell/casparcg.config /var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/staging/casparcg.config && cd /var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/shell && /usr/bin/cmake -E copy /var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src/shell/liberation-fonts/LiberationMono-Regular.ttf /var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/staging/LiberationMono-Regular.ttf && cd /var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/shell && /usr/bin/cmake -E copy /var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src/shell/run.sh /var/tmp/portage/media-video/casparcg-server-2.4.3/work/server-2.4.3-stable/src_build/staging/run.sh
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Transform::translate(float, float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Transformable::getTransform() const'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Transformable::~Transformable()'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::RenderTarget::clear(sf::Color const&)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::View::View()'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Font::Font()'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::operator*=(sf::Transform&, sf::Transform const&)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::RenderTarget::setView(sf::View const&)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::View::setViewport(sf::Rect<float> const&)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Text::getLocalBounds() const'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Text::Text(sf::String const&, sf::Font const&, unsigned int)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `typeinfo for sf::Transformable'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Transformable::Transformable()'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Transformable::move(float, float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Text::setColor(sf::Color const&)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Font::loadFromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::VertexArray::operator[](unsigned long)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Shape::setOutlineThickness(float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::RectangleShape::RectangleShape(sf::Vector2<float> const&)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Transform::scale(float, float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::View::setSize(float, float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `vtable for sf::RectangleShape'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Transformable::setPosition(float, float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::RenderStates::Default'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `vtable for sf::VertexArray'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::View::setCenter(float, float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::RenderTarget::draw(sf::Drawable const&, sf::RenderStates const&)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Shape::setFillColor(sf::Color const&)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::RenderWindow::RenderWindow(sf::VideoMode, sf::String const&, unsigned int, sf::ContextSettings const&)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Font::~Font()'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `vtable for sf::Text'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::VertexArray::VertexArray(sf::PrimitiveType, unsigned long)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Color::Color(unsigned char, unsigned char, unsigned char, unsigned char)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Shape::~Shape()'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::VertexArray::append(sf::Vertex const&)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::RenderTarget::draw(sf::Vertex const*, unsigned long, sf::PrimitiveType, sf::RenderStates const&)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Vertex::Vertex(sf::Vector2<float> const&, sf::Color const&)'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: core/libcore.so: undefined reference to `sf::Text::setStyle(unsigned int)'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
As far as I understand it, the Ninja build system calls the script src/shell/run.sh
. However, I cannot make any sense out of this script. It tries to repeatedly rung the command bin/casparcg
until the return value does not equal 5. That sounds odd.
But maybe the script isnât the problem and the linking error is caused by something different.