diff --git a/BUILDING.md b/BUILDING.md index 53a6598f..161f95c9 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -64,7 +64,7 @@ using the old name.) platforms might work too but never tried) - Recent enough Linux examples: Debian Bookworm; Fedora 36 or CentOS Stream 9; OpenSUSE Leap 15.4; Ubuntu Jammy Jellyfish. -- Qt 5 (either Open Source or Commercial), version 5.15.x or newer (Qt 6.4 +- Qt 5 (either Open Source or Commercial), version 5.15.x or newer (Qt 6.6 recommended as of this writing) - CMake 3.16 or newer (from your package management system or [the official website](https://cmake.org/download/)) @@ -79,16 +79,16 @@ using the old name.) - libQuotient dependendencies (see lib/README.md): - [Qt Keychain](https://github.com/frankosterfeld/qtkeychain) - libolm 3.2.5 or newer (the latest 3.x strongly recommended) - - OpenSSL (both 1.1.x and 3.x are known to work; the version Quaternion runs - with must be the same as the version used to build Quaternion - or - libQuotient, if libQuotient is built/installed separately). + - OpenSSL 3.x (the version Quaternion runs with must be the same as + the version used to build Quaternion - or libQuotient, if libQuotient is + built/installed separately). Note that in case of using externally built (i.e. not in-tree) libQuotient you cannot choose whether or not E2EE is enabled; this is defined by your libQuotient build configuration. Since 0.8, it is strongly recommended to build libQuotient with E2EE switched on, and manage E2EE via the library API (which -Quaternion already does, by now). If you build libQuotient from within -Quaternion build process then you're in full control how libQuotient is built. +Quaternion already does). If you build libQuotient from within Quaternion build +process then you're in full control how libQuotient is built. #### Linux Just install things from the list above using your preferred package manager. @@ -123,7 +123,7 @@ CMake at the installation locations for your libraries, e.g. by adding invocation, as follows: ```bash # if using in-tree libQuotient: -cmake .. -DQuotient_ENABLE_E2EE=1 -DCMAKE_PREFIX_PATH="$(brew --prefix qt);$(brew --prefix qtkeychain)$(brew --prefix libolm);$(brew --prefix openssl)" +cmake .. -DCMAKE_PREFIX_PATH="$(brew --prefix qt);$(brew --prefix qtkeychain)$(brew --prefix libolm);$(brew --prefix openssl)" # or otherwise: cmake .. -DCMAKE_PREFIX_PATH="/path/to/libQuotient;$(brew --prefix qt);$(brew --prefix qtkeychain)$(brew --prefix libolm);$(brew --prefix openssl)" ``` @@ -159,6 +159,17 @@ Noteworthy CMake variables that you can use: (see below on installing from sources). - `-DUSE_INTREE_LIBQMC=` - force using/not-using the in-tree copy of libQuotient sources (see "Getting the source code" above). +- `-DBUILD_WITH_QT6=` - selects the target Qt major version. By default + it's `ON` (Qt 6 is preferred); set it to `OFF` to build with Qt 5 (which is + generally discouraged; Quaternion 0.0.96 is the last release to support it). +- `-DQuotient_ENABLE_E2EE=` - for compiling with/without E2EE support. + Normally you don't need to touch this variable; setting it has no effect when + you compile with external libQuotient, and it is `ON` by default when building + Quaternion with in-tree libQuotient. The only reason you would want to turn it + off is when you can't provide the dependencies needed for E2EE: libolm and + OpenSSL. Even if E2EE support is switched on, you still have to explicitly + tick the E2EE box whenever you log in to each account; when E2EE support is + off there will be no E2EE box at all. ### Install In the root directory of the project sources: `cmake --build build_dir --target install`. diff --git a/README.md b/README.md index c0e79d85..eb7d0091 100644 --- a/README.md +++ b/README.md @@ -305,6 +305,18 @@ Quaternion uses libQuotient under the hood; some Quaternion problems are actually problems of libQuotient. If you haven't found your case below, check also the troubleshooting section in libQuotient README.md. +#### No E2EE support +If you don't see "Enable E2EE (BETA)" box in the login window, it means that +your Quaternion build does not support E2EE at all. Work with the packager if +you use a package, or build Quaternion with E2EE support (see +[BUILDING.md](./BUILDING.md)) to make it possible. + +#### Older messages don't get decrypted in E2EE rooms +Unfortunately, this is a limitation in the current libQuotient code: it doesn't +request older keys and therefore cannot decrypt older messages. Check +[issue 608](https://github.com/quotient-im/libQuotient/issues/608) for +the progress on this. + #### No messages in the timeline If Quaternion runs but you can't see any messages in the chat (though you can type them in) - you might not have Qt Quick libraries and/or plugins installed.