kristall/BUILDING.md

5.7 KiB

Building

Here you can find build instructions for Kristall.

Requirements

  • Qt 5.9 or higher with widgets and network modules

Build

*nix

There's a small Makefile provided that does all necessary steps and creates a build directory, then copies the build artifact from the build directory. Just do make in the root directory, it should work.

Or you can use the usual Qt5 build process:

mkdir build
cd build
qmake ../src/kristall.pro
make

Notes for OpenBSD

  • It seems like Qt wants libzstd.so.3.1 instead of libzstd.so.3.2. Just symlink that file into the build directory
  • Use make and not gmake to build the project.

Notes on FreeBSD

  • Kristall can't be used with LibreSSL, but requires OpenSSL (probably because of Qt)
  • Required packages
    • qt5
    • make
    • git - optional, for cloning from CLI
  • Additionally, the following must be exported for qmake: export QMAKESPEC=freebsd-clang

Notes for Ubuntu and Debian

  • Supported Versions:

    • Ubuntu: 18.04, 20.04
    • Debian: 10, 11, 12 (TBA)
  • Unsupported Versions

    • Ubuntu: 16.04
    • Debian: 9
  • Required packages

    • qt5-default
    • qt5-qmake
    • qttools5-dev-tools
    • qtmultimedia5-dev
    • libqt5svg5-dev
    • libssl-dev
    • make
    • g++
  • Additional packages (to use dynamic libraries)

    • libcmark-dev
    • libgumbo-dev

Notes for Fedora 32 (and probably other recent versions)

In the small Makefile mentioned above, comment out the line:

  • QMAKE_COMMAND := qmake

And uncomment the line:

  • # QMAKE_COMMAND := /usr/bin/qmake-qt5

This is because Fedora has a different naming scheme for the qmake executable.

  • Key required packages
    • qt5-qtbase
    • qt5-qtbase-devel
    • qt5-qtmultimedia-devel
    • qt5-qtsvg-devel
    • qt5-linguist
    • ccache-3.7.7-1.fc32.x86_64
    • make
    • openssl-devel
    • And the packages they depend on

Notes for Manjaro/Arch

  • Required packages
    • qt5-base
    • qt5-multimedia
    • qt5-svg
    • openssl or libressl
    • qt5-tools

Notes on void linux

  • set env variable QT_SELECT=5

Notes on alpine linux

  • Required packages for 0.3
    • qt5-qtbase-dev
    • qtchooser
    • qt5-qtsvg-dev
    • qt5-qtmultimedia-dev
  • Additionally for current state (38b353e)
    • qt5-qttools-dev
    • bash

Windows (MinGW)

Install Qt via the Qt installer. Install the following components:

Required:

  • Qt/Qt 5.15.0/MinGW 8.1.0 64-bit
  • Qt/Developer and Designer Tools/MinGW 8.1.0 64 bit
  • Qt/Developer and Designer Tools/OpenSSL 64-bit binaries Optional:
  • Qt/Developer and Designer Tools/Qt Creator 4.12.3 CDB Debugger Support
  • Qt/Developer and Designer Tools/Debugging Tools for Windows
  • Qt/Developer and Designer Tools/Qt Creator 4.12.3 CDB Debugger Support
  • Qt/Developer and Designer Tools/OpenSSL source code

If you didn't istall Qt to C:\Qt, you have to adjust the paths in src/kristall.pro for the win32-g++ adjustments to the path you used.

Then open src/kristall.pro with Qt creator to compile the project. Alternatively you can use ci\build-and-deploy.bat, but note that this script tries to deploy the file to random-projects.net, so this will fail in the end.

Troubleshouting: If you get an error message that MSVCR100.dll is missing, you may need to install the Microsoft C++ Runtime.

Troubleshouting: QtCreator says the exe crashed when starting. This happens when you are missing the OpenSSL dlls. Copy them from C:\Qt\Tools\OpenSSL\Win_x64\bin\libcrypto-1_1-x64.dll and C:\Qt\Tools\OpenSSL\Win_x64\bin\libssl-1_1-x64.dll to the debug/release folder of your build. Then the exe should be starting.

Windows MSVC (not up to date)

Compile OpenSSL with the following steps:

  • Install Perl (either ActiveState or Strawberry)
  • Install NASM
  • Add both to your PATH
  • Clone OpenSSL
  • Open a Visual Studio Developer Command Prompt (or a command prompt that has ran vcvarsall.bat). You will need Administrator privileges for the install step
  • In the OpenSSL root directory, run perl Configure VC-WIN32 if compiling for 32 bit, perl Configure VC-WIN64A for 64 bit
  • Run nmake
  • Run nmake install to install OpenSSL in C:\Program Files\OpenSSL

Use QtCreator to build ./src/kristall.pro with default settings.

macOS

  1. Run brew install qt@5 openssl to install the qt and openssl packages with Homebrew.
  2. Run brew link qt5 to enable the use of qmake
  3. Run make build/kristall to build kristall.app in the build directory.

Haiku

  1. Install the following packages with pkgman:
    • qt5
    • qt5_devel
    • qt5_tools
    • libiconv_devel
    • openssl_devel (should be preinstalled)
  2. Use make to build the executable

Haiku x86

  1. Install the following packages with pkgman:
    • qt5_x86
    • qt5_x86_devel
    • qt5_x86_tools
    • libiconv_x86_devel
    • openssl_x86_devel (should be preinstalled)
  2. run setarch x86
  3. Use make to build the executable

Manual Installation

Unix / XDG

The provided desktop file and additional mime types (along with the text/gemini) can be installed into the local system

cp Kristall.desktop ~/.local/share/applications/kristall.desktop
cp kristall-mime-info.xml ~/.local/share/mime/packages/kristall-mime-info.xml
update-desktop-database ~/.local/share/applications
update-mime-database ~/.local/share/mime

macOS

Copy kristall.app from the build directory to /Applications.

Haiku

Link the kristall executable to your applications menu:

cd ~/config/settings/deskbar/menu/Applications/
ln -s /path/to/kristall .