README.md 3.45 KB
Newer Older
Philippe Gorley's avatar
Philippe Gorley committed
1
# Jami client Gnome
2

Philippe Gorley's avatar
Philippe Gorley committed
3
[![Build Status](https://jenkins.jami.net/buildStatus/icon?job=client-gnome)](https://jenkins.jami.net/job/client-gnome/)
4

Philippe Gorley's avatar
Philippe Gorley committed
5 6
Jami-client-gnome is a Jami client written in GTK+3. It uses libRingClient to
communicate with the Jami daemon and for all of the underlying models and their
Vladimir Stoiakin's avatar
Vladimir Stoiakin committed
7
logic. Ideally Jami-client-gnome should only contain UI related code and any
8 9
wrappers necessary for interacting with libRingClient.

Vladimir Stoiakin's avatar
Vladimir Stoiakin committed
10
Packages for Debian/Ubuntu/Fedora can be found at https://jami.net/
Stepan Salenikovich's avatar
Stepan Salenikovich committed
11

Vladimir Stoiakin's avatar
Vladimir Stoiakin committed
12
More info about the Jami project and the clients can be found on our Gitlab's instance:
Philippe Gorley's avatar
Philippe Gorley committed
13
https://git.jami.net/
14

Vladimir Stoiakin's avatar
Vladimir Stoiakin committed
15
GNU Jami welcomes contribution from everyone. See [CONTRIBUTING.md](CONTRIBUTING.md) for help getting started.
Stepan Salenikovich's avatar
Stepan Salenikovich committed
16

17
# Setting up your environment
Stepan Salenikovich's avatar
Stepan Salenikovich committed
18

19
## Requirements
20

Philippe Gorley's avatar
Philippe Gorley committed
21
- Jami daemon
Stepan Salenikovich's avatar
Stepan Salenikovich committed
22
- libRingClient
23 24
- GTK+3 (3.10 or higher)
- Qt5 Core
Stepan Salenikovich's avatar
Stepan Salenikovich committed
25 26
- X11
- gnome-icon-theme-symbolic (certain icons are used which other themes might be missing)
Vladimir Stoiakin's avatar
Vladimir Stoiakin committed
27
- A font with symbols U+1F4DE and U+1F57D (used in some messages)
Stepan Salenikovich's avatar
Stepan Salenikovich committed
28
- libnotify (optional, if you wish to receive desktop notifications of incoming calls, etc)
29
- gettext (optional to compile translations)
Stepan Salenikovich's avatar
Stepan Salenikovich committed
30 31

On Debian/Ubuntu these can be installed by:
32
```bash
Vladimir Stoiakin's avatar
Vladimir Stoiakin committed
33
sudo apt-get install g++ cmake libgtk-3-dev qtbase5-dev libclutter-gtk-1.0-dev gnome-icon-theme-symbolic libnotify-dev gettext
34
```
Stepan Salenikovich's avatar
Stepan Salenikovich committed
35 36

On Fedora:
37
```bash
Vladimir Stoiakin's avatar
Vladimir Stoiakin committed
38
sudo dnf install gcc-c++ cmake gtk3-devel qt5-qtbase-devel clutter-gtk-devel gnome-icon-theme-symbolic libnotify-devel gettext
39
```
Stepan Salenikovich's avatar
Stepan Salenikovich committed
40

Jérôme Oufella's avatar
Jérôme Oufella committed
41
The build instructions for the daemon and libRingClient can be found in their
42 43
respective repositories. See Gerrit:
 - https://gerrit-ring.savoirfairelinux.com/#/admin/projects/
44

Stepan Salenikovich's avatar
Stepan Salenikovich committed
45

46
## Compiling
47 48

In the project root dir:
49 50 51 52 53 54
```bash
mkdir build
cd build
cmake ..
make
```
55

56
You can then simply run `./jami-gnome` from the build directory
Stepan Salenikovich's avatar
Stepan Salenikovich committed
57

58
## Installing
Stepan Salenikovich's avatar
Stepan Salenikovich committed
59 60

If you're building the client for use (rather than testing of packaging), it is
61 62
recommended that you install it on your system, eg: in `/usr`, `/usr/local`, or
`/opt`, depending on your distro's preference to get full functionality such as
Stepan Salenikovich's avatar
Stepan Salenikovich committed
63 64
desktop integration. In this case you should perform a 'make install' after
building the client.
Stepan Salenikovich's avatar
Stepan Salenikovich committed
65 66


Philippe Gorley's avatar
Philippe Gorley committed
67
## Building without installing Jami daemon and libRingClient
Stepan Salenikovich's avatar
Stepan Salenikovich committed
68

Jérôme Oufella's avatar
Jérôme Oufella committed
69
It is possible to build ring-client-gnome without installing the daemon and
70
libRingClient on your system (eg: in `/usr` or `/usr/local`):
Stepan Salenikovich's avatar
Stepan Salenikovich committed
71 72 73 74

1. build the daemon
2. when building libRingClient, specify the location of the daemon lib in the
   cmake options with -DRING_BUILD_DIR=, eg:
75
   `-DRING_BUILD_DIR=/home/user/ring/daemon/src`
Stepan Salenikovich's avatar
Stepan Salenikovich committed
76 77 78
3. to get the proper headers, we still need to 'make install' libRingClient, but
   we don't have to install it in /usr, so just specify another location for the
   install prefix in the cmake options, eg:
79
   `-DCMAKE_INSTALL_PREFIX=/home/user/ringinstall`
Stepan Salenikovich's avatar
Stepan Salenikovich committed
80
4. now compile libRingClient and do 'make install', everything will be installed
Jérôme Oufella's avatar
Jérôme Oufella committed
81
   in the directory specified by the prefix
82 83
4. now we just have to point the client to the libRingClient cmake module during
   the configuration:
84
   `-DLibRingClient_DIR=/home/user/ringinstall/lib/cmake/LibRingClient`
Stepan Salenikovich's avatar
Stepan Salenikovich committed
85 86


87
## Debugging
Stepan Salenikovich's avatar
Stepan Salenikovich committed
88 89 90

For now, the build type of the client is "Debug" by default, however it is
useful to also have the debug symbols of libRingClient. To do this, specify this
91
when compiling libRingClient with `-DCMAKE_BUILD_TYPE=Debug` in the cmake
Stepan Salenikovich's avatar
Stepan Salenikovich committed
92
options.
93 94 95 96 97 98 99

## Generating marshals.*

```
glib-genmarshal --header marshals.list > marshals.h
glib-genmarshal --include-header=marshals.h --body marshals.list > marshals.cpp
```