build: change filetype from rst to md
Change-Id: I79723f5b8f1c5b299f46889a76c493a9ae21d1a7
This commit is contained in:
parent
18cacf1865
commit
1e28ad93d9
|
@ -0,0 +1,174 @@
|
|||
# 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.
|
||||
|
||||
[//]: # (TODO: Distinguish between build time and runtime dependencies?)
|
||||
[//]: # (TODO: Provide separate instructions for dnf and zypper?)
|
||||
|
||||
|
||||
## 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++)
|
||||
- [GNU Make](https://www.gnu.org/software/make/manual/)
|
||||
- [GNU gettext](https://www.gnu.org/software/gettext/)
|
||||
- [GNU Libtool](https://www.gnu.org/software/libtool/)
|
||||
- [GnuTLS](https://gnutls.org/)
|
||||
- [Argon2](https://en.wikipedia.org/wiki/Argon2)
|
||||
- [asio](https://en.wikipedia.org/wiki/Audio_Stream_Input/Output)
|
||||
- [dbus](https://www.freedesktop.org/wiki/Software/dbus/)
|
||||
- dbus-c++
|
||||
- [libupnp](https://github.com/pupnp/pupnp)
|
||||
- [libssl](https://www.openssl.org/)
|
||||
- [libpulse](https://gitlab.freedesktop.org/pulseaudio/pulseaudio)
|
||||
- [libasound2](https://github.com/pop-os/libasound2)
|
||||
- [libexpat](https://libexpat.github.io/)
|
||||
- [pcre3](https://www.pcre.org/)
|
||||
- [yaml-cpp](https://github.com/jbeder/yaml-cpp)
|
||||
- [libXext](https://gitlab.freedesktop.org/xorg/lib/libxext)
|
||||
- libxfixes
|
||||
- [speex](https://www.speex.org/)
|
||||
- speexdsp
|
||||
- uuid
|
||||
- [FFmpeg](https://ffmpeg.org/) (libavcodec, libavdevice, libswscale, and libavutil)
|
||||
- [opus](https://opus-codec.org/)
|
||||
- [udev](https://en.wikipedia.org/wiki/Udev)
|
||||
- [fmt](https://github.com/fmtlib/fmt)
|
||||
- gsm
|
||||
- [pjproject](https://www.pjsip.org/) (custom Jami fork required)
|
||||
- [jsoncpp](https://github.com/open-source-parsers/jsoncpp)
|
||||
- [libarchive](https://libarchive.org/)
|
||||
- [libnatpmp](https://github.com/miniupnp/libnatpmp)
|
||||
- [libva](https://github.com/intel/libva)
|
||||
- [libcrypto++](https://github.com/weidai11/cryptopp)
|
||||
- [libvdpau](https://en.wikipedia.org/wiki/VDPAU)
|
||||
- [libsecp256k1](https://github.com/bitcoin-core/secp256k1)
|
||||
- [libgit2](https://libgit2.org/)
|
||||
- [http-parser](https://pub.dev/packages/http_parser)
|
||||
- [nasm](https://www.nasm.us/)
|
||||
- [yasm](https://yasm.tortall.net/)
|
||||
- [Nettle](https://www.lysator.liu.se/~nisse/nettle/)
|
||||
- [OpenDHT](https://github.com/savoirfairelinux/opendht)
|
||||
- [RESTinio](https://github.com/Stiffstream/restinio)
|
||||
- [webrtc-audio-processing](https://github.com/tonarino/webrtc-audio-processing)
|
||||
- [zlib](https://zlib.net/)
|
||||
|
||||
On dpkg/Debian-based GNU/Linux distributions
|
||||
(such as [Debian](https://www.debian.org/), [Trisquel](https://trisquel.info/), [Ubuntu](https://ubuntu.com/), and [Linux Mint](https://www.linuxmint.com/)),
|
||||
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](https://fedoraproject.org/) and [openSUSE](https://www.opensuse.org/)),
|
||||
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](https://dl.jami.net/); and
|
||||
* The `build.py` script, on the `jami-project` repository.
|
||||
|
||||
## jami-client-qt
|
||||
|
||||
> ***Note:***
|
||||
> For complete instructions on how to build the Qt Desktop client,
|
||||
> please refer to the [INSTALL.md](https://git.jami.net/savoirfairelinux/jami-client-qt/-/blob/master/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](https://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:
|
||||
1. Add the respective [dl.jami.net](https://dl.jami.net/) repository by following the instructions on the [Download Jami for GNU/Linux](https://jami.net/download-jami-linux) webpage; and
|
||||
2. Install the package using the Terminal command `sudo apt-get install libqt-jami` (for dpkg/Debian-based GNU/Linux distributions) or `sudo 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.
|
|
@ -1,180 +0,0 @@
|
|||
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.
|
|
@ -0,0 +1,14 @@
|
|||
# Build manual
|
||||
|
||||
The Jami build manual documents the various aspects of building Jami from source.
|
||||
It includes how to package Jami for various systems.
|
||||
|
||||
This manual is for anyone looking to build Jami from source to:
|
||||
* Hack on Jami and contribute to its development;
|
||||
* Test new and unreleased features; and
|
||||
* Package or maintain a Jami package in a GNU/Linux distribution repository.
|
||||
|
||||
## Sections
|
||||
|
||||
* [Introduction](./introduction.html)
|
||||
* [Dependencies](./dependencies.html)
|
|
@ -1,19 +0,0 @@
|
|||
############
|
||||
Build manual
|
||||
############
|
||||
|
||||
The Jami build manual documents the various aspects of building Jami
|
||||
from source, as well as packaging Jami for various package systems.
|
||||
This manual is aimed at those looking to build Jami from source -- for
|
||||
instance to hack on Jami and contribute to its development, or to try
|
||||
recently-added unreleased features -- as well as package maintainers
|
||||
and contributors to GNU/Linux distributions looking to package or help
|
||||
maintain a Jami package for their distribution's repositories.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
introduction
|
||||
dependencies
|
||||
building
|
||||
packaging
|
|
@ -0,0 +1,27 @@
|
|||
# Introduction
|
||||
|
||||
A Jami installation typically has two main components:
|
||||
|
||||
1. the Jami daemon/library, and
|
||||
2. the client (i.e., front-end or user interface).
|
||||
|
||||
To use Jami, the Jami daemon/library is always needed, since it is the core of Jami and contains all of the connectivity, communication, cryptography, and media logic.
|
||||
It uses libraries such as OpenDHT, PJSIP, GnuTLS, and FFmpeg and has several APIs, including DBus, libwrap (shared library), JNI, and REST.
|
||||
These APIs make it possible to interact with Jami without going through a graphical user interface (especially useful for using Jami in a headless/server setting), build automation tools/scripts around Jami, and build custom user interfaces for Jami.
|
||||
|
||||
The client (i.e., user interface) depends on the operating system and/or platform being used.
|
||||
For example, on Android/Replicant systems this would be [jami-client-android](https://git.jami.net/savoirfairelinux/jami-client-android),
|
||||
on iOS systems this would be [jami-client-ios](https://git.jami.net/savoirfairelinux/jami-client-ios),
|
||||
and on GNU/Linux, macOS, and Windows this would be [jami-client-qt](https://git.jami.net/savoirfairelinux/jami-client-qt).
|
||||
There also used to be a GTK-based jami-client-gnome for GNU/Linux and a jami-client-macos for macOS, both of which were deprecated in favor of the newer cross-platform jami-client-qt based on the Qt framework.
|
||||
|
||||
On GNU/Linux systems, jami-client-qt can be configured and built to use one of two main APIs for communicating with the Jami daemon/library:
|
||||
|
||||
1. libwrap: When jami-client-qt is configured to use libwrap (which is always the case on macOS and Windows), it will use Jami daemon's shared library API, and there will be no separate daemon process.
|
||||
This has the advantage of things being somewhat more efficient than with the DBus API mentioned below, in exchange for less flexibility (not being able to interact with Jami via DBus when using libwrap).
|
||||
|
||||
The Jami packages distributed via dl.jami.net are currently all configured to use the libwrap API.
|
||||
|
||||
2. DBus: When jami-client-qt is configured to use DBus, it will communicate with the Jami daemon via its DBus API, and the daemon will be running as a separate process by itself.
|
||||
This is greatly flexible for communicating with and controlling the daemon through other means (for example, small utility scripts) simultaneously while the Qt-based Jami client also uses and interacts with it.
|
||||
The associated cost of this added flexibility is the overhead of using DBus.
|
|
@ -1,48 +0,0 @@
|
|||
Introduction
|
||||
============
|
||||
|
||||
An installation of Jami typically has two main components:
|
||||
|
||||
1. the Jami daemon/library, and
|
||||
2. the client (i.e. front-end or user interface).
|
||||
|
||||
To use Jami, the Jami daemon/library is always needed, since it is
|
||||
the core of Jami and contains all of the connectivity, communication,
|
||||
cryptography, and media logic. It uses libraries such as OpenDHT,
|
||||
PJSIP, GnuTLS, and FFmpeg, and has several APIs including DBus,
|
||||
libwrap (shared library), JNI, and REST. These APIs make it possible
|
||||
to interact with Jami without going through a graphical user interface
|
||||
(especially useful for using Jami in a headless/server setting), build
|
||||
automation tools/scripts around Jami, and build custom user interfaces
|
||||
for Jami.
|
||||
|
||||
The client (i.e. user interface) may vary depending on the operating
|
||||
system and/or platform being used. For example, on Android/Replicant
|
||||
systems this would be jami-client-android, and on GNU/Linux, Windows,
|
||||
and macOS this would be the jami-client-qt. There also used to be a
|
||||
GTK-based jami-client-gnome for GNU/Linux and a jami-client-macos for
|
||||
macOS, both of which were deprecated in favour of the newer
|
||||
cross-platform jami-client-qt based on the Qt framework.
|
||||
|
||||
On GNU/Linux systems, jami-client-qt can be configured and built to
|
||||
use one of two main APIs for communicating with the Jami
|
||||
daemon/library:
|
||||
|
||||
1. libwrap: when jami-client-qt is configured to use libwrap (which is
|
||||
always the case on macOS and Windows), it will use Jami daemon's
|
||||
shared library API, and there will be no separate daemon process.
|
||||
This has the advantage of things being somewhat more efficient than
|
||||
with the DBus API mentioned below, in exchange for less flexibility
|
||||
(not being able to interact with Jami via DBus when using libwrap).
|
||||
|
||||
The Jami packages distributed via dl.jami.net are currently all
|
||||
configured to use the libwrap API.
|
||||
|
||||
2. DBus: when jami-client-qt is configured to use DBus, it will
|
||||
communicate with the Jami daemon via its DBus API, and the daemon
|
||||
will be running as a separate process by itself. This is greatly
|
||||
flexible for communicating with and controlling the daemon through
|
||||
other means (for example small utility scripts) simultaneously
|
||||
while the Qt-based Jami client also uses and interacts with it.
|
||||
The associated cost of this added flexibility is the overhead of
|
||||
using DBus.
|
Loading…
Reference in New Issue