Dependencias

Jami es una pieza de software grande y compleja, y depende de varias bibliotecas de software libre externas. Aquí describimos estas dependencias y cómo instalarlas con algunos sistemas de paquetes populares.

jami-daemon

La compilación del demonio Jami actualmente requiere las siguientes herramientas y bibliotecas:

  • Autotools de GNU (autoconf, autoconf-archive, autopoint y 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 ( necesario tenedor personalizado de Jami)

  • jsoncpp

  • libarchive

  • libnatpmp

  • libva

  • libcrypto++

  • libvdpau

  • libsecp256k1

  • libgit2

  • http-parser

  • nasm

  • yasm

  • nettle

  • opendht

  • restinio

  • webrtc-audio-processing

  • zlib

En las distribuciones GNU/Linux basadas en dpkg/deb, como Debian, Trisquel y Ubuntu, puede instalar estos paquetes utilizando “apt-get” o apt como sigue:

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

En las distribuciones basadas en rpm, como Fedora y openSUSE, las dependencias pueden instalarse utilizando dnf, yum, o zypper. así:

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

Haremos todo lo posible para mantener la lista anterior actualizada, pero en caso de que se enfrente a cualquier problema con dependencias desaparecidas siempre puede comprobar las definiciones de paquete para paquetes los Jami distribuidas a través de dl.jami.net, así como el script build.py, disponible en el repositorio ``jami-project`

jami-client-qt

Nota

Para obtener instrucciones completas sobre cómo compilar el cliente Qt, consulte `INSTALL.md<https://git.jami.net/savoirfairelinux/jami-client-qt/-/blob/master/INSTALL.md>`_ file.

La creación del cliente Jami actualmente requiere las siguientes herramientas y bibliotecas:

  • jami-daemon

  • libnm

  • libnotify

  • libqrencode

  • libayatana-appindicator o libappindicator (opcional, para notificaciones)

  • qt6-base

  • qt6-declarative

  • qt6-graphicaleffects

  • qt6-multimedia

  • qt6-networkauth

  • qt6-svg

  • qt6-tools

  • qt6-webengine (opcional, actualmente para vistas previas de enlaces y algunas vistas previas de archivos multimedia)

Los paquetes libqt-jamie y jami-libqt de dl.jami.net proporcionan las dependencias necesarias de Qt 6 en distribuciones GNU/Linux basadas respectivamente en compatible dpkg/deb y rpm. Esto es especialmente útil para compilar Jami en versiones ligeramente más antiguas de estas distribuciones donde Qt 6 aún no estaba empaquetado en los repositorios oficiales de la distribución. Para instalar este paquete que proporciona las dependencias de Qt6 en una distribución compatible, primero agregue el repositorio dl.jami.net siguiendo las instrucciones de “Descargar Jami para GNU/Linux de la página <https://jami.net/download-jami-linux/>`_ del sitio web de Jami, luego instale el paquete usando un comando como «sudo apt-get install libqt-jami»` (para distribuciones GNU/Linux basadas en dpkg/deb) y «sudo dnf install jami-libqt «` (para distribuciones GNU/Linux basadas en rpm).

En las distribuciones GNU/Linux basadas en dpkg/deb, como Debian, Trisquel y Ubuntu, puede instalar estos paquetes utilizando “apt-get” o apt como sigue:

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

Y para las dependencias opcionales de Qt WebEngine:

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

En las distribuciones basadas en rpm, como Fedora y openSUSE, las dependencias se pueden instalar usando dnf, o ``zypper`. así:

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

Y para las dependencias opcionales de Qt WebEngine:

sudo dnf install qt6-qtwebengine-devel

Nota

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.