Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
jami-docs
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
savoirfairelinux
jami-docs
Commits
b26be7a9
Commit
b26be7a9
authored
2 years ago
by
Amin Bandali
Browse files
Options
Downloads
Patches
Plain Diff
build: add dependencies page
Change-Id: I6220d111eb2826428462ba68c42fa9836c093834
parent
19861c70
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
build/dependencies.rst
+177
-0
177 additions, 0 deletions
build/dependencies.rst
with
177 additions
and
0 deletions
build/dependencies.rst
0 → 100644
+
177
−
0
View file @
b26be7a9
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)
- GNU Compiler Collection's C++ compiler (GCC's 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
--------------
Building the Jami Qt 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:: Given the newness of Qt 6, it may not be fully (or at all)
packaged in the official repositories of your GNU/Linux
distribution of choice yet. In that case, 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.
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment