aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 1775ace9397141d7113c0bfde34d60c186bcefa5 (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
# KDeltaChat

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

# Dependencies

KDeltaChat build depends on Rust for core building, Kirigami framework and several QML modules.

## Rust

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

Clone [`deltachat-core-rust` repository](https://github.com/deltachat/deltachat-core-rust/) alongside
`kdeltachat` repository, for example into `~/src/deltachat-core-rust/` if `kdeltachat` is checked out at `~/src/kdeltachat`:
```
git clone https://github.com/deltachat/deltachat-core-rust.git
```

## Kirigami and Qt

Install Kirigami and required QML modules from your distribution repositories.

### Debian

Build time dependencies:
- `qtdeclarative5-dev` (for `/usr/lib/x86_64-linux-gnu/cmake/Qt5Quick/Qt5QuickConfig.cmake`)
- `kirigami2-dev`

Runtime dependencies:
- `qml-module-qtquick-controls`
- `qml-module-qtquick-dialogs` - used for account import file dialog
- `qml-module-qtquick-layouts`

### Arch Linux

Install FileDialog:
- `pacman -S qt5-quickcontrols`

Install kirigami2:
- `pacman -S kirigami2`

### 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 kirigami2-devel libqt5-quickcontrols
```

### Building with upstream Kirigami

If you want to use upstream Kirigami, for example to avoid bugs fixed
upstream but not in the packaged version, 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
```

Then, run
```
source ~/.config/kde-env-master.sh
```
in your shell and rebuild the app, starting with a complete removal of
the `build` directory.

The source of Kirigami will be available in `~/kde/src/kirigami` then.

# Building

In `kdeltachat` directory, run:
```
mkdir build
cd build
cmake ..
make
```

This will build `deltachat-core-rust` and install core library into
build directory automatically.

# Running

Run `./kdeltachat`. Import existing account from backup or setup a
new one. Start IO in the main menu to connect.

# 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/>.