Need guidance building kdenlive v25.04.1 on Ubuntu 24.10

I am following the guide at master/dev-docs/build.md, and having some issues. Would appreciate some guidance!

I have done preliminary setup. After the following commands:

cmake .. -DKDE_INSTALL_USE_QT_SYS_PATHS=ON -DCMAKE_INSTALL_PREFIX=/usr/local -GNinja -DMOD_QT=OFF -DMOD_QT6=ON -DMOD_GLAXNIMATE=OFF -DMOD_GLAXNIMATE_QT6=ON

sudo ninja install

I see it start to build without issues up to about target 259. The I see the following warnings:

[259/817] Building CXX object src/CMakeFiles/kdenliveLib.dir/jogshuttle/jogshuttleconfig.cpp.o
cc1plus: warning: /usr/include/x86_64-linux-gnu/qt6/QtQml/6.6.2: No such file or directory [-Wmissing-include-dirs]
cc1plus: warning: /usr/include/x86_64-linux-gnu/qt6/QtQml/6.6.2/QtQml: No such file or directory [-Wmissing-include-dirs]

What am I missing? How to remove these warnings?

My system is:

$ uname -a
Linux lp-yoyo 6.11.0-26-generic #26-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 12 11:25:41 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.10
DISTRIB_CODENAME=oracular
DISTRIB_DESCRIPTION="Ubuntu 24.10"
PRETTY_NAME="Ubuntu 24.10"
NAME="Ubuntu"
VERSION_ID="24.10"
VERSION="24.10 (Oracular Oriole)"

Regards,
Valera Rozuvan

Upon closer inspection - I discovered that the folder /usr/include/x86_64-linux-gnu/qt6/QtQml is full of files:

-rw-r--r--  1 root root   23 Jul 12  2024 QJSEngine
-rw-r--r--  1 root root  14K Feb  9  2024 qjsengine.h
-rw-r--r--  1 root root   21 Jul 12  2024 QJSList
-rw-r--r--  1 root root 8.8K Feb  9  2024 qjslist.h
-rw-r--r--  1 root root   21 Jul 12  2024 QJSListIndexClamp
-rw-r--r--  1 root root   29 Jul 12  2024 QJSManagedValue
-rw-r--r--  1 root root 3.8K Feb  9  2024 qjsmanagedvalue.h
-rw-r--r--  1 root root   31 Jul 12  2024 QJSNumberCoercion
-rw-r--r--  1 root root 2.9K Feb  9  2024 qjsnumbercoercion.h
-rw-r--r--  1 root root   31 Jul 12  2024 QJSPrimitiveValue
-rw-r--r--  1 root root  33K Feb  9  2024 qjsprimitivevalue.h
-rw-r--r--  1 root root   22 Jul 12  2024 QJSValue
-rw-r--r--  1 root root 3.7K Feb  9  2024 qjsvalue.h
-rw-r--r--  1 root root   30 Jul 12  2024 QJSValueIterator
-rw-r--r--  1 root root  819 Feb  9  2024 qjsvalueiterator.h
...

So, as a hack workaround I tried the following:

sudo mkdir -p /usr/include/x86_64-linux-gnu/qt6/QtQml/6.6.2/QtQml
sudo cp /usr/include/x86_64-linux-gnu/qt6/QtQml/q* /usr/include/x86_64-linux-gnu/qt6/QtQml/6.6.2/QtQml
sudo cp /usr/include/x86_64-linux-gnu/qt6/QtQml/Q* /usr/include/x86_64-linux-gnu/qt6/QtQml/6.6.2/QtQml

And then went and fired the build install again.

To my surprise it is now building without the warnings.

Let’s see if it actually runs… I guess 10 minutes to go. Maybe more.

Well - it did build.
But the victory is short lived.
Seems to crash with a cryptic message:

$ ./bin/kdenlive
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
ZZZZZZZZZZZZZZZZZZZZZZZ

STARTING TASKMANAGER CLOSURE, ACTIVE THREADS:  0 
EXCEPTIONS:  QList() 

ZZZZZZZZZZZZZZZZZZZZZZZ
 = = = =
GOT Deleted file:  "/home/valera/.config/kdenliverc"
QPaintDevice: Cannot destroy paint device that is being painted

and

I have tried, and tried again. To no avail. The crash persists on first start.

Below I will document the steps I am taking.

  1. create dev folder, setup some ENV vars
mkdir -p ~/dev
INSTALL_PREFIX=$HOME/.local
JOBS=4
  1. get, build, and install MLT
