Skip to content


In this guide we deal with building the Liri projects from git. Check in the Contributor Guide how to get sources from the git repositories.


We need:

  • Git (>= 1.6.x)
  • A working C++ compiler
  • Qt (>= 5.10)
  • qtbase
  • qtdoc
  • qtdeclarative
  • qtgraphicaleffects
  • qtquickcontrols2
  • qtsvg
  • qtwayland
  • qttools
  • qtmultimedia
  • qtwebengine
  • cmake (>= 3.10)

Install dependencies

Build essentials:

Distro Command
Debian sudo apt-get install -y build-essential git
Arch Linux sudo pacman -Syu base-devel git
Fedora sudo dnf install -y gcc-c++ git
OpenSUSE sudo zypper install gcc-c++ git-core

Qt and cmake:

Distro Command
Debian sudo apt-get install -y qt5-default qtquickcontrols2-5-dev qml-module-qtwayland-compositor qtwayland5-dev-tools qtwebengine5-dev-tools qtwebengine5-private-dev qtwebengine5-dev qtmultimedia5-dev qtsvg5 qt5-doc qttools5-dev cmake qtchooser
Arch Linux sudo pacman -Syu qt5-quickcontrols2 qt5-wayland qt5-webengine qt5-multimedia qt5-svg qt5-doc qt5-tools cmake
Fedora sudo dnf install -y qt5-qtbase-static qt5-qtbase-private-devel qt5-qtquickcontrols2-devel qt5-qtwayland-devel qt5-qtmultimedia-devel qt5-qtwebengine-devel qt5-qtsvg-devel qt5-qtdoc qt5-qttools-devel cmake qtchooser
OpenSUSE sudo zypper install libqt5-qtquickcontrols2 libqt5-qtquickwayland-devel libqt5-qtwayland-private-headers-devel libqt5-qtwebengine-devel libqt5-qtmultimedia-devel libqt5-qtsvg-devel libqt5-qtdoc-devel libqt5-qttools-devel cmake

Other dependencies:

Distro Command
Debian sudo apt-get install -y libwayland-dev wayland-protocols libpam0g-dev libpolkit-qt5-1-dev libpolkit-gobject-1-dev libkf5solid-dev libsystemd-dev libdrm-dev libgbm-dev libinput-dev libxcb-cursor-dev libxcursor-dev libpulse-dev libkf5networkmanagerqt-dev libmodemmanagerqt-dev libglib2.0-dev dconf-service dconf-cli dconf-gsettings-backend dconf-tools libpipewire-0.2-dev gstreamer1.0-pipewire libxkbcommon-dev libqtgstreamer-dev libflatpak-dev libappstreamqt-dev
Arch Linux sudo pacman -Syu wayland pam polkit-qt5 solid libdrm libinput xcb-util-cursor pulseaudio networkmanager-qt modemmanager-qt glib2 dconf pipewire libxkbcommon flatpak appstream-qt
Fedora sudo dnf install -y wayland-devel wayland-protocols-devel pam-devel polkit-devel polkit-qt5-1-devel kf5-solid-devel systemd-devel libdrm-devel mesa-libgbm-devel libinput-devel xcb-util-cursor-devel libXcursor-devel pulseaudio-libs-devel NetworkManager-libnm-devel ModemManager-glib-devel kf5-networkmanager-qt-devel kf5-modemmanager-qt-devel glib2-devel dconf pipewire-devel pipewire-utils libxkbcommon-devel flatpak-devel appstream-qt-devel
OpenSUSE sudo zypper install wayland-devel wayland-protocols pam-devel polkit-devel libpolkit-qt5-1-devel solid-devel systemd-devel libdrm-devel libgbm-devel libinput-devel xcb-util-cursor-devel libXcursor-devel pulseaudio-libs-devel libKF5NetworkManagerQt-devel libKF5ModemManagerQt-devel glib-devel dconf gsettings-backend-dconf pipewire-devel pipewire-tools gstreamer-plugin-pipewire libxkbcommon-devel flatpak-devel libAppstreamQt-devel

Marginal dependencies (used on unit tests, etc...):

Distro Command
Debian sudo apt-get install -y umockdev-dev
Arch Linux sudo pacman -Syu umockdev
Fedora sudo dnf install -y umockdev-devel
OpenSUSE sudo zypper install umockdev-devel


Developers should open CMakeLists.txt with QtCreator and build there, that is way easier.

However if you know bash-fu it's possibile to build from sources.

We assume you have a terminal open in the sources root directory, where there's CMakeLists.txt.


mkdir .build
cd .build
cmake -DCMAKE_INSTALL_PREFIX=$(pwd)/install-root ..
make install