Dependencies
Jami is a large and complex piece of software, and depends on several external free software libraries. The dependencies and how to install them on some systems are outlined below.
jami-daemon
Building the Jami daemon requires the following tools and libraries:
GNU Autotools (autoconf, autoconf-archive, autopoint, and automake)
GCC (GNU Compiler Collection) C++ compiler (g++)
dbus-c++
libxfixes
speexdsp
uuid
FFmpeg (libavcodec, libavdevice, libswscale, and libavutil)
gsm
pjproject (custom Jami fork required)
On dpkg/Debian-based GNU/Linux distributions
(such as Debian, Trisquel, Ubuntu, and Linux Mint),
the packages can be installed with apt-get
or apt
as follows:
sudo apt-get install autoconf autoconf-archive autopoint automake \
cmake make dbus doxygen graphviz g++ gettext libasound2-dev \
libavcodec-dev libavdevice-dev libavformat-dev libboost-dev \
libcppunit-dev libdbus-1-dev libdbus-c++-dev libexpat1-dev \
libgnutls28-dev libgtk-3-dev libjack-dev libopus-dev \
libpcre3-dev libpulse-dev libssl-dev libspeex-dev \
libspeexdsp-dev libswscale-dev libtool libudev-dev \
libyaml-cpp-dev sip-tester swig uuid-dev yasm libjsoncpp-dev \
libva-dev libvdpau-dev libmsgpack-dev pandoc nasm dpkg-dev
On RPM-based GNU/Linux distributions
(such as Fedora and openSUSE),
the packages can be installed with dnf
, yum
, or zypper
as follows:
sudo dnf install autoconf autoconf-archive automake cmake make \
speexdsp-devel pulseaudio-libs-devel libtool dbus-devel \
expat-devel pcre-devel doxygen graphviz yaml-cpp-devel \
boost-devel dbus-c++-devel dbus-devel libXext-devel \
libXfixes-devel yasm speex-devel chrpath check uuid-c++-devel \
gettext-devel gcc-c++ which alsa-lib-devel systemd-devel \
libuuid-devel uuid-devel gnutls-devel nettle-devel opus-devel \
speexdsp-devel yaml-cpp-devel swig jsoncpp-devel patch \
libva-devel openssl-devel libvdpau-devel msgpack-devel \
sqlite-devel openssl-static pandoc nasm bzip2
If there are any issues with missing dependencies, please check:
The Jami package definitions, distributed on dl.jami.net; and
The
build.py
script, on thejami-project
repository.
jami-client-qt
Note: For complete instructions on how to build the Qt Desktop client, please refer to the INSTALL.md file.
Building the Jami client requires the following tools and libraries:
jami-daemon
libnm
libnotify
libqrencode
libayatana-appindicator or libappindicator (optional, for notifications)
qt6-base
qt6-declarative
qt6-graphicaleffects
qt6-multimedia
qt6-networkauth
qt6-svg
qt6-tools
qt6-webengine (optional, currently for link previews and some media file previews)
The libqt-jami and jami-libqt packages from dl.jami.net provide the required Qt 6 dependencies on supported dpkg/Debian-based and RPM-based GNU/Linux distributions, respectively. This is especially useful for building Jami on slightly older versions of these distributions where Qt 6 is not yet packaged in the distribution’s official repositories. To install this package providing the Qt 6 dependencies on a supported distribution:
Add the respective dl.jami.net repository by following the instructions on the Download Jami for GNU/Linux webpage; and
Install the package using the Terminal command
sudo apt-get install libqt-jami
(for dpkg/Debian-based GNU/Linux distributions) orsudo dnf install jami-libqt
(for RPM-based GNU/Linux distributions).
On dpkg/Debian-based GNU/Linux distributions
(such as Debian, Trisquel, Ubuntu, and Linux Mint),
the packages can be installed with apt-get
or apt
as follows:
sudo apt-get install qt6-base-dev qt6-tools-dev \
qt6-tools-dev-tools qt6-l10n-tools libqt6sql6-sqlite \
libqt6core5compat6-dev libqt6networkauth6-dev \
qt6-multimedia-dev libqt6svg6-dev qt6-declarative-dev \
qml6-module-qt-labs-qmlmodels \
qml6-module-qt5compat-graphicaleffects \
qml6-module-qtqml-workerscript qml6-module-qtmultimedia \
qml6-module-qtquick qml6-module-qtquick-controls \
qml6-module-qtquick-dialogs qml6-module-qtquick-layouts \
qml6-module-qtquick-shapes qml6-module-qtquick-window \
qml6-module-qtquick-templates qml6-module-qt-labs-platform \
libqrencode-dev libnm-dev libnotify-dev
To install the optional Qt WebEngine packages:
sudo apt-get install libqt6webengine6-data \
libqt6webenginecore6-bin qt6-webengine-dev \
qt6-webengine-dev-tools qml6-module-qtwebengine \
qml6-module-qtwebchannel
On RPM-based GNU/Linux distributions
(such as Fedora and openSUSE),
the packages can be installed with dnf
, yum
, or zypper
as follows:
sudo dnf install qt6-qtbase-devel qt6-qtsvg-devel \
qt6-qtmultimedia-devel qt6-qtdeclarative-devel qrencode-devel \
NetworkManager-libnm-devel
To install the optional Qt WebEngine packages:
sudo dnf install qt6-qtwebengine-devel
Note: The easiest approach would be to install the libqt-jami or jami-libqt package on your supported dpkg/Debian-based or RPM-based GNU/Linux distribution, respectively. This would ensure that:
All the required Qt 6 dependencies are fetched; and
The application is as similar as possible at what is being built and tested.