aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 19225079f34157a9ced33b56c85b0ab8d9b02c9c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
# KDeltaChat

KDeltaChat is a [Delta Chat](https://delta.chat/) client using [Kirigami](https://develop.kde.org/frameworks/kirigami/) framework.

# Dependencies

KDeltaChat build depends on
[libdeltachat](https://github.com/deltachat/deltachat-core-rust/),
Kirigami framework and several QML modules.

## libdeltachat

`libdeltachat` is not packaged for most distributions, so the easiest
way is to install it system-wide from the source.

Building `libdeltachat` requires Rust.
Install it from https://rustup.rs/ with
```
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain none
```

Then, clone the source, build `libdeltachat` and install it:
```
$ git clone https://github.com/deltachat/deltachat-core-rust.git
$ cd deltachat-core-rust
$ cmake -B build . -DCMAKE_INSTALL_PREFIX=/usr
$ cmake --build build
$ sudo cmake --install build
```

## Qt

Install QtQuick and required QML modules using your system package manager.

### Debian

Build time dependencies:
- `qtbase5-dev`
- `qtdeclarative5-dev` (for `/usr/lib/x86_64-linux-gnu/cmake/Qt5Quick/Qt5QuickConfig.cmake`)
- `qtwebengine5-dev`
- `cmake`
- `extra-cmake-modules`
- `pkg-config`

Runtime dependencies:
- `qml-module-qtquick-controls`
- `qml-module-qtquick-controls2`
- `qml-module-qtquick-dialogs` - used for account import file dialog
- `qml-module-qtquick-layouts`
- `qml-module-qtmultimedia`
- `qml-module-qtwebengine`
- `qt5-image-formats-plugins` - WebP support

### Arch Linux

Install Kirigami:
- `kirigami2`

Install FileDialog:
- `qt5-quickcontrols`

Install `extra-cmake-modules`(https://api.kde.org/ecm/manual/ecm-kde-modules.7.html):
- `extra-cmake-modules`

WebP support:
- `qt5-imageformats`

HTML view:
- `qt5-webengine`

Media player:
- `qt5-multimedia`

### OpenSUSE

OpenSUSE Leap 15.2:
```
# Install Rust core dependencies
zypper install -y curl
zypper install -y libopenssl-devel perl-FindBin-Real

# Install KDeltaChat dependencies
zypper install -y cmake gcc-c++
zypper install -y libqt5-qtbase-devel libQt5QuickControls2-devel libqt5-quickcontrols
```

## Kirigami

Install system package for Kirigami, such as `kirigami2-dev` on Debian
or Ubuntu, `kirigami2` on Arch Linux or `kirigami2-devel` on OpenSUSE.

# Building

In `kdeltachat` directory, run:
```
cmake -B build .
cmake --build build
```

# Running

Run `build/kdeltachat`. Import existing account from backup or setup a
new one.

# Using kdesrc-build

If your distribution does not package recent enough versions of the
Kirigami framework, or you don't want to install `libdeltachat`
system-wide, you can use [kdesrc-build](https://kdesrc-build.kde.org/).

Install it with:
```
mkdir -p ~/kde/src
cd ~/kde/src
git clone https://invent.kde.org/sdk/kdesrc-build.git
cd kdesrc-build
./kdesrc-build-setup
./kdesrc-build kirigami
```

Run
```
source ~/.config/kde-env-master.sh
```
in your shell to enter `kdesrc-build` environment.

To build `libdeltachat` with `kdesrc-build`,
add module into `~/.kdesrc-buildrc` as follows
```
module deltachat
   repository https://github.com/deltachat/deltachat-core-rust.git
end module
```
Then build `libdeltachat` with `kdesrc-build deltachat`.

Build Kirigami with `kdesrc-build kirigami`.

Then build `kdeltachat` as described above.

# Troubleshooting

## Button icons are replaced with black rectangles

On Debian/Ubuntu, run `apt purge libqt5quick5-gles`. When `apt` offers
to install `libqt5quick5` as a replacement, agree.

Debian bugreport: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=976389

## Buttons have no icons

If you are not using KDE or another desktop environment with Qt 5 integration,
you can install [qt5ct](https://sourceforge.net/projects/qt5ct/), configure
icon theme for Qt 5 there and set `QT_QPA_PLATFORMTHEME=qt5ct` or
`XDG_CURRENT_DESKTOP=qt5ct` environment variable.

Setting `XDG_CURRENT_DESKTOP=GNOME` environment variable has also been reported
to help in this case. This results in usage of Adwaita icon theme.

# License

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

In addition, as a special exception, the author of this program gives
permission to link the code of its release with the OpenSSL
project's "OpenSSL" library (or with modified versions of it that
use the same license as the "OpenSSL" library), and distribute the
linked executables. You must obey the GNU General Public License in
all respects for all of the code used other than "OpenSSL". If you
modify this file, you may extend this exception to your version of
the file, but you are not obligated to do so.  If you do not wish to
do so, delete this exception statement from your version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.