Dépendances

Jami est un logiciel vaste et complexe, qui dépend de plusieurs bibliothèques externes de logiciels libres. Nous décrivons ici ces dépendances et comment les installer avec quelques systèmes de paquets populaires.

jami-daemon

Pour construire le daemon Jami, il faut actuellement les outils et les bibliothèques suivants:

  • Autotools GNU (autoconf, autoconf-archive, autopoint et automake)

  • GCC (GNU Compiler Collection) Compilateur C++ (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

  • libavcodec, libavdevice, libswscale, libavutil provenant de FFmpeg

  • opus

  • udev

  • fmt

  • gsm

  • pjproject (une duplication personnalisée de Jami est nécessaire)

  • jsoncpp

  • libarchive

  • libnatpmp

  • libva

  • libcrypto++

  • libvdpau

  • libsecp256k1

  • libgit2

  • http-parser

  • nasm

  • yasm

  • nettle

  • opendht

  • restinio

  • webrtc-audio-processing

  • zlib

Sur les distributions GNU/Linux basées sur dpkg/deb telles que Debian, Trisquel et Ubuntu, vous pouvez les installer à l’aide de packages utilisant apt-get ou apt comme suit:

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

Sur les distributions basées sur le rpm comme Fedora et openSUSE, les dépendances peuvent être installées en utilisant dnf, yum, ou zypper comme ceci:

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

Nous ferons de notre mieux pour tenir la liste ci-dessus à jour, mais si vous rencontrez des problèmes de dépendances manquantes, vous pouvez toujours vérifier les définitions de paquets pour les paquets Jami distribués via dl.jami.net, ainsi que le script build.py, disponible dans le dépôt ``jami-projet.

jami-client-qt

Note

Pour des instructions complètes sur la façon de construire le client Qt, veuillez vous référer au fichier INSTALL.md.

La construction du client Jami nécessite actuellement les outils et les bibliothèques suivants:

  • jami-daemon

  • libnm

  • libnotify

  • libqrencode

  • libayatana-appindicator ou libappindicator (facultatif pour les notifications)

  • qt6-base

  • qt6-declarative

  • qt6-graphicaleffects

  • qt6-multimedia

  • qt6-networkauth

  • qt6-svg

  • qt6-tools

  • qt6-webengine (optionnel, actuellement pour les prévisualisations de liens et certaines prévisualisations de fichiers multimédias)

Les paquets libqt-jami et jami-libqt de dl.jami.net fournissent les dépendances Qt 6 nécessaires aux distributions GNU/Linux basées sur dpkg/deb et rpm respectivement. Ceci est particulièrement utile pour construire Jami sur des versions légèrement plus anciennes de ces distributions où Qt 6 n’était pas encore empaqueté dans les dépôts officiels de la distribution. Pour installer ce paquetage fournissant les dépendances Qt 6 sur une distribution supportée, ajoutez d’abord le dépôt dl.jami.net respectif en suivant les instructions sur le site Download Jami for GNU/Linux du site web de Jami, puis installez le paquet en utilisant une commande comme sudo apt-get install libqt-jami (pour les distributions GNU/Linux basées sur dpkg/deb) et sudo dnf install jami-libqt (pour les distributions GNU/Linux basées sur rpm).

Sur les distributions GNU/Linux basées sur dpkg/deb telles que Debian, Trisquel et Ubuntu, vous pouvez les installer à l’aide de packages utilisant apt-get ou apt comme suit:

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

Et pour les dépendances optionnelles de Qt WebEngine:

sudo apt-get install libqt6webengine6-data \
  libqt6webenginecore6-bin qt6-webengine-dev \
  qt6-webengine-dev-tools qml6-module-qtwebengine \
  qml6-module-qtwebchannel

Sur les distributions basées sur le rpm comme Fedora et openSUSE, les dépendances peuvent être installées en utilisant dnf ou zypper comme ceci:

sudo dnf install qt6-qtbase-devel qt6-qtsvg-devel \
  qt6-qtmultimedia-devel qt6-qtdeclarative-devel qrencode-devel \
  NetworkManager-libnm-devel

Et pour les dépendances optionnelles de Qt WebEngine:

sudo dnf install qt6-qtwebengine-devel

Note

L’approche la plus simple consiste à installer le paquet libqt-jami ou jami-libqt sur votre distribution GNU/Linux basée sur dpkg/deb ou rpm respectivement, afin d’obtenir toutes les dépendances Qt 6 nécessaires à Jami. Et pour être aussi proche que possible de ce que nous testons et construisons.