181 lines
6.0 KiB
ReStructuredText
181 lines
6.0 KiB
ReStructuredText
Dependencies
|
|
============
|
|
|
|
Jami is a large and complex piece of software, and depends on several
|
|
external free software libraries. Here we outline these dependencies
|
|
and how to install them with a few popular package systems.
|
|
|
|
..
|
|
TODO: distinguish between build time and run time dependencies ?
|
|
|
|
..
|
|
TODO: give separate instructions for dnf and zypper ?
|
|
|
|
|
|
jami-daemon
|
|
-----------
|
|
|
|
Building the Jami daemon currently requires the following tools and
|
|
libraries:
|
|
|
|
- GNU Autotools (autoconf, autoconf-archive, autopoint, and automake)
|
|
- GCC (GNU Compiler Collection) C++ compiler (g++)
|
|
- GNU Make
|
|
- GNU gettext
|
|
- GNU Libtool
|
|
- GnuTLS
|
|
- argon2
|
|
- asio
|
|
- dbus
|
|
- dbus-c++
|
|
- libupnp
|
|
- libssl
|
|
- libpulse
|
|
- libasound2
|
|
- libexpat
|
|
- pcre3
|
|
- yaml-cpp
|
|
- libxext
|
|
- libxfixes
|
|
- speex
|
|
- speexdsp
|
|
- uuid
|
|
- FFmpeg's libavcodec, libavdevice, libswscale, libavutil
|
|
- opus
|
|
- udev
|
|
- fmt
|
|
- gsm
|
|
- pjproject (Jami's custom fork needed)
|
|
- jsoncpp
|
|
- libarchive
|
|
- libnatpmp
|
|
- libva
|
|
- libcrypto++
|
|
- libvdpau
|
|
- libsecp256k1
|
|
- libgit2
|
|
- http-parser
|
|
- nasm
|
|
- yasm
|
|
- nettle
|
|
- opendht
|
|
- restinio
|
|
- webrtc-audio-processing
|
|
- zlib
|
|
|
|
On dpkg/deb-based GNU/Linux distributions such as Debian, Trisquel,
|
|
and Ubuntu you can install these using packages using ``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 distributions like Fedora and openSUSE the dependencies
|
|
can be installed using ``dnf``, ``yum``, or ``zypper`` like so::
|
|
|
|
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
|
|
|
|
We will do our best to keep the above list up-to-date, but in case you
|
|
face any issues with missing dependencies you can always check the
|
|
package definitions for Jami packages distributed via dl.jami.net, as
|
|
well as the ``build.py`` script, available in the ``jami-project``
|
|
repository.
|
|
|
|
|
|
jami-client-qt
|
|
--------------
|
|
|
|
.. note:: For complete instructions on how to build the Qt client,
|
|
please refer to te the `INSTALL.md
|
|
<https://git.jami.net/savoirfairelinux/jami-client-qt/-/blob/master/INSTALL.md>`_
|
|
file.
|
|
|
|
Building the Jami client currently 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
|
|
needed Qt 6 dependencies on supported dpkg/deb-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 was not yet packaged in the distribution's official repositories.
|
|
To install this package providing the Qt 6 dependencies on a supported
|
|
distribution, first add the respective dl.jami.net repository by
|
|
following the instructions on the `Download Jami for GNU/Linux
|
|
<https://jami.net/download-jami-linux/>`_ page of the Jami website,
|
|
then install the package using a command like ``sudo apt-get install
|
|
libqt-jami`` (for dpkg/deb-based GNU/Linux distributions) and ``sudo
|
|
dnf install jami-libqt`` (for rpm-based GNU/Linux distributions).
|
|
|
|
On dpkg/deb-based GNU/Linux distributions such as Debian, Trisquel,
|
|
and Ubuntu you can install these using packages using ``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
|
|
|
|
And for the optional Qt WebEngine dependencies::
|
|
|
|
sudo apt-get install libqt6webengine6-data \
|
|
libqt6webenginecore6-bin qt6-webengine-dev \
|
|
qt6-webengine-dev-tools qml6-module-qtwebengine \
|
|
qml6-module-qtwebchannel
|
|
|
|
On rpm-based distributions like Fedora and openSUSE the dependencies
|
|
can be installed using ``dnf`` or ``zypper`` like so::
|
|
|
|
sudo dnf install qt6-qtbase-devel qt6-qtsvg-devel \
|
|
qt6-qtmultimedia-devel qt6-qtdeclarative-devel qrencode-devel \
|
|
NetworkManager-libnm-devel
|
|
|
|
And for the optional Qt WebEngine dependencies::
|
|
|
|
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/deb-based
|
|
and rpm-based GNU/Linux distribution respectively, to get
|
|
all of the needed Qt 6 dependencies of Jami. And to be as
|
|
similar as possible at what we are testing and building.
|