Dependências

Jami é um software grande e complexo, e depende de várias bibliotecas externas de software livre. Aqui descrevemos essas dependências e como instalar com alguns sistemas de pacotes populares.

Jami-daemon

Construir o daemon Jami requer atualmente as seguintes ferramentas e bibliotecas:

  • GNU Autotools (autoconf, autoconf-arquivo, autopoint e automake)

  • GCC (GNU Compiler Collection) Compilador C++ (g++)

  • GNU Make

  • GNU gettext

  • GNU Libtool

  • GnuTLS

  • Argon2

  • Asio

  • Dbus

  • dbus-c++

  • Limpão

  • Libssl

  • pulso de cabeça

  • libasound2

  • Liberexpat

  • Pcre3

  • YAML-CPP

  • libxext

  • Libxfixes

  • Espexo

  • Espexdsp

  • UID

  • Libavcodec, libavdevice, libswscale, libavutil

  • Opus

  • Udev

  • Fmt

  • Gsm

  • pjproject (necessário garfo personalizado de Jamie)

  • Jsoncpp

  • Arquivo de líber

  • Libnatpmp

  • Libva

  • Libcrypto++

  • Liberdade

  • Libsecp256k1

  • Libgit2

  • http-parser

  • Nasm

  • Yasem

  • Ortiga

  • aberta

  • restinio

  • Webrtc-processamento de áudio

  • Zlib

Em distribuições GNU/Linux baseadas em dpkg/deb, como Debian, Trisquel e Ubuntu, você pode instalar esses usando pacotes usando apt-get ou apt como segue:

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

Em distribuições baseadas em rpm como Fedora e openSUSE as dependências podem ser instaladas usando dnf, yum, ou zypper como assim:

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

Faremos o nosso melhor para manter a lista acima atualizada, mas no caso de você enfrentar quaisquer problemas com dependências faltantes, você pode sempre verificar as definições de pacotes para pacotes Jami distribuídos através dl.jami.net, bem como o script build.py, disponível no repositório ``jami-projeto.

jami-client-qt

Nota

Para obter instruções completas sobre como compilar o cliente Qt, consulte o arquivo INSTALL.md.

Construir o cliente Jami requer atualmente as seguintes ferramentas e bibliotecas:

  • Jami-daemon

  • Libnm

  • Libnotify

  • código de libqren

  • libayatana-appindicator ou libappindicator (opcional, para notificações)

  • qt6-base

  • qt6-declarative

  • qt6-graphicaleffects

  • qt6-multimedia

  • qt6-networkauth

  • qt6-svg

  • qt6-tools

  • Qt6-webengine (opcional, atualmente para visualizações de links e algumas visualizações de arquivos multimídia)

Os pacotes libqt-jami e jami-libqt do dl.jami.net fornecem as dependências necessárias do Qt 6 em distribuições GNU/Linux suportadas baseadas em dpkg/deb e rpm, respectivamente. Isso é especialmente útil para compilar o Jami em versões um pouco mais antigas dessas distribuições, nas quais o Qt 6 ainda não foi empacotado nos repositórios oficiais da distribuição. Para instalar esse pacote que fornece as dependências do Qt 6 em uma distribuição suportada, primeiro adicione o respectivo repositório dl.jami.net seguindo as instruções em Download Jami for GNU/Linux do site da Jami e, em seguida, instale o pacote usando um comando como sudo apt-get install libqt-jami (para distribuições GNU/Linux baseadas em dpkg/deb) e sudo dnf install jami-libqt (para distribuições GNU/Linux baseadas em rpm).

Em distribuições GNU/Linux baseadas em dpkg/deb, como Debian, Trisquel e Ubuntu, você pode instalar esses usando pacotes usando apt-get ou apt como segue:

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

E para as dependências opcionais do Qt WebEngine:

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

Em distribuições baseadas em rpm como Fedora e openSUSE as dependências podem ser instaladas usando dnf ou zypper assim:

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

E para as dependências opcionais do Qt WebEngine:

sudo dnf install qt6-qtwebengine-devel

Nota

A abordagem mais fácil seria instalar o pacote libqt-jami ou jami-libqt na sua distribuição GNU/Linux baseada em dpkg/deb e rpm, respetivamente, para obter todas as dependências necessárias do Qt 6 do Jami. E para ser o mais parecido possível com o que estamos a testar e a construir.