====== How to compile Olive Video Editor in Debian 12 Bookworm ======
You can download Olive Video Editor form the [[https://www.olivevideoeditor.org/download|download page]], the Linux version is distribute as an AppImage package, which should run on many GNU/Linux distributions without requiring to install dependencies, etc. This is partially true: I managed to start the program on my Debian 12 Bookworm computer, but **the program freezes too frequently**! I have the autosave function enabled, so I loose only one minute of work in case of crash/freeze, but restarting the work **three or four times per hour** is rather frustrating.
It turned out that **compiling the progrm from the sources** (the same GitHub commit) solved the problem. So this is how I compiled **Olive Video Editor version 0.2**, GitHub commit **[[https://github.com/olive-editor/olive/commit/55eedbfce909dfd7df97611a2eea1d1958385f9c|55eedbf]]**.
===== Preparing the Debian 12 Bookworm =====
I performed a clean **Debian 12 Bookworm** installation, deciding to not install any desktop environment. From the tasksel menu I checked only the **SSH server** and the **standard system utilities**. Actually I used a virtual machine with **3 Gb of RAM** and **16 Gb of disk space**.
There are detailed instructions on how to **[[https://www.olivevideoeditor.org/compile#ubuntu|compile Olive on Ubuntu 22.04]]**; for Debian 12 just some minor changes are required. First of all install the build tools and the libraries headers:
#!/bin/sh -e
echo "Installing build tools..."
apt install \
build-essential \
git \
cmake
echo "Installing Qt libraries..."
apt install \
qtbase5-dev \
qttools5-dev \
qttools5-dev-tools \
qtbase5-private-dev \
libqt5x11extras5-dev
echo "Installing a/v libraries..."
apt install \
libavformat-dev \
libavcodec-dev \
libavfilter-dev \
libavutil-dev \
libswscale-dev \
libswresample-dev \
libopenimageio-dev \
libopenexr-dev \
portaudio19-dev \
libopencolorio-dev
===== Download the source code =====
As the root user I created a directory to download the source code; I gave the permissions to execute the build process as a regular (non root) user:
mkdir -p /usr/local/src/olive-editor
chown niccolo:niccolo /usr/local/src/olive-editor
As a regular user you can download the source code from the GitHub repository. I decided to download the exact commit of the last available nightly build:
cd /usr/local/src/olive-editor
git clone --recursive https://github.com/olive-editor/olive
cd olive/
git checkout 55eedbfce909dfd7df97611a2eea1d1958385f9c
The source configuration and compile is executed using the **cmake** procedures:
cd /usr/local/src/olive-editor/olive
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build .
===== Configuration warnings =====
During the cmake configuration I got the following warning that I decided to ignore:
-- The following OPTIONAL packages have not been found:
* OpenTimelineIO
* GoogleCrashpad
The **OpenTimelineIO** is a Python package that you can find here: **[[https://github.com/AcademySoftwareFoundation/OpenTimelineIO|OpenTimelineIO]]**. You can install it using Pip, but beware that Debian 12 embraced the [[https://peps.python.org/pep-0668/|PEP 668]], so installing a Python module system-wide or in user space is a bit complicate.
The **crashpad** is a C++ program available here: **[[https://chromium.googlesource.com/crashpad/crashpad/|crashpad]]**.
===== Copying the binary file to another PC =====
At the end of the compile process you will find the binary file **olive-editor** into the directory **/usr/local/src/olive-editor/olive/app/**. You can just copy that file into another workstation where you have your preferred desktop environment.
I copied the file as **/usr/local/bin/olive-editor**.
You may have to install the dependencies manually:
apt install \
libopencolorio2.1 \
libopenimageio2.4 \
libavfilter8
Check if all the dependecies are satisfied by executing:
ldd /usr/local/bin/olive-editor
Almost certainly more dependencies exists, check the official [[https://packages.debian.org/bookworm/olive-editor|Debian package page for olive-editor]].