Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
INSTALL 5.31 KiB
Installation Instructions
*************************

Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
Software Foundation, Inc.

This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.

## Disclaimer

Because the LRC is multi-platforms and supporting macOS, we need a recent version of Qt to do rendering with Metal. So, Qt 6.2 is necessary.
This version is generally not packaged on a lot of platforms, and to control available plugins and such, we have our own Qt packaged (generated by https://review.jami.net/jami-project and available on https://jami.net on the distributions we support).
So, you will need to get Qt 6.2 first. For this, there is 3 methods:

### Qt from https://jami.net (recommended)

If your distribution is supported, we provide a Qt package (`libqt-jami`) on our repo. Follow instructions https://jami.net/download-jami-linux/ (but instead installing `jami` install `libqt-jami`).
The files will be installed in `/usr/lib/libqt-jami`.

### Qt from your distribution

If Qt 6.2 is available, you can use the packages from your distribution:

It should be (For now qt5 only is packaged by distributions, so names can change).

#### Dependencies, Debian based

```
sudo apt-get install cmake make doxygen g++ gettext libnotify-dev pandoc nasm libqrencode-dev \
                     libnotify-dev libnm-dev \
                     qtbase6-dev \
                     qtmultimedia6-dev libqt6svg6-dev qtwebengine6-dev qtdeclarative6-dev \
                     qtquickcontrols2-6-dev qml-module-qtquick2 qml-module-qtquick-controls \
                     qml-module-qtquick-controls2 qml-module-qtquick-dialogs \
                     qml-module-qtquick-layouts qml-module-qtquick-privatewidgets \
                     qml-module-qtquick-shapes qml-module-qtquick-window2 \
                     qml-module-qtquick-templates2 qml-module-qt-labs-platform \
                     qml-module-qtwebengine qml-module-qtwebchannel \
                     qml-module-qt-labs-qmlmodels
```

#### Dependencies, Fedora based

```
sudo dnf install qt6-qtsvg-devel qt6-qtwebengine-devel qt6-qtmultimedia-devel qt6-qtdeclarative-devel qt6-qtquickcontrols2-devel qt6-qtquickcontrols qrencode-devel NetworkManager-libnm-devel
```

### Build Qt from sources

https://www.qt.io/product/qt6


Basic Installation
==================

These are generic installation instructions.

To install the appplication, type the following commands in a console, while in the root directory of this application:

	mkdir -p build
	cd build
	cmake ..
        	The following options are often useful to append to the cmake line:
                -DRING_BUILD_DIR=<daemon install location>
                -DRING_XML_INTERFACES_DIR=<daemon dbus interface definitions directory>
                -DCMAKE_INSTALL_PREFIX=<install location>
                -DCMAKE_BUILD_TYPE=<Debug to compile with debug symbols>
                -DENABLE_VIDEO=<False to disable video support>
	make -jx # where x is the number of core you have
	make install

(e.g. `-DCMAKE_PREFIX_PATH=/usr/lib/libqt-jami` if you use Qt from jami.net)

Explanation
===========

This script will configure and prepare the compilation and installation of the program and correctly link it against Ring daemon.

All needed files will be built in "build" directory.
So you have to go to this directory:

	cd build

Then execute the Makefile, to compile the application (src, doc...)

	make

Then install it all using:

	make install

You have to use "sudo" to be able to install the program in a protected directory (which is the case by default and most of the time).
Therefore it will ask for your system password.

OS X Install
============

# Install necessary tools:
brew install cmake
brew install qt6
export CMAKE_PREFIX_PATH=<path_to_qt6>

hint: default install location with HomeBrew is /usr/local/Cellar/qt6

# First make sure you have built ring daemon for OS X.

mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=<install_dir_of_daemon> [-DCMAKE_BUILD_TYPE=Debug for compiling with debug symbols]
make install

You can now link and build the OSX client with Ring daemon and LRC library

Testing
=======

Tests are written in the `test` directory.
To run tests, you need to rebuild the application with these commands (from the root directory of the project):

	mkdir -p build-test
	cd build-test
	cmake .. -DENABLE_TEST=true
        	The following options are often useful to append to the cmake line:
                -DRING_BUILD_DIR=<daemon install location>
                -DRING_XML_INTERFACES_DIR=<daemon dbus interface definitions directory>
                -DCMAKE_INSTALL_PREFIX=<install location>
                -DCMAKE_BUILD_TYPE=<Debug to compile with debug symbols>
                -DENABLE_VIDEO=<False to disable video support>
	make -jx # where x is the number of core you have
	make test # or ./LRCTester for more verbosity.

In the `test` directory you can also find a `mocks` folder used to simulate the ring daemon.
`CppUnit` is the testing library used for this project.


Internationalization
====================

To regenerate strings for translations we use lupdate (within root of the project)
lupdate ./src/ -source-language en -ts translations/lrc_en.ts

Hint: On OSX lupdate is installed with Qt in /usr/local/Cellar/qt6/6.2.0/bin/ when installed with HomeBrew