cd ~/dev
git clone https://github.com/mltframework/mlt.git
cd ./mlt
git checkout v7.32.0
git submodule update --init --recursive
mkdir ./build && cd ./build
cmake .. -GNinja -DMOD_GLAXNIMATE_QT6=ON -DMOD_QT6=ON -DMOD_KDENLIVE=ON -DSWIG_PYTHON=ON -DMOD_OPENCV=ON -DMOD_GLAXNIMATE=OFF -DMOD_QT=OFF
sudo ninja install
  1. get, build, and install Kdenlive
cd ~/dev
git clone https://invent.kde.org/multimedia/kdenlive.git
cd ./kdenlive
git checkout v25.04.1
mkdir ./build && cd ./build
cmake .. -GNinja -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX -DKDE_INSTALL_USE_QT_SYS_PATHS=ON -DRELEASE_BUILD=OFF -DQT_MAJOR_VERSION=6
sudo ninja install
  1. Run Kdenlive
~/dev/kdenlive/build/bin/kdenlive
~/.local/bin/kdenlive

Both result in a crash :frowning:

Some more info on my system:

$ glxinfo -B
name of display: :1
display: :1  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Intel (0x8086)
    Device: Mesa Intel(R) HD Graphics 530 (SKL GT2) (0x191b)
    Version: 24.2.8
    Accelerated: yes
    Video memory: 15703MB
    Unified memory: yes
    Preferred profile: core (0x1)
    Max core profile version: 4.6
    Max compat profile version: 4.6
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) HD Graphics 530 (SKL GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 24.2.8-1ubuntu1~24.10.1
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 24.2.8-1ubuntu1~24.10.1
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 24.2.8-1ubuntu1~24.10.1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

The error message was different if you clicked Continue instead of Reset.

Then you would get:

profilePath from appDir/../share:  "/home/valera/.local/share/mlt-7/profiles"
meltPath from KdenliveSetting::meltPath:  ""
meltPath from profilePath/../../../bin:  "/home/valera/.local/bin/melt-7"
Starting render server
ZZZZZZZZZZZZZZZZZZZZZZZ

STARTING TASKMANAGER CLOSURE, ACTIVE THREADS:  0 
EXCEPTIONS:  QList() 

ZZZZZZZZZZZZZZZZZZZZZZZ
plugin not available: "frei0r.addition"
plugin not available: "frei0r.addition_alpha"
plugin not available: "frei0r.alphaatop"
plugin not available: "frei0r.alphain"
plugin not available: "frei0r.alphaout"
plugin not available: "frei0r.alphaover"
plugin not available: "frei0r.alphaxor"
plugin not available: "frei0r.burn"
plugin not available: "frei0r.cairoaffineblend"
plugin not available: "frei0r.cairoblend"
plugin not available: "frei0r.color_only"
plugin not available: "frei0r.darken"
plugin not available: "frei0r.difference"
plugin not available: "frei0r.divide"
plugin not available: "frei0r.dodge"
plugin not available: "frei0r.grain_extract"
...
plugin not available: "ladspa"
plugin not available: "ladspa"
plugin not available: "movit.unsharp_mask"
plugin not available: "timewarp"
unsupported effect in group "frei0r.transparency" : "/home/valera/.local/share/kdenlive/effect-templates/secondary_color_correction.xml"
unsupported effect in group "frei0r.transparency" : "/home/valera/.local/share/kdenlive/effect-templates/secondary_color_correction_v2.xml"
unsupported effect in group "frei0r.lenscorrection" : "/home/valera/.local/share/kdenlive/effect-templates/shut_off.xml"
unsupported effect in group "frei0r.transparency" : "/home/valera/.local/share/kdenlive/effect-templates/secondary_color_correction.xml"
unsupported effect in group "frei0r.transparency" : "/home/valera/.local/share/kdenlive/effect-templates/secondary_color_correction_v2.xml"
unsupported effect in group "frei0r.lenscorrection" : "/home/valera/.local/share/kdenlive/effect-templates/shut_off.xml"
Asset "mask_start-frei0r.select0r" has invalid dependency "frei0r.select0r" and is going to be removed
Asset "mask_start-frei0r.alphaspot" has invalid dependency "frei0r.alphaspot" and is going to be removed
Asset "mask_apply" has invalid dependency "frei0r.composition" and is going to be removed
qrc:/qml/kdenliveclipmonitor.qml: module "QtQml.WorkerScript" is not installed
qrc:/qml/kdenliveclipmonitor.qml: module "QtQml.WorkerScript" is not installed
qrc:/qml/kdenliveclipmonitor.qml: module "QtQml.WorkerScript" is not installed
qrc:/qml/kdenliveclipmonitor.qml: module "QtQml.WorkerScript" is not installed
Segmentation fault (core dumped)

Searching online for the string module "QtQml.WorkerScript" is not installed, I came upon this GitHub issue.

Installing the extra packages:

qml6-module-qtquick-shapes qml6-module-qt5compat-graphicaleffects qml6-module-qtqml-statemachine  qml6-module-qtquick-window qml6-module-qtqml-workerscript qml6-module-qt5compat-graphicaleffects libqt6quick6 libqt6core5compat6

Solved the issue!

And this:

appears to be a bug in the qt -dev packages shipped by Debian and derivatives that’s adding a spurious include for a path they don’t ship. They’re annoying, but otherwise harmless to ignore. Might want to take that one up with your distro packager.

2 Likes

Thank you @Ron !

For anyone who finds this useful - here is a complete list of dependencies I had to install to get the build working:

sudo apt-get install --no-install-recommends -y build-essential git cmake extra-cmake-modules libsm-dev clang-format ninja-build libxml++2.6-dev libavformat-dev libswscale-dev libavfilter-dev libavutil-dev libavdevice-dev libsdl1.2-dev librtaudio-dev libsox-dev libsamplerate0-dev librubberband-dev libebur128-dev libarchive-dev qtbase5-private-dev qt6-tools-dev qt6-l10n-tools debhelper pkg-kde-tools cmake extra-cmake-modules ffmpeg libavformat-dev libavcodec-dev libswresample-dev libavutil-dev pkgconf qt6-declarative-dev qt6-multimedia-dev qt6-networkauth-dev qt6-svg-dev libv4l-dev libkf6archive-dev libkf6bookmarks-dev libkf6codecs-dev libkf6crash-dev libkf6dbusaddons-dev libkf6filemetadata-dev libkf6iconthemes-dev libkf6newstuff-dev libkf6notifications-dev libkf6notifyconfig-dev libkf6purpose-dev libkf6solid-dev libkf6textwidgets-dev libkf6widgetsaddons-dev libkf6xmlgui-dev qml6-module-org-kde-desktop qml-module-org-kde-sonnet qml6-module-qtqml-models qml6-module-qtquick-window mediainfo libmlt++-dev libmlt-dev chrpath dh-python frei0r-plugins-dev imagemagick ladspa-sdk libarchive-dev libavdevice-dev libavformat-dev libdv4-dev libebur128-dev libexif-dev libfftw3-dev libgdk-pixbuf-2.0-dev libjack-dev libmovit-dev libopencv-dev libpango1.0-dev qt6-5compat-dev librtaudio-dev librubberband-dev libsamplerate0-dev libsdl1.2-compat-dev libsdl2-dev libsox-dev libswscale-dev libvidstab-dev libvorbis-dev libxine2-dev libxml2-dev python3-dev swig qt6-declarative-dev clang-format-14 qtwayland5 qml-module-qtgraphicaleffects qml-module-org-kde-graphicaleffects qml6-module-qtquick-shapes qml6-module-qt5compat-graphicaleffects qml6-module-qtqml-statemachine  qml6-module-qtquick-window qml6-module-qtqml-workerscript qml6-module-qt5compat-graphicaleffects libqt6quick6 libqt6core5compat6 libqt6qmlworkerscript6

That’s on a Gnome desktop. For KDE this list might be smaller.

1 Like

Another tip for the future me. Check if you are using Wayland or X11:

echo "$XDG_SESSION_TYPE"

If we want to switch to X11 (and we are running Ubuntu 24.10 Gnome), edit the file /etc/gdm3/custom.conf and make sure you have:

WaylandEnable=false

Kdenlive should be more stable under X11. Also, the following warning (error?) will be gone:

qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""

I have cleaned up the commands, and ran through them on a completely fresh install of Ubuntu 24.10 GNOME. Works as a charm! And the problem with QtQml/6.6.2 seems to be gone as of now! The KDE devs must have fixed it, and pushed an update to the APT repos.

Full working Bash script for building is available as a GitHub gist valera-rozuvan/26b0b39a3fb66621671b0464fe2a6cf6.

I have also made a recording of the entire process, it’s available on YouTube with chapters!

1 Like