Desktop Qt based XMPP messenger
Go to file
2024-12-14 18:08:50 +02:00
.gitea/workflows ci 2024-02-04 13:51:16 -03:00
cmake refactorng 2023-11-14 20:23:39 -03:00
core Fix build for qt 5, removed some debug messages 2024-12-14 18:08:50 +02:00
external qt6 build 2024-12-14 01:53:04 +02:00
main find boos cmake new policy 2024-10-27 20:02:34 +02:00
packaging Fix build for qt 5, removed some debug messages 2024-12-14 18:08:50 +02:00
plugins qt6 build 2024-12-14 01:53:04 +02:00
resources find boos cmake new policy 2024-10-27 20:02:34 +02:00
shared qt6 build 2024-12-14 01:53:04 +02:00
translations Refactoring, account destruction fix, some thoughts about where to store contact settings (omemo enable status for instance) 2023-03-16 22:38:05 +03:00
ui Fix build for qt 5, removed some debug messages 2024-12-14 18:08:50 +02:00
.gitmodules transition to LMDBAL 2023-03-27 21:45:29 +03:00
.uncrustify.cfg trying linter settings 2023-11-17 21:52:33 -03:00
appveyor.yml fix ci macos matrix item 2021-10-06 18:50:00 +08:00
CHANGELOG.md Fix build for qt 5, removed some debug messages 2024-12-14 18:08:50 +02:00
CMakeLists.txt Fix build for qt 5, removed some debug messages 2024-12-14 18:08:50 +02:00
LICENSE.md License is now can be viewed locally, some organization name packaging issies 2022-04-05 22:00:56 +03:00
README.md Fix build for qt 5, removed some debug messages 2024-12-14 18:08:50 +02:00

Squawk - a compact XMPP desktop messenger

AUR license AUR version Liberapay patrons

Squawk screenshot

Prerequisites

  • QT 5 or 6
  • CMake 3.10 or higher
  • qxmpp 1.1.0 or higher
  • LMDBAL (my own library for lmdb)
  • KDE Frameworks: kwallet (optional)
  • KDE Frameworks: KIO (optional)
  • KDE Frameworks: KConfig (optional)
  • KDE Frameworks: KConfigWidgets (optional)
  • Boost (just one little hpp from there)
  • Imagemagick (for compilation, to rasterize an SVG logo)

Getting

The easiest way to get the Squawk is to install it from AUR (if you use Archlinux like distribution)

Here is the link for the AUR package

You can also install it from console if you use some AUR wrapper. Here what it's going to look like with pacaur

$ pacaur -S squawk

Building

You can also the repo and build it from source

Squawk requires Qt with SSL enabled. It uses CMake as build system.

Please check the prerequisites and install them before installation.


There are several ways to build Squawk. The one you need depends on whether you have qxmpp and lmdbal installed in your system.

Building with system dependencies

This is the easiest way but it requires you to have qxmpp and lmdbal installed as system packages. Here is what you do:

$ git clone https://git.macaw.me/blue/squawk
$ cd squawk
$ mkdir build
$ cd build
$ cmake ..
$ cmake --build .

Building with bundled qxmpp

If you don't have any of qxmpp or lmdbal (or both) installed the process is abit mor complicated. On the configuration stage you need to enable one or both entries in the square brackets, depending on what package your system lacks.

Here is what you do

$ git clone --recurse-submodules https://git.macaw.me/blue/squawk
$ cd squawk
$ mkdir build
$ cd build
$ cmake .. [-D SYSTEM_QXMPP=False] [-D SYSTEM_LMDBAL=False]
$ cmake --build .

For Windows (Mingw-w64) build

Building for windows is not mainteined, but was possible in the past, you can try, but it probably won't work

You need Qt for mingw64 (MinGW 64-bit) platform when installing Qt.

The best way to acquire library lmdb and boost is through Msys2.

First install Msys2, and then install mingw-w64-x86_64-lmdb and mingw-w64-x86_64-boost by pacman.

Then you need to provide the cmake cache entry when calling cmake for configuration:

<Msys2 Mingw64 Root Directory>: e.g. C:/msys64/mingw64.

$ git clone --recurse-submodules https://git.macaw.me/blue/squawk
$ cd squawk
$ mkdir build
$ cd build
$ cmake .. -D SYSTEM_QXMPP=False -D SYSTEM_LMDBAL=False -D LMDB_ROOT_DIR:PATH=<Msys2 Mingw64 Root Directory> -D BOOST_ROOT:PATH=<Msys2 Mingw64 Root Directory>
$ cmake --build .

You can always refer to appveyor.yml to see how AppVeyor build squawk for windows.

List of keys

Here is the list of keys you can pass to configuration phase of cmake ..:

  • CMAKE_BUILD_TYPE - Debug just builds showing all warnings, Release builds with no warnings and applies optimizations (default is Debug)
  • SYSTEM_QXMPP - True tries to link against qxmpp installed in the system, False builds bundled qxmpp library (default is True)
  • SYSTEM_LMDBAL - True tries to link against LMDABL installed in the system, False builds bundled LMDBAL library (default is True)
  • WITH_KWALLET - True builds the KWallet capability module if KWallet is installed and if not goes to False. False disables KWallet support (default is True)
  • WITH_KIO - True builds the KIO capability module if KIO is installed and if not goes to False. False disables KIO support (default is True)
  • WITH_KCONFIG - True builds the KConfig and KConfigWidgets capability module if such packages are installed and if not goes to False. False disables KConfig and KConfigWidgets support (default is True)
  • WITH_OMEMO - True builds the OMEMO encryption, requires qxmpp of version >= 1.5.0 built with OMEMO support. False disables OMEMO support (default is False)
  • QT_VERSION_MAJOR - 6 builds against Qt 6, 5 builds against Qt 6, corresponding version of lmdbal and qxmpp should be installed. By default it picks your system default Qt

License

This project is licensed under the GPLv3 License - see the LICENSE.md file for details