Building DCP-o-matic 2.16.x for Linux

Ubuntu 20.04Ubuntu 22.04Fedora 35Fedora 36Arch

Packaged dependencies

sudo dnf -y install gcc-c++ libxml++-devel boost-devel cmake openssl-devel xmlsec1-openssl-devel \
libsndfile-devel libtool-ltdl-devel gtk2-devel GraphicsMagick-c++-devel libcurl-devel \
libsamplerate-devel libzip-devel pangomm-devel nettle-devel libssh-devel rpm-build \
git pulseaudio-libs-devel alsa-lib-devel gettext make polkit-devel python xerces-c-devel \
nanomsg-devel perl-FindBin ccache gtk3-devel mesa-libGLU-devel wget libdav1d-devel libjpeg-devel

nasm

wget https://dcpomatic.com/deps/linux/nasm-2.13.tar.xz
wget https://dcpomatic.com/deps/linux/0001-Remove-invalid-pure_func-qualifiers.patch
tar xJf nasm-2.13.tar.xz
cd nasm-2.13
./configure
patch -p1 < ../0001-Remove-invalid-pure_func-qualifiers.patch
make -j8
sudo make install
cd ..

libx264

wget https://dcpomatic.com/deps/linux/x264-snapshot-20170705-2245.tar.bz2
tar xjf x264-snapshot-20170705-2245.tar.bz2
cd x264-snapshot-20170705-2245
./configure --enable-shared
make -j8
sudo make install
sudo make install-lib-shared
cd ..

libcxml

git clone git://git.carlh.net/git/libcxml.git
cd libcxml
./waf configure build
sudo ./waf install
cd ..

libopenjpeg version 2.1 with some patches

git clone git://git.carlh.net/git/openjpeg.git
cd openjpeg
git checkout carl-2
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_PKGCONFIG_FILES=ON -DBUILD_SHARED_LIBS=OFF
make
sudo make install
cd ..
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

asdcplib with some patches

git clone git://git.carlh.net/git/asdcplib.git
cd asdcplib
git checkout carl
./waf configure build
sudo ./waf install
cd ..

libdcp

git clone git://git.carlh.net/git/libdcp.git
cd libdcp
./waf configure build
sudo ./waf install
cd ..

libsub

git clone git://git.carlh.net/git/libsub.git
cd libsub
./waf configure build
sudo ./waf install
cd ..

ffmpeg with some patches

git clone git://git.carlh.net/git/ffmpeg.git
cd ffmpeg
git checkout carl-dcpomatic-14
bash carl-configure
make -j8
sudo make install
cd ..

leqm_nrt

git clone git://git.carlh.net/git/leqm-nrt.git
cd leqm-nrt
git checkout carl
./waf configure --without-libsndfile build
sudo ./waf install
cd ..

wxWidgets

wget https://dcpomatic.com/deps/linux/wxWidgets-3.1.5.tar.bz2
tar xjf wxWidgets-3.1.5.tar.bz2
cd wxWidgets-3.1.5
./configure --with-gtk=3 --prefix=/usr/local
make -j8
sudo make install
cd ..

rtaudio

git clone git://git.carlh.net/git/rtaudio.git
cd rtaudio
git checkout carl
./configure --prefix=/usr/local --with-pulse --with-alsa
make -j8
sudo make install
cd ..

openssl

cd /usr/local/bin
sudo ln -s $(which openssl) dcpomatic2_openssl

DCP-o-matic itself

git clone git://git.carlh.net/git/dcpomatic.git
cd dcpomatic
./waf configure build
sudo ./waf install
cd ..